blob: e42af422db12974e7b3885bfdd46725727c22f46 [file] [log] [blame]
Peng Huangc00ff7f2023-03-31 17:55:19 +00001RWByteAddressBuffer sb_rw : register(u0);
Antonio Maiorano08f4b552022-05-31 13:20:28 +00002
Ben Clayton1a1b5272023-02-24 17:16:55 +00003int sb_rwatomicAdd(uint offset, int value) {
Ben Claytone027e812021-07-09 16:50:14 +00004 int original_value = 0;
Ben Clayton1a1b5272023-02-24 17:16:55 +00005 sb_rw.InterlockedAdd(offset, value, original_value);
Ben Claytone027e812021-07-09 16:50:14 +00006 return original_value;
7}
8
Ben Clayton6a772362021-06-18 18:56:13 +00009
Ben Clayton77a90cb2023-03-06 18:25:08 +000010RWByteAddressBuffer prevent_dce : register(u0, space2);
11
Ben Claytone6d171a2021-06-18 18:56:13 +000012void atomicAdd_d32fe4() {
Ben Clayton1a1b5272023-02-24 17:16:55 +000013 int res = sb_rwatomicAdd(0u, 1);
Ben Clayton77a90cb2023-03-06 18:25:08 +000014 prevent_dce.Store(0u, asuint(res));
Ben Claytone6d171a2021-06-18 18:56:13 +000015}
Ben Clayton6a772362021-06-18 18:56:13 +000016
Ben Claytone6d171a2021-06-18 18:56:13 +000017void fragment_main() {
18 atomicAdd_d32fe4();
19 return;
20}
21
22[numthreads(1, 1, 1)]
23void compute_main() {
24 atomicAdd_d32fe4();
25 return;
26}