[Mesa-dev] [PATCH 068/140] radeonsi/gfx9: set the LLVM processor, require LLVM 5.0

Marek Olšák maraeo at gmail.com
Mon Mar 20 22:43:18 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

---
 src/gallium/drivers/radeon/r600_pipe_common.c | 2 ++
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 7ec5703..052054b 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -945,20 +945,22 @@ const char *r600_get_llvm_processor_name(enum radeon_family family)
 	case CHIP_CARRIZO: return "carrizo";
 	case CHIP_FIJI:
 		return "fiji";
 	case CHIP_STONEY:
 		return "stoney";
 	case CHIP_POLARIS10:
 		return HAVE_LLVM >= 0x0309 ? "polaris10" : "carrizo";
 	case CHIP_POLARIS11:
 	case CHIP_POLARIS12: /* same as polaris11 */
 		return HAVE_LLVM >= 0x0309 ? "polaris11" : "carrizo";
+	case CHIP_VEGA10:
+		return "gfx900";
 	default:
 		return "";
 	}
 }
 
 static int r600_get_compute_param(struct pipe_screen *screen,
         enum pipe_shader_ir ir_type,
         enum pipe_compute_cap param,
         void *ret)
 {
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
index 25f08ef..4becd2a 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
@@ -225,20 +225,27 @@ static bool do_winsys_init(struct amdgpu_winsys *ws, int fd)
       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;
    }
 
+   /* LLVM 5.0 is required for GFX9. */
+   if (ws->info.chip_class >= GFX9 && HAVE_LLVM < 0x0500) {
+      fprintf(stderr, "amdgpu: LLVM 5.0 is required, got LLVM %i.%i\n",
+              HAVE_LLVM >> 8, HAVE_LLVM & 255);
+      goto fail;
+   }
+
    /* family and rev_id are for addrlib */
    switch (ws->info.family) {
    case CHIP_TAHITI:
       ws->family = FAMILY_SI;
       ws->rev_id = SI_TAHITI_P_A0;
       break;
    case CHIP_PITCAIRN:
       ws->family = FAMILY_SI;
       ws->rev_id = SI_PITCAIRN_PM_A0;
       break;
-- 
2.7.4



More information about the mesa-dev mailing list