yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
fc6aea374
master
1//TEST:SIMPLE(filecheck=HLSL): -target hlsl -profile cs_5_0 -entry computeMain 2//TEST:SIMPLE(filecheck=SPIRV): -target spirv -O0 3 4//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer 5RWStructuredBuffer<int> outputBuffer; 6 7// HLSL: [branch] 8// HLSL: [flatten] 9// SPIRV: OpSelectionMerge {{.*}} DontFlatten 10// SPIRV: OpSelectionMerge {{.*}} Flatten 11 12[numthreads(4, 1, 1)] 13void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) 14{ 15 int idx = dispatchThreadID.x; 16 17 int v = idx; 18 19 [branch] 20 if (idx != 0) 21 { 22 ++v; 23 } 24 25 [flatten] 26 if (idx > 2) 27 { 28 v += v; 29 } 30 31 outputBuffer[dispatchThreadID.x] = v; 32}