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

Fil*_*ias 11 nvidia nvidia-prime gpu-drivers 16.04

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

在此处输入图片说明

在此处输入图片说明

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

在此处输入图片说明

我错过了什么吗?

谢谢

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

w-s*_*sky 6

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

sudo nano /lib/modprobe.d/nvidia-kms.conf
sudo update-initramfs -u
reboot
Run Code Online (Sandbox Code Playgroud)

nvidia-kms.conf的原始内容是:

# This file was generated by nvidia-prime
# Set value to 1 to enable modesetting
options nvidia-drm modeset=0
Run Code Online (Sandbox Code Playgroud)

正如它所说,modeset=0 必须更改为 modeset=1。

我想知道为什么从一开始就没有启用。


Van*_*gan 3

我感受到你的痛苦。我总是在尝试弄清楚如何消除同时具有 Nvidia dGPU(专用 GPU)和 iGPU(集成 GPU)的笔记本电脑上的撕裂问题。

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

我认为您正在寻找(再次,只是猜测)的是PRIME Synchronization - 这是 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 
Run Code Online (Sandbox Code Playgroud)

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

options nvidia_387_drm modeset=1
Run Code Online (Sandbox Code Playgroud)

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

不要忘记运行:

sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

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

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

nvidia-drm.modeset=1
Run Code Online (Sandbox Code Playgroud)

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

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"
Run Code Online (Sandbox Code Playgroud)

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

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

祝你好运!

  • 这种 Prime Synchronization 技术(将 `options nvidia_387_drm modeset=1` 放入 `modprobe.d` 的配置文件中)完全破坏了我的系统。重新启动时,kubuntu 重新启动并进入黑屏。3 小时后,解决方案是删除损坏的 xorg.conf 文件: `mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak` (3认同)

小智 1

作为一名 Ubuntu 用户,我遇到过这个可怕的撕裂问题以及安装程序冻结问题,这两个问题都与使用基于 NVIDIA GPU 的硬件有关。我想在这个答案中解决这两个问题,所以这里是:

我正在使用的系统是 Ubuntu 18.04 LTS amd64,运行在 Core i7 上,具有内置 HD Graphics gpu 和 NVIDIA GEFORCE GTX 960M gpu。

1、Ubuntu 安装程序在启动时冻结:这是由于 NVIDIA 芯片的存在造成的,因此,为了纠正它,请启动安装程序并E在 GRUB 出现时按 。转到 LINUX 行的末尾并添加nouveau.modeset=0. 然后按 继续启动过程F10。正常安装系统,完成后,从计算机中取出安装介质,重新启动系统并登录您的帐户。

下面继续:

2、可怕的显示撕裂问题不同步的PRIME显示:这是由于PRIME显示配置不当引起的(系统需要在多GPU系统配置中正确卸载图形),因此,首先,安装正确的GPU驱动程序在系统中。就我而言,390 版本驱动程序对应于 GTX 960M gpu,因此,例如,需要执行sudo apt-get install nvidia-driver-390. 如果有合适的驱动程序版本可用,我更愿意从主存储库而不是从 PPA 进行操作。

安装驱动程序库后,转到终端并gedit以超级用户身份使用sudo gedit. 然后,打开系统文件/etc/default/grub,找到显示nouveau.modeset=0我们之前设置的代码的行并将其完全删除。将该行替换为GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"并保存。关闭 gedit 并在终端中通过执行sudo update-grub.

完成此操作后,关闭所有内容并重新启动系统。现在一切应该都工作正常了!

笔记:

  1. 我的指导步骤是其他用户建议的总结,我已经执行了这些步骤至少三次,并取得了同样好的结果。我决定编写自己的指南,因为我使用的指南总是有一些未发现的问题,我必须解决这些问题才能使系统正常工作。

  2. 为了确定您对应的 NVIDIA 驱动程序版本,您可以查看其官方驱动程序下载页面,选择正确的型号和 linux 64 位操作系统。结果将显示正确的版本号。

  3. 如果你想了解什么是 PRIME 显示器以及为什么它如此麻烦,可以查看此链接: https: //devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/

祝你好运!