yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
c701ec00c
master
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}