diff options
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; |
