[Mesa-dev] [v2 03/19] i965: Don't try to create aux buffer for non-msrt aux-buffer

Ben Widawsky ben at bwidawsk.net
Thu Feb 11 21:41:47 UTC 2016


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.pohjolainen at 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; ?

Otherwise, lgtm


More information about the mesa-dev mailing list