<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Oct 28, 2016 at 3:00 PM, Nanley Chery <span dir="ltr"><<a href="mailto:nanleychery@gmail.com" target="_blank">nanleychery@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Fri, Oct 28, 2016 at 02:17:04AM -0700, Jason Ekstrand wrote:<br>
> Otherwise, we'll try to clear it the first time it's used as a draw so if<br>
> you do some multisampled rendering, resolve to an attachment, and then draw<br>
> on top of the single-sampled attachment, we might accidentally clear it.<br>
><br>
> Signed-off-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br>
> Cc: "13.0" <<a href="mailto:mesa-stable@lists.freedesktop.org">mesa-stable@lists.<wbr>freedesktop.org</a>><br>
> ---<br>
>  src/intel/vulkan/anv_blorp.c | 22 +++++++++++++---------<br>
>  1 file changed, 13 insertions(+), 9 deletions(-)<br>
><br>
> diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c<br>
> index 9ea6e3f..0e70e9b 100644<br>
> --- a/src/intel/vulkan/anv_blorp.c<br>
> +++ b/src/intel/vulkan/anv_blorp.c<br>
> @@ -1185,15 +1185,6 @@ anv_cmd_buffer_resolve_<wbr>subpass(struct anv_cmd_buffer *cmd_buffer)<br>
>     struct anv_framebuffer *fb = cmd_buffer->state.framebuffer;<br>
>     struct anv_subpass *subpass = cmd_buffer->state.subpass;<br>
><br>
> -   /* FINISHME(perf): Skip clears for resolve attachments.<br>
> -    *<br>
> -    * From the Vulkan 1.0 spec:<br>
> -    *<br>
> -    *    If the first use of an attachment in a render pass is as a resolve<br>
> -    *    attachment, then the loadOp is effectively ignored as the resolve is<br>
> -    *    guaranteed to overwrite all pixels in the render area.<br>
> -    */<br>
> -<br>
>     if (!subpass->has_resolve)<br>
>        return;<br>
><br>
> @@ -1207,6 +1198,19 @@ anv_cmd_buffer_resolve_<wbr>subpass(struct anv_cmd_buffer *cmd_buffer)<br>
>        if (dst_att == VK_ATTACHMENT_UNUSED)<br>
>           continue;<br>
><br>
> +      if (cmd_buffer->state.<wbr>attachments[dst_att].pending_<wbr>clear_aspects) {<br>
> +         /* FINISHME(perf): Skip clears for resolve attachments.<br>
<br>
</div></div>Shouldn't this FINISHME be removed?<span class=""><br></span></blockquote><div><br></div><div>Yes, yes it should...  Fixed locally.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
> +          *<br>
> +          * From the Vulkan 1.0 spec:<br>
> +          *<br>
> +          *    If the first use of an attachment in a render pass is as a<br>
> +          *    resolve attachment, then the loadOp is effectively ignored<br>
> +          *    as the resolve is guaranteed to overwrite all pixels in the<br>
> +          *    render area.<br>
> +          */<br>
> +         cmd_buffer->state.attachments[<wbr>dst_att].pending_clear_aspects = 0;<br>
> +      }<br>
> +<br>
>        struct anv_image_view *src_iview = fb->attachments[src_att];<br>
>        struct anv_image_view *dst_iview = fb->attachments[dst_att];<br>
><br>
> --<br>
> 2.5.0.400.gff86faf<br>
><br>
</span>> ______________________________<wbr>_________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</blockquote></div><br></div></div>