NexusArcプレイヤーOS
検索 Bazaar 会員アカウント
テクノロジー / NexusArc

PCゲームがシェーダーをコンパイルする理由とカクつきの見分け方

新しい効果で一度だけ止まる原因は、シェーダーやPSOの準備かもしれません。キャッシュをむやみに消さず、時間のグラフと再走で切り分けます。

執筆: NexusArc Staff 公開日: 2023年12月16日 777語
冷却機構、メモリ、レンダリングハードウェアを強調した実物の最新デスクトップ向けグラフィックカード。
画像提供:NVIDIA。

シェーダーの役割

シェーダーはGPUが実行するプログラムです。形状の変換、画素の色、照明、汎用計算などを担当します。素材、光、効果、画質、描画方式によって必要なコードや状態が変わるため、現代のゲームには多くの組み合わせがあります。

PCでのコンパイルが複雑な理由

家庭用ゲーム機はハードウェアとソフトウェアの対象が限られます。PCはCPU、GPU、ドライバー、OS、設定の組み合わせが多彩です。ゲームに高水準のコードや中間形式を同梱しても、最後に実行する機種固有の命令はPCとドライバーに依存します。

Direct3D 12は、シェーダーと関連する固定状態を変更不可のパイプライン状態オブジェクト(PSO)へまとめます。新しい場面へ移動する最中に必要なPSOを作ると、処理に時間がかかる場合があります。

シェーダーによるカクつきの見え方

準備できていない効果やパイプラインに初めて出会うと、1フレームの時間が急に長くなることがあります。平均FPSが高くても動きは一瞬止まります。最初の爆発、新しい敵の効果、天候の変化、エリア移動などがきっかけになります。

生成した結果がキャッシュされれば、2回目に同じ場面を訪れたときは滑らかに動く場合があります。

キャッシュを作り直す理由

シェーダーキャッシュは、ゲーム、ドライバー、ハードウェア、コンパイル経路の前提に結び付いています。ドライバー更新でコンパイラーや命令が変われば、以前の結果が使えなくなることがあります。ゲーム更新によるシェーダーやPSOの変更でも同様です。

更新後の再構築は、故障を意味しません。日常の「最適化」としてキャッシュを消すと、次の起動で同じ作業が必要になり、かえって悪化する場合があります。

代表的な準備方法

  • 起動時の事前コンパイル:既知の多くの組み合わせを先に作り、その間待ちます。
  • バックグラウンド処理:メニューや序盤の場面で並行して準備します。
  • 必要になった時点で作成:初使用時の停止リスクが最も大きい方式です。
  • キャッシュの配信:既知のハードウェアとコンパイラー向けの生成済みデータを届けます。
  • 組み合わせ:主要なものを先に準備し、まれなものは後で作ります。

Microsoft Advanced Shader Delivery

MicrosoftのAdvanced Shader Deliveryは、利用者のPCで行うコンパイルを減らす仕組みです。ゲームのシェーダーデータを標準化したデータベースにまとめ、分離したコンパイラー情報とクラウドで組み合わせます。対応するWindows Storeの配信では、コンパイル済みデータをゲームと一緒に届けます。

初回の待ち時間やカクつきを減らし、ドライバー更新で必要になればキャッシュを更新することが目的です。プラットフォーム、ストア、開発側の組み込み、ハードウェア企業の対応に依存するため、全PCゲームに一律で効く対策ではありません。

プレイヤーができること

  • コンパイル画面がある場合は、完了してから遊ぶ。
  • キャッシュと更新用の空き容量を確保する。
  • 安定版の新しいドライバーを使い、理由なく再インストールを繰り返さない。
  • 日常の保守としてシェーダーキャッシュを消さない。
  • 大きな更新後の初回は再構築があり得ると考える。
  • 移動時の読み込み、ストレージ、通信、CPUの上限による停止と区別する。

高速なGPUでも解決しない場合

PSOができた後の描画は速くても、コンパイルにはCPU、ドライバー、ストレージ、同期が関わります。平均FPSが非常に高いPCでも、新しいPSOを作る瞬間だけ長く停止することがあります。

原因の調べ方

平均FPSだけでなく時間のグラフを使います。効果の初登場時だけ止まり、2回目は止まらなければ、コンパイルは候補です。同じエリア境界で毎回止まるなら、素材の読み込みが疑われます。通信イベントに沿って起きる場合は、描画以外の問題かもしれません。

必要な処理を使う前に済ませる

コンパイルは、ゲームの描画プログラムとパイプライン状態を、現在のGPUとドライバーが効率よく実行できる形へ変える作業です。曖昧に「グラフィックスをインストールしている」という意味ではありません。プレイヤーが必要とする前に準備できれば、初回プレイ中の停止を避けやすくなります。

カクつき全体の診断と組み合わせる

初回コンパイルは原因の1つにすぎません。PCゲームのカクつき診断で、同じ経路、エリア境界、VRAM、CPUの処理割り当て、温度を比較します。フレーム時間・FPS変換ツールで遅いフレームをミリ秒に直せます。単発のシェーダー停止が電源に由来することはまれですが、再起動やクロック変化もあるなら、PC電源容量の見積もりで構成の電力前提を整理できます。

ソース

NexusArc Staff プロファイルイメージ
投稿ナビゲーション

NexusArc Staff

NexusArc Staffは、NexusArc編集チームが作成したニュース、ガイド、更新情報、サービス情報を公開しています。