From 83cee7b35d0da8b4180f8bc8f42a86415e2e6437 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 5 Jul 2021 12:24:58 +0100 Subject: [PATCH] Add protection against unknown resources when capturing * This can happen because the addresses map is shared among all devices so some other devices might have added resources which we don't recognise the IDs for - though this could break in other ways (same address range for different resources on different devices) so it's generally not supported. --- renderdoc/driver/d3d12/d3d12_resources.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_resources.cpp b/renderdoc/driver/d3d12/d3d12_resources.cpp index 98dc23f25..db04030b2 100644 --- a/renderdoc/driver/d3d12/d3d12_resources.cpp +++ b/renderdoc/driver/d3d12/d3d12_resources.cpp @@ -338,8 +338,11 @@ rdcarray WrappedID3D12Resource::AddRefBuffersBeforeCapture(D3D for(size_t i = 0; i < addresses.size(); i++) { ID3D12Resource *resource = (ID3D12Resource *)rm->GetCurrentResource(m_Addresses.addresses[i].id); - resource->AddRef(); - ret.push_back(resource); + if(resource) + { + resource->AddRef(); + ret.push_back(resource); + } } return ret;