diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2020-01-04 06:28:38 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2020-01-04 06:28:38 +0000 |
| commit | 3cf64d721e3d274d7c2202eef8858d6d2f2c9a9d (patch) | |
| tree | 21818365c4e87ff71b7e0879e509c3d5c3c74ce3 /Graphics/GraphicsEngineD3D12 | |
| parent | Fixed vulkan types (diff) | |
| download | DiligentCore-3cf64d721e3d274d7c2202eef8858d6d2f2c9a9d.tar.gz DiligentCore-3cf64d721e3d274d7c2202eef8858d6d2f2c9a9d.zip | |
D3D12 backend: renamed QueryManager to QueryManagerD3D12
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/include/QueryManagerD3D12.h (renamed from Graphics/GraphicsEngineD3D12/include/QueryManager.h) | 16 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h | 6 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp | 18 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/src/QueryD3D12Impl.cpp | 2 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/src/QueryManagerD3D12.cpp (renamed from Graphics/GraphicsEngineD3D12/src/QueryManager.cpp) | 23 |
6 files changed, 35 insertions, 34 deletions
diff --git a/Graphics/GraphicsEngineD3D12/CMakeLists.txt b/Graphics/GraphicsEngineD3D12/CMakeLists.txt index 6fbe75b5..8a59dd4d 100644 --- a/Graphics/GraphicsEngineD3D12/CMakeLists.txt +++ b/Graphics/GraphicsEngineD3D12/CMakeLists.txt @@ -22,7 +22,7 @@ set(INCLUDE include/pch.h include/PipelineStateD3D12Impl.h include/QueryD3D12Impl.h - include/QueryManager.h + include/QueryManagerD3D12.h include/RenderDeviceD3D12Impl.h include/RootSignature.h include/SamplerD3D12Impl.h @@ -72,7 +72,7 @@ set(SRC src/GenerateMips.cpp src/PipelineStateD3D12Impl.cpp src/QueryD3D12Impl.cpp - src/QueryManager.cpp + src/QueryManagerD3D12.cpp src/RenderDeviceD3D12Impl.cpp src/RootSignature.cpp src/SamplerD3D12Impl.cpp diff --git a/Graphics/GraphicsEngineD3D12/include/QueryManager.h b/Graphics/GraphicsEngineD3D12/include/QueryManagerD3D12.h index fc8044f9..0600c2e4 100644 --- a/Graphics/GraphicsEngineD3D12/include/QueryManager.h +++ b/Graphics/GraphicsEngineD3D12/include/QueryManagerD3D12.h @@ -41,18 +41,18 @@ class CommandContext; // https://microsoft.github.io/DirectX-Specs/d3d/CountersAndQueries.html#queries -class QueryManager +class QueryManagerD3D12 { public: - QueryManager(ID3D12Device* pd3d12Device, - const Uint32 QueryHeapSizes[]); - ~QueryManager(); + QueryManagerD3D12(ID3D12Device* pd3d12Device, + const Uint32 QueryHeapSizes[]); + ~QueryManagerD3D12(); // clang-format off - QueryManager (const QueryManager&) = delete; - QueryManager ( QueryManager&&) = delete; - QueryManager& operator = (const QueryManager&) = delete; - QueryManager& operator = ( QueryManager&&) = delete; + QueryManagerD3D12 (const QueryManagerD3D12&) = delete; + QueryManagerD3D12 ( QueryManagerD3D12&&) = delete; + QueryManagerD3D12& operator = (const QueryManagerD3D12&) = delete; + QueryManagerD3D12& operator = ( QueryManagerD3D12&&) = delete; // clang-format on static constexpr Uint32 InvalidIndex = static_cast<Uint32>(-1); diff --git a/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h index 248cabec..922a4c22 100644 --- a/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h @@ -39,7 +39,7 @@ #include "Atomics.h" #include "CommandQueueD3D12.h" #include "GenerateMips.h" -#include "QueryManager.h" +#include "QueryManagerD3D12.h" namespace Diligent { @@ -128,7 +128,7 @@ public: } const GenerateMipsHelper& GetMipsGenerator() const { return m_MipsGenerator; } - QueryManager& GetQueryManager() { return m_QueryMgr; } + QueryManagerD3D12& GetQueryManager() { return m_QueryMgr; } D3D_FEATURE_LEVEL GetD3DFeatureLevel() const; @@ -157,7 +157,7 @@ private: // Note: mips generator must be released after the device has been idled GenerateMipsHelper m_MipsGenerator; - QueryManager m_QueryMgr; + QueryManagerD3D12 m_QueryMgr; }; } // namespace Diligent diff --git a/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp index eb49d52c..617c492e 100644 --- a/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp @@ -1702,10 +1702,10 @@ void DeviceContextD3D12Impl::BeginQuery(IQuery* pQuery) if (QueryType != QUERY_TYPE_TIMESTAMP) ++m_ActiveQueriesCounter; - auto& QueueMgr = m_pDevice->GetQueryManager(); + auto& QueryMgr = m_pDevice->GetQueryManager(); auto& Ctx = GetCmdContext(); auto Idx = pQueryD3D12Impl->GetQueryHeapIndex(); - QueueMgr.BeginQuery(Ctx, QueryType, Idx); + QueryMgr.BeginQuery(Ctx, QueryType, Idx); } void DeviceContextD3D12Impl::EndQuery(IQuery* pQuery) @@ -1713,18 +1713,18 @@ void DeviceContextD3D12Impl::EndQuery(IQuery* pQuery) if (!TDeviceContextBase::EndQuery(pQuery, 0)) return; - auto* pQueryD3D12Impl = ValidatedCast<QueryD3D12Impl>(pQuery); - if (pQueryD3D12Impl->GetDesc().Type != QUERY_TYPE_TIMESTAMP) + auto* pQueryD3D12Impl = ValidatedCast<QueryD3D12Impl>(pQuery); + const auto QueryType = pQueryD3D12Impl->GetDesc().Type; + if (QueryType != QUERY_TYPE_TIMESTAMP) { VERIFY(m_ActiveQueriesCounter > 0, "Active query counter is 0 which means there was a mismatch between BeginQuery() / EndQuery() calls"); --m_ActiveQueriesCounter; } - const auto QueryType = pQueryD3D12Impl->GetDesc().Type; - auto& QueueMgr = m_pDevice->GetQueryManager(); - auto& Ctx = GetCmdContext(); - auto Idx = pQueryD3D12Impl->GetQueryHeapIndex(); - QueueMgr.EndQuery(Ctx, QueryType, Idx); + auto& QueryMgr = m_pDevice->GetQueryManager(); + auto& Ctx = GetCmdContext(); + auto Idx = pQueryD3D12Impl->GetQueryHeapIndex(); + QueryMgr.EndQuery(Ctx, QueryType, Idx); } void DeviceContextD3D12Impl::TransitionResourceStates(Uint32 BarrierCount, StateTransitionDesc* pResourceBarriers) diff --git a/Graphics/GraphicsEngineD3D12/src/QueryD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/QueryD3D12Impl.cpp index cb8d7e02..6c055e51 100644 --- a/Graphics/GraphicsEngineD3D12/src/QueryD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/QueryD3D12Impl.cpp @@ -43,7 +43,7 @@ QueryD3D12Impl::QueryD3D12Impl(IReferenceCounters* pRefCounters, { auto& QueryMgr = pDevice->GetQueryManager(); m_QueryHeapIndex = QueryMgr.AllocateQuery(m_Desc.Type); - if (m_QueryHeapIndex == QueryManager::InvalidIndex) + if (m_QueryHeapIndex == QueryManagerD3D12::InvalidIndex) { LOG_ERROR_AND_THROW("Failed to allocate D3D12 query for type ", GetQueryTypeString(m_Desc.Type), ". Increase the query pool size in EngineD3D12CreateInfo."); diff --git a/Graphics/GraphicsEngineD3D12/src/QueryManager.cpp b/Graphics/GraphicsEngineD3D12/src/QueryManagerD3D12.cpp index 6474383c..b62ab877 100644 --- a/Graphics/GraphicsEngineD3D12/src/QueryManager.cpp +++ b/Graphics/GraphicsEngineD3D12/src/QueryManagerD3D12.cpp @@ -26,10 +26,11 @@ */ #include "pch.h" -#include "QueryManager.h" -#include "RenderDeviceD3D12Impl.h" +#include "QueryManagerD3D12.h" #include "D3D12TypeConversions.h" #include "GraphicsAccessories.h" +#include "CommandContext.h" +#include "Align.h" namespace Diligent { @@ -56,8 +57,8 @@ static Uint32 GetQueryDataSize(QUERY_TYPE QueryType) // clang-format on } -QueryManager::QueryManager(ID3D12Device* pd3d12Device, - const Uint32 QueryHeapSizes[]) +QueryManagerD3D12::QueryManagerD3D12(ID3D12Device* pd3d12Device, + const Uint32 QueryHeapSizes[]) { Uint32 ResolveBufferOffset = 0; for (Uint32 QueryType = QUERY_TYPE_UNDEFINED + 1; QueryType < QUERY_TYPE_NUM_TYPES; ++QueryType) @@ -126,7 +127,7 @@ QueryManager::QueryManager(ID3D12Device* pd3d12Device, LOG_ERROR_AND_THROW("Failed to create D3D12 resolve buffer"); } -QueryManager::~QueryManager() +QueryManagerD3D12::~QueryManagerD3D12() { for (Uint32 QueryType = QUERY_TYPE_UNDEFINED + 1; QueryType < QUERY_TYPE_NUM_TYPES; ++QueryType) { @@ -149,7 +150,7 @@ QueryManager::~QueryManager() } } -Uint32 QueryManager::AllocateQuery(QUERY_TYPE Type) +Uint32 QueryManagerD3D12::AllocateQuery(QUERY_TYPE Type) { std::lock_guard<std::mutex> Lock(m_HeapMutex); @@ -164,11 +165,11 @@ Uint32 QueryManager::AllocateQuery(QUERY_TYPE Type) return Index; } -void QueryManager::ReleaseQuery(QUERY_TYPE Type, Uint32 Index) +void QueryManagerD3D12::ReleaseQuery(QUERY_TYPE Type, Uint32 Index) { std::lock_guard<std::mutex> Lock(m_HeapMutex); - auto& HeapInfo = m_Heaps[Type]; + auto& HeapInfo = m_Heaps[Type]; VERIFY(Index < HeapInfo.HeapSize, "Query index ", Index, " is out of range"); #ifdef _DEBUG for (const auto& ind : HeapInfo.AvailableQueries) @@ -179,13 +180,13 @@ void QueryManager::ReleaseQuery(QUERY_TYPE Type, Uint32 Index) HeapInfo.AvailableQueries.push_back(Index); } -void QueryManager::BeginQuery(CommandContext& Ctx, QUERY_TYPE Type, Uint32 Index) +void QueryManagerD3D12::BeginQuery(CommandContext& Ctx, QUERY_TYPE Type, Uint32 Index) { auto d3d12QueryType = QueryTypeToD3D12QueryType(Type); Ctx.BeginQuery(m_Heaps[Type].pd3d12QueryHeap, d3d12QueryType, Index); } -void QueryManager::EndQuery(CommandContext& Ctx, QUERY_TYPE Type, Uint32 Index) +void QueryManagerD3D12::EndQuery(CommandContext& Ctx, QUERY_TYPE Type, Uint32 Index) { auto d3d12QueryType = QueryTypeToD3D12QueryType(Type); auto& HeapInfo = m_Heaps[Type]; @@ -195,7 +196,7 @@ void QueryManager::EndQuery(CommandContext& Ctx, QUERY_TYPE Type, Uint32 Index) Ctx.ResolveQueryData(HeapInfo.pd3d12QueryHeap, d3d12QueryType, Index, 1, m_pd3d12ResolveBuffer, HeapInfo.ResolveBufferOffsets[Index]); } -void QueryManager::ReadQueryData(QUERY_TYPE Type, Uint32 Index, void* pDataPtr, Uint32 DataSize) const +void QueryManagerD3D12::ReadQueryData(QUERY_TYPE Type, Uint32 Index, void* pDataPtr, Uint32 DataSize) const { auto& HeapInfo = m_Heaps[Type]; auto QueryDataSize = GetQueryDataSize(Type); |
