日々適当

hibitekitou

Quartz 2D Extreme について

mac |2005-05-23
Quartz 2D Extremeこちらのページを日本語訳した某巨大掲示板のMac関連ネタを凄い勢いで翻訳するスレ・4を参考に個人的にまとめてみた。誤解があるかもしんない。

Quartz 2D(イメージングモデルの基礎にPDF(Portable Document Format)を採用したMac OS Xに搭載されている画期的なウインドウ合成システムのこと。Quick Drawという旧Mac OSからのものも引き続き利用できる)をGPU上で動作させるためのもの。Quartz 2D Extremeをオフにした状況において、Quartz 2DはCPUにより描画の変更命令をRAM上にキャッシュされたデータに対し送っていた(Mac OS X 10.2によるQuartz Extremeの実装以降、VRAMは仮想化されあたかも仮想メモリにおけるハードディスクのごとくRAMを利用するようになっていた。ただし、描画内容の変更は、あくまでもRAM上で行っていた。…そうです。実際に描画された絵の合成・出力を担当するのがQuartz Compositorで、これをGPUで利用できるようにしたのがQuartz Extreme…なのかな?)。
Quartz 2D Extremeではこの描画内容の変更を直接VRAMに保持されたデータに対して行うようになる。GPUとの接続速度が(RAMからより遥かに高速な)VRAMから変更された描画内容をGPUは参照することになり、従来より高速な描画が期待できるようになる(ビデオカード内部では30GB/sの速度でデータのやり取りができるのに対し、RAMからビデオカードへは2.1GB/sの速度しか無い、という図が示されています)。

VRAM上に保持されるデータは、例えばGUIを構成する部品やビットマップ化されたフォント(画面に描画されるフォントはビットマップである)などであり、その結果、ベンチマークソフトのGUIの項目が非常に高速化されることとなる。

ただし、物理的なVRAM容量は有限であることから、理想的には近未来に利用されるデータをのぞいてRAM上に退避させることが必要となる。とはいえ、従来のアプリケーションの作り方の考え方では、近未来予測が難しく、その結果、Quartz 2D Extreme をオンにしたとき、かえって描画速度が低下する場面もあり得る(Appleで配信されているH.264のHDムービーを再生させたとき、Quartz 2D Extremeをオンにするとあからさまにパフォーマンスが落ちたのも、これが原因でしょうかね)。

ちなみに、Tiger後、AppleはQuick Drawを非推奨としたそうだ。Quick Drawは、従来Quartz 2Dがライン描画においてQuick Drawよりも遅かったために(って理由だけじゃないだろうけど)、現在でも利用されているそうである。ただし、TigerではQuartz 2Dにおけるライン描画がQuartz 2D Extremeをオフにしてソフトウェアで描画している従来と同様の場合においても、上記リンク先のページで行ったベンチマークにおいて、Quick Drawの実に5倍ものパフォーマンスを示すようになっているようである(Panther上では2倍弱の差でQuick Drawの方が高速であるのに対し、TigerではQuick Drawの描画速度自体にPantherからの変化は無く、Quartz 2Dが高速化していることが見て取れる結果となっている)。

個人的印象としては、何らかの理由で現在デフォルトではオフにされているQuartz 2D Extremeがオンになり、アプリケーションがそれに対応した作りになったとき、描画に関してバラ色の未来が待っていそうで非常に楽しみですね。
コメント ( 0 )|Trackback ( )
  ・