diff --git a/src/core/gpu_backend.cpp b/src/core/gpu_backend.cpp index a2756dafe..06c64b238 100644 --- a/src/core/gpu_backend.cpp +++ b/src/core/gpu_backend.cpp @@ -200,8 +200,7 @@ void GPUBackend::Sync(bool allow_sleep) PushCommand(cmd); WakeGPUThread(); - m_sync_event.Wait(); - m_sync_event.Reset(); + m_sync_semaphore.Wait(); } void GPUBackend::RunGPULoop() @@ -252,7 +251,7 @@ void GPUBackend::RunGPULoop() case GPUBackendCommandType::Sync: { DebugAssert(read_ptr == write_ptr); - m_sync_event.Signal(); + m_sync_semaphore.Post(); allow_sleep = static_cast(cmd)->allow_sleep; } break; diff --git a/src/core/gpu_backend.h b/src/core/gpu_backend.h index fa00963d6..e8d2b837c 100644 --- a/src/core/gpu_backend.h +++ b/src/core/gpu_backend.h @@ -66,7 +66,7 @@ protected: Common::Rectangle m_drawing_area{}; - Common::Event m_sync_event; + Threading::KernelSemaphore m_sync_semaphore; std::atomic_bool m_gpu_thread_sleeping{false}; std::atomic_bool m_gpu_loop_done{false}; Threading::Thread m_gpu_thread;