yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
299eb0c88
master
1//TEST:SIMPLE(filecheck=CHECK): -allow-glsl -target spirv-asm 2 3RWStructuredBuffer<uint> result; 4 5// Test GLSL uniform block with scalar layout qualifier 6// CHECK: SLANG_ParameterGroup_Data_uniform_natural 7// CHECK: OpMemberDecorate %SLANG_ParameterGroup_Data_uniform_natural 0 Offset 0 8// CHECK: OpMemberDecorate %SLANG_ParameterGroup_Data_uniform_natural 1 Offset 4 9layout(scalar) uniform Data_uniform { 10 uint a; 11 uint3 b; 12}; 13 14// Test HLSL cbuffer with scalar layout qualifier 15// CHECK: SLANG_ParameterGroup_Data_cbuffer_natural 16// CHECK: OpMemberDecorate %SLANG_ParameterGroup_Data_cbuffer_natural 0 Offset 0 17// CHECK: OpMemberDecorate %SLANG_ParameterGroup_Data_cbuffer_natural 1 Offset 4 18layout(scalar) cbuffer Data_cbuffer { 19 uint c; 20 uint3 d; 21}; 22 23// Reference: ScalarDataLayout should work correctly 24struct Data { 25 uint e; 26 uint3 f; 27}; 28ConstantBuffer<Data, ScalarDataLayout> Data_ConstantBufferScalarDataLayout; 29 30[shader("compute")] 31[numthreads(1,1,1)] 32void computeMain(uint3 threadId : SV_DispatchThreadID) 33{ 34 uint index = threadId.x; 35 result[index] = 36 a + b.x + 37 c + d.y + 38 Data_ConstantBufferScalarDataLayout.e + Data_ConstantBufferScalarDataLayout.f.z; 39}