Xorg увеличивает размер виртуального экрана после 8192 x 8192
У меня есть один монитор 4K (3840 x 2160) и два монитора QHD (2560 x 1440), и я хочу, чтобы они были рядом. Однако в настоящее время это невозможно, поскольку для этого требуется горизонтальное виртуальное разрешение 8960 пикселей (3840+2560+2560), но максимальное (горизонтальное) виртуальное разрешение, установленное X-сервером, составляет 8192 пикселей. Есть ли способ увеличить максимальное виртуальное разрешение за 8192x8192 пикселей?
Что я пробовал до сих пор:
- у меня нет
xorg.conf
файл - я пытался создать его самостоятельно, включая"Display"
подраздел и настройка другого"Virtual"
значение там, перезагружено, ничего не изменилось. - Пробовал разные
xrandr
Варианты команд с--fb
и / или--panning
параметры установлены на желаемый максимум (8960x2160+0+0
) опять безрезультатно. (выход:xrandr: screen cannot be larger than 8192x8192 (desired size 8960x2160)
)
Я где-то читал утверждение (РЕДАКТИРОВАТЬ: здесь), что графические процессоры Intel не поддерживают большее разрешение виртуальных экранов, чем 8192x8192 пикселей (моя система использует Core i7-6700HQ
ЦП с Intel HD Graphics 530
графический процессор), но я, к сожалению, не смог подтвердить эту информацию - надеюсь, это не так.
РЕДАКТИРОВАТЬ: Это действительно, вероятно, не так:
#: glxinfo -l | grep GL_MAX_TEXTURE_SIZE
GL_MAX_TEXTURE_SIZE = 16384
GL_MAX_TEXTURE_SIZE = 16384
Мой вывод xrandr (в настоящее время третий монитор расположен справа внизу, следовательно, разрешение виртуального экрана 8192x3600):
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)
1 ответ
Мне удалось исправить это с помощью следующих шагов, чтобы создать и изменить xorg.conf
файл и положить его в /etc/X11/xorg.conf
,
Я на Ubuntu 16.04 с gnome-session-fallback
с помощью metacity
и всякий раз, когда я пытался сделать все три полных разрешения, я получал ошибку о виртуальном размере, который не мог пройти 8192x8192
,
Я не уверен, что это будет иметь значение, если вы на gnome
unity
metacity
или нет.
Перед перезагрузкой - создайте xorg.conf.new
файл.
$ 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"
У меня два Screen Sections
например, и я пытаюсь использовать 3 монитора - я не думаю, что вам нужно три Screen Sections
что бы ни генерировалось.
Monitor 1: 3840x2160 x 32 in
Monitor 2: 3840x2160 x 32 in
Monitor 3: 1920x1080 x 22 in
Убедитесь, что ваш GLX может справиться с выше 8192x8192
если вам нужно это выше этого размера.
glxinfo -l | grep GL_MAX_TEXTURE_SIZE
GL_MAX_TEXTURE_SIZE = 16384
GL_MAX_TEXTURE_SIZE = 16384
Изменить xorg.conf.new
файл в вашем /home/username
каталог и добавьте размер из glxinfo
команда Virtual 16384
sudo nano ~/xorg.conf.new
Подраздел Display
с Depth
24 в обоих разделах Screen
добавлять 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
Скопируйте xorg.xonf.new
в /etc/X11/xorg.conf
затем перезагрузите компьютер.
sudo cp /home/user/xorg.conf.new /etc/X11/xorg.conf # Modify user
sudo shutdown -r now
При повторном входе установите мониторы в gnome
, metacity
или же unity
или что вы используете.
Обновить:
После перезагрузки, выхода из системы или разблокировки я обнаружил, что настройки монитора не сохраняются.
Это возможно gnome
Проблема может быть связана с этой ошибкой:
https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1292398
Это исправление было найдено из частей нескольких ответов в этой публикации:
https://askubuntu.com/questions/6137/saving-monitor-settings
Я предпочитаю запускать этот скрипт из терминала, так как сначала открываю один после входа в систему.
Первый вход в систему с неверной конфигурацией - мониторы размещены неправильно:
cd ~/.config
mv ~/.config/monitors.xml{,.bak}
Теперь установите ваши мониторы с настройками системы, чтобы создать новый ~/.config/monitors.xml
файл с правильными настройками.
Скопируйте исправленный сценарий Николя Бернаертса из моего репозитория: https://raw.githubusercontent.com/alextomko/monitors/master/monitors и поместите его в путь для запуска из терминала.
$ 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