aboutsummaryrefslogtreecommitdiff
path: root/src/swapchain_monitor.cc
diff options
context:
space:
mode:
authorNicolas James <Eele1Ephe7uZahRie@tutanota.com>2026-04-01 00:49:34 +1100
committerNicolas James <Eele1Ephe7uZahRie@tutanota.com>2026-04-01 00:49:34 +1100
commit31c69428639c0674339c3752c5401542d38693bc (patch)
treee5d215ffbbe6ec0630aaadef6afa218cd6f60a21 /src/swapchain_monitor.cc
parentaa3dbff2342a4d698c10a5fd816904de01b03605 (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.cc17
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