anv: fix number of planes for depth & stencil

We're not counting correctly with depth & stencil images.

Additionally we need to move an assert that is meant just for color
attachments.

v2: Move an assert() (Reported by Craig)
    Change aspect mask checks (Francesco)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: a62a979335 ("anv: enable multiple planes per image/imageView")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105994
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
(cherry picked from commit 0a6547014f)
[Juan A. Suarez: resolve trivial conflicts]
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>

Conflicts:
	src/intel/vulkan/genX_cmd_buffer.c
This commit is contained in:
Lionel Landwerlin 2018-04-12 11:06:47 -07:00 committed by Juan A. Suarez Romero
parent 83518bf6fa
commit 220b67ffa1
2 changed files with 5 additions and 1 deletions

View file

@ -2246,6 +2246,10 @@ anv_image_aspect_get_planes(VkImageAspectFlags aspect_mask)
if (aspect_mask & VK_IMAGE_ASPECT_PLANE_2_BIT_KHR) if (aspect_mask & VK_IMAGE_ASPECT_PLANE_2_BIT_KHR)
planes++; planes++;
if ((aspect_mask & VK_IMAGE_ASPECT_DEPTH_BIT) != 0 &&
(aspect_mask & VK_IMAGE_ASPECT_STENCIL_BIT) != 0)
planes++;
return planes; return planes;
} }

View file

@ -968,10 +968,10 @@ genX(cmd_buffer_setup_attachments)(struct anv_cmd_buffer *cmd_buffer,
struct anv_image_view *iview = framebuffer->attachments[i]; struct anv_image_view *iview = framebuffer->attachments[i];
anv_assert(iview->vk_format == att->format); anv_assert(iview->vk_format == att->format);
anv_assert(iview->n_planes == 1);
union isl_color_value clear_color = { .u32 = { 0, } }; union isl_color_value clear_color = { .u32 = { 0, } };
if (att_aspects & VK_IMAGE_ASPECT_ANY_COLOR_BIT) { if (att_aspects & VK_IMAGE_ASPECT_ANY_COLOR_BIT) {
anv_assert(iview->n_planes == 1);
assert(att_aspects == VK_IMAGE_ASPECT_COLOR_BIT); assert(att_aspects == VK_IMAGE_ASPECT_COLOR_BIT);
color_attachment_compute_aux_usage(cmd_buffer->device, color_attachment_compute_aux_usage(cmd_buffer->device,
state, i, begin->renderArea, state, i, begin->renderArea,