aboutsummaryrefslogtreecommitdiff
path: root/src/swapchain_monitor.hh
diff options
context:
space:
mode:
authorNicolas James <Eele1Ephe7uZahRie@tutanota.com>2026-04-02 11:10:53 +1100
committerNicolas James <Eele1Ephe7uZahRie@tutanota.com>2026-04-02 11:10:53 +1100
commit32e525f8edf67359ac36f38d95a357512229e414 (patch)
tree96131e5bb41c1b7c0a8377277e47b6e68deaa5d6 /src/swapchain_monitor.hh
parentb8759422bc22127831e40d502d5b5767572605c9 (diff)
Fix potential for early semaphore submission with Reflex
Diffstat (limited to 'src/swapchain_monitor.hh')
-rw-r--r--src/swapchain_monitor.hh10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/swapchain_monitor.hh b/src/swapchain_monitor.hh
index e8603b5..eaf4933 100644
--- a/src/swapchain_monitor.hh
+++ b/src/swapchain_monitor.hh
@@ -12,6 +12,7 @@
#include <mutex>
#include <thread>
+#include "instance_context.hh"
#include "queue_context.hh"
namespace low_latency {
@@ -69,7 +70,14 @@ class ReflexSwapchainMonitor final : public SwapchainMonitor {
public:
void signal(const DeviceContext& device) const;
};
- std::deque<WakeupSemaphore> wakeup_semaphores;
+
+ // A pairing of semaphore -> submissions.
+ // If the Submissions completes then signal the bundled semaphore.
+ struct SemaphoreSubmissions {
+ WakeupSemaphore wakeup_semaphore;
+ std::unique_ptr<QueueContext::Submissions> submissions;
+ };
+ std::deque<SemaphoreSubmissions> semaphore_submissions;
std::mutex mutex;
std::condition_variable_any cv;