重要なポイント
PC ごとに GPU が異なるため、さまざまなブランドやモデルのグラフィックス カードでゲームを実行するにはシェーダーのコンパイルが必要です。残念ながら、そのコンパイル プロセスにより迷惑な途切れが発生する可能性があります。
一部のゲームでは、コンピューターの性能や選択した設定に関係なく、ある種の途切れが発生します。これは「シェーダー コンパイル」として知られるプロセスによって引き起こされ、PC ゲームで深刻な問題となっています。
シェーダーとは何ですか?
シェーダは、レンダリングされたグラフィックスのさまざまな側面を決定するのに役立つコンピュータ プログラムです。たとえば、ピクセル シェーダーはピクセルの属性を計算します。これには、そのピクセルの色、明るさ、反射率、または透明度が含まれます。ゲーム内の何かを濡れたように見せたい場合は、手作業で苦労して行うのではなく、特別なシェーダを使用してその外観を実現します。
シェーダは、最新の GPU を非常に柔軟にするものです。これらの GPU は 、シェーダ プログラミング言語 で表現できるあらゆるものを実行するように設計されているからです。これらは、GPU が実行できるグラフィック演算の種類がシリコンに組み込まれていた古い「固定関数パイプライン」GPU テクノロジに代わるものです。
シェーダーコンパイルとは何ですか?
「 コンパイル 」とは、人間のプログラマーが書いたコードを取得し、問題のソフトウェアを実行する特定のプロセッサが理解できるマシンコードに変換することを指すコンピューター用語です。したがって、たとえば、Intel CPU または Apple Silicon 上で実行されるようにコードをコンパイルすることができます。
GPU にも同じことが必要です。シェーダー コードは、問題の特定の GPU ブランドおよびモデルで実行できるようにコンパイルする必要があります。 GPU を変更したり、ドライバーを更新したり、ゲームが更新を受け取った場合は、シェーダーを再度コンパイルする必要があります。
一部の PC ゲームでシェーダー コンパイルが途切れるのはなぜですか?
一部のゲームでは、バックグラウンドでシェーダーをコンパイルするとゲーム自体に干渉し、 目に見える途切れが発生します 。コンピューターは、ゲームをスムーズに実行するためにシェーダーのコンパイルに懸命に取り組んでいます。一部の開発者は、ゲームのパフォーマンスにほとんどまたはまったく影響を与えないようにコンパイルを最適化することに努めていますが、他の開発者は、問題が短期間で済むことを期待して、シェーダー コンパイルをゲーム全体に分散させています。その場合、途切れが発生するのは、新しいレベルの開始時、またはその時点まで必要のなかったシェーダーを使用する新しい環境に入ったときだけです。
コンパイルの途切れは、広く普及している人気のゲーム エンジンである Unreal Engine 4 ゲームで特にひどいものでした。特に、これらの途切れは、 DirectX 12 でゲームを実行するときに問題になります。これは、DirectX 12 によってシェーダーのコンパイルの動作が変更され、開発者がより多くの制御を行えるようになったことも理由の 1 つです。ただし、これは、開発者が DirectX の最新かつ最高のバージョンを使用して確立されたシェーダー コンパイルを最適化する最適な方法を持っていない可能性があることも意味します。
コンソールにはシェーダーコンパイルのスタッターがないのはなぜですか?
シェーダー コンパイルの途切れは 、PS5 や Xbox Series X|S などのコンソールにはまったく存在しない問題です。これは単純に、開発者が各コンソール内にどのようなハードウェアが入っているかを正確に把握しているため、すべてのシェーダをプリコンパイルできるからです。ターゲットとする GPU がすでにわかっているため、ローカル システム上でコンパイルする必要はありません。
PC でもこれを行うことは可能ですが、GPU とシステム構成が非常に多いため、現実的ではありません。ただし、 Valve Steam Deck の場合、当然ながらすべての Steam Deck が同じ GPU を備えているため、Valve には一部のゲームにコンパイル済みのシェーダー キャッシュが含まれています。
コンパイルの途切れについて何ができるでしょうか?
残念ながら、ほとんどの場合、開発者はシェーダーのコンパイルの問題を修正する必要があります。良いニュースは、彼らが最終的にはプロセスを把握できるようになるということです。 Unreal Engine 5.1 には、パフォーマンスに大きな影響を与えることなく、開発者がキャッシュできる 自動化機能 が含まれる可能性があります。
吃音を軽減するためにできることのリストはそれほど長くありませんが、次のオプションのいくつかが役立つかもしれません。
- ゲームでシェーダーをプリコンパイルできる場合は、そのままにしておきます。これには少し時間がかかるかもしれませんが、ゲーム体験が途切れることがなくなります。
- ゲームのアップデートにシェーダーの途切れ修正が含まれていない限り、プレイが終了するまで待ってください。そうしないと、シェーダーが再度コンパイルされる可能性があります。
- 再びコンパイルがトリガーされる場合に備えて、現在のゲームが終了するまで GPU ドライバーの更新を控えてください。
- ゲームでコンパイルの途切れが始まったら、一時停止ボタンを押し、終了するまで待ってからさらにプレイしてください。
- ゲームの DirectX 12 バージョンの代わりに DirectX 11 を使用します。多くの場合、シェーダーのスタッターは軽減されるか、なくなりますが、お買い得品として DX12 機能を放棄することになります。
- 代わりにコンソールでゲームをプレイしてください。
時間が経つにつれて、この問題は解消されるか、それほど煩わしさがなくなる可能性があります。たとえば、開発者はシェーダーのコンパイルをゲームに必要のない CPU コアにオフロードする場合がありますが、これは多くのコアを備えた最新の PC では一般的な状況です。それまでは、 #stutterstruggle は PC ゲーム界における悩ましい問題であり続けるでしょう。





