Nvidiaドライバー-「フルコンポジションパイプラインを強制する」をチェックできない の答えは、ラップトップが外部モニターを検出できないようにすることです。ソリューションを元に戻すと、2番目のモニターを検出する機能が復元されます。どのようなタイプのビデオ再生でも、引き裂かれたままです。 Youtube、ビデオプレーヤーなど.
Ubuntu 18.04とi7-8750HおよびRTX 2070(nvidia-driver-430)を使用しています。
編集:
inxi
の出力:
Graphics: Card-1: Intel Device 3e9b
Card-2: NVIDIA Device 1f10
Display Server: x11 (X.Org 1.20.4 )
drivers: modesetting,nvidia (unloaded: fbdev,vesa,nouveau)
Resolution: [email protected], [email protected]
OpenGL: renderer: GeForce RTX 2070/PCIe/SSE2
version: 4.6.0 NVIDIA 430.26
Nvidia設定のスクリーンショット:
更新08/09/2019:
gord (OP)が彼の comment に正しいようです。以前に説明したすべての手順を実行する必要はありません(誰かが役立つと思った場合に備えて、私はそれらを削除しません)。
あなたがしなければならないのは:
NVIDIA Xサーバー設定を開きます。
X Server Display Configurationに移動します。
必要な画面を選択します。
Advancedボタンをクリックします。
Force Composition PipelineまたはForce Full Composition Pipelineを有効にします(両方を試して、最良の結果が得られるパイプラインを有効にします)。
または、ターミナルで次のコマンドを実行して、Force Composition PipelineまたはForce Full Composition Pipelineを有効にできます。
フォース構成パイプラインの場合:
nvidia-settings --assign CurrentMetaMode="$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')"
Force Full Composition Pipelineの場合:
nvidia-settings --assign CurrentMetaMode="$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceFullCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')"
これらのコマンドは、xrandr
およびsed
をいくつかの 正規表現 とともに使用して、現在のモニター設定を適切な形式で取得し、それをnvidia=settings --assign
コマンドへの入力として使用して、目的の設定を有効にします。
これで画面のちらつきはなくなります。
ただし、私の場合、上記のオプションは両方とも再起動後に無効になります。
再起動後にForce Composition PipelineまたはForce Full Composition Pipelineを有効にするには、次の手順を実行します。
上記のコマンドから適切なコマンドを実行し、正しく機能することを確認します。つまり、モニターに画面のちらつきがないことを確認します。
起動アプリケーションに次のコマンドのいずれかを追加します(最適な方法に応じて異なります)。
フォース構成パイプラインの場合:
bash -c "sleep 10 && nvidia-settings --assign CurrentMetaMode=\"$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')\""
Force Full Composition Pipelineの場合:
bash -c "sleep 10 && nvidia-settings --assign CurrentMetaMode=\"$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceFullCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')\""
sleep 10
コマンドを実行する前に、nvidia=settings --assign
コマンドは10秒の遅延を追加して、デスクトップが完全にロードされたことを確認します。デスクトップが完全にロードされるまでに時間がかかる場合は、さらに大きな遅延を追加する必要がある場合があります。
古い答え。上記の方法がうまくいかない場合は、これらを試してください。
あなたが投稿した回答で示唆されていることは、Ubuntu 16.04にとって正しいものです。
Ubuntu 18.04以降のバージョンでは、options nvidia_387_drm modeset=1
をoptions nvidia-drm modeset=1
に変更する必要があります(Nvidiaドライバーのバージョンは不要になりました)。
したがって、Ubuntu 18.04以降のバージョンでは、次のことを行う必要があります。
/etc/modprobe.d
というファイルをzz-nvidia-modeset.conf
ディレクトリに作成します。
次の行を追加します。
#enable prime-sync
options nvidia-drm modeset=1
ターミナルから:
Sudo update-initramfs -u
リブート。
Nvidiaアダプタを有効にするには、再起動後、次を実行する必要があります
Sudo prime-select nvidia
次に、ログアウトして再度ログインします。
編集:Gnomeを使用している場合、lightdm
では外部モニターがnomodeset=1
を使用できないため、gdm
などの別のディスプレイマネージャーを使用する必要があります。 。
lightdm
をインストールするには:
Sudo apt install lightdm
lightdm
をインストールした後
Sudo dpkg-reconfigure lightdm
表示されるターミナルウィンドウでディスプレイマネージャーとして選択します。