yum-mirror/slang

Making it easier to work with shaders

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

Julius IkkalaAdd defer statement (#6619)1b82501dd

master
702 B28 linesraw
1//TEST(compute):COMPARE_COMPUTE: -shaderobj
2//TEST(compute):COMPARE_COMPUTE: -vk -shaderobj
3//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
4
5//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
6RWStructuredBuffer<int> outputBuffer;
7
8[numthreads(1, 1, 1)]
9void computeMain(int3 dispatchThreadID: SV_DispatchThreadID)
10{
11    int i = 0;
12    defer defer outputBuffer[i++] = 0xFF;
13
14    outputBuffer[i++] = 0;
15
16    for (int j = 0; j < 4; j++)
17        defer outputBuffer[i++] = j;
18
19    if (i == 5)
20        defer outputBuffer[i++] = 0x80;
21
22    while (i < 7)
23        defer outputBuffer[i++] = 0x81;
24
25    do defer outputBuffer[i++] = 0x82; while (false);
26
27    outputBuffer[i++] = 5;
28}