Windows Display Driver Model
Windows Display Driver Model (ウィンドウズ・ディスプレイ・ドライバ・モデル、WDDM)とは、新しくWindows Vistaで導入された、ビデオカード用デバイスドライバの枠組みである。Direct 3D 9ExやDirect 3D 10以降のDirect3Dは、WDDMに対応するよう設計されている。
Windows Vistaでは、WDDMではなく、Windows 2000/XPのドライバモデル (XPDM) によるディスプレイドライバも使用可能である。ただし、その場合、Desktop Window Manager (DWM)、ひいてはWindows Aeroテーマが使用できない。DWMがDirect3D 9Exを使用するためである。Windows Server 2008やWindows 7でも同様である。
概要
DirectX 9までのバージョンにおいては、DirectXランタイム及びデバイスドライバ層の設計がシングルタスク前提となっており、GPGPUや同時に複数の3Dアプリケーションを安全に動作させることが困難になってきた。そのため、Windows Vistaのリリースに伴い大幅に設計を変更し、マルチスレッドに対応させ安定度も向上させるべく設計された新しいドライバモデルがWDDMである。
- GPUの仮想化
- GPUのスケジューリングやVRAMの割り当ての仮想化で、複数のアプリケーションが互いを意識することなく資源を扱えるようになっている。
- ユーザーモードへの分離
- WDDMではドライバソフトウェアがカーネルモードとユーザーモードに分かれ、不正なドライバ制御などでシステムがクラッシュを起こしにくい設計となっている。
- GPUの回復
- ディスプレイドライバがフリーズしたとしても、Windowsカーネルが検出し、OSの再起動無しにGPUを初期化して、ディスプレイの表示を復活できるようになっている[1]。
WDDM 1.1
Windows 7では、新しくWDDM 1.1が登場する。なお、Windows 7でもWindows Vista用のWDDM 1.0ドライバの使用は可能である。
なお、Vistaにおいては、2009年10月のWindows Updateで「Windows Vista 用のプラットフォーム更新プログラム(KB971644)」の配布が始まり、これを導入することでWDDM1.1対応になるとの誤解があるが、DirectX11やDirect2Dなど、Windows7に標準として取り込まれた機能の一部がバックポートされるだけであり、ドライバモデルそのものがWDDM1.1になるわけではない。従って、バックポートされた機能を使わないアプリケーションの動作は特に変化はないので注意が必要。[4]。
脚注
- ^ “WDDM によるタイムアウトの検出と GPU の回復”. WHDC. マイクロソフト (2009年4月27日). 2009年6月6日閲覧。
- ^ 実装するかどうかはオプション扱いであり、またネイティブにサポートされるわけではなく、基本的にDirect2D経由での実装となる。
- ^ WDDM1.0では、同時に1つしかグラフィックドライバをロードできない制約がある。このため、同じドライバを使うGPUならば、グレードを問わず混在することは可能だが、ドライバが異なるGPUを混在することはできない(プライマリ側が優先され、セカンダリ以降に装着されたGPUはドライバ読込みエラーとなる)。なお、使用ドライバをXPDMで統一すれば混在することは可能。
- ^ HOTFIX配布サイトにおいても、WDDM1.1対応とは一切謳われておらず、DxDiagでもWDDM1.0扱いのままである。