Windows 8を導入するコンピューターや、その周辺デバイスが持つポテンシャルを、フルに引き出すのがデバイスドライバーやフレームワーク(枠組み)の役割である。過去のWindows OSでもさまざまな角度からアプローチし、その時代のデバイスを活用してきたが、2012年以降のコンピューターを支えるWindows 8では、どのような改善がなされているのだろうか。その回答としてBuilding Windows 8では、DirectX 11.1と新しいプリンタードライバー構造について言及している。今週もMicrosoftの各公式ブログで発表された記事を元に、Windows 8に関する最新動向をお送りしよう。

Windows 8レポート集

Windows 8の描画能力を支える「DirectX 11.1」

多くのユーザーがご存じのとおり、Windows OSにはDirectX(ダイレクトエックス)というゲームやマルチメディア用のAPI(Application Programming Interface:簡潔にプログラムを記述するためのインターフェース)が用意されてきた。だが、その歴史がWindows 3.x時代までさかのぼることをご存じだろうか。DOS時代を経て登場したWindows 3.xがグラフィック描画を行う際、GDI(Graphics Device Interface)というライブラリ経由で行われていた。

だが、直接ハードウェアを叩きながら描画を行っていたDOS時代と比べると、GDI経由の処理がオーバーヘッドとなるため、高速描画とはほど遠い結果に。しかし、Windows 3.xというOSは、DOS時代のように直接ハードウェアへアクセスすることが難しかったため、用意されたのがWinG(ウィンジー)である。このライブラリが提供されたことにより、Windows 3.xでもDOS時代に迫るゲームを楽しむことを可能にしていた(図01)。

図01 WinG SDKに付属する「Spinning Cube」。実行時は画面モードが256色に切り替わるなどの制限が存在した

Windows 95にも引き継がれたWinGは、自身をベースに32ビット化などの改良が加わり、Windows OSのバージョンに伴って、後のDirectXにつながっていく。グラフィック系を担うDirectX Graphicsや、オーディオ系を担うDirectX Audioなど統廃合を繰り返し、改訂のたびにバージョン番号が付けられているのが現状だ。

Windows 7やWindows Vista Service Pack 2では、DirectX 11.0という機能を大幅に向上させたバージョンを搭載しているが、Windows 8に用いられるのはDirectX 11.1というマイナーバージョンアップ版。当初はパフォーマンスの向上は次バージョンとなるDirectX 12の役割と言われていたが、Windows 8のパフォーマンス向上にも一役買っていると言う。このブログ記事を書いたのは、グラフィックチームのグループプログラムマネージャーであるRob Copeland(ロブ・コープランド)氏だ(図02)。

図02 グラフィックチームのグループプログラムマネージャーであるRob Copeland(ロブ・コープランド)氏

Windows 8におけるグラフィック機能の向上は各所に反映されている。例えば、テキスト描画のパフォーマンス面はDirectWriteが担い、Metroスタイルにおいては文字の体裁を整えるタイポグラフィを向上させるため、フォントデータのレンダリング処理を向上させた。図03はWindows 7を100%として、Windows 8のパフォーマンスを数値化したものである。上からWebページやWord文書で用いる段落のレンダリングスピード。真ん中はラベルやメニューなどのUI(ユーザーインターフェース)コントロールのレンダリングスピード。そして最後は見出しなどに用いられる文字のレンダリングスピードを表している。

図03 文字描画スピードをWindows 7とWindows 8で比較。平均すると2倍程度のスピードアップにつながっている(公式サイトより)

もう一つの改良点が、空間に置かれた立体モデルの座標をスクリーン座標に変換するジオメトリ処理の向上。「天気」などのMetroアプリケーションでは、多くのグラフィックが用いられているが、2Dで描画するテーブルやチャート、グラフにも用いられている。そこでWindows 8では、動的な二次元ビットマップ画像を描画するためのHTML5 Canvasや、二次元ベクター画像描画時のSVG(Scalable Vector Graphics)の技術を取り込み、MetroアプリケーションやInternet Explorer 10のWebページ表示機能を向上させた。内部的には、ポリゴンの隙間が重ならないように単純な複数の図形に分割するTessellation(テッセレーション)の機能向上も図られているものの、エンドユーザーから見れば単純に"速くなった"と捉えて構わないだろう。

図04は先ほどと同じく、Windows 7とWindows 8の描画処理を比較したものだが、平均すると4倍程度の性能向上が数値として表れている。図05は地図など不規則な外形を描画する際のパフォーマンスを向上させるTIR(Target Independent Rasterization)を使用し、SVGファイルを描画するためのパフォーマンスを数値化したものだ。TIRの恩恵を受けるには、DirectX 11.1をサポートするGPUが必要となるため、恩恵を受けるコンピューター環境は制限されるものの、3倍程度のパフォーマンスアップは否応がなしに期待してしまう。

図04 単純な図形のレンダリングスピードを数値化したグラフ。4倍程度の向上が確認できる(公式サイトより)

図05 複雑なSVGファイルの描画スピードを数値化したグラフ。こちらも3倍程度の向上が確認できる(公式サイトより)

このほかにもあらゆる面でパフォーマンスの向上を実現している。Windows 8の従来のデスクトップOSとして使い続けるユーザーにとって興味深いのは、JPEG形式などの画像ファイルを描画する際のスピードが改善している点。図06はブログ記事に掲載された動画から抜粋したものだが、Windows 7とWindows 8で同一の画像ファイルを次々と表示させ、その速度を比較したものだ。

Windows 7は64枚の画像を表示させるのに七秒ほどかかっているが、対するWindows 8は四秒ほどで完了している。このほかにも動画ではテキスト描画速度やシェープ処理の速度を比較するデモが行われているので、Windows 7とWindows 8の違いをその目で確認したい方は一度ご覧いただきたい。

図06 Windows 7とWindows 8の画像ファイルの表示要した時間を比較したもの。Windows 7が約七秒に対し、Windows 8は約四秒で処理を終えている

このように、Windows 8はDirectX 11.1を基盤に数多くの描画パフォーマンスが向上していると同氏は述べている。実際に対応するGPUなど機材を揃え、目の前で検証しないと断言することはできないが、MSDNライブラリでも説明されているように、DirectX 11.1には数多くの新機能を実装しているのは事実だ。

外観やUI面は大きく変化し、それに戸惑うユーザーも少なくないが、Windows 8がタブレット型コンピューター向けOSとしてだけでなく、従来のデスクトップOSとしても機能向上していることが同氏の説明でも理解できるだろう。