検索
コラム

PCゲームの「起動に時間がかかりすぎる問題」と「プチフリーズ」はなぜ起こる? その原因を乗り越える取り組みも(3/3 ページ)

PCゲーム、とりわけWindows向けのものは、初回やグラフィックスドライバの更新後の起動に時間がかかったり、ゲーム中に動作が一瞬止まったりすることがある。その理由と、この現象を解消するための取り組みについて解説する。

Share
Tweet
LINE
Hatena
前のページへ |       

GPUへの「個別最適化」をMicrosoftが支援する

 先日のストレージの話と、今回のシェーダーコンパイルに関する話とは別に、PCゲーミングファンが気にしておくべき話題があるので、触れておきたい。ゲームタイトルの「GPUへの最適化」だ。

 プロセッサとしてのGPUは、複雑性がもはや人知を超え始めている。ハイエンド級GPUだと、シェーダーコア(シェーダーを稼働するコア)は2万基を超えてしまっている。この多くなったシェーダーコアは、意外な問題を引き起こす。

 グラフィックスドライバにおいて、「よかれ」と思ってアップデート時に処理の最適化を行ったとする。すると、あるゲームタイトルで描画がおかしくなってしまう“バグ”が発生しうるのだ。ある意味で「あちらを立てれば、こちらが立たず」の状態である。

 特定のゲームタイトルで描画がおかしくなった原因をGPUメーカーのエンジニアが命令レベルから検証してみると、シェーダーが想定外の使われ方をしていることがある。その「想定外の使われ方」はゲームのプログラミング業界で広がっていることもあり、そうなるとGPUメーカー側ではどうにもならない。

 そこでGPUメーカーは、実行中のゲームの実行ファイル(EXEファイル)の名前などを手掛かりに、特定のゲームが起動した際にドライバの挙動を変更したり、専用プロファイルを適用したりといった“特殊な最適化”で対処することもある。しかし、このテクニックはユーザーが意図的にゲーム実行ファイルを変えてしまったら働かない。

 逆に、個人制作の自作ゲームが、特殊な最適化の対象ゲームと同じ実行ファイル名を使っている場合、意図せず特殊な最適化が行われ、そのゲームに良からぬ影響を与えうる。

 「ファイル名による挙動切り替え」は、素人目に見ても不確かなアプローチといえる。

ファイル名
ファイル名だけを見て挙動を変えるのは、筋のよいアプローチとはいえない

 そこでMicrosoftでは2026年2月、DirectX 12において一意的なIDでゲームプログラムを特定できる新機能「Explicit Application Identity(EAI)」を導入した。

 概要だけをまとめると、EAIは「128bitからなる一意的なID」を取得した上でアプリに実装すると、DirectXランタイムおよびグラフィックスドライバに対して標準化されたフォーマットでIDを申告できる仕様となっている。

 IDの生成自体には中央管理システムはなく、世界的に一意な「GUID(Globally Unique Identifier)」や「UUID(Universally Unique Identifier)」を生成する仕組みを採用するという。一般的に、このIDはゲーム開発の初期段階で確定させるもので、生成する場所は用いているゲーム開発環境によって「Visual Studio」だったり、各種ゲームエンジンだったり、といろいろだ。

EAI
Microsoftでは、ファイル名に頼らないゲーム特定方法として「EAI」を導入した

EAIの取得と利用方法

 EAIを内包したアプリ(ゲームタイトル)が、グラフィックスドライバに自身の存在を申告する手順は、以下のようになるという。

 まず、アプリは起動時に「Direct3D 12デバイス」が生成される前に、「SetApplicationIdentity」というAPIを用いて自身のIDや情報をDirectXランタイムに申告する。

 DirectXランタイムは一連の情報を受けとると、グラフィックスドライバも参照できる形式に変換する。グラフィックスドライバは参照した情報をもとにアプリを識別し、挙動の制御に使うプロファイルに当該アプリ(ID)が存在するか照合する。照合の結果、該当なしなら通常モードでの動作を継続し、該当するものがある場合は挙動を当該ゲーム向けに切り替える。

EAI
EAIの仕組みを図説したもの

 この仕組みの副次的なデメリットとして、特定のベンチマークアプリへの“個別対応”などがしやすくなるという点もある。要するに、GPUをベンチマークアプリに有利な挙動に切り替えやすくなるということだ。これはこれで、また別の議論が勃発するだろう。しかし「ゲームを遊ぶ」という観点において、EAIは動作の安定性を担保しやすくなるため、それほど悪いシステムではないと思う。

 先述の通り、API自体は既に利用可能で、先に紹介したASDでもEAIを付与したSODBを「XBOX Partner Center」へ提出するワークフローが整備されている。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る