yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Tim FoleyConvert more tests to use shader objects (#1659)2a5d5b323

master
878 B42 linesraw
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}