diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2025-03-06 17:21:13 -0600 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2025-03-10 16:37:24 -0500 |
| commit | fe2d247acb88c6b03973cf7b1e3f52d07acfc466 (patch) | |
| tree | d46b0bed4a4c791c4f6f39885b377b52dd3fd1c3 /Source/Core/VideoCommon/AsyncRequests.cpp | |
| parent | 5ed8b7bc9d8f70d5dae4f009939ac9715adf83b4 (diff) | |
VideoCommon: Don't merge EFBPoke AsyncRequests.
Diffstat (limited to 'Source/Core/VideoCommon/AsyncRequests.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/AsyncRequests.cpp | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/Source/Core/VideoCommon/AsyncRequests.cpp b/Source/Core/VideoCommon/AsyncRequests.cpp index 92c06f0b90..0bb916d9b6 100644 --- a/Source/Core/VideoCommon/AsyncRequests.cpp +++ b/Source/Core/VideoCommon/AsyncRequests.cpp @@ -14,7 +14,6 @@ #include "VideoCommon/Statistics.h" #include "VideoCommon/VertexManagerBase.h" #include "VideoCommon/VideoBackendBase.h" -#include "VideoCommon/VideoCommon.h" #include "VideoCommon/VideoEvents.h" #include "VideoCommon/VideoState.h" @@ -35,34 +34,6 @@ void AsyncRequests::PullEventsInternal() { Event e = m_queue.front(); - // try to merge as many efb pokes as possible - // it's a bit hacky, but some games render a complete frame in this way - if ((e.type == Event::EFB_POKE_COLOR || e.type == Event::EFB_POKE_Z)) - { - m_merged_efb_pokes.clear(); - Event first_event = m_queue.front(); - const auto t = first_event.type == Event::EFB_POKE_COLOR ? EFBAccessType::PokeColor : - EFBAccessType::PokeZ; - - do - { - e = m_queue.front(); - - EfbPokeData d; - d.data = e.efb_poke.data; - d.x = e.efb_poke.x; - d.y = e.efb_poke.y; - m_merged_efb_pokes.push_back(d); - - m_queue.pop(); - } while (!m_queue.empty() && m_queue.front().type == first_event.type); - - lock.unlock(); - g_renderer->PokeEFB(t, m_merged_efb_pokes.data(), m_merged_efb_pokes.size()); - lock.lock(); - continue; - } - lock.unlock(); HandleEvent(e); lock.lock(); @@ -131,16 +102,14 @@ void AsyncRequests::HandleEvent(const AsyncRequests::Event& e) case Event::EFB_POKE_COLOR: { INCSTAT(g_stats.this_frame.num_efb_pokes); - EfbPokeData poke = {e.efb_poke.x, e.efb_poke.y, e.efb_poke.data}; - g_renderer->PokeEFB(EFBAccessType::PokeColor, &poke, 1); + g_renderer->PokeEFB(EFBAccessType::PokeColor, e.efb_poke.x, e.efb_poke.y, e.efb_poke.data); } break; case Event::EFB_POKE_Z: { INCSTAT(g_stats.this_frame.num_efb_pokes); - EfbPokeData poke = {e.efb_poke.x, e.efb_poke.y, e.efb_poke.data}; - g_renderer->PokeEFB(EFBAccessType::PokeZ, &poke, 1); + g_renderer->PokeEFB(EFBAccessType::PokeZ, e.efb_poke.x, e.efb_poke.y, e.efb_poke.data); } break; |
