• Slang Standard Library Reference
    • Interfaces
    • Types
      • Buffer types
        • AppendStructuredBuffer
        • ByteAddressBuffer
        • ConsumeStructuredBuffer
        • RWByteAddressBuffer
          • GetDimensions
          • InterlockedAdd
          • InterlockedAdd64
          • InterlockedAddF16
          • InterlockedAddF16Emulated
          • InterlockedAddF32
          • InterlockedAddI64
          • InterlockedAddU64
          • InterlockedAnd
          • InterlockedAnd64
          • InterlockedAndU64
          • InterlockedCompareExchange
          • InterlockedCompareExchange64
          • InterlockedCompareExchangeFloatBitwise
          • InterlockedCompareExchangeU64
          • InterlockedCompareStore
          • InterlockedCompareStore64
          • InterlockedCompareStoreFloatBitwise
          • InterlockedExchange
          • InterlockedExchange64
          • InterlockedExchangeFloat
          • InterlockedExchangeU64
          • InterlockedMax
          • InterlockedMax64
          • InterlockedMaxU64
          • InterlockedMin
          • InterlockedMin64
          • InterlockedMinU64
          • InterlockedOr
          • InterlockedOr64
          • InterlockedOrU64
          • InterlockedXor
          • InterlockedXor64
          • InterlockedXorU64
          • Load
          • Load2
          • Load2Aligned
          • Load3
          • Load3Aligned
          • Load4
          • Load4Aligned
          • LoadAligned
          • Store
          • Store2
          • Store2Aligned
          • Store3
          • Store3Aligned
          • Store4
          • Store4Aligned
          • StoreAligned
          • _NvInterlockedAddFp16x2
        • RWStructuredBuffer
        • RasterizerOrderedByteAddressBuffer
        • RasterizerOrderedStructuredBuffer
        • StructuredBuffer
      • Math types
      • Miscelaneous types
      • Ray-tracing
      • Sampler types
      • Scalar types
      • Stage IO types
      • Texture types
      • Array
      • Atomic
      • ConstantBuffer
      • DifferentialPair
      • DifferentialPtrPair
      • Optional
      • ParameterBlock
      • Ptr
      • String
      • Tuple
      • _AttributeTargets
    • Attributes
    • Global Declarations

RWByteAddressBuffer.InterlockedCompareStore64

Description

Perform a 64-bit integer atomic compare-and-store operation at byteAddress.

Signature

void RWByteAddressBuffer.InterlockedCompareStore64<T>(
    uint byteAddress,
    T compareValue,
    T value)
    where T : __BuiltinInt64Type;

Generic Parameters

T: __BuiltinInt64Type

Parameters

byteAddress : uint

The address at which to perform the atomic store operation.

compareValue : T

The value to compare to the value at byteAddress.

value : T

The value to store at byteAddress if the the value at address is equal to compareValue.

Remarks

For SPIR-V, this function maps to OpAtomicCompareExchange. For HLSL, this function translates to InterlockedCompareStore64 and requires shader model 6.6. 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.

spirv

Available in all stages.

Requires capability: spvInt64Atomics.