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
1012 B41 linesraw
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -d3d12 -shaderobj -output-using-type
2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
3
4//TEST_INPUT:set outputBuffer = out ubuffer(data=[0 0 0 0], stride=4)
5RWStructuredBuffer<uint> outputBuffer;
6
7interface ITestB
8{
9    static void eval<let N : uint>(uint val[N], out uint res[N]);
10};
11
12struct TestB : ITestB
13{
14    static void eval<let N : uint>(uint val[N], out uint res[N])
15    {
16        static const uint scale = 3 * N;
17        for (uint i = 0; i < N; i++)
18            res[i] = scale * val[i];
19    }
20};
21
22[numthreads(1, 1, 1)]
23void computeMain(uint3 threadID: SV_DispatchThreadID)
24{
25    const uint i = threadID.x;
26
27    uint val[4] = { i, i + 1, i + 2, i + 3 };
28    uint res[4];
29
30    TestB test;
31    test.eval<4>(val, res);
32
33    // CHECK: 0
34    outputBuffer[0] = res[0];
35    // CHECK: 12
36    outputBuffer[1] = res[1];
37    // CHECK: 24
38    outputBuffer[2] = res[2];
39    // CHECK: 36
40    outputBuffer[3] = res[3];
41}