I was unable to find a similar fix for 5.6.1 but the code mentioned above which includes FinishGatherVisibleShaderBindings was added in CL#45039770 and the method used to discover the crash was by bisecting the changes because the issue occurred fairly quickly after the breaking change was made. I’ve reached out to the team for further suggestions.
* Remove call to FlushAllocationsToClear on SBT before setting the current bindings on the SBT because the clear call could flush pending clear ops which are still used this frame. Only flush clear after add & remove of primitive scene infos on RT timeline. Pending clears can be added by async stream in requests in between the building of the dirty bindings and the flush to RHI from RDG passes causing cleared data in the SBT and triggering validation errors and potentially missing entries in the SBT.
* Also keep track of dirty records and clear dirty record when reallocated again before the clear was flushed (otherwise valid entries can be cleared)
However, backporting this changelist may be difficult because of the numerous changes to the system between 5.6 and 5.7.