[Mesa-dev] [PATCH 07/11] i965/miptree: Delete MIPTREE_LAYOUT_FOR_SCANOUT

Jordan Justen jordan.l.justen at intel.com
Thu Aug 3 17:28:56 UTC 2017


Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

On 2017-08-02 13:35:32, Jason Ekstrand wrote:
> The flag hasn't affected actual surface layout for some time.  The only
> purpose it served was to set bo->cache_coherent = false on the BO used
> to create the miptree.  This is fairly silly because we can just set
> that directly from the caller where it makes much more sense.
> ---
>  src/mesa/drivers/dri/i965/brw_context.c       |  8 +++++++-
>  src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 12 ++++++++----
>  src/mesa/drivers/dri/i965/intel_mipmap_tree.h |  2 --
>  3 files changed, 15 insertions(+), 7 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
> index d0b22d4..c3c4d80 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.c
> +++ b/src/mesa/drivers/dri/i965/brw_context.c
> @@ -1518,12 +1518,18 @@ intel_process_dri2_buffer(struct brw_context *brw,
>                                    drawable->h,
>                                    1,
>                                    buffer->pitch,
> -                                  MIPTREE_LAYOUT_FOR_SCANOUT);
> +                                  0);
>     if (!mt) {
>        brw_bo_unreference(bo);
>        return;
>     }
>  
> +   /* We got this BO from X11.  We cana't assume that we have coherent texture
> +    * access because X may suddenly decide to use it for scan-out which would
> +    * destroy coherency.
> +    */
> +   bo->cache_coherent = false;
> +
>     if (!intel_update_winsys_renderbuffer_miptree(brw, rb, mt,
>                                                   drawable->w, drawable->h,
>                                                   buffer->pitch)) {
> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> index d1cba46..910bb46 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> @@ -719,9 +719,6 @@ miptree_create(struct brw_context *brw,
>  
>     mt->etc_format = etc_format;
>  
> -   if (layout_flags & MIPTREE_LAYOUT_FOR_SCANOUT)
> -      mt->bo->cache_coherent = false;
> -
>     if (!(layout_flags & MIPTREE_LAYOUT_DISABLE_AUX))
>        intel_miptree_choose_aux_usage(brw, mt);
>  
> @@ -941,7 +938,7 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
>      * used for scanout so we need to flag that appropriately.
>      */
>     const uint32_t mt_layout_flags =
> -      is_winsys_image ? MIPTREE_LAYOUT_FOR_SCANOUT : MIPTREE_LAYOUT_DISABLE_AUX;
> +      is_winsys_image ? 0 : MIPTREE_LAYOUT_DISABLE_AUX;
>  
>     /* Disable creation of the texture's aux buffers because the driver exposes
>      * no EGL API to manage them. That is, there is no API for resolving the aux
> @@ -974,6 +971,13 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
>        }
>     }
>  
> +   /* If this is a window-system image, then we can no longer assume it's
> +    * cache-coherent because it may suddenly get scanned out which destroys
> +    * coherency.
> +    */
> +   if (is_winsys_image)
> +      image->bo->cache_coherent = false;
> +
>     if (!intel_miptree_alloc_aux(brw, mt)) {
>        intel_miptree_release(&mt);
>        return NULL;
> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> index 534ed6c..7636172 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> @@ -356,8 +356,6 @@ enum {
>     MIPTREE_LAYOUT_TILING_NONE              = 1 << 6,
>     MIPTREE_LAYOUT_TILING_ANY               = MIPTREE_LAYOUT_TILING_Y |
>                                               MIPTREE_LAYOUT_TILING_NONE,
> -
> -   MIPTREE_LAYOUT_FOR_SCANOUT              = 1 << 7,
>  };
>  
>  struct intel_mipmap_tree *intel_miptree_create(struct brw_context *brw,
> -- 
> 2.5.0.400.gff86faf
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list