We are seeing a crash from the check in FRayTracingSBTAllocation::GetRecordIndex, RayTracingShaderBindingTable.cpp, ln 87.
The 5.6.1 hotfix mentions fixing a crash from that same check.
I would like to know more about UE-295231 and what that fix was, to help us figure out the issue. Can I get access to the ticket, it does not seem to be public?
uint32 FRayTracingSBTAllocation::GetRecordIndex(ERayTracingShaderBindingLayer Layer, uint32 SegmentIndex) const
{
check(HasLayer(Layer));
// Find out all the bits set below the given layer
// and count the set bits to know the offset
uint32 LayerMask = (1 << (uint32)Layer) - 1;
LayerMask = (uint32)AllocatedLayers & LayerMask;
uint32 RecordTypeBaseOffset = FMath::CountBits(LayerMask) * RecordsPerLayer;
check(RecordTypeBaseOffset + SegmentIndex * RAY_TRACING_NUM_SHADER_SLOTS + RAY_TRACING_NUM_SHADER_SLOTS <= NumRecords);
return BaseRecordIndex + RecordTypeBaseOffset + SegmentIndex * RAY_TRACING_NUM_SHADER_SLOTS;
}
Steps to Reproduce
We are on 5.6.1 and the crash happens in a very specific area in the game, we are trying to track down if it’s from a specific mesh or light.
My apologies, but it looks like our release notes are not correct in this case and the issue wasn’t fixed in 5.6.1. UE-295231 was fixed in UE 5.7 because this code was refactored. There is a linked CL which is
CL#43499295 [HWRT] Call RemoveCachedRayTracingPrimitives() in UpdateCachedRayTracingState(…) instead of doing it lazily.
However, this changelist was included in UE 5.6.1 and we were still getting crash reports for this issue. We stopped getting crash reports for this issue in UE 5.7, but haven’t identified what part of the refactor fixed the underlying issue.
There is no planned hotfix patch for 5.6. Have you tested to see if the crash occurs with r.RayTracing.PersistentSBT=0? If you have a fairly consistent repro you can also try turning off various raytracing geometry with r.RayTracing.Geometry.* CVars till you isolate the geometry type causing the issue and see if there is a change you can make to the content in that area to avoid the crash.
Also, Epic will be on holiday break starting next week (Dec 22, 2025) and ending Jan 5, 2026 and there will be no responses from Epic on public or private tickets, though you may receive replies from the community on public tickets.
Does this mean that 5.6.1 is unstable? We planned to version lock on 5.6, but if there’s no hotfix for this we might need to upgrade again to 5.7, or is there another hotfix patch for 5.6 incoming?