summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineD3D12
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-02-22 04:43:17 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:38:09 +0000
commitadf0e8eeb302dab08d4a52df03030a1b3268cfce (patch)
tree57127e705789cda3468fa18d54a04567034caeb5 /Graphics/GraphicsEngineD3D12
parentReworked shader resource binding remapping in d3d12; updated PipelineStateD3D... (diff)
downloadDiligentCore-adf0e8eeb302dab08d4a52df03030a1b3268cfce.tar.gz
DiligentCore-adf0e8eeb302dab08d4a52df03030a1b3268cfce.zip
Fixed bug in DescriptorHeapAllocationManager
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
-rw-r--r--Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp b/Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp
index 1159c041..04028631 100644
--- a/Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp
+++ b/Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp
@@ -217,12 +217,13 @@ DescriptorHeapAllocation DescriptorHeapAllocationManager::Allocate(uint32_t Coun
++m_AllocationsCounter;
// Copy invalid descriptors. If the descriptors are accessed, this will cause device removal.
{
- auto* pd3d12Device = m_DeviceD3D12Impl.GetD3D12Device();
- const auto InvalidCPUHandles = m_pd3d12InvalidDescriptorHeap->GetCPUDescriptorHandleForHeapStart();
- auto DstCPUHandle = CPUHandle;
- for (Uint32 FisrtDescr = 0; FisrtDescr < Count; FisrtDescr += InvalidDescriptorsCount, DstCPUHandle.ptr += InvalidDescriptorsCount)
+ auto* const pd3d12Device = m_DeviceD3D12Impl.GetD3D12Device();
+ const auto InvalidCPUHandles = m_pd3d12InvalidDescriptorHeap->GetCPUDescriptorHandleForHeapStart();
+ for (Uint32 FisrtDescr = 0; FisrtDescr < Count; FisrtDescr += InvalidDescriptorsCount)
{
auto NumDescrsToCopy = std::min(Count - FisrtDescr, InvalidDescriptorsCount);
+ auto DstCPUHandle = CPUHandle;
+ DstCPUHandle.ptr += FisrtDescr * m_DescriptorSize;
pd3d12Device->CopyDescriptorsSimple(NumDescrsToCopy, DstCPUHandle, InvalidCPUHandles, m_HeapDesc.Type);
}
}