D3DDDICB_RENDER structure (d3dumddi.h)

The D3DDDICB_RENDER structure describes the current command buffer to be rendered.

Syntax

typedef struct _D3DDDICB_RENDER {
  UINT                     CommandLength;
  UINT                     CommandOffset;
  UINT                     NumAllocations;
  UINT                     NumPatchLocations;
  VOID                     *pNewCommandBuffer;
  UINT                     NewCommandBufferSize;
  D3DDDI_ALLOCATIONLIST    *pNewAllocationList;
  UINT                     NewAllocationListSize;
  D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
  UINT                     NewPatchLocationListSize;
  D3DDDICB_RENDERFLAGS     Flags;
  HANDLE                   hContext;
  UINT                     BroadcastContextCount;
  HANDLE                   BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  ULONG                    QueuedBufferCount;
  D3DGPU_VIRTUAL_ADDRESS   NewCommandBuffer;
  VOID                     *pPrivateDriverData;
  UINT                     PrivateDriverDataSize;
  D3DDDI_MARKERLOGTYPE     MarkerLogType;
  UINT                     RenderCBSequence;
  union {
    struct {
      UINT FirstAPISequenceNumberHigh;
      UINT CompletedAPISequenceNumberLow0Size;
      UINT CompletedAPISequenceNumberLow1Size;
      UINT BegunAPISequenceNumberLow0Size;
      UINT BegunAPISequenceNumberLow1Size;
    };
    UINT BatchedMarkerDataCount;
  };
  union {
    struct {
      const UINT *pCompletedAPISequenceNumberLow0;
      const UINT *pCompletedAPISequenceNumberLow1;
      const UINT *pBegunAPISequenceNumberLow0;
      const UINT *pBegunAPISequenceNumberLow1;
    };
    const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
  };
} D3DDDICB_RENDER;

Members

CommandLength

[in] The size, in bytes, of the command buffer, starting from offset zero.

CommandOffset

[in] The offset, in bytes, to the first command in the command buffer.

NumAllocations

[in] The number of elements in the allocation list.

NumPatchLocations

[in] The number of elements in the patch-location list.

pNewCommandBuffer

[out] A pointer to a command buffer that the user-mode display driver receives to use in its next call to the pfnRenderCb function.

NewCommandBufferSize

[in/out] The size, in bytes, that the user-mode display driver requests for the next command buffer.

The driver receives the size, in bytes, of the next command buffer to use.

pNewAllocationList

[out] An array of D3DDDI_ALLOCATIONLIST structures that the user-mode display driver receives to use as the allocation list in its next call to the pfnRenderCb function.

NewAllocationListSize

[in/out] The number of elements that the user-mode display driver requests for the next allocation list.

The driver receives the number of elements for the allocation list that will be available when the next command buffer is submitted.

pNewPatchLocationList

[out] An array of D3DDDI_PATCHLOCATIONLIST structures that the user-mode display driver receives to use as the patch-location list in its next call to the pfnRenderCb function.

NewPatchLocationListSize

[in/out] The number of elements that the user-mode display driver requests for the next patch-location list.

The driver receives the number of elements for the patch-location list that will be available when the next command buffer is submitted.

Flags

[in] A D3DDDICB_RENDERFLAGS structure that indicates information about a command buffer to be rendered.

hContext

[in] A handle to the context that the driver submits the rendering operation to. The user-mode display driver previously created this context by calling the pfnCreateContextCb function.

BroadcastContextCount

[in] The number of additional contexts in the array that the BroadcastContext member specifies.

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

[in] An array of handles to the additional contexts to broadcast the current command buffer to. The D3DDDI_MAX_BROADCAST_CONTEXT constant, which is defined as 64, defines the maximum number of additional contexts that the user-mode display driver can broadcast the current command buffer to.

The original context that the hContext member specifies and that owns the command buffer is not an element in the BroadcastContext array. For example, if the BroadcastContext array contains one element, the user-mode display driver sends the command buffer to the owning context (hContext) and broadcasts to that one additional context.

QueuedBufferCount

[out] The number of DMA buffers that are queued to the context that the hContext member specifies after the current submission occurs.

NewCommandBuffer

This member is reserved and should be set to zero.

This member is available beginning with Windows 7.

pPrivateDriverData

[in] This member is reserved and should be set to zero.

This member is available beginning with Windows 7.

PrivateDriverDataSize

[in] This member is reserved and should be set to zero.

This member is available beginning with Windows 7.

MarkerLogType

A D3DDDI_MARKERLOGTYPE enumeration that indicates the type of marker in the Event Tracing for Windows (ETW) log that the user-mode display driver supports.

RenderCBSequence

A unique identifier for each pfnRenderCb function call. Starts at a value of 1 for contexts associated with single-threaded user-mode DDIs and ranges to a value of 0x80000001 for contexts associated with free-threaded user mode DDIs. The user-mode display driver must increment the value for each pfnRenderCb call it makes on any engine.

FirstAPISequenceNumberHigh

Used by the driver to pass the context's API sequence number.

CompletedAPISequenceNumberLow0Size

Used by the driver to pass the context's API sequence number.

CompletedAPISequenceNumberLow1Size

Used by the driver to pass the context's API sequence number.

BegunAPISequenceNumberLow0Size

Used by the driver to pass the context's API sequence number.

BegunAPISequenceNumberLow1Size

Used by the driver to pass the context's API sequence number.

BatchedMarkerDataCount

pCompletedAPISequenceNumberLow0

A pointer used by the driver to pass the context's API sequence number.

pCompletedAPISequenceNumberLow1

A pointer used by the driver to pass the context's API sequence number.

pBegunAPISequenceNumberLow0

A pointer used by the driver to pass the context's API sequence number.

pBegunAPISequenceNumberLow1

A pointer used by the driver to pass the context's API sequence number.

pBatchedMarkerData

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dumddi.h (include D3dumddi.h)

See also

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb