Using WebGPU together with PhotoDome causes rendering to stop and generates a large number of warnings

const engine = new WebGPUEngine(renderCanvas.value);

engine.initAsync()
.then(()=>{


    state.scene = createScene(engine);
                    
    const _DEFAULT_CAMERA = new UniversalCamera('_DEFAULT_CAMERA', new Vector3(0, 5, 10), state.scene);
    
    _DEFAULT_CAMERA.setTarget(Vector3.Zero());
    _DEFAULT_CAMERA.attachControl(renderCanvas.value, true);
    state.camera = _DEFAULT_CAMERA;
     const sphere = MeshBuilder.CreateSphere("sphere", {diameter: 2, segments: 32}, state.scene);
    sphere.position.y = 1;
    var dome = new PhotoDome(
    "sky",
    "/skybox.hdr",
    {
        resolution: 32,
        size: 1000
    },
    state.scene
    );
})

This results in hundreds of such warnings being displayed.

BJS - [18:55:37]: WebGPU uncaptured error (15): [object GPUValidationError] - [Invalid CommandBuffer from CommandEncoder “render”] is invalid.

  • While calling [Queue].Submit([[CommandBuffer from CommandEncoder “upload”], [Invalid CommandBuffer from CommandEncoder “render”]])

cc @Evgeni_Popov

That’s hard to say with only an excerpt of the code. If you are able to repro in the Playground, it will be easier to help.

Also, if you don’t use the standard render loop, did you add a engine.beginFrame() and engine.endFrame() call between your scene.render() call?

This one is working - https://playground.babylonjs.com/#14KRGG#1575, but as @Evgeni_Popov said, if you can reproduce it, even using this playground, it would be helpful.