On Thu, Feb 11, 2016 at 01:41:47PM -0800, Ben Widawsky wrote: > On Thu, Feb 11, 2016 at 08:33:56PM +0200, Topi Pohjolainen wrote: > > In addition to simply calling miptree_create() the higher level > > call intel_miptree_create() also considers if the buffer should > > be associated with an auxiliary buffer based on the given format. > > > > Here we are allocating an auxiliary buffer which in turn has such > > format that would mislead intel_miptree_create_layout() later on > > to try to associate the auxiliary buffer with an auxiliary buffer. > > To prevent this the actual buffer creation logic was split out > > into its own function. Lets invoke that instead. > > > > v2 (Ben): Do not signal msaa layout with explicit argument but > > using layout_flags instead. > > > > Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > > --- > > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 20 ++++++++++---------- > > 1 file changed, 10 insertions(+), 10 deletions(-) > > > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > index e8b3116..e1cf15b 100644 > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > @@ -1541,16 +1541,16 @@ intel_miptree_alloc_non_msrt_mcs(struct brw_context > > *brw, > > if (brw->gen >= 8) { > > layout_flags |= MIPTREE_LAYOUT_FORCE_HALIGN16; > > } > > - mt->mcs_mt = intel_miptree_create(brw, > > - mt->target, > > - format, > > - mt->first_level, > > - mt->last_level, > > - mcs_width, > > - mcs_height, > > - mt->logical_depth0, > > - 0 /* num_samples */, > > - layout_flags); > > + mt->mcs_mt = miptree_create(brw, > > + mt->target, > > + format, > > + mt->first_level, > > + mt->last_level, > > + mcs_width, > > + mcs_height, > > + mt->logical_depth0, > > + 0 /* num_samples */, > > + layout_flags); > > > > return mt->mcs_mt; > > } > > Perhaps I am missing something here, but don't you need to have > mt->fast_clear_state = INTEL_FAST_CLEAR_STATE_RESOLVED; ?
You are correct that it gets dropped - but it gets dropped for auxiliary miptree where it doesn't make any difference. Fast clear is tracked in the parent miptree and it's fast_clear_state is set as before. I toyed earlier with the idea of having "lighter, needed members only" data type for auxiliary buffers but didn't pursue that after all. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev