用語解説 WDDM 1.1(Windows Display Driver Model 1.1) デジタルアドバンテージ 打越 浩幸2009/08/31 |
|
|
Windows 7およびWindows Server 2008 R2向けの新しいディスプレイ・ドライバの仕様。従来のWindows Vista/Windows Server 2008向けディスプレイ・ドライバであるWDDM 1(WDDM v1)を改良したもの(Windows XP/Windows Server 2003向けのものはXPDMと呼ばれる。関連記事参照)。
![]() |
|||
| WDDM 1.1をサポートしたドライバの例 | |||
| これはNVIDIAのGeForce 8600M GS用のWDDM 1.1ドライバの例。dxdiagコマンドを実行すると、このように表示される。 | |||
|
WDDM 1.1の特徴としては次のようなものがある。
- Direct3D 10/11サポート
- Direct2Dサポート
- ビデオ再生サポート(ビデオ・オーバーレイ、DXVA-HD、コンテンツ暗号化用のAES128のサポート)
- 高精細DPIサポート
- マルチGPU(複数のグラフィックス・カード)サポート
- Linked Display Adapter(複数をリンクさせて性能を向上させたグラフィックス・カード)サポート
Windows 7/Windows Server 2008 R2ではWindows Vista/Windows Server 2008用のWDDMのドライバ(WDDM v1)も利用できるが、WDDM 1.1対応ドライバを利用することにより、Direct2Dによる高速な描画や、DWMの使用メモリ量の削減といったメリットがある。
■Direct2Dによる描画サポート
Direct2Dは、Direct3D上にGDI/GDI+ API(2Dの描画API。以下単にGDI)を実装したものである。Windows 7+WDDM 1.1環境ではDirect2Dを使うことにより、高速なGDI(Graphics Device Interface)処理を実現している。
![]() |
|||||||||
| Direct2D API | |||||||||
| Direct2Dは、Direct3D上でGDI/GDI+処理を行うための新しいAPIである。Windows 7が呼び出すだけでなく、ユーザーが直接呼び出してもよい。下位のハードウェアの仕様により、Direct2Dの実装方法は何種類かある。GPUで処理することにより、高速なGDI処理が可能になる。 | |||||||||
|
GDIは一般的なWindowsアプリケーションでよく使われる、直線や曲線、図形、文字の描画、スクロール(BitBlt処理)などを行うAPIである。3Dが普及する以前のグラフィックス・カードでは、このGDI処理をハードウェア・サポートして高速なウィンドウ・システムを実現していた。
だがWindows VistaのAero Glass環境では、グラフィックス・カードの持つGPUの機能を駆使してデスクトップを3Dで描画するようになったため、ハードウェアの持つGDI処理機能は使われなくなっていた(先のコラム参照)。3Dと2Dのアクセラレータはメカニズムがまったく異なるため、共存できないからだ。代わりにWindows VistaのAero Glass環境では、完全にソフトウェア(CPU)によってGDI描画を処理をしている。
このGDIをDirect3D上に実装し、再びハードウェア(GPU)上で処理することを可能にしたのがWDDM 1.1である。Windows 7ではDirect2Dを使うことにより、2Dの描画処理もグラフィックス・ドライバ+GPUで処理し、高速な描画を実現している。
■DWMの使用メモリ量の削減
DWMは、Aero Glassのデスクトップ画面を実現するためのウィンドウ・マネージャである。各アプリケーションの表示ウィンドウやデスクトップのパーツなどを3D空間上で合成し、2Dのデスクトップを実現している。枠や背景が透けて下のウィンドウが見えるのは、3D的に見ると、本当に後ろ側に配置されているからである。またフリップ3D機能([Windows]−[Tab]キーによるダイナミックな切り替え)は、3D空間中にウィンドウを斜めに重ねて配置することにより、ページをめくるようなアプリケーションの切り替えを実現している。
Windows Vistaにおけるこの仕組みの実現方法は次の通りである。まずアプリケーションのウィンドウ・サイズに相当するバッファを1つ用意し、すべての描画をこのバッファに対して行う(GDI描画命令を呼び出すと、CPUが処理して、このバッファに書き込む)。このバッファは実際には各アプリケーションの共有メモリ・アドレス空間内に配置されている。次にこのバッファを(共有メモリとしてアクセスして)DWMが集め、グラフィックス・カード上にビットマップ・データとして転送する。最後にグラフィックス・カードがそれらのビットマップを3Dモデルにテキスチャ・マッピングする。これが最終的なデスクトップ画面となる。
一度中間的なバッファを使って描画するのは、CPUが直接グラフィックス・カード上のバッファに書き込むのはコストが高いからだ(メイン・メモリへの書き込みと違い、時間がかかり、ペナルティが大きい)。
Windows 7+WDDM 1.1環境では共有メモリ上のバッファを使わず、アプリケーションのGDI描画命令をDirect2D APIとして実行している。これにより、中間的なバッファを使わず、グラフィックス・カード上のバッファに直接書き込むことが可能になった。またメモリを節約しながらも、GPUによる高速なGDI処理を実現している。
Windows Vista(もしくはWindows 7+WDDM 1)環境では、必ず中間的なウィンドウ・サイズに相当するバッファが必要となっていたが、これに必要なメモリ・サイズは決して少ないものではない。例えば1024×1024ドット程度のウィンドウ・サイズを持つアプリケーションの場合、必要なバッファ・サイズは約4Mbytesになる(1ピクセルあたり、RGB+アルファ・チャネルの4bytes)。このようなアプリケーションが50個あったとすると、これだけで4×50=200Mbytesとなる。Windows 7+WDDM 1.1ではこの200Mbytesが不要になり、それだけほかのアプリケーションで利用可能なメモリが増えることになる。実際にはDirect2Dのハードウェア・アクセラレーションによる恩恵もあり、Windows 7はWindows Vistaよりも軽快に利用できるようになっている。![]()
| 「 用語解説 」 |
TechTargetジャパン
- Excelで郵便番号変換ウィザードを活用する (2012/2/3)
Excelで管理している顧客名簿などで、不足している郵便番号や住所を入力するのは意外と面倒。郵便番号変換ウィザードを使えば、これらの入力が簡単になる - PCをシンクライアント化するWindows Thin PCとは? (2012/2/2)
VDI向けにシンクライアントがほしいけど専用機を買う余裕はない… Windows Thin PCなら既存PCを低コストでシンクライアント化できる。まずは概要を解説 - 第302話 休憩時間は消灯を (2012/1/31)
君たち! 電力不足に鑑み、わが社としてもさらなる節電に貢献することとした。今後休憩時間は消灯するように。いいな! - Excelシートで特定のセルを編集禁止にする(改訂) (2012/1/27)
複数人に記入してもらうExcelシートでは、事前にデータや数式を入力しておいたセルは編集禁止にしたいところ。Excel 2007/2010での操作方法を追記
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


