Detroit: Become HumanのPC版Vulkan移植の記事

AMDのGPUOpenでDetroit: Become HumanのPC版移植の話の記事が公開されています.

Porting Detroit: Become Human from PlayStation® 4 to PC – Part 1
https://gpuopen.com/learn/porting-detroit-1/

Porting Detroit: Become Human from PlayStation® 4 to PC – Part 2
https://gpuopen.com/learn/porting-detroit-2/

Porting Detroit: Become Human from PlayStation® 4 to PC – Part 3
https://gpuopen.com/learn/porting-detroit-3/

Detroit: Become HumanのPC版はVulkanベースでの移植になっているようです.チームではもともとOpenGLで実装したPCで動くものがあったようですが,特定のGPUベンダーの拡張に依存した実装であったり,シェーダのオフラインコンパイル回りの問題などからVulkanとDirect3D12が検討されたそうですが,Windows 7, 8, LinuxやAndoridと対応が広いことでVulkanが選択されたようです.なお,Direct3D11はもともとOpenGLでBindlessを多く使用していたため移植候補としては十分ではなかったようですね.

Part 1は移植の背景とVulkanを選択した理由,シェーダやVkPipelineのオフライン構築などの話が扱われています.

Part 2ではVulkan 1.2のVK_EXT_descriptor_indexingをnon-uniform resource indexingの説明ですね.

Part 3はシェーダのスカラー化と描画処理のマルチスレッド対応ですね.

フォワードレンダリングベースでシェーダのバリエーションが多いタイトルで,コンソール(PlayStation 4)でもともとパフォーマンスを追い込んでるようなタイトルが,Vulkanに移植する際の苦労みたいなものがよくわかる記事でした.Vulka特有の機能はかなり活用しているので,Direct3D11時代のPCゲームの描画処理の構築と違ってる部分がわかる事例といえると思います.

とはいえ,はじめからマルチプラットフォームで考えられていればここまでは苦労しないのかなとは思います.