DXGIDDICB_PRESENT structure (dxgiddi.h)

The DXGIDDICB_PRESENT structure describes allocations that content is copied to and from.

Syntax

typedef struct DXGIDDICB_PRESENT {
  [in] D3DKMT_HANDLE               hSrcAllocation;
  [in] D3DKMT_HANDLE               hDstAllocation;
  [in] void                        *pDXGIContext;
  [in] HANDLE                      hContext;
  [in] UINT                        BroadcastContextCount;
       HANDLE                      BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
       D3DKMT_HANDLE               *BroadcastSrcAllocation;
       D3DKMT_HANDLE               *BroadcastDstAllocation;
       UINT                        PrivateDriverDataSize;
       PVOID                       pPrivateDriverData;
       BOOLEAN                     bOptimizeForComposition;
       BOOL                        SyncIntervalOverrideValid;
       DXGI_DDI_FLIP_INTERVAL_TYPE SyncIntervalOverride;
} DXGIDDICB_PRESENT;

Members

[in] hSrcAllocation

A D3DKMT_HANDLE data type that represents a kernel-mode handle to the source allocation. The Microsoft Direct3D runtime's pfnAllocateCb function returns this handle. Therefore, the user-mode display driver should use this handle to copy content from.

[in] hDstAllocation

A D3DKMT_HANDLE data type that represents a kernel-mode handle to the destination allocation. hDstAllocation can be zero if the destination is unknown; kernel mode will determine the destination just before sending the hardware command stream through DMA to the graphics processor.

[in] pDXGIContext

A handle to the Microsoft DirectX Graphics Infrastructure (DXGI) context. This handle is opaque to the driver. The driver should assign the handle from the pDXGIContext member of the DXGI_DDI_ARG_PRESENT structure that the driver received in a call to its PresentDXGI function to this member.

[in] hContext

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

[in] BroadcastContextCount

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

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

An array of handles to the additional contexts to broadcast the current present operation 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 present operation to.

Broadcasting is supported only for flip operations. To broadcast a flip operation, the display miniport driver must support memory mapped I/O (MMIO)-based flips. To indicate support of MMIO flips, the display miniport driver sets the FlipOnVSyncMmIo bit-field flag in the FlipCaps member of the DXGK_DRIVERCAPS structure when its DxgkDdiQueryAdapterInfo function is called.

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

BroadcastSrcAllocation

Allocations which content will be presented.

BroadcastDstAllocation

If non-zero, represents the destination allocations of the present.

PrivateDriverDataSize

Private driver data size in bytes.

pPrivateDriverData

Private driver data to pass to DxgiPresent.

bOptimizeForComposition

DWM is involved in composition.

SyncIntervalOverrideValid

Override app sync interval is valid.

SyncIntervalOverride

Override app sync interval.

Requirements

Requirement Value
Minimum supported client Available in Windows Vista and later versions of the Windows operating systems.
Header dxgiddi.h (include D3d10umddi.h)

See also

DXGI_DDI_ARG_PRESENT

DXGK_DRIVERCAPS

DxgkDdiQueryAdapterInfo

PresentDXGI

pfnAllocateCb

pfnCreateContextCb

pfnPresentCbDXGI