xrandrの「--scale 2x2」により、モニターに何も表示されない


11

4kの外部メインモニターがあり、その左側に1680x1050の外部モニターを接続しようとしています。

私は使ってみました:

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

これはうまくいくように見えます。nvidia-settingsでコンピューターが何が起こっていると考えているかを見ると、4kモニターの左側に3200x2160モニターが正しく表示されています。

しかし、私の外付けモニターでは、上部にちらつきの線がある黒が表示されます。

これを修正できる唯一の方法は、スケーリングが1x1にリセットされ、その時点で画像が返されることです(Xサーバーのサイズを維持したままです。つまり、モニター間を移動するためにスクロールしなければならないデッドスペースがあります)。

そのため、問題はxrandrの2x2スケーリングに特に関係していると思います。どうすればいいのかわかりません。

コンピューターは14.04を実行しており、推奨ドライバー(352.63)がインストールされたnvidia GTX960を搭載しています。

これが私の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 '12年

残念ながら、これを修正することはできませんでした。私は2つのモニターを実行しようとしていました。1つはスケーリングあり、もう1つはスケーリングなしです。2倍のスケーリングで実行しようとしているだけであれば、Cinammonを使用すると非常に簡単です。Unityにそれをさせる方法もあると思います。
m4p85r 2016年

回答:


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画面の下に余分なピクセルが追加され、カーソルが画面の上部/下部に達したときにわずかに上下にスクロールしました。

多くのグーグルで問題が発生し、解決策が得られなかった後、私はこれに偶然遭遇しました:https : //devtalk.nvidia.com/default/topic/891207/-355-11-358-09-viewportin-on-2nd -monitor-results-in-garbled-display-for-values-over-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あたりの数を試してください。


私にもこの問題がありました... mrのブルートフォースがうまくいきました
juggernauthk108

あなたは力ずくで何をしましたか?2の値?
m4p85r 2017年

そして、なんと奇妙なことでしょう。投稿ありがとうございます。あきらめてしまいました。シナジーを介して接続された2台目のコンピューターを実際に持っています。私がたまにWindowsアプリケーションを必要とするとき(2台目のコンピューターが勝つ)には非常にうまく機能します
m4p85r 2017年

これは実際に機能します。誰かがそれを報告する必要があります...とにかく、ありがとうございました!
コロンボ2017年

2

Milosは私にとってうまくいった優れた解決策をありがとう!

少しだけ追加しました。コマンドラインを使用する以外ForceFullCompositionPipelineに、Nvidia-Settings UIで快適に設定することもできます。これを行うには、「Xサーバーディスプレイ構成」に移動し、「詳細設定」をクリックして、「完全構成パイプラインを強制する」オプションをアクティブにするだけです。例については、https://imgur.com/a/3jE78を参照してください


PS:2つの外部モニター(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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.