From: Eric Anholt Date: Wed, 6 May 2020 22:38:46 +0000 (-0700) Subject: freedreno/a6xx: Fix UBWC blockheight for RG8. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b5db2a257413e2c570b49b8c2171166592f3e093;p=mesa.git freedreno/a6xx: Fix UBWC blockheight for RG8. Using texturator on a P3A at 1024x1024, RG8 has log2w/h of 6x7 instead of R16I/UI's 6x8. The other blockw/h I verified other than cpp=1 (R8/R8I/R8UI didn't use UBWC) and 32 (would need a bigger type). Part-of: --- diff --git a/src/freedreno/fdl/fd6_layout.c b/src/freedreno/fdl/fd6_layout.c index d6a83bfdd4a..336ca673b60 100644 --- a/src/freedreno/fdl/fd6_layout.c +++ b/src/freedreno/fdl/fd6_layout.c @@ -39,6 +39,9 @@ static const struct tile_alignment { unsigned basealign; unsigned pitchalign; unsigned heightalign; + /* UBWC block width/height. Used in size alignment, and calculating a + * descriptor's FLAG_BUFFER_LOG2W/H for mipmapping. + */ uint8_t ubwc_blockwidth; uint8_t ubwc_blockheight; } tile_alignment[] = { @@ -56,7 +59,7 @@ static const struct tile_alignment { [64] = { 256, 64, 16 }, /* special cases for r8g8: */ - [0] = { 256, 64, 32, 16, 4 }, + [0] = { 256, 64, 32, 16, 8 }, }; #define RGB_TILE_WIDTH_ALIGNMENT 64