yum-mirror/slang

Making it easier to work with shaders

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

James Helferty (NVIDIA)render-test: Change D3D12 default to sm_6_5 (#8320)f02b08490

master
2.6 KiB116 linesraw
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}