yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
ec42c4a20
master
1//TEST:SIMPLE(filecheck=SPIRV): -stage fragment -entry fragmentMain -target spirv -fvk-use-c-layout 2struct A { 3 int64_t i; 4 float f; 5}; 6 7struct B { 8 A a; 9 float b; 10}; 11 12struct FIn 13{ 14 Ptr<B> i0; 15 Ptr<B> i1; 16 float c; 17 float d; 18} 19 20struct FOut 21{ 22 float4 outputColor : SV_Target0; 23} 24 25StructuredBuffer<Ptr<B>, Std430DataLayout> testBuffer; 26 27[shader("fragment")] 28FOut fragmentMain(FIn input) 29{ 30 31 FOut output; 32 output.outputColor = float4(input.i0.a.f, input.i0.b, input.i1.a.f, input.i1.b)+input.c-input.d; 33 output.outputColor += testBuffer[0].b; 34 return output; 35} 36 37// SPIRV: OpDecorate %input_i0 Location 0 38// SPIRV: OpDecorate %input_i0 Flat 39// SPIRV: OpDecorate %input_i1 Location 1 40// SPIRV: OpDecorate %input_i1 Flat 41// SPIRV: OpDecorate %input_c Location 2 42// SPIRV: OpDecorate %input_d Location 3 43// SPIRV: OpMemberDecorate %A_c 0 Offset 0 44// SPIRV: OpMemberDecorate %A_c 1 Offset 8 45// SPIRV: OpMemberDecorate %B_c 0 Offset 0 46// SPIRV: OpMemberDecorate %B_c 1 Offset 16