Reputation: 964
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:
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.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)
Upvotes: 7
Views: 4005
Reputation: 47
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 Depth
of 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.
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
Upvotes: 1