[Mesa-dev] [Mesa-stable] [PATCH 3/3] i965/miptree: Use the correct BLT pitch

Nanley Chery nanleychery at gmail.com
Sat Jul 21 00:26:22 UTC 2018


On Fri, Jul 20, 2018 at 02:48:58PM -0700, Dylan Baker wrote:
> Hi Nanley,
> 
> This applies cleanly to the 18.1 branch, but there is something else missing as
> it adds roughly 2200 regressions, see here:
> http://otc-mesa-ci.jf.intel.com/view/dev/job/dcbaker_18.1/66/testReport/
> 
> For the moment I've reverted it out of the staging/18.1 branch. If we need to
> get it back in we can, but we need to sort out those regressions first.
> 

Thanks for letting me know. I guess I didn't figure out how to do stable
testing after all. I think I found the issue and am running the fix
through jenkins (rebuild of the job above and a mesa_master build).

-Nanley

> Dylan
> 
> Quoting Nanley Chery (2018-07-12 10:28:16)
> > Retile miptrees to a linear tiling less often. Retiling can cause issues
> > with imported BOs.
> > 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106738
> > Suggested-by: Chris Wilson <chris at chris-wilson.co.uk>
> > Cc: <mesa-stable at lists.freedesktop.org>
> > ---
> >  src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 12 ++++++------
> >  1 file changed, 6 insertions(+), 6 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > index 53e01120a92..1ddb945b085 100644
> > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > @@ -509,7 +509,7 @@ free_aux_state_map(enum isl_aux_state **state)
> >  }
> >  
> >  static bool
> > -need_to_retile_as_linear(struct brw_context *brw, unsigned row_pitch,
> > +need_to_retile_as_linear(struct brw_context *brw, unsigned blt_pitch,
> >                           enum isl_tiling tiling, unsigned samples)
> >  {
> >     if (samples > 1)
> > @@ -518,9 +518,9 @@ need_to_retile_as_linear(struct brw_context *brw, unsigned row_pitch,
> >     if (tiling == ISL_TILING_LINEAR)
> >        return false;
> >  
> > -   if (ALIGN(row_pitch, 512) >= 32768) {
> > -      perf_debug("row pitch %u too large to blit, falling back to untiled",
> > -                 row_pitch);
> > +   if (blt_pitch >= 32768) {
> > +      perf_debug("blt pitch %u too large to blit, falling back to untiled",
> > +                 blt_pitch);
> >        return true;
> >     }
> >  
> > @@ -600,7 +600,7 @@ make_surface(struct brw_context *brw, GLenum target, mesa_format format,
> >     bool is_depth_stencil =
> >        mt->surf.usage & (ISL_SURF_USAGE_STENCIL_BIT | ISL_SURF_USAGE_DEPTH_BIT);
> >     if (!is_depth_stencil) {
> > -      if (need_to_retile_as_linear(brw, mt->surf.row_pitch,
> > +      if (need_to_retile_as_linear(brw, intel_miptree_blt_pitch(mt),
> >                                     mt->surf.tiling, mt->surf.samples)) {
> >           init_info.tiling_flags = 1u << ISL_TILING_LINEAR;
> >           if (!isl_surf_init_s(&brw->isl_dev, &mt->surf, &init_info))
> > @@ -3577,7 +3577,7 @@ can_blit_slice(struct intel_mipmap_tree *mt,
> >                 unsigned int level, unsigned int slice)
> >  {
> >     /* See intel_miptree_blit() for details on the 32k pitch limit. */
> > -   if (mt->surf.row_pitch >= 32768)
> > +   if (intel_miptree_blt_pitch(mt) >= 32768)
> >        return false;
> >  
> >     return true;
> > -- 
> > 2.18.0
> > 
> > _______________________________________________
> > mesa-stable mailing list
> > mesa-stable at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-stable




More information about the mesa-dev mailing list