[Mesa-dev] [PATCH] i965: Correct a mistake that always forced texture tiling.

Ben Widawsky ben at bwidawsk.net
Wed Aug 5 17:12:27 PDT 2015


On Wed, Aug 05, 2015 at 12:08:31PM -0700, Matt Turner wrote:
> Regression since commit 3a31876600, when tiling modes were moved into
> layout_flags.
> 
> The relevant enum values are
> 
>    MIPTREE_LAYOUT_ALLOC_YTILED = 1 << 5
>    MIPTREE_LAYOUT_ALLOC_XTILED = 1 << 6
>    MIPTREE_LAYOUT_ALLOC_ANY_TILED = MIPTREE_LAYOUT_ALLOC_YTILED |
>                                     MIPTREE_LAYOUT_ALLOC_XTILED
>    MIPTREE_LAYOUT_ALLOC_LINEAR = 1 << 7
> 
> so the expression (layout_flags & MIPTREE_LAYOUT_ALLOC_ANY_TILED) can
> never produce a value of MIPTREE_LAYOUT_ALLOC_LINEAR.
> 
> The enum this replaced was
> 
>    enum intel_miptree_tiling_mode {
>       INTEL_MIPTREE_TILING_ANY,
>       INTEL_MIPTREE_TILING_Y,
>       INTEL_MIPTREE_TILING_NONE,
>    };
> 
> where "ANY" means "Y" or "NONE" (i.e., linear). As such, remove the
> unused (and worse, unhandled) MIPTREE_LAYOUT_ALLOC_XTILED and redefine
> MIPTREE_LAYOUT_ALLOC_ANY_TILED to mean what it did before.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91513
> ---
>  src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> index 89fdccb..506c258 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> @@ -537,13 +537,11 @@ enum {
>     MIPTREE_LAYOUT_FORCE_HALIGN16           = 1 << 4,
>  
>     MIPTREE_LAYOUT_ALLOC_YTILED             = 1 << 5,
> -   MIPTREE_LAYOUT_ALLOC_XTILED             = 1 << 6,
> -   MIPTREE_LAYOUT_ALLOC_LINEAR             = 1 << 7,
> +   MIPTREE_LAYOUT_ALLOC_LINEAR             = 1 << 6,
> +   MIPTREE_LAYOUT_ALLOC_ANY_TILED          = MIPTREE_LAYOUT_ALLOC_YTILED |
> +                                             MIPTREE_LAYOUT_ALLOC_LINEAR,
>  };
>  
> -#define MIPTREE_LAYOUT_ALLOC_ANY_TILED (MIPTREE_LAYOUT_ALLOC_YTILED | \
> -                                        MIPTREE_LAYOUT_ALLOC_XTILED)
> -
>  struct intel_mipmap_tree *intel_miptree_create(struct brw_context *brw,
>                                                 GLenum target,
>  					       mesa_format format,
> 

This is going further in the wrong direction in my opinion (it mimics the old
code more closely, but that that wasn't my original goal). "LINEAR" is not a
tiled type. However, it fixes the bug, and you like it this way, so just do:

s/MIPTREE_LAYOUT_ALLOC_ANY_TILED/MIPTREE_LAYOUT_ALLOC_ANY/

and it's
Reviewed-by: Ben Widawsky <ben at bwidawsk.net>


More information about the mesa-dev mailing list