Activation de l'accélération matérielle et Xinerama pour multi-moniteur / multi-GPU sous Linux


10

Ma configuration actuelle est de trois moniteurs connectés comme suit (moniteurs répertoriés de gauche à droite):

GPU0 (nVidia GTX 280):
- Dell 2405FPW (1920x1200)
- Dell U2410 (1920x1200)
GPU1 (nVidia 210):
- Dell 2405FPW (1920x1200)

Fonctionne comme un charme dans Windows 7, pas tellement sous Linux. Il me semble n'avoir que trois options réelles:

  1. Exécutez les trois moniteurs en tant qu'écran X séparé, j'obtiens une accélération matérielle mais comme ce sont toutes des sessions X indépendantes, je ne peux pas déplacer de fenêtres entre elles et je ne peux ouvrir Firefox sur un à un moment donné.
  2. Exécutez les deux sur GPU0 en mode TwinView et ayez GPU1 comme écran X séparé. Même limitation que 1 mais au moins deux moniteurs fonctionnent ensemble bien. J'ai eu un problème où Linux voyait parfois les deux moniteurs sur GPU0 comme un seul grand moniteur.
  3. Activez Xinerama et faites tout fonctionner comme je le souhaite, mais l'accélération matérielle a disparu et l'affichage est saccadé de style Windows 95.

Ma solution idéale serait de faire fonctionner tous les écrans comme ils le font sous Xinerama sans limiter l'accélération matérielle. Je ne m'inquiète même pas si cela signifie rendre les trois sur GPU0 et en quelque sorte affiner l'affichage du troisième moniteur sur GPU1, quoi que cela fonctionne.

Ma question est la suivante: existe-t-il un moyen d'y parvenir? Je ne pense pas que mon cas d'utilisation soit tellement là-bas qu'il ne devrait pas y avoir au moins une forme de support (au-delà des trois options limitées présentées ci-dessus), ou que ma meilleure option sera de simplement le sucer et de choisir une meilleure carte pour remplacer les deux qui peuvent gérer trois sorties par elle-même?


1
Est- ce que cela répond à votre question?
Naftuli Kay

Réponses:


1

Il s'agit d'un script que j'ai fait sur Linux Mint avec XFCE pour le même type de configuration. Ne pas utiliser Xinerama. Ma configuration était le 1er portrait du moniteur, le 2ème et le 3ème, le paysage. A fonctionné comme un charme. La pause de 5 secondes au démarrage était due au fait qu'elle devait commencer avec la session et si elle était exécutée trop tôt, elle ne fonctionnait pas correctement.

Notez également que dans mon exemple spécifique, j'ai dû aligner les écrans en bas car l'un était plus haut que les autres. L'alignement sur le dessus ne donnait pas le comportement attendu.

Au final, utiliser xrandr était le seul moyen de le faire fonctionner comme je le souhaitais.

Essayez-le avec vos propres paramètres

#!/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

J'ai fait un article sur mon blog, cependant c'est en français: https://akim.sissaoui.com/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/


0

Vous vous êtes essentiellement répondu. Ce n'est pas possible pour le moment sous Linux car Linux n'a pas de support approprié pour plusieurs GPU.

La prise en charge de plusieurs GPU pour Linux a été suggérée comme projet pour le Google Summer of Code. Mais il est très peu probable que vous soyez prêt pour les heures de grande écoute dans un proche avenir, si vous me le demandez.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.