From 839665f3ca6b21054fa7438b2410f69616835690 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 1 Mar 2021 10:41:40 +0000 Subject: [PATCH] Add checks on D3D11 resource discard that we have a valid view/resource --- renderdoc/driver/d3d11/d3d11_debug.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/d3d11/d3d11_debug.cpp b/renderdoc/driver/d3d11/d3d11_debug.cpp index 5be10b7c2..868e19fe0 100644 --- a/renderdoc/driver/d3d11/d3d11_debug.cpp +++ b/renderdoc/driver/d3d11/d3d11_debug.cpp @@ -753,11 +753,16 @@ void D3D11DebugManager::FillWithDiscardPattern(DiscardType type, ID3D11Resource for(UINT z = 0; z < RDCMAX(1U, desc.Depth >> subresource); z++) FillWithDiscardPattern(type, res, z, subresource, pRect, NumRects); } - else + else if(WrappedID3D11Buffer::IsAlloc(res)) { // buffer FillWithDiscardPattern(type, res, 0, 0, pRect, NumRects); } + else + { + RDCERR("Unknown resource type being discarded"); + return; + } } void D3D11DebugManager::FillWithDiscardPattern(DiscardType type, ID3D11View *view, @@ -784,6 +789,11 @@ void D3D11DebugManager::FillWithDiscardPattern(DiscardType type, ID3D11View *vie { range = ResourceRange((WrappedID3D11DepthStencilView *)view); } + else + { + RDCERR("Unknown view type being discarded"); + return; + } ID3D11Resource *res = range.GetResource(); UINT numMips = 1; @@ -810,6 +820,11 @@ void D3D11DebugManager::FillWithDiscardPattern(DiscardType type, ID3D11View *vie numMips = desc.MipLevels; tex3D = true; } + else + { + RDCERR("View of unknown resource type being discarded"); + return; + } rdcarray rects; rects.assign(pRect, NumRects);