[PATCH 1/4] drm/amdgpu: Fix MPEG2, MPEG4 and VC1 video caps max size

Dong, Ruijing Ruijing.Dong at amd.com
Fri Mar 7 15:57:28 UTC 2025


[AMD Official Use Only - AMD Internal Distribution Only]

The series is:

Reviewed-by: Ruijing Dong <ruijing.dong at amd.com>

-----Original Message-----
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of David Rosca
Sent: Friday, February 28, 2025 10:10 AM
To: Alex Deucher <alexdeucher at gmail.com>
Cc: amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH 1/4] drm/amdgpu: Fix MPEG2, MPEG4 and VC1 video caps max size

On 28. 02. 25 15:21, Alex Deucher wrote:
> On Fri, Feb 28, 2025 at 8:34 AM David Rosca <david.rosca at amd.com> wrote:
>> 1920x1088 is the maximum supported resolution.
>>
>> Signed-off-by: David Rosca <david.rosca at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/nv.c | 18 ++++++++---------
>>   drivers/gpu/drm/amd/amdgpu/vi.c | 36
>> ++++++++++++++++-----------------
> I think soc15.c needs similar fixes?
Fixed in v2.
>    Also, I think we need to bump
> the driver version so mesa knows what kernel version has the proper
> limits.

I think for now we can ignore the kernel caps in Mesa for these codecs as the maximum size is the same for all asics. We can later switch to kernel caps again, no need to bump the version just for this.

David

>
> Alex
>
>>   2 files changed, 27 insertions(+), 27 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c
>> b/drivers/gpu/drm/amd/amdgpu/nv.c index 8068f384f56c..a18e6fb9fa3f
>> 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/nv.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/nv.c
>> @@ -78,10 +78,10 @@ static const struct amdgpu_video_codecs
>> nv_video_codecs_encode = {
>>
>>   /* Navi1x */
>>   static const struct amdgpu_video_codec_info nv_video_codecs_decode_array[] = {
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)},
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 1920, 1088, 3)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4,
>> + 1920, 1088, 5)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)},
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 1920,
>> + 1088, 4)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9,
>> 8192, 4352, 0)}, @@ -104,10 +104,10 @@ static const struct amdgpu_video_codecs sc_video_codecs_encode = {
>>   };
>>
>>   static const struct amdgpu_video_codec_info sc_video_codecs_decode_array_vcn0[] = {
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)},
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 1920, 1088, 3)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4,
>> + 1920, 1088, 5)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)},
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 1920,
>> + 1088, 4)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 16384, 16384, 0)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9,
>> 8192, 4352, 0)}, @@ -115,10 +115,10 @@ static const struct amdgpu_video_codec_info sc_video_codecs_decode_array_vcn0[]
>>   };
>>
>>   static const struct amdgpu_video_codec_info sc_video_codecs_decode_array_vcn1[] = {
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)},
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 1920, 1088, 3)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4,
>> + 1920, 1088, 5)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)},
>> -       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)},
>> +       {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 1920,
>> + 1088, 4)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 16384, 16384, 0)},
>>          {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9,
>> 8192, 4352, 0)}, diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c
>> b/drivers/gpu/drm/amd/amdgpu/vi.c index 3bbbb75242d9..9b3510e53112
>> 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/vi.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/vi.c
>> @@ -167,16 +167,16 @@ static const struct amdgpu_video_codec_info tonga_video_codecs_decode_array[] =
>>   {
>>          {
>>                  .codec_type = AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2,
>> -               .max_width = 4096,
>> -               .max_height = 4096,
>> -               .max_pixels_per_frame = 4096 * 4096,
>> +               .max_width = 1920,
>> +               .max_height = 1088,
>> +               .max_pixels_per_frame = 1920 * 1088,
>>                  .max_level = 3,
>>          },
>>          {
>>                  .codec_type = AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4,
>> -               .max_width = 4096,
>> -               .max_height = 4096,
>> -               .max_pixels_per_frame = 4096 * 4096,
>> +               .max_width = 1920,
>> +               .max_height = 1088,
>> +               .max_pixels_per_frame = 1920 * 1088,
>>                  .max_level = 5,
>>          },
>>          {
>> @@ -188,9 +188,9 @@ static const struct amdgpu_video_codec_info tonga_video_codecs_decode_array[] =
>>          },
>>          {
>>                  .codec_type = AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1,
>> -               .max_width = 4096,
>> -               .max_height = 4096,
>> -               .max_pixels_per_frame = 4096 * 4096,
>> +               .max_width = 1920,
>> +               .max_height = 1088,
>> +               .max_pixels_per_frame = 1920 * 1088,
>>                  .max_level = 4,
>>          },
>>   };
>> @@ -206,16 +206,16 @@ static const struct amdgpu_video_codec_info cz_video_codecs_decode_array[] =
>>   {
>>          {
>>                  .codec_type = AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2,
>> -               .max_width = 4096,
>> -               .max_height = 4096,
>> -               .max_pixels_per_frame = 4096 * 4096,
>> +               .max_width = 1920,
>> +               .max_height = 1088,
>> +               .max_pixels_per_frame = 1920 * 1088,
>>                  .max_level = 3,
>>          },
>>          {
>>                  .codec_type = AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4,
>> -               .max_width = 4096,
>> -               .max_height = 4096,
>> -               .max_pixels_per_frame = 4096 * 4096,
>> +               .max_width = 1920,
>> +               .max_height = 1088,
>> +               .max_pixels_per_frame = 1920 * 1088,
>>                  .max_level = 5,
>>          },
>>          {
>> @@ -227,9 +227,9 @@ static const struct amdgpu_video_codec_info cz_video_codecs_decode_array[] =
>>          },
>>          {
>>                  .codec_type = AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1,
>> -               .max_width = 4096,
>> -               .max_height = 4096,
>> -               .max_pixels_per_frame = 4096 * 4096,
>> +               .max_width = 1920,
>> +               .max_height = 1088,
>> +               .max_pixels_per_frame = 1920 * 1088,
>>                  .max_level = 4,
>>          },
>>          {
>> --
>> 2.43.0
>>


More information about the amd-gfx mailing list