radeonsi: add support for VegaM
authorMarek Olšák <marek.olsak@amd.com>
Mon, 27 Feb 2017 22:28:07 +0000 (23:28 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 18 Apr 2018 18:45:33 +0000 (14:45 -0400)
Acked-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
include/pci_ids/radeonsi_pci_ids.h
src/amd/common/ac_llvm_util.c
src/amd/common/ac_surface.c
src/amd/common/amd_family.h
src/gallium/drivers/radeonsi/si_get.c
src/gallium/drivers/radeonsi/si_pipe.c
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_state.c
src/gallium/drivers/radeonsi/si_state_draw.c

index 62b130307a3a2dbec24836c9195a48519b293ecf..6386d21a19f213c9b59ca7f50f3c41789dcc7779 100644 (file)
@@ -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)
index f3db1c5a4a43ddd0b1baae1417d77f296ef2f07b..5b52381a7f17034be95e57ece3fe0dca0d47e999 100644 (file)
@@ -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:
index 7558dd91e342a525db83b7328f5fb3dfaa102b26..a23952717e3831092cc8a20549e4fc127c840daf 100644 (file)
@@ -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);
index 285111f2a2ad422845b1238c1320b462576c4656..6410368f2f80951200a696074014e40a98e34df9 100644 (file)
@@ -92,6 +92,7 @@ enum radeon_family {
     CHIP_POLARIS10,
     CHIP_POLARIS11,
     CHIP_POLARIS12,
+    CHIP_VEGAM,
     CHIP_VEGA10,
     CHIP_VEGA12,
     CHIP_RAVEN,
index fb1c6eca1357f32616e946176874e24ae661015e..cb28920bbeda0666989d0a7ff08b0b2674cd80f1 100644 (file)
@@ -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";
index bf88346ca1ef2e0d45a25504b90fdecce3d85be6..f2fdb984139d7159a9ff4a219aaeaacabe71ede2 100644 (file)
@@ -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:
index 8c62d53e2addfb33adaf03f15c5bffa9a26d6b80..b4970f14e347abde776cd528b56aacfa3373ed2f 100644 (file)
@@ -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:
index 3faf36f2470d6d34e7be2c0e1a1bebd30c7fd7f1..b5fe6726b9a7b6a87a9424351f2f82ad0a374524 100644 (file)
@@ -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;
index 96dfd93645df6f152b49223d41957b15b0b77653..81019e1a0ba31dc40991462d4e886b669aefda5d 100644 (file)
@@ -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;