From d1ef8647ac55c8540a33b70c3cd1af952e252cd5 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Sat, 23 Aug 2025 11:06:09 -0400 Subject: [PATCH] v3dv: Use VK_IMAGE_VIEW_CREATE_DRIVER_INTERNAL_BIT_MESA Part-of: --- src/broadcom/vulkan/v3dv_cmd_buffer.c | 3 ++- src/broadcom/vulkan/v3dv_image.c | 8 ++++---- src/broadcom/vulkan/v3dv_meta_copy.c | 3 +++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_cmd_buffer.c b/src/broadcom/vulkan/v3dv_cmd_buffer.c index 7b7350ca5f9..9b893782fec 100644 --- a/src/broadcom/vulkan/v3dv_cmd_buffer.c +++ b/src/broadcom/vulkan/v3dv_cmd_buffer.c @@ -3716,7 +3716,8 @@ handle_sample_from_linear_image(struct v3dv_cmd_buffer *cmd_buffer, } else { VkImageViewCreateInfo view_info = { .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, - .flags = view->vk.create_flags, + .flags = view->vk.create_flags | + VK_IMAGE_VIEW_CREATE_DRIVER_INTERNAL_BIT_MESA, .image = tiled_image, .viewType = view->vk.view_type, .format = view->vk.format, diff --git a/src/broadcom/vulkan/v3dv_image.c b/src/broadcom/vulkan/v3dv_image.c index 5e14a89fc6b..ee7573e2daa 100644 --- a/src/broadcom/vulkan/v3dv_image.c +++ b/src/broadcom/vulkan/v3dv_image.c @@ -695,7 +695,6 @@ v3dv_image_type_to_view_type(VkImageType type) static VkResult create_image_view(struct v3dv_device *device, - bool driver_internal, const VkImageViewCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkImageView *pView) @@ -703,7 +702,7 @@ create_image_view(struct v3dv_device *device, V3DV_FROM_HANDLE(v3dv_image, image, pCreateInfo->image); struct v3dv_image_view *iview; - iview = vk_image_view_create(&device->vk, driver_internal, pCreateInfo, + iview = vk_image_view_create(&device->vk, false, pCreateInfo, pAllocator, sizeof(*iview)); if (iview == NULL) return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); @@ -802,7 +801,8 @@ v3dv_create_image_view(struct v3dv_device *device, const VkImageViewCreateInfo *pCreateInfo, VkImageView *pView) { - return create_image_view(device, true, pCreateInfo, NULL, pView); + assert(pCreateInfo->flags & VK_IMAGE_VIEW_CREATE_DRIVER_INTERNAL_BIT_MESA); + return create_image_view(device, pCreateInfo, NULL, pView); } VKAPI_ATTR VkResult VKAPI_CALL @@ -813,7 +813,7 @@ v3dv_CreateImageView(VkDevice _device, { V3DV_FROM_HANDLE(v3dv_device, device, _device); - return create_image_view(device, false, pCreateInfo, pAllocator, pView); + return create_image_view(device, pCreateInfo, pAllocator, pView); } VKAPI_ATTR void VKAPI_CALL diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c index f986a860f32..9a503008dc2 100644 --- a/src/broadcom/vulkan/v3dv_meta_copy.c +++ b/src/broadcom/vulkan/v3dv_meta_copy.c @@ -2724,6 +2724,7 @@ texel_buffer_shader_copy(struct v3dv_cmd_buffer *cmd_buffer, VkImageViewCreateInfo image_view_info = { .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, + .flags = VK_IMAGE_VIEW_CREATE_DRIVER_INTERNAL_BIT_MESA, .image = v3dv_image_to_handle(image), .viewType = v3dv_image_type_to_view_type(image->vk.image_type), .format = dst_format, @@ -4635,6 +4636,7 @@ blit_shader(struct v3dv_cmd_buffer *cmd_buffer, /* Setup framebuffer */ VkImageViewCreateInfo dst_image_view_info = { .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, + .flags = VK_IMAGE_VIEW_CREATE_DRIVER_INTERNAL_BIT_MESA, .image = v3dv_image_to_handle(dst), .viewType = v3dv_image_type_to_view_type(dst->vk.image_type), .format = dst_format, @@ -4693,6 +4695,7 @@ blit_shader(struct v3dv_cmd_buffer *cmd_buffer, VkImageViewCreateInfo src_image_view_info = { .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, + .flags = VK_IMAGE_VIEW_CREATE_DRIVER_INTERNAL_BIT_MESA, .image = v3dv_image_to_handle(src), .viewType = v3dv_image_type_to_view_type(src->vk.image_type), .format = src_format,