panvk: Move panvk_device definition to panvk_device.h

Signed-off-by: Boris Brezillon <[email protected]>
Acked-by: Erik Faye-Lund <[email protected]>
Reviewed-by: Mary Guillemard <[email protected]>
Reviewed-by: Rebecca Mckeever <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28170>
diff --git a/src/panfrost/vulkan/panvk_buffer.c b/src/panfrost/vulkan/panvk_buffer.c
index 09e010b..66048cf 100644
--- a/src/panfrost/vulkan/panvk_buffer.c
+++ b/src/panfrost/vulkan/panvk_buffer.c
@@ -4,6 +4,7 @@
  */
 
 #include "panvk_buffer.h"
+#include "panvk_device.h"
 #include "panvk_device_memory.h"
 #include "panvk_private.h"
 
diff --git a/src/panfrost/vulkan/panvk_cmd_buffer.c b/src/panfrost/vulkan/panvk_cmd_buffer.c
index 58112dc..e528359 100644
--- a/src/panfrost/vulkan/panvk_cmd_buffer.c
+++ b/src/panfrost/vulkan/panvk_cmd_buffer.c
@@ -28,6 +28,7 @@
 
 #include "panvk_buffer.h"
 #include "panvk_cmd_pool.h"
+#include "panvk_device.h"
 #include "panvk_physical_device.h"
 #include "panvk_pipeline.h"
 #include "panvk_pipeline_layout.h"
diff --git a/src/panfrost/vulkan/panvk_cmd_pool.c b/src/panfrost/vulkan/panvk_cmd_pool.c
index d256ab6..5a3a790 100644
--- a/src/panfrost/vulkan/panvk_cmd_pool.c
+++ b/src/panfrost/vulkan/panvk_cmd_pool.c
@@ -10,6 +10,7 @@
  */
 
 #include "panvk_cmd_pool.h"
+#include "panvk_device.h"
 #include "panvk_private.h"
 
 VKAPI_ATTR VkResult VKAPI_CALL
diff --git a/src/panfrost/vulkan/panvk_descriptor_set.c b/src/panfrost/vulkan/panvk_descriptor_set.c
index 13aa159..709b55b 100644
--- a/src/panfrost/vulkan/panvk_descriptor_set.c
+++ b/src/panfrost/vulkan/panvk_descriptor_set.c
@@ -26,6 +26,7 @@
  */
 
 #include "panvk_descriptor_set.h"
+#include "panvk_device.h"
 #include "panvk_private.h"
 
 #include <assert.h>
diff --git a/src/panfrost/vulkan/panvk_device.c b/src/panfrost/vulkan/panvk_device.c
index 7d8b12a..e52b9ad 100644
--- a/src/panfrost/vulkan/panvk_device.c
+++ b/src/panfrost/vulkan/panvk_device.c
@@ -26,6 +26,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include "panvk_device.h"
 #include "panvk_device_memory.h"
 #include "panvk_image.h"
 #include "panvk_instance.h"
diff --git a/src/panfrost/vulkan/panvk_device.h b/src/panfrost/vulkan/panvk_device.h
new file mode 100644
index 0000000..cefbed0
--- /dev/null
+++ b/src/panfrost/vulkan/panvk_device.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright © 2021 Collabora Ltd.
+ * SPDX-License-Identifier: MIT
+ */
+
+#ifndef PANVK_DEVICE_H
+#define PANVK_DEVICE_H
+
+#include <stdint.h>
+
+#include "vk_device.h"
+
+#include "panvk_instance.h"
+#include "panvk_macros.h"
+#include "panvk_mempool.h"
+#include "panvk_meta.h"
+#include "panvk_physical_device.h"
+
+#include "kmod/pan_kmod.h"
+#include "util/pan_ir.h"
+#include "pan_blend.h"
+#include "pan_blitter.h"
+
+#define PANVK_MAX_QUEUE_FAMILIES 1
+
+struct panvk_device {
+   struct vk_device vk;
+
+   struct {
+      struct pan_kmod_vm *vm;
+      struct pan_kmod_dev *dev;
+      struct pan_kmod_allocator allocator;
+   } kmod;
+
+   struct panvk_priv_bo *tiler_heap;
+   struct panvk_priv_bo *sample_positions;
+
+   struct panvk_meta meta;
+
+   struct vk_device_dispatch_table cmd_dispatch;
+
+   struct panvk_queue *queues[PANVK_MAX_QUEUE_FAMILIES];
+   int queue_count[PANVK_MAX_QUEUE_FAMILIES];
+
+   struct {
+      struct pandecode_context *decode_ctx;
+   } debug;
+};
+
+VK_DEFINE_HANDLE_CASTS(panvk_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE)
+
+static inline struct panvk_device *
+to_panvk_device(struct vk_device *dev)
+{
+   return container_of(dev, struct panvk_device, vk);
+}
+
+#if PAN_ARCH
+VkResult
+panvk_per_arch(create_device)(struct panvk_physical_device *physical_device,
+                              const VkDeviceCreateInfo *pCreateInfo,
+                              const VkAllocationCallbacks *pAllocator,
+                              VkDevice *pDevice);
+
+void panvk_per_arch(destroy_device)(struct panvk_device *device,
+                                    const VkAllocationCallbacks *pAllocator);
+#endif
+
+#endif
diff --git a/src/panfrost/vulkan/panvk_device_memory.c b/src/panfrost/vulkan/panvk_device_memory.c
index d2290f6..101ff24 100644
--- a/src/panfrost/vulkan/panvk_device_memory.c
+++ b/src/panfrost/vulkan/panvk_device_memory.c
@@ -7,6 +7,7 @@
 
 #include "vulkan/util/vk_util.h"
 
+#include "panvk_device.h"
 #include "panvk_device_memory.h"
 #include "panvk_private.h"
 
diff --git a/src/panfrost/vulkan/panvk_event.c b/src/panfrost/vulkan/panvk_event.c
index c69a680..5942148 100644
--- a/src/panfrost/vulkan/panvk_event.c
+++ b/src/panfrost/vulkan/panvk_event.c
@@ -4,6 +4,7 @@
  */
 
 #include "panvk_event.h"
+#include "panvk_device.h"
 #include "panvk_private.h"
 
 VKAPI_ATTR VkResult VKAPI_CALL
diff --git a/src/panfrost/vulkan/panvk_image.c b/src/panfrost/vulkan/panvk_image.c
index 529a4bf..b7139e4 100644
--- a/src/panfrost/vulkan/panvk_image.c
+++ b/src/panfrost/vulkan/panvk_image.c
@@ -28,6 +28,7 @@
 
 #include "pan_props.h"
 
+#include "panvk_device.h"
 #include "panvk_device_memory.h"
 #include "panvk_image.h"
 #include "panvk_instance.h"
diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c
index cd0532c..11f1483 100644
--- a/src/panfrost/vulkan/panvk_physical_device.c
+++ b/src/panfrost/vulkan/panvk_physical_device.c
@@ -18,6 +18,8 @@
 #include "vk_log.h"
 #include "vk_util.h"
 
+#include "panvk_device.h"
+#include "panvk_instance.h"
 #include "panvk_physical_device.h"
 #include "panvk_private.h"
 
diff --git a/src/panfrost/vulkan/panvk_pipeline.c b/src/panfrost/vulkan/panvk_pipeline.c
index b53b909..734f7c6 100644
--- a/src/panfrost/vulkan/panvk_pipeline.c
+++ b/src/panfrost/vulkan/panvk_pipeline.c
@@ -27,6 +27,7 @@
  */
 
 #include "panvk_pipeline.h"
+#include "panvk_device.h"
 #include "panvk_private.h"
 
 #include "nir/nir.h"
diff --git a/src/panfrost/vulkan/panvk_private.h b/src/panfrost/vulkan/panvk_private.h
index b7e9842..80789ec 100644
--- a/src/panfrost/vulkan/panvk_private.h
+++ b/src/panfrost/vulkan/panvk_private.h
@@ -133,49 +133,6 @@
 VkResult panvk_wsi_init(struct panvk_physical_device *physical_device);
 void panvk_wsi_finish(struct panvk_physical_device *physical_device);
 
-#define PANVK_MAX_QUEUE_FAMILIES 1
-
-struct panvk_device {
-   struct vk_device vk;
-
-   struct {
-      struct pan_kmod_vm *vm;
-      struct pan_kmod_dev *dev;
-      struct pan_kmod_allocator allocator;
-   } kmod;
-
-   struct panvk_priv_bo *tiler_heap;
-   struct panvk_priv_bo *sample_positions;
-
-   struct panvk_meta meta;
-
-   struct vk_device_dispatch_table cmd_dispatch;
-
-   struct panvk_queue *queues[PANVK_MAX_QUEUE_FAMILIES];
-   int queue_count[PANVK_MAX_QUEUE_FAMILIES];
-
-   struct {
-      struct pandecode_context *decode_ctx;
-   } debug;
-};
-
-static inline struct panvk_device *
-to_panvk_device(struct vk_device *dev)
-{
-   return container_of(dev, struct panvk_device, vk);
-}
-
-#if PAN_ARCH
-VkResult
-panvk_per_arch(create_device)(struct panvk_physical_device *physical_device,
-                              const VkDeviceCreateInfo *pCreateInfo,
-                              const VkAllocationCallbacks *pAllocator,
-                              VkDevice *pDevice);
-
-void panvk_per_arch(destroy_device)(struct panvk_device *device,
-                                    const VkAllocationCallbacks *pAllocator);
-#endif
-
 #define TILER_DESC_WORDS 56
 
 struct panvk_batch {
@@ -345,7 +302,6 @@
 
 VK_DEFINE_HANDLE_CASTS(panvk_cmd_buffer, vk.base, VkCommandBuffer,
                        VK_OBJECT_TYPE_COMMAND_BUFFER)
-VK_DEFINE_HANDLE_CASTS(panvk_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE)
 
 #ifdef PAN_ARCH
 #include "panvk_vX_cmd_buffer.h"
diff --git a/src/panfrost/vulkan/panvk_shader.c b/src/panfrost/vulkan/panvk_shader.c
index 1876684..fb178a1 100644
--- a/src/panfrost/vulkan/panvk_shader.c
+++ b/src/panfrost/vulkan/panvk_shader.c
@@ -25,6 +25,7 @@
  */
 
 #include "panvk_shader.h"
+#include "panvk_device.h"
 #include "panvk_private.h"
 
 #include "pan_shader.h"
diff --git a/src/panfrost/vulkan/panvk_vX_buffer_view.c b/src/panfrost/vulkan/panvk_vX_buffer_view.c
index 1a418d9..663fac9 100644
--- a/src/panfrost/vulkan/panvk_vX_buffer_view.c
+++ b/src/panfrost/vulkan/panvk_vX_buffer_view.c
@@ -13,6 +13,7 @@
 
 #include "panvk_buffer.h"
 #include "panvk_buffer_view.h"
+#include "panvk_device.h"
 #include "panvk_private.h"
 
 #include "vk_format.h"
diff --git a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
index 878b306..3f39caf 100644
--- a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
+++ b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
@@ -30,6 +30,7 @@
 
 #include "panvk_buffer.h"
 #include "panvk_cmd_pool.h"
+#include "panvk_device.h"
 #include "panvk_event.h"
 #include "panvk_image.h"
 #include "panvk_image_view.h"
diff --git a/src/panfrost/vulkan/panvk_vX_descriptor_set.c b/src/panfrost/vulkan/panvk_vX_descriptor_set.c
index 50b7ebe..733f7f3 100644
--- a/src/panfrost/vulkan/panvk_vX_descriptor_set.c
+++ b/src/panfrost/vulkan/panvk_vX_descriptor_set.c
@@ -28,6 +28,7 @@
 #include "genxml/gen_macros.h"
 
 #include "panvk_buffer_view.h"
+#include "panvk_device.h"
 #include "panvk_image.h"
 #include "panvk_image_view.h"
 #include "panvk_private.h"
diff --git a/src/panfrost/vulkan/panvk_vX_descriptor_set_layout.c b/src/panfrost/vulkan/panvk_vX_descriptor_set_layout.c
index a0a7808..fdda9eb 100644
--- a/src/panfrost/vulkan/panvk_vX_descriptor_set_layout.c
+++ b/src/panfrost/vulkan/panvk_vX_descriptor_set_layout.c
@@ -7,6 +7,7 @@
 
 #include "panvk_descriptor_set.h"
 #include "panvk_descriptor_set_layout.h"
+#include "panvk_device.h"
 #include "panvk_pipeline_layout.h"
 #include "panvk_private.h"
 #include "panvk_sampler.h"
diff --git a/src/panfrost/vulkan/panvk_vX_device.c b/src/panfrost/vulkan/panvk_vX_device.c
index f31e5af..75ab32e 100644
--- a/src/panfrost/vulkan/panvk_vX_device.c
+++ b/src/panfrost/vulkan/panvk_vX_device.c
@@ -12,10 +12,10 @@
 #include "vk_cmd_enqueue_entrypoints.h"
 #include "vk_common_entrypoints.h"
 
+#include "panvk_device.h"
 #include "panvk_instance.h"
 #include "panvk_macros.h"
 #include "panvk_physical_device.h"
-#include "panvk_private.h"
 #include "panvk_queue.h"
 
 #include "genxml/decode.h"
diff --git a/src/panfrost/vulkan/panvk_vX_image_view.c b/src/panfrost/vulkan/panvk_vX_image_view.c
index 96b6e69..38627c0 100644
--- a/src/panfrost/vulkan/panvk_vX_image_view.c
+++ b/src/panfrost/vulkan/panvk_vX_image_view.c
@@ -11,6 +11,7 @@
 
 #include "vk_format.h"
 
+#include "panvk_device.h"
 #include "panvk_image.h"
 #include "panvk_image_view.h"
 #include "panvk_private.h"
diff --git a/src/panfrost/vulkan/panvk_vX_meta.c b/src/panfrost/vulkan/panvk_vX_meta.c
index 462ca11..b5dd715 100644
--- a/src/panfrost/vulkan/panvk_vX_meta.c
+++ b/src/panfrost/vulkan/panvk_vX_meta.c
@@ -27,6 +27,7 @@
 #include "pan_encoder.h"
 #include "pan_shader.h"
 
+#include "panvk_device.h"
 #include "panvk_private.h"
 
 #include "vk_format.h"
diff --git a/src/panfrost/vulkan/panvk_vX_meta_blit.c b/src/panfrost/vulkan/panvk_vX_meta_blit.c
index 7f7adff..e81b83f 100644
--- a/src/panfrost/vulkan/panvk_vX_meta_blit.c
+++ b/src/panfrost/vulkan/panvk_vX_meta_blit.c
@@ -26,6 +26,7 @@
 #include "pan_blitter.h"
 #include "pan_props.h"
 
+#include "panvk_device.h"
 #include "panvk_image.h"
 #include "panvk_physical_device.h"
 #include "panvk_private.h"
diff --git a/src/panfrost/vulkan/panvk_vX_meta_clear.c b/src/panfrost/vulkan/panvk_vX_meta_clear.c
index edc56f92..986eacc 100644
--- a/src/panfrost/vulkan/panvk_vX_meta_clear.c
+++ b/src/panfrost/vulkan/panvk_vX_meta_clear.c
@@ -27,6 +27,7 @@
 #include "pan_props.h"
 #include "pan_shader.h"
 
+#include "panvk_device.h"
 #include "panvk_image.h"
 #include "panvk_meta.h"
 #include "panvk_physical_device.h"
diff --git a/src/panfrost/vulkan/panvk_vX_meta_copy.c b/src/panfrost/vulkan/panvk_vX_meta_copy.c
index 2bdb953..fb56ab3 100644
--- a/src/panfrost/vulkan/panvk_vX_meta_copy.c
+++ b/src/panfrost/vulkan/panvk_vX_meta_copy.c
@@ -29,6 +29,7 @@
 #include "pan_shader.h"
 
 #include "panvk_buffer.h"
+#include "panvk_device.h"
 #include "panvk_image.h"
 #include "panvk_physical_device.h"
 #include "panvk_private.h"
diff --git a/src/panfrost/vulkan/panvk_vX_nir_lower_descriptors.c b/src/panfrost/vulkan/panvk_vX_nir_lower_descriptors.c
index e74c823..eef7333 100644
--- a/src/panfrost/vulkan/panvk_vX_nir_lower_descriptors.c
+++ b/src/panfrost/vulkan/panvk_vX_nir_lower_descriptors.c
@@ -27,6 +27,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include "panvk_device.h"
 #include "panvk_pipeline_layout.h"
 #include "panvk_private.h"
 #include "panvk_shader.h"
diff --git a/src/panfrost/vulkan/panvk_vX_pipeline.c b/src/panfrost/vulkan/panvk_vX_pipeline.c
index 7673b82..4122c34 100644
--- a/src/panfrost/vulkan/panvk_vX_pipeline.c
+++ b/src/panfrost/vulkan/panvk_vX_pipeline.c
@@ -26,6 +26,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include "panvk_device.h"
 #include "panvk_pipeline.h"
 #include "panvk_pipeline_layout.h"
 #include "panvk_private.h"
diff --git a/src/panfrost/vulkan/panvk_vX_pipeline_layout.c b/src/panfrost/vulkan/panvk_vX_pipeline_layout.c
index 73be753..63a59b8 100644
--- a/src/panfrost/vulkan/panvk_vX_pipeline_layout.c
+++ b/src/panfrost/vulkan/panvk_vX_pipeline_layout.c
@@ -6,6 +6,7 @@
 
 #include "genxml/gen_macros.h"
 
+#include "panvk_device.h"
 #include "panvk_entrypoints.h"
 #include "panvk_macros.h"
 #include "panvk_pipeline_layout.h"
diff --git a/src/panfrost/vulkan/panvk_vX_queue.c b/src/panfrost/vulkan/panvk_vX_queue.c
index bbcb2e1..62ea896 100644
--- a/src/panfrost/vulkan/panvk_vX_queue.c
+++ b/src/panfrost/vulkan/panvk_vX_queue.c
@@ -13,6 +13,7 @@
 
 #include "decode.h"
 
+#include "panvk_device.h"
 #include "panvk_event.h"
 #include "panvk_image.h"
 #include "panvk_image_view.h"
diff --git a/src/panfrost/vulkan/panvk_vX_sampler.c b/src/panfrost/vulkan/panvk_vX_sampler.c
index fdf0303..3fb5908 100644
--- a/src/panfrost/vulkan/panvk_vX_sampler.c
+++ b/src/panfrost/vulkan/panvk_vX_sampler.c
@@ -5,6 +5,7 @@
 
 #include "genxml/gen_macros.h"
 
+#include "panvk_device.h"
 #include "panvk_private.h"
 #include "panvk_sampler.h"
 
diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c
index 7bf7af8..2b1c106 100644
--- a/src/panfrost/vulkan/panvk_vX_shader.c
+++ b/src/panfrost/vulkan/panvk_vX_shader.c
@@ -29,6 +29,7 @@
 
 #include "genxml/gen_macros.h"
 
+#include "panvk_device.h"
 #include "panvk_instance.h"
 #include "panvk_physical_device.h"
 #include "panvk_pipeline_layout.h"