xrandr中的“ --scale 2x2”导致监视器不显示任何内容


11

我有一个4k外部主显示器,我试图在其左侧连接一个1680x1050外部显示器。

我试过使用:

 xrandr --output HDMI-0 --scale 2x2 --pos 0x0 --fb 7200x2160 --output DP-4 --pos 3360x0

这似乎应该可以工作,当我在nvidia设置中查看计算机认为正在发生的情况时,它会在我的4k显示器左侧正确显示3200x2160显示器。

但是,在我的外接显示器上,只显示黑色,并在其顶部显示闪烁线。

我可以纠正此问题的唯一方法是将缩放比例重置为1x1,这时图像将返回(同时保持X服务器的大小。这意味着我只能滚动到死角才能在显示器之间滚动)。

因此,我认为问题特别与xrandr中的2x2缩放有关。我不确定该怎么办?

该计算机正在运行14.04,并且具有nvidia GTX960和建议的驱动程序(352.63)

这是我的xrandr输出:

  Screen 0: minimum 8 x 8, current 7200 x 2160, maximum 16384 x 16384
  DVI-I-0 disconnected (normal left inverted right x axis y axis)
  DVI-I-1 disconnected (normal left inverted right x axis y axis)
  DP-0 disconnected (normal left inverted right x axis y axis)
  DP-1 disconnected (normal left inverted right x axis y axis)
  DP-2 disconnected (normal left inverted right x axis y axis)
  DP-3 disconnected (normal left inverted right x axis y axis)
  HDMI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm
     1680x1050      59.9*+   60.0  
     1280x1024      75.0     60.0  
     1280x960       60.0  
     1152x864       75.0  
     1024x768       75.0     70.1     60.0  
     800x600        75.0     72.2     60.3     56.2  
     640x480        75.0     72.8     59.9  
  DP-4 connected primary 3840x2160+3360+0 (normal left inverted right x axis y axis) 527mm x 296mm
     3840x2160      60.0*+   30.0  
     2560x1440      60.0  
     2048x1280      60.0  
     1920x1200      59.9  
     1920x1080      60.0     60.0     59.9     50.0     24.0     60.0     50.0  
     1600x1200      60.0  
     1600x900       60.0  
     1280x1024      75.0     60.0  
     1280x720       60.0     59.9     50.0  
     1152x864       75.0  
     1024x768       75.0     60.0  
     800x600        75.0     60.3  
     720x576        50.0     50.1  
     720x480        59.9     60.1  
     640x480        75.0     59.9     59.9  

我有同样的问题。它似乎可以按比例放大到1.71x1.71。一切都变
Maciej Wozniak

不幸的是,我从未设法解决这个问题。我试图运行两台显示器,一台具有缩放功能,一台没有缩放功能。如果您只是想以2倍的比例运行,那么使用Cinammon非常简单。我相信也有一种方法可以使Unity做到这一点。
m4p85r

Answers:


5

只是想补充一点,这是我长期以来一直在与之抗争的事情,每次我都放弃时-直到我决定一劳永逸地解决。以下解决方案对我有用,希望它对您也有用。

tl; dr:配置 ForceFullCompositionPipeline=On

背景

其中一些方法还希望提供更多关键字,以防有人遇到类似问题而最终找到了解决方案。

我的设置是:

  • 具有3840×2160(主)的内置4K显示屏的ThinkPad P50
  • 外接显示器作为辅助显示器-Dell U2412M-1920×1200

我使用Ubuntu Gnome 16.04 LTS。

当我通过HDMI电缆+ HDMI-to-DVI转换器(由于显示器没有HDMI输入)插入显示器时,一切都太大了。在线上的各种文章都建议使用该显示器xrandr上的配置--scale 2x2,这导致它几乎是全黑的,顶部只有一条细线。

我碰到了这个问题,虽然2x2.001缩放解决方案使监视器能够实际显示内容,但它还在X屏幕下方添加了一个额外的像素,当光标到达屏幕的顶部/底部时,会导致向上/向下滚动。

经过大量的Google搜索后,其中很多问题都产生了,但没有解决方案,我偶然发现了这一点:https : //devtalk.nvidia.com/default/topic/891207/-355-11-358-09-viewportin-on-2nd显示器在乱码显示结果中的值超过3211x1800

因此,要进行测试,我使用以下命令xrandr进行了配置-假设尚未配置缩放功能。

$ nvidia-settings -q CurrentMetaMode

  Attribute 'CurrentMetaMode' (lilicorp:1.0): id=50, switchable=no, source=RandR :: DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0}, DPY-1: nvidia-auto-select @1920x1200 +3840+0 {ViewPortIn=1920x1200, ViewPortOut=1920x1200+0+0}

这将显示CurrentMetaMode值,这是我在ForceFullCompositionPipeline=On两个显示中都添加选项的地方。请注意,这DPY-4是我的内置笔记本电脑显示器,而DPY-1外部显示器是。

需要配置的实际字符串是该::命令输出中的后一个。

$ nvidia-settings --assign CurrentMetaMode="DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0, ForceFullCompositionPipeline=On}, DPY-1: nvidia-auto-select @1920x1200 +3840+0 {ViewPortIn=1920x1200, ViewPortOut=1920x1200+0+0, ForceFullCompositionPipeline=On}"

之后,我跑了:

$ xrandr --output DP-1 --scale=2x2

最后,外部显示分辨率很好,没有滚动或其他任何问题。

请注意,在运行这些命令之后CurrentMetaMode,可能与分配的内容有所不同,这可能是由于应用了缩放功能:

$ nvidia-settings -q CurrentMetaMode

  Attribute 'CurrentMetaMode' (lilicorp:1.0): id=50, switchable=no, source=RandR :: DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, DPY-1: nvidia-auto-select @3840x2400 +3840+0 {Transform=(2.000000,0.000000,0.000000,0.000000,2.000000,0.000000,0.000000,0.000000,1.000000), ViewPortIn=3840x2400, ViewPortOut=1920x1200+0+0, ResamplingMethod=Bilinear, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}

希望这也能为其他人解决问题!


4

我有完全一样的问题。我解决了--scale 2x2.001。奇怪的是,--scale 2x1.999还是2x2.0001没有用,所以请务必在2左右尝试几个数字。


我也有这个问题...蛮力解决了先生
juggernauthk108

你蛮力的?值2?
m4p85r

真奇怪!感谢您的帖子。我最终只是放弃了。实际上,我现在已经通过协同作用连接了第二台计算机。当我偶尔需要Windows应用程序(第二台计算机获胜)时,效果非常好
m4p85r

1
这实际上有效。有人应该报告……无论如何,非常感谢!
哥伦布

2

谢谢Milos的出色解决方案,它对我来说非常有效!

我有一点点补充。除了使用命令行外,您还可以ForceFullCompositionPipeline在Nvidia-Settings UI中轻松设置。为此,您必须转到“ X服务器显示配置”,单击“高级”,然后仅激活选项“强制完全组成管道”。有关示例,请参见https://imgur.com/a/3jE78


PS:我使用的是三头设置,带有两个外部显示器(1920x1080; 1680x1050)和一个内部3k显示器(3840x2160)。为此,我应用了以下xrandr-config:

xrandr --output eDP-1-1 --auto --output HDMI-0 --auto --scale 2x2 --above eDP-1-1 --output DP-1 --auto --scale 2x2 --rotate left --right-of eDP-1-1
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.