On Mon, Dec 19, 2016 at 02:04:05PM -0500, Alex Deucher wrote: > From: Junwei Zhang <jerry.zh...@amd.com> > > Signed-off-by: Junwei Zhang <jerry.zh...@amd.com> > Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com> > Acked-by: Christian König <christian.koe...@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 | 6 ++++++ > 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, 22 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..033e59c 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"; > } > @@ -893,6 +894,11 @@ const char *r600_get_llvm_processor_name(enum > radeon_family family) > case CHIP_POLARIS10: return "polaris10"; > case CHIP_POLARIS11: return "polaris11"; > #endif > +#if HAVE_LLVM <= 0x0309 > + case CHIP_POLARIS12: return "polaris11"; > +#else > + case CHIP_POLARIS12: return "polaris12";
There is a preference to move away from code names and use gfxip names in the compiler. For LLVM >= 4.0 this should be "gfx803" -Tom > +#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@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev