yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
f02b08490
master
1//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -entry computeMain -allow-glsl -xslang -zero-initialize 2//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -entry computeMain -emit-spirv-directly -allow-glsl -xslang -zero-initialize 3//DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-cpu -compute -entry computeMain -allow-glsl -xslang -zero-initialize 4//DISABLE_TEST(smoke,compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-dx12 -compute -entry computeMain -allow-glsl -profile sm_6_2 -xslang -zero-initialize -xslang -DDX12 5 6//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer 7RWStructuredBuffer<int> outputBuffer; 8 9enum MyFlags 10{ 11 Zero = 0, 12 One, 13} 14MyFlags getMyFlagsUint_One() 15{ 16 return MyFlags::One; 17} 18 19#ifndef DX12 20enum MyFlags_uint8 : uint8_t 21{ 22 Zero = 0, 23 One, 24} 25MyFlags_uint8 getMyFlagsUint8_One() 26{ 27 return MyFlags_uint8::One; 28} 29#endif 30 31enum MyFlags_uint16 : uint16_t 32{ 33 Zero = 0, 34 One, 35} 36MyFlags_uint16 getMyFlagsUint16_One() 37{ 38 return MyFlags_uint16::One; 39} 40 41enum MyFlags_uint32 : uint32_t 42{ 43 Zero = 0, 44 One, 45} 46MyFlags_uint32 getMyFlagsUint32_One() 47{ 48 return MyFlags_uint32::One; 49} 50 51enum MyFlags_uint64 : uint64_t 52{ 53 Zero = 0, 54 One, 55} 56MyFlags_uint64 getMyFlagsUint64_One() 57{ 58 return MyFlags_uint64::One; 59} 60 61int getDefaultInt() 62{ 63 int val; 64 return val; 65} 66float getDefaultFloat() 67{ 68 float val; 69 return val; 70} 71double getDefaultDouble() 72{ 73 double val; 74 return val; 75} 76vector<int, 2> getDefaultIntVec2() 77{ 78 vector<int, 2> val; 79 return val; 80} 81vector<int, 3> getDefaultIntVec3() 82{ 83 vector<int, 3> val; 84 return val; 85} 86vector<int, 4> getDefaultIntVec4() 87{ 88 vector<int, 4> val; 89 return val; 90} 91[numthreads(1, 1, 1)] 92void computeMain(int3 dispatchThreadID: SV_DispatchThreadID) 93{ 94 int defaultInt = getDefaultInt(); 95 float defaultFloat = getDefaultFloat(); 96 double defaultDouble = getDefaultDouble(); 97 vector<int, 2> vector2 = getDefaultIntVec2(); 98 vector<int, 3> vector3 = getDefaultIntVec3(); 99 vector<int, 4> vector4 = getDefaultIntVec4(); 100// BUF: 1 101 outputBuffer[0] = true 102 && defaultInt == 0 103 && defaultFloat == 0 104 && defaultDouble == 0 105 && vector2 == vector<int, 2>(0) 106 && vector3 == vector<int, 3>(0) 107 && vector4 == vector<int, 4>(0) 108 && MyFlags::One == getMyFlagsUint_One() 109#ifndef DX12 110 && MyFlags_uint8::One == getMyFlagsUint8_One() 111#endif 112 && MyFlags_uint16::One == getMyFlagsUint16_One() 113 && MyFlags_uint32::One == getMyFlagsUint32_One() 114 && MyFlags_uint64::One == getMyFlagsUint64_One(); 115 ; 116}