DXGK_VIDMMCAPS 結構 (d3dkmddi.h)
DXGK_VIDMMCAPS結構會識別顯示迷你埠驅動程式支援的視訊記憶體管理功能。
語法
typedef struct _DXGK_VIDMMCAPS {
union {
struct {
UINT OutOfOrderLock : 1;
UINT DedicatedPagingEngine : 1;
UINT PagingEngineCanSwizzle : 1;
UINT SectionBackedPrimary : 1;
UINT CrossAdapterResource : 1;
UINT VirtualAddressingSupported : 1;
UINT GpuMmuSupported : 1;
UINT IoMmuSupported : 1;
UINT ReplicateGdiContent : 1;
UINT NonCpuVisiblePrimary : 1;
UINT ParavirtualizationSupported : 1;
UINT IoMmuSecureModeSupported : 1;
UINT DisableSelfRefreshVRAMInS3 : 1;
UINT IoMmuSecureModeRequired : 1;
UINT MapAperture2Supported : 1;
UINT CrossAdapterResourceTexture : 1;
UINT CrossAdapterResourceScanout : 1;
UINT AlwaysPoweredVRAM : 1;
#if ...
UINT Reserved : 14;
#elif
UINT Reserved : 15;
#elif
UINT Reserved : 18;
#elif
UINT Reserved : 19;
#elif
UINT Reserved : 21;
#elif
UINT Reserved : 22;
#elif
UINT Reserved : 27;
#elif
UINT Reserved : 28;
#else
UINT Reserved : 31;
#endif
};
UINT Value;
};
UINT PagingNode;
} DXGK_VIDMMCAPS;
成員
OutOfOrderLock
指定驅動程式是否可以鎖定最新實例以外的配置實例。 如果 DDI 線程必須鎖定應用程式線程先前已鎖定和捨棄的頂點緩衝區,驅動程式通常會針對 DDI 線程和負載平衡設定此值。 設定此成員相當於設定 32 位 Value 成員的第一個位 (0x00000001) 。
DedicatedPagingEngine
這個成員是保留的,而且應該設定為零。
PagingEngineCanSwizzle
這個成員是保留的,而且應該設定為零。
SectionBackedPrimary
指定驅動程式是否支援區段支援的主要配置。 從 Windows 8 開始支援。
CrossAdapterResource
指定驅動程式是否提供第 1 層支援在 混合式系統中<的跨適配卡資源複製和複製。 從 Windows 8.1 開始支援。
從WDDM 2.4 開始,DXGI 可為更廣泛的案例啟用目前的混合式簡報優化,無論轉譯是在一個 GPU 上,並在另一個 GPU 監視器上呈現。 只有在兩個 GPU 都支援跨適配卡資源時,才能這樣做。
交叉配接器資源屬性如下所列。
- 資源只能分頁到 aperture GPU 記憶體區段
- 資源會配置為共用。
- 資源必須標示為 CPU Visible。
- 配置將會由OS建立為寫入合併。
- 資源只有一個配置,而且具有線性格式。
- 資源 (128 個字節) 的標準音調對齊。 D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT定義會針對間距對齊方式新增。 資源必須以這個對齊方式的最小倍數建立,其中包含資源內容。
- 資源 (4 個數據列) 的標準高度對齊。 已新增D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT。 資源必須以這個對齊方式的最小倍數建立,其中包含資源內容。
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128
#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
- 資源記憶體的起始位址會對齊一個頁面界限。
- 資源可能是從核心模式建立為標準配置,之後由UMD開啟。
- 資源可能是由 UMD 所建立。
交叉配接器配置可作為主要配接器,但驅動程式將不會取得資訊,通常是在建立主要複本時提供的資訊
VirtualAddressingSupported
指定驅動程式是否支援虛擬記憶體尋址。 為了表示 GPU 虛擬記憶體尋址的支援,驅動程式應該設定 VirtualAddressingSupported cap 和 GpuMmuSupported 或 IoMmuSupported caps。 GpuMmuSupported 和 IoMmuSupported 無法同時設定。 從Windows 10 開始支援。
GpuMmuSupported
指定配接器是否支援 GpuMmu 模型。 適配卡無法同時支援不同引擎上的 GpuMmu 和 IoMmu 模型。 如需詳細資訊,請參閱 GpuMmu 模型 。 從Windows 10 開始支援。
IoMmuSupported
指定配接器是否支援 IoMmu 模型。 適配卡無法同時支援不同引擎上的 GpuMmu 和 IoMmu 模型。 如需詳細資訊,請參閱 IoMmu模型 。 從 Windows 10 (WDDM 2.0) 開始支援。
ReplicateGdiContent
指定配接器是否支援 GDI 內容的複寫。 從Windows 10 開始支援。
NonCpuVisiblePrimary
表示不需要 GDI 配置才能顯示 CPU。 從Windows 10 開始支援。
ParavirtualizationSupported
如果實作所有 DIS,主機 KMD 必須設定上限。 從 Windows 10 1703 版 (WDDM 2.2) 開始支援。
IoMmuSecureModeSupported
表示驅動程式支援 以IOMMU為基礎的 GPU 隔離。 從 Windows 10 1803 版 (WDDM 2.4) 開始支援。
DisableSelfRefreshVRAMInS3
停用 S3 中 VRAM 自我重新整理的支援。 從 Windows 10 1803 版開始支援。
IoMmuSecureModeRequired
指出需要 IommuSecureModeSupported) 旗標所參考的IOMMU硬體和隔離支援 (,否則OS將不會啟動適配卡。 從 Windows 10 2004 (WDDM 2.7) 版開始支援。
MapAperture2Supported
表示驅動程式支援ioMMU DMA重新對應所需的DXGK_OPERATION_MAP_APERTURE_SEGMENT2分頁緩衝區作業。 從 WDDM 2.9 版開始支援。
CrossAdapterResourceTexture
指定驅動程式是否提供第 2 層支援交叉配接器資源的文字。 指出 CrossAdapterResourceTexture 支援的驅動程式也必須指出 CrossAdapterResource 的支援。 從 WDDM 2.9 版開始支援。
CrossAdapterResourceScanout
指定驅動程式是否提供第 3 層支援掃描跨配接器資源。 指出 CrossAdapterResourceScanout 支援的驅動程式也必須指出 CrossAdapterResource 和 CrossAdapterResourceTexture 的支援。 從 WDDM 2.9 版開始支援。
第 3 層支援要求驅動程式能夠針對下列最低規格的跨適配卡資源,在 DXGK_FLIPCAPS 中宣告支援的翻轉功能:
- 跨配接器主要緩衝區大小 1920 x 1080 或更小
- 下列任何支援的 DisplayScanOut 格式的緩衝區像素格式:
- DXGI_FORMAT_R16G16B16A16_FLOAT
- DXGI_FORMAT_R10G10B10A2_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
DXGI 運行時間會查詢驅動程式的 CrossAdapterResourceScanout 支援,如果支援,簡報堆棧應向下移至 1 個複製路徑。 因此,也需要宣告 支援 CrossAdapterResourceScanout 的驅動程式:
- 支援 DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3。
- 針對上述最低規格的交叉配接器主要複本,支援所有相關的簡報相關 DIS。 一些範例包括 pfnCreateResource、pfnCheckMultiplaneOverlaySupport 和 pfnPresentMultiplaneOverlay/pfnPresent1。 如需必要詳細數據,請參閱現有的規格,例如 MPO 規格和混合式規格。如需有關脫離 CASO 的詳細資訊,請參閱下一節。
AlwaysPoweredVRAM
Reserved
這個成員是保留的,而且應該設定為零。 將這個成員設定為零相當於將 Value 成員的 OutOfOrderLock () 設定為零之後,將剩餘的 31 位設定為零。 請注意,只有在DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN7<時,才能使用 [保留]。
Value
這個值是用來共同操作成員。
PagingNode
要用於分頁作業之節點之以零起始的索引。 如果驅動程式未設定 DXGK_DRIVERCAPS 結構之 SchedulingCaps 成員的 MultiEngineAware 位字段成員,DirectX 圖形核心子系統會忽略 PagingNode 的設定。 此成員僅適用於 WDDM 1.x。 在 WDDM 2.x 中, PagingNode 已移至 DXGK_PHYSICALADAPTERCAPS。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmddi.h (包含 D3dkmddi.h) |