HWRT Persistent SBT: PageFault after Residency fix (cont.)

This is a follow-up to [Content removed]

Even after fixing the Residency issue, we’re still running into what appears to be a stale Upload Buffer problem — likely a leftover/stale record in the Persistent SBT. Aftermath reports the resource as FullyResident, so it looks like the VA itself had gone stale.

Attached are the gpudmp, nvdbg, and dxil. (We weren’t able to obtain the matching PDB, but from the DXIL it looks like the shader is fetching data from a constant buffer.)

Any hint would be nice.

[Attachment Removed]

Thanks for uploading the dump and the extra DXIL. This does look like there is a problem with the SBT records, specifically the LocalVF.VertexFetch_PreSkinPositionBuffer (see LocalVertexFactory.ush around line 1042), but I am not yet sure whether this is a lifetime issue with the records or whether the UB data is corrupted. Can you turn on SBT binding validation (.RayTracing.PersistentSBT.ValidateBindings=1) for your project, and please try the following and tell me if you run into the same crash:

  1. Forcing the SBT records to be marked dirty every frame (r.RayTracing.PersistentSBT.ForceAlwaysDirty=1)
  2. Run with r.RayTracing.PersistentSBT.ForceAlwaysDirty=1 and also turn off persistent SBTs (r.RayTracing.PersistentSBT=0)
    [Attachment Removed]

Hi,

Thanks for the analysis.

We’ll enable SBT binding validation and test both configs.

Keep in touch, thanks!

[Attachment Removed]