The FWaterBodyInfoMeshSceneProxy constructor (WaterBodyInfoMeshComponent.cpp) calls UWaterBodyComponent::MarkOwningWaterZoneForRebuild(). The proxy is created from CreateRenderState_Concurrent / AddPrimitive, which can run in parallel with other components of the same actor and level. This happens through:
As a result:
The call was introduced with [Link Removed] (triggering a water info rebuild during scene proxy creation). It is still present in UE5 Main and UE6 Main.
Wrap the MarkOwningWaterZoneForRebuild call in ExecuteOnGameThread. This can add one frame of lag to the WaterInfo texture update.
A cleaner fix may be to queue the rebuild request in a thread-safe way, or to trigger it from a game-thread hook on the component.
Result: sporadically, the water info texture is not rebuilt for a zone and water disappears. Bounds on UWaterBodyComponent are read concurrently with UpdateBounds in MarkOwningWaterZoneForRebuild.
Expected: water info is rebuilt reliably; no concurrent access to water body bounds or water zone state from scene proxy creation.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-402765 in the post.
| 0 |
| Component | UE - Graphics Tools - Terrain - Water |
|---|---|
| Affects Versions | 5.7.4 |
| Target Fix | 5.8.5 |
| Created | Oct 14, 2026 |
|---|---|
| Updated | Oct 19, 2026 |