diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp index 7987887b86..64246df904 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/VertexManagerBase.cpp @@ -644,9 +644,6 @@ void VertexManagerBase::Flush() // Same with GPU texture decoding, which uses compute shaders. g_texture_cache->BindTextures(used_textures, samplers); - if (PerfQueryBase::ShouldEmulate()) - g_perf_query->EnableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); - if (!skip) { UpdatePipelineConfig(); @@ -668,15 +665,9 @@ void VertexManagerBase::Flush() } } - // Track the total emulated state draws - INCSTAT(g_stats.this_frame.num_draw_calls); - // Even if we skip the draw, emulated state should still be impacted OnDraw(); - if (PerfQueryBase::ShouldEmulate()) - g_perf_query->DisableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); - // The EFB cache is now potentially stale. g_framebuffer_manager->FlagPeekCacheAsOutOfDate(); } @@ -1098,7 +1089,16 @@ void VertexManagerBase::RenderDrawCall( base_vertex <<= 2; } + if (PerfQueryBase::ShouldEmulate()) + g_perf_query->EnableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); + DrawCurrentBatch(base_index, m_index_generator.GetIndexLen(), base_vertex); + + // Track the total emulated state draws + INCSTAT(g_stats.this_frame.num_draw_calls); + + if (PerfQueryBase::ShouldEmulate()) + g_perf_query->DisableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); } const AbstractPipeline* VertexManagerBase::GetCustomPipeline(