diff --git a/src/broadcom/vulkan/v3dv_image.c b/src/broadcom/vulkan/v3dv_image.c index 519d3f1626f..cf365a146bb 100644 --- a/src/broadcom/vulkan/v3dv_image.c +++ b/src/broadcom/vulkan/v3dv_image.c @@ -327,7 +327,7 @@ v3dv_CreateImage(VkDevice _device, image->array_size = pCreateInfo->arrayLayers; image->samples = pCreateInfo->samples; image->usage = pCreateInfo->usage; - image->create_flags = pCreateInfo->flags; + image->flags = pCreateInfo->flags; image->drm_format_mod = modifier; image->tiling = tiling; @@ -596,6 +596,13 @@ v3dv_CreateImageView(VkDevice _device, case VK_IMAGE_TYPE_3D: assert(range->baseArrayLayer + v3dv_layer_count(image, range) - 1 <= u_minify(image->extent.depth, range->baseMipLevel)); + /* VK_KHR_maintenance1 */ + assert(pCreateInfo->viewType != VK_IMAGE_VIEW_TYPE_2D || + ((image->flags & VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT) && + range->levelCount == 1 && range->layerCount == 1)); + assert(pCreateInfo->viewType != VK_IMAGE_VIEW_TYPE_2D_ARRAY || + ((image->flags & VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT) && + range->levelCount == 1)); break; default: unreachable("bad VkImageType"); diff --git a/src/broadcom/vulkan/v3dv_private.h b/src/broadcom/vulkan/v3dv_private.h index 59e661efb5c..0a916cb9169 100644 --- a/src/broadcom/vulkan/v3dv_private.h +++ b/src/broadcom/vulkan/v3dv_private.h @@ -425,7 +425,7 @@ struct v3dv_image { uint32_t array_size; uint32_t samples; VkImageUsageFlags usage; - VkImageCreateFlags create_flags; + VkImageCreateFlags flags; VkImageTiling tiling; VkFormat vk_format;