<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Sep 6, 2016 at 7:18 AM, Pohjolainen, Topi <span dir="ltr"><<a href="mailto:topi.pohjolainen@gmail.com" target="_blank">topi.pohjolainen@gmail.com</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 Fri, Sep 02, 2016 at 03:50:45PM -0700, Jason Ekstrand wrote:<br>
> The HiZ and CCS tiling formats are always used for HiZ and CCS surfaces<br>
> respectively.  There's no reason why we should go through filter_tiling and<br>
> it's much easier to always get HiZ and CCS right if we just handle them<br>
> directly.<br>
> ---<br>
>  src/intel/isl/isl.c      | 18 ++++++++++++++++--<br>
>  src/intel/isl/isl_gen7.c | 14 --------------<br>
>  2 files changed, 16 insertions(+), 16 deletions(-)<br>
><br>
> diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c<br>
> index f8f5802..33e83b1 100644<br>
> --- a/src/intel/isl/isl.c<br>
> +++ b/src/intel/isl/isl.c<br>
> @@ -226,6 +226,22 @@ isl_surf_choose_tiling(const struct isl_device *dev,<br>
>  {<br>
>     isl_tiling_flags_t tiling_flags = info->tiling_flags;<br>
><br>
> +   /* HiZ surfaces always use the HiZ tiling */<br>
> +   if (info->usage & ISL_SURF_USAGE_HIZ_BIT) {<br>
<br>
</span>Similarly to CCS case below, should we also have:<br>
<br>
         assert(isl_format_get_layout(<wbr>info->format)->txc == ISL_TXC_HIZ);<br></blockquote><div><br></div><div>The assert(info->format == ISL_FORMAT_HIZ) is effectively equivalent.  We use txc for CCS because there are multiple CCS formats.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Otherwise:<br>
<br>
Reviewed-by: Topi Pohjolainen <<a href="mailto:topi.pohjolainen@intel.com">topi.pohjolainen@intel.com</a>><br>
<div><div class="h5"><br>
> +      assert(info->format == ISL_FORMAT_HIZ);<br>
> +      assert(tiling_flags == ISL_TILING_HIZ_BIT);<br>
> +      *tiling = ISL_TILING_HIZ;<br>
> +      return true;<br>
> +   }<br>
> +<br>
> +   /* CCS surfaces always use the CCS tiling */<br>
> +   if (info->usage & ISL_SURF_USAGE_CCS_BIT) {<br>
> +      assert(isl_format_get_layout(<wbr>info->format)->txc == ISL_TXC_CCS);<br>
> +      assert(tiling_flags == ISL_TILING_CCS_BIT);<br>
> +      *tiling = ISL_TILING_CCS;<br>
> +      return true;<br>
> +   }<br>
> +<br>
>     if (ISL_DEV_GEN(dev) >= 7) {<br>
>        gen7_filter_tiling(dev, info, &tiling_flags);<br>
>     } else {<br>
> @@ -254,8 +270,6 @@ isl_surf_choose_tiling(const struct isl_device *dev,<br>
>        CHOOSE(ISL_TILING_LINEAR);<br>
>     }<br>
><br>
> -   CHOOSE(ISL_TILING_CCS);<br>
> -   CHOOSE(ISL_TILING_HIZ);<br>
>     CHOOSE(ISL_TILING_Ys);<br>
>     CHOOSE(ISL_TILING_Yf);<br>
>     CHOOSE(ISL_TILING_Y0);<br>
> diff --git a/src/intel/isl/isl_gen7.c b/src/intel/isl/isl_gen7.c<br>
> index 7b40291..316b51b 100644<br>
> --- a/src/intel/isl/isl_gen7.c<br>
> +++ b/src/intel/isl/isl_gen7.c<br>
> @@ -217,24 +217,10 @@ gen7_filter_tiling(const struct isl_device *dev,<br>
>        *flags &= ~ISL_TILING_W_BIT;<br>
>     }<br>
><br>
> -   /* The HiZ format and tiling always go together */<br>
> -   if (info->format == ISL_FORMAT_HIZ) {<br>
> -      *flags &= ISL_TILING_HIZ_BIT;<br>
> -   } else {<br>
> -      *flags &= ~ISL_TILING_HIZ_BIT;<br>
> -   }<br>
> -<br>
>     /* MCS buffers are always Y-tiled */<br>
>     if (isl_format_get_layout(info-><wbr>format)->txc == ISL_TXC_MCS)<br>
>        *flags &= ISL_TILING_Y0_BIT;<br>
><br>
> -   /* The CCS formats and tiling always go together */<br>
> -   if (isl_format_get_layout(info-><wbr>format)->txc == ISL_TXC_CCS) {<br>
> -      *flags &= ISL_TILING_CCS_BIT;<br>
> -   } else {<br>
> -      *flags &= ~ISL_TILING_CCS_BIT;<br>
> -   }<br>
> -<br>
>     if (info->usage & (ISL_SURF_USAGE_DISPLAY_<wbr>ROTATE_90_BIT |<br>
>                        ISL_SURF_USAGE_DISPLAY_ROTATE_<wbr>180_BIT |<br>
>                        ISL_SURF_USAGE_DISPLAY_ROTATE_<wbr>270_BIT)) {<br>
> --<br>
> 2.5.0.400.gff86faf<br>
><br>
</div></div>> ______________________________<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>