RHI Stats so high?

(5.4 & 5.5) I also found this unsolved post https://forums.unrealengine.com/t/why-texturememory-2d-is-so-hight/1178139

When showing RHI Stat the usage looks way too high. Thing is my Textures are mostly either 256/512/1024 and Materials are mostly no Texture but Solid Colors. I’m finding this very confusing.

I’ve noticed opening and closing open tabs has an impact so I guess the stats are not entirely the open Level/Viewport. Also, it does say “Reserved” mem buffer, does this mean available?

RHI is not just the textures. It’s the Render Command Interface. Overhead like building RHI command lists, binding shader parameters etc

The RDG documentation does a bit of a deep dive behind the stuff that can be going on in the background

You’d have to narrow down what is using render targets and what resolution they are at.

1 Like

Thanks but thet just confuses me. :frowning:

I tried “stat memory” which shows some interesting info …

and then “DumpTextureStreamingStats”


Texture Streaming Stats:
Total Pool Size (aka RenderAssetPool) = 1000.00 MB
Non-Streaming Mips = 354.41 MB
Remaining Streaming Pool Size = 993.86 MB
Streaming Assets, Current/Pool = 7.08 / 993.86 MB (1%)
Streaming Assets, Target/Pool = 7.08 / 993.86 MB (1%)

LogEOSSDK: LogEOS: Updating Product SDK Config, Time: 14917.468750
LogEOSSDK: LogEOS: SDK Config Product Update Request Completed - No Change
LogEOSSDK: LogEOS: ScheduleNextSDKConfigDataUpdate - Time: 14918.135742, Update Interval: 329.907532

which shows “Remaining Pool Size” 993.86? Also in the Tools menu “Audit/Statistics” Current Memory = 7,288 KB.

Check the reference viewer.

If you have a lot of hard references then try converting them to soft references and loading them when needed. It will reduce the memory footprint of assets loaded at the same time.

Hi, you could use the render resource viewer to get more information about what things use the vram (will show you the vram usage down to specific textures and meshes). Also keep in mind that if you have features like lumen and vsm enabled, those would also use up a lot of vram, so it’s not only the textures that are used in your own assets.

The render resource viewer shows all the usage of the editor though, so ideally you should restart the editor and directly load into the level you want to debug.

Using the Render Resource Viewer also shows a lot of Engine Content, but what it does show of my project is also not taking up much space.

Could you show a screenshot of the render resource viewer result? (of the top of it where those assets are that use up the most vram)

Not sure why you would want it but …

I did a little experiment with an Empty Level showing RHI stats and there is no change at all, so it’s not going to show specific level stats just overall engine use same as the Resource Viewer.

What I meant was something like this :), so sorted by size showing the largest items:

So for that level (its mostly empty) what uses up the most vram is nanite, virtual shadow maps, virtual textures (the landscape uses RuntimeVirtualTexture) and lumen. If I would need to reduce vram, that would mean to disable those features (e.g. disabling nanite should save those 576MB).

I’m not using Nanite or Virtual Textures but I am using Lumen.

Just found Nanite was ticked in the Project Settings and unticked it but now there is an error “Nanite is enabled but cannot render, because the project has Nanite disabled”. This error also shows in thumbnails for Materials.

Found this to be the most helpful https://www.reddit.com/r/UnrealEngine5/comments/123mq4t/nanite_is_enabled_but_cannot_render_error_after/?rdt=50996
DefaultEngine.ini “r.Nanite=0”

That has reduced it a LOT!

1 Like

If you don’t use nanite, then you could also check that the shadow map method is set to Shadow Maps (and not Virtual Shadow Maps). Not sure whether it automatically switches to Shadow Maps once nanite is disabled. That might also save some vram and improve performance. Its under Project Settings → Engine - Rendering → Shadows → Shadow Map Method.

Does Lumen not use VSM?