[Mesa-dev] [PATCH 1/2] radeonsi: add Polaris12 support (v3)

Zhang, Jerry Jerry.Zhang at amd.com
Wed Dec 21 01:27:25 UTC 2016


Hi Alex and Marek,

> >
> > Reviewed-by: Marek Olšák <marek.olsak at amd.com>
> >
> > Has it ever been tested with Mesa?
> 
> It was tested when the code was originally written and the hybrid stack (including
> mesa MM) has been tested recently.  I don't have a
> polaris12 card at the moment.
Just now I verified it again.
I could play h264, h265, mp4 as our test procedure.

It's Tested-by: Junwei Zhang <Jerry.Zhang at amd.com>

Regards,
Jerry (Junwei Zhang)

SRDC SW Development
AMD Shanghai
_____________________________________


> -----Original Message-----
> From: Alex Deucher [mailto:alexdeucher at gmail.com]
> Sent: Wednesday, December 21, 2016 3:07
> To: Marek Olšák
> Cc: mesa-dev at lists.freedesktop.org; Zhang, Jerry
> Subject: Re: [Mesa-dev] [PATCH 1/2] radeonsi: add Polaris12 support (v3)
> 
> On Tue, Dec 20, 2016 at 1:34 PM, Marek Olšák <maraeo at gmail.com> wrote:
> > For the series:
> >
> > Reviewed-by: Marek Olšák <marek.olsak at amd.com>
> >
> > Has it ever been tested with Mesa?
> 
> It was tested when the code was originally written and the hybrid stack (including
> mesa MM) has been tested recently.  I don't have a
> polaris12 card at the moment.
> 
> Alex
> 
> >
> > Marek
> >
> > On Mon, Dec 19, 2016 at 11:45 PM, Alex Deucher <alexdeucher at gmail.com>
> wrote:
> >> From: Junwei Zhang <Jerry.Zhang at amd.com>
> >>
> >> v2: use gfxip names for llvm 4.0+
> >> v3: use tonga for llvm <= 3.8
> >>
> >> Signed-off-by: Junwei Zhang <Jerry.Zhang at amd.com>
> >> Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
> >> Acked-by: Christian König <christian.koenig at amd.com>
> >> ---
> >>  src/amd/addrlib/r800/ciaddrlib.cpp            | 3 ++-
> >>  src/amd/addrlib/r800/ciaddrlib.h              | 1 +
> >>  src/amd/common/amd_family.h                   | 1 +
> >>  src/amd/common/amdgpu_id.h                    | 4 ++++
> >>  src/gallium/drivers/radeon/r600_pipe_common.c | 3 +++
> >>  src/gallium/drivers/radeon/radeon_vce.c       | 3 ++-
> >>  src/gallium/drivers/radeonsi/si_pipe.c        | 1 +
> >>  src/gallium/drivers/radeonsi/si_state.c       | 1 +
> >>  src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c | 4 ++++
> >>  9 files changed, 19 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/src/amd/addrlib/r800/ciaddrlib.cpp
> >> b/src/amd/addrlib/r800/ciaddrlib.cpp
> >> index 7c5d29a..c726c4d 100644
> >> --- a/src/amd/addrlib/r800/ciaddrlib.cpp
> >> +++ b/src/amd/addrlib/r800/ciaddrlib.cpp
> >> @@ -353,6 +353,7 @@ AddrChipFamily CIAddrLib::HwlConvertChipFamily(
> >>              m_settings.isFiji            = ASICREV_IS_FIJI_P(uChipRevision);
> >>              m_settings.isPolaris10       = ASICREV_IS_POLARIS10_P(uChipRevision);
> >>              m_settings.isPolaris11       = ASICREV_IS_POLARIS11_M(uChipRevision);
> >> +            m_settings.isPolaris12       = ASICREV_IS_POLARIS12_V(uChipRevision);
> >>              break;
> >>          case FAMILY_CZ:
> >>              m_settings.isCarrizo         = 1;
> >> @@ -417,7 +418,7 @@ BOOL_32 CIAddrLib::HwlInitGlobalParams(
> >>      {
> >>          m_pipes = 16;
> >>      }
> >> -    else if (m_settings.isPolaris11)
> >> +    else if (m_settings.isPolaris11 || m_settings.isPolaris12)
> >>      {
> >>          m_pipes = 4;
> >>      }
> >> diff --git a/src/amd/addrlib/r800/ciaddrlib.h
> >> b/src/amd/addrlib/r800/ciaddrlib.h
> >> index de995fa..2c9a4cc 100644
> >> --- a/src/amd/addrlib/r800/ciaddrlib.h
> >> +++ b/src/amd/addrlib/r800/ciaddrlib.h
> >> @@ -62,6 +62,7 @@ struct CIChipSettings
> >>          UINT_32 isFiji            : 1;
> >>          UINT_32 isPolaris10       : 1;
> >>          UINT_32 isPolaris11       : 1;
> >> +        UINT_32 isPolaris12       : 1;
> >>          // VI fusion (Carrizo)
> >>          UINT_32 isCarrizo         : 1;
> >>      };
> >> diff --git a/src/amd/common/amd_family.h
> >> b/src/amd/common/amd_family.h index 6a713ad..b09bbb8 100644
> >> --- a/src/amd/common/amd_family.h
> >> +++ b/src/amd/common/amd_family.h
> >> @@ -91,6 +91,7 @@ enum radeon_family {
> >>      CHIP_STONEY,
> >>      CHIP_POLARIS10,
> >>      CHIP_POLARIS11,
> >> +    CHIP_POLARIS12,
> >>      CHIP_LAST,
> >>  };
> >>
> >> diff --git a/src/amd/common/amdgpu_id.h b/src/amd/common/amdgpu_id.h
> >> index f91df55..1683a5a 100644
> >> --- a/src/amd/common/amdgpu_id.h
> >> +++ b/src/amd/common/amdgpu_id.h
> >> @@ -142,6 +142,8 @@ enum {
> >>
> >>         VI_POLARIS11_M_A0 = 90,
> >>
> >> +       VI_POLARIS12_V_A0 = 100,
> >> +
> >>         VI_UNKNOWN        = 0xFF
> >>  };
> >>
> >> @@ -156,6 +158,8 @@ enum {
> >>         ((eChipRev >= VI_POLARIS10_P_A0) && (eChipRev <
> VI_POLARIS11_M_A0))
> >>  #define ASICREV_IS_POLARIS11_M(eChipRev)   \
> >>         (eChipRev >= VI_POLARIS11_M_A0)
> >> +#define ASICREV_IS_POLARIS12_V(eChipRev)\
> >> +       (eChipRev >= VI_POLARIS12_V_A0)
> >>
> >>  /* CZ specific rev IDs */
> >>  enum {
> >> diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c
> >> b/src/gallium/drivers/radeon/r600_pipe_common.c
> >> index 0b5c6dc..e0b914c 100644
> >> --- a/src/gallium/drivers/radeon/r600_pipe_common.c
> >> +++ b/src/gallium/drivers/radeon/r600_pipe_common.c
> >> @@ -755,6 +755,7 @@ static const char* r600_get_chip_name(struct
> r600_common_screen *rscreen)
> >>         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";
> >>         default: return "AMD unknown";
> >>         }
> >> @@ -889,9 +890,11 @@ const char *r600_get_llvm_processor_name(enum
> >> radeon_family family)  #if HAVE_LLVM <= 0x0308
> >>         case CHIP_POLARIS10: return "tonga";
> >>         case CHIP_POLARIS11: return "tonga";
> >> +       case CHIP_POLARIS12: return "tonga";
> >>  #else
> >>         case CHIP_POLARIS10: return "polaris10";
> >>         case CHIP_POLARIS11: return "polaris11";
> >> +       case CHIP_POLARIS12: return "polaris11";
> >>  #endif
> >>         default: return "";
> >>         }
> >> diff --git a/src/gallium/drivers/radeon/radeon_vce.c
> >> b/src/gallium/drivers/radeon/radeon_vce.c
> >> index aad2ec1..dcd56ea 100644
> >> --- a/src/gallium/drivers/radeon/radeon_vce.c
> >> +++ b/src/gallium/drivers/radeon/radeon_vce.c
> >> @@ -413,7 +413,8 @@ struct pipe_video_codec *rvce_create_encoder(struct
> pipe_context *context,
> >>                 enc->use_vui = true;
> >>         if (rscreen->info.family >= CHIP_TONGA &&
> >>             rscreen->info.family != CHIP_STONEY &&
> >> -           rscreen->info.family != CHIP_POLARIS11)
> >> +           rscreen->info.family != CHIP_POLARIS11 &&
> >> +           rscreen->info.family != CHIP_POLARIS12)
> >>                 enc->dual_pipe = true;
> >>         /* TODO enable B frame with dual instance */
> >>         if ((rscreen->info.family >= CHIP_TONGA) && diff --git
> >> a/src/gallium/drivers/radeonsi/si_pipe.c
> >> b/src/gallium/drivers/radeonsi/si_pipe.c
> >> index 88685f9..11cca6f 100644
> >> --- a/src/gallium/drivers/radeonsi/si_pipe.c
> >> +++ b/src/gallium/drivers/radeonsi/si_pipe.c
> >> @@ -734,6 +734,7 @@ static bool si_init_gs_info(struct si_screen *sscreen)
> >>         case CHIP_FIJI:
> >>         case CHIP_POLARIS10:
> >>         case CHIP_POLARIS11:
> >> +       case CHIP_POLARIS12:
> >>                 sscreen->gs_table_depth = 32;
> >>                 return true;
> >>         default:
> >> diff --git a/src/gallium/drivers/radeonsi/si_state.c
> >> b/src/gallium/drivers/radeonsi/si_state.c
> >> index 984540d..65737f4 100644
> >> --- a/src/gallium/drivers/radeonsi/si_state.c
> >> +++ b/src/gallium/drivers/radeonsi/si_state.c
> >> @@ -3936,6 +3936,7 @@ static void si_init_config(struct si_context *sctx)
> >>                 raster_config_1 = 0x0000002a;
> >>                 break;
> >>         case CHIP_POLARIS11:
> >> +       case CHIP_POLARIS12:
> >>                 raster_config = 0x16000012;
> >>                 raster_config_1 = 0x00000000;
> >>                 break;
> >> diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
> >> b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
> >> index 98d72bd..0f7d161 100644
> >> --- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
> >> +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
> >> @@ -300,6 +300,10 @@ static bool do_winsys_init(struct amdgpu_winsys *ws,
> int fd)
> >>        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;
> >> +      break;
> >>     default:
> >>        fprintf(stderr, "amdgpu: Unknown family.\n");
> >>        goto fail;
> >> --
> >> 2.5.5
> >>
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list