Merge pull request #5030 from jroweboy/reorder-queue-acquire
Remove wait for free buffer
This commit is contained in:
commit
020cd56ad8
|
@ -77,7 +77,6 @@ public:
|
|||
std::scoped_lock lock(swap_chain_lock);
|
||||
std::queue<Frontend::Frame*>().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<std::mutex> 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;
|
||||
|
|
Reference in New Issue