diff options
| author | Nicolas James <nj3ahxac@gmail.com> | 2026-04-08 00:56:40 +1000 |
|---|---|---|
| committer | Nicolas James <nj3ahxac@gmail.com> | 2026-04-08 00:56:40 +1000 |
| commit | eb9719cc8b9a308654ccd2c3bce8a7047b6e2a1a (patch) | |
| tree | 5e72b419d3dc900a35921be5e551b17552251769 /src/strategies/anti_lag/queue_strategy.hh | |
| parent | 69764a869d99e9abd0fbe10c2773d3556d7f35e8 (diff) | |
Refactor storing submissions into FrameSpan class, reduce AntiLag thread contention
Diffstat (limited to 'src/strategies/anti_lag/queue_strategy.hh')
| -rw-r--r-- | src/strategies/anti_lag/queue_strategy.hh | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/strategies/anti_lag/queue_strategy.hh b/src/strategies/anti_lag/queue_strategy.hh index 37c44a5..b1ae3e6 100644 --- a/src/strategies/anti_lag/queue_strategy.hh +++ b/src/strategies/anti_lag/queue_strategy.hh @@ -3,7 +3,7 @@ #include "strategies/queue_strategy.hh" -#include <deque> +#include "frame_span.hh" #include <memory> #include <mutex> @@ -12,25 +12,22 @@ namespace low_latency { class QueueContext; class AntiLagQueueStrategy final : public QueueStrategy { - private: + public: std::mutex mutex; - std::deque<std::unique_ptr<Submission>> pending_submissions; + std::unique_ptr<FrameSpan> frame_span; // Null represents no work. public: AntiLagQueueStrategy(QueueContext& queue); virtual ~AntiLagQueueStrategy(); public: - virtual void notify_submit(const VkSubmitInfo& submit, - std::unique_ptr<Submission> submission) override; - virtual void notify_submit(const VkSubmitInfo2& submit, - std::unique_ptr<Submission> submission) override; + virtual void + notify_submit(const VkSubmitInfo& submit, + std::shared_ptr<TimestampPool::Handle> handle) override; + virtual void + notify_submit(const VkSubmitInfo2& submit, + std::shared_ptr<TimestampPool::Handle> handle) override; virtual void notify_present(const VkPresentInfoKHR& present) override; - - public: - // Wait for all pending submissions to complete. Resets pending submissions - // once done. - void await_complete(); }; } // namespace low_latency |
