xorg, xrandr, 4 монитора и две видеокарты nvidia. Не работает в желаемой конфигурации
Что у меня есть
- Две видеокарты. nvidia 1050 и nvidia 1050 Ti
- Четыре монитора. Один - 4k, один - Full HD и два 1920x1200. Последние два - в портретном режиме. Сетап вот такой
Как работает сейчас
Все мониторы подключены к 1050 Ti. Работает. Конфигурация такая: xorg:
# Managed by ansible. Editing is useless
# Sheridan
Section "Device"
Identifier "Device_nvidia_corporation_geforce_gtx_1050_ti__gp107_"
Driver "nvidia"
VendorName "NVidia Corporation"
BoardName "GeForce GTX 1050 Ti (GP107)"
Option "NoRenderExtension" "off"
Option "IndirectMemoryAccess" "on"
Option "IgnoreEDID" "off"
Option "UseEDID" "on"
Option "NoLogo" "off"
Option "RandRRotation" "on"
Option "MultiGPU" "off"
Option "SLI" "off"
Option "AllowSHMPixmaps" "on"
BusID "PCI:01:00:0"
EndSection
Section "Device"
Identifier "Device_nvidia_corporation_geforce_gtx_1050__gp107_"
Driver "nvidia"
VendorName "NVidia Corporation"
BoardName "GeForce GTX 1050 (GP107)"
Option "NoRenderExtension" "off"
Option "IndirectMemoryAccess" "on"
Option "IgnoreEDID" "off"
Option "UseEDID" "on"
Option "NoLogo" "off"
Option "RandRRotation" "on"
Option "MultiGPU" "off"
Option "SLI" "off"
Option "AllowSHMPixmaps" "on"
BusID "PCI:08:00:0"
EndSection
# center: LG 27UL500-W -> 3840x2160@60
# first: NVidia Corporation GeForce GTX 1050 Ti (GP107) @ DP-0
Section "Monitor"
Identifier "Monitor_lg_27ul500_w_first_dp_0"
VendorName "LG"
ModelName "27UL500-W"
Option "DPMS"
EndSection
Section "Screen"
Identifier "Screen_nvidia_corporation_geforce_gtx_1050_ti__gp107__lg_27ul500_w_first_dp_0"
Device "Device_nvidia_corporation_geforce_gtx_1050_ti__gp107_"
Monitor "Monitor_lg_27ul500_w_first_dp_0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
# top: LG 22MP55 -> 1920x1080@60
# first: NVidia Corporation GeForce GTX 1050 Ti (GP107) @ DVI-D-0
Section "Monitor"
Identifier "Monitor_lg_22mp55_first_dvi_d_0"
VendorName "LG"
ModelName "22MP55"
Option "DPMS"
EndSection
Section "Screen"
Identifier "Screen_nvidia_corporation_geforce_gtx_1050_ti__gp107__lg_22mp55_first_dvi_d_0"
Device "Device_nvidia_corporation_geforce_gtx_1050_ti__gp107_"
Monitor "Monitor_lg_22mp55_first_dvi_d_0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
# left: Iiyama ProLite XU2395WSU-B1 -> 1920x1200@60
# first: NVidia Corporation GeForce GTX 1050 Ti (GP107) @ HDMI-1
Section "Monitor"
Identifier "Monitor_iiyama_prolite_xu2395wsu_b1_first_hdmi_1"
VendorName "Iiyama"
ModelName "ProLite XU2395WSU-B1"
Option "DPMS"
EndSection
Section "Screen"
Identifier "Screen_nvidia_corporation_geforce_gtx_1050_ti__gp107__iiyama_prolite_xu2395wsu_b1_first_hdmi_1"
Device "Device_nvidia_corporation_geforce_gtx_1050_ti__gp107_"
Monitor "Monitor_iiyama_prolite_xu2395wsu_b1_first_hdmi_1"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
# right: Iiyama ProLite XU2395WSU-B1 -> 1920x1200@60
# first: NVidia Corporation GeForce GTX 1050 Ti (GP107) @ HDMI-0
Section "Monitor"
Identifier "Monitor_iiyama_prolite_xu2395wsu_b1_first_hdmi_0"
VendorName "Iiyama"
ModelName "ProLite XU2395WSU-B1"
Option "DPMS"
EndSection
Section "Screen"
Identifier "Screen_nvidia_corporation_geforce_gtx_1050_ti__gp107__iiyama_prolite_xu2395wsu_b1_first_hdmi_0"
Device "Device_nvidia_corporation_geforce_gtx_1050_ti__gp107_"
Monitor "Monitor_iiyama_prolite_xu2395wsu_b1_first_hdmi_0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Скрипт инициализации xrandr:
#!/bin/bash
xrandr --setprovideroutputsource 1 0
# center: LG 27UL500-W -> 3840x2160@60
# top: LG 22MP55 -> 1920x1080@60
# left: Iiyama ProLite XU2395WSU-B1 -> 1920x1200@60
# right: Iiyama ProLite XU2395WSU-B1 -> 1920x1200@60
xrandr --verbose --dpi 96 \
--output "DP-0" --mode 3840x2160 --rate 60 --primary \
--output "DVI-D-0" --mode 1920x1080 --rate 60 --above "DP-0" \
--output "HDMI-1" --mode 1920x1200 --rate 60 --left-of "DP-0" --rotate right \
--output "HDMI-0" --mode 1920x1200 --rate 60 --right-of "DP-0" --rotate left \
При старте иксы получают информацию о картах и мониторах. Далее при старте оконного менеджера выполняется скрипт инициализации xrandr и мониторы разворачиваются и выстраиваются в нужные мне положения.
Что я хочу
- Монитор 4k подключить к 1050 Ti
- Остальные мониторы подключить к 1050 То есть хочу разгрузить основную видеокарту.
Что я пробовал
Переключаю три монитора во вторую видеокарту естественно.
Изменение скрипта инициализации результатов не даёт. xrandr не хочет вращать мониторы.
Ошибка такая: xrandr: output HDMI-1-0 cannot use rotation "right" reflection "none"
Более того, если убрать опцию вращения - всё равно мониторы не заводятся. Активный только 4k монитор, подключенный к основной видеокарте. В попытках отыскать концы - накопал только randr: failed to create shared pixmap в логе xorg сервера.
Пробовал настроить через nvidia-settings, использую xinerama. Мониторы заводились, боковые поворачивались в нужное направление. Но как только запускается чтото использующее opengl (да тот же google chrome) - начинаются лаги. Нагрузка на основную карту держится в районе 85-100% Вторая видеокарта если и нагружена то иногда и немного.
Подскажите пожалуйста, что я ещё могу попробовать? Что я забыл? что не учёл? Где у меня косяк?
Ось - Gentoo linux