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

Jason Ekstrand jason at jlekstrand.net
Wed Nov 29 20:04:22 UTC 2017


On Wed, Nov 29, 2017 at 12:01 PM, Jason Ekstrand <jason at jlekstrand.net>
wrote:

> On Wed, Nov 29, 2017 at 11:57 AM, Pohjolainen, Topi <
> topi.pohjolainen at gmail.com> wrote:
>
>> 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.
>>
>
> Yikes!  You're not missing anything.  I'm missing a return statement.
>

Upon further inspection, it appears to get added in the next patch.  I've
moved it to this one.


> > +         transition_color_buffer(cmd_buffer, image, aspect,
>
>> > +                                 base_level, level_count,
>> > +                                 base_layer, layer_count,
>> > +                                 VK_IMAGE_LAYOUT_COLOR_ATTACHM
>> ENT_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
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171129/3126a79f/attachment-0001.html>


More information about the mesa-dev mailing list