Nvidia 驱动程序 - 无法检查“强制完整合成管道”

Nvidia 驱动程序 - 无法检查“强制完整合成管道”

我读到,为了避免屏幕撕裂,我应该在 nvidia 设置中启用“强制全合成管道”选项[¹]。但是该选项似乎在我的系统中不可用。

在此处输入图片描述

在此处输入图片描述

我认为 nvidia-settings 可能被阻止了,但根据下面的博客文章,该选项应该在此版本中可用:

在此处输入图片描述

我是否遗漏了什么?

谢谢

[¹]https://www.gamingonlinux.com/articles/how-to-an-update-on-fixing-screen-tearing-on-linux-with-an-nvidia-gpu.8892

答案1

上述解决方案不适用于 Ubuntu 20.04,但问题似乎仍然存在。但可行的解决方案非常简单:

sudo nano /lib/modprobe.d/nvidia-kms.conf
sudo update-initramfs -u
reboot

原文内容nvidia-kms.conf是:

# This file was generated by nvidia-prime
# Set value to 1 to enable modesetting
options nvidia-drm modeset=0

如上所述,modeset=0 必须更改为 modeset=1。

我很奇怪为什么从一开始就没有启用此功能。

答案2

我理解你的痛苦。我总是不知道如何解决我的笔记本电脑上同时配备 Nvidia dGPU(专用 GPU)和 iGPU(集成 GPU)的撕裂问题。

我大胆猜测一下,你的系统是一个 PRIME 系统,在这种情况下,合成管道选项将不可用(即使将它们手动添加到你的 xorg.conf 文件中也不起作用 - 它可能只会让你的屏幕变暗)。

我认为你正在寻找(再次,只是猜测)是PRIME 同步- 这是 Nvidia 同步屏幕的新方法。

尝试这个:

  • /etc/modprobe.d在您的目录中创建一个名为 的文件zz-nvidia-tearing.conf
  • 添加以下行:(options nvidia_387_drm modeset=1将“387”更改为您的驱动程序版本)。
  • 从终端:sudo update-initramfs -u
  • 重启。
  • 检查 PRIME 同步是否已启用:xrandr --prop | less

你应该看到类似这样的内容:

Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
        EDID: 
                00ffffffffffff0030e4210500000000
                001a0104951f1178ea9d35945c558f29
                1e505400000001010101010101010101
                0101010101012e3680a070381f403020
                350035ae1000001a542b80a070381f40
                3020350035ae1000001a000000fe004c
                4720446973706c61790a2020000000fe
                004c503134305746362d535042360075
        PRIME Synchronization: 1 

最重要的是最后一行。如果出于某种原因,您的 PRIME 同步仍未启用(即设置为“1”),请尝试编辑最后一行/etc/modprobe.d/nvidia-graphics-drivers.conf- 将其更改为:

options nvidia_387_drm modeset=1

(再次,显然将“387”更改为您安装的 Nvidia 驱动程序的版本)。

不要忘记运行:

sudo update-initramfs -u

对 中的任何文件进行任何更改后/etc/modprobe.d

如果这仍然不起作用(只要您使用 Nvidia 驱动程序 370 或更高版本,它应该可以起作用),那么您可以尝试将以下内容添加到您GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub

nvidia-drm.modeset=1

我不知道你的 GRUB_CMDLINE_LINUX_DEFAULT 是什么样子的,但是在你添加上面的行之后,它可能看起来像这样:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"

我发现 Nvidia 默认不启用 PRIME Sync 的硬件支持功能,这真是令人惊讶。给出的原因是它与 SLI 配合得不好 - 但有多少 Linux 用户真正使用 SLI?我还没有看到。

如果您还有其他问题,请直接提问,我会尽力解答。

祝你好运!

答案3

在最新的(截至撰写本文时)Nvidia Binary Drivers 430.26 中有这样的选项(当然,我在这里假设驱动程序已正确安装并正常工作):

在此处输入图片描述

但如果由于某种原因它没有显示出来,还有另一种方法可以通过xorg.conf文件启用它。

在我的系统中它看起来是这样的:

编辑/etc/X11/xorg.conf文件并将以下代码添加到屏幕部分(请注意,您的部分中会有更多选项):

Section "Screen"
    Option "metamodes" "3440x1440_75 +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On};"
EndSection

保存然后重新启动系统。

另一种可能的方法是使用nvidia-settings

$ nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=On, ForceFullCompositionPipeline=On }"

答案4

不,您只需要将 X 配置保存到某个地方...然后下次重启时只会继续组合设置...因此成功单击“保存到 X 配置文件”...就是这样。

相关内容