Mesa (master): freedreno/a6xx: Fix UBWC blockheight for RG8.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed May 13 19:39:46 UTC 2020


Module: Mesa
Branch: master
Commit: b5db2a257413e2c570b49b8c2171166592f3e093
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5db2a257413e2c570b49b8c2171166592f3e093

Author: Eric Anholt <eric at anholt.net>
Date:   Wed May  6 15:38:46 2020 -0700

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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4931>

---

 src/freedreno/fdl/fd6_layout.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

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



More information about the mesa-commit mailing list