AMDがソフトウェア最新技術に関する記者発表会を実施し、同社の「FreeSync」、「Liquid VR」、「Asynchronous Shaders」を解説した。
このうち、画面同期技術「FreeSync」は別の記事で詳細を伝えているので、ここでは「Liquid VR」と「Asynchronous Shaders」について紹介しよう。
VRヘッドマウントディスプレー向けのAPI
Liquid VR
「Liquid VR」はVRヘッドマウントディスプレー向けのAPIだ。これは、遅延の軽減と画質の向上を目指したもので、類似の技術にNVIDIAの「VR Direct」がある。
ヘッドトラッキングによる遅延低減技術として、「Oculus Rift DK2」にはTime Warpが実装されている。Time Warpとは、演算した映像を描画する直前に、再度頭部の位置を取得し、現在の頭部の位置に合うよう、映像の描画を最新の位置にずらして表示する機能だ。
描画中に頭を動かすと、描画された映像は過去の位置の映像になる。これが遅延となる。そこでTime Warpでは、動いた頭の位置を描画直前に再度計測し、例えば左に頭を振って位置がずれたのであれば、ずれた分だけ描画した映像も左方向にずらして表示する。これで遅延がないようにみせる技術だ。
「Liquid VR」では、このTime WarpをGPU側で処理することで描画速度を向上させるLastest Data Latchが実装されている。
「Liquid VR」には、ほかにも大きな機能がある。左目と右目の映像をそれぞれ別のGPUが担当し描画することで、極力遅延を軽減しつつ画質を高める「Affinity Multi-GPU」、OSを介さずVRアプリがヘッドマウントディスプレーに直接映像を送る「Direct-to-Display」などだ。
描画と計算を並列処理で高速化する
Asynchronous Shaders
「Liquid VR」の機能として、今回AMDが新しい資料を公開したのが「Asynchronous Shaders」だ。これは、描画と計算を並列処理とすることで、タスクの待ち時間を改善し、描画速度を向上させる機能のこと。
描画が高速化するということは、それだけ遅延が減るということなので、「Asynchronous Shaders」はVR環境での効果が期待されている。
Radeonシリーズに採用されているGCNアーキテクチャーにはACE(Asynclonous Compute Engine)という非同期演算エンジンが搭載されている。「Asynchronous Shaders」は、このACEを使用することでタスクの切り替えにおけるオーバーヘッドを減らし、処理の高速化を図っている。
「Asynchronous Shaders」の仕組みは、AMDがわかりやすい動画を用意しているので、下の動画を参照してもらいたい。