ゲーム開発のグラフィックス最適化ヒント集

投稿日: 2022-03-16 15:05:29

ゲーム開発のグラフィックス最適化ヒント集

頂点シェーダーのウェーブフロントが緑色

ピクセルシェーダーのウェーブフロントは青色

良好なウェーブフロントの占有率を目指す

ドローコールを 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スレッド(クワッド)を基本単位としている。

GPUを支える技術読み始めた 第4章 [前半]