yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
05547e253
master
1//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj 2//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -shaderobj 3//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj 4//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj 5 6interface IGetter 7{ 8 int get(); 9} 10struct Gen0 : IGetter 11{ 12 int get() { return 1; } 13}; 14struct Gen1<TGetter : IGetter> : IGetter 15{ 16 TGetter g = TGetter(); 17 int get() { return g.get(); } 18}; 19 20//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer 21RWStructuredBuffer<int> outputBuffer; 22 23void writeArray(inout float3 a[4]) 24{ 25 a[0] = float3(1, 1, 1); 26 a[1] = float3(1, 1, 1); 27 a[2] = float3(1, 1, 1); 28 a[3] = float3(1, 1, 1); 29} 30 31[numthreads(4, 1, 1)] 32void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) 33{ 34 Gen1<Gen1<Gen1<Gen0>>> g; 35 Gen1<Gen1<Gen1<Gen1<Gen0>>>> g2; 36 Gen1<Gen1<Gen0>> g3; 37 38 int a = 0; 39 int b = 5; 40 if (a< b && b > a) 41 outputBuffer[dispatchThreadID.x] = (g.get() >> 1) + g2.get() + g3.get(); 42}