1uint atomicSub_1(RWByteAddressBuffer buffer, uint offset, uint value) { 2 uint original_value = 0; 3 buffer.InterlockedAdd(offset, -value, original_value); 4 return original_value; 5} 6 7RWByteAddressBuffer sb_rw : register(u0, space0); 8 9void atomicSub_15bfc9() { 10 uint res = atomicSub_1(sb_rw, 0u, 1u); 11} 12 13void fragment_main() { 14 atomicSub_15bfc9(); 15 return; 16} 17 18[numthreads(1, 1, 1)] 19void compute_main() { 20 atomicSub_15bfc9(); 21 return; 22} 23