RWByteAddressBuffer.InterlockedAddF32

Description

Perform a 32-bit floating point atomic add operation at byteAddress.

Signature

void RWByteAddressBuffer.InterlockedAddF32(
    uint byteAddress,
    float valueToAdd,
    out float originalValue);

void RWByteAddressBuffer.InterlockedAddF32(
    uint byteAddress,
    float valueToAdd);

Parameters

byteAddress : uint

The address at which to perform the atomic add operation.

valueToAdd : float

The value to add to the value at byteAddress.

originalValue : float

The original value at byteAddress before the add operation.

Remarks

For SPIR-V, this function maps to OpAtomicFAdd. For HLSL, this function translates to an NVAPI call due to lack of native HLSL intrinsic for floating point atomic add. For CUDA, this function maps to atomicAdd.

Availability and Requirements

Defined for the following targets:

hlsl

Available in all stages.

Requires capability: hlsl_nvapi.

glsl

Available in all stages.

cuda

Available in all stages.

metal

Available in all stages.

spirv

Available in all stages.

Requires capabilities: spvAtomicFloat32AddEXT, spvAtomicFloat32MinMaxEXT.