Crash in cooked game after upgrading to 4.25.1 requires landscape to be deleted

I am encountering the issue as well, on landscape with PN_Triangles tessellation. The maps in question work find in a cooked build once and the, if I try to load them again, it asserts. Restarting the PC “fixes” it.

What seems to happen is that the landscape material is correctly loaded via the FLandscapeComponentSceneProxy constructor in LandscapeRender.cpp. In that constructor it verifies whether the quality level, hardware and material support tessellation and if so, which type. It does so, by passing the material as material interface to RequiresAdjacencyInformation() in TessellationRendering.cpp.

However, the second time around, the material in the interface is empty, verifying that the fallback WorldGridMaterial does not have tessellation and then the actual material wants to kick off tessellation in another part of the pipeline to run into missing adjecency information.

For the fun part: I temporarily worked around the issue by adding a bool param to the RequiresAdjacencyInformation to check if the call came from LandscapeRender and if so, only return if the hardware and quality level support tessellation. As replacement, the check if the material itself has tessellation is left to the LandscapeRender class itself. This may or may not be super thread safe, but for now it works.

Edit: Epic’s bug for this issue Unreal Engine Issues and Bug Tracker (UE-94535)