「Windows Display Driver Model」の版間の差分
削除された内容 追加された内容
→DXGI: リンク切れになっていたURLの代替を記述。 |
m Bot作業依頼#Cite webの和書引数追加 |
||
(2人の利用者による、間の9版が非表示) | |||
1行目:
'''Windows Display Driver Model'''(ウィンドウズ・ディスプレイ・ドライバ・モデル、'''WDDM''')とは、[[Graphics Processing Unit|GPU]]用[[デバイスドライバ]](グラフィックスドライバ)の枠組みである。
2006年にリリースされた[[Microsoft Windows Vista|Windows Vista]]で最初に導入され、Direct3D 9ExやDirect3D 10以降の[[Direct3D]]は、WDDMに対応するよう設計されている。
== 概要 ==
[[DirectX]] 9(Direct3D
; GPUの仮想化
11行目:
: WDDMではドライバソフトウェアがカーネルモードとユーザーモードに分かれ、不正なドライバ制御などでシステムがクラッシュを起こしにくい設計となっている。
; GPUの回復
: ディスプレイドライバがフリーズしたとしても、Windowsカーネルが検出し、OSの再起動無しにGPUを初期化して、ディスプレイの表示を復活できるようになっている<ref>{{Cite web|和書|date=2009-04-27|url=http://www.microsoft.com/japan/whdc/device/display/wddm_timeout.mspx|title=WDDM によるタイムアウトの検出と GPU の回復|website=WHDC|publisher=マイクロソフト|accessdate=2009-06-06|language=ja-jp|archiveurl=https://web.archive.org/web/20090629165322/http://www.microsoft.com/japan/whdc/device/display/wddm_timeout.mspx|archivedate=2009-06-29|deadlinkdate=2021-04-04}}</ref><ref>{{Cite web|date=2020-10-06|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/display/timeout-detection-and-recovery|title=Timeout detection and recovery (TDR) - Windows drivers|website=Microsoft Docs|publisher=マイクロソフト|accessdate=2021-04-04|language=en-us}}</ref>。
並列処理性能の高いGPUに汎用計算を高速実行させる[[GPGPU]]という取り組みがあり、[[プログラマブルシェーダー]]が登場した頃から試みられてきたが、長時間かかるタスクをGPUに実行させるとシステム全体を巻き込んで不安定化したりクラッシュしてしまったりする問題があった。[[CUDA]](2007年登場)、[[OpenCL]](2008年登場)、[[DirectCompute]](2009年登場)のようなGPGPU対応APIは、ドライバーがWDDMに対応することで、汎用計算のタスクによってGPUに過負荷がかかったとき、強制的にデバイスをリセット・再初期化してシステム全体の安定性を保つことができるようになる。
[[.NET Framework]] 3.0以降に含まれる[[Windows Presentation Foundation]] (WPF) はDirect3D 9ベースのハードウェアアクセラレーションに対応しているが、Vista以降ではWDDM対応のDirect3D 9Exが使われる<ref>[https://learn.microsoft.com/en-us/dotnet/desktop/wpf/advanced/wpf-and-direct3d9-interoperation?view=netframeworkdesktop-4.8 WPF and Direct3D9 interop | Microsoft Learn]</ref>。
== バージョン ==
18 ⟶ 22行目:
=== XDDM/XPDM ===
WDDM発表後、従来の
Windows Vista以降のOSでも引き続きXDDM/XPDMドライバを使用することは可能であるが、その場合、[[Desktop Window Manager]] (DWM)、ひいては[[Windows Aero]]テーマが使用できない。DWMがDirect3D 9Exを使用するためである。
[[Windows 8]]以降のOSでは、XDDM/XPDMはサポートされなくなり、使用できなくなった<ref>[
[[Windows 11]]では、WDDM 2.0以上が必須要件となった<ref>[https://learn.microsoft.com/en-us/windows/whats-new/windows-11-requirements Windows 11 requirements - What's new in Windows | Microsoft Learn]</ref>。
=== WDDM 1.0 ===
Windows Vistaでサポートされた最初のWDDMである。
Windows 7以降のOSでも、引き続きWDDM 1.0のドライバを使用することは可能である<ref>[https://www.atmarkit.co.jp/ait/articles/0908/31/news152.html WDDM 1.1(Windows Display Driver Model 1.1):Windows Insider用語解説 - @IT]</ref><ref>[https://www.microsoft.com/ja-jp/windows/windows-10-specifications Windows 10 コンピュータシステムの仕様と要件を確認する方法 - Microsoft]</ref><ref>[https://www.microsoft.com/en-us/windows/windows-10-specifications How to Check Windows 10 Computer System Specs & Requirements - Microsoft]</ref>。ただしその場合、WDDM 1.1以降で追加された機能は利用できない。
=== WDDM 1.1 ===
[[Microsoft Windows 7|Windows 7]]では、新バージョンのWDDM 1.1がサポートされた<ref>[
* [[Bit Block Transfer|BitBlt]]や[[ClearType]]フォント描画など[[Graphics Device Interface|GDI]]描画への支援の追加<ref>実装するかどうかはオプション扱いであり、またネイティブにサポートされるわけではなく、基本的にDirect2D経由での実装となる。</ref>
* ビデオオーバーレイへの対応
* OpenGL ICDのための強化<ref>[
* 異なるベンダーのGPU
テストおよびソースコード管理の複雑さを低減するため、WDDM 1.1ドライバ
2009年10月、Windows Vistaに対して「Windows Vista 用のプラットフォーム更新プログラム(KB971644)」が配信された。このアップデートによりWindows VistaでもWDDM 1.1へとアップデートされた<ref>[https://forest.watch.impress.co.jp/docs/news/325089.html MS、Windows Vistaのグラフィック機能をWindows 7相当へ強化するパッチを配布開始 - 窓の杜]</ref>。DirectX診断ツールでもWDDM 1.1の表記が確認できる<ref>[https://freesoft.tvbok.com/old-tips/windows/other/vista_kb971644.html VistaにWindows7の新機能、WDDM1.1とDirectX11が搭載される - ぼくんちのTV 別館]</ref>が、GDIはソフトウェアレンダリングであるなど、一部の動作に差異はある<ref>[https://answers.microsoft.com/en-us/windows/forum/windows_vista-hardware/does-windows-vista-support-wddm-11/8a6b4fd7-fd6d-4ba2-9ba4-654d8833cb6a does windows vista support WDDM 1.1? - Microsoft Community]</ref>。
43 ⟶ 49行目:
[[Microsoft Windows 8|Windows 8]]では、WDDM 1.2がサポートされた。
ビデオメモリのより効率的な利用、Direct3D 11.1のサポートなどが追加されている<ref>[
WDDM 1.2には必須機能とオプション機能があるが、ドライバーがWDDM 1.2の必須機能をすべて実装していない場合、{{仮リンク|Windows Advanced Rasterization Platform|en|Windows Advanced Rasterization Platform|label=WARP}}ベース(ソフトウェア実装)のMicrosoft Basic Display Driver (MSBDD) にフォールバックされる<ref>[https://learn.microsoft.com/en-us/windows-hardware/drivers/display/wddm-v1-2-driver-enforcement WDDM 1.2 driver enforcement - Windows drivers | Microsoft Learn]</ref><ref>[https://learn.microsoft.com/en-us/windows-hardware/drivers/display/microsoft-basic-display-driver Microsoft Basic Display Driver - Windows drivers | Microsoft Learn]</ref><ref>[https://learn.microsoft.com/en-us/windows/win32/w8cookbook/changes-in-dx9-legacy-hardware-support Changes in DX9 legacy hardware support - Win32 apps | Microsoft Learn]</ref>。
なお、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対応になるわけではない<ref>[http://blogs.msdn.com/b/chuckw/archive/2012/11/14/directx-11-1-and-windows-7.aspx DirectX 11.1 and Windows 7 - Games for Windows and the DirectX SDK - Site Home - MSDN Blogs]</ref>。▼
▲なお、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対応になるわけではない<ref>[
=== WDDM 1.3 ===
[[Windows 8.1]]では、WDDM 1.3がサポートされた。
タイル化されたリソース({{仮リンク|メガテクスチャ|en|MegaTexture}})や、Direct3Dレンダリングパフォーマンスの改善、Direct3D 11.2のサポートなどが
また、[[Miracast]]のサポートもオプションとして追加され
=== WDDM 2.0 ===
[[Windows 10]]では、WDDM 2.0がサポートされた。
Direct3D 11.3およびDirect3D 12のサポートなどが
=== WDDM 2.1 ===
Windows 10 Anniversary Update (version 1607) では、WDDM 2.1がサポートされた。
同時にDirect3D 12およびDXGI 1.5の更新も行なわれ、[[シェーダーモデル]]6.0のサポート
=== WDDM 2.2 ===
103 ⟶ 111行目:
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自体の使用は可能である<ref>[https://docs.microsoft.com/en-us/windows/desktop/direct3darticles/dxgi-best-practices DirectX Graphics Infrastructure (DXGI) Best Practices - Windows applications | Microsoft Docs]</ref>。
Windows 8にてDirectX 11.1に対応するDXGI 1.2が導入された。Windows 7 SP1 Platform Updateでも、WDDMのバージョンは1.1のままだが、DXGI 1.2ランタイムはDirectX 11.1ランタイムと同時にバックポートされており、一部のAPI機能が使える。
<!--
108 ⟶ 118行目:
なお、上位のDXGIは下位のDirect3D 10/11/12もサポートする。
Windows 10 build 14393では、Direct3D 12やDXGI 1.5のAPIバージョン番号を変えずに更新・機能追加が行なわれるなど、対応が分かりづらくなっている(ID3D12Device1などの派生インターフェイスが追加され、"Direct3D 12.1"とも呼べる更新が行なわれているが、正式にアナウンスされている名称ではない)。
https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nn-d3d12-id3d12device1
Windows 10 build 15063では、DirectX 11.4のAPIバージョン番号は変わっていないものの、ID3D11Device5が追加されている。
https://docs.microsoft.com/en-us/windows/win32/api/d3d11_4/nn-d3d11_4-id3d11device5
-->
DirectX 11.
Windows 10 November 2015 Update (version 1511, build 10586) にてDirectX 11.4とともにDXGI 1.5が導入された<ref>[https://walbourn.github.io/windows-10-sdk-november-2015/ Windows 10 SDK (November 2015) | Games for Windows and the DirectX SDK blog]</ref>。
Windows 10 Creators Update (version 1703, build 15063) にてDXGI 1.6が導入された<ref>[https://walbourn.github.io/windows-10-creators-update-sdk/ Windows 10 Creators Update SDK | Games for Windows and the DirectX SDK blog]</ref>。以降はDXGI自体のバージョン番号は1.6で据え置きのまま、Windows 10の機能更新リリースとともにDXGIにも機能が追加されている<ref>[https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/dxgi-1-6-improvements DXGI 1.6 improvements - Win32 apps | Microsoft Docs]</ref>。
== 脚注 ==
{{脚注ヘルプ}}
=== 注釈 ===
{{Notelist}}
=== 出典 ===
{{Reflist}}
== 関連項目 ==
|