From 14cd30e2c5976a3186ace704bcd26d7d9d1736ea Mon Sep 17 00:00:00 2001 From: Evgeny Makarov Date: Thu, 12 Dec 2024 09:21:57 -0800 Subject: [PATCH] Allow readback buffers to be used as resolve destination targets --- src/d3d12/d3d12-buffer.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/d3d12/d3d12-buffer.cpp b/src/d3d12/d3d12-buffer.cpp index 0cbc3a8..7acc32c 100644 --- a/src/d3d12/d3d12-buffer.cpp +++ b/src/d3d12/d3d12-buffer.cpp @@ -122,6 +122,15 @@ namespace nvrhi::d3d12 break; } + // Allow readback buffers to be used as resolve destination targets + if ((buffer->desc.cpuAccess == CpuAccessMode::Read) && (d.initialState == ResourceStates::ResolveDest)) + { + heapProps.Type = D3D12_HEAP_TYPE_CUSTOM; + heapProps.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_WRITE_BACK; + heapProps.MemoryPoolPreference = D3D12_MEMORY_POOL_L0; + initialState = D3D12_RESOURCE_STATE_RESOLVE_DEST; + } + HRESULT res = m_Context.device->CreateCommittedResource( &heapProps, heapFlags,