[Mesa-dev] [PATCH 2/3] radeonsi: add support for FIJI (v4)

Alex Deucher alexdeucher at gmail.com
Mon Aug 3 10:51:09 PDT 2015


v2: incorporate comments from Marek
v3: add missing fiji case in winsys init
    use tonga raster config (double check this)
v4: rebase on harvest patch

Reviewed-by: Marek Olšák <marek.olsak at amd.com> (v3)
Reviewed-by: Christian König <christian.koenig at amd.com> (v3)
Reviewed-by: David Zhang <david1.zhang at amd.com> (v3)
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
---
 src/gallium/drivers/radeon/r600_pipe_common.c | 2 ++
 src/gallium/drivers/radeon/radeon_winsys.h    | 1 +
 src/gallium/drivers/radeonsi/si_state.c       | 5 +++++
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c | 4 ++++
 4 files changed, 12 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 57a752f..f657adb 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -405,6 +405,7 @@ static const char* r600_get_name(struct pipe_screen* pscreen)
 	case CHIP_TONGA: return "AMD TONGA";
 	case CHIP_ICELAND: return "AMD ICELAND";
 	case CHIP_CARRIZO: return "AMD CARRIZO";
+	case CHIP_FIJI: return "AMD FIJI";
 	default: return "AMD unknown";
 	}
 }
@@ -525,6 +526,7 @@ const char *r600_get_llvm_processor_name(enum radeon_family family)
 	case CHIP_TONGA: return "tonga";
 	case CHIP_ICELAND: return "iceland";
 	case CHIP_CARRIZO: return "carrizo";
+	case CHIP_FIJI: return "fiji";
 	default: return "";
 	}
 }
diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h
index b1e91eb..513c2f9 100644
--- a/src/gallium/drivers/radeon/radeon_winsys.h
+++ b/src/gallium/drivers/radeon/radeon_winsys.h
@@ -136,6 +136,7 @@ enum radeon_family {
     CHIP_TONGA,
     CHIP_ICELAND,
     CHIP_CARRIZO,
+    CHIP_FIJI,
     CHIP_LAST,
 };
 
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index daa3131..d16f402 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -3149,6 +3149,11 @@ void si_init_config(struct si_context *sctx)
 		raster_config = 0x3a00161a;
 		raster_config_1 = 0x0000002e;
 		break;
+	case CHIP_FIJI:
+		/* Fiji should be same as Hawaii, but that causes corruption in some cases */
+		raster_config = 0x16000012; /* 0x3a00161a */
+		raster_config_1 = 0x0000002a; /* 0x0000002e */
+		break;
 	case CHIP_TONGA:
 		raster_config = 0x16000012;
 		raster_config_1 = 0x0000002a;
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
index e3b7577..7e003e4 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
@@ -228,6 +228,10 @@ static boolean do_winsys_init(struct amdgpu_winsys *ws)
       ws->family = FAMILY_CZ;
       ws->rev_id = CZ_CARRIZO_A0;
       break;
+   case CHIP_FIJI:
+      ws->family = FAMILY_VI;
+      ws->rev_id = VI_FIJI_P_A0;
+      break;
    default:
       fprintf(stderr, "amdgpu: Unknown family.\n");
       goto fail;
-- 
1.8.3.1



More information about the mesa-dev mailing list