Summary
In 5.8, ULandscapeEditLayerPersistent::GetRenderItems() (LandscapeEditLayers.cpp) widens each Edit Layers render item’s input area to include the left/top/top-left neighbor components (fixing edge-blend non-determinism). This widened footprint unconditionally leaks into ComponentToTargetLayerBitIndices, which is then persisted as each component’s WeightmapLayerAllocations. Components inherit weightmap layers from neighbors they never painted themselves, inflating the number of layers the landscape material must sample and pushing components over the D3D12 bindful 64-SRV limit (“Shader is using too many SRVs”), causing them to silently fall back to the Default Material.
What Type of Bug are you experiencing?
Editor
Steps to Reproduce
Summary
In 5.8, ULandscapeEditLayerPersistent::GetRenderItems() (LandscapeEditLayers.cpp) widens each Edit Layers render item’s input area to include the left/top/top-left neighbor components (fixing edge-blend non-determinism). This widened footprint unconditionally leaks into ComponentToTargetLayerBitIndices, which is then persisted as each component’s WeightmapLayerAllocations. Components inherit weightmap layers from neighbors they never painted themselves, inflating the number of layers the landscape material must sample and pushing components over the D3D12 bindful 64-SRV limit (“Shader is using too many SRVs”), causing them to silently fall back to the Default Material.
What Type of Bug are you experiencing?
World Creation Tools (Landscape / Edit Layers)
Steps to Reproduce
- Create a large World Partition landscape using Edit Layers, with a landscape material that samples enough textures per weight-blended layer that a component using ~10+ simultaneous layers approaches the platform’s SRV budget (e.g. a material using Virtual Texture streaming per layer).
- Paint so that layer usage varies a lot between adjacent components (a layer-diverse transition area) — no single component individually over budget, but its left/top/top-left neighbor(s) collectively add several layers it doesn’t have.
- In 5.7.x, the landscape material compiles and renders correctly everywhere.
- Upgrade the same project to 5.8.x with no content changes. Open the map, or enter Landscape Mode (which calls
RequestLayersContentUpdateForceAll()and forces a full recompute). - Components near layer-diverse boundaries now fail to compile their landscape material with “too many SRVs” and fall back to the Default Material, without anything having been repainted.
Expected Result
A component’s persisted weightmap layer allocation should reflect only the layers it actually outputs itself, matching 5.7 behavior.
Observed Result
강제 편집 레이어 재계산 후, 영향을 받는 컴포넌트의 영구 할당이 인접성(자체 페인트 데이터가 아님)에 의해 상속된 여러 레이어만큼 증가합니다. 이 상태로 랜드스케이프가 저장되면 이 문제는 영구적으로 지속됩니다.
Affects Versions
5.8
Platform(s)
Windows