yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
cfef0c6f6
master
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}