xorg-server 1.20 modesetting error with --scale 2x2

Angus Gratton gus at projectgus.com
Tue May 29 11:07:10 UTC 2018


Hi all,

I have a HiDPI laptop display (3200x1800) and a "normal" external LCD (1680x1050). For a while now I've worked around the DPI mismatch by scaling the external LCD:

/usr/bin/xrandr --auto --output eDP-1 --mode 3200x1800 --left-of DP-1 --output DP-1 --mode 1680x1050 --scale 2x2

(ie create a very large virtual framebuffer, and scale down the part which ends up on the external monitor output.)

With xorg 1.19.6 (& earlier) and the modesetting driver this seemed to work. I see the following line in Xorg.0.log when I run the command:

(II) modeset(0): Allocate new frame buffer 6560x2100 stride

With xorg 1.20 it no longer works. I get an error line in the log and the external display ends up in a weird state:

[   793.006] (II) modeset(0): Allocate new frame buffer 6560x2100 stride
[   793.090] failed to add rotate fb

If I use --scale 1x1 in the same xrandr command, everything works as expected.

Maybe using --scale 2x2 is "doing it wrong" and I need to find a better way, but I thought I'd mention this in case it's a bug or something I can work around.

Some additional notes:

* Graphics card is Intel HD520, i915 kernel driver, kernel 4.16.11

* Full Xorg.log attached here:
  https://pastebin.com/raw/piWQZvfg
  Around timestamp 793 you can see me trying a few variations on the xrandr command, including a few which work.

* I'm running the Arch Linux xorg-server package. I looked at the Arch patchset and it's very close to upstream, couldn't see anything patched in the vicinity of the modesetting driver. But I haven't tried building upstream xorg myself, yet.

Thanks for any sage advice you can provide,


Angus


More information about the xorg mailing list