[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