web-dev-qa-db-ja.com

Linuxでマルチモニター/マルチGPUのハードウェアアクセラレーションとXineramaを有効にする

私の現在のセットアップは、次のように接続された3つのモニターです(モニターは左から右にリストされています)。

GPU0(nVidia GTX 280):
-Dell2405FPW(1920x1200)
-DellU2410(1920x1200)
GPU1(nVidia 210):
-Dell2405FPW(1920x1200)

Linuxではそれほどではなく、Windows7では魅力のように機能します。私には3つの本当の選択肢しかないようです:

  1. 3つのモニターすべてを個別のX画面として実行すると、ハードウェアアクセラレーションが得られますが、すべて独立したXセッションであるため、モニター間でウィンドウを移動することはできず、Firefoxを開くことができるのは常に1つだけです。
  2. TwinViewモードのGPU0で2つを実行し、GPU1を別のX画面として使用します。 1と同じ制限ですが、少なくとも2台のモニターが連携して機能します。ただし、LinuxがGPU0上の両方のモニターを単一の大きなモニターと見なすことがあるという問題がありました。
  3. Xineramaを有効にして、すべてが希望どおりに機能するようにしますが、ハードウェアアクセラレーションはなくなり、ディスプレイはWindows95スタイルの途切れ途切れになります。

私の理想的な解決策は、ハードウェアアクセラレーションを無効にするという制限なしに、すべての画面をXineramaでの動作と同じように動作させることです。それがGPU0で3つすべてをレンダリングし、どういうわけか3番目のモニターのディスプレイをGPU1にファームアウトすることを意味するかどうかさえ、私は気にしません。

私の質問はこれです:これを達成する方法はありますか?私のユースケースは、少なくとも何らかの形のサポート(上記の3つの制限されたオプションを超えて)があるべきではないほどそこにあるとは思わないか、それを吸い上げて選ぶのが私の最善のオプションです3つの出力を単独で処理できる両方を置き換えるためのより良いカードをアップしますか?

10
mynameiscoffey

これは、同じ種類のセットアップのためにXFCEを使用してLinuxMintで作成したスクリプトです。 Xineramaを使用していません。私のセットアップは、1番目のモニターのポートレート、2番目と3番目のランドスケープでした。チャームのように働いた。開始時の5秒間の一時停止は、セッションで開始するように設定されていたためであり、実行が早すぎると正しく機能しませんでした。

また、私の特定の例では、1つが他よりも高いため、画面を下に揃える必要があったことにも注意してください。上に揃えても、期待どおりの動作は得られませんでした。

結局、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.c​​om/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes- graphiques /

1
Akim Sissaoui

あなたは基本的にあなた自身に答えました。 Linuxは複数のGPUを適切にサポートしていないため、現時点ではこれは不可能です。

Linuxの複数のGPUサポートが プロジェクトとして提案 Google Summer ofCodeでサポートされています。しかし、あなたが私に尋ねれば、それがすぐにプライムタイムの準備ができる可能性は非常に低いです。

0
runeks