Open Bug 1938671 Opened 1 year ago Updated 9 months ago

WebGPU Sponza Demo does not run

Categories

(Core :: Graphics: WebGPU, defect)

defect

Tracking

()

People

(Reporter: ErichDonGubler, Unassigned)

References

(Blocks 1 open bug, )

Details

Steps to reproduce

  1. Open the page. Observe that the page loads some controls, but otherwise only renders a black screen.

I opened a PR to track the code I wrote to triage and uncover the issues I wrote earlier: gnikoloff/webgpu-sponza-demo#24

Nice analysis!

I think permitting ptr.member was a later addition to the spec. At one point it was not allowed.

I thin relevant CTS test is here: https://github.com/gpuweb/cts/blob/9873a0fcea54ecb223e1312486dea37618eb5841/src/webgpu/shader/execution/expression/unary/address_of_and_indirection.spec.ts#L121, but it gets skipped because there is no pointer_composite_access wgsl extension in firefox/wgpu. See relevant change in spec: https://github.com/gpuweb/gpuweb/pull/4311.

Depends on: 1938932

:samson: Just added tracking for the pointer_composite_access language extension via bug 1938932.

:jimb: I've updated comment 1 to have the full set of shader validation errors emitted to console for item (1). Hope it helps!

Duplicate of this bug: 1951223

@must_use is now usable, now that bug 1878314 has been resolved.

Getting the following errors now:

Shader validation error: Function [12] 'FindIntersectionHiZ' is invalid
    ┌─ Shader Module #23:251:3
    │  
251 │ ╭   fn FindIntersectionHiZ(
252 │ │     samplePosInTexSpace: vec3f,
253 │ │     reflDirInTexSpace: vec3f,
254 │ │     maxTraceDistance: f32,
    · │
309 │ │       let thickness = select(0, (ray.z - cellMinZ), level == 0);
    │ │                       ^^^^^^ naga::ir::Expression [108]
    · │
331 │ │     
332 │ │     return intensity;
    │ ╰─────────────────────^ naga::ir::Function [12]
    │  
    = Expression [108] is invalid
    = Expected selection argument types to match, but reject value of type Scalar(Scalar { kind: Sint, width: 4 }) does not match accept value of value Scalar(Scalar { kind: Float, width: 4 })

This is bug 1960453.

Shader validation error: Entry point main at Compute is invalid
   ┌─ Shader Module #25:34:13
   │
34 │     let a = textureSampleLevel(srcTexture, srcSampler, vec2(texCoords.x - 2 * x, texCoords.y + 2 * y), 0).rgb;
   │             ^^^^^^^^^^^^^^^^^^ naga::ir::Expression [41]
   │
   = Expression [41] is invalid
   = Sample level (exact) type [40] has an invalid type
Shader validation error: Entry point main at Compute is invalid
   ┌─ Shader Module #31:94:23
   │
94 │         irradiance += textureSampleLevel(inTexture, cubeSampler, sampleVector, 2).rgb * cos(theta) * sin(theta);
   │                       ^^^^^^^^^^^^^^^^^^ naga::ir::Expression [80]
   │
   = Expression [80] is invalid
   = Sample level (exact) type [79] has an invalid type

This is bug 1952980.

Depends on: 1960453, 1952980

I can confirm that the shader compilation issues caused by bug 1952980 are now resolved. Just waiting for bug 1960453, it seems!

Running into this error now that bug 1960453 is resolved:

Uncaptured WebGPU error: In a pass parameter, caused by: Attempted to use Texture with 'Depth + Stencil GBuffer Texture' label (mips 0..1 layers 0..1) with conflicting usages. Current usage TextureUses(RESOURCE) and new usage TextureUses(DEPTH_STENCIL_WRITE). TextureUses(DEPTH_STENCIL_WRITE) is an exclusive usage and cannot be used with any other usages within the usage scope (renderpass or compute dispatch).
Uncaptured WebGPU error: Encoder is invalid
Uncaptured WebGPU error: CommandBuffer with 'Frame Command Encoder' label is invalid 

I think for this to work we need to make the trackers aware of a view's aspect; the demo probably wants to read from one aspect and write to the other in the same pass.

You need to log in before you can comment on or make changes to this bug.