Skip to content

WebGPURenderer: Concurrency issue. #29497

@WestLangley

Description

@WestLangley

Description

I believe @sunag is working on this, but posting here for reference:

This code block is leading to a concurrency problem.

const renderer = this.renderer;
const toneMapping = renderer.toneMapping;
const outputColorSpace = renderer.outputColorSpace;
renderer.toneMapping = NoToneMapping;
renderer.outputColorSpace = LinearSRGBColorSpace;
//
await _quadMesh.renderAsync( renderer );
//
renderer.toneMapping = toneMapping;
renderer.outputColorSpace = outputColorSpace;

While awaiting renderAsync() to resolve, other asychronous calls to renderer.render() can occur -- in a loader callback, for example.

Adding some print statememts to the above block, I get results like this:

renderer.toneMapping temporarily set to:  0
renderer.toneMapping temporarily set to:  0

renderer.toneMapping restored to:  2
renderer.toneMapping restored to:  0

renderer.toneMapping temporarily set to:  0
renderer.toneMapping restored to:  0

renderer.toneMapping temporarily set to:  0
renderer.toneMapping restored to:  0

         .
         .

Reproduction steps

see above

Code

see above

Live example

n/a

Screenshots

No response

Version

r169dev

Device

No response

Browser

No response

OS

No response

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions