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

Reply via email to