-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
area: naga front-endlang: GLSLOpenGL Shading LanguageOpenGL Shading LanguagenagaShader TranslatorShader Translatortype: bugSomething isn't workingSomething isn't working
Description
I encountered this panic while working with shadertoys through wgpu-py. The original shader where this happened: https://www.shadertoy.com/view/clB3D3 and a minimal reconstruction: https://www.shadertoy.com/view/cltfRn
case that panics:
#define MIX2(c) mix(c.xy, c.xy, 0.5)
const vec2 blank = MIX2(vec2(0.0,1.0));
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord/iResolution.xy;
vec2 col = MIX2(uv);
fragColor = vec4(col,0.0,1.0);
}
equivalent case that works (comment out the unused const)
#define MIX2(c) mix(c.xy, c.xy, 0.5)
// const vec2 blank = MIX2(vec2(0.0,1.0));
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord/iResolution.xy;
vec2 col = MIX2(uv);
fragColor = vec4(col,0.0,1.0);
}
equivalent case that throws an error without swizzle (error might be with the implementation, but at least it doesn't panic)
#define MIX2(c) mix(c, c, 0.5)
const vec2 blank = MIX2(vec2(0.0,1.0));
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord/iResolution.xy;
vec2 col = MIX2(uv);
fragColor = vec4(col,0.0,1.0);
}
I used naga-cli 0.14.0 and wgpu-py shadertoy util to add the compatibility code for shadertoy syntax.
Full error trace:
naga panic_shader4.frag
thread 'main' panicked at ~\.cargo\registry\src\index.crates.io-6f17d22bba15001f\naga-0.14.0\src\front\glsl\variables.rs:336:28:
index out of bounds: the len is 12 but the index is 15
stack backtrace:
0: 0x7ff6c169c3da - <unknown>
1: 0x7ff6c16b4acb - <unknown>
2: 0x7ff6c16992e1 - <unknown>
3: 0x7ff6c169c15a - <unknown>
4: 0x7ff6c169e75a - <unknown>
5: 0x7ff6c169e3c8 - <unknown>
6: 0x7ff6c169ee0e - <unknown>
7: 0x7ff6c169ecfd - <unknown>
8: 0x7ff6c169cdc9 - <unknown>
9: 0x7ff6c169ea00 - <unknown>
10: 0x7ff6c16d7b35 - <unknown>
11: 0x7ff6c16d7cae - <unknown>
12: 0x7ff6c15818a9 - <unknown>
13: 0x7ff6c1527077 - <unknown>
14: 0x7ff6c15746b5 - <unknown>
15: 0x7ff6c15277bc - <unknown>
16: 0x7ff6c1525d2d - <unknown>
17: 0x7ff6c15ed931 - <unknown>
18: 0x7ff6c15ee8b9 - <unknown>
19: 0x7ff6c15f02bd - <unknown>
20: 0x7ff6c15ff25d - <unknown>
21: 0x7ff6c158308f - <unknown>
22: 0x7ff6c13effb5 - <unknown>
23: 0x7ff6c13fd636 - <unknown>
24: 0x7ff6c13fd64c - <unknown>
25: 0x7ff6c1693348 - <unknown>
26: 0x7ff6c13f4f8c - <unknown>
27: 0x7ff6c16bca68 - <unknown>
28: 0x7ffd609e7344 - BaseThreadInitThunk
29: 0x7ffd60b226b1 - RtlUserThreadStart
the perma link to the line it mentions:
wgpu/naga/src/front/glsl/variables.rs
Line 320 in ebcfd25
} = ctx[expression] |
Metadata
Metadata
Assignees
Labels
area: naga front-endlang: GLSLOpenGL Shading LanguageOpenGL Shading LanguagenagaShader TranslatorShader Translatortype: bugSomething isn't workingSomething isn't working