diff options
| author | NeoBrainX <NeoBrainX@gmail.com> | 2013-03-01 23:12:41 +0100 |
|---|---|---|
| committer | NeoBrainX <NeoBrainX@gmail.com> | 2013-03-01 23:12:41 +0100 |
| commit | d1acb0a937d842abaf55844d63298971e73ecee7 (patch) | |
| tree | e7f4da069181e3fd07ae17cae47f81ef99f5d25e /Source/Plugins/Plugin_VideoOGL/Src/PerfQuery.cpp | |
| parent | 4058b4c38a1d591253e1b1f84a44c95161607249 (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.cpp | 10 |
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; } |
