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
875 B25 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 that has only one field and is an unsized array.
8struct MeshStorage {
9    uint64_t QuadData[];
10};
11
12//TEST_INPUT: set pStorage = ubuffer(data=[1 2 3 4 5 6 7 8],stride=4);
13uniform MeshStorage* pStorage;
14
15//TEST_INPUT: set outputBuffer = out ubuffer(data=[0 0 0 0],stride=4);
16uniform RWStructuredBuffer<uint> outputBuffer;
17
18[numthreads(1,1,1)]
19void computeMain()
20{
21    // CHECK: 3
22    // CHECK: 4
23    outputBuffer[0] = (int)(pStorage.QuadData[1]&0xFFFFFFFF);
24    outputBuffer[1] = (int)(pStorage.QuadData[1]>>32);
25}