Compiz 导致奇怪的闪烁。这有点难以描述,但当我将鼠标移到 CCSM:s UI 元素上,或者甚至只是使用 Firefox 浏览时,屏幕更新通常不会立即发生。然后不久之后,屏幕更新,但带有一个本应更早显示的缓冲区。就好像缓冲区更新总是比它应该发生的晚几步。
另一个例子;我试图在终端中用 nano 编辑文本文件。在 nano 中向下滚动有时似乎会向上滚动,直到我向下滚动更多,此时 nano 似乎会滚动到它第一次应该滚动的位置。故障只是视觉上的,应用程序仍可正常工作,但 UI 反馈不会立即反映变化,而是闪烁。
以下是一段视频,展示了它的样子:https://www.youtube.com/watch?v=1gTkBStGcyE
但是,如果我旋转桌面立方体或使用缩放功能,闪烁就会消失。似乎只有当屏幕不是變化。
我尝试过逐个禁用 Compiz 插件,但似乎没有用。我还尝试过启用和禁用 CCSM 的 OpenGL 和解决方法部分中的各个选项,但无济于事。
我还尝试在 NVidia X 服务器设置中关闭缓冲区翻转。这似乎一开始就解决了问题,但很快我注意到,之前处于聚焦状态的 UI 元素似乎保持了其聚焦状态。也就是说,许多元素似乎同时处于聚焦状态。
禁用 Compiz 的“复制到纹理插件”似乎也能减轻闪烁,但后来我注意到,一些重新绘制根本没有发生,或者在稍后重新绘制的同时发生了延迟。
不知道还能尝试什么。欢迎提出所有建议!
系统规格:
- Lubuntu 14.04
- 激光去极化仪
- Compiz 0.9.11.2
- NVidia 的专有驱动程序 v. 343.22。
- GeForce GTX 560 Ti
答案1
compiz 中有一个已知错误导致了此问题。NVIDIA 工程师已提供补丁,但由于 Canonical 的法律原因,该补丁尚未包含在 Ubuntu 的 compiz 发行版中。
Christopher Townsend 慷慨地提供了一个带有修补过的 compiz 的 PPA。它可在此处获取: https://launchpad.net/~townsend/+archive/ubuntu/compiz-nvidia-refresh-test
在补丁被接受之前,这是一个很好的解决方法,但是来自 Canonical 的任何 compiz 更新都将覆盖修补的版本,因此您可能需要在 Synaptic 中锁定 compiz 包。
该问题对应的 Launchpad 错误正在此处跟踪: https://bugs.launchpad.net/compiz/+bug/1288747