<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Feb 22, 2017 at 11:09 AM, Chad Versace <span dir="ltr"><<a href="mailto:chadversary@chromium.org" target="_blank">chadversary@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon 20 Feb 2017, Jason Ekstrand wrote:<br>
> This just enables basic MSAA compression (no fast clears) for all<br>
> multisampled surfaces.  This improves the framerate of the Sascha<br>
> "multisampling" demo by 76% on my Sky Lake laptop.  Running Talos on<br>
> medium settings with 8x MSAA, this improves the framerate in the<br>
> benchmark by 80%.<br>
> ---<br>
>  src/intel/vulkan/TODO              |  2 +-<br>
>  src/intel/vulkan/anv_blorp.c       |  3 ++-<br>
>  src/intel/vulkan/anv_image.c       |  9 +++++++++<br>
>  src/intel/vulkan/anv_pipeline.<wbr>c    | 19 +++++++++++++++++++<br>
>  src/intel/vulkan/genX_cmd_<wbr>buffer.c |  5 +++++<br>
>  5 files changed, 36 insertions(+), 2 deletions(-)<br>
<br>
<br>
</span><span class="">> diff --git a/src/intel/vulkan/genX_cmd_<wbr>buffer.c b/src/intel/vulkan/genX_cmd_<wbr>buffer.c<br>
> index 40a72f4..5d8c3ea 100644<br>
> --- a/src/intel/vulkan/genX_cmd_<wbr>buffer.c<br>
> +++ b/src/intel/vulkan/genX_cmd_<wbr>buffer.c<br>
> @@ -222,6 +222,11 @@ color_attachment_compute_aux_<wbr>usage(struct anv_device *device,<br>
>        att_state->input_aux_usage = ISL_AUX_USAGE_NONE;<br>
>        att_state->fast_clear = false;<br>
>        return;<br>
> +   } else if (iview->image->aux_usage == ISL_AUX_USAGE_MCS) {<br>
> +      att_state->aux_usage = ISL_AUX_USAGE_MCS;<br>
> +      att_state->input_aux_usage = ISL_AUX_USAGE_MCS;<br>
> +      att_state->fast_clear = false;<br>
> +      return;<br>
>     }<br>
<br>
</span>Small nit. It feels awkward that this function, above the hunk, checks<br>
iview->image->aux_surface.isl.<wbr>size == 0, then the next branch checks<br>
iview->image->aux_usage. It seems more natural to check aux_usage in<br>
both branches.<br></blockquote><div><br></div><div>Not so much... aux_surface.isl.size == 0 implies aux_usage == NONE but not the other way around.  For gen7 fast clears, for instance, you get NONE in aux_usage because that's the way we use it for texturing.<br><br></div><div>--Jason<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Anyway, that nit fixup belongs in a different commit anyway, for<br>
bisection's sake.<br>
<br>
Reviewed-by: Chad Versace <<a href="mailto:chadversary@chromium.org">chadversary@chromium.org</a>><br>
</blockquote></div><br></div><div class="gmail_extra">There's also an anv blorp patch that's needed to prevent regressions.<br></div></div>