From 680fb0b4e9cbb65d46677183a3f68630be1f6179 Mon Sep 17 00:00:00 2001 From: Darren Wihandi <65404740+fairywreath@users.noreply.github.com> Date: Fri, 4 Apr 2025 21:02:16 -0400 Subject: Fix crash when using GLSL global uniforms and varying inputs/ouputs together (#6651) * Fix incorrect assert on mixed global uniform and varyings * add test * remove unnecessary include * fix incorrect logic * fix comment grammar * address review comments and improve test * minimize diff * fix more issues for cuda build * remove unnecessary line for diff --- tests/glsl/global-uniform-with-varyings.slang | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/glsl/global-uniform-with-varyings.slang (limited to 'tests') diff --git a/tests/glsl/global-uniform-with-varyings.slang b/tests/glsl/global-uniform-with-varyings.slang new file mode 100644 index 000000000..678855dbf --- /dev/null +++ b/tests/glsl/global-uniform-with-varyings.slang @@ -0,0 +1,30 @@ +//TEST:SIMPLE(filecheck=CHECK_SPIRV): -target spirv -entry main -stage vertex +//TEST:SIMPLE(filecheck=CHECK_GLSL): -target glsl -entry main -stage vertex + +// CHECK_SPIRV: OpEntryPoint +// CHECK_SPIRV: OpVariable {{.*}} Input {{.*}} Location 0 +// CHECK_SPIRV: OpVariable {{.*}} Uniform +// CHECK_SPIRV: OpVariable {{.*}} Input {{.*}} Location 1 +// CHECK_SPIRV: OpVariable {{.*}} Output {{.*}} Location 0 + +// CHECK_GLSL: layout(location = 0) +// CHECK_GLSL-NEXT: in +// CHECK_GLSL: layout(location = 1) +// CHECK_GLSL-NEXT: in +// CHECK_GLSL: layout(std140) uniform +// CHECK_GLSL: layout(location = 0) +// CHECK_GLSL-NEXT: out +// CHECK_GLSL: void main + +#version 330 core +layout(location=0) in float3 a_position; +layout(location=1) in float4 a_color; + +out float4 v_color; + +uniform matrix u_transform; + +void main() { + gl_Position = u_transform * vec4(a_position, 1.0); + v_color = a_color; +} -- cgit v1.2.3