[Mesa-dev] [PATCH 08/29] anv/cmd_buffer: Recurse in transition_color_buffer instead of falling through

Pohjolainen, Topi topi.pohjolainen at gmail.com
Wed Nov 29 19:57:34 UTC 2017


On Mon, Nov 27, 2017 at 07:05:58PM -0800, Jason Ekstrand wrote:
> ---
>  src/intel/vulkan/genX_cmd_buffer.c | 17 ++++++++---------
>  1 file changed, 8 insertions(+), 9 deletions(-)
> 
> diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
> index 0c1ae83..be717eb 100644
> --- a/src/intel/vulkan/genX_cmd_buffer.c
> +++ b/src/intel/vulkan/genX_cmd_buffer.c
> @@ -719,20 +719,19 @@ transition_color_buffer(struct anv_cmd_buffer *cmd_buffer,
>        if (image->samples == 1 &&
>            image->planes[plane].aux_usage != ISL_AUX_USAGE_CCS_E &&
>            final_layout != VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) {
> -         /* The CCS_D buffer may not be enabled in the final layout. Continue
> -          * executing this function to perform a resolve.
> +         /* The CCS_D buffer may not be enabled in the final layout. Call this
> +          * function again with a initial layout of COLOR_ATTACHMENT_OPTIMAL
> +          * to perform a resolve.
>            */
>            anv_perf_warn(cmd_buffer->device->instance, image,
>                          "Performing an additional resolve for CCS_D layout "
>                          "transition. Consider always leaving it on or "
>                          "performing an ambiguation pass.");
> -      } else {
> -         /* Writes in the final layout will be aware of the auxiliary buffer.
> -          * In addition, the clear buffer entries and the auxiliary buffers
> -          * have been populated with values that will result in correct
> -          * rendering.
> -          */
> -         return;

I must be missing something here. This now calls transition_color_buffer()
again also for the case that doesn't need resolves and after return goes
and falls thru and does resolves.

> +         transition_color_buffer(cmd_buffer, image, aspect,
> +                                 base_level, level_count,
> +                                 base_layer, layer_count,
> +                                 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
> +                                 final_layout);
>        }
>     } else if (initial_layout != VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) {
>        /* Resolves are only necessary if the subresource may contain blocks
> -- 
> 2.5.0.400.gff86faf
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list