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

Jason Ekstrand jason at jlekstrand.net
Sat Sep 3 16:07:03 UTC 2016


On Sat, Sep 3, 2016 at 9:04 AM, Pohjolainen, Topi <
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]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.


> >      >     }
> >      >
> >      >     if (isl_dev->info->gen == 6) {
> >      > --
> >      > 2.5.0.400.gff86faf
> >      >
> >      > _______________________________________________
> >      > mesa-dev mailing list
> >      > [2]mesa-dev at lists.freedesktop.org
> >      > [3]https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
> > References
> >
> >    1. mailto:topi.pohjolainen at gmail.com
> >    2. mailto:mesa-dev at lists.freedesktop.org
> >    3. https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160903/14716271/attachment-0001.html>


More information about the mesa-dev mailing list