diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2023-03-15 15:20:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-15 15:20:11 +0100 |
| commit | 91fca0783edc73d5f027cb4e151b319f03ee5ce4 (patch) | |
| tree | ace3697be316fe552109bc37f24cec4376aa46cb /Source/Core/VideoBackends/D3D/D3DPerfQuery.cpp | |
| parent | b43f83286674e97d472e0b2d1361c21c50d4bfe3 (diff) | |
| parent | aac9647ba2715b4a96fe301116a9f41cd8046441 (diff) | |
Merge pull request #11647 from AdmiralCurtiss/perfquery-inconsistency
Fix PerfQuery inconsistencies across backends.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/D3DPerfQuery.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/D3D/D3DPerfQuery.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Source/Core/VideoBackends/D3D/D3DPerfQuery.cpp b/Source/Core/VideoBackends/D3D/D3DPerfQuery.cpp index fe34a8ff45..f2ae05bb99 100644 --- a/Source/Core/VideoBackends/D3D/D3DPerfQuery.cpp +++ b/Source/Core/VideoBackends/D3D/D3DPerfQuery.cpp @@ -8,6 +8,7 @@ #include "VideoBackends/D3D/D3DBase.h" #include "VideoCommon/FramebufferManager.h" #include "VideoCommon/VideoCommon.h" +#include "VideoCommon/VideoConfig.h" namespace DX11 { @@ -96,7 +97,7 @@ u32 PerfQuery::GetQueryResult(PerfQueryType type) result = m_results[PQG_EFB_COPY_CLOCKS].load(std::memory_order_relaxed); } - return result; + return result / 4; } void PerfQuery::FlushOne() @@ -114,8 +115,10 @@ void PerfQuery::FlushOne() // NOTE: Reported pixel metrics should be referenced to native resolution // TODO: Dropping the lower 2 bits from this count should be closer to actual // hardware behavior when drawing triangles. - const u64 native_res_result = result * EFB_WIDTH / g_framebuffer_manager->GetEFBWidth() * - EFB_HEIGHT / g_framebuffer_manager->GetEFBHeight(); + u64 native_res_result = result * EFB_WIDTH / g_framebuffer_manager->GetEFBWidth() * EFB_HEIGHT / + g_framebuffer_manager->GetEFBHeight(); + if (g_ActiveConfig.iMultisamples > 1) + native_res_result /= g_ActiveConfig.iMultisamples; m_results[entry.query_group].fetch_add(static_cast<u32>(native_res_result), std::memory_order_relaxed); |
