A read/write buffer that indexes in bytes.

Method Description
GetDimensions Gets the resource dimensions.
InterlockedAdd Adds, atomically.
InterlockedAnd ANDs, atomically.
InterlockedCompareExchange Compares and exchanges, atomically.
InterlockedCompareStore Compares and stores, atomically.
InterlockedExchange Exchanges, atomically.
InterlockedMax Finds the max, atomically.
InterlockedMin Find the min, atomically.
InterlockedOr ORs, atomically.
InterlockedXor XORs, atomically.
Load Gets one value.
Load2 Gets two values.
Load3 Gets three values.
Load4 Gets four values.
Store Sets one value.
Store2 Sets two values.
Store3 Sets three values.
Store4 Sets four values.

RWByteAddressBuffer objects can be prefixed with the storage class globallycoherent. This storage class causes memory barriers and syncs to flush data across the entire GPU such that other groups can see writes. Without this specifier, a memory barrier or sync will flush a UAV only within the current group.

The UAV format bound to this resource needs to be created with the DXGI_FORMAT_R32_TYPELESS format.

The UAV bound to this resource must have been created with the D3D11_BUFFER_UAV_FLAG_RAW.

You can use the RWByteAddressBuffer object type when you work with raw buffers. For more info about raw viewing of buffers, see Raw Views of Buffers.

Minimum Shader Model

This object is supported in the following shader models.

Shader Model Supported
Shader Model 5 and higher shader models Shader Model 4 (Available through the Direct3D 11 API by using 10.0 or 10.1 feature level (D3D_FEATURE_LEVEL_10_X) on devices that support compute shaders. For more information about compute shader support on downlevel hardware, see Compute Shaders on Downlevel Hardware.)

This object is supported for the following types of shaders:

Vertex Hull Domain Geometry Pixel Compute
x x

See also

Shader Model 5 Objects