From 767ad50a10d01274b1d1a877add12b5552ba6984 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Wed, 29 Jul 2015 15:40:46 -0400 Subject: [PATCH] radeonsi: add support for FIJI (v4) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 (v3) Reviewed-by: Christian König (v3) Reviewed-by: David Zhang (v3) Signed-off-by: Alex Deucher --- 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 a08e841..ed5d1da 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -411,6 +411,7 @@ static const char* r600_get_chip_name(struct r600_common_screen *rscreen) 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"; } } @@ -538,6 +539,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 616816e..d7424ee 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 34ef9e4..21689e7 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -3226,6 +3226,11 @@ static 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 9020b1c..f57f45b 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c @@ -227,6 +227,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; -- 2.7.4