Unify three types of non-FIFO requests to the GPU thread around Common::Event and Common::Flag.

The only possible functionality change is that s_efbAccessRequested and
s_swapRequested are no longer reset at init and shutdown of the OGL
backend (only; this is the only interaction any files other than
MainBase.cpp have with them).  I am fairly certain this was entirely
vestigial.

Possible performance implications: efbAccessReady now uses an Event
rather than spinning, which might be slightly slower, but considering
the slow loop the flags are being checked in from the GPU thread, I
doubt it's noticeable.

Also, this uses sequentially consistent rather than release/acquire
memory order, which might be slightly slower, especially on ARM...
something to improve in Event/Flag, really.
This commit is contained in:
comex
2014-08-24 19:13:46 -04:00
parent de7294ecc1
commit e31d6feaa2
5 changed files with 38 additions and 60 deletions

View File

@ -160,11 +160,6 @@ bool VideoBackend::Initialize(void *window_handle)
void VideoBackend::Video_Prepare()
{
// Better be safe...
s_efbAccessRequested = FALSE;
s_FifoShuttingDown = FALSE;
s_swapRequested = FALSE;
// internal interfaces
g_renderer = new Renderer(m_window_handle);
g_texture_cache = new TextureCache;
@ -196,10 +191,6 @@ void VideoBackend::Shutdown()
// TODO: should be in Video_Cleanup
if (g_renderer)
{
s_efbAccessRequested = FALSE;
s_FifoShuttingDown = FALSE;
s_swapRequested = FALSE;
// VideoCommon
Fifo_Shutdown();
CommandProcessor::Shutdown();