[Mesa-dev] [PATCH 11/33] intel/blorp: Use fake_interleaved_msaa in retile_w_to_y

Pohjolainen, Topi topi.pohjolainen at gmail.com
Sat Sep 3 16:21:19 UTC 2016


On Sat, Sep 03, 2016 at 09:07:03AM -0700, Jason Ekstrand wrote:
>    On Sat, Sep 3, 2016 at 9:04 AM, Pohjolainen, Topi
>    <[1]topi.pohjolainen at gmail.com> wrote:
> 
>      On Thu, Sep 01, 2016 at 12:02:17PM -0700, Jason Ekstrand wrote:
>      >    On Thu, Sep 1, 2016 at 12:09 AM, Pohjolainen, Topi
> 
>    >    <[1][2]topi.pohjolainen at gmail.com> wrote:
>    >
>    >      On Wed, Aug 31, 2016 at 02:22:30PM -0700, Jason Ekstrand wrote:
>    >      > ---
>    >      >  src/intel/blorp/blorp_blit.c | 4 +---
>    >      >  1 file changed, 1 insertion(+), 3 deletions(-)
>    >      >
>    >      > diff --git a/src/intel/blorp/blorp_blit.c
>    >      b/src/intel/blorp/blorp_blit.c
>    >      > index 05fad8f..2838a26 100644
>    >      > --- a/src/intel/blorp/blorp_blit.c
>    >      > +++ b/src/intel/blorp/blorp_blit.c
>    >      > @@ -1342,9 +1342,7 @@ surf_retile_w_to_y(const struct
>    isl_device
>    >      *isl_dev,
>    >      >      */
>    >      >     if (isl_dev->info->gen > 6 &&
>    >      >         info->surf.msaa_layout == ISL_MSAA_LAYOUT_INTERLEAVED)
>    {
>    >      > -      info->surf.logical_level0_px =
>    info->surf.phys_level0_sa;
>    >      > -      info->surf.samples = 1;
>    >      > -      info->surf.msaa_layout = ISL_MSAA_LAYOUT_NONE;
>    >      > +      surf_fake_interleaved_msaa(isl_dev, info);
>    >      So now we start calling surf_convert_to_single_slice() twice,
>    >      surf_retile_w_to_y() itself calls it and then
>    >      surf_fake_interleaved_msaa()
>    >      again. I'll read ahead a little how this evolves...
>    >
>    >    Yes, we do.  That *was* supposed to be safe, but actually wasn't
>    due to
>    >    a mistake made a while ago.  As of an earlier patch in the series,
>    it
>    >    is safe.
> 
>      Could we this instead, or do we really need
>      surf_convert_to_single_slice()
>      to be called twice?
>           if (isl_dev->info->gen > 6 &&
>               info->surf.msaa_layout == ISL_MSAA_LAYOUT_INTERLEAVED) {
>              surf_fake_interleaved_msaa(isl_dev, info);
>           } else {
>              surf_convert_to_single_slice(isl_dev, info);
>           }
> 
>    We could in this case, but for interleaved MSAA destinations on gen7+,
>    we call fake_interleaved_msaa separately.  This particular use only
>    happens for W-tiled sources (all HW) and W-tiled destinations on Sandy
>    Bridge.  It's way easier just to make calling it twice safe than to
>    sort out all of the different places we may call it.

Right... It is probably cleaner:

Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>


More information about the mesa-dev mailing list