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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2021-01-06 11:40 a.m., Deng, Emily wrote:
From: Alex Deucher <alexdeucher@xxxxxxxxx>
On Tue, Jan 5, 2021 at 3:37 AM Emily.Deng <Emily.Deng@xxxxxxx> 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@xxxxxxx>
---
  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)


--
Earthling Michel Dänzer               |               https://redhat.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux