From 9348bb4510cd36c77f7ef6c2aded5cbd9c1ea4d1 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 2 Mar 2024 00:14:31 +0000 Subject: [PATCH] Don't recreate heaps as displayable --- renderdoc/driver/d3d12/d3d12_device_rescreate_wrap.cpp | 3 +++ renderdoc/driver/d3d12/d3d12_device_wrap.cpp | 3 +++ renderdoc/driver/d3d12/d3d12_device_wrap4.cpp | 3 +++ 3 files changed, 9 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_device_rescreate_wrap.cpp b/renderdoc/driver/d3d12/d3d12_device_rescreate_wrap.cpp index a26fb2a6d..2bc5542b6 100644 --- a/renderdoc/driver/d3d12/d3d12_device_rescreate_wrap.cpp +++ b/renderdoc/driver/d3d12/d3d12_device_rescreate_wrap.cpp @@ -71,6 +71,9 @@ bool WrappedID3D12Device::Serialise_CreateResource( // don't create resources non-resident HeapFlags &= ~D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT; + // don't create displayable heaps (?!) + HeapFlags &= ~D3D12_HEAP_FLAG_ALLOW_DISPLAY; + if(desc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && gpuAddress != 0) { GPUAddressRange range; diff --git a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp index 3aa5d200c..ab3d77fbe 100644 --- a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp +++ b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp @@ -1476,6 +1476,9 @@ bool WrappedID3D12Device::Serialise_CreateHeap(SerialiserType &ser, const D3D12_ // don't create resources non-resident Descriptor.Flags &= ~D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT; + // don't create displayable heaps (?!) + Descriptor.Flags &= ~D3D12_HEAP_FLAG_ALLOW_DISPLAY; + if(m_DriverInfo.vendor == GPUVendor::Software && Descriptor.Properties.Type == D3D12_HEAP_TYPE_CUSTOM) Descriptor.Properties.MemoryPoolPreference = D3D12_MEMORY_POOL_L0; diff --git a/renderdoc/driver/d3d12/d3d12_device_wrap4.cpp b/renderdoc/driver/d3d12/d3d12_device_wrap4.cpp index eac456de2..ff6280130 100644 --- a/renderdoc/driver/d3d12/d3d12_device_wrap4.cpp +++ b/renderdoc/driver/d3d12/d3d12_device_wrap4.cpp @@ -249,6 +249,9 @@ bool WrappedID3D12Device::Serialise_CreateHeap1(SerialiserType &ser, const D3D12 // don't create resources non-resident Descriptor.Flags &= ~D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT; + // don't create displayable heaps (?!) + Descriptor.Flags &= ~D3D12_HEAP_FLAG_ALLOW_DISPLAY; + // don't replay with a protected session HRESULT hr = E_NOINTERFACE; if(m_pDevice4)