From cf746cf0be42b1001ddb7e0ca52e34d79451389e Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 10 Nov 2025 11:10:57 +0000 Subject: [PATCH] Work around poor D3D12 behaviour to return unusable Desc. Closes #3728 * For some cases D3D12's GetDesc() returns a desc that is not usable for resource creation, and must instead be modified to work. --- renderdoc/driver/d3d12/d3d12_resources.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/d3d12/d3d12_resources.h b/renderdoc/driver/d3d12/d3d12_resources.h index 368e069e0..a40946e27 100644 --- a/renderdoc/driver/d3d12/d3d12_resources.h +++ b/renderdoc/driver/d3d12/d3d12_resources.h @@ -1536,7 +1536,15 @@ public: ////////////////////////////// // implement ID3D12Resource - virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc() { return m_pReal->GetDesc(); } + virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc() + { + D3D12_RESOURCE_DESC ret = m_pReal->GetDesc(); + // normalise alignment - sometimes D3D12 returns an alignment that is invalid to use + if(ret.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && + ret.Alignment != D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT) + ret.Alignment = 0; + return ret; + } virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress() { return m_pReal->GetGPUVirtualAddress();