[Mesa-dev] [PATCH 121/140] radeonsi/gfx9: don't write mipmap level offsets to BO metadata

Marek Olšák maraeo at gmail.com
Mon Mar 20 22:49:07 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

GFX9 doesn't have (usable) mipmap offsets.
---
 src/gallium/drivers/radeonsi/si_state.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 1f1b4db..82f2793 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -4052,12 +4052,15 @@ static void si_query_opaque_metadata(struct r600_common_screen *rscreen,
 
 	/* Dwords [2:9] contain the image descriptor. */
 	memcpy(&md->metadata[2], desc, sizeof(desc));
+	md->size_metadata = 10 * 4;
 
 	/* Dwords [10:..] contain the mipmap level offsets. */
-	for (i = 0; i <= res->last_level; i++)
-		md->metadata[10+i] = rtex->surface.u.legacy.level[i].offset >> 8;
+	if (rscreen->chip_class <= VI) {
+		for (i = 0; i <= res->last_level; i++)
+			md->metadata[10+i] = rtex->surface.u.legacy.level[i].offset >> 8;
 
-	md->size_metadata = (11 + res->last_level) * 4;
+		md->size_metadata += (1 + res->last_level) * 4;
+	}
 }
 
 static void si_apply_opaque_metadata(struct r600_common_screen *rscreen,
-- 
2.7.4



More information about the mesa-dev mailing list