Description

This crash occurs in 4.19 and 4.20 but not 4.18. Repro'd in 4.19.0-3944462 and 4.20.0-3955769 and 3964322. This is a regression.

 

Per UDN licensee:

When I'm showing/hiding levels in editor (in levels tab) that contain PlanarReflectionCaputres, egine somethimes crashes with access violation in FPlanarReflectionParameters::SetParameters ReflectionSceneProxy is pointing to garbage and thus ReflectionSceneProxy->RenderTarget->GetSizeXY() will crash. UPlanarReflectionComponent::DestroyRenderState_Concurrent() deletes SceneProxy, but pointer to exacly that same address is still cached in mesh while FPlanarReflectionParameters::SetParameters is called. The mesh in question is ALWAYS FLandscapeComponentSceneProxy.

 

Steps to Reproduce

(Sample Project attached. Skip to step #3 if using sample project)

  1. In new empty project, add a landscape to Persistent level and add a sub-level that also has a landscape.
  2. On sub-level, also add a Planar Reflection that affects both landscapes.
  3. Make Persistent Level the current level, go to Landscape Mode>Manage, choose Selection Tool
  4. In Levels tab, toggle the visibility of the Sublevel

Result: Crash

Callstack

LoginId:77ac66cf4b506a51a458c382c4ec63c2
EpicAccountId:5caf2c99925243e8b9b1bdcc9cd0e6cf

Access violation - code c0000005 (first/second chance not available)

UE4Editor_Renderer!FPlanarReflectionParameters::SetParameters() [d:\jon.bland_main\engine\source\runtime\renderer\private\planarreflectionrendering.cpp:709]
UE4Editor_Renderer!FBasePassReflectionParameters::SetMesh() [d:\jon.bland_main\engine\source\runtime\renderer\private\basepassrendering.cpp:216]
UE4Editor_Renderer!TBasePassPixelShaderPolicyParamType<FUniformLightMapPolicyShaderParametersType>::SetMesh() [d:\jon.bland_main\engine\source\runtime\renderer\private\basepassrendering.inl:84]
UE4Editor_Renderer!TBasePassDrawingPolicy<FUniformLightMapPolicy>::SetMeshRenderState() [d:\jon.bland_main\engine\source\runtime\renderer\private\basepassrendering.h:1236]
UE4Editor_Renderer!TStaticMeshDrawList<TBasePassDrawingPolicy<FUniformLightMapPolicy> >::DrawElement<2>() [d:\jon.bland_main\engine\source\runtime\renderer\private\staticmeshdrawlist.inl:248]
UE4Editor_Renderer!TStaticMeshDrawList<TBasePassDrawingPolicy<FUniformLightMapPolicy> >::DrawVisibleInner<2>() [d:\jon.bland_main\engine\source\runtime\renderer\private\staticmeshdrawlist.inl:399]
UE4Editor_Renderer!TStaticMeshDrawList<TBasePassDrawingPolicy<FUniformLightMapPolicy> >::DrawVisible() [d:\jon.bland_main\engine\source\runtime\renderer\private\staticmeshdrawlist.inl:451]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::RenderBasePassStaticDataType() [d:\jon.bland_main\engine\source\runtime\renderer\private\basepassrendering.cpp:1005]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::RenderBasePassStaticData() [d:\jon.bland_main\engine\source\runtime\renderer\private\basepassrendering.cpp:1119]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::RenderBasePassView() [d:\jon.bland_main\engine\source\runtime\renderer\private\basepassrendering.cpp:1368]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::RenderBasePass() [d:\jon.bland_main\engine\source\runtime\renderer\private\basepassrendering.cpp:984]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::Render() [d:\jon.bland_main\engine\source\runtime\renderer\private\deferredshadingrenderer.cpp:970]
UE4Editor_Renderer!RenderViewFamily_RenderThread() [d:\jon.bland_main\engine\source\runtime\renderer\private\scenerendering.cpp:2774]
UE4Editor_Renderer!TGraphTask<`FRendererModule::BeginRenderingViewFamily'::`33'::EURCMacro_FDrawSceneCommand>::ExecuteTask() [d:\jon.bland_main\engine\source\runtime\core\public\async\taskgraphinterfaces.h:829]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\jon.bland_main\engine\source\runtime\core\private\async\taskgraph.cpp:665]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\jon.bland_main\engine\source\runtime\core\private\async\taskgraph.cpp:574]
UE4Editor_RenderCore!RenderingThreadMain() [d:\jon.bland_main\engine\source\runtime\rendercore\private\renderingthread.cpp:331]
UE4Editor_RenderCore!FRenderingThread::Run() [d:\jon.bland_main\engine\source\runtime\rendercore\private\renderingthread.cpp:465]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\jon.bland_main\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:76]

Have Comments or More Details?

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

6
Login to Vote

Fixed
ComponentUE - LD & Modeling - Terrain - Landscape
Affects Versions4.194.20
Target Fix4.20
Fix Commit4154540
CreatedMar 26, 2018
ResolvedJun 22, 2018
UpdatedJun 22, 2018