yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
0b05fe33c
master
1// general-inline.slang 2 3//TEST(compute):COMPARE_COMPUTE: -shaderobj 4//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj 5//DISABLE_TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj 6 7[ForceInline] 8int test(int r) 9{ 10 int result = 0; 11 for (int i = 0; i < 2; i++) 12 { 13 for (int j = 0; j < 3; j++) 14 { 15 result++; 16 if (r == 0) 17 { 18 return result; 19 } 20 } 21 if (r == 1) 22 return result; 23 } 24 return result; 25} 26 27[ForceInline] 28void testVoid(int r, out int result) 29{ 30 result = 0; 31 for (int i = 0; i < 2; i++) 32 { 33 for (int j = 0; j < 3; j++) 34 { 35 result++; 36 if (r == 0) 37 { 38 return; 39 } 40 } 41 if (r == 1) 42 return; 43 } 44 return; 45} 46 47//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer 48RWStructuredBuffer<int> outputBuffer; 49 50[numthreads(1, 1, 1)] 51void computeMain(uint3 dispatchThreadID: SV_DispatchThreadID) 52{ 53 outputBuffer[0] = test(0); 54 outputBuffer[1] = test(1); 55 outputBuffer[2] = test(2); 56 57 int rs; 58 testVoid(2, rs); 59 outputBuffer[3] = rs; 60}