SDL is a set of libraries developed in the C programming language that provide basic functions for performing multimedia operations (audio and video), as well as image loading and management.
SDL is a library provides tools such as hardware accelerated 2D and 3D graphics output, which we have already talked about on many occasions here on the blog (usually on their new releases), this library for a long time was found working by default on X11, but with Wayland as a second option.
Currently developers are working on the new branch of SDL3 in which one of the main features and a novelty (especially) was the displacement of X11 by the use of Wayland by default, a move that in theory would improve many aspects of the library.
But it seems (at least for now) that neither one nor the other will be fulfilled in SDL3 since recently A request was made to the developers, which basically consisted of revoking the change that migrated the SDL3 branch to use the Wayland protocol as default in environments that support Wayland and X11 simultaneously.
Wayland has a large number of unresolved issues related to the introduction of surface sleep blocking and the FIFO (vsync) implementation that is fundamentally broken, leading to reduced GPU performance.
That's not to say "we should fix FIFO in Mesa/other drivers", but that it can't be fixed at all without an additional protocol, in this case fifo-v1 1 .
Without this protocol, vkQueuePresent or glSwapBuffers must stop for the 'frame' callback after presenting an image. The only reason we can get away with this on SteamOS is because Gamescope implements what is essentially fifo-v1 and we use it there...
There's no advantage to average games and apps preferring Wayland to X11, just several performance regressions and unusability at this point.
Therefore, we need to revert this change until fifo-v1 and commit-timing-v1 are released and at least in a stable version for major composers.
Although the Pull request was reviewed and approved by the creator of SDL, has not yet been incorporated into the code base. The main reason is the existence of unresolved issues in the Wayland environment related to surface locking and FIFO (vsync) implementation, resulting in decreased performance. These issues cannot be fully resolved without the implementation of the additional protocols fifo-v1 and commit-timing-v1.
It is highlighted that, Without resolving these issues, transitioning from X11 to Wayland offers no significant benefits for common applications and games, but causes a serious reduction in performance and possible regressions. Therefore, it is suggested to reconsider migrating from SDL to Wayland only after fifo-v1 and commit-timing-v1 protocols are approved and implemented in stable releases of major composite managers.
Regarding the case, it is important to mention that Currently the acceptance of the application is "postponed" Since Sam Lantinga, the creator of SDL, mentioned to review this request related to the transition to Wayland by default, he mentions that the case will be addressed later (closer to the final release of SDL3), since currently it has been decided to give preference to address the above issues and the situation may be normalized by then. For now, Wayland remains enabled in SDL 3 test versions for better evaluation in Wayland-based environments and to gather user feedback.
Although At the moment it seems that everything indicates that Wayland will be the final choiceIf the problems are not solved and, above all, optimal performance is not achieved, Wayland's delay as default could be a reality.
At the moment you can see the current status of the development of the new SDL 3 branch, which features modifications to various subsystems, API changes that may affect compatibility, and a thorough cleanup of deprecated features. For example, in SDL 3 the code was completely redesigned to work with sound, a new backend for rendering via the Vulkan API was introduced in the 2D rendering API, support for HDR was expanded, the API for work with transparent windows, among other things.
If you are interested in knowing the progress in SDL3 you can use the trial version offered from the following link.On the other hand, if you want to follow up on the Wayland delay discussion, you can do so from the link below.