aboutsummaryrefslogtreecommitdiff
path: root/src/queue_context.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/queue_context.hh')
-rw-r--r--src/queue_context.hh44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/queue_context.hh b/src/queue_context.hh
new file mode 100644
index 0000000..eb3f2ea
--- /dev/null
+++ b/src/queue_context.hh
@@ -0,0 +1,44 @@
+#ifndef QUEUE_STATE_HH_
+#define QUEUE_STATE_HH_
+
+#include "timestamp_pool.hh"
+
+#include <vulkan/utility/vk_dispatch_table.h>
+#include <vulkan/vulkan.hpp>
+
+#include <deque>
+#include <vector>
+
+namespace low_latency {
+
+class QueueContext final {
+ public:
+ VkDevice device;
+ VkuDeviceDispatchTable vtable;
+
+ VkQueue queue;
+ std::uint32_t queue_family_index;
+
+ VkSemaphore semaphore;
+ VkCommandPool command_pool;
+
+ TimestampPool timestamp_pool;
+
+ std::deque<
+ std::vector<std::pair<TimestampPool::Handle, TimestampPool::Handle>>>
+ tracked_queues;
+
+ public:
+ QueueContext(const VkDevice& device, const VkQueue queue,
+ const std::uint32_t& queue_family_index,
+ const VkuDeviceDispatchTable& vtable);
+ QueueContext(const QueueContext&) = delete;
+ QueueContext(QueueContext&&) = delete;
+ QueueContext operator==(const QueueContext&) = delete;
+ QueueContext operator==(QueueContext&&) = delete;
+ ~QueueContext();
+};
+
+}; // namespace low_latency
+
+#endif \ No newline at end of file