From 6e85d40ead14f96770be5bd27c15567f42a3838b Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 11 Jan 2023 14:21:32 +0000 Subject: [PATCH] Check HRESULT for fatal errors when reading back output windows on D3D11 --- renderdoc/driver/d3d11/d3d11_outputwindow.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/d3d11/d3d11_outputwindow.cpp b/renderdoc/driver/d3d11/d3d11_outputwindow.cpp index 42676649e..599b7eac4 100644 --- a/renderdoc/driver/d3d11/d3d11_outputwindow.cpp +++ b/renderdoc/driver/d3d11/d3d11_outputwindow.cpp @@ -371,10 +371,17 @@ void D3D11Replay::GetOutputWindowData(uint64_t id, bytebuf &retData) } D3D11_MAPPED_SUBRESOURCE mapped = {}; - ctx->Map(readback, 0, D3D11_MAP_READ, 0, &mapped); + hr = ctx->Map(readback, 0, D3D11_MAP_READ, 0, &mapped); + m_pDevice->CheckHRESULT(hr); retData.resize(outw.width * outw.height * 3); + if(FAILED(hr) || m_pDevice->HasFatalError()) + { + RDCERR("Failed to Map HRESULT: %s", ToStr(hr).c_str()); + return; + } + byte *src = (byte *)mapped.pData; byte *dst = retData.data();