On Tue, Feb 6, 2018 at 9:05 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 | 10 +++++++++- > src/amd/common/ac_gpu_info.h | 1 + > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c > index 6d9dcb5..2494967 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; > @@ -166,6 +166,12 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev, > return false; > } > > + 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; > + }
Don't we need to check info->drm_minor here too, as old AMDGPU might not support the query? > + > 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) { > @@ -275,6 +281,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