Manjaro Linuxをインストールしました。私のグラフィックカードはNvidia GTX 1050Tiです。
コンピュータを起動してビデオを見ようとすると、画面がひどく破れてしまったことがわかりました。この問題は、Nvidia Xサーバー設定に行き、「完全結合パイプラインを強制する」オプションを有効にしたときに解決されました。
コンピュータを再起動するたびに手動で有効にする必要がないように、このオプションを永久に設定する方法はありますか?
答え1
私のラップトップには、Ubuntu BionicとKDE Plasma 5.17を実行するQuadro K2100Mが装備されています。ネオン買戻し)とを使用してくださいnvidia-driver-430
。
家と職場のモニターには異なる構成セットがあるので、何か動的なものが必要でした。以下は私に役立つものです。
画面(
~/bin/force-composition-pipeline.sh
)の動的構成を処理するために、次のスクリプトを作成しました。#!/bin/bash s="$(nvidia-settings -q CurrentMetaMode -t)" if [[ "${s}" != "" ]]; then s="${s#*" :: "}" nvidia-settings -a CurrentMetaMode="${s//\}/, ForceCompositionPipeline=On\}}" fi
- 自動起動に次のスクリプトを追加しました。
chmod +x ~/bin/force-composition-pipeline.sh ln -s ~/bin/force-composition-pipeline.sh ~/.config/autostart-scripts/
- KDEプラズマ設定では、表示と監視->シンセサイザー、私が設定しました引き裂き防止(「垂直同期」)到着いいえ。
不完全ForceCompositionPipeline
なだけで十分だと思いました。
答え2
Paradoxの返信に追加するには(コメントできないため...)〜/.bashrcではなく、〜/ .bash_profileにコマンドを入れます。
~ / .bashrcは、新しいbashセッションが開かれるたびに(つまり、新しいターミナルエミュレータウィンドウ/タブが開かれるたびに)取得されます。
一方、bashをログインシェルで起動すると(たとえば、グラフィックデスクトップ環境にログインするとき)、〜/ .bash_profileは一度だけインポートされます。比較するhttps://www.gnu.org/software/bash/manual/bash.html#Bash-Startup-Files
編集:今、nvidia独自のドライバを使用するときにKWinの引き裂かれた問題に対するより良い解決策があります。 kwinの新しいバージョン(バージョン> = 5.12)が必要です。 [1]そしてnvidia-drm カーネルモジュール[2]のモード設定を有効にします。私はこれをテストし、kwin-5.17.80(openSuseリポジトリのgit snapshot)とnvidia 440.26で動作します。
編集:まあ、nvidia-drmモジュールを使用してモードセットを有効にすると、サスペンドリカバリが失敗するように見える副作用があります。
編集(再):少なくとも現在、nvidia-drmモジュールを使用して設定されたモードを有効にせずにテアリングが消えたようです。
[1]https://wiki.archlinux.org/index.php/NVIDIA/Troubleshooting#Avoid_screen_tearing_in_KDE_(KWin) https://phabricator.kde.org/D19867
[2]https://wiki.archlinux.org/index.php/NVIDIA#DRM_kernel_mode_setting
答え3
」を設定できます。結合パイプラインの強制完了「オプションは以下のように端末に表示されます。
$ nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
これを自動化する最も簡単な方法はこれをに入れることです.bashrc
。続行するには、端末に次のように入力します。
$ echo "$ nvidia-settings --assign CurrentMetaMode=\"nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }\"" >> ~/.bashrc
この機能を適用するには、ログアウトして再度ログイン(または再起動)できます。 「自動選択」のため、これはモニターソリューションのみを意味します。
代替案は内部的に同じことを行うことですが、~/.nvidia-settings-rc
時間の経過とともに動作が変わる可能性がありますが、.bashrc
実行方法を決定できます。
付録
画面の引き裂きに関して試すことができる他の調整があります。
Manjaroを使用しているので、KDEを使用しているとします。画面を更新する前にトリプルバッファリングを使用するか、現在の画像が表示されるのを待つようにウィンドウマネージャ(KWin)に指示できます。
1)GPUが現在の画像を完全に表示するのを待ちます。
# echo "export __GL_YIELD=\"USLEEP\"" >> /etc/profile.d/kwin.sh
2) KWinでトリプルバッファリングを有効にする
# echo "export KWIN_TRIPLE_BUFFER=1" >> /etc/profile.d/kwin.sh
上記の2つを同時に有効にしないでください。nvidia-settings
KWinでトリプルバッファリングを有効にする場合は、トリプルバッファリングを有効にする必要があります。
答え4
シングルモニターの場合:
テキストファイルを作成し、次の内容を貼り付けます。
[Desktop Entry]
Type=Application
Name=nvidia-force-full-compositon
Exec=nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
デュアルモニターの場合:
デュアルモニタがある場合は、テキストエディタでこのファイルを開くことができます。/etc/X11/xorg.conf
次に、ctrl + Fを使用してこの単語を検索し、metamodes
構成内容を確認します。私のことです。
"metamodes" "DVI-I-0: nvidia-auto-select +1920+0 {ForceCompositionPipeline=On}, HDMI-0: nvidia-auto-select +0+0
だから私は次のようなdestopエントリを作成しました。
[Desktop Entry]
Type=Application
Name=nvidia-force-full-compositon
Exec=nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +1920+0 {ForceCompositionPipeline=On}, nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"
注:ForceFullCompositionPipelineまたはForceCompositionPipelineのみを実行できます。必要に応じてテキストを変更するだけです。
次のようにテキストファイルを保存します。
nvidia-force-full-compositon.desktop
.desktop
必須の場所です。
今コピーして貼り付けてください。~/.config/autostart
再起動。