このページの本文へ

前へ 1 2 次へ

塩田紳二のWindows 8 IN-N-OUT 第20回

DirectX 11.1 GPUでWindows 8の表示はさらに速くなる?

2012年09月27日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

 Windows Vistaから、Windowsの表示関連機能はDirectX系へ移行してきた。Windows 7では新たに、「Direct2D」および「DirectWrite」が導入された。今回はWindows 8で加えられる表示機能の変更と、そこでGPUが果たす役割について説明しよう。

DirectWriteはテキストのレイアウトやフォントのレンダリングなどを行なうモジュールで、機能的には、描画システムから独立して動作できる。MSDNの資料より引用

Vistaを基盤に性能面を改善した
Windows 7のグラフィックシステム

 Direct2Dは、パソコンに搭載されたGPUを使って描画する2Dグラフィック表示APIだ(関連記事)。Direct3Dに対応したGPUがあれば、Direct2Dはこれを利用した描画を行なう。図形の周囲にアンチエイリアス処理などが行なわれるため、既存のGDIに比べて質の高い描画を、より高速で可能としている。

 DirectWriteは、Direct2Dの上で動作するテキスト描画機能を提供するものだ。文字の描画だけでなくレイアウト機能までを持ち、高品質なテキスト描画を可能にする。こちらもアンチエイリアス処理などが可能で、GDI経由のテキストよりも高品位になる。

 ただしこれらの恩恵を受けるためには、アプリケーションがこれらのAPIを使うように書き直す必要がある。マイクロソフトもInternet Explorer 9やWindows Liveメール、LiveメッセンジャーなどをDirect2DやDirectWriteで書き直したが、すべてのマイクロソフトアプリケーションが書き直されたわけでもない。Windows用に過去に作られたアプリケーションは、そのままではGDIを使って描画している。

 Windows 8スタイル(旧称Metro)アプリケーションは、最終的にDirect2DやDirectWriteで描画を行ない、C++で書かれたアプリケーションは直接DirectXを呼び出す。一方「HTML5+JavaScript」で作られたアプリケーションの描画は、Internet Explorer 10(以下IE10)の描画に依存する。しかしIE10もDirect2D/DirectWriteで描画するので、結局はDirectX系での描画となる。つまりWindows 8スタイルのアプリケーションは、DirectXアプリケーションといってもいい。

 ちなみにVistaでのGDIは、システムメモリーに対してソフトウェア描画を行なわせていて、これを「Desktop Window Manager」(DWM)へ転送。DWMでデスクトップの表示を合成していた。これに対してWindows 7では、DWMが管理する描画領域(DXGIサーフェイス)に対して、ソフトウェアだけでなく一部をGPUのハードウェア側で描画するようになった。そのため、システムメモリー上にバッファを確保する必要も、それを転送する必要もなくなり、メモリー使用量が減って性能は向上した。

 また、これまではGDIを使って描画できるプロセスは同時にひとつに限られていた。複数のGDI対応アプリケーションが同時に動作している場合には、順番にこれを処理する必要があった。もともとのWindowsでは、GDIの下にドライバーがあったため、順番に描画するしかできなかったのである。しかもマルチプロセッサー対応のため、メモリーロックなども行なわれていたから、性能への悪影響は少なくない。

 VistaではGDIをソフトウェア処理として、DirectXを利用したグラフィックシステムへの移行を狙ったが、現実問題としてGDIアプリケーションは多数あり、結果的にシステムの負荷を高めてしまうことになっていた。しかしWindows 7では、複数のGDIアプリケーションが同時に描画処理を行なえるようにした。そのためVistaよりもシステム効率が上がり、ある程度の描画性能も向上。マルチコアなどのCPUパワーを効率的に利用できるように改良された。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン