Cannot change screen resolution

I have a Thinkpad T14s with an AMD Ryzen 7 Pro and Manjaro/xfce4 installed.

xrandr only lists one resolution, the native one. I would like to select a lower resolution so I can mirror it with a projector. However, I can’t select a different resolution, and if I try to add a custom mode with xrandr, the screen just goes to black.

Output of inxi -G

Graphics:
  Device-1: AMD Rembrandt [Radeon 680M] driver: amdgpu v: kernel
  Device-2: Chicony Integrated Camera driver: uvcvideo type: USB
  Display: x11 server: X.Org v: 21.1.8 driver: X: loaded: amdgpu
    unloaded: modesetting dri: radeonsi gpu: amdgpu resolution: 1920x1200~60Hz
  API: OpenGL v: 4.6 Mesa 23.0.4 renderer: AMD Radeon Graphics (rembrandt
    LLVM 15.0.7 DRM 3.49 6.1.41-1-MANJARO)

Output of xrandr

Screen 0: minimum 320 x 200, current 1920 x 1200, maximum 16384 x 16384
eDP connected 1920x1200+0+0 (normal left inverted right x axis y axis) 302mm x 189mm
   1920x1200     60.00*+
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 disconnected (normal left inverted right x axis y axis)
DisplayPort-3 disconnected (normal left inverted right x axis y axis)
DisplayPort-4 disconnected (normal left inverted right x axis y axis)
DisplayPort-5 disconnected (normal left inverted right x axis y axis)

I don’t know enough to know if this is a driver issue, or X server configuration, or what. Any help would be appreciated :slight_smile:

Probably EDID only provides that resolution?

Install:

pamac install base-devel
pamac build edid-decode-git

Get the decoded EDID:

 find -L /sys/class/drm/ -maxdepth 2 -type f -iname "*edid" -exec edid-decode "{}" \; 2>/dev/null

The EDID is a binary blob inside the monitor, which provides information on how the OS should handle it. Commonly, it is detected on activation of the screen.

Please share the output here.

Hi, I had a similar issue on my machine - only 2560x1600 was available on my built-in screen.
In my case installing optimus-manager helped. I use it in hybrid mode.

Also, I received some help from NVidia forum. Maybe it’ll be useful for you as well.

Here’s the output of xrandr --verbose, I assume the shown EDID is what you’re asking for.

Screen 0: minimum 320 x 200, current 1920 x 1200, maximum 16384 x 16384
eDP connected 1920x1200+0+0 (0x5b) normal (normal left inverted right x axis y axis) 302mm x 18
9mm
	Identifier: 0x52
	Timestamp:  9377
	Subpixel:   unknown
	Gamma:      1.0:1.0:1.0
	Brightness: 1.0
	Clones:    
	CRTC:       0
	CRTCs:      0 1 2 3
	Transform:  1.000000 0.000000 0.000000
	           0.000000 1.000000 0.000000
	           0.000000 0.000000 1.000000
	          filter: 
	EDID: 
		00ffffffffffff0026cf448c00000000
		001f0104a51e1378e376909455549027
		21505400000001010101010101010101
		010101010101353c80a070b023401830
		6c002ebd10000019000000fd00283c4a
		4a0f010a202020202020000000fe0049
		6e666f566973696f6e0a2020000000fe
		00523134304e573444205235200a0053
	GAMMA_LUT_SIZE: 4096 
		range: (0, -1)
	DEGAMMA_LUT_SIZE: 4096 
		range: (0, -1)
	GAMMA_LUT: 0 
		range: (0, 65535)
	CTM: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
		0 1 
	DEGAMMA_LUT: 0 
		range: (0, 65535)
	TearFree: auto 
		supported: off, on, auto
	HDCP Content Type: HDCP Type0 
		supported: HDCP Type0, HDCP Type1
	Content Protection: Undesired 
		supported: Undesired, Desired, Enabled
	vrr_capable: 1 
		range: (0, 1)
	abm level: 0 
		range: (0, 4)
	max bpc: 16 
		range: (8, 16)
	underscan vborder: 0 
		range: (0, 128)
	underscan hborder: 0 
		range: (0, 128)
	underscan: off 
		supported: off, on, auto
	scaling mode: None 
		supported: None, Full, Center, Full aspect
	link-status: Good 
		supported: Good, Bad
	CONNECTOR_ID: 78 
		supported: 78
	non-desktop: 0 
		range: (0, 1)
  1920x1200 (0x5b) 154.130MHz -HSync -VSync *current +preferred
        h: width  1920 start 1944 end 1992 total 2080 skew    0 clock  74.10KHz
        v: height 1200 start 1206 end 1218 total 1235           clock  60.00Hz

And the output of running edid-decode:

EDID of '/sys/class/drm/card0-HDMI-A-1/edid' was empty.
EDID of '/sys/class/drm/card0-DP-6/edid' was empty.
edid-decode (hex):

00 ff ff ff ff ff ff 00 26 cf 44 8c 00 00 00 00
00 1f 01 04 a5 1e 13 78 e3 76 90 94 55 54 90 27
21 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 35 3c 80 a0 70 b0 23 40 18 30
6c 00 2e bd 10 00 00 19 00 00 00 fd 00 28 3c 4a
4a 0f 01 0a 20 20 20 20 20 20 00 00 00 fe 00 49
6e 66 6f 56 69 73 69 6f 6e 0a 20 20 00 00 00 fe
00 52 31 34 30 4e 57 34 44 20 52 35 20 0a 00 53

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: IVO
    Model: 35908
    Made in: 2021
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 30 cm x 19 cm
    Gamma: 2.20
    DPMS levels: Standby Suspend Off
    Supported color formats: RGB 4:4:4
    First detailed timing includes the native pixel format and preferred refresh rate
    Display is continuous frequency
  Color Characteristics:
    Red  : 0.5791, 0.3349
    Green: 0.3291, 0.5644
    Blue : 0.1542, 0.1298
    White: 0.3125, 0.3281
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  1920x1200   60.000779 Hz  16:10    74.101 kHz    154.130000 MHz (302 mm x 189 mm)
                 Hfront   24 Hsync  48 Hback   88 Hpol N
                 Vfront    6 Vsync  12 Vback   17 Vpol N
    Display Range Limits:
      Monitor ranges (Bare Limits): 40-60 Hz V, 74-74 kHz H, max dotclock 150 MHz
    Alphanumeric Data String: 'InfoVision'
    Alphanumeric Data String: 'R140NW4D R5 '
Checksum: 0x53
EDID of '/sys/class/drm/card0-DP-4/edid' was empty.
EDID of '/sys/class/drm/card0-DP-2/edid' was empty.
EDID of '/sys/class/drm/card0-DP-5/edid' was empty.
EDID of '/sys/class/drm/card0-DP-3/edid' was empty.
EDID of '/sys/class/drm/card0-DP-1/edid' was empty.

As you see by the raw decoded EDID, it can only run in that mode: 1920x1200@60.000779. So the display itself is limited to that. The only choice I see here is scaling it, if you want to mirror the screen with the projector. So you would need to scale it up by 2.0, to double the size for example.

Maybe a custom resolution could work, but that can only be figured by trail&error, and it could be also possible that non-supported resolutions could damage the screen physically. Therefore it is better to follow up the EDID than guessing a geometry (what was the old way how xorg managed it).