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)