vulkan/meta: Supply image view usage in vk_meta_clear_*_image()

This was the only meta function (including those built into honeykrisp)
which wasn't setting view usage so we can also assert that it's always
provided.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36301>
This commit is contained in:
Faith Ekstrand
2025-07-21 16:35:42 -04:00
committed by Marge Bot
parent f4b01bbfe7
commit 22c624d75b
2 changed files with 12 additions and 0 deletions

View File

@@ -532,6 +532,9 @@ vk_meta_create_image_view(struct vk_command_buffer *cmd,
const struct vk_device_dispatch_table *disp = &device->dispatch_table;
VkDevice _device = vk_device_to_handle(device);
/* Meta must always specify view usage */
assert(vk_find_struct_const(info->pNext, IMAGE_VIEW_USAGE_CREATE_INFO));
VkResult result = disp->CreateImageView(_device, info, NULL, image_view_out);
if (unlikely(result != VK_SUCCESS))
return result;

View File

@@ -442,8 +442,17 @@ clear_image_level_layers(struct vk_command_buffer *cmd,
VkCommandBuffer _cmd = vk_command_buffer_to_handle(cmd);
VkResult result;
VkImageViewUsageCreateInfo view_usage = {
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
};
if (image->aspects == VK_IMAGE_ASPECT_COLOR_BIT)
view_usage.usage |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
if (aspects & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT))
view_usage.usage |= VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
const VkImageViewCreateInfo view_info = {
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
.pNext = &view_usage,
.image = vk_image_to_handle(image),
.viewType = vk_image_render_view_type(image, layer_count),
.format = format,