ドライバ起因によるメモリリークについて

お世話になっております。

下記投稿にあります。

特定のGPUとDx12を組み合わせると発生するメモリリークに関しまして、

こちら類似するようなメモリリークが発生し、rhi.UseSubmissionThread=0にすることでメモリリークによるクラッシュが無くなったような症状が確認できております。

こちらはエディタ問わず、Shippingでも発生するという認識でよろしいでしょうか。

もしShippingでも発生する可能性があるのであれば、何らか回避方法を検討できればと考えています。

<br/>

ご提示のある

rhi.UseSubmissionThread=0に変更すると、RHIの処理が1ms以上処理負荷が上昇し、

またDx11版を用意することも避けたいと考えています。

<br/>

他に回避する方法はないでしょうか。

以上となります。よろしくお願いします。

<br/>

UE5.2.1/UE5.3.0にてメモリリークの発生

[Content removed]

<br/>

ゲーム起動中FMallocUnusedが増え続ける

[Content removed]

<br/>

お世話になっております。

リンクして頂いたスレッドの内容はエディタで再現されたもので、弊社内で確認された事象もエディタ動作において確認されたものでした。そのためこの事象がShippingパッケージで発生するものかどうかまでは弊社内では確認できておりません。また、この問題自体が古いGPUで発生することや利用可能な回避策がある、それ以降のバージョンで発生しなかったことから、これ以上の調査および回避策の検証はありませんでした。

挙げて頂いた問題と同じかどうかはわかりませんが、UE5.4でRHIがリークする問題について以下のスレッドで回避策の提案がありますので、もしメモリリークの問題があるようでしたらこちらもご留意頂ければと思います。

[Content removed]

弊社で使用しているUEのバージョンがUE5.2.1ですが、RHIのリークに関して発生する可能性がありますでしょうか。

LLMを用いてリーク状況を記録していたところ、Graphicsという項目が増え続けておりました。他の項目は一定ラインをキープしながら推移していました。

UDNで該当の投稿を見かけ、古いGPUであるGTX1000番シリーズで再現していたという事で、rhi.UseSubmissionThread=0 を試したところ長時間動作可能でした。

ただこの回避方法だとRHIスレッドが1msほど負荷が増えてしまっていたため、他に修正方法がないか問い合わせさせて頂きました。

何かご提示させて頂いたスレッド以外で、Graphicsに関するリークで心当たりなどございますでしょうか。

お世話になっております。

UE-247691 についてはUE5.2.1でテストされていないため発生する確実ではないですが、もし問題がまだ残っている場合は適用してみる価値はあるかと思います。ただし現在発生している問題と根本的に同じかどうかは不明なので、根本問題が解決するかどうかまでは定かではありません。

Memory InsightsかMemproを利用することができるようであればそれらを利用してアロケートされたメモリをトラッキングしてみることをおすすめします。GraphicsとLLMのカテゴリだけでは、カテゴリは分かっても実際に確保されるメモリまではわからないため、確実なこととしてはどこでリークが発生しているかを絞り込むことです。根本的には古いGPUにおけるドライバのバグなのでドライバのアップデートで修正する、もしくはrhi.UseSubmissionThread=0とすることで回避することは判明していますが、

FD3D12CommandContext::WriteGPUEventStackToBreadCrumbData()の実装をコメントアウトすることでもリークが防止されるという情報もあります。それ以外でRHIに関する修正済みもしくは既知の不具合は今のところ見つかっておりませんでした。

UE-247691はまだ修正が入っていないように見えるため修正が入り次第適応してみます。

またMemproを利用するなどして特定を試みてみます。