[Mesa-dev] [PATCH 07/13] anv/blorp: Remove 3D subresource transition workaround

Iago Toral itoral at igalia.com
Wed Jun 14 07:32:22 UTC 2017


On Tue, 2017-06-13 at 11:41 -0700, Nanley Chery wrote:
> 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.chery at 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) {

Maybe add a comment referencing the requirement from
VK_KHR_maintenance1 so it is clear why we ignore the view for 3D images
here?

> +      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);


More information about the mesa-dev mailing list