WDDM のメリット
Note
XDDM ドライバーと VGA ドライバーは、Windows 8 以降のオペレーティング システムではコンパイルされません。 WDDM 1.2 以降のサポートが認定されているドライバーを搭載していない Windows 8 コンピューターにディスプレイ ハードウェアが接続されている場合、システムは既定で基本ディスプレイ ドライバーを実行します。
グラフィックス ドライバーやディスプレイ ドライバーを作成する際は、以下のように機能強化が図られたことから、Windows 2000 ディスプレイ ドライバー モデル (XDDM) ではなく、WDDM を使用する方が簡単です。 さらに、WDDM ドライバーは、オペレーティング システムの安定性とセキュリティの向上にも貢献します。 カーネル モードで実行されるドライバー コードの数が少なく、システム アドレス空間にアクセスすることが可能で、クラッシュの原因となる可能性があります。
Direct3D ランタイムと DirectX グラフィックス カーネル サブシステム (Dxgkrnl) は、より多くの表示処理を実行します。つまり、ドライバーではなく、ランタイムとサブシステムのコードが多くなります。 この処理には、ビデオ メモリを管理し、GPU のダイレクト メモリ アクセス (DMA) バッファーをスケジュールするコードが含まれます。 詳細については、「ビデオ メモリ管理と GPU スケジュール設定」を参照してください。
サーフェスの作成に必要なカーネル モード ステージの数が少なくなります。
Windows Vista 以前のオペレーティング システムでサーフェスを作成するには、次の連続するカーネル モード呼び出しが必要でした。
WDDM でサーフェスを作成する際に必要なのは、ランタイムの pfnAllocateCb 関数を呼び出す、CreateResource ユーザー モード ディスプレイ ドライバーの呼び出しのみです。 この呼び出しで、Dxgkrnl はカーネルモード ドライバーの DxgkDdiCreateAllocation 関数を呼び出します。
サーフェスを作成して破棄する呼び出しと、リソースのロックとロック解除を行う呼び出しは、非常に対等な組み合わせになっています。
WDDM は、ビデオ メモリ、システム メモリ、マネージド サーフェイスを同じように処理します。 Windows Vista 以前のオペレーティング システムでは、これらのコンポーネントはわずかに異なる方法で処理されていました。
シェーダー変換は、ディスプレイ ドライバーのユーザー モード部分で実行されます。
この方法では、シェーダー変換がカーネル モードで実行される場合に発生する次の複雑さが解消されます。
- デバイス ドライバー インターフェイス (DDI) の抽象化に一致しないハードウェア モデル
- 翻訳で使用される複雑なコンパイラ テクノロジ
シェーダー処理はプロセスごとに十分に行われ、ハードウェア アクセスは必要ないため、カーネル モードのシェーダー処理は必要ありません。 そのため、シェーダー変換コードはユーザー モードで処理できます。
ユーザー モードの変換コードに関する try/except コードを記述する必要があります。 変換エラーが発生した場合は、アプリケーション処理に戻る必要があります。
バックグラウンド翻訳 (つまり、他の表示処理スレッドとは別のスレッドで実行される翻訳コード) は、ユーザー モードの方が簡単に記述できます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示