diff options
Diffstat (limited to 'src/strategies/anti_lag/queue_strategy.hh')
| -rw-r--r-- | src/strategies/anti_lag/queue_strategy.hh | 19 |
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 |
