Xorg increase virtual screen size past 8192 x 8192
Asked Answered
B

1

7

I have one 4K monitor (3840 x 2160) and two QHD monitors (2560 x 1440) and I want to have them side by side. This is currently not possible though, since the horizontal virtual resolution required for this is 8960 pixels (3840+2560+2560) but the maximum (horizontal) virtual resolution set by the X server is 8192 pixels. Is there any way to increase the maximum virtual resolution past 8192x8192 pixels?

What I have tried up to now:

  • I do not have a xorg.conf file - I tried manually creating one myself including the "Display" sub-section and setting a different "Virtual" value in there, rebooted, nothing changed.
  • Tried various xrandr command variations with the --fb and/or --panning parameters set to the desired maximum (8960x2160+0+0), again to no avail. (output: xrandr: screen cannot be larger than 8192x8192 (desired size 8960x2160))

I did read a claim somewhere (EDIT: here) that Intel's graphics processors do not support greater virtual screen resolutions than 8192x8192 pixels (my system is using a Core i7-6700HQ CPU with the Intel HD Graphics 530 graphics processor), but I unfortunately have been unable to confirm this information - hopefully this is not the case.

EDIT: It is indeed probably not the case:

#: glxinfo -l | grep GL_MAX_TEXTURE_SIZE
GL_MAX_TEXTURE_SIZE = 16384
GL_MAX_TEXTURE_SIZE = 16384

My xrandr output (I currently have the third monitor positioned bottom-right, hence the 8192x3600 virtual screen resolution):

Screen 0: minimum 320 x 200, current 8192 x 3600, maximum 8192 x 8192
eDP-1 connected primary 3840x2160+2560+0 (normal left inverted right x axis y axis) 346mm x 194mm
3840x2160     60.00*+
2048x1536     60.00
1920x1440     60.00
1856x1392     60.01
1792x1344     60.01
1600x1200     60.00
1400x1050     59.98
1280x1024     60.02
1280x960      60.00
1024x768      60.04    60.00
960x720       60.00
928x696       60.05
896x672       60.01
800x600       60.00    60.32    56.25
700x525       59.98
640x512       60.02
640x480       60.00    59.94
512x384       60.00
400x300       60.32    56.34
320x240       60.05
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected 2560x1440+4519+2160 (normal left inverted right x axis y axis) 527mm x 296mm
2560x1440     59.95*+
2048x1152     59.90
1920x1200     59.95
1920x1080     60.00    50.00    59.94    24.00    23.98
1920x1080i    60.00    50.00    59.94
1600x1200     60.00
1680x1050     59.88
1280x1024     75.02    60.02
1280x800      59.91
1152x864      75.00
1280x720      60.00    50.00    59.94
1024x768      75.03    60.00
800x600       75.00    60.32
720x576       50.00
720x576i      50.00
720x480       60.00    59.94
720x480i      60.00    59.94
640x480       75.00    60.00    59.94
720x400       70.08
DP-2 connected 2560x1440+0+285 (normal left inverted right x axis y axis) 597mm x 336mm
2560x1440     59.95*+
1280x720      59.86
HDMI-2 disconnected (normal left inverted right x axis y axis)
Brittnee answered 4/10, 2017 at 16:13 Comment(5)
it's very probable that you'll have to edit the source code to override such limitsDramatize
The link in the question leads to a patch, but despite changing advertised limits, it does not actually help.Gerda
@LaszloValko would be grateful for any insight as to how to do that.Brittnee
Like @MarcinOwsiany, I applied the kernel patch from the link in the question, under openSUSE Tumbleweed on an HP Spectre x360 with a Polaris 22 XL / Radeon RX Vega M GL display card. Afterward, I could use xrandr to request a configuration with a width of greater than 8192 pixels, but either the native laptop screen would go black, or the command would fail with a "configure crtc" error. The solution below creates two separate virtual screens, but I would rather have a single one. The hardware should support it, but I can't get it to work. If anybody has further info, please let us know.Nitaniter
FTR, there is a patch set that seems to fix this exact problem floating for almost a year on intel-gfx list: lists.freedesktop.org/archives/intel-gfx/2019-January/…Gerda
C
1

I was able to fix this with the following steps to generate and modify an xorg.conf file and put it in /etc/X11/xorg.conf.

I am on Ubuntu 16.04 with gnome-session-fallback using metacity and whenever I would try to make all three full resolution I got an error about virtual size unable to go past 8192x8192.

I am not sure it will matter if your on gnome unity metacity or not.

Before rebooting - generate an xorg.conf.new file.

$ sudo X :2 -configure 
# will make a file /home/$USER/xorg.conf.new or ~/xorg.conf.new

$ cat ~/xorg.conf.new |grep Screen|more
Screen      0  "Screen0" 0 0
Screen      1  "Screen1" RightOf "Screen0"
Section "Screen"
Identifier "Screen0"
Section "Screen"
Identifier "Screen1"

I have two Screen Sections for example and I am trying to utilize 3 monitors - I don't think you need three Screen Sections whatever is generated.

Monitor 1: 3840x2160 x 32 in
Monitor 2: 3840x2160 x 32 in
Monitor 3: 1920x1080 x 22 in

Check that your glx can handle above 8192x8192 if you need it above this size.

glxinfo -l | grep GL_MAX_TEXTURE_SIZE
GL_MAX_TEXTURE_SIZE = 16384
GL_MAX_TEXTURE_SIZE = 16384

Modify the xorg.conf.new file in your /home/username directory and add the size from the glxinfo command Virtual 16384

sudo nano ~/xorg.conf.new

Under Subsection Display with Depthof 24 on both Sections Screen add Virtual 16384

 Section "Screen"
 Identifier "Screen0"
 Device     "Card0"
 Monitor    "Monitor0"
 SubSection "Display"
    Viewport   0 0
    Depth     1
 EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     4
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     8
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     15
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     16
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     24
    Virtual 16384 16384  <-- ADD THIS.
 EndSubSection
 EndSection

 Section "Screen"
 Identifier "Screen1"
 Device     "Card1"
 Monitor    "Monitor1"
 SubSection "Display"
    Viewport   0 0
    Depth     1
 EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     4
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     8
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     15
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     16
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     24
    Virtual 16384 16384 <-- ADD THIS.
 EndSubSection
 EndSection

Copy the xorg.xonf.new to /etc/X11/xorg.conf then reboot.

  sudo cp /home/user/xorg.conf.new /etc/X11/xorg.conf # Modify user
  sudo shutdown -r now

When you log back in set your monitors in gnome, metacity or unity or whatever you use.

Update:

After rebooting, logging out or unlocking I found that the monitor settings are not saving.

This possible gnome issue might be related to this bug:

https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1292398

This fix was found from parts of multiple answers in this posting:

https://askubuntu.com/questions/6137/saving-monitor-settings

I prefer to run this script from a terminal since I open one first after login.

First login with the bad configuration - monitors not placed correctly:

cd ~/.config
mv ~/.config/monitors.xml{,.bak}

Now set your monitors with system settings to create a new ~/.config/monitors.xml file with proper settings.

Copy Nicolas Bernaerts's fixed script from my repo: https://raw.githubusercontent.com/alextomko/monitors/master/monitors and put it in a path to run from terminal.

$ ls -l ~/bin
# if you don't have this directory then create it - do not be logged in as root here.

$ mkdir /home/$USER/bin

$ echo $PATH
# should show /home/username/bin if the dir existed or if you had to create.

$ wget -P ~/bin https://raw.githubusercontent.com/alextomko/monitors/master/monitors
$ chmod +x ~/bin/monitors


# Log out, lock, reboot or whatever it takes to make monitor settings lost for you and run the script.
$ monitors
Chengteh answered 14/11, 2018 at 17:50 Comment(9)
xorg.conf file generation fails for me: sudo X :2 -configure or any variation of it (e.g. with a different screen number, without sudo, etc.) produces a "Fatal server error": Caught signal 11 (Segmentation fault) - Server aborting. To work around this I added a 85-screen.conf file under /etc/X11/xorg.conf.d/ and in that I added the Screen section (full file contents here), which unless I am mistaken should essentially be the same as having it in the xorg.conf file. Rebooted but max virtual resolution is still 8192x8192. Am I missing something?Brittnee
I also tried a file in xorg.conf.d/10-monitor.conf with a virtual screen section link but it did not seem to take any effect either. I happen to still have that file there at this time but I do not think it does anything. Only after I was able to generate the current X Configuration in that xorg.conf.new file did it seem to work with the Virtual 16384 additions on the two screen sections. See full xorg.conf.new file and maybe you might need to follow a process like this by going into tty mode and killing your x-server to generate one.Chengteh
Full xorg.conf.new file link. I might try something like this process I found about doing a configure by killing lightdm in tty mode and doing sudo X -configure after following process on post #3 linkChengteh
Also you have an intel right? sudo lshw -C video | grep product: or xrandr --listproviders. I have some random cheap onboard intel. Maybe also try sudo dpkg-reconfigure xserver-xorg see if it works successfully and re-try the xorg.conf generation.Chengteh
echo $DISPLAY shows :0 for me so if I do any inactive screen :1 :2 :3 :4 :5 :6 :7 and on any of those work creating the file. Maybe your screen # is :2, doubtfully but worth tries.Chengteh
Yes - Intel HD Graphics 530. Yes, all attempts to generate xorg.conf were on a separate tty and after having killed X. echo $DISPLAY shows :0 for me as well. Creating the xorg.conf manually and putting the configuration from xorg.conf.d/85-screen.conf in it didn't work either. I honestly fail to understand why he doesn't like any of it.Brittnee
What version of Ubuntu are you running. I assume your running Ubuntu since you also posted this on the ubuntuforums. What kernel do you have on the version you are running and what X-Server are you running like unity the regular gnome or what? I can test if you send me.Chengteh
I'm on Arch linux (Antergos) - kernel version 4.11.9-1-ARCH - regular gnome, version 3.24.2 - X server version 1.19.3 (posted on the ubuntu forums because I have the same behavior under Ubuntu 18.04.1 LTS)Brittnee
Hmm every version of Linux is different in some way or another - can you try this on your Ubuntu 18.04 or is it not running any longer? I have never ran Arch - I'll give it a try on one of my spare laptops and see what happens with this there.Chengteh

© 2022 - 2024 — McMap. All rights reserved.