Summary
Editor crashes with an RDG validation assert when you select an actor whose Camera
Component has a post process material with Blendable Location “Replacing the Tonemapper”.
Regression: works in 5.6.
What Type of Bug are you experiencing?
Editor
Steps to Reproduce
- Create a Material. Set Material Domain = Post Process and Blendable Location = Replacing the Tonemapper. Connect anything to Emissive Color. Save.
- Drag a Camera Actor into the level. On its Camera Component, add the material under Post Process > Rendering Features > Post Process Materials.
- With a viewport opened, click empty space to deselect, then click the Camera Actor in the viewport or the World Outliner.
(If it doesn’t crash in the step 3, try to close the editor & re-open it, then do the step 3 again).
Expected Result
The camera picture-in-picture preview appears in the viewport.
Observed Result
Editor crashes:
Assertion failed: Texture->Desc.NumMips == 1
[File:D:\build++UE5\Sync\Engine\Source\Runtime\RenderCore\Private\RenderGraphValidation.cpp]
[Line: 840]
Affects Versions
5.8
Platform(s)
Windows
For crash reports, include your callstack
Fatal error: [File:D:\build++UE5\Sync\Engine\Source\Runtime\RenderCore\Private\RenderingThread.cpp] [Line: 822]
Rendering thread exception:
Assertion failed: Texture->Desc.NumMips == 1 [File:D:\build++UE5\Sync\Engine\Source\Runtime\RenderCore\Private\RenderGraphValidation.cpp] [Line: 840]
0x00007ffee401bec8 UnrealEditor-Core.dll!UnknownFunction
0x00007ffee7c0ebf4 UnrealEditor-RenderCore.dll!UnknownFunction
0x00007ffee7b9e4d2 UnrealEditor-RenderCore.dll!UnknownFunction
0x00007ffe2c123011 UnrealEditor-Renderer.dll!UnknownFunction
0x00007ffe2c1728c5 UnrealEditor-Renderer.dll!UnknownFunction
0x00007ffe2c0cb4ef UnrealEditor-Renderer.dll!UnknownFunction
0x00007ffe2b48ef80 UnrealEditor-Renderer.dll!UnknownFunction
0x00007ffe2c51926a UnrealEditor-Renderer.dll!UnknownFunction
0x00007ffe2c4d8e40 UnrealEditor-Renderer.dll!UnknownFunction
0x00007ffe2c4f5147 UnrealEditor-Renderer.dll!UnknownFunction
0x00007ffee7bd9758 UnrealEditor-RenderCore.dll!UnknownFunction
0x00007ffee7bac3fc UnrealEditor-RenderCore.dll!UnknownFunction
0x00007ffee7bc99e1 UnrealEditor-RenderCore.dll!UnknownFunction
0x00007ffee7bda003 UnrealEditor-RenderCore.dll!UnknownFunction
0x00007ffee3c95e1e UnrealEditor-Core.dll!UnknownFunction
0x00007ffee3c88bfe UnrealEditor-Core.dll!UnknownFunction
0x00007ffee3c88efe UnrealEditor-Core.dll!UnknownFunction
0x00007ffee7bf9ff9 UnrealEditor-RenderCore.dll!UnknownFunction
0x00007ffee7bfa734 UnrealEditor-RenderCore.dll!UnknownFunction
0x00007ffee43c05b8 UnrealEditor-Core.dll!UnknownFunction
0x00007ffee43b9ee5 UnrealEditor-Core.dll!UnknownFunction
0x00007fffaeca7374 KERNEL32.DLL!UnknownFunction
Additional Notes
AddSelectionOutlinePass builds the “Editor.SelectionOutline” depth-stencil desc by copying Inputs.SceneColor.Texture->Desc, and FRHITextureDesc::Reset() does not reset NumMips.
On the first frame of the camera preview bMotionBlurValid is false so the motion blur pass is skipped, but TSR still allocates TSR.Output with 2 mips, because in 5.8 bMotionBlurNeedsHalfResInput only tests IsMotionBlurEnabled(View) (PostProcessing.cpp),
while in 5.6 the same line tested PassSequence.IsEnabled(EPass::MotionBlur).
Normally AddTonemapPass would allocate a fresh 1-mip texture and hide this,
but with a Replacing the Tonemapper material AddPostProcessMaterialPass copies the input desc instead, so the extra mip survives into the selection outline pass.
Workaround: r.MotionBlur.HalfResInput 0