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;
[out] VOID *pNewCommandBuffer;
[in/out] UINT NewCommandBufferSize;
[out] D3DDDI_ALLOCATIONLIST *pNewAllocationList;
[in/out] UINT NewAllocationListSize;
[out] D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
[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 *pPrivateDriverData;
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.
[out] pNewCommandBuffer
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.
[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.
[out] pNewAllocationList
An array of D3DDDI_ALLOCATIONLIST structures that the OpenGL ICD receives to use as the allocation list in its next call to the D3DKMTRender function. The driver must always update its pointer to the allocation list after any call to D3DKMTRender regardless of whether the call is successful.
Supported in Windows 7 and later versions:
[in] A pointer to the allocation list to be rendered if the RenderKm flag is set in the Flags member.
[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.
[out] pNewPatchLocationList
An array of D3DDDI_PATCHLOCATIONLIST structures that the OpenGL ICD receives to use as the patch-location list in its next call to the D3DKMTRender function. The driver must always update its pointer to the patch-location list after any call to D3DKMTRender regardless of whether the call is successful.
[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.
pPrivateDriverData
This member is reserved and should be set to zero.
This member is available beginning with Windows 7.
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) |