yum-mirror/slang

Making it easier to work with shaders

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

Julius IkkalaFix WGSL bitshift test typo (#8720)7e35123ba

master
2.7 KiB92 linesraw
1//TEST(compute):COMPARE_COMPUTE:-shaderobj
2
3//TEST_INPUT:ubuffer(data=[3 7 8 10], stride=4):name=inputBuffer
4RWStructuredBuffer<int> inputBuffer;
5
6//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
7RWStructuredBuffer<int> outputBuffer;
8
9[numthreads(1,1,1)]
10void computeMain()
11{
12    int amount = 1;
13
14    outputBuffer[0] = inputBuffer[0] >> amount;
15
16    int2 v2 = int2(inputBuffer[0], inputBuffer[1]) >> amount;
17    outputBuffer[1] = v2[0];
18    outputBuffer[2] = v2[1];
19
20    int3 v3 = int3(inputBuffer[0], inputBuffer[1], inputBuffer[2]) >> amount;
21    outputBuffer[3] = v3[0];
22    outputBuffer[4] = v3[1];
23    outputBuffer[5] = v3[2];
24
25    int4 v4 = int4(inputBuffer[0], inputBuffer[1], inputBuffer[2], inputBuffer[3]) >> amount;
26    outputBuffer[6] = v4[0];
27    outputBuffer[7] = v4[1];
28    outputBuffer[8] = v4[2];
29    outputBuffer[9] = v4[3];
30
31    outputBuffer[10] = inputBuffer[0] << amount;
32
33    v2 = int2(inputBuffer[0], inputBuffer[1]) << amount;
34    outputBuffer[11] = v2[0];
35    outputBuffer[12] = v2[1];
36
37    v3 = int3(inputBuffer[0], inputBuffer[1], inputBuffer[2]) << amount;
38    outputBuffer[13] = v3[0];
39    outputBuffer[14] = v3[1];
40    outputBuffer[15] = v3[2];
41
42    v4 = int4(inputBuffer[0], inputBuffer[1], inputBuffer[2], inputBuffer[3]) << amount;
43    outputBuffer[16] = v4[0];
44    outputBuffer[17] = v4[1];
45    outputBuffer[18] = v4[2];
46    outputBuffer[19] = v4[3];
47
48    v2 = inputBuffer[0] >> int2(amount);
49    outputBuffer[20] = v2[0];
50    outputBuffer[21] = v2[1];
51
52    v3 = inputBuffer[1] >> int3(amount);
53    outputBuffer[22] = v3[0];
54    outputBuffer[23] = v3[1];
55    outputBuffer[24] = v3[2];
56
57    v4 = inputBuffer[2] >> int4(amount);
58    outputBuffer[25] = v4[0];
59    outputBuffer[26] = v4[1];
60    outputBuffer[27] = v4[2];
61    outputBuffer[28] = v4[3];
62
63    v2 = inputBuffer[0] << int2(amount);
64    outputBuffer[29] = v2[0];
65    outputBuffer[30] = v2[1];
66
67    v3 = inputBuffer[1] << int3(amount);
68    outputBuffer[31] = v3[0];
69    outputBuffer[32] = v3[1];
70    outputBuffer[33] = v3[2];
71
72    v4 = inputBuffer[2] << int4(amount);
73    outputBuffer[34] = v4[0];
74    outputBuffer[35] = v4[1];
75    outputBuffer[36] = v4[2];
76    outputBuffer[37] = v4[3];
77
78    v2 = int2(inputBuffer[0], inputBuffer[1]) >> int2(1, 2);
79    outputBuffer[38] = v2[0];
80    outputBuffer[39] = v2[1];
81
82    v3 = int3(inputBuffer[0], inputBuffer[1], inputBuffer[2]) >> int3(1, 2, 3);
83    outputBuffer[40] = v3[0];
84    outputBuffer[41] = v3[1];
85    outputBuffer[42] = v3[2];
86
87    v4 = int4(inputBuffer[0], inputBuffer[1], inputBuffer[2], inputBuffer[3]) >> int4(1, 2, 3, 4);
88    outputBuffer[43] = v4[0];
89    outputBuffer[44] = v4[1];
90    outputBuffer[45] = v4[2];
91    outputBuffer[46] = v4[3];
92}