anv/image: allow VK_IMAGE_CREATE_ALIAS_BIT with a private binding.

when the image is for video decoding.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22202>
This commit is contained in:
Hyunjun Ko 2023-04-12 14:24:44 +09:00 committed by Marge Bot
parent 23c338af5d
commit 91235092ab

View file

@ -974,10 +974,12 @@ check_memory_bindings(const struct anv_device *device,
: ANV_IMAGE_MEMORY_BINDING_MAIN;
/* Aliasing is incompatible with the private binding because it does not
* live in a VkDeviceMemory. The one exception is swapchain images.
* live in a VkDeviceMemory. The exception is either swapchain images or
* that the private binding is for a video motion vector buffer.
*/
assert(!(image->vk.create_flags & VK_IMAGE_CREATE_ALIAS_BIT) ||
image->from_wsi ||
(plane->primary_surface.isl.usage & ISL_SURF_USAGE_VIDEO_DECODE_BIT) ||
image->bindings[ANV_IMAGE_MEMORY_BINDING_PRIVATE].memory_range.size == 0);
/* Check primary surface */