yum-mirror/slang

Making it easier to work with shaders

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

Yong HeAllow pointers to existential values. (#5793)09a9d6733

master
923 B29 linesraw
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}