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