aboutsummaryrefslogtreecommitdiff
path: root/src/device_context.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/device_context.hh')
-rw-r--r--src/device_context.hh35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/device_context.hh b/src/device_context.hh
new file mode 100644
index 0000000..a936d6d
--- /dev/null
+++ b/src/device_context.hh
@@ -0,0 +1,35 @@
+#ifndef DEVICE_CONTEXT_HH_
+#define DEVICE_CONTEXT_HH_
+
+#include <memory>
+#include <unordered_map>
+
+#include <vulkan/utility/vk_dispatch_table.h>
+#include <vulkan/vulkan.hpp>
+
+#include "instance_context.hh"
+
+namespace low_latency {
+
+class QueueContext;
+
+struct DeviceContext {
+ InstanceContext& instance;
+
+ const VkDevice device;
+ const VkuDeviceDispatchTable vtable;
+
+ std::unordered_map<VkQueue, std::unique_ptr<QueueContext>> queue_contexts;
+
+ public:
+ DeviceContext(InstanceContext& parent_instance, const VkDevice& device,
+ VkuDeviceDispatchTable&& vtable);
+ DeviceContext(const DeviceContext&) = delete;
+ DeviceContext(DeviceContext&&) = delete;
+ DeviceContext operator==(const DeviceContext&) = delete;
+ DeviceContext operator==(DeviceContext&&) = delete;
+};
+
+}; // namespace low_latency
+
+#endif \ No newline at end of file