From c59f46e8dcf6c91a03e5c34d7bbf2e788e63fdff Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 22 May 2024 16:01:45 +0100 Subject: [PATCH] Don't treat missing BLASs as fatal * It's possible to create a TLAS referencing a BLAS, destroy the buffer backing the BLAS, and we won't know the TLAS is invalid and will try to serialise it. --- renderdoc/driver/d3d12/d3d12_initstate.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_initstate.cpp b/renderdoc/driver/d3d12/d3d12_initstate.cpp index 622d05eea..e9ecd15ec 100644 --- a/renderdoc/driver/d3d12/d3d12_initstate.cpp +++ b/renderdoc/driver/d3d12/d3d12_initstate.cpp @@ -1218,11 +1218,9 @@ bool D3D12ResourceManager::Serialise_InitialState(SerialiserType &ser, ResourceI if(blasId == ResourceId() || blas == NULL) { - RDResult err; - SET_ERROR_RESULT(err, ResultCode::APIDataCorrupted, - "BLAS referenced by TLAS is not available on replay"); - m_Device->ReportFatalError(err); - return false; + RDCWARN("BLAS referenced by TLAS is not available on replay - possibly stale TLAS"); + blasAddrs[i] = 0; + continue; } blasAddrs[i] = blas->GetGPUVirtualAddress() + blasOffs;