anv: properly flag image/imageviews for ISL protection

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29982>
This commit is contained in:
Lionel Landwerlin 2024-07-01 14:09:49 +03:00 committed by Marge Bot
parent 4eab285d4a
commit 8d9cc6aa23
2 changed files with 6 additions and 0 deletions

View file

@ -252,6 +252,9 @@ anv_image_choose_isl_surf_usage(struct anv_physical_device *device,
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT))
isl_usage |= ISL_SURF_USAGE_2D_3D_COMPATIBLE_BIT;
if (vk_create_flags & VK_IMAGE_CREATE_PROTECTED_BIT)
isl_usage |= ISL_SURF_USAGE_PROTECTED_BIT;
/* Even if we're only using it for transfer operations, clears to depth and
* stencil images happen as depth and stencil so they need the right ISL
* usage bits or else things will fall apart.

View file

@ -58,6 +58,9 @@ anv_image_fill_surface_state(struct anv_device *device,
struct isl_view view = *view_in;
view.usage |= view_usage;
/* Propagate the protection flag of the image to the view. */
view_usage |= surface->isl.usage & ISL_SURF_USAGE_PROTECTED_BIT;
if (view_usage == ISL_SURF_USAGE_RENDER_TARGET_BIT)
view.swizzle = anv_swizzle_for_render(view.swizzle);