diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 4526330d1..7b7c73483 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -77,7 +77,6 @@ public: std::scoped_lock lock(swap_chain_lock); std::queue().swap(free_queue); present_queue.clear(); - free_cv.notify_all(); present_cv.notify_all(); } @@ -126,10 +125,6 @@ public: Frontend::Frame* GetRenderFrame() override { std::unique_lock lock(swap_chain_lock); - // wait for new entries in the free_queue - // we want to break at some point to prevent a softlock on close if the presentation thread - // stops consuming buffers - free_cv.wait_for(lock, std::chrono::milliseconds(100), [&] { return !free_queue.empty(); }); // If theres no free frames, we will reuse the oldest render frame if (free_queue.empty()) { @@ -162,7 +157,6 @@ public: // free the previous frame and add it back to the free queue if (previous_frame) { free_queue.push(previous_frame); - free_cv.notify_one(); } // the newest entries are pushed to the front of the queue @@ -172,7 +166,6 @@ public: for (auto f : present_queue) { free_queue.push(f); } - free_cv.notify_one(); present_queue.clear(); previous_frame = frame; return frame;