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);