From da4c6497e7d50474da0588b137285be89346308a Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 10 Aug 2021 16:07:38 +0100 Subject: [PATCH] Make D3D12 initial state resource padding more generous --- renderdoc/driver/d3d12/d3d12_initstate.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_initstate.cpp b/renderdoc/driver/d3d12/d3d12_initstate.cpp index 5ca6821a7..9d5756d16 100644 --- a/renderdoc/driver/d3d12/d3d12_initstate.cpp +++ b/renderdoc/driver/d3d12/d3d12_initstate.cpp @@ -400,19 +400,16 @@ uint64_t D3D12ResourceManager::GetSize_InitialState(ResourceId id, const D3D12In { ID3D12Resource *buf = (ID3D12Resource *)data.resource; - // readback heaps have already been copied to a buffer, so use that length - if(data.tag == D3D12InitialContents::MapDirect) - return WriteSerialiser::GetChunkAlignment() + 16 + uint64_t(data.dataSize); - - uint64_t ret = - WriteSerialiser::GetChunkAlignment() + 16 + uint64_t(buf ? buf->GetDesc().Width : 0); - - ret += 16; + uint64_t ret = WriteSerialiser::GetChunkAlignment() + 64; if(data.sparseTable) ret += 16 + data.sparseTable->GetSerialiseSize(); - return ret; + // readback heaps have already been copied to a buffer, so use that length + if(data.tag == D3D12InitialContents::MapDirect) + return ret + uint64_t(data.dataSize); + + return ret + uint64_t(buf ? buf->GetDesc().Width : 0); } else {