aboutsummaryrefslogtreecommitdiff
path: root/src/strategies/anti_lag
diff options
context:
space:
mode:
Diffstat (limited to 'src/strategies/anti_lag')
-rw-r--r--src/strategies/anti_lag/device_strategy.cc10
-rw-r--r--src/strategies/anti_lag/device_strategy.hh9
-rw-r--r--src/strategies/anti_lag/queue_strategy.cc3
-rw-r--r--src/strategies/anti_lag/queue_strategy.hh1
4 files changed, 20 insertions, 3 deletions
diff --git a/src/strategies/anti_lag/device_strategy.cc b/src/strategies/anti_lag/device_strategy.cc
index df11dca..b391371 100644
--- a/src/strategies/anti_lag/device_strategy.cc
+++ b/src/strategies/anti_lag/device_strategy.cc
@@ -54,8 +54,7 @@ void AntiLagDeviceStrategy::notify_update(const VkAntiLagDataAMD& data) {
}
}
- // We might need to wait a little more time to meet our frame limit, if
- // necessary.
+ // We might need to wait a little more time to meet our frame limit.
using namespace std::chrono;
if (this->delay != 0us && this->previous_input_release.has_value()) {
std::this_thread::sleep_until(*this->previous_input_release +
@@ -80,4 +79,11 @@ bool AntiLagDeviceStrategy::should_track_submissions() {
return true;
}
+// Stub - anti_lag doesn't differentiate between swapchains.
+void AntiLagDeviceStrategy::notify_create_swapchain(
+ const VkSwapchainKHR&, const VkSwapchainCreateInfoKHR&) {}
+
+// Stub - again, AL doesn't care about swapchains.
+void AntiLagDeviceStrategy::notify_destroy_swapchain(const VkSwapchainKHR&) {}
+
} // namespace low_latency \ No newline at end of file
diff --git a/src/strategies/anti_lag/device_strategy.hh b/src/strategies/anti_lag/device_strategy.hh
index 836e748..3533647 100644
--- a/src/strategies/anti_lag/device_strategy.hh
+++ b/src/strategies/anti_lag/device_strategy.hh
@@ -18,7 +18,7 @@ class AntiLagDeviceStrategy final : public DeviceStrategy {
std::shared_mutex mutex{};
// If this is nullopt don't track the submission.
std::optional<std::uint64_t> frame_index{};
- std::optional<std::chrono::steady_clock::time_point> previous_input_release;
+ std::optional<std::chrono::steady_clock::time_point> previous_input_release{};
std::chrono::microseconds delay{};
bool is_enabled{};
@@ -27,6 +27,13 @@ class AntiLagDeviceStrategy final : public DeviceStrategy {
virtual ~AntiLagDeviceStrategy();
public:
+ virtual void
+ notify_create_swapchain(const VkSwapchainKHR& swapchain,
+ const VkSwapchainCreateInfoKHR& info) override;
+ virtual void
+ notify_destroy_swapchain(const VkSwapchainKHR& swapchain) override;
+
+ public:
void notify_update(const VkAntiLagDataAMD& data);
bool should_track_submissions();
diff --git a/src/strategies/anti_lag/queue_strategy.cc b/src/strategies/anti_lag/queue_strategy.cc
index 9dbe127..0834a96 100644
--- a/src/strategies/anti_lag/queue_strategy.cc
+++ b/src/strategies/anti_lag/queue_strategy.cc
@@ -59,4 +59,7 @@ void AntiLagQueueStrategy::await_complete() {
last->end->await_time();
}
+// Stub - AntiLag doesn't care about presents.
+void AntiLagQueueStrategy::notify_present(const VkPresentInfoKHR&) {}
+
} // namespace low_latency
diff --git a/src/strategies/anti_lag/queue_strategy.hh b/src/strategies/anti_lag/queue_strategy.hh
index 3887474..37c44a5 100644
--- a/src/strategies/anti_lag/queue_strategy.hh
+++ b/src/strategies/anti_lag/queue_strategy.hh
@@ -25,6 +25,7 @@ class AntiLagQueueStrategy final : public QueueStrategy {
std::unique_ptr<Submission> submission) override;
virtual void notify_submit(const VkSubmitInfo2& submit,
std::unique_ptr<Submission> submission) override;
+ virtual void notify_present(const VkPresentInfoKHR& present) override;
public:
// Wait for all pending submissions to complete. Resets pending submissions