aboutsummaryrefslogtreecommitdiff
path: root/src/strategies/low_latency2/device_strategy.cc
diff options
context:
space:
mode:
authorNicolas James <nj3ahxac@gmail.com>2026-04-08 00:56:40 +1000
committerNicolas James <nj3ahxac@gmail.com>2026-04-08 00:56:40 +1000
commiteb9719cc8b9a308654ccd2c3bce8a7047b6e2a1a (patch)
tree5e72b419d3dc900a35921be5e551b17552251769 /src/strategies/low_latency2/device_strategy.cc
parent69764a869d99e9abd0fbe10c2773d3556d7f35e8 (diff)
Refactor storing submissions into FrameSpan class, reduce AntiLag thread contention
Diffstat (limited to 'src/strategies/low_latency2/device_strategy.cc')
-rw-r--r--src/strategies/low_latency2/device_strategy.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/strategies/low_latency2/device_strategy.cc b/src/strategies/low_latency2/device_strategy.cc
index 32ff981..227c385 100644
--- a/src/strategies/low_latency2/device_strategy.cc
+++ b/src/strategies/low_latency2/device_strategy.cc
@@ -68,8 +68,8 @@ void LowLatency2DeviceStrategy::submit_swapchain_present_id(
// Iterate through all queues and grab any work that's associated with this
// present_id. Turn it into a vector of work that we give to our swapchain
// monitor.
- auto work = [&]() -> std::vector<std::deque<std::unique_ptr<Submission>>> {
- auto work = std::vector<std::deque<std::unique_ptr<Submission>>>{};
+ auto work = [&]() -> std::vector<std::unique_ptr<FrameSpan>> {
+ auto work = std::vector<std::unique_ptr<FrameSpan>>{};
const auto lock = std::scoped_lock{this->device.mutex};
for (const auto& queue_iter : this->device.queues) {
const auto& queue = queue_iter.second;
@@ -84,14 +84,14 @@ void LowLatency2DeviceStrategy::submit_swapchain_present_id(
// Need the lock now - we're modifying it.
const auto strategy_lock = std::unique_lock{strategy->mutex};
- const auto iter = strategy->present_id_submissions.find(present_id);
- if (iter == std::end(strategy->present_id_submissions)) {
+ const auto iter = strategy->frame_spans.find(present_id);
+ if (iter == std::end(strategy->frame_spans)) {
continue;
}
// Make sure we clean it up from the present as well.
work.push_back(std::move(iter->second));
- strategy->present_id_submissions.erase(iter);
+ strategy->frame_spans.erase(iter);
}
return work;
}();