From: Eric Anholt Date: Tue, 26 Nov 2019 23:25:29 +0000 (-0800) Subject: freedreno: Switch the 16-bit workaround to match what turnip does. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=de619d750328b3d604d3829d6fc45da9423f78a1;p=mesa.git freedreno: Switch the 16-bit workaround to match what turnip does. Prevents regressions on argb1555 and rgb565 when making turnip use freedreno's layout. Reviewed-by: Kristian H. Kristensen --- diff --git a/src/freedreno/fdl/fd6_layout.c b/src/freedreno/fdl/fd6_layout.c index f9499b3a8a6..82b3a3e715c 100644 --- a/src/freedreno/fdl/fd6_layout.c +++ b/src/freedreno/fdl/fd6_layout.c @@ -35,7 +35,7 @@ static const struct { unsigned heightalign; } tile_alignment[] = { [1] = { 128, 32 }, - [2] = { 64, 32 }, + [2] = { 128, 16 }, [3] = { 64, 32 }, [4] = { 64, 16 }, [6] = { 64, 16 }, @@ -47,8 +47,8 @@ static const struct { [48] = { 64, 16 }, [64] = { 64, 16 }, - /* special cases for r16: */ - [0] = { 128, 16 }, + /* special cases for r8g8: */ + [0] = { 64, 32 }, }; /* NOTE: good way to test this is: (for example) @@ -81,7 +81,7 @@ fdl6_layout(struct fdl_layout *layout, int ta = layout->cpp; /* The z16/r16 formats seem to not play by the normal tiling rules: */ - if ((layout->cpp == 2) && (util_format_get_nr_components(format) == 1)) + if ((layout->cpp == 2) && (util_format_get_nr_components(format) == 2)) ta = 0; uint32_t alignment;