Включение аппаратного ускорения и Xinerama для multi-monitor / multi-GPU в Linux

моя текущая настройка состоит из трех мониторов, подключенных следующим образом (мониторы перечислены слева направо):

GPU0 (nVidia GTX 280):


- Dell 2405FPW (1920x1200)


- Dell U2410 (1920x1200)


GPU1 (nVidia 210):


- Dell 2405FPW (1920x1200)

работает как шарм в Windows 7, не так много в Linux. Кажется, у меня есть только три реальных варианта:

  1. запустить все три монитора как отдельный экран X, Я получаю аппаратное ускорение, но поскольку все они являются независимыми сеансами X, я не могу перемещать окна между ними и могу открывать firefox только на одном в любой момент времени.
  2. запустите два на GPU0 в режиме TwinView и GPU1 как отдельный экран X. То же ограничение, что и 1, но по крайней мере два монитора работают вместе. У меня была проблема, когда иногда Linux видел оба монитора на GPU0 как один большой монитор.
  3. включить xinerama и все работает как я хочу это, но аппаратное ускорение ушло, и дисплей в стиле Windows 95 прерывистый.

мое идеальное решение было бы иметь все экраны работают, как они делают под Xinerama без ограничения аппаратного ускорения отключена. Меня даже не волнует, означает ли это рендеринг всех трех на GPU0 и как-то фермерство отображения третьего монитора на GPU1, что бы ни работало.

мой вопрос в следующем: есть ли способ сделать это? Я не чувствую себя как моя вариант использования настолько велик, что не должно быть хотя бы какой-то поддержки (помимо трех ограниченных вариантов, представленных выше), или мой лучший вариант будет просто сосать его и подобрать лучшую карту, чтобы заменить оба, которые могут обрабатывать три выхода сами по себе?

27
задан Hennes
03.02.2023 21:57 Количество просмотров материала 3612
Распечатать страницу

2 ответа

это скрипт, который я сделал на Linux Mint с XFCE для такой же настройки. Не использовать Xinerama. Моя установка была 1-й портрет монитора, 2-й и 3-й, пейзаж. Сработало как по волшебству. 5-секундная пауза при запуске, потому что он был установлен, чтобы начать с сессии, и если он был запущен слишком рано, он не работает правильно.

обратите внимание также, что в моем конкретном примере мне пришлось выровнять экраны внизу, поскольку один был выше других. Выравнивание сверху не давало ожидаемого поведение.

в конце концов, использование xrandr было единственным способом заставить его работать так, как я хотел.

дать ему попробовать с настройками

#!/bin/bash
sleep 5
xrandr --size 5040x1920 --output HDMI-0 --mode 1920x1080 --pos 1200x840 --primary \
--output DVI-1-1 --mode 1920x1080 --pos 3120x840 \
--output DVI-0 --mode 1920x1200 --pos 0x0 --rotate left

Я сделал статью на моем блоге, однако это по-французски: https://akim.sissaoui.com/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/

1
отвечен Akim Sissaoui 2023-02-05 05:45

вы в основном ответили себе. Это не возможно на данный момент в Linux как Linux не имеет надлежащей поддержки нескольких GPU.

поддержка нескольких GPU для Linux была предложенный как проект для летнего кода Google. Но это вряд ли будет готово к прайм-тайму в ближайшее время, если вы спросите меня.

0
отвечен runeks 2023-02-05 08:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх