On Fri, Feb 12, 2016 at 09:24:42AM +0200, Pohjolainen, Topi wrote: > 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.
Sounds like you thought it through, and tested it :-) Reviewed-by: Ben Widawsky <benjamin.widaw...@intel.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev