web-dev-qa-db-ja.com

Ubuntu 18.04で画面が破損する

最近、Ubuntu 18.04に切り替えて、多くの問題を抱えていましたが、ほとんど修正できました。 i5-7200UとNVidia GTX950Mを搭載したラップトップを使用しています。最新のドライバーをインストールしましたが、ワインゲームは正常に動作します。

問題は、どのグラフィックカードがシステムで使用されているか、統合されたものか専用のものかがわからないこと、およびA LOTブラウザなどでスクロール中に物を動かしながら画面が裂ける.

Vsyncを強制的に有効にする方法や、そうでない場合にティアリングを修正する方法はありますか?

編集:デビッドの要求どおり、最初のコマンドの結果は次のとおりです。 https://paste.ubuntu.com/p/JXZXcBn56T/

そしてログについては: https://paste.ubuntu.com/p/rtMyC88sRg/

3
Eris

Optimus nvidiaの場合は、prime syncを使用する必要があります。ターミナルでこのファイルを作成します。

Sudo nano /etc/modprobe.d/zz-nvidia-modeset.conf

これを挿入

options nvidia_drm modeset=1

次に、ctrl+oを押してenterキーctrl+xを押して、ファイルを保存して終了します。

次に、このコマンドを実行します

Sudo update-initramfs -u

リブート

再起動後に確認するには、これを実行します、

xrandr --verbose

上にスクロールして、一番上の結果エリアを見てください。

PRIME Synchronization: 1 supported: 0, 1

ここに例

xrandr results

`

3
doug

こちらの手順をお試しください。クイックフィックスはうまく機能しました。それは昼と夜でした。私がしなければならなかったのは、コマンドをコピーして端末に貼り付けるだけでしたが、パーマネントは機能しませんでした。 xorg.confファイルを作成できませんでした。

https://www.cmscritic.com/how-to-fix-nvidia-screen-tearing-in-xfce-mate-kde-lxde-and-others/#/

Xrce、LXDE、MATE、またはComptonなどのコンポジターを実行していない他のデスクトップ環境を実行していて、かなり新しいNVIDIAカードを使用している場合は、おそらく、あなたが経験しているひどい画面の裂け。この画面の破損は通常、Linuxで独自のNVIDIAドライバーを実行しており、前述の(または非合成の)デスクトップ環境のいずれかを使用している場合に発生します。幸いなことに私たち全員に修正があり、その厄介なNVIDIAスクリーンの破れをなくす方法を説明します。

率直に言って、私にはわからないので、どうやってそれを消すかについてもっと興味があるので、なぜこれが起こるのかについての詳細には入りません。

私にとって、Firefoxでウィンドウを前後に移動したりスクロールしたりすると、ティアリングが非常に明白になります。それが私を駆り立てるほど(そして、あなたもここにいないと確信しています)絶対に夢中になります。では、なぜもう苦しむのでしょうか?それを取り除こうではありませんか?

テストして修正が適切に機能するかどうかを確認するには、ターミナルを開いて次のコマンドを実行します(ここからコピーして貼り付けてください)。

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"

画面が一瞬ちらつくことがありますが、その後大幅に改善されるはずです。 Firefoxと移動ウィンドウをテストします。修正は機能しましたか?その場合、これは一時的な修正であるため、永続的なものにする必要がありますが、心配する必要はありません。その方法を説明します。うまくいかなかった場合は、次のように行を少し変更してみてください。

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

上記の行では、ForceCompositionPipelineForeFullCompositionPipelineに変更したことに注意してください。

これで実際に問題が解決されると判断したら、永続的であることを確認する必要があります。動作しなかったり、問題が発生した場合は、再起動するだけで通常のデスクトップに戻ります。

修正が機能することを確認したので、画面の破損を完全に解決するために、変更を適用します。まず、/etc/X11ディレクトリにxorg.confが存在することを確認する必要があります。調べるには、ターミナルに次のコマンドを入力して押します Enter

ls /etc/X11

以下のようなxorg.confファイルがリストされている場合は、続行してください。

$ ls/etc/X11 
 app-defaults xinit Xreset Xsession.d 
 default-display-manager xkb Xreset.d Xsession.options 
 fonts xorg.conf Xresources xsm 
 rgb.txt xorg.conf.backup Xsession

そうでない場合は、この次の部分をスキップして読み続けます。 /etc/X11/xorg.confが見つからない場合の対処方法でさらに詳しく説明します

同じ端末ウィンドウでxorg.confがリストされている場合は、次のコマンドを入力してを押してファイルのバックアップを作成します Enter

cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

次に、お気に入りのテキストエディター(私はnanoテキストエディターのファンです)でルートとしてファイルを開き、次のコマンドを入力します。

Sudo nano /etc/X11/xorg.conf

これでエディターが開きます。Screenセクションの下に、あなたのために働いたものに基づいて以下の行を追加したいと思うでしょう。

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

したがって、上記の2つのnvidia-settings行のうち、ForceFullCompositionPipelineを使用する行が機能する場合、上記の例を使用し、ForceCompositionPipelineが機能する場合は、代わりに上記の例でそれを使用します。

デュアルモニターのセットアップの次の例のように、一部のユーザーは/etc/X11/xorg.confにオプションの「メタコード」を既に持っている場合があります。

Option "metamodes" "VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864"

この場合、次のように行を変更するだけです:

Option "metamodes" "VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864 { ForceCompositionPipeline = On }"

再起動すると、ティアリングはなくなります!

/etc/X11/xorg.confが見つからない場合はどうしますか

さて、私のように/etc/X11/xorg.confを持っていなかった人(たとえば、Ubuntuを実行しているほとんどの人)にとっては、この修正を適用できないと考えるとパニックに陥ることがあります。心配しないでください、私は同じ問題を抱えていました、そして、私はあなたをぶら下げたままにしません。

メインマシンでLinux Mint 18を実行していますが、これはどのディストリビューションでも動作するはずです。私はxorg.confを持っていなかったので、nvidia-settingsツールを起動し、X Server Display Configurationセクションに移動して新しいファイルを生成し、ファイル名の下に/etc/X11/xorg.conf(uncheck merge)と入力しましたこれはあなたが持っている場所のインスタンスでのみ有用であるため、チェックされている場合は既存のものを使用して)、X設定ファイルに保存をクリックします.

enter image description here
X構成ファイルに保存

これにより生成され、上記の手順を使用して変更できます。

2
Dale Burrell

両方のGPUで画面が破損し、次のように/etc/X11/xorg.conf.dに20-intel.confファイルを作成しました here Intelカードの問題を解決しましたが、許可しませんでしたNVIDIAのもの​​に変更します。

NVIDIAの画面ティアリング

これに従ってください ガイド

スクリーンティアリングインテル

ここでは、prime-selectスクリプトを使用して、上で説明した guide を実装しました。次のコードを再開すると、編集されたprime-select20-intel.confを作成し、書き込みます

Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"
    Option "TearFree" "true"
EndSection

intelが選択されている場合は/etc/X11/xorg.conf.dのファイルに、NVIDIAが選択されている場合は/etc/X11/xorg.conf.dディレクトリを削除します。

スクリプトをコピーする必要がある行100のprime-select.bak内のprime-selectスクリプトを編集(スクリプトをコピーして/usr/binに名前を変更して、バックアップファイルを作成します):

def enable_profile(self, profile):
        current_profile = self._get_profile()

        if profile == current_profile:
            # No need to do anything if we're already using the desired
            # profile
            sys.stdout.write('Info: the %s profile is already set\n' % (profile))
            return True

        sys.stdout.write('Info: selecting the %s profile\n' % (profile))

        self._backup_grub_config()

        if profile == 'nvidia':
            # Always allow enabling nvidia
            # (No need to check if nvidia is available)
            self._enable_nvidia()
        else:
            # Make sure that the installed packages support PRIME
            #if not self._supports_prime():
            #    sys.stderr.write('Error: the installed packages do not support PRIME\n')
            #    return False
            self._disable_nvidia()

        # Write the settings to the config file
        self._write_profile(profile)

        return True

そして、次のコードでそれを変更します(インデントに注意してください、それはPythonでは非常に重要です):

def enable_profile(self, profile):
        current_profile = self._get_profile()

        if profile == current_profile:
            # No need to do anything if we're already using the desired
            # profile
            sys.stdout.write('Info: the %s profile is already set\n' % (profile))
            return True

        sys.stdout.write('Info: selecting the %s profile\n' % (profile))

        self._backup_grub_config()

        if profile == 'nvidia':
            # Always allow enabling nvidia
            # (No need to check if nvidia is available)
            # Here starts the edited part
            try:
                os.remove("/etc/X11/xorg.conf.d/20-intel.conf")
                os.rmdir("/etc/X11/xorg.conf.d/")
            except:
                sys.stderr.write("Error removing the config files\n") 
           # Here ends the edited part
            self._enable_nvidia()


        else:
            # Make sure that the installed packages support PRIME
            #if not self._supports_prime():
            #    sys.stderr.write('Error: the installed packages do not support PRIME\n')
            #    return False
            # Here starts the edited part
            try:
                os.mkdir("/etc/X11/xorg.conf.d/")
                f=open("/etc/X11/xorg.conf.d/20-intel.conf", "w+")
         # If you want to add more options to the intel config file just edit the following line:
                f.write('Section "Device"\n\tIdentifier  "Intel Graphics"\n\tDriver\t"intel"\n\tOption\t"TearFree"\t"true"\n\tOption\t"DRI"\t"3"\nEndSection')
            except:
                sys.stderr.write("Error making conf files\n")
            # Here ends the edited part          
            self._disable_nvidia()

        # Write the settings to the config file
        self._write_profile(profile)

        return True

Intel GPUを使用している場合は、NVIDIA GPUに変更して、

Sudo prime-select nvidia

ログアウトし、ログインして、もう一度入力します

Sudo prime-select intel

ログインしてログアウトします。

NVIDIAを使用している場合は、次を入力します。

Sudo prime-select intel

GPUの使用タイプがわからない場合:

Sudo prime-select query

NVIDIAを提供するGUIからGPU間で変更することもできますが、何の影響もありません。

幸運を!

1
Enaut