Mesa (master): radeonsi: add support for VegaM

Marek Olšák mareko at kemper.freedesktop.org
Wed Apr 18 18:46:19 UTC 2018


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon Feb 27 23:28:07 2017 +0100

radeonsi: add support for VegaM

Acked-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 include/pci_ids/radeonsi_pci_ids.h           | 3 +++
 src/amd/common/ac_llvm_util.c                | 1 +
 src/amd/common/ac_surface.c                  | 4 ++++
 src/amd/common/amd_family.h                  | 1 +
 src/gallium/drivers/radeonsi/si_get.c        | 3 ++-
 src/gallium/drivers/radeonsi/si_pipe.c       | 1 +
 src/gallium/drivers/radeonsi/si_shader.c     | 1 +
 src/gallium/drivers/radeonsi/si_state.c      | 4 ++++
 src/gallium/drivers/radeonsi/si_state_draw.c | 3 ++-
 9 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/include/pci_ids/radeonsi_pci_ids.h b/include/pci_ids/radeonsi_pci_ids.h
index 62b130307a..6386d21a19 100644
--- a/include/pci_ids/radeonsi_pci_ids.h
+++ b/include/pci_ids/radeonsi_pci_ids.h
@@ -216,6 +216,9 @@ CHIPSET(0x6995, POLARIS12)
 CHIPSET(0x6997, POLARIS12)
 CHIPSET(0x699F, POLARIS12)
 
+CHIPSET(0x694C, VEGAM)
+CHIPSET(0x694E, VEGAM)
+
 CHIPSET(0x6860, VEGA10)
 CHIPSET(0x6861, VEGA10)
 CHIPSET(0x6862, VEGA10)
diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c
index f3db1c5a4a..5b52381a7f 100644
--- a/src/amd/common/ac_llvm_util.c
+++ b/src/amd/common/ac_llvm_util.c
@@ -112,6 +112,7 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
 		return "polaris10";
 	case CHIP_POLARIS11:
 	case CHIP_POLARIS12:
+	case CHIP_VEGAM:
 		return "polaris11";
 	case CHIP_VEGA10:
 	case CHIP_VEGA12:
diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
index 7558dd91e3..a23952717e 100644
--- a/src/amd/common/ac_surface.c
+++ b/src/amd/common/ac_surface.c
@@ -131,6 +131,10 @@ static void addrlib_family_rev_id(enum radeon_family family,
 		*addrlib_family = FAMILY_VI;
 		*addrlib_revid = get_first(AMDGPU_POLARIS12_RANGE);
 		break;
+	case CHIP_VEGAM:
+		*addrlib_family = FAMILY_VI;
+		*addrlib_revid = get_first(AMDGPU_VEGAM_RANGE);
+		break;
 	case CHIP_VEGA10:
 		*addrlib_family = FAMILY_AI;
 		*addrlib_revid = get_first(AMDGPU_VEGA10_RANGE);
diff --git a/src/amd/common/amd_family.h b/src/amd/common/amd_family.h
index 285111f2a2..6410368f2f 100644
--- a/src/amd/common/amd_family.h
+++ b/src/amd/common/amd_family.h
@@ -92,6 +92,7 @@ enum radeon_family {
     CHIP_POLARIS10,
     CHIP_POLARIS11,
     CHIP_POLARIS12,
+    CHIP_VEGAM,
     CHIP_VEGA10,
     CHIP_VEGA12,
     CHIP_RAVEN,
diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c
index fb1c6eca13..cb28920bbe 100644
--- a/src/gallium/drivers/radeonsi/si_get.c
+++ b/src/gallium/drivers/radeonsi/si_get.c
@@ -71,10 +71,11 @@ const char *si_get_family_name(const struct si_screen *sscreen)
 	case CHIP_ICELAND: return "AMD ICELAND";
 	case CHIP_CARRIZO: return "AMD CARRIZO";
 	case CHIP_FIJI: return "AMD FIJI";
+	case CHIP_STONEY: return "AMD STONEY";
 	case CHIP_POLARIS10: return "AMD POLARIS10";
 	case CHIP_POLARIS11: return "AMD POLARIS11";
 	case CHIP_POLARIS12: return "AMD POLARIS12";
-	case CHIP_STONEY: return "AMD STONEY";
+	case CHIP_VEGAM: return "AMD VEGAM";
 	case CHIP_VEGA10: return "AMD VEGA10";
 	case CHIP_VEGA12: return "AMD VEGA12";
 	case CHIP_RAVEN: return "AMD RAVEN";
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index bf88346ca1..f2fdb98413 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -686,6 +686,7 @@ static bool si_init_gs_info(struct si_screen *sscreen)
 	case CHIP_POLARIS10:
 	case CHIP_POLARIS11:
 	case CHIP_POLARIS12:
+	case CHIP_VEGAM:
 		sscreen->gs_table_depth = 32;
 		return true;
 	default:
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 8c62d53e2a..b4970f14e3 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -5463,6 +5463,7 @@ static void si_calculate_max_simd_waves(struct si_shader *shader)
 	case CHIP_POLARIS10:
 	case CHIP_POLARIS11:
 	case CHIP_POLARIS12:
+	case CHIP_VEGAM:
 		max_simd_waves = 8;
 		break;
 	default:
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 3faf36f247..b5fe6726b9 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -4783,6 +4783,10 @@ static void si_set_raster_config(struct si_context *sctx, struct si_pm4_state *p
 			raster_config_1 = 0x0000002e;
 		}
 		break;
+	case CHIP_VEGAM:
+		raster_config = 0x3a00161a;
+		raster_config_1 = 0x0000002e;
+		break;
 	case CHIP_POLARIS10:
 		raster_config = 0x16000012;
 		raster_config_1 = 0x0000002a;
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index 96dfd93645..81019e1a0b 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -362,7 +362,8 @@ si_get_init_multi_vgt_param(struct si_screen *sscreen,
 				    sscreen->info.family == CHIP_FIJI ||
 				    sscreen->info.family == CHIP_POLARIS10 ||
 				    sscreen->info.family == CHIP_POLARIS11 ||
-				    sscreen->info.family == CHIP_POLARIS12)
+				    sscreen->info.family == CHIP_POLARIS12 ||
+				    sscreen->info.family == CHIP_VEGAM)
 					partial_vs_wave = true;
 			} else {
 				partial_vs_wave = true;




More information about the mesa-commit mailing list