summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoDX11/Src/PerfQuery.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Plugins/Plugin_VideoDX11/Src/PerfQuery.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoDX11/Src/PerfQuery.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/Source/Plugins/Plugin_VideoDX11/Src/PerfQuery.cpp b/Source/Plugins/Plugin_VideoDX11/Src/PerfQuery.cpp
index c634593361..3ba5e098ef 100644
--- a/Source/Plugins/Plugin_VideoDX11/Src/PerfQuery.cpp
+++ b/Source/Plugins/Plugin_VideoDX11/Src/PerfQuery.cpp
@@ -28,6 +28,9 @@ PerfQuery::~PerfQuery()
void PerfQuery::EnableQuery(PerfQueryGroup type)
{
+ if (!ShouldEmulate())
+ return;
+
// Is this sane?
if (m_query_count > ARRAYSIZE(m_query_buffer) / 2)
WeakFlush();
@@ -53,6 +56,9 @@ void PerfQuery::EnableQuery(PerfQueryGroup type)
void PerfQuery::DisableQuery(PerfQueryGroup type)
{
+ if (!ShouldEmulate())
+ return;
+
// stop query
if (type == PQG_ZCOMP_ZCOMPLOC || type == PQG_ZCOMP)
{
@@ -69,6 +75,9 @@ void PerfQuery::ResetQuery()
u32 PerfQuery::GetQueryResult(PerfQueryType type)
{
+ if (!ShouldEmulate())
+ return 0;
+
u32 result = 0;
if (type == PQ_ZCOMP_INPUT_ZCOMPLOC || type == PQ_ZCOMP_OUTPUT_ZCOMPLOC)
@@ -93,6 +102,9 @@ u32 PerfQuery::GetQueryResult(PerfQueryType type)
void PerfQuery::FlushOne()
{
+ if (!ShouldEmulate())
+ return;
+
auto& entry = m_query_buffer[m_query_read_pos];
UINT64 result = 0;
@@ -113,12 +125,18 @@ void PerfQuery::FlushOne()
// TODO: could selectively flush things, but I don't think that will do much
void PerfQuery::FlushResults()
{
+ if (!ShouldEmulate())
+ return;
+
while (!IsFlushed())
FlushOne();
}
void PerfQuery::WeakFlush()
{
+ if (!ShouldEmulate())
+ return;
+
while (!IsFlushed())
{
auto& entry = m_query_buffer[m_query_read_pos];
@@ -143,6 +161,9 @@ void PerfQuery::WeakFlush()
bool PerfQuery::IsFlushed() const
{
+ if (!ShouldEmulate())
+ return true;
+
return 0 == m_query_count;
}