yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
62baf92a5
master
1//TEST:SIMPLE(filecheck=CHECK_SPV): -target spirv -emit-spirv-directly -entry vertexMain -stage vertex 2//TEST:SIMPLE(filecheck=CHECK_SPV): -target spirv -emit-spirv-via-glsl -entry vertexMain -stage vertex 3//TEST:SIMPLE(filecheck=CHECK_GLSL): -target glsl -entry vertexMain -stage vertex 4 5struct S1 6{ 7 [[vk::offset(32)]] 8 float2 a; 9 10 float3 b; 11 12 [[vk::offset(16)]] 13 float4 c; 14 } 15 16[[vk::push_constant]] 17S1 pc; 18 19struct VertexOutput 20{ 21 float3 position : SV_Position; 22} 23 24// CHECK_SPV: OpDecorate [[STRUCT:%[a-zA-Z0-9_]+]] Block 25// CHECK_SPV-NEXT: OpMemberDecorate [[STRUCT]] 0 Offset 32 26// CHECK_SPV-NEXT: OpMemberDecorate [[STRUCT]] 1 Offset 48 27// CHECK_SPV-NEXT: OpMemberDecorate [[STRUCT]] 2 Offset 16 28 29// CHECK_GLSL: layout(std430) uniform 30// CHECK_GLSL-NEXT: { 31// CHECK_GLSL-NEXT: layout(offset = 32) vec2 a 32// CHECK_GLSL-NEXT: vec3 b 33// CHECK_GLSL-NEXT: layout(offset = 16) vec4 c 34 35[shader("vertex")] 36VertexOutput vertexMain() 37{ 38 VertexOutput output; 39 output.position = float3(pc.a.x, pc.b.y, pc.c.z); 40 return output; 41} 42