summaryrefslogtreecommitdiffstats
path: root/tests/spirv/direct-spirv-control-flow.slang
blob: 7445194383540bc07b225f9bbb649870f3efbf9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// direct-spirv-control-flow.slang

//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute

// Test direct SPIRV emit on control fl.

//TEST_INPUT:set resultBuffer = out ubuffer(data=[0 0 0 0], stride=4)
RWStructuredBuffer<uint> resultBuffer;

uint test(uint p)
{
    int result = 0;
    if (p == 0)
    {
        result = 5;
    }
    else
    {
        result = 6;
    }
    return result;
}

[numthreads(4,1,1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
    uint threadId = dispatchThreadID.x;
    uint result = test(threadId);
    resultBuffer[threadId] = result;
}