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
위의 두 가지를 동시에 활성화하지 마십시오. 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
재시작.