Windows 8 では、最新のグラフィックス ハードウェアによる高パフォーマンスで美しいグラフィックスを、あらゆるアプリケーションで利用できるようにすることを目標としています。この取り組みでは、さまざまな API と機能を次々と提供してきた DirectX グラフィックスという安定した基盤がベースとなります。DirectX の機能は Windows 7 で拡張され、ハードウェア アクセラレーションに対応した共通のグラフィックス プラットフォームを、それまでよりも幅広い範囲のアプリケーションで利用できるようになりました。それまでの DirectX は 3D グラフィックスが中心でしたが、いわゆる "メインストリーム" グラフィックスのための機能が追加されたのです。メインストリーム用途では、Web ブラウザー、電子メール、カレンダー、生産性アプリケーションなど、ほとんどのユーザーが日常的に使う一般的なデスクトップ アプリケーションが中心となります。Windows 7 では、DirectX に 2 つの新しいコンポーネントが追加されました。2 次元グラフィックス (図形やビットマップなど) のための Direct2D と、テキストを処理するための DirectWrite です。どちらの追加機能も、パフォーマンスはもちろん、高品質な 2D レンダリングを提供することに重点を置いています。これらの機能が追加されたことで、DirectX は、あらゆるタイプのアプリケーションを対象とするハードウェア アクセラレーション対応のグラフィックス プラットフォームとなりました。実際、Internet Explorer 9 の登場により、ハードウェア アクセラレーションを使うグラフィックスが Web にもたらされ、一般向けのアプリケーションで DirectX を使ってできることの実例が示されました。これらの機能は、WinRT によって新しい Windows 8 アプリケーションすべてに提供されます。グラフィックス チームのグループ プログラム マネージャーである Rob Copeland が執筆したこの記事では、新しいタイプのグラフィカル アプリケーションをサポートするための取り組みについて、舞台裏から詳しく見ていきます。-- Steven

 


コンピューター グラフィックスにおいて、高パフォーマンスは達成すべき指標の 1 つです。初期のパーソナル コンピューターでは、CAD/CAM やゲームのような特殊な用途のアプリケーションを使う場合、別売りのグラフィックス カードの増設が必要になることがほとんどでした。それほど早い段階から、このグラフィックス処理能力をもっと活用できるのではないかという意見があり、特にユーザー インターフェイスとユーザー エクスペリエンスの改善への応用が期待されていました。PC 用の最初のグラフィックス カードの 1 つに、S3 Graphics 社の "Windows Accelerator" (英語) があります。これはユーザー エクスペリエンスに焦点を当てた製品で、画面上でのウィンドウの動きを高速化することができました。グラフィックス ハードウェアの進歩に伴い、開発者がハードウェアと対話する方法も進歩してきました。

Windows の一部である DirectX は、PC のグラフィックス ハードウェアを使ってテキスト、図形、3D シーンを描画し、画面に表示できるようにする共通のアプリケーション プログラミング インターフェイス (API) を提供します。DirectX もまた、長い時間をかけて機能とパフォーマンス特性の両方の点で進歩してきました。初期の DirectX は主にゲームのためのものでしたが、アプリケーションの進化に伴い、よりリッチで視覚的なユーザー インターフェイスが搭載されるようになると、パフォーマンスの向上と豊富な視覚効果を求めて、多くのアプリケーションで DirectX が使われるようになりました。

Windows 8 へ

Windows 8 のグラフィックスに関連する作業を計画し始めたとき、私たちは、ユーザーがアプリや Windows 自体とやり取りするための、視覚的に多彩な新しい手段を作成することになるだろうと認識していました。さらに、Metro スタイル アプリを作成するための新しいプラットフォームを構築する必要があることと、かつてないほど多種多様なハードウェアが対象になることも認識していました。足がかりとなる優れたグラフィックス プラットフォームは存在していたものの、これらの要件に対応するためには、やるべきことがたくさんありました。私たちは、次の 4 点を主要な目標として設定しました。

  1. あらゆる Metro スタイル エクスペリエンスがすばやく滑らかにレンダリングされるようにする。
  2. ハードウェア アクセラレーションに対応したプラットフォームをすべての Metro スタイル アプリに提供する。
  3. 魅力的なビジュアル エクスペリエンスを実現する新機能を DirectX に追加する。
  4. これまでよりも幅広いグラフィックス ハードウェアをサポートする。

それぞれの目標は Windows 8 の構築を別々の側面から見ていますが、いずれもグラフィックス プラットフォームの優れたパフォーマンスと機能に依存するという点が共通しています。

パフォーマンスのための計画

Windows のグラフィックス パフォーマンスは、オペレーティング システムとハードウェア システムの両方によって決まります。ハードウェア システムは、CPU、GPU (グラフィックス処理装置)、および関連するディスプレイ ドライバーで構成されます。新しい Metro スタイル アプリに優れたエクスペリエンスを提供できるようにするためには、ソフトウェア プラットフォームとハードウェア システムの両方で優れたパフォーマンスを達成する必要がありました。

過去、DirectX のパフォーマンス測定にはさまざまなベンチマークとアプリが使われてきましたが、それらは主に 3D ゲームに焦点を当てたものでした。現在でもゲームは非常に重要な要素ですが、このような既存の方法でグラフィックス パフォーマンスを測定しても、多くの場合、グラフィックスを多用する 2D のメインストリーム アプリに必要な情報のすべてを得ることはできません。

そこで私たちは、自身の進捗状況を追跡するために、シナリオ ベースの新しいテストと評価基準を作成しました。私たちが使った評価基準は次のとおりです。

1.  フレーム レート

フレーム レートは 1 秒あたりのフレーム数 (FPS) で表されます。この評価基準はゲームのベンチマークでよく使われますが、ビデオ コンテンツやその他のアプリでも同様に重要な意味を持ちます。画面にアニメーションを表示する場合、滑らかなアニメーション表示のためには 60 FPS が必要です。私たちはこのレートをターゲットとして設定しました。多くのコンピューター画面のリフレッシュ レートは 60 Hz だからです。このフレーム レートであれば、Windows で非常に滑らかなアニメーションが可能になり、"指に吸いつく" ようなタッチ操作が実現されます。

2.  エラー カウント

フレーム レートは重要なメトリックですが、それがすべてではありません。たとえば、10 分間ベンチマークを実行した場合、平均 60 FPS という結果が得られれば一見十分と思われます。しかしこの結果からは、テスト中にどの程度までフレーム レートが低下したかを知ることはできません。負荷の高い部分で一時的にフレーム レートが 10 FPS まで落ち込んだら、アニメーションは滑らかに動かなくなります。エラー カウント メトリックでは、レンダリングに 1/60 秒よりも長い時間がかかり、結果としてフレーム レートが低下した回数の合計をカウントします。また、取りこぼされた同時フレームの数も記録します。ここでの目標は、アニメーション中のフレームの取りこぼしをなくすことです。

3.  先頭フレームまでの時間

ほとんどのユーザーはアプリが短時間で起動することを望んでいるので、DirectX の初期化も短時間で完了する必要があります。"先頭フレームまでの時間" は、タップまたはクリックでアプリを起動してから、アプリの最初のフレームが画面に表示されるまでにかかった時間を表します。これを計測するため、私たちは、グラフィックス システムを分析し、グラフィックス デバイスの初期化や必要なメモリの割り当てなどにかかる時間を調べ、最適化するために利用できる単純なアプリを作成しました。これは DirectX のセットアップ処理を短縮するために役立ちます。

4.  メモリの使用状況

グラフィックス コンポーネントで使われるメモリが増えるほど、アプリで利用できるメモリは少なくなります。システムのメモリの大部分がアプリに提供されるようにすれば、アプリのパフォーマンスを最大限に引き出すことができ、同時に実行できるアプリの数も多くなります。アプリでは、システム メモリと GPU メモリの両方が使われます。GPU メモリは、主として画像、幾何学図形、テキストのレンダリングに使われます。それ以外に CPU を使うグラフィックス処理もあり、この場合はシステム メモリが使われます。

メモリの使用状況を調べるため、私たちは、次の各シナリオでシステムによって使われるメモリを測定しました。

  • アプリがアイドル状態の場合。何の処理も実行中でなく、新��い情報を画面にレンダリングしたり表示したりもしていない状態です。
  • アプリが画面に情報を表示している場合。単純な描画に必要とされる基本的なメモリ コストを表します。
  • テクスチャの作成。GPU で多数のイメージ オブジェクトを作成するときに使われるメモリを表します。
  • 頂点バッファーの作成。幾何学図形を作成するときのメモリ オーバーヘッドを表します。
  • GPU データ アップロード。GPU へのデータのアップロードに伴うメモリのオーバーヘッドを測定します。

これらのシナリオとさまざまなタイプのアプリを使ってメモリの使用状況を測定した結果は、DirectX とディスプレイ ドライバーの最適化をさらに進めるために役立っています。

5.  CPU の使用状況

ほとんどのグラフィックス処理では、GPU に加えて CPU も使われます。たとえば、アプリで描画するものを決定しようとしているとき、その計算は通常 CPU で行われます。CPU の使用状況を把握することは重要です。1 つのタスクによる CPU 使用率が高くなると、他のタスクに割り当てられる CPU サイクルが減少するためです。十分なグラフィックス パフォーマンスとシステム全体の応答性を保つには、CPU と GPU の処理のバランスを取ることが大切です。

これらのベンチマークと評価基準は、エクスペリエンスとアプリを滑らかに動かし、高いパフォーマンスを達成するために役立ちます。メインストリーム アプリを理解するうえで、これらは大きな役割を果たしています。ただしもちろん、全体的なパフォーマンスの測定には、業界のベンチマーク、ゲーム、その他の方法が引き続き使われています。

メインストリーム グラフィックスでのハードウェア アクセラレーション

メインストリーム グラフィックスにはさまざまな見方があります。適切なパフォーマンスと適切なエクスペリエンスを実現するために、私たちは Metro スタイル アプリとデスクトップ アプリの両方について多くの実例を調査し、それぞれがどのようにグラフィックス ハードウェアを利用しているかを調べました。中でも、Internet Explorer 9Windows Live メールWindows Live Messenger は DirectX を効果的に使っています。これらのアプリは DirectX を上手に利用しているため、他のアプリの動作を確認できる良い例と言えます。これは、メインストリーム アプリを高速に動かし、魅力的に見せるために大いに役立ちました。

テキストのパフォーマンスの向上

テキストは Windows で最もよく使われるグラフィカル要素なので、テキスト レンダリングのパフォーマンスを強化すれば、エクスペリエンスを大幅に向上させることができます。高品質で高パフォーマンスなテキスト表示は、Web ページ、電子メール プログラム、インスタント メッセージング、その他のリーダー アプリのすべてにメリットをもたらします。

Metro スタイルの設計言語は豊富な文字体裁に対応しており、多くの Metro スタイル エクスペリエンスが、快適なリーディング エクスペリエンスの実現に力を注いでいます。DirectWrite を使うと、高品質な文字体裁を利用したり、レンダリング用のフォント データを非常に高速に処理したりできるほか、業界最先端のグローバル テキスト サポートも提供されます。私たちは、Metro スタイル アプリでの既定のテキスト レンダリングを最適化し、文字体裁の質とグローバル テキストのサポートを維持したままパフォーマンスと効率を高めることで、Windows 8 のテキスト パフォーマンスをさらに向上させました。

下の棒グラフは、この取り組みによるパフォーマンスの改善結果を表しています。これには次のテキスト シナリオの測定結果が含まれています。

  • Web ページや Word 文書のように、読みやすいサイズのテキストの段落が全体に表示される画面のレンダリング。
  • ボタン ラベルやメニューなどのユーザー インターフェイス コントロールのように、読みやすいサイズの短いテキストが各所に表示される画面のレンダリング。
  • Metro スタイル アプリのタイトルと見出し、ブログ記事や Web 上のニュース記事の見出しのように、見出しのサイズの短いテキストが各所に表示される画面のレンダリング。

Windows 7 からのフレーム レートの増加率: 段落 150%、ユーザー インターフェイス 131%、タイトルと見出し 336%

パフォーマンスの改善が最もわかりやすいのは、長いドキュメントをタッチ スクリーンでスクロールする場合です。文字のレンダリングに必要な時間が短縮されれば、CPU サイクルが解放され、頻繁に発生するタッチ入力などの他のタスクを処理したり、より複雑なドキュメント レイアウトを表示できる余裕が生まれます。

ジオメトリ レンダリングのパフォーマンスの向上

テキストと共に、2D ジオメトリ レンダリングのパフォーマンスも大幅に向上しています。ジオメトリのレンダリングは、表、グラフ、ダイアグラム、ユーザー インターフェイス要素などの作成に使われるコア グラフィックス テクノロジです。例として下の図を見てください。Windows 8 では、この分野の強化点として、パフォーマンスに優れた HTML5 キャンバスと SVG テクノロジの実装を提供することを主な目標としました。これらの機能は、Metro スタイル アプリや Internet Explorer 10 を対象とした Web ページで使われます。

  過去の気象データを示す棒グラフ   

Windows 8 の Weather アプリでは、過去の気温データと降水量データのグラフ表示にジオメトリが使われている

Direct2D でジオメトリを描画するときは、2D 図形 (四角形、楕円、パスなど) として描画するもの、その図形のサイズと位置、ブラシの色やストローク スタイルなどのレンダリング スタイルの詳細について、アプリから Direct2D に処理命令を渡します。この処理命令はトライアングルとコマンドのセットに変換され、目的の出力を生成するために Direct3D に送信されます。この変換プロセスは "テセレーション" と呼ばれます。

Windows 8 におけるジオメトリ レンダリングのパフォーマンスを改善するために、私たちは、テセレーションに関連する CPU コストの削減に力を注ぎました。これは 2 つの方法で行われました。

まず、四角形、直線、角丸四角形、楕円などの単純なジオメトリをレンダリングするときのテセレーションの実装を最適化しました。下の図は、この改良による効果を示しています。

Windows 7 からのフレーム レートの増加率: 直線 184%、楕円 369%、角丸四角形 220%、四角形 438%

次に、グラフィックス ハードウェアの新機能である "Target Independent Rasterization" (TIR) を使い、変則的なジオメトリ (地図上の地理的境界線など) をレンダリングする際のパフォーマンスを改善しました。

TIR を利用すると、Direct2D がテセレーションで消費する CPU サイクルが減少するため、画質を犠牲にすることなく、GPU に対する描画命令をよりすばやく効率的に発行できます。TIR は、Windows 8 向けに設計された、DirectX 11.1 をサポートする新しい GPU ハードウェアで利用できます。

下のグラフは、さまざまな SVG ファイルについて、TIR 対応の DirectX 11.1 GPU でアンチエイリアスが有効なジオメトリをレンダリングした場合のパフォーマンスの向上を表しています。

15 ファイルを表示、 増加率は 151% から 523%

私たちは、グラフィックス ハードウェア パートナーと緊密に協力して TIR の設計を行い、このパートナーシップによって劇的な改善が実現されました。現在、市場には既に DirectX 11.1 ハードウェアが登場しています。より多くの TIR 対応製品が広く利用可能になるように、私たちは引き続きパートナーと協力して作業を進めています。

画像のレンダリング

画像は、ユーザー インターフェイスの表示、Web ページの表示、その他のアプリ コンテンツの表示など、さまざまなシナリオで広く使われます。Web サイトでは一般に、写真には JPEG が、ボタン画像などのユーザー インターフェイス要素を効率よく保存するためには PNG ファイルと GIF ファイルが使われます。

デジタル写真の処理も Windows でよく行われる操作です。Windows ユーザーが PC で表示したり処理したりするデジタル写真の数は、驚くほどの速さで増え続けています。

JPEG、GIF、PNG 形式の画像と写真の処理には、パフォーマンス上の改良がいくつか加えられています。

JPEG の改良点には次のようなものがあります。

  • すべての CPU アーキテクチャで SIMD の使用場面を広げ、画像のデコードを高速化。
  • Huffman デコードおよびエンコードを高速化。

PNG の改良点には次のようなものがあります。

  • すべての CPU アーキテクチャで SIMD の使用場面を広げ、画像のデコードを高速化。
  • 独自の zlib の実装を最適化し、画像のエンコードとデコードを高速化。

さらに、ピクセル形式の変換と画像の拡大縮小の処理も改良しました。この結果、すべてのアプリで画像のデコードとレンダリングが高速化されます。

下のビデオでは、テスト用のアプリを使って、一連の画像のデコードとレンダリングにかかる時間を計測しています。Windows 8 では、64 個の画像のレンダリングにかかる時間が Windows 7 と比べて 40% 短縮されています (4.38 秒と 7.28 秒)。

レンダリングと表示

私たちは、DirectX を拡張してメインストリーム シナリオのサポートを広げると同時に、アプリによるコンテンツのレンダリング方法と表示方法を最適化することにも力を注ぎました。3D ゲームでのコンテンツの描画方法と、Internet Explorer のようなメインストリーム アプリでのコンテンツの描画方法には、いくつかの大きな違いがあります。例として、下のゲームの動画を考えてみましょう。このようなゲームでは、シーン全体が次々と変わります。"カメラ" が車の周辺を移動するのに伴い、空では雲が動き、エンジンからは煙が舞い上がります。魅力的で本物らしいエクスペリエンスを実現するためには、アプリでフレームごとにシーン全体を再描画する必要があります。


ビデオをダウンロードしてお好みのメディア プレーヤーで再生することができます:
高画質 MP4 | 低画質 MP4

次に、下の Web ページを見てください。このページには、テキストの記事と動画の両方が��まれています。動画を再生している間、ブラウザーでは、テキストの部分はそのままに、動画が表示されている部分だけを更新する必要があります。また、ユーザーがページを上へスクロールした場合、レンダリングが必要になるのは、ページの下部に位置する新しいテキストだけです。残りのテキストは既にレンダリングされているので、単純に移動するだけで済みます。

動画が埋め込まれ、インラインで再生される MSDN Web ページの画像

フレームごとに画面全体を再描画する必要のないアプリを改善するために、私たちは、DirectX で画面の一部だけを再描画するときの動作と、スクロールの動作を最適化しました。この取り組みにより、アプリの効率とパフォーマンスが改善されるだけでなく、電力消費も低く抑えられ、結果としてバッテリの駆動時間が長くなります。これは、余分な描画処理が減り、グラフィックス データをメモリにコピーする回数も少なくなるためです。

プラットフォーム全体の改善

これらの変更はいずれも、Windows によるエクスペリエンスのレンダリングをすばやく滑らかにするために一役買っています。ここまで主に DirectX の機能についてお話ししてきましたが、これらの取り組みのすばらしいところは、プラットフォーム全体に既定でハードウェア アクセラレーションが適用されるようになる点です。Metro スタイル プラットフォームは DirectX の基盤の上に構築されているため、開発者が選択したプログラミング言語やフレームワークにかかわらず、どのアプリでもシステムのグラフィックス ハードウェアを最大限に活用することができます。

Direct2D と Direct3D による魅力的なビジュアル エクスペリエンスの作成

Direct2D Effects

最近のユーザー エクスペリエンスでは、画像に装飾的効果を適用することが一般的になってきています。このような効果は、アプリの一部を強調表示したり、画面の特定部分にユーザーの注目を集めたり、見た目をきれいにしたりするために役立ちます。Windows 8 のグラフィックス機能を設計するにあたり、私たちは、このような種類の効果を開発者がごく簡単にアプリに適用できるようにしたいと考えました。そこで、画像処理が役立つ可能性のある 2 つの場面について検討しました。

  • ユーザー インターフェイスの画像
    Metro スタイル エクスペリエンスでは動的なビジュアルが使われます。私たちは、Metro スタイル アプリでリアルタイムに画像処理を実行できるようにしたいと考えました。画像処理とは、3D 切り替え効果から、透視変換、ぼかし、ユーザー インターフェイス要素の強調表示まで多岐にわたります。
  • 写真
    写真を扱うアプリでは、豊富な画像処理機能が求められることがよくあります。露出、明るさ、コントラストの調整、鮮やかさや明瞭さの適用、高度な曲線の処理、レンズ補正の適用などの効果を使うと、このタイプのアプリでデジタルの思い出をさらに輝かせることができます。

このようなエクスペリエンスを実現するために追加されたのが、"Direct2D Effects" という新しい API セットです。これにより、ハードウェア アクセラレーション対応の高品質な効果を任意の画像に適用できます。Direct2D Effects には次のような利点があります。

  • 画像の効果が最適な品質でレンダリングされ、さまざまなアプリのニーズに対応できる。
  • 効果にはハードウェア アクセラレーションが適用され、広範囲にわたるグラフィックス ハードウェアに対応する。
  • シンプルな API により、最小限のプログラミングで質の高い効果を使うことができる。
  • 組み込みの効果が数多く用意されている。
  • 大きいサイズの画像がサポートされ、32 ビット/チャネルまで対応する。
  • カスタム効果を、組み込みの効果や別のカスタム効果と組み合わせることができる。

Direct2D Effects は、Windows 8 の新しいユーザー エクスペリエンスの一部を強化します。たとえば、スタート画面をタップすると、タイルに 3D 透視変換効果が適用され、適切な方向に "傾斜" します。Direct2D Effects は、プラットフォームの他の部分でも使われます。たとえば、SVG フィルター効果と CSS 3D Transforms は、Direct2D Effects を使って実装されています。

共通基盤としての Direct3D 11.1

Direct2D Effects のような新機能の追加は開発者が新しいエクスペリエンスを実装できるようにするために役立ちますが、一方で私たちは、既存の DirectX 機能をより使いやすくする方法も模索していました。

長年にわたる開発を通して、DirectX にはさまざまな機能が追加されています。動画のデコード処理のハードウェア アクセラレーションは、Direct3D 9 でプログラミング可能なシェーダーとして登場しました。Windows 7 では Direct2D が追加され、Direct3D 10 の上に載せる形で組み込まれました。当時はまた、GPU による高パフォーマンス計算のための新しいシステムとして DirectCompute も作成され、これは Direct3D 11 の一部となりました。このような一連のアップデートの結果、DirectX にはグラフィックスと GPU 計算に関するさまざまな機能が数多く含まれることになりましたが、副作用として、ビデオ、2D グラフィックス、3D グラフィックス、テキスト、DirectCompute を合わせて使うアプリの開発はしだいに難解になっていきました。

Windows 8 では、新しい Direct3D 11.1 API が、2D グラフィックスとテキスト、3D グラフィックスと計算、および動画にハードウェア アクセラレーションを適用するための基盤となります。新しい API では、レンダリングに関連するすべての GPU リソースをその単一の API で管理できるため、異なる種類のコンテンツを 1 つの画面に混在させることがずっと簡単になります。また、アプリのコードで複数のグラフィックス デバイス管理オブジェクトを作成する場合に生じる冗長性が排除されるので、メモリ使用率を減らすこともできます。加えて Direct3D 11.1 は、異なるグラフィックス ハードウェアのさまざまな機能にアプリからアクセスするための統一的な方法を提供します。アプリでは、利用可能な機能を判別し、有効な機能だけを使うことができます。これにより、GPU がタブレットのバッテリを長持ちさせるように設計されている場合でも、デスクトップ PC でハイエンドなゲームを楽しむように設計されている場合でも、アプリで GPU の性能を最大限に活用することができます。

多様なグラフィックス ハードウェア

過去、各時点における次期リリースの Windows には、グラフィックス プラットフォームとグラフィックス ハードウェア性能の両方がさらに充実し、パフォーマンスも向上することが当然のように期待されてきました。これは現在にも当てはまり、グラフィックス ハードウェア業界では、より高速でより強力な GPU の開発が続けられています。しかし Windows 7 のころ、ハードウェアの多様化が進み、省電力の携帯デバイスが増えてきた状況を受けて、私たちはこの前提が変わりつつあることを感じ始めました。

Windows 8 においても、ハードウェアの種類が多様化する傾向はますます強くなり、新しい高性能なグラフィックス カードが開発されると同時に、さまざまな省電力携帯デバイスも次々と登場しています。Windows 8 向けのハードウェアは、常時接続型のタブレットで約 1 ワットを消費するグラフィックス ハードウェアから、合計で 1,000 ワット以上を使う複数のグラフィックス カードが搭載されたハイエンド システムまで、これまでにないほど広範囲にわたります。この幅広い多様性には、設計上の新しい検討事項が伴います。

私たちの目標は一貫して、視覚的に魅力的でパフォーマンスの高いエクスペリエンスを実現することです。携帯性の高いデバイスでは、バッテリが主な電源として使われるため、バッテリ駆動時間を最大化する必要もあります。このような新しいフォーム ファクターでのパフォーマンスと電力消費の要件を両方とも満たすために、私たちのグラフィックス ハードウェア パートナーの多くは新しい GPU アーキテクチャを採用しています。

省電力システム

パフォーマンスに加えてバッテリの長時間駆動が求められる省電力設計のシステムでは、"タイル ベースのレンダリング" というグラフィックス アーキテクチャが一般によく使われます。タイル ベースのレンダリングでは、基本的な概念として、きわめて高パフォーマンスの (ただし小さい) メモリ キャッシュを用意し、それをグラフィックス エンジンがレンダリングに使うという手法が取られます。GPU は、画面全体を一度に処理するのではなく、同一のコマンド セットを各タイルに対して繰り返し処理することで、それぞれのセクション (タイル) の画面をレンダリングします。これは、チップ外のメモリを使う処理を最小化し、電力消費を抑えて高パフォーマンスを維持することを目的としたしくみです。チップ外のメモリに何度もアクセスすると、時間的にも電力消費的にもコストが高くなります。

このタイル ベースのアーキテクチャの効果を高めるため、私たちは多数のフラグ、ヒント、新しい API を追加して、タイルのレンダリング回数を最小化できるようにしました。これらは Metro スタイル アプリの開発プラットフォームに取り込まれているので、タイル ベースのレンダリング アーキテクチャを使うグラフィックス ハードウェアでのアプリの動作効率が大きく向上します。

パフォーマンスを維持したままグラフィックス ハードウェアの電力消費を抑えるには、グラフィックス レンダリングの計算をより低い精度のビット数で実行する方法もあります。これにより、GPU ではより効率的にデータを構築できるようになるため、同時に処理できるデータが増え、必要な電力は少なくなります。Windows 8 では、グラフィカル計算に必要な精度をアプリで指定できるようにする新しいしくみが追加されています。たとえば、複数の画像のカスタム ブレンドを実行する場合、画像データが 8 ビット/コンポーネントであるとすると、ブレンド計算は既定の 32 ビットではなく 10 ビットの精度で実行すれば十分です。精度を下げても画質には影響しません。それでいて電力消費は抑えられます。

優れたパフォーマンス、滑らかなレンダリング


ビデオをダウンロードしてお好みのメディア プレーヤーで再生することができます:
高画質 MP4 | 低画質 MP4

ここまでの説明でおわかりのように、私たちは、Windows 8 で非常にすばやく滑らかなアニメーションのユーザー エクスペリエンスを実現するべくたくさんの作業を行ってきました。進捗状況を測定する新しい手法から、グラフィックス プラットフォームのメインストリーム用途を対象とした最適化、そして新しいハードウェア機能に至るまで、私たちが作り上げた Windows グラフィックス プラットフォームはこれまでで最高のものと言えます。もちろん、今後もさらなる改良を続け、優れたパフォーマンスとステレオスコピック 3D などの新機能により、プレイヤーが夢中になるような 3D ゲーム体験を強化していく予定です。

Windows 8 では、ゲームに適した高性能デバイスから常時接続の軽量タブレットまで、かつてないほど広範囲にわたるグラフィックス ハードウェアが単一のオペレーティング システムでサポートされます。まったく新しいリッチなエクスペリエンスを実現するこの取り組みについて、この記事が多少なりとも理解の助けになればさいわいです。

- Rob Copeland

追記: この記事の執筆にあたっては、Sriram Subramanian 氏、Dan McLachlan 氏、Kam VedBrat 氏、Steve Lim 氏、Jianye Lu 氏より多大なご協力をいただきました。ありがとうございました。