From 2a032600c615a77a18630221eca7eb4861a45d67 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Thu, 21 Dec 2023 12:41:35 +0100 Subject: [PATCH] panvk: Move the panvk_priv_bo logic to panvk_priv_bo.{c,h} Signed-off-by: Boris Brezillon Acked-by: Erik Faye-Lund Reviewed-by: Mary Guillemard Reviewed-by: Rebecca Mckeever Part-of: --- src/panfrost/vulkan/meson.build | 2 +- src/panfrost/vulkan/panvk_descriptor_set.c | 1 + src/panfrost/vulkan/panvk_mempool.c | 1 + src/panfrost/vulkan/panvk_pipeline.c | 1 + .../{panvk_device.c => panvk_priv_bo.c} | 69 +++---------------- src/panfrost/vulkan/panvk_priv_bo.h | 33 +++++++++ src/panfrost/vulkan/panvk_private.h | 18 ----- src/panfrost/vulkan/panvk_vX_buffer_view.c | 1 + src/panfrost/vulkan/panvk_vX_cmd_buffer.c | 1 + src/panfrost/vulkan/panvk_vX_descriptor_set.c | 1 + src/panfrost/vulkan/panvk_vX_device.c | 1 + src/panfrost/vulkan/panvk_vX_image_view.c | 1 + src/panfrost/vulkan/panvk_vX_pipeline.c | 1 + src/panfrost/vulkan/panvk_vX_queue.c | 1 + 14 files changed, 52 insertions(+), 80 deletions(-) rename src/panfrost/vulkan/{panvk_device.c => panvk_priv_bo.c} (56%) create mode 100644 src/panfrost/vulkan/panvk_priv_bo.h diff --git a/src/panfrost/vulkan/meson.build b/src/panfrost/vulkan/meson.build index c0bb04e5e04..36c4cdf9673 100644 --- a/src/panfrost/vulkan/meson.build +++ b/src/panfrost/vulkan/meson.build @@ -38,7 +38,6 @@ libpanvk_files = files( 'panvk_buffer.c', 'panvk_cmd_buffer.c', 'panvk_cmd_pool.c', - 'panvk_device.c', 'panvk_device_memory.c', 'panvk_descriptor_set.c', 'panvk_event.c', @@ -48,6 +47,7 @@ libpanvk_files = files( 'panvk_physical_device.c', 'panvk_pipeline.c', 'panvk_private.h', + 'panvk_priv_bo.c', 'panvk_query.c', 'panvk_shader.c', 'panvk_wsi.c', diff --git a/src/panfrost/vulkan/panvk_descriptor_set.c b/src/panfrost/vulkan/panvk_descriptor_set.c index 709b55b01f7..723ce15f50d 100644 --- a/src/panfrost/vulkan/panvk_descriptor_set.c +++ b/src/panfrost/vulkan/panvk_descriptor_set.c @@ -27,6 +27,7 @@ #include "panvk_descriptor_set.h" #include "panvk_device.h" +#include "panvk_priv_bo.h" #include "panvk_private.h" #include diff --git a/src/panfrost/vulkan/panvk_mempool.c b/src/panfrost/vulkan/panvk_mempool.c index 5aa81eda4c1..d0a71e44b18 100644 --- a/src/panfrost/vulkan/panvk_mempool.c +++ b/src/panfrost/vulkan/panvk_mempool.c @@ -24,6 +24,7 @@ */ #include "panvk_mempool.h" +#include "panvk_priv_bo.h" #include "panvk_private.h" void diff --git a/src/panfrost/vulkan/panvk_pipeline.c b/src/panfrost/vulkan/panvk_pipeline.c index 734f7c61ac9..9ca48cdbf9a 100644 --- a/src/panfrost/vulkan/panvk_pipeline.c +++ b/src/panfrost/vulkan/panvk_pipeline.c @@ -28,6 +28,7 @@ #include "panvk_pipeline.h" #include "panvk_device.h" +#include "panvk_priv_bo.h" #include "panvk_private.h" #include "nir/nir.h" diff --git a/src/panfrost/vulkan/panvk_device.c b/src/panfrost/vulkan/panvk_priv_bo.c similarity index 56% rename from src/panfrost/vulkan/panvk_device.c rename to src/panfrost/vulkan/panvk_priv_bo.c index e52b9ad7d80..efcc04e1e41 100644 --- a/src/panfrost/vulkan/panvk_device.c +++ b/src/panfrost/vulkan/panvk_priv_bo.c @@ -1,71 +1,18 @@ /* * Copyright © 2021 Collabora Ltd. - * - * Derived from tu_device.c which is: - * Copyright © 2016 Red Hat. - * Copyright © 2016 Bas Nieuwenhuizen - * Copyright © 2015 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. + * SPDX-License-Identifier: MIT */ +#include + +#include "vk_alloc.h" + #include "panvk_device.h" -#include "panvk_device_memory.h" -#include "panvk_image.h" -#include "panvk_instance.h" -#include "panvk_physical_device.h" -#include "panvk_private.h" -#include "panvk_queue.h" +#include "panvk_priv_bo.h" -#include "decode.h" +#include "kmod/pan_kmod.h" -#include "pan_encoder.h" -#include "pan_props.h" -#include "pan_samples.h" -#include "pan_util.h" - -#include "vk_cmd_enqueue_entrypoints.h" -#include "vk_common_entrypoints.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "drm-uapi/panfrost_drm.h" - -#include "util/disk_cache.h" -#include "util/strtod.h" -#include "util/u_debug.h" -#include "vk_drm_syncobj.h" -#include "vk_format.h" -#include "vk_util.h" - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR -#include "wayland-drm-client-protocol.h" -#include -#endif +#include "genxml/decode.h" struct panvk_priv_bo * panvk_priv_bo_create(struct panvk_device *dev, size_t size, uint32_t flags, diff --git a/src/panfrost/vulkan/panvk_priv_bo.h b/src/panfrost/vulkan/panvk_priv_bo.h new file mode 100644 index 00000000000..381027c795a --- /dev/null +++ b/src/panfrost/vulkan/panvk_priv_bo.h @@ -0,0 +1,33 @@ +/* + * Copyright © 2021 Collabora Ltd. + * SPDX-License-Identifier: MIT + */ + +#ifndef PANVK_PRIV_BO_H +#define PANVK_PRIV_BO_H + +#include + +#include "panfrost-job.h" + +struct panvk_kmod_bo; + +/* Used for internal object allocation. */ +struct panvk_priv_bo { + struct panvk_device *dev; + struct pan_kmod_bo *bo; + struct { + mali_ptr dev; + void *host; + } addr; +}; + +struct panvk_priv_bo *panvk_priv_bo_create(struct panvk_device *dev, + size_t size, uint32_t flags, + const VkAllocationCallbacks *alloc, + VkSystemAllocationScope scope); + +void panvk_priv_bo_destroy(struct panvk_priv_bo *bo, + const VkAllocationCallbacks *alloc); + +#endif diff --git a/src/panfrost/vulkan/panvk_private.h b/src/panfrost/vulkan/panvk_private.h index 0685dfa1d2f..8075e58998b 100644 --- a/src/panfrost/vulkan/panvk_private.h +++ b/src/panfrost/vulkan/panvk_private.h @@ -109,24 +109,6 @@ struct panvk_device; struct panvk_pipeline_layout; struct panvk_queue; -/* Used for internal object allocation. */ -struct panvk_priv_bo { - struct panvk_device *dev; - struct pan_kmod_bo *bo; - struct { - mali_ptr dev; - void *host; - } addr; -}; - -struct panvk_priv_bo *panvk_priv_bo_create(struct panvk_device *dev, - size_t size, uint32_t flags, - const VkAllocationCallbacks *alloc, - VkSystemAllocationScope scope); - -void panvk_priv_bo_destroy(struct panvk_priv_bo *bo, - const VkAllocationCallbacks *alloc); - VkResult panvk_wsi_init(struct panvk_physical_device *physical_device); void panvk_wsi_finish(struct panvk_physical_device *physical_device); diff --git a/src/panfrost/vulkan/panvk_vX_buffer_view.c b/src/panfrost/vulkan/panvk_vX_buffer_view.c index 663fac93120..17cc8191b1a 100644 --- a/src/panfrost/vulkan/panvk_vX_buffer_view.c +++ b/src/panfrost/vulkan/panvk_vX_buffer_view.c @@ -14,6 +14,7 @@ #include "panvk_buffer.h" #include "panvk_buffer_view.h" #include "panvk_device.h" +#include "panvk_priv_bo.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 8c07bd89d55..a769fa17d14 100644 --- a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c +++ b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c @@ -39,6 +39,7 @@ #include "panvk_physical_device.h" #include "panvk_pipeline.h" #include "panvk_pipeline_layout.h" +#include "panvk_priv_bo.h" #include "panvk_private.h" #include "pan_blitter.h" diff --git a/src/panfrost/vulkan/panvk_vX_descriptor_set.c b/src/panfrost/vulkan/panvk_vX_descriptor_set.c index 733f7f3e2b7..02d0a32ec37 100644 --- a/src/panfrost/vulkan/panvk_vX_descriptor_set.c +++ b/src/panfrost/vulkan/panvk_vX_descriptor_set.c @@ -31,6 +31,7 @@ #include "panvk_device.h" #include "panvk_image.h" #include "panvk_image_view.h" +#include "panvk_priv_bo.h" #include "panvk_private.h" #include diff --git a/src/panfrost/vulkan/panvk_vX_device.c b/src/panfrost/vulkan/panvk_vX_device.c index 83fa8523301..e7b3aa29396 100644 --- a/src/panfrost/vulkan/panvk_vX_device.c +++ b/src/panfrost/vulkan/panvk_vX_device.c @@ -17,6 +17,7 @@ #include "panvk_instance.h" #include "panvk_macros.h" #include "panvk_physical_device.h" +#include "panvk_priv_bo.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 38627c0046b..b42816dfaa9 100644 --- a/src/panfrost/vulkan/panvk_vX_image_view.c +++ b/src/panfrost/vulkan/panvk_vX_image_view.c @@ -14,6 +14,7 @@ #include "panvk_device.h" #include "panvk_image.h" #include "panvk_image_view.h" +#include "panvk_priv_bo.h" #include "panvk_private.h" #include "genxml/gen_macros.h" diff --git a/src/panfrost/vulkan/panvk_vX_pipeline.c b/src/panfrost/vulkan/panvk_vX_pipeline.c index bbd5954cb11..6cfa4afcb6d 100644 --- a/src/panfrost/vulkan/panvk_vX_pipeline.c +++ b/src/panfrost/vulkan/panvk_vX_pipeline.c @@ -30,6 +30,7 @@ #include "panvk_device.h" #include "panvk_pipeline.h" #include "panvk_pipeline_layout.h" +#include "panvk_priv_bo.h" #include "panvk_private.h" #include "panvk_shader.h" diff --git a/src/panfrost/vulkan/panvk_vX_queue.c b/src/panfrost/vulkan/panvk_vX_queue.c index 14ac18990a1..d2e040317a5 100644 --- a/src/panfrost/vulkan/panvk_vX_queue.c +++ b/src/panfrost/vulkan/panvk_vX_queue.c @@ -20,6 +20,7 @@ #include "panvk_image_view.h" #include "panvk_instance.h" #include "panvk_physical_device.h" +#include "panvk_priv_bo.h" #include "panvk_private.h" #include "panvk_queue.h"