On Mon, May 09, 2016 at 10:26:59AM -0700, Ben Widawsky wrote:
> On Fri, May 06, 2016 at 09:08:41PM +0300, Pohjolainen, Topi wrote:
> > On Thu, May 05, 2016 at 07:08:15PM -0700, Ben Widawsky wrote:
> > > On Mon, Apr 25, 2016 at 08:10:01PM +0300, Topi Pohjolainen wrote:
> > > > Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com>
> > > > ---
> > > >  src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 7 ++++---
> > > >  src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 9 +++++++++
> > > >  2 files changed, 13 insertions(+), 3 deletions(-)
> > > > 
> > > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c 
> > > > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > > > index b11fafd..cdf2fbd 100644
> > > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > > > @@ -394,6 +394,7 @@ intel_miptree_create_layout(struct brw_context *brw,
> > > >     mt->logical_depth0 = depth0;
> > > >     mt->fast_clear_state = INTEL_FAST_CLEAR_STATE_NO_MCS;
> > > >     mt->disable_aux_buffers = (layout_flags & 
> > > > MIPTREE_LAYOUT_DISABLE_AUX) != 0;
> > > > +   mt->is_scanout = (layout_flags & MIPTREE_LAYOUT_FOR_SCANOUT) != 0;
> > > >     exec_list_make_empty(&mt->hiz_map);
> > > >     mt->cpp = _mesa_get_format_bytes(format);
> > > >     mt->num_samples = num_samples;
> > > > @@ -900,7 +901,7 @@ intel_update_winsys_renderbuffer_miptree(struct 
> > > > brw_context *intel,
> > > >                                                   height,
> > > >                                                   1,
> > > >                                                   pitch,
> > > > -                                                 0);
> > > > +                                                 
> > > > MIPTREE_LAYOUT_FOR_SCANOUT);
> > > >     if (!singlesample_mt)
> > > >        goto fail;
> > > >  
> > > > @@ -959,8 +960,8 @@ intel_miptree_create_for_renderbuffer(struct 
> > > > brw_context *brw,
> > > >     bool ok;
> > > >     GLenum target = num_samples > 1 ? GL_TEXTURE_2D_MULTISAMPLE : 
> > > > GL_TEXTURE_2D;
> > > >     const uint32_t layout_flags = MIPTREE_LAYOUT_ACCELERATED_UPLOAD |
> > > > -                                 MIPTREE_LAYOUT_TILING_ANY;
> > > > -
> > > > +                                 MIPTREE_LAYOUT_TILING_ANY |
> > > > +                                 MIPTREE_LAYOUT_FOR_SCANOUT;
> > > >  
> > > >     mt = intel_miptree_create(brw, target, format, 0, 0,
> > > >                               width, height, depth, num_samples,
> > > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h 
> > > > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > > > index d4f8563..bb06522 100644
> > > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > > > @@ -657,6 +657,13 @@ struct intel_mipmap_tree
> > > >      */
> > > >     bool disable_aux_buffers;
> > > >  
> > > > +   /**
> > > > +    * Tells if the underlying buffer is to be also consumed by 
> > > > entities other
> > > > +    * than the driver. This allows logic to turn off features such as 
> > > > lossless
> > > > +    * compression which is not currently understood by client 
> > > > applications.
> > > > +    */
> > > > +   bool is_scanout;
> > > > +
> > > >     /* These are also refcounted:
> > > >      */
> > > >     GLuint refcount;
> > > > @@ -697,6 +704,8 @@ enum {
> > > >     MIPTREE_LAYOUT_TILING_NONE              = 1 << 6,
> > > >     MIPTREE_LAYOUT_TILING_ANY               = MIPTREE_LAYOUT_TILING_Y |
> > > >                                               
> > > > MIPTREE_LAYOUT_TILING_NONE,
> > > > +
> > > > +   MIPTREE_LAYOUT_FOR_SCANOUT              = 1 << 7,
> > > >  };
> > > >  
> > > >  struct intel_mipmap_tree *intel_miptree_create(struct brw_context *brw,
> > > 
> > > Since we hope that we one day can use these buffers for scanout, I'd go 
> > > for
> > > something more generic, like (requires other changes as well):
> > > 
> > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h 
> > > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > > index 21e4718..deea30d 100644
> > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > > @@ -687,11 +687,14 @@ enum {
> > >     MIPTREE_LAYOUT_ACCELERATED_UPLOAD       = 1 << 0,
> > >     MIPTREE_LAYOUT_FORCE_ALL_SLICE_AT_LOD   = 1 << 1,
> > >     MIPTREE_LAYOUT_FOR_BO                   = 1 << 2,
> > > -   MIPTREE_LAYOUT_DISABLE_AUX              = 1 << 3,
> > > -   MIPTREE_LAYOUT_FORCE_HALIGN16           = 1 << 4,
> > > -
> > > -   MIPTREE_LAYOUT_TILING_Y                 = 1 << 5,
> > > -   MIPTREE_LAYOUT_TILING_NONE              = 1 << 6,
> > > +   MIPTREE_LAYOUT_DISABLE_AUX_MCS /* CCS_D */ = 1 << 3,
> > > +   MIPTREE_LAYOUT_DISABLE_AUX_CCS_E        = 1 << 4,
> > > +   MIPTREE_LAYOUT_DISABLE_AUX              = 
> > > MIPTREE_LAYOUT_DISABLE_AUX_MCS |
> > > +                                             
> > > MIPTREE_LAYOUT_DISABLE_AUX_CCS_E,
> > > +   MIPTREE_LAYOUT_FORCE_HALIGN16           = 1 << 5,
> > > +
> > > +   MIPTREE_LAYOUT_TILING_Y                 = 1 << 6,
> > > +   MIPTREE_LAYOUT_TILING_NONE              = 1 << 7,
> > >     MIPTREE_LAYOUT_TILING_ANY               = MIPTREE_LAYOUT_TILING_Y |
> > >                                               MIPTREE_LAYOUT_TILING_NONE,
> > >  };
> > > 
> > > 
> > > I do like mt->is_scanout though. That seems useful. Either way:
> > > Reviewed-by: Ben Widawsky <b...@bwidawsk.net>
> > 
> > I'm wondering what you had in mind in addition to the _LAYOUT_DISABLE_ 
> > flags?
> > These are not available anymore when intel_miptree_prepare_mcs() (next 
> > patch,
> > the deferred allocation of aux buffer) gets called. We would need something
> > in "struct intel_mipmap_tree", perhaps "bool disable_something"?
> 
> My only point was that I thought it might be useful to be able to selective
> disable MCS/CCS_D, vs. CCS_E, vs. both. If you don't think so, then you can
> ignore my comment, and we can always fix it later.

No, I think it might be useful. I'm just checking that you are ok with adding
equivalent flags to miptree. Cause that what it pretty much comes down to.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to