[Mesa-dev] [PATCH] amd/common: add vcn dec ip info query for amdgpu version 3.17

Marek Olšák maraeo at gmail.com
Fri May 26 13:59:02 UTC 2017


On Fri, May 26, 2017 at 3:07 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> Hi Leo,
>
> On 26 May 2017 at 12:24, Leo Liu <leo.liu at amd.com> wrote:
>> Signed-off-by: Leo Liu <leo.liu at amd.com>
>> ---
>>  src/amd/common/ac_gpu_info.c | 10 +++++++++-
>>  1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c
>> index 56645c4..3dae2bd 100644
>> --- a/src/amd/common/ac_gpu_info.c
>> +++ b/src/amd/common/ac_gpu_info.c
>> @@ -88,7 +88,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 = {};
>> +       struct drm_amdgpu_info_hw_ip dma = {}, compute = {}, uvd = {}, vce = {}, vcn_dec = {};
>>         uint32_t vce_version = 0, vce_feature = 0, uvd_version = 0, uvd_feature = 0;
>>         uint32_t unused_feature;
>>         int r, i, j;
>> @@ -157,6 +157,14 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
>>                 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");
>> +                       return false;
> Drive-by question:
>
> What would happen if the hardware does not support the said engine -
> is the ioctl going to fail or it will succeed storing "unsupported
> engine" type of information in vcn_dec?
> I think the code needs to be addressed in either case.

If the engine is unsupported, the kernel driver returns
drm_amdgpu_info_hw_ip::available_rings == 0.

Marek


More information about the mesa-dev mailing list