Unity 6でシェーダーコンパイルのスタッターを防止する「GraphicsStateCollection」の活用術、サイバーエージェント「コアテク」がブログ記事で解説

Unity 6でシェーダーコンパイルのスタッターを防止する「GraphicsStateCollection」の活用術、サイバーエージェント「コアテク」がブログ記事で解説

2026.07.22
ニュースUnityシェーダープログラム技術ブログ
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

この記事の3行まとめ

  • サイバーエージェントの「コアテク」、Unity 6のAPI「GraphicsStateCollection(GSC)」の解説記事を公開
  • モバイル環境におけるシェーダーのWarmupでGSCを活用し、スタッターを防止する手法をサンプルコード付きで紹介
  • GSC導入後もスタッターが残った事例とその解決策についても解説している

サイバーエージェント ゲーム・エンターテイメント事業部 コア技術本部(以下、コアテク)は2026年7月7日(火)、『GraphicsStateCollection を使ったシェーダーウォームアップについて』と題した記事を公開しました。

モバイル環境において、Unity 6より導入されたAPIGraphicsStateCollection(以下、GSC)を用いてシェーダーをWarmupすることで、シェーダーコンパイルスタッター(シェーダーコンパイルによる処理落ち)を防止する知見を紹介。

GSCの基本的な使い方を説明したうえ、Unity 6.3 LTSでの開発時にアクシデントが発生した実例や、それらを解決した方法について解説しています。

(画像はブログ記事より引用)

GSCは、シェーダーバリアントとグラフィックス状態の組み合わせを保存し、まとめて「Pipeline State Object(PSO)」を生成できるAPI。Unity 6より実験的機能として搭載されたもので、ShaderVariantCollection」の代替として位置づけられているとのこと。

GSCで記録される情報の例(画像はブログ記事より引用)

シェーダーコンパイルスタッターの要因は、シェーダーバリアントの初回描画時にShader.CreateGPUProgramでの変換とPSO生成という2段階にわたるコンパイル処理を行うことで処理負荷が発生するためだと説明。

MetalやVulkanではPSO生成のコストが大きいため、初回描画時のスタッターは数ms~数十msにおよぶとのこと。

こうしたPSO生成をゲーム起動直後など任意のタイミングで実行可能とするのが、GSCによるWarmupです。

Shader.CreateGPUProgram(Main Thread上におけるSPIR-V/MSLレベルでのシェーダーバリアントコンパイル)の処理(画像はブログ記事より引用)

PSO生成時(Render ThreadでGPUドライバーによりマシン語へ変換する処理)のコンパイル発生例(画像はブログ記事より引用)

具体的な実装手順については、PSO生成に必要なシェーダーバリアントや頂点レイアウトといった情報を記録する「レンダリング設定の収集」と、それをもとにWarmupを実行する2つのフェーズに分けて、サンプルコードを添えつつ実装例を提示しています。

また、GSCを導入してもスタッターが残ってしまった実際のケース4種類を紹介し、その原因と対処法を解説しています

たとえば「Warmup実行時にmismatchの警告が出る」問題については、GSCファイルに保存されたメタデータが実行環境と一致しないことが原因だったといい、ファイル設定を修正することで解決。そのほか、iOS環境(Metal)でのみ発生した不具合の発生事例なども紹介しています。

実際に表示されたとしているmismatch警告。異なるプラットフォームで収集したGSCを流用していたケースなどにおいて、これらの警告が発生したという(画像はブログ記事よりスクリーンショットで引用)

詳細はブログ記事をご確認ください。

「GraphicsStateCollection を使ったシェーダーウォームアップについて」CORETECH ENGINEER BLOG

関連記事

ゲーム開発関連ツールのリリース・アップデートまとめ【2026/8/8】
2026.08.08
パッキング不要でアセット管理を最適化。Unity 6.6で導入される「Content Directories」の解説記事、サイバーエージェント「コアテク」が公開
2026.08.07
ゲーム開発関連ツールのリリース・アップデートまとめ【2026/8/1】
2026.08.01
Epic Gamesのマーケットプレイス「Fab」、8/11(火)までの期間限定で無料コンテンツを公開。アトランティスの遺跡をイメージした環境アセットなど3製品
2026.07.29
ゲーム開発関連ツールのリリース・アップデートまとめ【2026/7/25】
2026.07.25
サムザップ内製のUnityデバッグツール「Spica.Debugger」はUI Toolkitで構築。高い拡張性を実現した内部実装をブログで解説
2026.07.24

注目記事ランキング

2026.08.03 - 2026.08.10
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

プロジェクト(Project)
プロジェクト
  1. 有限な期間で定められた目標を達成するための活動。
  2. ゲーム制作において、ひとつのタイトルを開発する活動。
  3. ゲームエンジンでは、ひとつのタイトルを開発するための環境一式。プロジェクトを開く起点となるファイルをプロジェクトファイルと呼ぶ。
VIEW MORE

Xで最新情報をチェック!