From c6f4eed3abeb062c351087c96fb2a9026144cca3 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 16 Sep 2016 17:09:47 +0200 Subject: [PATCH] Don't create UAVs with only a counter resource and no main resource --- renderdoc/driver/d3d12/d3d12_manager.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/d3d12/d3d12_manager.cpp b/renderdoc/driver/d3d12/d3d12_manager.cpp index 8530485b6..aaf5bc76e 100644 --- a/renderdoc/driver/d3d12/d3d12_manager.cpp +++ b/renderdoc/driver/d3d12/d3d12_manager.cpp @@ -213,7 +213,14 @@ void D3D12Descriptor::Create(D3D12_DESCRIPTOR_HEAP_TYPE heapType, WrappedID3D12D } } - dev->CreateUnorderedAccessView(nonsamp.resource, nonsamp.uav.counterResource, desc, handle); + // don't create a UAV with a counter resource but no main resource. This is fine because + // if the main resource wasn't present in the capture, this UAV isn't present - the counter + // must have been included for some other reference. + ID3D12Resource *counter = nonsamp.uav.counterResource; + if(nonsamp.resource == NULL) + counter = NULL; + + dev->CreateUnorderedAccessView(nonsamp.resource, counter, desc, handle); break; } case D3D12Descriptor::TypeUndefined: