24 lines
488 B
HLSL
24 lines
488 B
HLSL
|
int atomicLoad_1(RWByteAddressBuffer buffer, uint offset) {
|
||
|
int value = 0;
|
||
|
buffer.InterlockedOr(offset, 0, value);
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
cbuffer cbuffer_constants : register(b0, space1) {
|
||
|
uint4 constants[1];
|
||
|
};
|
||
|
|
||
|
RWByteAddressBuffer result : register(u1, space1);
|
||
|
|
||
|
RWByteAddressBuffer s : register(u0, space0);
|
||
|
|
||
|
int runTest() {
|
||
|
return atomicLoad_1(s, (4u * (0u + uint(constants[0].x))));
|
||
|
}
|
||
|
|
||
|
[numthreads(1, 1, 1)]
|
||
|
void main() {
|
||
|
result.Store(0u, asuint(uint(runTest())));
|
||
|
return;
|
||
|
}
|