yum-mirror/slang

Making it easier to work with shaders

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

aidanfnvAdd slang-test check for D3D11 double support (#6761)28006e36d

master
1.3 KiB42 linesraw
1//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=CHK):-slang -compute -cpu -shaderobj
2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHK):-slang -compute -dx11 -shaderobj -render-feature double
3//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHK):-slang -compute -dx12 -shaderobj
4//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHK):-slang -vk -compute -shaderobj -render-feature double
5//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=CHK):-slang -cuda -compute -shaderobj
6//DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHK):-slang -shaderobj -mtl
7
8//CHK: 1
9
10//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer
11RWStructuredBuffer<int> outputBuffer;
12
13[numthreads(1, 1, 1)]
14void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
15{
16    // uint variant
17    double d = double(dispatchThreadID.x);
18
19    uint high;
20    uint low;
21
22    asuint(d, low, high);
23
24    double r = asdouble(low, high);
25
26    // uint2 variant
27    double a = double(dispatchThreadID.x + 1);
28    double b = double(dispatchThreadID.x + 2);
29
30    uint2 high2;
31    uint2 low2;
32
33    asuint(a, low2.x, high2.x);
34    asuint(b, low2.y, high2.y);
35
36    double2 s = asdouble(low2, high2);
37
38    // status
39    outputBuffer[0] = (int(r) == 0)
40        && (int(s.x) == 1) 
41        && (int(s.y) == 2);
42}