diff options
| author | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2026-04-01 00:49:34 +1100 |
|---|---|---|
| committer | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2026-04-01 00:49:34 +1100 |
| commit | 31c69428639c0674339c3752c5401542d38693bc (patch) | |
| tree | e5d215ffbbe6ec0630aaadef6afa218cd6f60a21 /src/swapchain_monitor.cc | |
| parent | aa3dbff2342a4d698c10a5fd816904de01b03605 (diff) | |
Turn shared_ptr to unique_ptr in Context, strictly transfer ownership in notify_present
Diffstat (limited to 'src/swapchain_monitor.cc')
| -rw-r--r-- | src/swapchain_monitor.cc | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/swapchain_monitor.cc b/src/swapchain_monitor.cc index bc4fc9b..002f729 100644 --- a/src/swapchain_monitor.cc +++ b/src/swapchain_monitor.cc @@ -67,10 +67,9 @@ void ReflexSwapchainMonitor::do_monitor(const std::stop_token stoken) { // Look for the latest submission and make sure it's completed. if (!this->in_flight_submissions.empty()) { - const auto last_submission = this->in_flight_submissions.back(); - this->in_flight_submissions.clear(); - last_submission->await_completed(); + this->in_flight_submissions.back()->await_completed(); + this->in_flight_submissions.clear(); } // We might want to signal them all? In theory it's the same timeline @@ -104,7 +103,7 @@ void ReflexSwapchainMonitor::notify_semaphore( } void ReflexSwapchainMonitor::notify_present( - const QueueContext::submissions_ptr_t& submissions) { + std::unique_ptr<QueueContext::Submissions> submissions) { const auto lock = std::scoped_lock{this->mutex}; @@ -121,7 +120,7 @@ void ReflexSwapchainMonitor::notify_present( return; } - this->in_flight_submissions.emplace_back(submissions); + this->in_flight_submissions.emplace_back(std::move(submissions)); this->prune_submissions(); this->cv.notify_one(); @@ -133,13 +132,13 @@ AntiLagSwapchainMonitor::AntiLagSwapchainMonitor( AntiLagSwapchainMonitor::~AntiLagSwapchainMonitor() {} void AntiLagSwapchainMonitor::notify_present( - const QueueContext::submissions_ptr_t& submissions) { + std::unique_ptr<QueueContext::Submissions> submissions) { if (!this->was_low_latency_requested) { return; } - this->in_flight_submissions.emplace_back(submissions); + this->in_flight_submissions.emplace_back(std::move(submissions)); this->prune_submissions(); } @@ -148,10 +147,8 @@ void AntiLagSwapchainMonitor::await_submissions() { return; } - const auto last_submission = this->in_flight_submissions.back(); + this->in_flight_submissions.back()->await_completed(); this->in_flight_submissions.clear(); - - last_submission->await_completed(); } } // namespace low_latency
\ No newline at end of file |
