diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-02-22 04:43:17 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:38:09 +0000 |
| commit | adf0e8eeb302dab08d4a52df03030a1b3268cfce (patch) | |
| tree | 57127e705789cda3468fa18d54a04567034caeb5 /Graphics/GraphicsEngineD3D12 | |
| parent | Reworked shader resource binding remapping in d3d12; updated PipelineStateD3D... (diff) | |
| download | DiligentCore-adf0e8eeb302dab08d4a52df03030a1b3268cfce.tar.gz DiligentCore-adf0e8eeb302dab08d4a52df03030a1b3268cfce.zip | |
Fixed bug in DescriptorHeapAllocationManager
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp | 9 |
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); } } |
