SDL开发人员考虑在SDL 3.0中恢复Wayland而不是X11
SDL库在跨平台游戏中广泛使用,目前的SDL 3.0开发代码更倾向于Wayland而不是X11,但是一个新的pull请求将暂时恢复基于Wayland生态系统仍然没有达到标准。
两年前,在尝试默认支持Wayland后,由于bug /生态系统问题,SDL恢复了更改。随着正在开发的SDL 3.0版本的发布,它再次尝试使用Wayland而不是X11,但是这个周末打开了一个新的pull请求,将恢复对Wayland的偏好。
Valve Linux图像团队的Joshua Ashton打开了pull请求,恢复了对Wayland而不是X11的偏爱。阿什顿在合并请求中辩称:
“Wayland在地面悬架阻塞表示和FIFO(垂直同步)实现方面存在无数未解决的问题,导致gpu绑定性能降低。
这并不是说“我们应该修复Mesa/其他驱动程序中的FIFO”,而是说如果没有额外的协议,它是完全无法修复的,在这种情况下是FIFO -v1。
如果没有这个协议,vkQueuePresent或glSwapBuffers必须在呈现图像后暂停'frame'回调。我们能够在SteamOS上使用这种方法的唯一原因是Gamescope实现了基本上是5 -v1的东西,我们在那里使用了它。
另一方面是表面悬挂——与上面的问题非常相似,即以这种方式使用帧回调并阻塞。如果SDL窗口被遮挡,vkQueuePresent将阻塞在FIFO中,这是游戏通常不喜欢的。这可以通过fifo-v1和commit- time -v1的组合来解决。
比起X11,游戏和一般应用程序更喜欢Wayland并没有什么优势——现在只有严重的性能和不可用性退化。因此,我们必须在fifo-v1和commit- time -v1发布之前恢复这一更改,并且至少在主要合成器的稳定版本中发布。”
这个问题现在在pull request内部引起了激烈的争论,一些人认为在Wayland上玩游戏有好处。还有一些建议是,在决定是否支持Wayland时,应该检查fifo-v1和commit- time -v1协议,而不是完全恢复。
For now that pull request hasn't been merged but it looks like that a revert or partial disabling might happen for SDL 3.0 at least until the FIFO and Commit Timing protocols are finalized upstream and seeing Wayland compositor support. This possible revert comes just days after the SDL 3.0 preview release. The discussion is ongoing, stay tuned.