Windows Display Driver Model

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動

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][2]

バージョン[編集]

XDDM/XPDM[編集]

WDDM発表後、従来のビデオカード用デバイスドライバの枠組みをWindows 2000 Display Driver Model(XDDM)[3]あるいはWindows XP Display Driver Model (XPDM) [4]と呼んで区別するようになった。

Windows Vista以降のOSでも引き続きXDDM/XPDMドライバを使用することは可能であるが、その場合、Desktop Window Manager (DWM)、ひいてはWindows Aeroテーマが使用できない。DWMがDirect3D 9Exを使用するためである。

Windows 8以降のOSでは、XDDM/XPDMはサポートされなくなり、使用できなくなった[5]

WDDM 1.0[編集]

Windows Vistaでサポートされた最初のWDDMである。

Windows 7以降のOSでも、引き続きWDDM 1.0のドライバを使用することは可能である[6][7][8]。ただしその場合、WDDM 1.1以降で追加された機能は利用できない。

WDDM 1.1[編集]

Windows 7では、新バージョンのWDDM 1.1がサポートされた[9]

  • BitBltClearTypeフォント描画などGDI描画への支援の追加[10]
  • ビデオオーバーレイへの対応
  • OpenGL ICDのための強化[11]
  • 異なるベンダーのGPUを混在して利用可能になった[12] [13]

テストおよびソースコード管理の複雑さを低減するため、WDDM 1.1ドライバーインターフェイスにはWindows Vistaとの後方互換性があり、(SP2およびプラットフォーム更新プログラムを適用する前の)WDDM 1.0しかサポートしていないWindows Vistaで使用することも可能である。またその場合、単純にWDDM 1.0ドライバーとして動作する[14]

2009年10月、Windows Vistaに対して「Windows Vista 用のプラットフォーム更新プログラム(KB971644)」が配信された。このアップデートによりWindows VistaでもWDDM 1.1へとアップデートされた[15]。DirectX診断ツールでもWDDM 1.1の表記が確認できる[16]が、GDIはソフトウェアレンダリングであるなど、一部の動作に差異はある[17]

WDDM 1.2[編集]

Windows 8では、WDDM 1.2がサポートされた。

ビデオメモリのより効率的な利用、Direct3D 11.1のサポートなどが追加されている[18] [19]

なお、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対応になるわけではない[20][21]

WDDM 1.3[編集]

Windows 8.1では、WDDM 1.3がサポートされた。

タイル化されたリソース(メガテクスチャ英語版)や、Direct3Dレンダリングパフォーマンスの改善、Direct3D 11.2のサポートなどが行なわれている[22]

また、Miracastのサポートも追加され、Windows 8.1やWindows 10でMiracast機能を利用するにはWDDM 1.3以降に対応したドライバが必要になる[23]

WDDM 2.0[編集]

Windows 10では、WDDM 2.0がサポートされた。

Direct3D 11.3およびDirect3D 12のサポートなどが行なわれる。また、GpuMmu[24]およびIoMmu[25]と呼ばれる2つの仮想アドレッシングモデルを持つGPU仮想メモリ機能などをサポートする。なお、この仮想メモリ機能はかつてWinHEC英語版 2006にて"WDDM v2"の機能として発表された[26]が、実際に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のサポート[27]、およびUWPアプリケーションにおける可変リフレッシュレートのサポート[28]などが追加される。

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集合である。カーネルモードドライバーやハードウェアとの通信といった低レベルのタスクを担当する[29][30]

DXGIは、アダプター(グラフィックスカードあるいはリファレンスラスタライザーなど)やアウトプット(モニター)といったデバイス概念を抽象化する。さらに、以前のバージョンのDirect3Dでもおなじみとなっているダブルバッファリングシステムは、スワップチェーンと呼ばれる概念に集約される。

DXGIを導入することで、変化の頻繁なDirect3D APIやDirect2D APIによる実際のレンダリング部分と、変化の緩やかなデバイス通信部分を分離して考えることが可能となる。また、DXGI層を経由したDirect3DとDirect2Dの相互運用が可能となる[31]。そのほか、DirectComputeでは、DXGIアダプターの列挙によって、プライマリモニター出力に利用されるデフォルトアダプターだけでなく、セカンダリアダプターも統一的に分散コンピューティング用演算リソースとして活用することが可能である。

DXGIのバージョンは、WDDMおよびDirectXのバージョンとともにアップデートされている。例えばWDDM 1.1とDirectX 11をサポートするWindows 7には、DXGI 1.1ランタイムが導入される。Windows Vista SP2 Platform Updateでも、WDDM 1.1のサポートは完全ではないものの、DXGI 1.1ランタイムはDirectX 11ランタイムと同時にバックポートされているため、DXGI 1.1 API自体の使用は可能である[32]

Windows 8にてDirectX 11.1に対応するDXGI 1.2が導入された。Windows 7 SP1 Platform Updateでも、WDDMのバージョンは1.1のままだが、DXGI 1.2ランタイムはDirectX 11.1ランタイムと同時にバックポートされており、一部のAPI機能が使える。

DirectX 11.2に対応するのはDXGI 1.3 (Windows 8.1以降)、そしてDirectX 11.3とDirectX 12に対応するのはDXGI 1.4 (Windows 10) となる。

Windows 10 November 2015 Update (version 1511, build 10586) にてDirectX 11.4とともにDXGI 1.5が導入された[33]

Windows 10 Creators Update (version 1703, build 15063) にてDXGI 1.6が導入された[34]。以降はDXGI自体のバージョン番号は1.6で据え置きのまま、Windows 10の機能更新リリースとともにDXGIにも機能が追加されている[35]

脚注[編集]

[脚注の使い方]
  1. ^ WDDM によるタイムアウトの検出と GPU の回復” (日本語). WHDC. マイクロソフト (2009年4月27日). 2009年6月29日時点のオリジナル[リンク切れ]よりアーカイブ。2009年6月6日閲覧。
  2. ^ Timeout detection and recovery (TDR) - Windows drivers” (英語). Microsoft Docs. マイクロソフト (2020年10月6日). 2021年4月4日閲覧。
  3. ^ Windows 2000 Display Driver Model (XDDM) Design Guide - Windows drivers” (英語). Microsoft Docs. 2019年2月16日閲覧。
  4. ^ XPDM vs. WDDM - Windows applications” (英語). Microsoft Docs. 2019年2月16日閲覧。
  5. ^ WDDM 1.2 and Windows 8 (Windows Drivers)
  6. ^ WDDM 1.1(Windows Display Driver Model 1.1):Windows Insider用語解説 - @IT
  7. ^ Windows 10 コンピュータシステムの仕様と要件を確認する方法 - Microsoft
  8. ^ How to Check Windows 10 Computer System Specs & Requirements - Microsoft
  9. ^ What's new for Windows 7 display drivers (WDDM 1.1) (Windows Drivers)
  10. ^ 実装するかどうかはオプション扱いであり、またネイティブにサポートされるわけではなく、基本的にDirect2D経由での実装となる。
  11. ^ Supporting OpenGL Enhancements (Windows Drivers)
  12. ^ ASCII.jp:DirectX 10.1をベースにするWindows 7 (2/2)|あなたの知らないWindows
  13. ^ WDDM 1.0では、同時に1つしかグラフィックドライバをロードできない制約がある。このため、同じドライバを使うGPUならば、グレードを問わず混在することは可能だが、ドライバが異なるGPUを混在することはできない(プライマリ側が優先され、セカンダリ以降に装着されたGPUはドライバ読込みエラーとなる)。なお、使用ドライバをXPDMで統一すれば混在することは可能。
  14. ^ Graphics Guide for Windows 7 (A Guide for Hardware and System Manufacturers)” (2009年6月12日). 2021年4月5日閲覧。 “To reduce the complexity of testing, the Windows 7 WDDM v1.1 driver interfaces are backward compatible with Windows Vista. Therefore, IHVs that implement Windows 7 WDDM v1.1 driver features can integrate them into common driver source code and build a single driver that runs on both Windows 7 and Windows Vista. When installed on Windows Vista, such a driver simply acts as a WDDM v1 driver. When the same driver is installed on Windows 7, it can use the new WDDM v1.1 functionality.”
  15. ^ MS、Windows Vistaのグラフィック機能をWindows 7相当へ強化するパッチを配布開始 - 窓の杜
  16. ^ VistaにWindows7の新機能、WDDM1.1とDirectX11が搭載される - ぼくんちのTV 別館
  17. ^ does windows vista support WDDM 1.1? - Microsoft Community
  18. ^ WDDM 1.2 features (Windows Drivers)
  19. ^ DXGI 1.2 Improvements (Windows)
  20. ^ DirectX 11.1 and Windows 7 | Games for Windows and the DirectX SDK blog
  21. ^ Platform Update for Windows 7 - Win32 apps | Microsoft Docs
  22. ^ What's new for Windows 8.1 display drivers (WDDM 1.3) (Windows Drivers)
  23. ^ 株式会社インプレス (2016年5月6日). ““ワイヤレスディスプレイ”がWindows 10で実現、タブレットもディスプレイに?【本当にWindows 10って使えるの?】” (日本語). 窓の杜. 2019年2月23日閲覧。
  24. ^ GpuMmu model (Windows Drivers)
  25. ^ IoMmu model (Windows Drivers)
  26. ^ "Windows Display Driver Model (WDDM) v2 And Beyond", Steve Pronovost, Microsoft, Henry Moreton, NVIDIA, Tim Kelley, ATI
  27. ^ Direct3D機能レベル12_0/12_1対応GPUが必要。
  28. ^ Variable refresh rate displays (Windows)
  29. ^ DXGI overview - Win32 apps | Microsoft Docs
  30. ^ DXGI の概要 | Microsoft Docs
  31. ^ Direct2D and Direct3D Interoperability Overview - Win32 apps | Microsoft Docs
  32. ^ DirectX Graphics Infrastructure (DXGI) Best Practices - Windows applications | Microsoft Docs
  33. ^ Windows 10 SDK (November 2015) | Games for Windows and the DirectX SDK blog
  34. ^ Windows 10 Creators Update SDK | Games for Windows and the DirectX SDK blog
  35. ^ DXGI 1.6 improvements - Win32 apps | Microsoft Docs

関連項目[編集]

外部リンク[編集]