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.
Is there any update to this situation? We are also encountering this bug fairly frequently in one of our recent projects and porting the whole thing to 5.7 is not exactly a solution we are able to pursuit. Has anyone succesfully backported the fixes and do they actually fix this issue?