yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
2a5d5b323
master
1//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj 2//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj 3//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj 4 5// This bug involved incorrect computation of the successor 6// blocks for a `switch`, which led to incorrect SSA form. 7 8int test(int val) 9{ 10 int tmp = 0; 11 switch(val) 12 { 13 case 0: 14 tmp = 1; 15 break; 16 17 case 1: 18 tmp = 2; 19 break; 20 21 case 2: 22 tmp = 3; 23 break; 24 25 default: 26 tmp = val + 1; 27 break; 28 } 29 return tmp; 30} 31 32//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name gBuffer 33RWStructuredBuffer<int> gBuffer; 34 35[numthreads(4, 1, 1)] 36void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) 37{ 38 uint tid = dispatchThreadID.x; 39 int val = int(tid); 40 val = test(val); 41 gBuffer[tid] = val; 42}