yum-mirror/slang

Making it easier to work with shaders

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

Julius IkkalaFix local constants in switch cases (#7053)7cd502256

master
730 B34 linesraw
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk
2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -dx12
3//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -cpu
4
5// CHECK: 0
6// CHECK-NEXT: 1
7// CHECK-NEXT: 2
8
9//TEST_INPUT:ubuffer(data=[0 0 0], stride=4):out,name=outputBuffer
10RWStructuredBuffer<int> outputBuffer;
11
12uint testFunc(uint n)
13{
14    const uint CONST_A = 0;
15    const uint CONST_B = 1;
16
17    switch (n)
18    {
19    case CONST_A:
20        return 0;
21    case CONST_B:
22        return 1;
23    }
24
25    return 2;
26}
27
28[numthreads(1, 1, 1)]
29void computeMain(int3 dispatchThreadID: SV_DispatchThreadID)
30{
31    outputBuffer[0] = testFunc(0);
32    outputBuffer[1] = testFunc(1);
33    outputBuffer[2] = testFunc(2);
34}