Windows Display Driver Model
Windows Display Driver Model(ウィンドウズ・ディスプレイ・ドライバ・モデル、WDDM)とは、GPU用デバイスドライバの枠組みである。
Windows Vistaで最初に導入され、Direct3D 9ExやDirect3D 10以降のDirect3Dは、WDDMに対応するよう設計されている。
概要
DirectX 9までのバージョンにおいては、DirectXランタイムおよびデバイスドライバ層の設計がシングルタスク前提となっており、GPGPUや同時に複数の3Dアプリケーションを安全かつ安定的に動作させることが困難になってきた。そのため、Windows Vistaのリリースに伴い大幅に設計を変更し、マルチスレッドに対応させ安定度も向上させるべく設計された新しいドライバモデルがWDDMである。WDDM・DWMにより、Windows AeroではOSのデスクトップの描画自体にビデオカードなどのGPUを活用したハードウェアアクセラレーションを使用することができ、結果としてCPUの負荷を軽減することができるようになる。
- GPUの仮想化
- GPUのスケジューリングやVRAMの割り当ての仮想化で、複数のアプリケーションが互いを意識することなく資源を扱えるようになっている。
- ユーザーモードへの分離
- WDDMではドライバソフトウェアがカーネルモードとユーザーモードに分かれ、不正なドライバ制御などでシステムがクラッシュを起こしにくい設計となっている。
- GPUの回復
- ディスプレイドライバがフリーズしたとしても、Windowsカーネルが検出し、OSの再起動無しにGPUを初期化して、ディスプレイの表示を復活できるようになっている[1]。クラッシュ直前の表示内容を可能な限り復元する機能も持っている。
バージョン
この節の加筆が望まれています。 |
XDDM/XPDM
WDDM発表後、従来のビデオカード用デバイスドライバの枠組みをWindows 2000 Display Driver Model(XDDM)[2]あるいはWindows XP Display Driver Model (XPDM) [3]と呼んで区別するようになった。
Windows Vista以降のOSでも引き続きXDDM/XPDMドライバを使用することは可能であるが、その場合、Desktop Window Manager (DWM)、ひいてはWindows Aeroテーマが使用できない。DWMがDirect3D 9Exを使用するためである。
Windows 8以降のOSでは、XDDM/XPDMはサポートされなくなり、使用できなくなった[4]。
WDDM 1.0
Windows Vistaでサポートされた最初のWDDMである。
Windows 7以降のOSでも引き続きWDDM 1.0のドライバを使用することは可能である。
WDDM 1.1
Windows 7では、新バージョンのWDDM 1.1がサポートされた[5]。
- BitBltやClearTypeフォント描画などGDI描画への支援の追加[6]
- ビデオオーバーレイへの対応
- OpenGL ICDのための強化[7]
- 異なるベンダーのGPUを混在して利用可能になった[8] [9]
ドライバとしては下位互換性があり、WDDM 1.1ドライバをWDDM 1.0しかサポートしていないWindows Vistaで使用することも可能である[10]。
2009年10月、Windows Vistaに対して「Windows Vista 用のプラットフォーム更新プログラム(KB971644)」が配信された。このアップデートによりWindows VistaでもWDDM 1.1へとアップデートされた[11]。DirectX診断ツールでもWDDM 1.1の表記が確認できる[12]が、GDIはソフトウェアレンダリングであるなど、一部の動作に差異はある[13]。
WDDM 1.2
Windows 8では、WDDM 1.2がサポートされた。
ビデオメモリのより効率的な利用、Direct3D 11.1のサポートなどが追加されている[14] [15]。
なお、Windows 7 SP1およびWindows Server 2008 R2 SP1に対して、「Windows 7 SP1 および Windows Server 2008 R2 SP1 用のプラットフォーム更新プログラム(KB2670838)」を適用することでDirect3D 11.1やDirect2D 1.1などの一部機能が使えるようになるが、ドライバーモデルがWDDM 1.2対応になるわけではない[16]。
WDDM 1.3
Windows 8.1では、WDDM 1.3がサポートされた。
タイル化されたリソース(メガテクスチャ)や、Direct3Dレンダリングパフォーマンスの改善、Direct3D 11.2のサポートなどが行なわれている[17]。
また、Miracastのサポートも追加され、Windows 8.1やWindows 10でMiracast機能を利用するにはWDDM 1.3以降に対応したドライバが必要になる[18]。
WDDM 2.0
Windows 10では、WDDM 2.0がサポートされた。
Direct3D 11.3およびDirect3D 12のサポートなどが行なわれる。また、GpuMmu[19]およびIoMmu[20]と呼ばれる2つの仮想アドレッシングモデルを持つGPU仮想メモリ機能などをサポートする。なお、この仮想メモリ機能はかつてWinHEC 2006にて"WDDM v2"の機能として発表された[21]が、実際にWDDM 1.0の後継としてWindows 7に搭載されたWDDM 1.1では実現していなかった。
WDDM 2.1
Windows 10 Anniversary Update (version 1607) では、WDDM 2.1がサポートされた。
同時にDirect3D 12およびDXGI 1.5の更新も行なわれ、シェーダーモデル6.0のサポート[22]、およびUWPアプリケーションにおける可変リフレッシュレートのサポート[23]などが追加される。
WDDM 2.2
Windows 10 Creators Update (version 1703) では、WDDM 2.2がサポートされた。
Windows Mixed Realityの仮想/拡張/複合現実の立体視レンダリングのサポートなどが追加された。
WDDM 2.3
この節の加筆が望まれています。 |
Windows 10 Fall Creators Update (version 1709) では、WDDM 2.3がサポートされた。
WDDM 2.4
この節の加筆が望まれています。 |
Windows 10 April 2018 Update (version 1803) では、WDDM 2.4がサポートされた。
WDDM 2.5
この節の加筆が望まれています。 |
Windows 10 October 2018 Update (version 1809) では、WDDM 2.5がサポートされた。
WDDM 2.6
この節の加筆が望まれています。 |
Windows 10 May 2019 Update (version 1903) では、WDDM 2.6がサポートされた。
WDDM 2.7
この節の加筆が望まれています。 |
Windows 10 May 2020 Update (version 2004) では、WDDM 2.7がサポートされた。
DXGI
DXGI (DirectX Graphics Infrastructure) は、DirectX 10 (Direct3D 10) 以降で利用可能になる新しいグラフィックス共通基盤およびそのAPI集合である。カーネルモードドライバーやハードウェアとの通信といった低レベルのタスクを担当する[24]。
DXGIは、アダプター(グラフィックスカードあるいはリファレンスラスタライザーなど)やアウトプット(モニター)といったデバイス概念を抽象化する。さらに、以前のバージョンのDirect3Dでもおなじみとなっているダブルバッファリングシステムは、スワップチェーンと呼ばれる概念に集約される。
DXGIを導入することで、変化の頻繁なDirect3D APIやDirect2D APIによる実際のレンダリング部分と、変化の緩やかなデバイス通信部分を分離して考えることが可能となる。また、DXGI層を経由したDirect3DとDirect2Dの相互運用が可能となる[25]。そのほか、DirectComputeでは、DXGIアダプターの列挙によって、プライマリモニター出力に利用されるデフォルトアダプターだけでなく、セカンダリアダプターも統一的に分散コンピューティング用演算リソースとして活用することが可能である。
DXGIのバージョンは、DirectXのバージョンとともにアップデートされている。
DXGIバージョン | 対応する[26]DirectX | 主な採用OS |
---|---|---|
1.0 | DirectX 10 | Windows Vista |
1.1 | DirectX 11 | Windows 7
Windows Vista SP2 Platform Update[27] |
1.2 | DirectX 11.1 | Windows 8 |
1.3 | DirectX 11.2 | Windows 8.1 |
1.4 | DirectX 11.3
DirectX 12 |
|
1.5 | DirectX 11.4 | Windows 10 November 2015 Update (version 1511, build 10586)[28] |
1.6 | Windows 10 Creators Update (version 1703, build 15063)[29] |
脚注
- ^ “タイムアウトの検出と回復 (TDR)”. WHDC. マイクロソフト (2021年1月1日). 2021年1月1日閲覧。
- ^ “Windows 2000 Display Driver Model (XDDM) Design Guide - Windows drivers” (英語). Microsoft Docs. 2019年2月16日閲覧。
- ^ “XPDM vs. WDDM - Windows applications” (英語). Microsoft Docs. 2019年2月16日閲覧。
- ^ WDDM 1.2 and Windows 8 (Windows Drivers)
- ^ What's new for Windows 7 display drivers (WDDM 1.1) (Windows Drivers)
- ^ 実装するかどうかはオプション扱いであり、またネイティブにサポートされるわけではなく、基本的にDirect2D経由での実装となる。
- ^ Supporting OpenGL Enhancements (Windows Drivers)
- ^ ASCII.jp:DirectX 10.1をベースにするWindows 7 (2/2)|あなたの知らないWindows
- ^ WDDM 1.0では、同時に1つしかグラフィックドライバをロードできない制約がある。このため、同じドライバを使うGPUならば、グレードを問わず混在することは可能だが、ドライバが異なるGPUを混在することはできない(プライマリ側が優先され、セカンダリ以降に装着されたGPUはドライバ読込みエラーとなる)。なお、使用ドライバをXPDMで統一すれば混在することは可能。
- ^ [1][null Graphics Guide for Windows 7]
- ^ MS、Windows Vistaのグラフィック機能をWindows 7相当へ強化するパッチを配布開始 - 窓の杜
- ^ VistaにWindows7の新機能、WDDM1.1とDirectX11が搭載される - ぼくんちのTV 別館
- ^ does windows vista support WDDM 1.1? - Microsoft Community
- ^ WDDM 1.2 features (Windows Drivers)
- ^ DXGI 1.2 Improvements (Windows)
- ^ DirectX 11.1 and Windows 7 - Games for Windows and the DirectX SDK - Site Home - MSDN Blogs
- ^ What's new for Windows 8.1 display drivers (WDDM 1.3) (Windows Drivers)
- ^ 株式会社インプレス (2016年5月6日). ““ワイヤレスディスプレイ”がWindows 10で実現、タブレットもディスプレイに?【本当にWindows 10って使えるの?】”. 窓の杜. 2019年2月23日閲覧。
- ^ GpuMmu model (Windows Drivers)
- ^ IoMmu model (Windows Drivers)
- ^ "Windows Display Driver Model (WDDM) v2 And Beyond", Steve Pronovost, Microsoft, Henry Moreton, NVIDIA, Tim Kelley, ATI
- ^ Direct3D機能レベル12_0/12_1対応GPUが必要。
- ^ Variable refresh rate displays (Windows)
- ^ DXGI の概要 (Direct3D 10)
- ^ Direct2D と Direct3D の相互運用性の概要 (Windows)
- ^ ここで述べている「対応」は導入時期やペア的な意味での「対応」に近い。"DirectX"はDXGIをも包括している
- ^ DirectX Graphics Infrastructure (DXGI) Best Practices - Windows applications | Microsoft Docs
- ^ Windows 10 SDK (November 2015) – Games for Windows and the DirectX SDK
- ^ Windows 10 Creators Update SDK | Games for Windows and the DirectX SDK blog
関連項目
- マイクロソフトのAPIとフレームワークの一覧
- デバイスドライバ
- Windows Driver Model
- DirectX
- Direct3D
- Direct2D
- Quartz
- X Window System
- ダイレクト・レンダリング・インフラストラクチャ