diff --git a/src/intel/vulkan_hasvk/anv_image.c b/src/intel/vulkan_hasvk/anv_image.c index 2ff3fadb858..74bced161f7 100644 --- a/src/intel/vulkan_hasvk/anv_image.c +++ b/src/intel/vulkan_hasvk/anv_image.c @@ -1031,11 +1031,6 @@ add_all_surfaces_implicit_layout( return result; } - /* Disable aux if image supports export without modifiers. */ - if (image->vk.external_handle_types != 0 && - image->vk.tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) - continue; - result = add_aux_surface_if_supported(device, image, plane, plane_format, format_list_info, ANV_OFFSET_IMPLICIT, stride, @@ -1214,7 +1209,7 @@ alloc_private_binding(struct anv_device *device, VkResult anv_image_init(struct anv_device *device, struct anv_image *image, - const struct anv_image_create_info *create_info) + struct anv_image_create_info *create_info) { const VkImageCreateInfo *pCreateInfo = create_info->vk_info; const struct VkImageDrmFormatModifierExplicitCreateInfoEXT *mod_explicit_info = NULL; @@ -1276,6 +1271,11 @@ anv_image_init(struct anv_device *device, struct anv_image *image, image->disjoint = image->n_planes > 1 && (pCreateInfo->flags & VK_IMAGE_CREATE_DISJOINT_BIT); + /* Disable aux if image supports export without modifiers. */ + if (image->vk.external_handle_types != 0 && + image->vk.tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) + create_info->isl_extra_usage_flags |= ISL_SURF_USAGE_DISABLE_AUX_BIT; + const isl_tiling_flags_t isl_tiling_flags = choose_isl_tiling_flags(device->info, create_info, isl_mod_info, image->vk.wsi_legacy_scanout); diff --git a/src/intel/vulkan_hasvk/anv_private.h b/src/intel/vulkan_hasvk/anv_private.h index 2dd1570f097..5c6d0fea238 100644 --- a/src/intel/vulkan_hasvk/anv_private.h +++ b/src/intel/vulkan_hasvk/anv_private.h @@ -3618,7 +3618,7 @@ struct anv_image_create_info { }; VkResult anv_image_init(struct anv_device *device, struct anv_image *image, - const struct anv_image_create_info *create_info); + struct anv_image_create_info *create_info); void anv_image_finish(struct anv_image *image);