Включение аппаратного ускорения и Xinerama для нескольких мониторов / нескольких графических процессоров в Linux

2315
mynameiscoffey

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

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, что бы ни работало.

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

10
[This] (http://us.download.nvidia.com/XFree86/Linux-x86/256.35/README/sli.html) отвечает на ваш вопрос? Naftuli Kay 11 лет назад 1

2 ответа на вопрос

1
Akim Sissaoui

Это сценарий, который я сделал на 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/

0
runeks

Вы в основном ответили сами. В настоящее время это невозможно в Linux, поскольку в Linux нет надлежащей поддержки нескольких графических процессоров.

Поддержка нескольких графических процессоров для Linux была предложена в качестве проекта для Google Summer of Code. Но это вряд ли будет готов к прайм-тайм в ближайшее время, если вы спросите меня.

Похожие вопросы