[PATCH 3/3] drm/amdgpu:Limit the resolution for virtual_display

Deng, Emily Emily.Deng at amd.com
Thu Jan 7 02:28:26 UTC 2021


[AMD Official Use Only - Internal Distribution Only]

>-----Original Message-----
>From: Michel Dänzer <michel at daenzer.net>
>Sent: Wednesday, January 6, 2021 11:25 PM
>To: Deng, Emily <Emily.Deng at amd.com>; Alex Deucher
><alexdeucher at gmail.com>
>Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>
>Subject: Re: [PATCH 3/3] drm/amdgpu:Limit the resolution for virtual_display
>
>On 2021-01-06 11:40 a.m., Deng, Emily wrote:
>>> From: Alex Deucher <alexdeucher at gmail.com> On Tue, Jan 5, 2021 at
>>> 3:37 AM Emily.Deng <Emily.Deng at amd.com> wrote:
>>>>
>>>> Limit the resolution not bigger than 16384, which means
>>>> dev->mode_info.num_crtc * common_modes[i].w not bigger than 16384.
>>>>
>>>> Signed-off-by: Emily.Deng <Emily.Deng at amd.com>
>>>> ---
>>>>   drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 7 +++++--
>>>>   1 file changed, 5 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>>>> b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>>>> index 2b16c8faca34..c23d37b02fd7 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>>>> @@ -319,6 +319,7 @@ dce_virtual_encoder(struct drm_connector
>>>> *connector)  static int dce_virtual_get_modes(struct drm_connector
>>>> *connector)  {
>>>>          struct drm_device *dev = connector->dev;
>>>> +       struct amdgpu_device *adev = dev->dev_private;
>>>>          struct drm_display_mode *mode = NULL;
>>>>          unsigned i;
>>>>          static const struct mode_size { @@ -350,8 +351,10 @@ static
>>>> int dce_virtual_get_modes(struct drm_connector *connector)
>>>>          };
>>>>
>>>>          for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
>>>> -               mode = drm_cvt_mode(dev, common_modes[i].w,
>>> common_modes[i].h, 60, false, false, false);
>>>> -               drm_mode_probed_add(connector, mode);
>>>> +               if (adev->mode_info.num_crtc <= 4 ||
>>>> + common_modes[i].w <= 2560) {
>>>
>>> You are also limiting the number of crtcs here.  Intended?  Won't
>>> this break 5 or 6 crtc configs?
>>>
>>> Alex
>> Yes, it is intended,  for num_crtc bigger then 4, don't support resolution
>bigger then 2560, because of the max supported width is 16384 for xcb
>protocol.
>
>There's no such limitation with Wayland. I'd recommend against artificially
>imposing limits from X11 to the kernel.
>
>
>(As a side note, the X11 protocol limit should actually be 32768; the
>16384 limit exposed in the RANDR extension comes from the kernel driver,
>specifically drmModeGetResources's max_width/height)
It is our test and debug result, that the follow variable only have 16bit. Will limit the resolution to 16384.
glamor_pixmap_from_fd(ScreenPtr screen,
                      int fd,
                      CARD16 width,
                      CARD16 height,
                      CARD16 stride, CARD8 depth, CARD8 bpp)
>
>
>--
>Earthling Michel Dänzer               |
>https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fredha
>t.com%2F&data=04%7C01%7CEmily.Deng%40amd.com%7Ca822927192
>e54d50539c08d8b2574439%7C3dd8961fe4884e608e11a82d994e183d%7C0%
>7C0%7C637455435178758996%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4
>wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&a
>mp;sdata=5u7%2Bz2q52PTyPEg9LWcLGVGLERYupc%2B5nKJiIHZTTKw%3D&a
>mp;reserved=0
>Libre software enthusiast             |             Mesa and X developer


More information about the amd-gfx mailing list