From f258261a21ef8e60d1d41a3c246ee1c19364c176 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 24 Aug 2021 18:59:45 +0100 Subject: [PATCH] Add a couple of extra protection checks in D3D12 code against crashes --- renderdoc/driver/d3d12/d3d12_common.h | 3 ++- renderdoc/driver/d3d12/d3d12_device.cpp | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/d3d12/d3d12_common.h b/renderdoc/driver/d3d12/d3d12_common.h index 17c22ebeb..56dc80101 100644 --- a/renderdoc/driver/d3d12/d3d12_common.h +++ b/renderdoc/driver/d3d12/d3d12_common.h @@ -65,7 +65,8 @@ void D3D12_CleanupReplaySDK(); inline void SetObjName(ID3D12Object *obj, const rdcstr &utf8name) { - obj->SetName(StringFormat::UTF82Wide(utf8name).c_str()); + if(obj) + obj->SetName(StringFormat::UTF82Wide(utf8name).c_str()); } #define PIX_EVENT_UNICODE_VERSION 0 diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 13a19074a..5fc73fbe1 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -1750,6 +1750,12 @@ bool WrappedID3D12Device::Serialise_MapDataWrite(SerialiserType &ser, ID3D12Reso { ID3D12Resource *uploadBuf = GetUploadBuffer(cmd.m_CurChunkOffset, rangeSize); + if(uploadBuf) + { + RDCERR("Couldn't get upload buffer"); + return false; + } + SetObjName(uploadBuf, StringFormat::Fmt("Map data write, %llu bytes for %s/%u @ %llu", rangeSize, ToStr(origid).c_str(), Subresource, cmd.m_CurChunkOffset));