D3DKMT_RENDER structure (d3dkmthk.h)

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

Syntax

typedef struct _D3DKMT_RENDER {
  union {
    [in]     D3DKMT_HANDLE hDevice;
    [in]     D3DKMT_HANDLE hContext;
  };
  [in]     UINT                                  CommandOffset;
  [in]     UINT                                  CommandLength;
  [in]     UINT                                  AllocationCount;
  [in]     UINT                                  PatchLocationCount;
  void                                  D3DKMT_PTR(
    VOID              *unnamedParam1,
    pNewCommandBuffer unnamedParam2
  );
  [in/out] UINT                                  NewCommandBufferSize;
  void                                  D3DKMT_PTR(
    D3DDDI_ALLOCATIONLIST *unnamedParam1,
    pNewAllocationList    unnamedParam2
  );
  [in/out] UINT                                  NewAllocationListSize;
  void                                  D3DKMT_PTR(
    D3DDDI_PATCHLOCATIONLIST *unnamedParam1,
    pNewPatchLocationList    unnamedParam2
  );
  [in/out] UINT                                  NewPatchLocationListSize;
  [in]     D3DKMT_RENDERFLAGS                    Flags;
  [in]     D3DKMT_ALIGN64 ULONGLONG              PresentHistoryToken;
  [in]     ULONG                                 BroadcastContextCount;
           D3DKMT_HANDLE                         BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  [out]    ULONG                                 QueuedBufferCount;
  [out]    D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
  void                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
           UINT                                  PrivateDriverDataSize;
} D3DKMT_RENDER;

Members

[in] hDevice

A D3DKMT_HANDLE data type that represents a kernel-mode handle to the device that the command buffer is rendered to. A device handle is supplied to the D3DKMTRender function in the union that D3DKMT_RENDER contains for compatibility with Microsoft Direct3D version 10.

[in] hContext

A D3DKMT_HANDLE data type that represents a kernel-mode handle to the device context that the command buffer is rendered to.

[in] CommandOffset

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

[in] CommandLength

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

[in] AllocationCount

The number of elements in the submitted allocation list.

[in] PatchLocationCount

The number of elements in the submitted patch-location list.

void D3DKMT_PTR( VOID *unnamedParam1, pNewCommandBuffer unnamedParam2)

[in/out] NewCommandBufferSize

The size, in bytes, that the OpenGL ICD requests for the next command buffer if the ResizeCommandBuffer bit-field flag is specified in the Flags member. If ResizeCommandBuffer is not specified, the value in NewCommandBufferSize is ignored. On output, the driver receives the size, in bytes, of the next command buffer to use.

Depending on current memory conditions the output size might not match the input size.

void D3DKMT_PTR( D3DDDI_ALLOCATIONLIST *unnamedParam1, pNewAllocationList unnamedParam2)

[in/out] NewAllocationListSize

The number of elements that the OpenGL ICD requests for the next allocation list if the ResizeAllocationList bit-field flag is specified in the Flags member. If ResizeAllocationList is not specified, the value in NewAllocationListSize is ignored. On output, the driver receives the number of elements that will be available in an array of allocations when the next command buffer is submitted.

Depending on current memory conditions the output size might not match the input size.

void D3DKMT_PTR( D3DDDI_PATCHLOCATIONLIST *unnamedParam1, pNewPatchLocationList unnamedParam2)

[in/out] NewPatchLocationListSize

The number of elements that the OpenGL ICD requests for the next patch-location list if the ResizePatchLocationList bit-field flag is specified in the Flags member. If ResizePatchLocationList is not specified, the value in NewPatchLocationListSize is ignored. On output, the driver receives the number of elements that will be available in an array of patch locations when the next command buffer is submitted.

Depending on current memory conditions the output size might not match the input size.

[in] Flags

A D3DKMT_RENDERFLAGS structure that indicates the type of command buffer, in bit-field flags, to be rendered.

[in] PresentHistoryToken

The present history token for redirected calls to the display miniport driver's DxgkDdiPresent function.

A present history token is a data packet that the rendering app submits to inform the Desktop Window Manager (DWM) that rendering is complete and the swap chain back buffer is ready to be presented.

[in] BroadcastContextCount

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

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

An array of D3DKMT_HANDLE data types that represent kernel-mode 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 contexts that the OpenGL ICD 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 OpenGL ICD sends the command buffer to the owning context (hContext) and broadcasts to that one additional context.

[out] QueuedBufferCount

The number of DMA buffers that are queued to the context that the hContext member specifies after the submission.

[out] NewCommandBuffer

A pointer to a command buffer that the OpenGL ICD receives to use in its next call to the D3DKMTRender function. The driver must always update its pointer to the command buffer after any call to D3DKMTRender regardless of whether the call is successful.

Supported in Windows 7 and later versions:

[in] A pointer to the command buffer to be rendered if the RenderKm flag is set in the Flags member.

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

This member is reserved and should be set to zero.

This member is available beginning with Windows 7.

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dkmthk.h (include D3dkmthk.h)

See also

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent