问题描述
这比 Ubuntu 问题更像是 KDE,但是…\n我在屏幕上看到了明显的撕裂。 KDE 组合、Firefox 中的 flash 视频以及像 kpat 这样的简单游戏都是垂直同步的,但在 Steam 游戏和电影中,存在明显的持续撕裂。如果我在所有地方都关闭 vsync,撕裂会加倍明显,所以不仅仅是 GPU 忽略了设置。 \n最让我烦恼的是,我在许多不同的设置上都遇到了同样的问题。每个人都有这个问题却没人关心吗? \n我的设置
-
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 中的自适应电源模式。
-
关闭合成
-
更改显示器频率
-
从 CLI 运行 mplayer
-
举行仪式和祭祀
什么起作用了(但不是可接受的解决方案)
-
禁用 KDE,并在纯 X 会话中运行 Mplayer
-
切换到 nouveau 并关闭合成并全屏打开视频 – 没有任何部分它仍然在撕裂。
请指教。
更新 1 我发现,如果我转到桌面效果 – 高级并在那里更改任何有价值的东西(OpenGL 版本、缩放算法)并按下应用,撕裂就会消失,直到重新启动。但是,没有任何设置可以一劳永逸地解决这个问题。重新启动后,我必须再次更改一些东西。我想这足以将其归咎于错误,而不是我的错误,因此我将提交错误报告。
最佳方案
解决这个烦人问题的简单指南:)
-
创建文件:
\n
/etc/profile.d/Tearing.sh\n
-
插入此代码:
\n
export __GL_YIELD="USLEEP"\n
-
然后使其可执行:
\n
chmod +x /etc/profile.d/Tearing.sh\n
-
完成后,重新启动或按 ctrl + alt + F2,登录并运行
sudo service lightdm restart
\n或者重新启动显示管理器。
GL_YIELD 对我有用,现在垂直同步似乎正常工作。
( https://www.kubuntuforums.net/showthread.php?63946-No-vertical-sync-with-NVIDIA&highlight=tearing )
次佳方案
问题的根源(当然)是错误的 nvidia 驱动程序。解决方法很简单。添加环境变量:
export __GL_YIELD="USLEEP"
export __GL_THREADED_OPTIMIZATIONS=1
X 开始之前的某个地方。 System-wide /etc/profile/
工作正常。
第三种方案
我已经尝试了所有技巧,但在 Ubuntu 15.04(以及 xorg-edgers 和 nvidia-355)上没有解决任何问题,直到我使用 nvidia archlinux page。
测试:
nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
为了使更改永久生效,您需要将以下行\n添加到 Xorg 配置文件的 “Screen” 部分,例如 /etc/X11/xorg.conf.d/20-nvidia.conf
Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
第四种方案
我把它钉了…
所以 – 首先确保在关闭桌面效果 (Alt+Shift+F10) 后检查问题是否仍然存在。我可以保证问题可能已经解决了。
转到系统设置并打开桌面效果:
-
将方法缩放到当前设置之外的其他内容 <– 实际修复
我知道选项的命名可能与上面的不完全相同。抱歉,我使用的是波兰语版本的 Kubuntu。
上面的步骤为我解决了这个问题。但只有在全新安装之后。 🙂
编辑:在当前的 14.04 Kubuntu 版本中,问题与缩放方法有关。将其更改为当前选择以外的任何其他内容,有助于暂时解决问题。