Levers and Chests fails to run
Categories
(Core :: Graphics: WebGPU, defect)
Tracking
()
People
(Reporter: ErichDonGubler, Unassigned)
References
(Depends on 3 open bugs, Blocks 1 open bug)
Details
Attachments
(1 file)
47.54 KB,
image/png
|
Details |
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
Reporter | ||
Comment 1•2 months ago
|
||
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
]
Comment 2•2 months ago
|
||
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.
Reporter | ||
Comment 3•2 months ago
|
||
Ah, we already have bugs filed for those errors. Woot!
Reporter | ||
Updated•2 months ago
|
Description
•