ゲーム開発のグラフィックス最適化ヒント集
頂点シェーダーのウェーブフロントが緑色
ピクセルシェーダーのウェーブフロントは青色
良好なウェーブフロントの占有率を目指す
ドローコールを GPU に送ると、その作業は多くのウェーブフロントに分けられ、Unity はそれを GPU 内の利用可能な SIMD に分配します。
Async Compute を活用する
GPU を十分に活用できていない区間がある場合、Async Compute を使用することで、意味のあるコンピュートシェーダーの作業をグラフィックキューに移動させて、並列化することができます。これにより、GPU のリソースを有効に活用することができます。
コンソール機向けゲームのグラフィックス最適化に関する専門家からのヒント集 – Unity Blog
コンソール-PCのパフォーマンスの最適化 eBookの無料ダウンロード
コンソールゲームの GPU の最適化に関するヒント – ハイエンドグラフィックのレンダリング – ビデオゲーム開発 – Unity
グラフィックスパフォーマンスの最適化 – Unity マニュアル
Wavefront(ウエーブフロント)
AMD GPUでは、「Wave」と呼ぶ64スレッドのバッチ単位で処理を行なう。Waveの先頭の64スレッド分の命令が、Wavefront(ウエーブフロント)として実行ユニットに送られる。
【後藤弘茂のWeekly海外ニュース】PlayStation 4で採用されたAMDのGCNアーキテクチャ – PC Watch
GPUの並列処理方式
1命令でいくつスレッドを実行するかはベンダによって違いがあり、
NVIDIは32スレッド(ワープ)、AMは64スレッド(ウェーブフロント)、ARMは4スレッド(クワッド)を基本単位としている。