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

David Rosca david.rosca at amd.com
Fri Feb 28 15:09:42 UTC 2025


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