最近、Ubuntu 18.04に切り替えて、多くの問題を抱えていましたが、ほとんど修正できました。 i5-7200UとNVidia GTX950Mを搭載したラップトップを使用しています。最新のドライバーをインストールしましたが、ワインゲームは正常に動作します。
問題は、どのグラフィックカードがシステムで使用されているか、統合されたものか専用のものかがわからないこと、およびA LOTブラウザなどでスクロール中に物を動かしながら画面が裂ける.
Vsyncを強制的に有効にする方法や、そうでない場合にティアリングを修正する方法はありますか?
編集:デビッドの要求どおり、最初のコマンドの結果は次のとおりです。 https://paste.ubuntu.com/p/JXZXcBn56T/
そしてログについては: https://paste.ubuntu.com/p/rtMyC88sRg/
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
ここに例
`
こちらの手順をお試しください。クイックフィックスはうまく機能しました。それは昼と夜でした。私がしなければならなかったのは、コマンドをコピーして端末に貼り付けるだけでしたが、パーマネントは機能しませんでした。 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 }"
上記の行では、
ForceCompositionPipeline
をForeFullCompositionPipeline
に変更したことに注意してください。これで実際に問題が解決されると判断したら、永続的であることを確認する必要があります。動作しなかったり、問題が発生した場合は、再起動するだけで通常のデスクトップに戻ります。
修正が機能することを確認したので、画面の破損を完全に解決するために、変更を適用します。まず、
/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設定ファイルに保存をクリックします.
これにより生成され、上記の手順を使用して変更できます。
両方のGPUで画面が破損し、次のように/etc/X11/xorg.conf.dに20-intel.conf
ファイルを作成しました here Intelカードの問題を解決しましたが、許可しませんでしたNVIDIAのものに変更します。
NVIDIAの画面ティアリング
これに従ってください ガイド
スクリーンティアリングインテル
ここでは、prime-select
スクリプトを使用して、上で説明した guide を実装しました。次のコードを再開すると、編集されたprime-select
は20-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間で変更することもできますが、何の影響もありません。
幸運を!