DXGK_NATIVE_FENCE_CAPS structure (d3dkmddi.h)

A kernel-mode display miniport driver (KMD) returns the GPU's native fence capabilities in DXGK_NATIVE_FENCE_CAPS when its DxgkDdiQueryAdapterInfo function is called with the DXGKQAITYPE_NATIVE_FENCE_CAPS query adapter info type.

Syntax

typedef struct _DXGK_NATIVE_FENCE_CAPS {
  UINT                   MonitoredValueStride;
  BOOLEAN                MapToGpuSystemProcess;
  D3DGPU_VIRTUAL_ADDRESS MinimumAddress;
  D3DGPU_VIRTUAL_ADDRESS MaximumAddress;
  BYTE                   Reserved[28];
} DXGK_NATIVE_FENCE_CAPS;

Members

MonitoredValueStride

To save memory, the OS packs non-shareable native GPU fence objects together into the same memory page. MonitoredValueStride specifies the stride in bytes between OS-managed storage for different fence objects sharing the same memory page.

MapToGpuSystemProcess

Specifies whether native fence current and monitored values should be mapped to a GPU system process address space for use by the context management processor.

MinimumAddress

Minimum virtual address for GPU VA mappings (optional).

MaximumAddress

Maximum virtual address for GPU VA mappings (optional).

Reserved[28]

Reserved for system use.

Remarks

The CurrentValueStride and MonitoredValueStride values specify the stride in bytes between OS-managed storage for different fence objects sharing the same memory page.

When the driver sets MapToGpuSystemProcess, it's instructing the OS to reserve a system process GPU virtual address space for the context management processor to use, and to create GPU VA mappings into that address space for native fence CurrentValue and MonitoredValue. These GPU VAs are subsequently passed to the KMD fence creation callback as DXGKARG_CREATENATIVEFENCE's CurrentValueSystemProcessGpuVa and MonitoredValueSystemProcessGpuVa.

The KMD can also specify an optional MinimumAddress and MaximumAddress to restrict native fence GPU VA mappings within a chosen range for both process address space and system address space. This limit will apply to all native fences created on the system.

For more information about native GPU fences, see Native GPU fence objects.

Requirements

Requirement Value
Minimum supported client Windows 11, version 24H2 (WDDM 3.2)
Header d3dkmddi.h

See also

DxgkDdiQueryAdapterInfo

DXGKQAITYPE_NATIVE_FENCE_CAPS