Open Bug 1983738 Opened 2 months ago Updated 2 months ago

Levers and Chests fails to run

Categories

(Core :: Graphics: WebGPU, defect)

defect

Tracking

()

People

(Reporter: ErichDonGubler, Unassigned)

References

(Depends on 3 open bugs, Blocks 1 open bug)

Details

Attachments

(1 file)

From conversation in the #webgpu-dawn:matrix.org Matrix channel (link):

Daryl Zuniga:

Unfortunately my game doesn't run in Firefox because it's missing some shader features.

ErichDonGubler:

👀 As a Firefox contributor…what features are those?

Daryl Zuniga: I'm guessing this is in support of darzu/sprig?

It's actually not Sprig, I'm now working at a studio, Bitshift Entertainment, working on a game Levers & Chests, with a new private engine

For the first iteration, Daryl reports this first issue:

Here's the error I see in firefox, I haven't dug in:

[Screenshot of a console log, attached as Screenshot 2025-08-18 103350.png. The relevant error (in :ErichDonGubler's estimation) states:

Shader 'CloudPipe_shader' parsing error: Not as constant expression: Mix built-in function
    ┌ wgsl: 153: 26
    │
153 │ const ambientMoonColor = mix(monColor, vec3f(0.25), 0.85);
    │                          ^^^ see msg

]

Thanks Erich, here are another two errors:

184: //    }
185: }
186: 
187: fn update(id:u32, ptr: ptr<storage, Particle, read_write>) {
188:     var particle = *ptr;
189:     // let glide = pow(0.99, global.timeDelta);
[/renderer/particles/update-collidable-particles.wgsl:187] 
Shader 'vfx_update_rainbowBall_shader' parsing error: name `ptr` is a reserved keyword
    ┌─ wgsl:437:19
    │
437 │ fn update(id:u32, ptr: ptr<storage, Particle, read_write>) {
    │                   ^^^ definition of `ptr`
4:     fn update(id:u32, particle: ptr<storage, Particle, read_write>) {
5:         // let glide = pow(0.99, global.timeDelta);
6:         var p = particle.pos.xyz;
[vfx_update_torch_2:4] 
Shader validation error: Function [10] 'update' is invalid
    ┌─ vfx_update_torch_shader:75:5
    │  
 75 │ ╭     fn update(id:u32, particle: ptr<storage, Particle, read_write>) {
 76 │ │         // let glide = pow(0.99, global.timeDelta);
 77 │ │         var p = particle.pos.xyz;
 78 │ │         let kind = particle.pos.w;
    · │
120 │ │         particle.color = vec4f(c, s);
121 │ │         particle.lifetime = vec4f(l, 0, 0, 0);
    │ ╰──────────────────────────────────────────────^ naga::ir::Function [10]
    │  
    = Argument 'particle' at index 1 is a pointer of space Storage { access: StorageAccess(LOAD | STORE) }, which can't be passed into functions.

Ah, we already have bugs filed for those errors. Woot!

Summary: Levers & Chests fails to run → Levers and Chests fails to run
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: