Mesa (master): radeonsi: add support for Sienna Cichlid

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 9 16:46:26 UTC 2020


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu Mar 26 22:08:18 2020 -0400

radeonsi: add support for Sienna Cichlid

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5383>

---

 src/amd/addrlib/src/amdgpu_asic_addr.h        | 2 ++
 src/amd/addrlib/src/gfx10/gfx10addrlib.cpp    | 6 ++++++
 src/amd/common/ac_gpu_info.c                  | 6 +++++-
 src/amd/common/amd_family.h                   | 1 +
 src/amd/llvm/ac_llvm_util.c                   | 2 ++
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c | 4 +++-
 6 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/amd/addrlib/src/amdgpu_asic_addr.h b/src/amd/addrlib/src/amdgpu_asic_addr.h
index 6b598a39df8..3307f1941a6 100644
--- a/src/amd/addrlib/src/amdgpu_asic_addr.h
+++ b/src/amd/addrlib/src/amdgpu_asic_addr.h
@@ -97,6 +97,7 @@
 #define AMDGPU_NAVI10_RANGE     0x01, 0x0A
 #define AMDGPU_NAVI12_RANGE     0x0A, 0x14
 #define AMDGPU_NAVI14_RANGE     0x14, 0x28
+#define AMDGPU_SIENNA_RANGE     0x28, 0x32
 
 #define AMDGPU_EXPAND_FIX(x) x
 #define AMDGPU_RANGE_HELPER(val, min, max) ((val >= min) && (val < max))
@@ -144,5 +145,6 @@
 #define ASICREV_IS_NAVI10_P(r)         ASICREV_IS(r, NAVI10)
 #define ASICREV_IS_NAVI12(r)           ASICREV_IS(r, NAVI12)
 #define ASICREV_IS_NAVI14(r)           ASICREV_IS(r, NAVI14)
+#define ASICREV_IS_SIENNA_M(r)         ASICREV_IS(r, SIENNA)
 
 #endif // _AMDGPU_ASIC_ADDR_H
diff --git a/src/amd/addrlib/src/gfx10/gfx10addrlib.cpp b/src/amd/addrlib/src/gfx10/gfx10addrlib.cpp
index eea3deefff8..49f31550c19 100644
--- a/src/amd/addrlib/src/gfx10/gfx10addrlib.cpp
+++ b/src/amd/addrlib/src/gfx10/gfx10addrlib.cpp
@@ -943,6 +943,12 @@ ChipFamily Gfx10Lib::HwlConvertChipFamily(
     {
         case FAMILY_NV:
             m_settings.isDcn2 = 1;
+
+            if (ASICREV_IS_SIENNA_M(chipRevision))
+            {
+                m_settings.supportRbPlus   = 1;
+                m_settings.dccUnsup3DSwDis = 0;
+            }
             break;
         default:
             ADDR_ASSERT(!"Unknown chip family");
diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c
index 517de226bd9..dbf5c930f46 100644
--- a/src/amd/common/ac_gpu_info.c
+++ b/src/amd/common/ac_gpu_info.c
@@ -401,6 +401,7 @@ bool ac_query_gpu_info(int fd, void *dev_p,
 		identify_chip(NAVI10);
 		identify_chip(NAVI12);
 		identify_chip(NAVI14);
+		identify_chip(SIENNA);
 		break;
 	}
 
@@ -410,7 +411,9 @@ bool ac_query_gpu_info(int fd, void *dev_p,
 		return false;
 	}
 
-	if (info->family >= CHIP_NAVI10)
+	if (info->family >= CHIP_SIENNA)
+		info->chip_class = GFX10_3;
+	else if (info->family >= CHIP_NAVI10)
 		info->chip_class = GFX10;
 	else if (info->family >= CHIP_VEGA10)
 		info->chip_class = GFX9;
@@ -712,6 +715,7 @@ bool ac_query_gpu_info(int fd, void *dev_p,
 		case CHIP_RENOIR:
 		case CHIP_NAVI10:
 		case CHIP_NAVI12:
+		case CHIP_SIENNA:
 			pc_lines = 1024;
 			break;
 		case CHIP_NAVI14:
diff --git a/src/amd/common/amd_family.h b/src/amd/common/amd_family.h
index 8262a3a40b7..f546c4f96e9 100644
--- a/src/amd/common/amd_family.h
+++ b/src/amd/common/amd_family.h
@@ -102,6 +102,7 @@ enum radeon_family {
     CHIP_NAVI10,
     CHIP_NAVI12,
     CHIP_NAVI14,
+    CHIP_SIENNA,
     CHIP_LAST,
 };
 
diff --git a/src/amd/llvm/ac_llvm_util.c b/src/amd/llvm/ac_llvm_util.c
index 5dc4c934ba0..10a931b150f 100644
--- a/src/amd/llvm/ac_llvm_util.c
+++ b/src/amd/llvm/ac_llvm_util.c
@@ -157,6 +157,8 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
 		return "gfx1011";
 	case CHIP_NAVI14:
 		return "gfx1012";
+	case CHIP_SIENNA:
+		return "gfx1030";
 	default:
 		return "";
 	}
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
index 78816d80d1c..2ef7eaa7642 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
@@ -63,7 +63,9 @@ static void handle_env_var_force_family(struct amdgpu_winsys *ws)
             ws->info.family = i;
             ws->info.name = "GCN-NOOP";
 
-            if (i >= CHIP_NAVI10)
+            if (i >= CHIP_SIENNA)
+               ws->info.chip_class = GFX10_3;
+            else if (i >= CHIP_NAVI10)
                ws->info.chip_class = GFX10;
             else if (i >= CHIP_VEGA10)
                ws->info.chip_class = GFX9;



More information about the mesa-commit mailing list