电影出现撕裂(无垂直同步)(Nvidia 专有驱动程序)

电影出现撕裂(无垂直同步)(Nvidia 专有驱动程序)

这更多的是 KDE 而不是 Ubuntu 的问题,但是...
我看到屏幕上出现了明显的撕裂。KDE 合成、Firefox 中的 Flash 视频和 kpat 等简单游戏都是垂直同步的,但是在 Steam 游戏和电影中有明显的持续撕裂。如果我关闭所有垂直同步,撕裂会加倍明显,因此这不仅仅是 GPU 忽略设置。
最让我烦恼的是,我在许多不同的设置上都遇到了同样的问题。每个人都有这个问题,却没有人关心吗?
我的设置

  • Kubuntu(最近几个版本)或 OpenSuse 或 Gentoo。
  • KDE 4.12 - 4.13
  • Nvidia GTX 260、570、TITAN,不同的驱动程序版本。
  • 我使用 mplayer2 后端在 SMplayer 中观看电影。VLC 也有同样的问题。

我尝试了什么(但这没有帮助)

  • 在不同的配置中打开和关闭 nvidia-settings 和 KDE 桌面效果中的 Vsync 设置。
  • 切换 Mplayer 输出和direct rendering设置。
  • 在 nvidia-settings 中关闭自适应电源模式。
  • 关闭合成
  • 更改显示器 Hz
  • 从 CLI 运行 mplayer
  • 举行仪式和祭祀

什么有效(但这不是可接受的解决方案)

  • 禁用 KDE,并在纯 X 会话中运行 Mplayer
  • 切换到 nouveau 并关闭合成并以全屏方式打开视频 - 没有任何部分它仍然撕裂。

请指教。

更新 1我发现如果我进入桌面效果-高级并更改任何有价值的东西(OpenGL 版本、缩放算法)并按应用,撕裂就会消失,直到重新启动。但是,没有设置可以一劳永逸地解决这个问题。重新启动后,我必须再次更改某些内容。我想把这归咎于错误就足够了,而不是我的错误,所以我会提交错误报告。

答案1

问题的根源(当然)是 nvidia 驱动程序故障。解决方案很简单。添加环境变量:

export __GL_YIELD="USLEEP"
export __GL_THREADED_OPTIMIZATIONS=1

在 X 启动之前的某个地方。整个系统/etc/profile/运行良好。

答案2

解决这个恼人问题的简单指南:)

  1. 创建文件:

    /etc/profile.d/Tearing.sh
    
  2. 插入此代码:

    export __GL_YIELD="USLEEP"
    
  3. 然后使用以下命令使其可执行:

    chmod +x /etc/profile.d/Tearing.sh
    
  4. 完成后,重新启动或按 ctrl + alt + F2,登录并运行,sudo service lightdm restart 或者重新启动显示管理器。

GL_YIELD 对我来说很有用,现在垂直同步似乎正常工作。

https://www.kubuntuforums.net/showthread.php?63946-No-vertical-sync-with-NVIDIA&highlight=tearing

答案3

我尝试了所有的技巧,但在 Ubuntu 15.04(以及 xorg-edgers 和 nvidia-355)上没有一个能解决,直到我遇到了nvidia archlinux 页面

测试:

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

为了使更改永久生效,您需要将以下行添加到“屏幕”Xorg 配置文件的部分,例如/etc/X11/xorg.conf.d/20-nvidia.conf

Option  "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

答案4

删除 NVIDIA 驱动程序对我来说解决了问题。对于 XFCE,唯一有帮助的是替换窗口管理器。

相关内容