Merge pull request #13479 from iwubcode/mali_draw_fix

VideoCommon: fix a mali draw bug that causes crashes in some games
This commit is contained in:
Admiral H. Curtiss 2025-04-03 21:55:41 +02:00 committed by GitHub
commit dadbd2f9fb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 9 deletions

View File

@ -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(