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
774 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
7struct Obj
8{
9    int val;
10
11    [mutating]
12    void addOne() { val++; }
13
14    int getValPlusOne() { return val + 1; }
15}
16
17//TEST_INPUT: set pObj = ubuffer(data=[2 0 0 0], stride=4);
18uniform Obj* pObj;
19
20//TEST_INPUT: set outputBuffer = out ubuffer(data=[0 0 0 0],stride=4);
21uniform RWStructuredBuffer<uint> outputBuffer;
22
23[numthreads(1,1,1)]
24void computeMain()
25{
26    pObj->addOne();
27    // CHECK: 4
28    outputBuffer[0] = pObj->getValPlusOne();
29}