amd: add Beige Goby support
authorMarek Olšák <marek.olsak@amd.com>
Fri, 16 Oct 2020 13:22:44 +0000 (09:22 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 24 May 2021 17:41:34 +0000 (17:41 +0000)
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10878>

src/amd/addrlib/src/amdgpu_asic_addr.h
src/amd/addrlib/src/gfx10/gfx10addrlib.cpp
src/amd/common/ac_gpu_info.c
src/amd/common/amd_family.c
src/amd/common/amd_family.h
src/amd/llvm/ac_llvm_util.c
src/gallium/drivers/radeon/radeon_vcn_dec.c
src/gallium/drivers/radeonsi/si_get.c

index cace1dc..d125bda 100644 (file)
 #define AMDGPU_SIENNA_CICHLID_RANGE     0x28, 0x32
 #define AMDGPU_NAVY_FLOUNDER_RANGE      0x32, 0x3C
 #define AMDGPU_DIMGREY_CAVEFISH_RANGE   0x3C, 0x46
+#define AMDGPU_BEIGE_GOBY_RANGE         0x46, 0x50
 
 #define AMDGPU_VANGOGH_RANGE    0x01, 0xFF
 
 #define ASICREV_IS_SIENNA_CICHLID(r)   ASICREV_IS(r, SIENNA_CICHLID)
 #define ASICREV_IS_NAVY_FLOUNDER(r)    ASICREV_IS(r, NAVY_FLOUNDER)
 #define ASICREV_IS_DIMGREY_CAVEFISH(r) ASICREV_IS(r, DIMGREY_CAVEFISH)
+#define ASICREV_IS_BEIGE_GOBY(r)       ASICREV_IS(r, BEIGE_GOBY)
 
 #define ASICREV_IS_VANGOGH(r)          ASICREV_IS(r, VANGOGH)
 
index 0ae6e09..814dff4 100644 (file)
@@ -1045,6 +1045,12 @@ ChipFamily Gfx10Lib::HwlConvertChipFamily(
                 m_settings.supportRbPlus   = 1;
                 m_settings.dccUnsup3DSwDis = 0;
             }
+
+            if (ASICREV_IS_BEIGE_GOBY(chipRevision))
+            {
+                m_settings.supportRbPlus   = 1;
+                m_settings.dccUnsup3DSwDis = 0;
+            }
             break;
 
         case FAMILY_VGH:
index 4280113..c2e2303 100644 (file)
@@ -620,6 +620,7 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info,
       identify_chip(SIENNA_CICHLID);
       identify_chip(NAVY_FLOUNDER);
       identify_chip(DIMGREY_CAVEFISH);
+      identify_chip(BEIGE_GOBY);
       break;
    case FAMILY_VGH:
       identify_chip(VANGOGH);
@@ -1012,6 +1013,7 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info,
          pc_lines = 1024;
          break;
       case CHIP_NAVI14:
+      case CHIP_BEIGE_GOBY:
          pc_lines = 512;
          break;
       case CHIP_VANGOGH:
index 8fd802b..73f2693 100644 (file)
@@ -96,6 +96,8 @@ const char *ac_get_family_name(enum radeon_family family)
       return "dimgrey_cavefish";
    case CHIP_VANGOGH:
       return "vangogh";
+   case CHIP_BEIGE_GOBY:
+      return "beige_goby";
    case CHIP_YELLOW_CARP:
       return "yellow_carp";
    default:
index 7f8a788..1165c64 100644 (file)
@@ -112,6 +112,7 @@ enum radeon_family
    CHIP_NAVY_FLOUNDER,
    CHIP_VANGOGH,
    CHIP_DIMGREY_CAVEFISH,
+   CHIP_BEIGE_GOBY,
    CHIP_YELLOW_CARP,
    CHIP_LAST,
 };
index 9deeb91..8ba7435 100644 (file)
@@ -173,6 +173,7 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
    case CHIP_SIENNA_CICHLID:
    case CHIP_NAVY_FLOUNDER:
    case CHIP_DIMGREY_CAVEFISH:
+   case CHIP_BEIGE_GOBY:
    case CHIP_VANGOGH:
    case CHIP_YELLOW_CARP:
       return "gfx1030";
index 438ec89..3b0edcf 100644 (file)
@@ -2455,6 +2455,7 @@ struct pipe_video_codec *radeon_create_decoder(struct pipe_context *context,
    case CHIP_SIENNA_CICHLID:
    case CHIP_NAVY_FLOUNDER:
    case CHIP_DIMGREY_CAVEFISH:
+   case CHIP_BEIGE_GOBY:
    case CHIP_VANGOGH:
    case CHIP_YELLOW_CARP:
       dec->reg.data0 = RDECODE_VCN2_5_GPCOM_VCPU_DATA0;
index c5b7edd..f7d4c66 100644 (file)
@@ -552,7 +552,7 @@ static int si_get_video_param(struct pipe_screen *screen, enum pipe_video_profil
    switch (param) {
    case PIPE_VIDEO_CAP_SUPPORTED:
       if (codec < PIPE_VIDEO_FORMAT_MPEG4_AVC &&
-          sscreen->info.family >= CHIP_YELLOW_CARP)
+          sscreen->info.family >= CHIP_BEIGE_GOBY)
          return false;
       switch (codec) {
       case PIPE_VIDEO_FORMAT_MPEG12: