DXGKARG_RENDER structure (d3dkmddi.h)
The DXGKARG_RENDER structure describes members for generating a direct memory access (DMA) buffer from a command buffer.
Syntax
typedef struct _DXGKARG_RENDER {
[in] const VOID *pCommand;
[in] UINT CommandLength;
[out] VOID *pDmaBuffer;
[in] UINT DmaSize;
[in] VOID *pDmaBufferPrivateData;
[in] UINT DmaBufferPrivateDataSize;
[in] DXGK_ALLOCATIONLIST *pAllocationList;
[in] UINT AllocationListSize;
[in] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListIn;
[in] UINT PatchLocationListInSize;
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
[in] UINT PatchLocationListOutSize;
[in/out] UINT MultipassOffset;
[in] UINT DmaBufferSegmentId;
[in] PHYSICAL_ADDRESS DmaBufferPhysicalAddress;
} DXGKARG_RENDER;
Members
[in] pCommand
A pointer to the start of the command buffer.
[in] CommandLength
The size, in bytes, of the command buffer that pCommand points to.
[out] pDmaBuffer
A pointer to the start of the DMA buffer, which is aligned on 4 KB. This buffer can be sent through DMA to the graphics hardware. Before the display miniport driver returns from the DxgkDdiRender or DxgkDdiRenderKm functions, the driver should set pDmaBuffer to the next empty byte that follows the last byte that the driver wrote to, or the driver should point to the location (one byte beyond the buffer space) if no more space is available. This location would have been correct if the buffer was large enough.
[in] DmaSize
The size, in bytes, of the DMA buffer that pDmaBuffer points to.
[in] pDmaBufferPrivateData
A pointer to a driver-resident private data structure that is used for generating the DMA buffer that pDmaBuffer points to.
[in] DmaBufferPrivateDataSize
The number of bytes that remain in the private data structure that pDmaBufferPrivateData points to for the current operation.
[in] pAllocationList
An array of DXGK_ALLOCATIONLIST structures for the list of allocations that the DMA buffer references. Each allocation that is referenced should appear once for optimal performance.
[in] AllocationListSize
The available number of elements in the array that pAllocationList specifies, which represents the number of allocation specifications to send through DMA to the graphics hardware.
[in] pPatchLocationListIn
An array of D3DDDI_PATCHLOCATIONLIST structures for the patch-location list that the user-mode display driver provides in a call to the pfnRenderCb function.
[in] PatchLocationListInSize
The number of elements in the patch-location list that pPatchLocationListIn specifies.
[in/out] pPatchLocationListOut
An array of D3DDDI_PATCHLOCATIONLIST structures for the patch-location list that the display miniport driver fills in. Before the driver returns from a call to its DxgkDdiRender or DxgkDdiRenderKm functions, the driver must set pPatchLocationListOut to the next D3DDDI_PATCHLOCATIONLIST element that follows the last D3DDDI_PATCHLOCATIONLIST element that the driver updated.
[in] PatchLocationListOutSize
The number of elements in the patch-location list that pPatchLocationListOut specifies. The display miniport driver is not required to fill all of the elements in the entire list; the driver must use only elements that are necessary to describe the patch location within the DMA buffer.
[in/out] MultipassOffset
A UINT value that specifies the progress of the rendering operation if the display miniport driver's DxgkDdiRender or DxgkDdiRenderKm functions must return STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER to obtain a new DMA buffer. When the driver's DxgkDdiRender or DxgkDdiRenderKm function is first called with a new command buffer, MultipassOffset is initialized to zero. Before the driver returns from the DxgkDdiRender or DxgkDdiRenderKm calls, the driver sets this member to show translation progress for subsequent DxgkDdiRender or DxgkDdiRenderKm call with the same command buffer. The DirectX graphics kernel subsystem does not change the value further.
[in] DmaBufferSegmentId
The identifier of the memory segment that the DMA buffer was paged in. If the identifier is zero, the DMA buffer is not correctly paged in.
[in] DmaBufferPhysicalAddress
A PHYSICAL_ADDRESS data type (which is defined as LARGE_INTEGER) that indicates the physical address where the DMA buffer was paged in. If the physical address is zero, the DMA buffer is not correctly paged in.
Remarks
Support for the DxgkDdiRenderKm function is added beginning with Windows 7 for display adapters that support GDI Hardware Acceleration.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista |
Header | d3dkmddi.h (include D3dkmddi.h) |