Nvidia司机 – 无法检查“强制完整组合管道”

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

在此处输入图像描述

在此处输入图像描述

我认为nvidia-settings可能会被阻止,但根据下面的博客文章,该版本应该提供该选项:

在此处输入图像描述

我错过了什么吗?

谢谢

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

我感觉到你的痛苦。 我总是在试图弄清楚如何摆脱同时拥有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 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或更高版本),那么你可以尝试将以下内容添加到/etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT

 nvidia-drm.modeset=1 

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

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

我发现令人惊讶的是,Nvidia默认情况下不支持PRIME Sync在支持它的硬件上。 给出的原因是因为它不能很好地与SLI一起使用 – 但有多少Linux用户实际使用SLI? 我还没有看到任何。

如果您还有其他问题,请回答,我会尽力回答。

祝好运!

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

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

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

继续下面:

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

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

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

笔记:

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

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

  3. 如果您想了解PRIME显示屏是什么以及它为何如此繁琐,您可以查看以下链接: https : //devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/

祝好运!