mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-29 22:20:48 +00:00
rsx: Improve performance even more when async MM is active
This commit is contained in:
parent
4b30e82aee
commit
cd7e1e1e2b
@ -98,6 +98,12 @@ namespace rsx
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::lock_guard lock(g_mprotect_queue_lock);
|
||||||
|
if (g_deferred_mprotect_queue.empty())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
auto& rsxdma = g_fxo->get<rsx::dma_manager>();
|
auto& rsxdma = g_fxo->get<rsx::dma_manager>();
|
||||||
rsxdma.backend_ctrl(mm_backend_ctrl::cmd_mm_flush, nullptr);
|
rsxdma.backend_ctrl(mm_backend_ctrl::cmd_mm_flush, nullptr);
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,6 @@ namespace rsx
|
|||||||
if constexpr (FlushDMA)
|
if constexpr (FlushDMA)
|
||||||
{
|
{
|
||||||
// If the backend handled the request, this call will basically be a NOP
|
// If the backend handled the request, this call will basically be a NOP
|
||||||
rsx::mm_flush_lazy();
|
|
||||||
g_fxo->get<rsx::dma_manager>().sync();
|
g_fxo->get<rsx::dma_manager>().sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,10 +37,15 @@ namespace rsx
|
|||||||
{
|
{
|
||||||
// Manually flush the pipeline.
|
// Manually flush the pipeline.
|
||||||
// It is possible to stream report writes using the host GPU, but that generates too much submit traffic.
|
// It is possible to stream report writes using the host GPU, but that generates too much submit traffic.
|
||||||
rsx::mm_flush();
|
|
||||||
RSX(ctx)->sync();
|
RSX(ctx)->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if constexpr (FlushDMA || FlushPipe)
|
||||||
|
{
|
||||||
|
// Kick MM flush without waiting. Technically we should do this before the sync in case of MTRSX, but doing it later improves CPU performance.
|
||||||
|
rsx::mm_flush_lazy();
|
||||||
|
}
|
||||||
|
|
||||||
if (handled)
|
if (handled)
|
||||||
{
|
{
|
||||||
// Backend will handle it, nothing to write.
|
// Backend will handle it, nothing to write.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user