From a490606012b4ba1785cec109180acb21990f7594 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 28 Jul 2021 14:01:13 +0100 Subject: [PATCH] Handle D3D12 CreateConstantBufferView with a NULL desc --- renderdoc/driver/d3d12/d3d12_device_wrap.cpp | 5 +++-- util/test/demos/d3d12/d3d12_parameter_zoo.cpp | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp index 7b743a63c..903887472 100644 --- a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp +++ b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp @@ -1159,8 +1159,9 @@ void WrappedID3D12Device::CreateConstantBufferView(const D3D12_CONSTANT_BUFFER_V m_FrameCaptureRecord->AddChunk(scope.Get()); } - GetResourceManager()->MarkResourceFrameReferenced( - WrappedID3D12Resource::GetResIDFromAddr(pDesc->BufferLocation), eFrameRef_Read); + if(pDesc) + GetResourceManager()->MarkResourceFrameReferenced( + WrappedID3D12Resource::GetResIDFromAddr(pDesc->BufferLocation), eFrameRef_Read); } GetWrapped(DestDescriptor)->Init(pDesc); diff --git a/util/test/demos/d3d12/d3d12_parameter_zoo.cpp b/util/test/demos/d3d12/d3d12_parameter_zoo.cpp index 663ef2119..9708dc74e 100644 --- a/util/test/demos/d3d12/d3d12_parameter_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_parameter_zoo.cpp @@ -52,6 +52,8 @@ float4 main() : SV_Target0 uint32_t indices[1024 / 4] = {0, 1, 2}; + dev->CreateConstantBufferView(NULL, m_CBVUAVSRV->GetCPUDescriptorHandleForHeapStart()); + ID3D12ResourcePtr vb = MakeBuffer().Data(DefaultTri); ID3D12ResourcePtr ib = MakeBuffer().Data(indices);