RWByteAddressBuffer.InterlockedCompareExchange

Description

Perform a 32-bit integer atomic compare-and-exchange operation at the specified byte address within the RWByteAddressBuffer.

Signature

void RWByteAddressBuffer.InterlockedCompareExchange(
    uint dest,
    uint compare_value,
    uint value,
    out uint original_value);

Parameters

dest : uint

The address at which to perform the atomic compare-and-exchange operation.

compare_value : uint

The value to perform bitwise comparison to the value at byteAddress.

value : uint

The value to store at byteAddress if the comparison is successful.

original_value : uint

The original value at byteAddress before the compare-and-exchange operation.

Remarks

For SPIR-V, this function maps to OpAtomicCompareExchange. For HLSL, this function translates to InterlockedCompareExchange. For CUDA, this function maps to atomicCAS.

Availability and Requirements

Defined for the following targets:

hlsl

Available in all stages.

glsl

Available in all stages.

cuda

Available in all stages.

metal

Available in all stages.

spirv

Available in all stages.