struct AppendStructuredBuffer<T, L>

Conditionally conforms to: __IDynamicResourceCastable<__DynamicResourceKind.General>

Description

Represents an opaque handle to an append structured buffer allocated in global memory. A structured buffer can be viewed as an array of the specified element type. An append structure buffer internally maintains an atomic counter to keep track of the number of elements in the buffer, and provide an atomic operation to append a new element to the buffer.

Generic Parameters

T

The element type of the buffer.

L: IBufferDataLayout = DefaultDataLayout

The memory layout of the buffer.

Fields

descriptorAccess : DescriptorAccess = DescriptorAccess.ReadWrite

kind : DescriptorKind = DescriptorKind.StorageBuffer

Methods

Conditional Conformances

Conformance to __IDynamicResourceCastable<__DynamicResourceKind.General>

AppendStructuredBuffer<T, L> additionally conforms to __IDynamicResourceCastable<__DynamicResourceKind.General> when the following conditions are met:

Remarks

This type is supported natively when targeting HLSL. When generating code for other targets, this type is translated into a pair or an ordinary RWStructuredBuffer and a separate RWStructuredBuffer that holds the atomic counter. The L generic parameter is used to specify the memory layout of the buffer when generating SPIRV. L must be one of DefaultDataLayout, Std140DataLayout, Std430DataLayout or ScalarDataLayout. The default value is DefaultDataLayout. When generating code for other targets, this parameter is ignored and has no effect on the generated code.

See also

RWStructuredBuffer, ConsumeStructuredBuffer, RasterizerOrderedStructuredBuffer.