1uint2 atomicCompareExchangeWeak_1(RWByteAddressBuffer buffer, uint offset, uint compare, uint value) { 2 uint2 result = {0, 0}; 3 buffer.InterlockedCompareExchange(offset, compare, value, result.x); 4 result.y = result.x == compare; 5 return result; 6} 7 8RWByteAddressBuffer sb_rw : register(u0, space0); 9 10void atomicCompareExchangeWeak_6673da() { 11 uint2 res = atomicCompareExchangeWeak_1(sb_rw, 0u, 1u, 1u); 12} 13 14void fragment_main() { 15 atomicCompareExchangeWeak_6673da(); 16 return; 17} 18 19[numthreads(1, 1, 1)] 20void compute_main() { 21 atomicCompareExchangeWeak_6673da(); 22 return; 23} 24