summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineD3D12
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-01-04 06:28:38 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-01-04 06:28:38 +0000
commit3cf64d721e3d274d7c2202eef8858d6d2f2c9a9d (patch)
tree21818365c4e87ff71b7e0879e509c3d5c3c74ce3 /Graphics/GraphicsEngineD3D12
parentFixed vulkan types (diff)
downloadDiligentCore-3cf64d721e3d274d7c2202eef8858d6d2f2c9a9d.tar.gz
DiligentCore-3cf64d721e3d274d7c2202eef8858d6d2f2c9a9d.zip
D3D12 backend: renamed QueryManager to QueryManagerD3D12
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
-rw-r--r--Graphics/GraphicsEngineD3D12/CMakeLists.txt4
-rw-r--r--Graphics/GraphicsEngineD3D12/include/QueryManagerD3D12.h (renamed from Graphics/GraphicsEngineD3D12/include/QueryManager.h)16
-rw-r--r--Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h6
-rw-r--r--Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp18
-rw-r--r--Graphics/GraphicsEngineD3D12/src/QueryD3D12Impl.cpp2
-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);