在Linux中为多显示器/多GPU启用硬件加速和Xinerama


10

我当前的设置是按以下方式连接三个监视器(从左到右列出的监视器):

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

在Windows 7中的工作原理很吸引人,而在Linux中则没什么。我似乎只有三个实际选择:

  1. 将所有三个监视器作为单独的X屏幕运行,我得到了硬件加速,但是由于它们都是独立的X会话,因此我无法在它们之间移动窗口,并且只能在任何给定时间打开Firefox。
  2. 在TwinView模式下在GPU0上运行两者,并将GPU1作为单独的X屏幕。与1的限制相同,但至少两个监视器可以一起工作。我确实遇到了一个问题,偶尔Linux会将GPU0上的两个监视器都视为一个大监视器。
  3. 启用Xinerama并按我希望的方式进行所有工作,但是硬件加速消失了,并且显示的是Windows 95风格的不稳定。

我理想的解决方案是使所有屏幕都像在Xinerama下一样工作,而不受禁用硬件加速的限制。我什至不在乎这是否意味着在GPU0上渲染所有三个显示器,然后以某种方式将第三个监视器的显示内容移植到GPU1。

我的问题是:有什么办法可以做到这一点?我不觉得我的用例如此之多,以至于至少不应该有某种形式的支持(除了上面提供的三个有限选项之外),或者我最好的选择就是吸干它并选择制作一个更好的卡来代替两者都可以单独处理三个输出的卡?


1
请问这个回答你的问题?
Naftuli Kay 2013年

Answers:


1

这是我在Linux Mint上使用XFCE编写的用于相同类型设置的脚本。不使用Xinerama。我的设置是第一幅监视器肖像,第二幅和第三幅,风景。像魅力一样工作。开始时的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.c​​om/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/


0

您基本上已经回答了自己。目前在Linux中这是不可能的,因为Linux没有对多个GPU的任何适当支持。

建议将多个GPU支持Linux 作为 Google Summer of Code的项目。但是,如果您问我,那几乎不可能在黄金时段很快做好准备。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.