From f26876adf33812e79f4e28f1d33ad41bd07c4926 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 26 Oct 2016 23:13:12 +0200 Subject: [PATCH] Only ask for virtual address of buffers --- renderdoc/driver/d3d12/d3d12_device_wrap.cpp | 2 +- renderdoc/driver/d3d12/d3d12_resources.h | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp index bd1f6347d..524a8ad13 100644 --- a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp +++ b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp @@ -906,7 +906,7 @@ bool WrappedID3D12Device::Serialise_CreateCommittedResource( SERIALISE_ELEMENT(ResourceId, Res, ((WrappedID3D12Resource *)*ppvResource)->GetResourceID()); SERIALISE_ELEMENT(uint64_t, gpuAddress, - ((WrappedID3D12Resource *)*ppvResource)->GetGPUVirtualAddress()); + ((WrappedID3D12Resource *)*ppvResource)->GetGPUVirtualAddressIfBuffer()); if(m_State == READING) { diff --git a/renderdoc/driver/d3d12/d3d12_resources.h b/renderdoc/driver/d3d12/d3d12_resources.h index 6b535b551..176401375 100644 --- a/renderdoc/driver/d3d12/d3d12_resources.h +++ b/renderdoc/driver/d3d12/d3d12_resources.h @@ -722,6 +722,13 @@ public: void AllocShadow(UINT Subresource, size_t size); void FreeShadow(); + virtual uint64_t GetGPUVirtualAddressIfBuffer() + { + if(m_pReal->GetDesc().Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) + return m_pReal->GetGPUVirtualAddress(); + return 0; + } + ////////////////////////////// // implement ID3D12Resource