summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/PerfQueryBase.h
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2019-04-01 20:49:24 +1000
committerStenzek <stenzek@gmail.com>2019-04-01 20:49:24 +1000
commitf2d8c8d2a8cad108425e297d65a9b0902b3d0c9c (patch)
tree3b97c3c349c7d63192f9a0ea5d54b075e3a498e1 /Source/Core/VideoCommon/PerfQueryBase.h
parent92f1f553d13596ace349889a924d5bd8c40e845d (diff)
D3D12: Fix rare case where command list was executed with open queries
Diffstat (limited to 'Source/Core/VideoCommon/PerfQueryBase.h')
-rw-r--r--Source/Core/VideoCommon/PerfQueryBase.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/PerfQueryBase.h b/Source/Core/VideoCommon/PerfQueryBase.h
index 449b86cc1b..de99b215c9 100644
--- a/Source/Core/VideoCommon/PerfQueryBase.h
+++ b/Source/Core/VideoCommon/PerfQueryBase.h
@@ -31,22 +31,31 @@ class PerfQueryBase
public:
PerfQueryBase() : m_query_count(0) {}
virtual ~PerfQueryBase() {}
+
// Checks if performance queries are enabled in the gameini configuration.
// NOTE: Called from CPU+GPU thread
static bool ShouldEmulate();
// Begin querying the specified value for the following host GPU commands
+ // The call to EnableQuery() should be placed immediately before the draw command, otherwise
+ // there is a risk of GPU resets if the query is left open and the buffer is submitted during
+ // resource binding (D3D12/Vulkan).
virtual void EnableQuery(PerfQueryGroup type) {}
+
// Stop querying the specified value for the following host GPU commands
virtual void DisableQuery(PerfQueryGroup type) {}
+
// Reset query counters to zero and drop any pending queries
virtual void ResetQuery() {}
+
// Return the measured value for the specified query type
// NOTE: Called from CPU thread
virtual u32 GetQueryResult(PerfQueryType type) { return 0; }
+
// Request the value of any pending queries - causes a pipeline flush and thus should be used
// carefully!
virtual void FlushResults() {}
+
// True if there are no further pending query results
// NOTE: Called from CPU thread
virtual bool IsFlushed() const { return true; }