yum-mirror/slang

Making it easier to work with shaders

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

Jay KwakImplement MapElement for CoopMat (#7159)984d7f22f

master
1.0 KiB37 linesraw
1//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK): -output-using-type
2
3//TEST_INPUT: set outputBuffer = out ubuffer(data=[0 0 0 0 0 0], stride=4)
4RWStructuredBuffer<int> outputBuffer;
5
6extension<
7    T0 : __BuiltinArithmeticType,
8    each Ts0 : __BuiltinArithmeticType,
9    each Ts1 : __BuiltinArithmeticType
10> Tuple<T0, T0, expand each Ts0, expand each Ts1>
11{
12    static int getSize_Ts0() { return countof(Ts0); }
13    static int getSize_Ts1() { return countof(Ts1); }
14}
15
16[numthreads(1,1,1)]
17void computeMain()
18{
19    int i = 2;
20    float f0 = 3, f1 = 5;
21    uint ui0 = 4, ui1 = 6;
22
23    let s0 = makeTuple(i, i); // T, T
24    let s1 = makeTuple(i, i, f0, ui0); // T, T, Ts0, Ts1
25    let s2 = makeTuple(i, i, f0, ui0, f1, ui1); // T, T, Ts0, Ts0, Ts1, Ts1
26
27    outputBuffer[0] = s0.getSize_Ts0();
28    outputBuffer[1] = s0.getSize_Ts1();
29    outputBuffer[2] = s1.getSize_Ts0();
30    outputBuffer[3] = s1.getSize_Ts1();
31    outputBuffer[4] = s2.getSize_Ts0();
32    outputBuffer[5] = s2.getSize_Ts1();
33
34    // CHECK-COUNT-2:0
35    // CHECK-COUNT-2:1
36    // CHECK-COUNT-2:2
37}