We’ve identified the issue, and have a fix. There are two parts to the fix, if you want to build the engine locally to apply it. The first is to FSceneRenderer::FSceneRenderer in Engine/Source/Runtime/Renderer/Private/SceneRendering.cpp, where the following frame values need to be initialized, on the line after CustomRenderPassInfo->ViewFamily.Time is initialized:
CustomRenderPassInfo->ViewFamily.FrameNumber = ViewFamily.FrameNumber;
CustomRenderPassInfo->ViewFamily.FrameCounter = ViewFamily.FrameCounter;
The second is to change this line in Engine/Source/Runtime/Engine/Private/SkeletalRender.cpp:
// When rendering multiple views we need to guard the assignment with a mutex since relevance can occur in parallel.
const bool bMultiView = View->Family->Views.Num() > 1;
To this, so it includes the Custom Render Pass views when deciding whether multi-view thread safety logic needs to run:
const bool bMultiView = View->Family->AllViews.Num() > 1;This code fix will be in 5.8, but the relevant code is the same in any older version of the engine which includes the “Render In Main Renderer” flag, so you should be able to apply the fix to any version.
Sorry for the inconvenience!
--Jason Hoerner