Microsoftは、PCゲームにおける苛立つ「シェーダーのコンパイル」待ち時間を排除するためのAdvanced Shader Deliveryを開発中だ。この技術は、さまざまなハードウェア構成向けにシェーダーを事前コンパイルし、コンソール並みのロード速度を目指す。今週のGame Developers Conferenceで更新情報が共有された。
PCゲーマーは、新しいタイトルを起動する際に遅延が発生することが多く、システムが特定のハードウェアとドライバ向けに3Dエフェクトを最適化するためシェーダーをコンパイルするためだ。Game Developers Conferenceで、MicrosoftはWindows向けAdvanced Shader Deliveryイニシアチブの進捗を詳述し、プリコンパイルシェーダーを事前にダウンロードすることでこの問題に対処する。コンソールゲームでは、開発者が固定ハードウェア環境向けにシェーダーを事前コンパイルする。しかしPCでは、多様な構成に合わせるため通常ランタイム時にコンパイルされる。Microsoftの解決策は、Direct3D APIを使用して幅広いドライバとGPUに対応したプリコンパイルを自動化する。開発者はゲーム内アセットを表すState Object Database(SODB)を作成し、これを各種ベンダーの複数ディスプレイアダプタと互換性のあるPrecompiled Shader Database(PSDB)に処理する。PSDBはゲームと一緒にダウンロードされ、Microsoftによると「ハードウェアエコシステム全体でコンソール並みのロード時間」を提供する。ドライバが変更された際はパッチで自動更新され、ローカル再コンパイルを回避する。この機能は昨年9月のMicrosoft SDKで初登場し、10月にはROG Xbox Allyでテストされ、Avowedなどのゲームで起動時間を最大85%短縮した——特にバッテリー制約のあるハンドヘルドデバイスで有効だ。採用はゆっくりと進んでいる。Nvidiaは「Microsoftと密接に協力」し、今年後半にGeForce RTXハードウェアでサポート予定。Intelは近日対応ドライバをリリース予定で、QualcommはAdreno X2 GPUでまもなく導入する。Epic GamesはSODBとPSDB生成で「初期テストと検討」を行い、詳細は後日発表。Microsoftは大規模ゲーム向けにPSDB作成とテストを容易にするためAPIを強化した。開発者に今からエンジンにSODB収集を統合するよう促し、5月からXbox Partner Center経由のアップロードに備える。最初はXboxアプリタイトル向けだが、同社は将来的に任意のストアフロントがPSDBをコンパイル・配布できる広範な利用を想定している。