aboutsummaryrefslogtreecommitdiff
path: root/src/strategies/anti_lag/queue_strategy.hh
diff options
context:
space:
mode:
authorNicolas James <Eele1Ephe7uZahRie@tutanota.com>2026-04-05 22:01:11 +1000
committerNicolas James <Eele1Ephe7uZahRie@tutanota.com>2026-04-05 22:01:11 +1000
commitcf0bced6cd86782e9706acda1b3b6ce6b4e98481 (patch)
tree618912ff9025cf0d249e10203b110002a26450f9 /src/strategies/anti_lag/queue_strategy.hh
parent21e55ae8a1b3ddd4dff6c24a57bdc7d7272fff16 (diff)
Implement refactored AL2, todo frame limit
Diffstat (limited to 'src/strategies/anti_lag/queue_strategy.hh')
-rw-r--r--src/strategies/anti_lag/queue_strategy.hh19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/strategies/anti_lag/queue_strategy.hh b/src/strategies/anti_lag/queue_strategy.hh
index 81ae653..3887474 100644
--- a/src/strategies/anti_lag/queue_strategy.hh
+++ b/src/strategies/anti_lag/queue_strategy.hh
@@ -3,14 +3,33 @@
#include "strategies/queue_strategy.hh"
+#include <deque>
+#include <memory>
+#include <mutex>
+
namespace low_latency {
class QueueContext;
class AntiLagQueueStrategy final : public QueueStrategy {
+ private:
+ std::mutex mutex;
+ std::deque<std::unique_ptr<Submission>> pending_submissions;
+
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;
+
+ public:
+ // Wait for all pending submissions to complete. Resets pending submissions
+ // once done.
+ void await_complete();
};
} // namespace low_latency