今週のお題はG-SYNCとFreeSYNCだ。G-SYNCはNVIDIAの、FreeSYNCはAMDのディスプレー同期技術であるが、その目的とするところはおおむね同じである。
G-SYNCは週刊アスキー、FreeSYNCはASCII.jpで過去に解説があるが、両者の違いを含め改めて解説していこう。
スタッタリングとティアリングを抑える技術
基本的にはどちらも、解決しようとする問題そのものには代わりがない。それはスタッタリング(Stuttering)とティアリング(Tearing)という現象の解消だ。それぞれどんな現象かをまず説明しよう。
大前提として、通常のモニター表示モードの説明である。下図がそれで、たとえばモニターのリフレッシュレートを60Hzとすると、モニターは一定期間(1/60秒)ごとに新しい画面を表示し、その間は同じ画面を表示し続ける。
一方GPUは、やはり一定期間内に新しいフレームを生成することになる。だいたいはGPUのフレーム生成時間の方が短いので、これであれば別に問題は発生しない。
問題は、GPUのフレーム生成時間が1/60秒を超えてしまう場合だ。4Kで描画品質最大でゲームをプレイしている場合、描画性能が60fpsに達しないことは珍しくない。
下図がそれで、Frame #2の生成が1/60秒を超えたらどうなるかというと、Frame #2の表示が間に合わないためFrame #1を再表示することになる。
厳密に言えばこれはモニター側の処理ではなくGPU側の処理である。通常GPUはマルチバッファ(デュアル・バッファリングあるいはトリプル・バッファリングなどが採用される)という構成になっている。
たとえばデュアル・バッファリングでは、出力用Buffer #1と#2が設けられている。この際GPUはまずFrame #1の出力をBuffer #1に書き込み、リフレッシュ用のポインターをこのBuffer #1に指定する。するとBuffer #1の中身がモニターに転送されるので、その間にGPUはFrame #2の内容をBuffer #2に書き込む。
次のフレームではBuffer #2からモニターに転送されるので、GPUはその間にFrame #3の内容を再びBuffer #1に書き込む、……という具合に、2つの画面出力用バッファを交互に切り替えて使うのがデュアル・バッファリング、バッファを3つにするのがトリプル・バッファリングというわけだ。
話を図に戻すと、GPUによるFrame #2の描画処理が1/60秒を超えた場合、モニター出力用のバッファはBuffer #1のままで固定になる(Frame #2への描画処理が終わった段階で切り替わるため)。結果、Frame #1は2フレーム連続して表示されることになる。
これは人間からみると、一瞬動きが止ったかのように感じられる。これがスタッタリングである。
ちなみに上図の方式では純粋に1フレーム分遅延するだけだが、Frame #3の描画が間に合わない場合にはこれをスキップしてFrame #4の描画にかかるというようなアプリケーションもある。この場合、Frame #3も飛ばすことになり、動きがさらにカクカクすることになる。
この連載の記事
-
第764回
PC
B100は1ダイあたりの性能がH100を下回るがAI性能はH100の5倍 NVIDIA GPUロードマップ -
第763回
PC
FDD/HDDをつなぐため急速に普及したSASI 消え去ったI/F史 -
第762回
PC
測定器やFDDなどどんな機器も接続できたGPIB 消え去ったI/F史 -
第761回
PC
Intel 14Aの量産は2年遅れの2028年? 半導体生産2位を目指すインテル インテル CPUロードマップ -
第760回
PC
14nmを再構築したIntel 12が2027年に登場すればおもしろいことになりそう インテル CPUロードマップ -
第759回
PC
プリンター接続で業界標準になったセントロニクスI/F 消え去ったI/F史 -
第758回
PC
モデムをつなぐのに必要だったRS-232-CというシリアルI/F 消え去ったI/F史 -
第757回
PC
「RISC-VはArmに劣る」と主張し猛烈な批判にあうArm RISC-Vプロセッサー遍歴 -
第756回
PC
RISC-Vにとって最大の競合となるArm RISC-Vプロセッサー遍歴 -
第755回
PC
RISC-Vの転機となった中立国への組織移転 RISC-Vプロセッサー遍歴 -
第754回
PC
インテルがCPUの最低価格を82ドルに引き上げ、もう50ドルでは売れない製造コスト問題 インテル CPUロードマップ - この連載の一覧へ