答案1
你可以尝试此解决方案,这似乎对其他人也有效。
删除
xorg.conf
任何/etc/X11
创建目录
/etc/X11/xorg.conf.d
创建文件
/etc/X11/xorg.conf.d/20-nvidia-antitear.conf
及其内容Section "OutputClass" Identifier "nvidia-antitear" MatchDriver "nvidia-drm" Driver "nvidia" Option "ForceCompositionPipeline" "true" EndSection
有关的:https://wiki.archlinux.org/title/NVIDIA/Troubleshooting#Avoid_screen_tearing
或者,您可以编写一个脚本来应用 adi 提到的设置,但在启动时通过以下方式运行它,crontab
以便它适用于任何用户。这是完成的这里。
解决方案康普顿发布的内容还有另一种选择。
答案2
好的,我找到了一个解决方案,由以下问题的答案提供:如何自动强制 Nvidia GPU 驱动程序使用完整合成管道?
但我稍微改变了解决方案。
步骤 1,创建一个 shell 脚本文件,无论你想要什么,我都像在答案中那样做了~/bin/force-composition-pipeline.sh
第2步,在脚本中添加以下内容:
#!/bin/bash
s="$(nvidia-settings -q CurrentMetaMode -t)"
if [[ "${s}" != "" ]]; then
s="${s#*" :: "}"
nvidia-settings -a CurrentMetaMode="${s//\}/, ForceCompositionPipeline=On\}}"
fi
第 3 步,使脚本可执行:
chmod +x ~/bin/force-composition-pipeline.sh
步骤 4,将脚本添加到登录过程中,方法是将以下代码添加到.profile
或.bash_profile
(无论您在主目录中找到哪个):
if [ -f "$HOME/bin/force-composition-pipeline.sh" ] ; then
~/bin/force-composition-pipeline.sh
fi