Description

When a "Water Body River" is added to a Scene with a Landscape, eleven Render Targets are allocated for the water rendering. These Render Targets are sized according to the resolution of the Landscape. When determining this size the Render Targets are approximated to the nearest binary power of two. This results in an over correction for Landscape resolutions that are nearer the lower power of two ( e.g. a Landscape resolution of 5121 results in eleven textures at 8192 ) and consumes unnecessary memory as a result.

The licensee believes that change list 36523201 has potentially introduced this regression.

The licensee has noted that adding "render" as a dependency and inserting the following code snippet before the return statement of the AWaterBrushManager::RenderLayer_Native function in WaterBrushManager.cpp can mitigate the issue.

FTextureRenderTargetResource* RenderTargetResource = ReturnRT->GameThread_GetRenderTargetResource();
ENQUEUE_RENDER_COMMAND(ResetSceneTextureExtentHistory)(
[RenderTargetResource](FRHICommandListImmediate& RHICmdList)

{ RenderTargetResource->ResetSceneTextureExtentsHistory(); }

);

Steps to Reproduce

1. Create a landscape with the following settings
a. Section size 255 x 255 quads
b. Sections per component 2 x 2
c. Number of Components 10 x 10
2. Enable the Water System Plugin
3. Add a "Water Body River" to the scene
4. select the "Landscape_WaterBrushManager" in the scene Outliner
5. Observe the "Landscape RT Res" value of 8192
6. Observe a spike in RAM and VRAM usage

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Graphics Tools - Terrain
Affects Versions5.5
Target Fix5.6
Fix Commit41105785
CreatedMar 17, 2025
ResolvedMar 27, 2025
UpdatedMar 27, 2025
View Jira Issue