Announcement

Collapse
No announcement yet.

r.RenderTargetPoolMin exceeded とは?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    r.RenderTargetPoolMin exceeded とは?

    ビルド中のアウトプットログに
    r.RenderTargetPoolMin exceeded ***/400 MB
    と表示された場合どうするべきでしょうか?
    コンソールコマンドに ”r.RenderTargetPoolMin ***より大きい数値”
    と打ち込むか、consolevariables.ini に書き込むかするようですが
    トラブルが起こって困ることにはなっていないのです。
    さて、どう理解すればよいでしょうか?

    ビデオメモリに関係するようですが、パッケージ後の動作させる端末で
    なにか不都合でも起こるのでしょうか?

    #2
    r.RenderTargetPoolMin はRenderTarget用に確保されるビデオメモリの容量が想定外に多くならないかを判断するための設定値です。この値を超えたからといってクラッシュしたりすることはありません。
    この値を超える量のレンダーターゲットを作成すると、UE4のレンダーモジュールが、使用してないと判断したレンダーターゲットを解放しようと試みます。

    r.RenderTargetPoolMin exceeded ***/400 MB
    は使用していないレンダーターゲットを解放しきっても、RenderTargetPoolMinの値を超えてしまったときに出る警告です。

    ”ビルド中のアウトプットログに。。”とのことなので、エディタ起動中にこのエラーが出ている場合はエディタによるメモリ確保の原因もあるため無視してかまわない場合が多いです。
    もしもアプリケーション単体でこの警告が出る場合、メモリ上問題がなかったとしても、UE4がエンジン内部でレンダーターゲットの容量を減らそうとレンダーターゲットのサイズをチェックする時間がかかり余分な負荷が発生します。
    ですので、上記エラーは出ないほうが良いです。

    その場合はconsolevariables.iniやScalabilityでr.RenderTargetPoolMinの値をあげとくのが良いと考えられます。
    ビデオメモリ容量がシビアな機器や環境を想定していて、指定のメモリ容量に抑えたい場合は、ShadowやBloomなど、レンダーターゲットを用いる機能を細かく調整して、r.RenderTargetPoolMinの範疇に収まるようにしてください。
    どのレンダーターゲットがどれくらいの容量を使用しているかは、VisRTコマンドで確認することができますので、参考になるかと思います。

    Comment


      #3
      詳しいご説明ありがとうございます。

      エンジンがビデオメモリのやりくりをしてるけど足らないから警告されてるわけですね。
      ”アプリケーション単体でこの警告”とはパッケージ後のアプリのことでしょうか?
      これは出ていないはずですので、とりあえずは無視しながら様子を見てみます。

      ビルド中以外にもエディタからのプレイでも頻繁に出ています。***は常に一定では有りませんので
      負荷状況が随時変化しているので、頻繁に出るのですね。そうするとライトのBloomあたりが原因でしょうか。
      Shadowはほとんど動的Shadowを利用していませんので、負荷になっているとは考えにくいです。
      ライトマップは肥大化してるかもしれません。
      VisRTコマンドを利用することを何度かフォーラムで見かけたのですが、今回初めて使ってみました。
      ”Content cannot be visualized on the GPU(TexCreate_CPUReadback)"と黄色のメッセージと黄色いプレーン。
      グラボのメモリ内で展開しきれずCPUが補ってる?少し調べてみます。

      Comment

      Working...
      X