anv/image: Fix isl_surf_usage_flags for stencil images
Respect VkImageStencilUsageCreateInfoEXT.
CC: mesa-stable@lists.freedesktop.org
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
(cherry picked from commit b50275a4b63d3da12ead2f6e57be8988223af83d)
diff --git a/.pick_status.json b/.pick_status.json
index 387b08b..3c2eb53 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -202,7 +202,7 @@
"description": "anv/image: Fix isl_surf_usage_flags for stencil images",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": null
},
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index d07d0ec..0290431 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -563,14 +563,14 @@
anv_get_format_plane(&device->info, image->vk_format, aspect, image->tiling);
struct anv_surface *anv_surf = &image->planes[plane].surface;
- const isl_surf_usage_flags_t usage =
- choose_isl_surf_usage(image->create_flags, image->usage,
- isl_extra_usage_flags, aspect);
-
VkImageUsageFlags plane_vk_usage =
aspect == VK_IMAGE_ASPECT_STENCIL_BIT ?
image->stencil_usage : image->usage;
+ const isl_surf_usage_flags_t usage =
+ choose_isl_surf_usage(image->create_flags, plane_vk_usage,
+ isl_extra_usage_flags, aspect);
+
bool needs_shadow =
anv_image_plane_needs_shadow_surface(&device->info,
plane_format,