[Mesa-dev] [PATCH] anv/pass: Flag the need for a depth flush for resolve attachments

Jason Ekstrand jason at jlekstrand.net
Wed Mar 13 21:44:41 UTC 2019


On Wed, Mar 13, 2019 at 3:56 PM Nanley Chery <nanleychery at gmail.com> wrote:

> On Tue, Mar 12, 2019 at 10:56:27PM -0500, Jason Ekstrand wrote:
> > Cc: mesa-stable at lists.freedesktop.org
> > Cc: Nanley Chery <nanley.g.chery at intel.com>
> > ---
> >  src/intel/vulkan/anv_pass.c | 18 +++++++++++++++++-
> >  1 file changed, 17 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/intel/vulkan/anv_pass.c b/src/intel/vulkan/anv_pass.c
> > index 5fac5bbb31c..ec217abfda0 100644
> > --- a/src/intel/vulkan/anv_pass.c
> > +++ b/src/intel/vulkan/anv_pass.c
> > @@ -178,12 +178,28 @@ anv_render_pass_compile(struct anv_render_pass
> *pass)
> >      * subpasses and checking to see if any of them don't have an
> external
> >      * dependency.  Or, we could just be lazy and add a couple extra
> flushes.
> >      * We choose to be lazy.
> > +    *
> > +    * From the documentation for vkCmdNextSubpass:
> > +    *
> > +    *    "Moving to the next subpass automatically performs any
> multisample
> > +    *    resolve operations in the subpass being ended. End-of-subpass
> > +    *    multisample resolves are treated as color attachment writes
> for the
> > +    *    purposes of synchronization. This applies to resolve
> operations for
> > +    *    both color and depth/stencil attachments. That is, they are
> > +    *    considered to execute in the
> > +    *    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT pipeline stage
> and
> > +    *    their writes are synchronized with
> > +    *    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT."
> > +    *
> > +    * Therefore, the above flags concerning color attachments also
> apply to
> > +    * color and depth/stencil resolve attachments.
> >      */
> >     if (all_usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT) {
> >        pass->subpass_flushes[0] |=
> >           ANV_PIPE_TEXTURE_CACHE_INVALIDATE_BIT;
> >     }
> > -   if (all_usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) {
> > +   if (all_usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
> > +                    VK_IMAGE_USAGE_TRANSFER_DST_BIT)) {
> >        pass->subpass_flushes[pass->subpass_count] |=
> >           ANV_PIPE_RENDER_TARGET_CACHE_FLUSH_BIT;
>
> I'm assuming you meant to s/depth/color/ in the title of the patch?
>

Right.  I'll fix that.


> If so and with that change, this patch is
>
Reviewed-by: Nanley Chery <nanley.g.chery at intel.com>
>

Thanks!


>
> >     }
> > --
> > 2.20.1
> >
> > _______________________________________________
> > 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/20190313/b31f540b/attachment.html>


More information about the mesa-dev mailing list