使用专有 AMD 驱动程序时,非全屏模式下垂直同步抖动

使用专有 AMD 驱动程序时,非全屏模式下垂直同步抖动

我在我的 Radeon HD 5770 上使用 Ubuntu 14.04(.1) 上的 Unity 和来自 AMD 网站的 fglrx 14.20。

我已经安装了 Catalyst 并启用了其“无撕裂”设置,该设置的作用是绝无任何撕裂. (注: compiz 的“同步到 vblank”设置似乎有没有效果无论如何 - 当它和无泪模式同时开启时,抖动没有变化,当它开启而无泪模式关闭时,会出现撕裂。)

为了测试,我使用 MPV 来玩60fps 的视频在全屏模式下,它可以正常工作;在窗口模式下,一些帧会被跳过,而其他帧可能会重复,从而导致不可接受的跳过和抖动。

换句话说,视频以 60fps 的速度解码,屏幕以 60fps 的速度更新,但帧定时不准确 - mpv(以及其他任何内容)无法在正确的时间显示其帧。从视频到 glxgears,抖动现象非常明显。XBMC 比其他大多数内容都好,但仍然不如全屏时流畅。

所有视频都是如此(有些视频,如 mpv,全屏播放没问题,而有些视频,如 mpv,则不行)。提供详细时间信息的软件(如 RetroArch)显示,帧时间变化超过 10%!

在安装 Catalyst 之前我做了非常有限的测试,使用 Mesa 驱动程序时不会出现此问题。但是我不能坚持使用这些,因为 3D 性能太差并且它们不支持 GL4 核心。

禁用防撕裂功能确实可以消除大部分抖动,但是,正如预期的那样,它还是会撕裂。

更新:我已开始使用 Mesa,它在桌面上运行非常流畅。AMD 的驱动程序肯定没有这个根本问题吧?一定有办法解决这个问题?每个人都在谈论原始 FPS 数据,但没有人提到帧速率和合成抖动。

相关内容