yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
a618b8c5e
master
1//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-directly -O0 -g 2 3//CHECK: OpEntryPoint 4 5float atomicAdd(__ref float value, float amount) 6{ 7 __target_switch 8 { 9 case cpp: 10 __requirePrelude("#include <atomic>"); 11 __intrinsic_asm "std::atomic_ref(*$0).fetch_add($1)"; 12 case spirv: 13 return __atomic_add(value, amount); 14 } 15} 16 17RWStructuredBuffer<float> outputBuffer; 18 19[numthreads(4, 1, 1)] 20[shader("compute")] 21void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { 22 atomicAdd(outputBuffer[0], 1); 23}