yum-mirror/slang

Making it easier to work with shaders

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

Yong HeDefer immutable buffer loads when emitting spirv. (#7579)c701ec00c

master
494 B30 linesraw
1//TEST:SIMPLE(filecheck=CHECK): -target spirv
2
3// CHECK: %[[PTR:[0-9a-zA-Z_]+]] = Op{{.*}}AccessChain %_ptr_PhysicalStorageBuffer_uint %{{.*}} %int_0
4// CHECK: %{{.*}} = OpAtomicIAdd %uint %[[PTR]] %uint_1 %uint_0 %uint_1
5
6struct Buf
7{
8    uint t;
9
10    [__ref]
11    func tester()
12    {
13        uint prev;
14        InterlockedAdd(t, 1, prev);
15    }
16};
17
18struct Push
19{
20    Buf * b;
21};
22
23[[vk::push_constant]] Push push;
24
25[shader("compute")]
26[numthreads(1, 1, 1)]
27void main()
28{
29    push.b->tester();
30}