mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-07-15 17:45:58 +00:00
Polyfill this for HLSL using an atomic add with the operand negated. Fixed: tint:1130 Change-Id: Ifa32d58973f1b48593ec0f6320f47f4358a5a3a9 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/62760 Auto-Submit: James Price <jrprice@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
22 lines
438 B
Plaintext
22 lines
438 B
Plaintext
#include <metal_stdlib>
|
|
|
|
using namespace metal;
|
|
struct SB_RW {
|
|
/* 0x0000 */ atomic_uint arg_0;
|
|
};
|
|
|
|
void atomicSub_15bfc9(device SB_RW& sb_rw) {
|
|
uint res = atomic_fetch_sub_explicit(&(sb_rw.arg_0), 1u, memory_order_relaxed);
|
|
}
|
|
|
|
fragment void fragment_main(device SB_RW& sb_rw [[buffer(0)]]) {
|
|
atomicSub_15bfc9(sb_rw);
|
|
return;
|
|
}
|
|
|
|
kernel void compute_main(device SB_RW& sb_rw [[buffer(0)]]) {
|
|
atomicSub_15bfc9(sb_rw);
|
|
return;
|
|
}
|
|
|