yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
712ce653d
master
1// multi-level-break-switch.slang 2 3//TEST(compute):COMPARE_COMPUTE: -shaderobj 4//DISABLE_TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj 5 6int test(int t, int r) 7{ 8 int result = 0; 9outter: 10 switch (t) 11 { 12 case 0: 13 case 1: 14 jLoop: 15 for (int j = 0; j < 3; j++) 16 { 17 switch (r) 18 { 19 case 0: 20 break outter; 21 case 1: 22 break jLoop; 23 default: 24 { 25 result++; 26 break; 27 } 28 } 29 } 30 result++; 31 break; 32 case 2: 33 return 100; 34 } 35 return result; 36} 37 38//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer 39RWStructuredBuffer<int> outputBuffer; 40 41[numthreads(1, 1, 1)] 42void computeMain(int3 dispatchThreadID: SV_DispatchThreadID) 43{ 44 outputBuffer[0] = test(dispatchThreadID.x, 0); 45 outputBuffer[1] = test(dispatchThreadID.x, 1); 46 outputBuffer[2] = test(dispatchThreadID.x, 2); 47 outputBuffer[3] = 0; 48}