yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
28006e36d
master
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}