Skip to main content

SetShapeDmaWritePointer

Sets the Direct Memory Access (DMA) write pointer.

Syntax

Parameters

context   _Inout_
Type: SHAPE_DMA_CONTEXT*
Pointer to a SHAPE_DMA_CONTEXT structure. writePointer   
Type: UINT32
The value for the write pointer.

Return value

Type: HRESULT HRESULT success or error code.

Remarks

To calculate the size of a DMA buffer, use the following formula:
The read and write pointers are incremented as follows:
Addresses within the audio buffer are calculated as follows:
You can prevent blocked DMA commands by ensuring that your audio buffer is sufficiently large and that data is streamed at regular intervals (related to the buffer size). For example, if you are streaming four hardware frames at a time, ensure that some multiple of those frames (at least double-buffered at eight frames) are in the buffer so the hardware can write ahead of the title’s read pointer. Alternatively, you could enforce emptying of the buffer before submitting the next flowgraph (consume, update DMA read pointer, and then submit the flowgraph). For more details, see Blocked commands in Overview of SHAPE. You can submit flowgraphs to be processed as persistent or non-persistent. Persistent flowgraphs process and then remain resident to repeat their processing in the next frame after read and write pointers have advanced and after other context information is updated.

Requirements

Header: shapedmacontext.h Supported platforms: XBOX One family consoles and XBOX Series consoles

See also

ShapeDmaContext
Last modified on August 20, 2026