Mesa (master): freedreno/a6xx: add a618 support

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 29 17:12:52 UTC 2019


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

Author: Rob Clark <robdclark at chromium.org>
Date:   Thu Oct 24 14:29:39 2019 -0700

freedreno/a6xx: add a618 support

Signed-off-by: Rob Clark <robdclark at chromium.org>

---

 src/gallium/drivers/freedreno/a6xx/fd6_context.c | 23 +++++++++++++++++++++++
 src/gallium/drivers/freedreno/a6xx/fd6_gmem.c    |  3 +++
 src/gallium/drivers/freedreno/freedreno_screen.c |  1 +
 3 files changed, 27 insertions(+)

diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_context.c b/src/gallium/drivers/freedreno/a6xx/fd6_context.c
index ec8b871a28f..1247b903501 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_context.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_context.c
@@ -92,6 +92,29 @@ fd6_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
 
 
 	switch (screen->gpu_id) {
+	case 618:
+/*
+GRAS_BIN_CONTROL:
+RB_BIN_CONTROL:
+  - a618 doesn't appear to set .USE_VIZ; also bin size diffs
+
+RB_CCU_CNTL:
+  - 0x3c400004 -> 0x3e400004
+  - 0x10000000 -> 0x08000000
+
+RB_UNKNOWN_8E04:               <-- see stencil-0000.rd.gz
+  - 0x01000000 -> 0x00100000
+
+SP_UNKNOWN_A0F8:
+PC_UNKNOWN_9805:
+  - 0x1 -> 0
+ */
+		fd6_ctx->magic.RB_UNKNOWN_8E04_blit = 0x00100000;
+		fd6_ctx->magic.RB_CCU_CNTL_gmem     = 0x3e400004;
+		fd6_ctx->magic.RB_CCU_CNTL_bypass   = 0x08000000;
+		fd6_ctx->magic.PC_UNKNOWN_9805 = 0x0;
+		fd6_ctx->magic.SP_UNKNOWN_A0F8 = 0x0;
+		break;
 	case 630:
 		fd6_ctx->magic.RB_UNKNOWN_8E04_blit = 0x01000000;
 		// NOTE: newer blob using 0x3c400004, need to revisit:
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
index 6903d9c854e..d9fabcbaa23 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
@@ -801,6 +801,9 @@ fd6_emit_tile_init(struct fd_batch *batch)
 		 * the reset of these cmds:
 		 */
 
+// NOTE a618 not setting .USE_VIZ .. from a quick check on a630, it
+// does not appear that this bit changes much (ie. it isn't actually
+// .USE_VIZ like previous gens)
 		set_bin_size(ring, gmem->bin_w, gmem->bin_h,
 				A6XX_RB_BIN_CONTROL_USE_VIZ | 0x6000000);
 
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c
index 0584ace15cc..3ee73c2c496 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -904,6 +904,7 @@ fd_screen_create(struct fd_device *dev, struct renderonly *ro)
 	case 540:
 		fd5_screen_init(pscreen);
 		break;
+	case 618:
 	case 630:
 		fd6_screen_init(pscreen);
 		break;




More information about the mesa-commit mailing list