Description

The function "FStaticMeshLODResources::GetResourceSizeEx(...)" does not take into account that the buffers might be emptied, due to Mesh Streaming. This causes "obj list" to report sizes larger than the actual resident memory, which will affect "memreport".

Steps to Reproduce

1. Download the attached test project, and make a packaged build from it.
2. Run the packaged build with the -log command-line argument
3. Move backwards slightly so you can see the shiny rock "SM_Rock".
4. Run the console command "Stat StreamingOverview"
5. Observe that the "Mesh LOD Bytes Resident" is 31 MB
6. Run the console command "obj list class=StaticMesh"
7. Observe that the mesh /Game/SM_Rock.SM_Rock" has a ResExcKB of 31 MB, roughly matching the "Mesh LOD Bytes Resident" stat.
8. Run the console command "r.Streaming.PoolSizeForMeshes 10"
9. Repeat steps 5 to 7. This time, the "Mesh LOD Bytes Resident" stat is 4 MB, with 27 MB being evicted from memory, but teh ResExcKB size of the object is unchanged. (BUG)

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-221113 in the post.

0
Login to Vote

Backlogged
ComponentUE - Rendering Architecture
Affects Versions5.45.4.3
Target Fix5.6
CreatedAug 6, 2024
UpdatedAug 21, 2024
View Jira Issue