yum-mirror/slang

Making it easier to work with shaders

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

Yong HeMetal: misc fixes and enable more tests. (#4374)cfef0c6f6

master
1.1 KiB48 linesraw
1
2//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
3//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
4//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj
5//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj
6//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -shaderobj
7
8
9//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
10
11RWStructuredBuffer<int> outputBuffer;
12
13// Check Enum without base type
14
15enum Enum 
16{
17    A = 10,
18    B = 20,
19};
20
21enum Enum8 : uint8_t
22{
23    A = 20,
24    B = 19,
25};
26
27// Check type aliases
28
29typedef Enum EnumTypeDef;
30typealias EnumTypeAlias = Enum;
31
32[numthreads(4, 1, 1)]
33void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
34{
35    const int idx = asint(dispatchThreadID.x);
36
37    int size = 0;
38    switch (idx)
39    {   
40        default:
41        case 0:     size = alignof(Enum); break;
42        case 1:     size = alignof(EnumTypeDef); break;
43        case 2:     size = alignof(EnumTypeAlias); break;
44        case 3:     size = alignof(idx); break;
45    }
46
47    outputBuffer[idx] = size;
48}