On Sun, May 26, 2019 at 2:50 PM Bas Nieuwenhuizen
<b...@basnieuwenhuizen.nl> wrote:
>
> On Wed, May 22, 2019 at 11:20 AM Samuel Pitoiset
> <samuel.pitoi...@gmail.com> wrote:
> >
> > Based on ANV.
> >
> > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
> > ---
> >  src/amd/vulkan/radv_meta_resolve.c | 21 ++++++++++++---------
> >  1 file changed, 12 insertions(+), 9 deletions(-)
> >
> > diff --git a/src/amd/vulkan/radv_meta_resolve.c 
> > b/src/amd/vulkan/radv_meta_resolve.c
> > index ade5d438438..6a8abce1ddb 100644
> > --- a/src/amd/vulkan/radv_meta_resolve.c
> > +++ b/src/amd/vulkan/radv_meta_resolve.c
> > @@ -618,15 +618,6 @@ radv_cmd_buffer_resolve_subpass(struct radv_cmd_buffer 
> > *cmd_buffer)
> >         struct radv_meta_saved_state saved_state;
> >         enum radv_resolve_method resolve_method = RESOLVE_HW;
> >
> > -       /* FINISHME(perf): Skip clears for resolve attachments.
> > -        *
> > -        * From the Vulkan 1.0 spec:
> > -        *
> > -        *    If the first use of an attachment in a render pass is as a 
> > resolve
> > -        *    attachment, then the loadOp is effectively ignored as the 
> > resolve is
> > -        *    guaranteed to overwrite all pixels in the render area.
> > -        */
> > -
> >         if (!subpass->has_resolve)
> >                 return;
> >
> > @@ -637,6 +628,18 @@ radv_cmd_buffer_resolve_subpass(struct radv_cmd_buffer 
> > *cmd_buffer)
> >                 if (dest_att.attachment == VK_ATTACHMENT_UNUSED)
> >                         continue;
> >
> > +               if 
> > (cmd_buffer->state.attachments[dest_att.attachment].pending_clear_aspects) {
> > +                       /* From the Vulkan 1.0 spec:
> > +                        *
> > +                        *    If the first use of an attachment in a render
> > +                        *    pass is as a resolve attachment, then the 
> > loadOp
> > +                        *    is effectively ignored as the resolve is
> > +                        *    guaranteed to overwrite all pixels in the 
> > render
> > +                        *    area.
> > +                       */
> > +                       
> > cmd_buffer->state.attachments[dest_att.attachment].pending_clear_aspects = 
> > 0;
> > +               }
> > +
>
> You can drop the if statement. Also this seems like a correctness
> issue, as we only cleared the first time it was used as a color
> attachment, which might happen after a resolve?

Forgot to say, r-b with the if removed, and maybe want to cc stable?
>
> >                 struct radv_image *dst_img = 
> > cmd_buffer->state.framebuffer->attachments[dest_att.attachment].attachment->image;
> >                 struct radv_image *src_img = 
> > cmd_buffer->state.framebuffer->attachments[src_att.attachment].attachment->image;
> >
> > --
> > 2.21.0
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to