类似于长期研究的GNOME动态三重缓冲当(最常见的集成的)图形在渲染桌面时落后于计划时应用,对KDE的Kwin合成器的合并请求也在这一领域看到了类似的工作,通过“三重缓冲”实现来帮助IGPU在渲染中追赶。
多产的Kwin开发者Xaver Hugl一夜之间打开了一个合并请求,实际上是一个动态的三重缓冲,类似于Canonical/Ubuntu在过去几年为GNOME所做的工作。Xaver在拉取请求中解释说:
当渲染一个帧需要一个以上的刷新周期时,Kwin立即开始合成,我们可能会也可能不会达到V空白的最后期限。如果错过了,那么缓冲器将花费整个显示器的刷新周期来使用,这意味着刷新率会下降到应有的一半-导致外观不那么流畅和延迟增加。
有了这个MR,Kwin对帧进行了调度,以便它们始终可以达到VBlank的最后期限,并允许最多两个帧同时挂起。这意味着如果GPU跟不上,延迟将增加与所需的一样多,而不是几乎增加一个完整的额外帧的延迟和一半的刷新率。
目前,合并请求 被认为是草案形式,因为有一些开放的项目围绕双缓冲和三缓冲之间的过渡,是否也添加类似的三缓冲KDE在X. NET上,以及更好地处理渲染时间查询仍然需要连接起来。
We'll see where this KWin triple buffering work leads and how soon before it's ready for merging.