diff options
Diffstat (limited to 'src/strategies/low_latency2/queue_strategy.hh')
| -rw-r--r-- | src/strategies/low_latency2/queue_strategy.hh | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/strategies/low_latency2/queue_strategy.hh b/src/strategies/low_latency2/queue_strategy.hh index a090e1b..6d41027 100644 --- a/src/strategies/low_latency2/queue_strategy.hh +++ b/src/strategies/low_latency2/queue_strategy.hh @@ -1,8 +1,8 @@ #ifndef STRATEGIES_LOW_LATENCY2_QUEUE_STRATEGY_HH_ #define STRATEGIES_LOW_LATENCY2_QUEUE_STRATEGY_HH_ +#include "frame_span.hh" #include "strategies/queue_strategy.hh" -#include "submission.hh" #include <atomic> #include <deque> @@ -16,26 +16,27 @@ class QueueContext; class LowLatency2QueueStrategy final : public QueueStrategy { public: - static constexpr auto MAX_TRACKED_OBJECTS = 50; + static constexpr auto MAX_TRACKED_PRESENTS = 50; // Mapping of present_id's to submissions. Grabbed later by the device // strategy when we present and actually can associate them to some // vkSwapchainKHR. std::mutex mutex{}; - std::unordered_map<std::uint64_t, std::deque<std::unique_ptr<Submission>>> - present_id_submissions{}; - std::deque<std::uint64_t> present_id_ring{}; - std::atomic<bool> is_out_of_band{}; // atomic so we don't need a lock check + std::unordered_map<std::uint64_t, std::unique_ptr<FrameSpan>> frame_spans{}; + std::deque<std::uint64_t> stale_present_ids{}; + std::atomic<bool> is_out_of_band{}; // atomic to avoid lock public: LowLatency2QueueStrategy(QueueContext& queue); virtual ~LowLatency2QueueStrategy(); 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: |
