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
このメンバーは予約されており、0 に設定する必要があります。
PagingEngineCanSwizzle
このメンバーは予約されており、0 に設定する必要があります。
SectionBackedPrimary
ドライバーがセクションベースのプライマリ割り当てをサポートするかどうかを指定します。 Windows 8 以降でサポートされています。
CrossAdapterResource
ドライバーが、ハイブリッド システム<内のクロスアダプター リソースとの間でのコピーの階層 1 のサポートを提供するかどうかを指定します。 Windows 8.1 以降でサポートされています。
WDDM 2.4 以降、DXGI では、レンダリングが 1 つの GPU 上にあり、別の GPU のモニターに表示される広範なシナリオで、現在のハイブリッド プレゼンテーションの最適化が可能になります。 これは、両方の GPU がクロスアダプター リソースをサポートしている場合にのみ可能です。
クロス アダプター リソースのプロパティを次に示します。
- リソースは、Aperture GPU メモリ セグメントにのみページングできます
- リソースは共有として割り当てられます。
- リソースは、CPU Visible とマークされている必要があります。
- 割り当ては、書き込み結合として OS によって作成されます。
- リソースには割り当てが 1 つだけあり、線形形式です。
- リソースには、標準ピッチアライメント (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
- リソース メモリの開始アドレスは、1 つのページ境界に配置されます。
- リソースは、カーネル モードからの標準割り当てとして作成され、後で UMD によって開かれる場合があります。
- リソースは UMD によって作成される場合があります。
クロス アダプターの割り当てはプライマリとして使用できますが、ドライバーは情報を取得しません。これは通常、プライマリの作成時に提供されます。
VirtualAddressingSupported
ドライバーが仮想メモリのアドレス指定をサポートするかどうかを指定します。 GPU 仮想メモリ アドレス指定のサポートを表現するには、ドライバーで VirtualAddressingSupported キャップを設定し、GpuMmuSupported または IoMmuSupported キャップ する必要があります。 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
すべての DDI が実装されている場合は、ホスト KMD で上限を設定する必要があります。 Windows 10 バージョン 1703 (WDDM 2.2) 以降でサポートされています。
IoMmuSecureModeSupported
ドライバーが IOMMU ベースの GPU 分離 サポートしていることを示します。 Windows 10 バージョン 1803 (WDDM 2.4) 以降でサポートされています。
DisableSelfRefreshVRAMInS3
S3 での VRAM セルフリフレッシュのサポートを無効にします。 Windows 10 バージョン 1803 以降でサポートされています。
IoMmuSecureModeRequired
IOMMU ハードウェアと分離のサポート (IommuSecureModeSupported フラグで参照) が必要であるか、OS がそれ以外の場合はアダプターを起動しないことを示します。 Windows 10 バージョン 2004 (WDDM 2.7) 以降でサポートされています。
MapAperture2Supported
ドライバーが DXGK_OPERATION_MAP_APERTURE_SEGMENT2 ページング バッファー操作をサポートしていることを示します。これは、IOMMU DMA の再マップ に必要。 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をサポートします。
- 上記の最小仕様のクロスアダプター・プライマリに関連するすべてのプレゼンテーション関連 DDI をサポートします。 例としては、pfnCreateResource、pfnCheckMultiplaneOverlaySupport、pfnPresentMultiplaneOverlay/pfnPresent1 があります。 MPO 仕様やハイブリッド スペックなど、必要な詳細については、既存の仕様を参照してください。CASO から抜け出す方法の詳細については、以下のセクションを参照してください。
AlwaysPoweredVRAM
Reserved
このメンバーは予約されており、0 に設定する必要があります。 このメンバーを 0 に設定することは、Value メンバーの残りの 31 ビット (OutOfOrderLock 設定した後) をゼロに設定することと同じです。 予約済み は、DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7場合にのみ使用できます。
Value
この値は、メンバーをまとめて操作するために使用されます。
PagingNode
ページング操作に使用するノードの 0 から始まるインデックス。 ドライバーが DXGK_DRIVERCAPS 構造体の SchedulingCaps メンバーの MultiEngineAware ビット フィールド メンバーを設定していない場合、DirectX グラフィックス カーネル サブシステムは、PagingNode の設定無視します。 このメンバーは WDDM 1.x にのみ適用されます。 WDDM 2.x では、PagingNode が DXGK_PHYSICALADAPTERCAPSに移動されました。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
ヘッダー | d3dkmddi.h (D3dkmddi.h を含む) |