diff options
| author | degasus <wickmarkus@web.de> | 2015-01-31 12:43:58 +0100 |
|---|---|---|
| committer | degasus <wickmarkus@web.de> | 2015-02-22 08:41:15 +0100 |
| commit | edbd4021014cd24a7aa98396160df12b590529f7 (patch) | |
| tree | 828ca5e070e7beef8c9a224396debea2f60328b9 /Source/Core/VideoCommon/MainBase.cpp | |
| parent | ad7264da7de4ca20472dfc2ef911314ff0e78de7 (diff) | |
VideoCommon: bbox by async events
Diffstat (limited to 'Source/Core/VideoCommon/MainBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/MainBase.cpp | 37 |
1 files changed, 8 insertions, 29 deletions
diff --git a/Source/Core/VideoCommon/MainBase.cpp b/Source/Core/VideoCommon/MainBase.cpp index 25741ea7d8..74a2cc5fcf 100644 --- a/Source/Core/VideoCommon/MainBase.cpp +++ b/Source/Core/VideoCommon/MainBase.cpp @@ -24,11 +24,6 @@ static Common::Flag s_FifoShuttingDown; static Common::Flag s_perfQueryRequested; static Common::Event s_perfQueryReadyEvent; -static Common::Flag s_BBoxRequested; -static Common::Event s_BBoxReadyEvent; -static int s_BBoxIndex; -static u16 s_BBoxResult; - static volatile struct { u32 xfbAddr; @@ -184,30 +179,15 @@ u16 VideoBackendHardware::Video_GetBoundingBox(int index) SyncGPU(SYNC_GPU_BBOX); - if (SConfig::GetInstance().m_LocalCoreStartupParameter.bCPUThread) - { - s_BBoxReadyEvent.Reset(); - if (s_FifoShuttingDown.IsSet()) - return 0; - s_BBoxIndex = index; - s_BBoxRequested.Set(); - s_BBoxReadyEvent.Wait(); - return s_BBoxResult; - } - else - { - return g_renderer->BBoxRead(index); - } -} + AsyncRequests::Event e; + u16 result; + e.time = 0; + e.type = AsyncRequests::Event::BBOX_READ; + e.bbox.index = index; + e.bbox.data = &result; + AsyncRequests::GetInstance()->PushEvent(e, true); -static void VideoFifo_CheckBBoxRequest() -{ - if (s_BBoxRequested.IsSet()) - { - s_BBoxResult = g_renderer->BBoxRead(s_BBoxIndex); - s_BBoxRequested.Clear(); - s_BBoxReadyEvent.Set(); - } + return result; } void VideoBackendHardware::InitializeShared() @@ -275,7 +255,6 @@ void VideoBackendHardware::RunLoop(bool enable) void VideoFifo_CheckAsyncRequest() { VideoFifo_CheckPerfQueryRequest(); - VideoFifo_CheckBBoxRequest(); } void VideoBackendHardware::Video_GatherPipeBursted() |
