UE5.8にアップデート後、LandScapeを使用した大きめのマップを開き、
Selection ModeをLandscape Modeに切り替えるとOutOfVideoMemoryで100%クラッシュするようになりました。
UE5.7.4の状態に戻すと発生しないことを確認しました。
クラッシュ原因を調査してみたところ、実際のGPUメモリ不足ではなく、d3dx12residency.h内のAvailableCommandLists配列
(サイズMAX_NUM_CONCURRENT_CMD_LISTS = 1024)の空きスロットが0になることが原因のようでした。
現状、以下のConsoleVariablesでResidency Management自体を無効化し、問題を回避しています。
[ConsoleVariables]
D3D12.ResourcesStartResident = 1
D3D12.ResidencyManagement = 0
また、以下関連案件を確認したところ、MAX_NUM_CONCURRENT_CMD_LISTSのサイズを変更するワークアラウンドが記載されていることを確認しました。
- [Content removed]
- [Porting CL 34741966 to UE 5.4 to fix FD3D12ResourceBarrierBatcher::FlushIntoCommandList [Content removed]
こちらにつきましていくつか質問がございます。
・UE5.8でAvailableCommandListsが枯渇しやすくなるような更新が入りましたでしょうか?
・ワークアラウンドとして、D3D12.ResidencyManagement = 0の対応よりもMAX_NUM_CONCURRENT_CMD_LISTSのサイズを増やす対応の方が良いでしょうか?
・上記の場合、MAX_NUM_CONCURRENT_CMD_LISTSはいくつにするのが好ましいでしょうか?(2048くらいにしておくのがよいか?、16384などでも良いか?)
・ワークアラウンドはエディタ以外のROMなどでも有効にしておいて問題ないでしょうか?
・今後、エンジン側で根本的な対応を行う予定はありますか?
よろしくお願いいたします。
[Attachment Removed]
CL#51092079 の変更が影響を与えてる可能性が高いです。このCLで変更されている以下のCVarに対して変更前の値を適用することでクラッシュを回避できる可能性がございます。
r.GPUScene.UseReservedResources=false
r.GPUScene.InstanceDataTileSizeLog2=-1
こちらをお試しいただいて問題が改善されるかご確認いただけますでしょうか。
他のCVarで検討されているようにこれらのCVarをパッケージビルドでだけ元の値を適用させることも検討できます。
スロット数の拡張に関しては必要以上に多くても勿体ないのでクラッシュを回避できるだけの値に押しとどめておく方がベターだと思います。
ReservedResourceの扱いについては、CL#54838605やCL#54969077などの変更が検討されており調整が続けられています。
今後の対応ですが限界までLandscapeを大きくしてもクラッシュが再現しないことからコンテンツ密度に影響を受けていると思われ、
バグとしてどう登録するべきか決めかねております。確実にクラッシュする再現手順などがあればより具体的な検討が可能になります。
再現に関してお気づきの点がございましたらご共有いただけますと幸いです。
[Attachment Removed]
ご回答ありがとうございます。
ご提示いただいた以下のCVarsを適用したところ、Landscape Modeへの切り替え時のクラッシュを回避できることを確認いたしました。
r.GPUScene.UseReservedResources=false
r.GPUScene.InstanceDataTileSizeLog2=-1
上記対応のCLとスロット数についても情報共有いただきありがとうございます。
クラッシュの再現についてですが、こちらのマップでいくつか試してみたところ、「PatchおよびSplineのレイヤー削除」では効果がなく、「ペイントレイヤーの削除」を行ったところクラッシュが発生しなくなりました。
よろしくお願いいたします。
[Attachment Removed]
再現を試みていますが、なかなか再現せず困っています。
恐らくコンポーネント数やペイントレイヤーの数に影響を受けるのだと思いますが、どの程度の規模のランドスケープをお使いか情報を頂戴してもよいでしょうか。
コンポーネントカウント1156ペイントレイヤー12で確認しました。
[Image Removed]
[Attachment Removed]