保存 nvidia 设置的 X 配置文件会禁用我的 PRIME 内置显示器

保存 nvidia 设置的 X 配置文件会禁用我的 PRIME 内置显示器

我在 ubuntu 20.04 上。我正在使用带有笔记本电脑的外接显示器,如下面 nvidia-settings 中所示: 在此处输入图片描述

理论上这可行。但是,为了消除外接显示器上的撕裂现象,我需要在“高级”下选择“强制合成管道”。这没问题,但是当我尝试保存 X 配置文件时,重新启动会完全删除我的 PRIME 显示器。只有我的外接显示器可以工作。

我必须删除 /etc/X11/xorg.conf 才能恢复显示。

有没有办法保存此配置并保留主要显示?

答案1

你可以尝试此解决方案,这似乎对其他人也有效。

  1. 删除xorg.conf任何/etc/X11

  2. 创建目录/etc/X11/xorg.conf.d

  3. 创建文件/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

相关内容