Mesa (main): anv: disable aux for exportable images without modifiers
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Aug 9 06:00:13 UTC 2021
Module: Mesa
Branch: main
Commit: e08370dc37ecd6bb81edf897bf52a6abc938e9cc
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e08370dc37ecd6bb81edf897bf52a6abc938e9cc
Author: Tapani Pälli <tapani.palli at intel.com>
Date: Wed Jul 28 10:52:46 2021 +0300
anv: disable aux for exportable images without modifiers
This makes import easier on different gfx generations and we don't
have to lock down on a certain aux layout just yet.
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10609>
---
src/intel/vulkan/anv_image.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index a93542ba244..bd5305b8758 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -1020,11 +1020,17 @@ add_all_surfaces_implicit_layout(
const VkImageFormatListCreateInfo *format_list_info,
uint32_t stride,
isl_tiling_flags_t isl_tiling_flags,
- isl_surf_usage_flags_t isl_extra_usage_flags)
+ const struct anv_image_create_info *create_info)
{
const struct intel_device_info *devinfo = &device->info;
+ isl_surf_usage_flags_t isl_extra_usage_flags =
+ create_info->isl_extra_usage_flags;
VkResult result;
+ const VkExternalMemoryImageCreateInfo *ext_mem_info =
+ vk_find_struct_const(create_info->vk_info->pNext,
+ EXTERNAL_MEMORY_IMAGE_CREATE_INFO);
+
u_foreach_bit(b, image->aspects) {
VkImageAspectFlagBits aspect = 1 << b;
uint32_t plane = anv_image_aspect_to_plane(image->aspects, aspect);
@@ -1061,6 +1067,11 @@ add_all_surfaces_implicit_layout(
return result;
}
+ /* Disable aux if image supports export without modifiers. */
+ if (ext_mem_info && ext_mem_info->handleTypes != 0 &&
+ image->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,
@@ -1371,7 +1382,7 @@ anv_image_create(VkDevice _device,
} else {
r = add_all_surfaces_implicit_layout(device, image, fmt_list, 0,
isl_tiling_flags,
- create_info->isl_extra_usage_flags);
+ create_info);
}
if (r != VK_SUCCESS)
More information about the mesa-commit
mailing list