Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Wed, Feb 7, 2018 at 5:41 PM, James Zhu <james....@amd.com> wrote: > Based on amdgpu hardware query information to check if UVD hevc enc support > > Signed-off-by: James Zhu <james....@amd.com> > --- > src/amd/common/ac_gpu_info.c | 12 +++++++++++- > src/amd/common/ac_gpu_info.h | 1 + > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c > index 6d9dcb5..3156df6 100644 > --- a/src/amd/common/ac_gpu_info.c > +++ b/src/amd/common/ac_gpu_info.c > @@ -98,7 +98,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev, > { > struct amdgpu_buffer_size_alignments alignment_info = {}; > struct amdgpu_heap_info vram, vram_vis, gtt; > - struct drm_amdgpu_info_hw_ip dma = {}, compute = {}, uvd = {}, vce = > {}, vcn_dec = {}, vcn_enc = {}; > + struct drm_amdgpu_info_hw_ip dma = {}, compute = {}, uvd = {}, > uvd_enc = {}, vce = {}, vcn_dec = {}, vcn_enc = {}; > uint32_t vce_version = 0, vce_feature = 0, uvd_version = 0, > uvd_feature = 0; > int r, i, j; > drmDevicePtr devinfo; > @@ -167,6 +167,14 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev, > } > > if (info->drm_major == 3 && info->drm_minor >= 17) { > + r = amdgpu_query_hw_ip_info(dev, AMDGPU_HW_IP_UVD_ENC, 0, > &uvd_enc); > + if (r) { > + fprintf(stderr, "amdgpu: > amdgpu_query_hw_ip_info(uvd_enc) failed.\n"); > + return false; > + } > + } > + > + if (info->drm_major == 3 && info->drm_minor >= 17) { > r = amdgpu_query_hw_ip_info(dev, AMDGPU_HW_IP_VCN_DEC, 0, > &vcn_dec); > if (r) { > fprintf(stderr, "amdgpu: > amdgpu_query_hw_ip_info(vcn_dec) failed.\n"); > @@ -275,6 +283,8 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev, > uvd.available_rings ? uvd_version : 0; > info->vce_fw_version = > vce.available_rings ? vce_version : 0; > + info->uvd_enc_supported = > + uvd_enc.available_rings ? true : false; > info->has_userptr = true; > info->has_syncobj = has_syncobj(fd); > info->has_syncobj_wait_for_submit = info->has_syncobj && > info->drm_minor >= 20; > diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h > index cca3e98..36714ee 100644 > --- a/src/amd/common/ac_gpu_info.h > +++ b/src/amd/common/ac_gpu_info.h > @@ -65,6 +65,7 @@ struct radeon_info { > uint32_t num_compute_rings; > uint32_t uvd_fw_version; > uint32_t vce_fw_version; > + bool uvd_enc_supported; > uint32_t me_fw_version; > uint32_t me_fw_feature; > uint32_t pfp_fw_version; > -- > 2.7.4 > > _______________________________________________ > 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