From 9c1c217a2a588d1059906c5bf5757bc312354c64 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 5 Jan 2023 14:31:53 +0000 Subject: [PATCH] Fix clamping of subresource parameters in D3D11 texture data fetch --- renderdoc/driver/d3d11/d3d11_replay.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/renderdoc/driver/d3d11/d3d11_replay.cpp b/renderdoc/driver/d3d11/d3d11_replay.cpp index 055d2d63b..48c960f15 100644 --- a/renderdoc/driver/d3d11/d3d11_replay.cpp +++ b/renderdoc/driver/d3d11/d3d11_replay.cpp @@ -2253,6 +2253,10 @@ void D3D11Replay::GetTextureData(ResourceId tex, const Subresource &sub, UINT sampleCount = desc.SampleDesc.Count; + s.mip = RDCMIN(mips - 1, s.mip); + s.slice = RDCMIN(desc.ArraySize - 1, s.slice); + s.sample = RDCMIN(sampleCount - 1, s.sample); + if(desc.SampleDesc.Count > 1) { desc.ArraySize *= desc.SampleDesc.Count; @@ -2266,10 +2270,6 @@ void D3D11Replay::GetTextureData(ResourceId tex, const Subresource &sub, mips = desc.MipLevels ? desc.MipLevels : CalcNumMips(desc.Width, desc.Height, 1); - s.mip = RDCMIN(mips - 1, s.mip); - s.slice = RDCMIN(desc.ArraySize - 1, s.slice); - s.sample = RDCMIN(sampleCount - 1, s.sample); - if(params.remap != RemapTexture::NoRemap) { if(params.remap == RemapTexture::RGBA8)