On Thu, May 03, 2018 at 12:03:55PM -0700, Nanley Chery wrote: > We're going to delete intel_miptree_alloc_ccs() in the next commit. With > that in mind, replace the use of this function in > do_single_blorp_clear() with intel_miptree_alloc_aux() and move the > delayed allocation logic to it's callers. > --- > src/mesa/drivers/dri/i965/brw_blorp.c | 2 +- > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 19 ++++++------------- > src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 2 +- > 3 files changed, 8 insertions(+), 15 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c > b/src/mesa/drivers/dri/i965/brw_blorp.c > index ba14136edc6..e6eedf3cedc 100644 > --- a/src/mesa/drivers/dri/i965/brw_blorp.c > +++ b/src/mesa/drivers/dri/i965/brw_blorp.c > @@ -1209,7 +1209,7 @@ do_single_blorp_clear(struct brw_context *brw, struct > gl_framebuffer *fb, > */ > if (can_fast_clear && !irb->mt->aux_buf) { > assert(irb->mt->aux_usage == ISL_AUX_USAGE_CCS_D); > - if (!intel_miptree_alloc_ccs(brw, irb->mt)) { > + if (!intel_miptree_alloc_aux(brw, irb->mt)) { > /* There are a few reasons in addition to out-of-memory, that can > * cause intel_miptree_alloc_non_msrt_mcs to fail. Try to recover > by > * falling back to non-fast clear. > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > index 1de381141ea..84be7c07c6f 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > @@ -59,10 +59,6 @@ static void *intel_miptree_map_raw(struct brw_context *brw, > > static void intel_miptree_unmap_raw(struct intel_mipmap_tree *mt); > > -static bool > -intel_miptree_alloc_aux(struct brw_context *brw, > - struct intel_mipmap_tree *mt); > - > static bool > intel_miptree_supports_mcs(struct brw_context *brw, > const struct intel_mipmap_tree *mt) > @@ -791,7 +787,8 @@ intel_miptree_create(struct brw_context *brw, > > mt->offset = 0; > > - if (!intel_miptree_alloc_aux(brw, mt)) { > + if (mt->aux_usage != ISL_AUX_USAGE_CCS_D && > + !intel_miptree_alloc_aux(brw, mt)) { > intel_miptree_release(&mt); > return NULL; > } > @@ -882,7 +879,8 @@ intel_miptree_create_for_bo(struct brw_context *brw, > if (!(flags & MIPTREE_CREATE_NO_AUX)) { > intel_miptree_choose_aux_usage(brw, mt); > > - if (!intel_miptree_alloc_aux(brw, mt)) { > + if (mt->aux_usage != ISL_AUX_USAGE_CCS_D && > + !intel_miptree_alloc_aux(brw, mt)) { > intel_miptree_release(&mt); > return NULL; > } > @@ -1781,7 +1779,7 @@ intel_miptree_alloc_mcs(struct brw_context *brw, > return true; > } > > -bool > +static bool > intel_miptree_alloc_ccs(struct brw_context *brw, > struct intel_mipmap_tree *mt) > { > @@ -1902,7 +1900,7 @@ intel_miptree_alloc_hiz(struct brw_context *brw, > * create the auxiliary surfaces up-front. CCS_D, on the other hand, can > only > * compress clear color so we wait until an actual fast-clear to allocate it.
I started wondering if we should duplicate this piece of comment in the callers as they now make that decision? > */ > -static bool > +bool > intel_miptree_alloc_aux(struct brw_context *brw, > struct intel_mipmap_tree *mt) > { > @@ -1924,11 +1922,6 @@ intel_miptree_alloc_aux(struct brw_context *brw, > return true; > > case ISL_AUX_USAGE_CCS_D: > - /* Since CCS_D can only compress clear color so we wait until an actual > - * fast-clear to allocate it. > - */ > - return true; > - > case ISL_AUX_USAGE_CCS_E: > assert(_mesa_is_format_color_format(mt->format)); > assert(mt->surf.samples == 1); > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > index 8cea562dfa4..9a5d97bf348 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > @@ -379,7 +379,7 @@ struct intel_mipmap_tree > }; > > bool > -intel_miptree_alloc_ccs(struct brw_context *brw, > +intel_miptree_alloc_aux(struct brw_context *brw, > struct intel_mipmap_tree *mt); > > enum intel_miptree_create_flags { > -- > 2.16.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev