diff options
| author | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2026-04-02 11:10:53 +1100 |
|---|---|---|
| committer | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2026-04-02 11:10:53 +1100 |
| commit | 32e525f8edf67359ac36f38d95a357512229e414 (patch) | |
| tree | 96131e5bb41c1b7c0a8377277e47b6e68deaa5d6 /src/swapchain_monitor.hh | |
| parent | b8759422bc22127831e40d502d5b5767572605c9 (diff) | |
Fix potential for early semaphore submission with Reflex
Diffstat (limited to 'src/swapchain_monitor.hh')
| -rw-r--r-- | src/swapchain_monitor.hh | 10 |
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; |
