From: Marek Olšák <marek.ol...@amd.com>

---
 src/amd/common/amd_family.h                   | 8 +++++---
 src/gallium/drivers/radeon/r600_pipe_common.c | 1 +
 src/gallium/drivers/radeonsi/si_pipe.c        | 4 +++-
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c | 7 ++++++-
 4 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/amd/common/amd_family.h b/src/amd/common/amd_family.h
index b09bbb8..8a6dad6 100644
--- a/src/amd/common/amd_family.h
+++ b/src/amd/common/amd_family.h
@@ -85,28 +85,30 @@ enum radeon_family {
     CHIP_HAWAII,
     CHIP_MULLINS,
     CHIP_TONGA,
     CHIP_ICELAND,
     CHIP_CARRIZO,
     CHIP_FIJI,
     CHIP_STONEY,
     CHIP_POLARIS10,
     CHIP_POLARIS11,
     CHIP_POLARIS12,
+    CHIP_VEGA10,
     CHIP_LAST,
 };
 
 enum chip_class {
     CLASS_UNKNOWN = 0,
     R300,
     R400,
     R500,
     R600,
     R700,
     EVERGREEN,
     CAYMAN,
-    SI,
-    CIK,
-    VI,
+    SI,  /* GFX6 */
+    CIK, /* GFX7 */
+    VI,  /* GFX8 */
+    GFX9,
 };
 
 #endif
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c 
b/src/gallium/drivers/radeon/r600_pipe_common.c
index b3b925e..7ec5703 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -772,20 +772,21 @@ static const char* r600_get_chip_name(struct 
r600_common_screen *rscreen)
        case CHIP_HAWAII: return "AMD HAWAII";
        case CHIP_MULLINS: return "AMD MULLINS";
        case CHIP_TONGA: return "AMD TONGA";
        case CHIP_ICELAND: return "AMD ICELAND";
        case CHIP_CARRIZO: return "AMD CARRIZO";
        case CHIP_FIJI: return "AMD FIJI";
        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_VEGA10: return "AMD VEGA10";
        default: return "AMD unknown";
        }
 }
 
 static void r600_disk_cache_create(struct r600_common_screen *rscreen)
 {
        /* Don't use the cache if shader dumping is enabled. */
        if (rscreen->debug_flags &
            (DBG_FS | DBG_VS | DBG_TCS | DBG_TES | DBG_GS | DBG_PS | DBG_CS))
                return;
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c 
b/src/gallium/drivers/radeonsi/si_pipe.c
index 277fa28..c66203e 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -744,21 +744,23 @@ static void si_handle_env_var_force_family(struct 
si_screen *sscreen)
        unsigned i;
 
        if (!family)
                return;
 
        for (i = CHIP_TAHITI; i < CHIP_LAST; i++) {
                if (!strcmp(family, r600_get_llvm_processor_name(i))) {
                        /* Override family and chip_class. */
                        sscreen->b.family = sscreen->b.info.family = i;
 
-                       if (i >= CHIP_TONGA)
+                       if (i >= CHIP_VEGA10)
+                               sscreen->b.chip_class = 
sscreen->b.info.chip_class = GFX9;
+                       else if (i >= CHIP_TONGA)
                                sscreen->b.chip_class = 
sscreen->b.info.chip_class = VI;
                        else if (i >= CHIP_BONAIRE)
                                sscreen->b.chip_class = 
sscreen->b.info.chip_class = CIK;
                        else
                                sscreen->b.chip_class = 
sscreen->b.info.chip_class = SI;
 
                        /* Don't submit any IBs. */
                        setenv("RADEON_NOOP", "1", 1);
                        return;
                }
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c 
b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
index 37e0140..25f08ef 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
@@ -212,21 +212,23 @@ static bool do_winsys_init(struct amdgpu_winsys *ws, int 
fd)
    switch (ws->info.pci_id) {
 #define CHIPSET(pci_id, name, cfamily) case pci_id: ws->info.family = 
CHIP_##cfamily; break;
 #include "pci_ids/radeonsi_pci_ids.h"
 #undef CHIPSET
 
    default:
       fprintf(stderr, "amdgpu: Invalid PCI ID.\n");
       goto fail;
    }
 
-   if (ws->info.family >= CHIP_TONGA)
+   if (ws->info.family >= CHIP_VEGA10)
+      ws->info.chip_class = GFX9;
+   else if (ws->info.family >= CHIP_TONGA)
       ws->info.chip_class = VI;
    else if (ws->info.family >= CHIP_BONAIRE)
       ws->info.chip_class = CIK;
    else if (ws->info.family >= CHIP_TAHITI)
       ws->info.chip_class = SI;
    else {
       fprintf(stderr, "amdgpu: Unknown family.\n");
       goto fail;
    }
 
@@ -296,20 +298,23 @@ static bool do_winsys_init(struct amdgpu_winsys *ws, int 
fd)
       ws->family = FAMILY_VI;
       ws->rev_id = VI_POLARIS10_P_A0;
       break;
    case CHIP_POLARIS11:
       ws->family = FAMILY_VI;
       ws->rev_id = VI_POLARIS11_M_A0;
       break;
    case CHIP_POLARIS12:
       ws->family = FAMILY_VI;
       ws->rev_id = VI_POLARIS12_V_A0;
+   case CHIP_VEGA10:
+      ws->family = FAMILY_AI;
+      ws->rev_id = AI_VEGA10_P_A0;
       break;
    default:
       fprintf(stderr, "amdgpu: Unknown family.\n");
       goto fail;
    }
 
    ws->addrlib = amdgpu_addr_create(ws);
    if (!ws->addrlib) {
       fprintf(stderr, "amdgpu: Cannot create addrlib.\n");
       goto fail;
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to