AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1170247
Accepted
gord0
gord0
Asked: 2019-09-03 03:30:32 +0800 CST2019-09-03 03:30:32 +0800 CST 2019-09-03 03:30:32 +0800 CST

如何使用 NVIDIA 解决 Ubuntu 18.04 上的屏幕撕裂问题?

  • 772

Nvidia 驱动程序的答案- 无法检查“强制完整合成管道”会导致我的笔记本电脑无法检测到外接显示器。撤消解决方案可恢复检测第二台监视器的能力。我仍然对任何类型的视频播放感到流泪。Youtube、视频播放器等

我正在使用带有 i7-8750H 和 RTX 2070 (nvidia-driver-430) 的 Ubuntu 18.04。

编辑:

输出inxi:

Graphics:  Card-1: Intel Device 3e9b
           Card-2: NVIDIA Device 1f10
           Display Server: x11 (X.Org 1.20.4 )
           drivers: modesetting,nvidia (unloaded: fbdev,vesa,nouveau)
           Resolution: [email protected], [email protected]
           OpenGL: renderer: GeForce RTX 2070/PCIe/SSE2
           version: 4.6.0 NVIDIA 430.26

英伟达设置截图:

英伟达设置

nvidia tearing 18.04
  • 1 1 个回答
  • 24560 Views

1 个回答

  • Voted
  1. Best Answer
    BeastOfCaerbannog
    2019-09-03T07:48:36+08:002019-09-03T07:48:36+08:00

    2019 年 8 月 9 日更新:

    看来gord0 (OP) 在他们的评论中是正确的。你不需要完成我之前描述的所有步骤(我不会删除它们,以防有人发现它们有帮助)来摆脱撕裂。

    你要做的是:

    1. 打开 NVIDIA X 服务器设置。

    2. 转到X 服务器显示配置。

    3. 选择所需的屏幕。

    4. 单击高级按钮。

    5. 启用Force Composition Pipeline或Force Full Composition Pipeline(尝试两者并启用能够为您提供最佳结果的那个)。

    6. 单击应用按钮。

    或者,您可以通过在终端中运行以下命令来启用Force Composition Pipeline或Force Full Composition Pipeline :

    • 对于力组合管道:

      nvidia-settings --assign CurrentMetaMode="$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')"
      
    • 对于Force Full Composition 管道:

      nvidia-settings --assign CurrentMetaMode="$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceFullCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')"
      

    这些命令使用xrandrandsed和一些正则表达式来以适当的格式获取当前的监视器设置,并将其用作nvidia=settings --assign命令的输入,从而启用所需的设置。

    您现在应该没有屏幕撕裂。

    如果更改不是持久的并且在重新启动后被丢弃,您可以执行以下操作:

    1. 根据您的情况,从上面的命令中运行适当的命令,并确保它正常工作,即您的显示器没有屏幕撕裂。

    2. 将以下命令之一(取决于最适合您的命令)添加到您的启动应用程序。

      • 对于力组合管道:

        bash -c "sleep 10 && nvidia-settings --assign CurrentMetaMode=\"$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')\""
        
      • 对于Force Full Composition 管道:

        bash -c "sleep 10 && nvidia-settings --assign CurrentMetaMode=\"$(xrandr | sed -nr '/(\S+) connected (primary )?([0-9]+x[0-9]+)(\+\S+).*/{ s//\1: \3 \4 { ForceFullCompositionPipeline = On }, /; H}; ${ g; s/\n//g; s/, $//; p }')\""
        

      该sleep 10命令只是增加了 10 秒的延迟,以确保桌面在运行nvidia=settings --assign ...命令之前已完全加载。如果您的桌面需要更多时间才能完全加载,您可能需要增加更大的延迟。

    或者,您可以通过单击NVIDIA X 服务器设置中的保存到 X 配置文件按钮来保存配置。


    老答案。如果上述方法对您不起作用,请尝试这些。

    您发布的答案中建议的内容对于 Ubuntu 16.04 是正确的。

    对于 Ubuntu 18.04 及更高版本,您必须更改options nvidia_387_drm modeset=1为options nvidia-drm modeset=1(不再需要 Nvidia 驱动程序版本)。

    所以你要做的是:

    1. 在您的目录中创建一个/etc/modprobe.d名为zz-nvidia-modeset.conf

      nano /etc/modprobe.d/zz-nvidia-modeset.conf 
      
    2. 向其中添加以下行:

      #enable prime-sync
      options nvidia-drm modeset=1
      
    3. 按Ctrl+O和Ctrl+保存文件X。

    4. 从终端运行:

      sudo update-initramfs -u
      
    5. 重启。

    要启用 NVIDIA 适配器,重启后您必须运行:

    sudo prime-select nvidia
    

    然后注销并重新登录。

    编辑:如果您使用的是 GNOME,则可能必须使用另一个显示管理器,例如lightdm,因为gdm不允许使用外部监视器nomodeset=1(我必须在 18.04 上这样做,但在 20.04 上没有这样做)。

    • 要安装lightdm运行:

      sudo apt install lightdm
      
    • 安装后lightdm运行

      sudo dpkg-reconfigure lightdm
      

      并在出现的终端窗口中选择它作为您的显示管理器。

    • 17

相关问题

  • 普利茅斯将来会允许使用专有图形驱动程序获得良好的启动体验吗?

  • 未连接到任何可见进程的令人讨厌的 CPU 峰值

  • 10.04 Lucid 中的多席位状态如何?[关闭]

  • 升级到 10.04 后字体模糊,Nvidia 问题?

  • 帮助让 Flash 播放器在第二个屏幕上工作?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve