From 351b04d499e4c7a9e536a4338e9d0ed7f62d232b Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 6 Jul 2015 15:20:43 +0200 Subject: [PATCH] Tweak initial-skipping logic. Don't skip square RTs * I don't know if this is particularly justified, but I think square RTs are much more likely to be 'data' RTs updated each frame, not leftover frame data that will be overwritten. That I know of, there are no square resolution output displays (they're always portrait or landscape and rectangular). --- renderdoc/driver/d3d11/d3d11_device.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/d3d11/d3d11_device.cpp b/renderdoc/driver/d3d11/d3d11_device.cpp index b37c37d3f..5ca02c838 100644 --- a/renderdoc/driver/d3d11/d3d11_device.cpp +++ b/renderdoc/driver/d3d11/d3d11_device.cpp @@ -1602,9 +1602,13 @@ bool WrappedID3D11Device::Serialise_InitialState(ID3D11DeviceChild *res) SERIALISE_ELEMENT(uint32_t, numSubresources, desc.MipLevels*desc.ArraySize); - bool bigrt = ((desc.BindFlags & D3D11_BIND_RENDER_TARGET) != 0 || - (desc.BindFlags & D3D11_BIND_DEPTH_STENCIL) != 0 || - (desc.BindFlags & D3D11_BIND_UNORDERED_ACCESS) != 0) && (desc.Width > 64 && desc.Height > 64); + bool bigrt = ( + (desc.BindFlags & D3D11_BIND_RENDER_TARGET) != 0 || + (desc.BindFlags & D3D11_BIND_DEPTH_STENCIL) != 0 || + (desc.BindFlags & D3D11_BIND_UNORDERED_ACCESS) != 0 + ) && + (desc.Width > 64 && desc.Height > 64) && + (desc.Width != desc.Height); if(bigrt && m_ResourceManager->ReadBeforeWrite(Id)) bigrt = false;