For 3D image subresources undergoing a layout transition via PipelineBarrier, we increase the number of fast-cleared layers to match the intended behaviour of KHR_maintenance1. When such subresources undergo layout transitions between subpasses, we don't do this to avoid failing incorrect CTS tests. Instead, unify the behaviour in both scenarios, and wait for the CTS tests to catch up. See CL 1111 for the test fix.
On SKL+, this causes 3 test failures under: dEQP-VK.pipeline.render_to_image.3d.* Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> --- src/intel/vulkan/anv_blorp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c index 421f860428..ff3d7b126f 100644 --- a/src/intel/vulkan/anv_blorp.c +++ b/src/intel/vulkan/anv_blorp.c @@ -1478,12 +1478,12 @@ anv_image_ccs_clear(struct anv_cmd_buffer *cmd_buffer, /* Blorp likes to treat 2D_ARRAY and 3D the same. */ uint32_t blorp_base_layer, blorp_layer_count; - if (view) { - blorp_base_layer = view->base_array_layer; - blorp_layer_count = view->array_len; - } else if (image->type == VK_IMAGE_TYPE_3D) { + if (image->type == VK_IMAGE_TYPE_3D) { blorp_base_layer = 0; blorp_layer_count = extent.depth; + } else if (view) { + blorp_base_layer = view->base_array_layer; + blorp_layer_count = view->array_len; } else { blorp_base_layer = subresourceRange->baseArrayLayer; blorp_layer_count = anv_get_layerCount(image, subresourceRange); -- 2.13.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev