Windows Display Driver Model

Windows Display Driver Model (WDDM)とは



Windows Display Driver Model(WDDM)は、WindowsにおけるGPU(グラフィックス処理装置)用デバイスドライバのアーキテクチャです。2006年にWindows Vistaで導入されて以来、Direct3D 9ExやDirect3D 10以降のDirect3Dは、WDDMに対応するように設計されています。

導入の背景



DirectX 9以前のバージョンでは、DirectXランタイムとデバイスドライバ層がシングルタスクを前提とした設計であったため、複数の3Dアプリケーションを同時に安全かつ安定的に動作させることが困難でした。この問題を解決するため、Windows Vistaのリリースに合わせて大幅な設計変更が行われ、マルチスレッド対応と安定性向上が図られました。これがWDDMの誕生です。

WDDMとDWM(Desktop Window Manager)の組み合わせにより、Windows Aeroのようなデスクトップ描画にGPUのハードウェアアクセラレーションが活用されるようになり、CPUの負荷軽減に貢献しました。

WDDMの主な特徴



GPUの仮想化: GPUのスケジューリングとVRAM(ビデオメモリ)の割り当てを仮想化することで、複数のアプリケーションが互いに干渉することなく、リソースを効率的に利用できるようになりました。
ユーザーモードへの分離: ドライバソフトウェアをカーネルモードとユーザーモードに分離することで、不正なドライバ制御によるシステムクラッシュのリスクを低減しました。
GPUの回復機能: ディスプレイドライバがフリーズした場合でも、Windowsカーネルがそれを検出し、OSの再起動なしにGPUを初期化し、ディスプレイ表示を回復させることができます。
GPGPUの安定化: 並列処理能力の高いGPUを汎用計算に利用するGPGPU(General-Purpose computing on Graphics Processing Units)の取り組みは、従来、システム全体の不安定化やクラッシュを引き起こす可能性がありましたが、WDDMに対応したドライバは、GPUに過負荷がかかった場合にデバイスをリセット・再初期化することで、システム全体の安定性を保ちます。
.NET Frameworkとの連携: .NET Framework 3.0以降に含まれるWindows Presentation Foundation (WPF)は、Direct3D 9ベースのハードウェアアクセラレーションに対応していますが、Vista以降ではWDDM対応のDirect3D 9Exが使用されています。

WDDMのバージョン



WDDMは、Windowsの進化とともにバージョンアップを重ねてきました。以下に各バージョンと主な特徴をまとめます。

XDDM/XPDM: WDDM導入以前のグラフィックスドライバの枠組みを指します。Windows 2000 Display Driver Model (XDDM) やWindows XP Display Driver Model (XPDM) がこれにあたります。これらのドライバは、Windows Vista以降のOSでも利用可能でしたが、DWMやWindows Aeroテーマは利用できませんでした。Windows 8以降ではサポートが終了しています。
WDDM 1.0: Windows Vistaで最初にサポートされたWDDMです。Windows 7以降でも使用可能ですが、WDDM 1.1以降の機能は利用できません。Windows 11以降ではサポートされません。
WDDM 1.1: Windows 7で導入され、GDI描画の支援、ビデオオーバーレイ対応、OpenGL ICDの強化、異なるベンダーのGPUの同時利用などの機能が追加されました。WDDM 1.0との後方互換性があり、Windows Vistaにもプラットフォーム更新プログラムによって適用可能ですが、一部動作に差異があります。Windows 11以降ではサポートされません。
WDDM 1.2: Windows 8で導入され、ビデオメモリの効率的な利用やDirect3D 11.1のサポートが追加されました。ドライバーが必須機能を実装していない場合は、ソフトウェア実装のMicrosoft Basic Display Driverにフォールバックします。Windows 7 SP1やWindows Server 2008 R2 SP1にも一部機能がバックポートされていますが、ドライバーモデル自体はWDDM 1.2対応にはなりません。Windows 11以降ではサポートされません。
WDDM 1.3: Windows 8.1で導入され、タイル化されたリソースやDirect3Dレンダリングパフォーマンスの改善、Direct3D 11.2のサポート、Miracastのサポートなどが追加されました。Windows 11以降ではサポートされません。
WDDM 2.0: Windows 10で導入され、Direct3D 11.3およびDirect3D 12のサポートや、GPU仮想メモリ機能などが追加されました。Windows 7で実装されなかった仮想メモリ機能がここで実現しました。
WDDM 2.1: Windows 10 Anniversary Updateで導入され、Direct3D 12およびDXGI 1.5の更新が行われ、シェーダーモデル6.0のサポートや、UWPアプリケーションにおける可変リフレッシュレートのサポートなどが追加されました。
WDDM 2.2: Windows 10 Creators Updateで導入され、Windows Mixed Realityの仮想/拡張/複合現実の立体視レンダリングのサポートなどが追加されました。
WDDM 2.3 以降: Windows 10の各バージョンアップに合わせて、WDDM 2.3, 2.4, 2.5, 2.6, 2.7, 2.9, 3.0, 3.1, 3.2 と、機能が追加されてきました。

DXGI (DirectX Graphics Infrastructure)について



DXGIは、DirectX 10以降で導入されたグラフィックス共通基盤APIです。カーネルモードドライバやハードウェアとの通信といった低レベルタスクを担当し、アダプターやアウトプットなどのデバイス概念を抽象化します。

DXGIは、Direct3DやDirect2D APIによるレンダリング部分とデバイス通信部分を分離し、相互運用を可能にします。また、DirectComputeでは、DXGIアダプターの列挙により、複数のGPUを分散コンピューティングに利用できます。

DXGIのバージョンは、WDDMとDirectXのバージョンに連動しており、例えばWDDM 1.1とDirectX 11をサポートするWindows 7には、DXGI 1.1ランタイムが導入されます。Windows 8以降ではDXGI 1.2, 1.3, 1.4, 1.5, 1.6と更新され、機能が追加されています。DXGI 1.6以降は、バージョン番号は据え置きのまま、Windows 10の機能更新リリースに合わせて機能が追加されています。

まとめ



WDDMは、Windowsのグラフィックス環境を支える重要な技術です。マルチスレッド対応や安定性向上、GPU仮想化などの機能により、より高度なグラフィックス処理やGPGPUの利用を可能にし、Windowsの進化とともに、WDDMも進化を続けています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。