From adab7d3fccc1c8740f080a5cb96c9acd636862ef Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Tue, 19 Dec 2023 15:31:51 +0100 Subject: [PATCH] panvk: Move VkImageView logic to its own source files 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_image.c | 14 ------ src/panfrost/vulkan/panvk_image_view.h | 35 +++++++++++++++ src/panfrost/vulkan/panvk_private.h | 17 -------- 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 + ...panvk_vX_image.c => panvk_vX_image_view.c} | 43 ++++++++----------- 8 files changed, 57 insertions(+), 57 deletions(-) create mode 100644 src/panfrost/vulkan/panvk_image_view.h rename src/panfrost/vulkan/{panvk_vX_image.c => panvk_vX_image_view.c} (80%) diff --git a/src/panfrost/vulkan/meson.build b/src/panfrost/vulkan/meson.build index 701ada4b08f..2bfb61e82c1 100644 --- a/src/panfrost/vulkan/meson.build +++ b/src/panfrost/vulkan/meson.build @@ -65,7 +65,7 @@ foreach arch : ['6', '7'] 'panvk_vX_cs.c', 'panvk_vX_descriptor_set.c', 'panvk_vX_device.c', - 'panvk_vX_image.c', + 'panvk_vX_image_view.c', 'panvk_vX_meta.c', 'panvk_vX_meta_blit.c', 'panvk_vX_meta_copy.c', diff --git a/src/panfrost/vulkan/panvk_image.c b/src/panfrost/vulkan/panvk_image.c index 4a27af79754..6fd8ef32c21 100644 --- a/src/panfrost/vulkan/panvk_image.c +++ b/src/panfrost/vulkan/panvk_image.c @@ -259,20 +259,6 @@ panvk_GetImageSubresourceLayout(VkDevice _device, VkImage _image, pLayout->depthPitch = slice_layout->surface_stride; } -VKAPI_ATTR void VKAPI_CALL -panvk_DestroyImageView(VkDevice _device, VkImageView _view, - const VkAllocationCallbacks *pAllocator) -{ - VK_FROM_HANDLE(panvk_device, device, _device); - VK_FROM_HANDLE(panvk_image_view, view, _view); - - if (!view) - return; - - panvk_priv_bo_destroy(view->bo, NULL); - vk_image_view_destroy(&device->vk, pAllocator, &view->vk); -} - VKAPI_ATTR void VKAPI_CALL panvk_GetImageMemoryRequirements2(VkDevice device, const VkImageMemoryRequirementsInfo2 *pInfo, diff --git a/src/panfrost/vulkan/panvk_image_view.h b/src/panfrost/vulkan/panvk_image_view.h new file mode 100644 index 00000000000..0927694a04c --- /dev/null +++ b/src/panfrost/vulkan/panvk_image_view.h @@ -0,0 +1,35 @@ +/* + * Copyright © 2021 Collabora Ltd. + * SPDX-License-Identifier: MIT + */ + +#ifndef PANVK_IMAGE_VIEW_H +#define PANVK_IMAGE_VIEW_H + +#include + +#include "vk_image.h" + +#include "pan_texture.h" + +struct panvk_priv_bo; + +#define TEXTURE_DESC_WORDS 8 +#define ATTRIB_BUF_DESC_WORDS 4 + +struct panvk_image_view { + struct vk_image_view vk; + + struct pan_image_view pview; + + struct panvk_priv_bo *bo; + struct { + uint32_t tex[TEXTURE_DESC_WORDS]; + uint32_t img_attrib_buf[ATTRIB_BUF_DESC_WORDS * 2]; + } descs; +}; + +VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_image_view, vk.base, VkImageView, + VK_OBJECT_TYPE_IMAGE_VIEW); + +#endif diff --git a/src/panfrost/vulkan/panvk_private.h b/src/panfrost/vulkan/panvk_private.h index 7f5b4195341..8accb663859 100644 --- a/src/panfrost/vulkan/panvk_private.h +++ b/src/panfrost/vulkan/panvk_private.h @@ -754,21 +754,6 @@ panvk_shader_create(struct panvk_device *dev, gl_shader_stage stage, void panvk_shader_destroy(struct panvk_device *dev, struct panvk_shader *shader, const VkAllocationCallbacks *alloc); -#define TEXTURE_DESC_WORDS 8 -#define ATTRIB_BUF_DESC_WORDS 4 - -struct panvk_image_view { - struct vk_image_view vk; - - struct pan_image_view pview; - - struct panvk_priv_bo *bo; - struct { - uint32_t tex[TEXTURE_DESC_WORDS]; - uint32_t img_attrib_buf[ATTRIB_BUF_DESC_WORDS * 2]; - } descs; -}; - 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) @@ -788,8 +773,6 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_descriptor_set_layout, vk.base, VkDescriptorSetLayout, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT) VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_event, base, VkEvent, VK_OBJECT_TYPE_EVENT) -VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_image_view, vk.base, VkImageView, - VK_OBJECT_TYPE_IMAGE_VIEW); VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_pipeline_layout, vk.base, VkPipelineLayout, VK_OBJECT_TYPE_PIPELINE_LAYOUT) diff --git a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c index 3fae4ae259c..ad5e0bffd36 100644 --- a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c +++ b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c @@ -31,6 +31,7 @@ #include "panvk_buffer.h" #include "panvk_cs.h" #include "panvk_image.h" +#include "panvk_image_view.h" #include "panvk_pipeline.h" #include "panvk_private.h" diff --git a/src/panfrost/vulkan/panvk_vX_descriptor_set.c b/src/panfrost/vulkan/panvk_vX_descriptor_set.c index 64c728f18ca..f0d9d1d0f3e 100644 --- a/src/panfrost/vulkan/panvk_vX_descriptor_set.c +++ b/src/panfrost/vulkan/panvk_vX_descriptor_set.c @@ -29,6 +29,7 @@ #include "panvk_buffer_view.h" #include "panvk_image.h" +#include "panvk_image_view.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 5be4f3ee208..6e295d78299 100644 --- a/src/panfrost/vulkan/panvk_vX_device.c +++ b/src/panfrost/vulkan/panvk_vX_device.c @@ -32,6 +32,7 @@ #include "panvk_cs.h" #include "panvk_image.h" +#include "panvk_image_view.h" #include "panvk_private.h" #include "vk_drm_syncobj.h" diff --git a/src/panfrost/vulkan/panvk_vX_image.c b/src/panfrost/vulkan/panvk_vX_image_view.c similarity index 80% rename from src/panfrost/vulkan/panvk_vX_image.c rename to src/panfrost/vulkan/panvk_vX_image_view.c index ca7c0d6f851..96b6e69d116 100644 --- a/src/panfrost/vulkan/panvk_vX_image.c +++ b/src/panfrost/vulkan/panvk_vX_image_view.c @@ -6,37 +6,16 @@ * 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 "genxml/gen_macros.h" +#include "vk_format.h" #include "panvk_image.h" +#include "panvk_image_view.h" #include "panvk_private.h" -#include "drm-uapi/drm_fourcc.h" -#include "util/u_atomic.h" -#include "util/u_debug.h" -#include "vk_format.h" -#include "vk_object.h" -#include "vk_util.h" +#include "genxml/gen_macros.h" static enum mali_texture_dimension panvk_view_type_to_mali_tex_dim(VkImageViewType type) @@ -172,3 +151,17 @@ panvk_per_arch(CreateImageView)(VkDevice _device, *pView = panvk_image_view_to_handle(view); return VK_SUCCESS; } + +VKAPI_ATTR void VKAPI_CALL +panvk_per_arch(DestroyImageView)(VkDevice _device, VkImageView _view, + const VkAllocationCallbacks *pAllocator) +{ + VK_FROM_HANDLE(panvk_device, device, _device); + VK_FROM_HANDLE(panvk_image_view, view, _view); + + if (!view) + return; + + panvk_priv_bo_destroy(view->bo, NULL); + vk_image_view_destroy(&device->vk, pAllocator, &view->vk); +}