summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp
diff options
context:
space:
mode:
authorNeoBrainX <NeoBrainX@gmail.com>2013-03-01 23:12:41 +0100
committerNeoBrainX <NeoBrainX@gmail.com>2013-03-01 23:12:41 +0100
commitd1acb0a937d842abaf55844d63298971e73ecee7 (patch)
treee7f4da069181e3fd07ae17cae47f81ef99f5d25e /Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp
parent4058b4c38a1d591253e1b1f84a44c95161607249 (diff)
OGL: Fix perf metrics being overcounted when using a non-native internal resolution.
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp b/Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp
index 8cee426e98..42ff918942 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp
@@ -1,3 +1,4 @@
+#include "RenderBase.h"
#include "GLUtil.h"
#include "PerfQuery.h"
@@ -61,12 +62,13 @@ bool PerfQuery::IsFlushed() const
void PerfQuery::FlushOne()
{
auto& entry = m_query_buffer[m_query_read_pos];
-
+
GLuint result = 0;
glGetQueryObjectuiv(entry.query_id, GL_QUERY_RESULT, &result);
-
- m_results[entry.query_type] += result;
-
+
+ // NOTE: Reported pixel metrics should be referenced to native resolution
+ m_results[entry.query_type] += result * EFB_WIDTH * EFB_HEIGHT / g_renderer->GetTargetWidth() / g_renderer->GetTargetHeight();
+
m_query_read_pos = (m_query_read_pos + 1) % ARRAYSIZE(m_query_buffer);
--m_query_count;
}