ハイブリッド システム DDI と dList DLL のサポート
ハイブリッド システム での アダプター間リソース のサポートは、Windows 8.1 (WDDM 1.3) 以降で導入されました。 次のユーザー モード関数、カーネル モード関数、構造体、および列挙型を使用できます。
- D3D10_DDI_RESOURCE_MISC_FLAG 列挙型
- D3DDDI RESOURCEFLAGS2 構造
- D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS 構造体
- D3DKMDT_GDISURFACEDATA 構造体
- D3DKMDT_GDISURFACETYPE 列挙型
- DXGK_DRIVERCAPS 構造体
- DXGK_VIDMMCAPS 構造体
- pfnQueryDListForApplication1 関数
クロスアダプター リソース スキャンアウト(CASO) 機能 は、Windows Server 2022 (WDDM 2.9) 以降で導入されました。 CASO に対して次のサポートが追加されました。
- pfnQueryDListForApplication2 関数 (追加)
- D3DDDI_DLIST_QUERY_RESULT 列挙 (追加)
- D3DDDI_DLIST_QUERY_DECISION_FACTOR 列挙 (追加)
- NoHybridDiscreteDListDllSupport が DXGK_DRIVERCAPS 構造体に追加されました
- CrossAdapterResourceTexture と CrossAdapterResourceScanout が DXGK_VIDMMCAPS 構造体に追加されました
Note
Windows Server 2022 (WDDM 2.9) 以降の OS バージョンでは、ハイブリッド システム上のユーザー モード ディスプレイ ドライバー (UMD) は、CASO のサポートを実装しているかどうかに関係なく、 pfnQueryDListForApplication1 に代わる pfnQueryDListForApplication2 DDI をサポートする必要があります。
dList DLL の設定
dList は、ディスクリート GPU でのハイ パフォーマンス レンダリングに クロスアダプター共有サーフェス を必要とするアプリケーションの一覧です。
ディスクリート GPU の UMD は、 pfnQueryDListForApplication2 関数をエクスポートする個別の小さな dList DLL をインストールします。 オペレーティング システム自体は、アプリケーションを実行する GPU を決定しません。 代わりに、Direct3D ランタイムは、Direct3D の初期化中に pfnQueryDListForApplication2 を最大で 1 回呼び出します。
ドライバーは、プロセス情報の最新の一覧を照会して、プロセスが統合 GPU ではなく個別 GPU のパフォーマンスを向上させる必要があるかどうかを判断する必要があります。
最適なパフォーマンスを得るには、DLLで次のことを行う必要があります。
- サイズが 200 KB (キロバイト)以下
- 割り当てを最小限に抑える
- pfnQueryDListForApplication2 から 4 ミリ秒以下で戻ることができる。
dList DLL の登録
UMD は、INF ファイル内の小さな dList DLL の名前をレジストリ キー UserModeDListDriverName と UserModeDListDriverNameWow の下に提供します。後者は Wow64 レジストリ エントリの下にあります。 次に INF コードの例を示します。
[Xxx_SoftwareDeviceSettings]
...
HKR,, UserModeDListDriverName, %REG_MULTI_SZ%, dlistumd.dll
HKR,, UserModeDListDriverNameWow, %REG_MULTI_SZ%, dlistumdwow.dll