yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
f02b08490
master
1//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-dx12 -compute -output-using-type 2//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -output-using-type 3//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -output-using-type -emit-spirv-directly 4//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-cuda -compute -output-using-type 5 6//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer 7RWStructuredBuffer<float> outputBuffer; 8 9// To check that our counter-initialization works correctly, set the initial 10// counter to 6 instead of 8, so we'll start reading from 6.0 downwards 11//TEST_INPUT:set consumeBuffer = ubuffer(data=[1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0], stride=4, counter=6) 12ConsumeStructuredBuffer<float> consumeBuffer; 13 14[numthreads(4, 1, 1)] 15void computeMain(uint i : SV_GroupIndex) 16{ 17 uint size, stride; 18 consumeBuffer.GetDimensions(size, stride); 19 20 if(i == 0) 21 outputBuffer[0] = size; 22 23 outputBuffer[i+1] = consumeBuffer.Consume(); 24 25 // BUF: type: float 26 // The total size of the ConsumeStructuredBuffer (from GetDimensions) 27 // BUF: 8.0 28 29 // The values from consumeBuffer in any order 30 // BUF-DAG: 6.0 31 // BUF-DAG: 4.0 32 // BUF-DAG: 5.0 33 // BUF-DAG: 3.0 34}