yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
09a9d6733
master
1//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -emit-spirv-directly 2//DISABLED_TEST: COMPARE_COMPUTE(filecheck-buffer=CHECK): -wgpu 3//DISABLED_TEST: COMPARE_COMPUTE(filecheck-buffer=CHECK): -d3d11 4//DISABLED_TEST: COMPARE_COMPUTE(filecheck-buffer=CHECK): -d3d12 5//DISABLED_TEST: COMPARE_COMPUTE(filecheck-buffer=CHECK): -metal 6 7// Test a pointer to a struct with a trailing unsized array. 8 9struct MeshStorage { 10 int foo; 11 uint64_t QuadData[]; 12}; 13 14//TEST_INPUT: set pStorage = ubuffer(data=[1 2 3 4 5 6 7 8],stride=4); 15uniform MeshStorage* pStorage; 16 17//TEST_INPUT: set outputBuffer = out ubuffer(data=[0 0 0 0],stride=4); 18uniform RWStructuredBuffer<uint> outputBuffer; 19 20[numthreads(1,1,1)] 21void computeMain() 22{ 23 // CHECK: 5 24 // CHECK: 6 25 // CHECK: 1 26 outputBuffer[0] = (int)(pStorage.QuadData[1]&0xFFFFFFFF); 27 outputBuffer[1] = (int)(pStorage.QuadData[1]>>32); 28 outputBuffer[2] = pStorage.foo; 29}