web-dev-qa-db-ja.com

UBUNTU 19.04スクリーンテアリングPC

私のPCにUbuntu 19.04をインストールしました。

  • INTEL i7 8700k
  • NVIDIAギガバイトGeForce GTX 1080 Ti AORUS Waterforce @ NVIDIA-driver-418
  • ASUS PB287Q @ 3840x2160ピクセルを監視

Ubuntuを使い始めた当初、私はこの煩わしい画面のちらつきに気づきました。それはFirefoxだけだと思っていましたが、ウィンドウを振ると、ウィンドウを2つの部分に分割する(引き裂く)水平線が表示されました。これは、あらゆる種類のウィンドウまたはアプリケーションで発生します。私はたくさん読んで、これは私がこれまでに行ったことです:

  • フラクショナルスケーリング を有効にします。100%で読み取ることができず、200%で殺されたためです。
    150%に設定しました:gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"
  • ForceFullCompositionPipelineをOnにします。最初はnvidia-settingsで、後で/usr/share/X11/xorg.conf.d/10-nvidia.confで。これは、再起動またはシャットダウンで設定がリセットされることに気付いたためです。

nvidia-settings -q CurrentMetaModeの出力:

Attribute 'CurrentMetaMode' (EST:1.0): id=50, switchable=yes, source=RandR ::
  DPY-7: nvidia-auto-select @5120x2880 +0+0
  {Transform=(1.333328,0.000000,0.000000,0.000000,1.333328,0.000000,0.000000,0.
  000000,1.000000), ViewPortIn=5120x2880, ViewPortOut=3840x2160+0+0,
  ResamplingMethod=Bilinear, ForceCompositionPipeline=On,
  ForceFullCompositionPipeline=On}

10-nvidia.conf を添付しました。これを発火するとすぐにティアリングが修正されるのは非常に奇妙ですが、10-nvidia.confを設定した場合でも、時々それを再適用する必要があります。

Sudo nvidia-settings --assign CurrentMetaMode="nvidia-auto-select
  @5120x2880 +0+0 { ViewPortIn=5120x2880, ViewPortOut=3840x2160+0+0,
  ResamplingMethod=Bilinear, ForceCompositionPipeline=On,
  ForceFullCompositionPipeline=On }"
4
Erik Steiner

ようやく自分の解決策を見つけたと思います。以下の手順で、ティアリングフリーのエクスペリエンスを取得し、読みやすいコンテンツを取得するようにHiDPIディスプレイを設定することができました。設定とディスプレイデバイス(GNOMEとNVIDIAの間で以下の問題を参照)でGNOMEスケーリングモードを回避し、DPIを正しく設定することでスケーリングを解決したかったのです。想像したとおりには機能しませんでした(DPIスケーリング、テアリングは修正されています)。しかし、私はあなたのフィードバックを探しています。多分それは結局働くようにすることができます。

次の問題に対処する必要がありました。

  • Ubuntuのインストール後、ディスプレイに何も表示されなくなりました。 28インチで4kディスプレイを使用するには、双眼鏡を使用せずにHiDPIセットアップが必要でした。
  • Gnome設定メニューで200にスケーリングを設定することは多すぎ、100は受け入れられませんでした。 分数スケーリング は問題ありませんでした。
  • 次は引き裂きです。すべてが途切れ途切れに感じられ、すべてのウィンドウにこのドゥームの水平線がありました。だから私は_10-nvidia.conf_を設定しました。
  • _10-nvidia.conf_は、再起動またはシャットダウン後、時々、ティアリングが戻ってきたため、一部のみを修正しました。
  • Gnome ScalingとNVIDIAドライバーが互いに干渉しました。
    • Nvidia-settingsを開くと、画面が数秒間黒くなることに気付きました。
    • スクリーンショットを撮ろうとしたときに画面が真っ黒になったため、Flameshot(スクリーンショットアプリ)が機能していませんでした。 Escキーを押して「スクリーンショットを撮る」アクションを終了すると、画面が再び表示されます。
    • モニターにicc-color-profileを使用したいのですが、適用される場合と適用されない場合があります。わずかな色の変化に気づきました。
  • Gnome設定でスケーリングを適用すると、3840x2160を使用している場合でも、nvidia-settingsのViewPortInが5120x2880に変更されることに気付きました。これは、GnomeでDPIスケーリングがどのように行われるかに関連しています(間違っている場合は修正してください)。興味深いことに、ViewPortInを3840x2160(100%のスケーリングに等しい)に変更した場合、Flameshotは再び機能していました。
  • ナイトモードは機能していませんでした。アクティブになるとすぐに、ファイルマネージャーを起動しただけで無効にされたか、他のランダムな理由で発生しました。

ただし、これらすべての問題を念頭に置いて、すべてをデフォルトに戻し、最初からやり直したいと思いました。

  • 最初の_10-nvidia.conf_以外の_Section "OutputClass"_をすべて削除しました
  • 「X Server Display Configuration」に移動して_Sudo nvidia-settings_を実行し、「Configuration」を選択して「Disabled」を選択しました。私はダイアログを確認し、可能な限り適用することを選択しました。安全のため、後で_nvidia-settings_でも同じことを行いました(NVIDIA設定を閉じた後、rootなしで実行しました)。
  • Gnome設定に戻って、100%のスケーリングを選択し、_gsettings reset org.gnome.mutter experimental-features_を実行して、分数スケーリングを無効にしました。

後で再起動していくつかのgoogleリクエストを行うと、Gnomeのスケーリングを回避し、NVIDIAドライバーでDPIに関するすべてのことを実行できるようなセットアップが必要でした。


10-nvidia.confのセットアップ:
_nvidia-settings_-> "Xサーバーディスプレイ構成"-> "X構成ファイルに保存"-> "プレビューを表示..."を開き、すべてのものをコピーして、そのファイルの基本を取得しました。
_Sudo gedit /usr/share/X11/xorg.conf.d/10-nvidia.conf_を使用して、「プレビューを表示...」のセクションを既存のコンテンツに貼り付けました。 DO NOT REPLACE

次に、次のコンテンツを追加/編集しました(ファイルをコピーして貼り付けないでください)。

  • 実際にティアリングを修正することは、魔法です [[reference]
    _Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"_
  • 次に、DPIスケーリングを設定したいと思いました。
    _Option "DPI" "161 x 158"_
    正しく設定すると、次のようにして正しいDPIスケーリングが得られると思いました:
    • _xdpyinfo | grep -B2 resolution_が_resolution: 96x96 dots per inch_を出力する可能性は非常に高いですが、実際には正しいDPIではありません。 whtyger's postを使用して、DPIを計算しました。
      randr | grep -w connected DP-4 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 621mm x 341mm
    • 計算:
      x = 62,1 cm
      y = 34,1 cm

      x = 62,1 cm/2,54 = 24,4488インチのサイズ
      y = 34,1 cm/2,54 =インチで13,4252サイズ

      x = 3860 px/24,4インチ= 158,1972 DPI
      y = 2160 px/13,4インチ= 161,1940 DPI
    • 残念ながら、何かを忘れたか、適切なDPIスケーリングを適用する方法が機能していません。しかし、それでも目をつまむ必要がありました(フォントサイズが小さい)。
    • _xrandr --dpi 144_を実行して、DPIスケーリングを144%に設定しました。コマンドの後、PCは反応しませんでした。 Strg + Alt + F1でログイン画面が表示され、144 DPIが得られたところで再度ログインできました。ただし、UI要素のスケーリング係数は変更されませんでした。
    • 私はまだGNOMEスケーリングを使用したくなかったので、フォントスケーリングを増やすために GNOME Tweak Tool を使用しました。 _desired_DPI / 96_を使用して、1.5の倍率(144 DPI/96)を取得しました。ほとんどのデスクトップ要素とアプリケーション要素は現在読み取り可能であり、ディスプレイデバイスではGNOMEスケーリングモードを使用しません。
    • 私は_Option "Composite" "Enable"_を追加し、引き裂くことなくより良いパフォーマンスを得ることを望みました。魔法の修正を行っても、ティアリングはすでにForceCompositionPipelineで修正されているため、パフォーマンスの向上には気付きませんでした。
    • _Sudo nvidia-settings_を使用して、「OpenGL設定」に移動し、「VBlankに同期」を無効にし、「フリップを許可」をアクティブにしました。


最終的な考え:

全体的な感じははるかに良く、引き裂きは死んでいます。しかし、私はまだ60 Hzがそんなに遅いとは信じられません。だから私は狂った地獄のように窓を振るとき、私はまだ窓の多くのゴーストを見る。 Flameshotを再び使用できるようになりました。ナイトモードを使用してnvidia-settingsを開始すると、何かがそのモードに干渉するため、ナイトモードが終了します。幸いにも、Windowsは同じ戦いを繰り広げています。
書きすぎず、どちらか一方の問題を解決できることを願っています。フィードバックをお待ちしています。


参照:
buntu 19.04でフラクショナルスケーリングを有効にする方法
LinuxでHi-Dpi画面を処理する方法
画面DPIを見つけて変更する方法
GNOME Tweak Tool
HiDPI
Nvidia独自のドライバーDPI設定
Xorg
新しいnVidia GPUで画面がちらつく


10-nvidia.conf-コピー/貼り付けしないでください:

_Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    ModulePath "/usr/lib/x86_64-linux-gnu/nvidia-418/xorg"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Ancor Communications Inc ASUS PB287Q"
    HorizSync       24.0 - 160.0
    VertRefresh     30.0 - 80.0
    Option         "DPMS"
    Option         "DPI" "161 x 158"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 1080 Ti"
    Option         "UseEdidDpi" "False"
    Option         "DPI" "161 x 158"
    EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-7"
    Option         "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
        Modes       "3840x2160"
    EndSubSection
EndSection

Section "Extensions"
    Option         "Composite" "Enable"
EndSection
_
2
Erik Steiner