Collabora have shared a great progress update on getting Wine working directly with Wayland, which is going to eventually replace X11 on most Linux distributions.
Notes for newbies: Wine is a translation layer that can run Windows games and applications on Linux, Wine is a huge part of what makes Steam Play Proton do anything. Wayland is the next-generation replacement for the ancient and now mostly unmaintained X server on Linux.
Originally announced in late 2020, Collabora has been developing a Wayland driver for Wine. The idea is to hopefully remove the need for XWayland and remove one more layer between things causing more complexity and likely performance hits. Collabora engineer Alexandros Frantzis has now put up an RFC (request for comments) onto the Wine development mailing list, so they can hopefully find the best way on progressing it and getting it upstreamed directly into the Wine project.
The focus of this update is to support a number of new features that are useful for applications and games, and which have also been considered potential integration pain points for the Wayland driver. These are copy/paste, drag-and-drop and support for changing the display mode.
Copy/paste support works well in both directions (native Wayland apps <=> Wine apps) with many common formats already supported. Drag and drop works in the direction of native Wayland apps to Wine apps for many common formats.
Implementing the display mode change is particularly interesting since Wayland doesn't allow applications to directly change the mode in the display hardware. However a similar effect can be achieved for particular surfaces by scaling in the compositor (typically using the GPU). In case of a Wine mode that doesn't match the current compositor mode, the driver instructs the compositor to scale the window contents so that they appear as if the hardware display mode had been changed while respecting the aspect ratio.
You can see more in a video demonstration below:
Direct Link
Last edited by jens on 19 February 2021 at 5:32 pm UTC
Nice, with also Nvidia preparing for xWayland I guess I'm only missing Chrome/Chromium/Electron in Wayland land.
Does Chromium or vscode not work on Wayland?
Last edited by Shmerl on 19 February 2021 at 5:50 pm UTC
-Improvements in the Wayland compositors
-Replacement of OpenGL in favor of Vulkan
-Replacement of Pulseaudio/JACK in favor of Pipewire
-Freesync with HDMI
-Wayland as default for Wine
I'm always happy when I see one of those things going forward :)
Nice, with also Nvidia preparing for xWayland I guess I'm only missing Chrome/Chromium/Electron in Wayland land.
Does Chromium or vscode not work on Wayland?
Currently no. They are working on it though.
-Freesync with HDMI
I'd prefer HDMI to disappear and be replaced with DisplayPort everywhere.
I'd prefer HDMI to disappear and be replaced with DisplayPort everywhere.
Me too, but as a owner of a notebook with only HDMI (2.0) output, I would like to see this on Linux too.
But I agree with you, display port is way better and I wish Raspberry and More televisions could have it as default, but unfortunately that's not the case.
Last edited by BielFPs on 19 February 2021 at 8:00 pm UTC
At least the editor had a window fade. The wine windows don't, fair enough. It's all so ugly!
People on gnome or plasma for example who don't want to switch to tiling or some experimental compositor cannot change gamma.
Additionally I notice with plasma wayland the window rules system seems to be broken, it won't remember position correctly even if you set a global rule, it seems to behave differently then X11 where I set a exact window title global rule and everything just remembers position and size without too much issue.
Also had a issue with firefox not being accessible while a fullscreen app/game was open and minimized. But I think there is a Xwayland specific flag you can launch firefox with to work around that. Still, lots of annoying issues still (on top of already X11 feature limits).
Until issues like this get resolved, I won't be touching wayland. If they never get resolved.. well that will be very bad because normal desktop users are not going to tolerate that BS. (I consider myself an advanced desktop user (not tiling), I can work around issues even use custom builds of apps to resolve issues, but its a pain in the butt really!)
Last edited by TheRiddick on 20 February 2021 at 9:44 am UTC
Also had a issue with firefox not being accessible while a fullscreen app/game was open and minimized. But I think there is a Xwayland specific flag you can launch firefox with to work around that. Still, lots of annoying issues still (on top of already X11 feature limits).
Why are you running Firefox through XWayland in the first place? Native Wayland support is pretty damn solid by now.
Perhaps you meant you're facing this issue using the native backend, thus resort to using XWayland with a related flag to work around the bug?
Allow me to ask why OpenGL should be replaced in the first place?Because Vulkan is a well proven better API than OpenGL (while being open source too)
Do you mean the API as a whole or more like Desktop Environments running on Vulkan instead?
Less problems with the implementation (because it has less tolerance to errors) and faster than OpenGL (when done right), so it's the natural successor.
The problem is currently harder (more complex) to implement than openGL (as I heard) and compatibility with Legacy hardware with no Vulkan support.
Desktop Environments running on Vulkan instead? The later would be super cool indeed
Don't quote me on this because I'm not sure if this information is accurate, but I heard that an entirely Vulkan based Wayland compositor could solve the "GBM x EGL Streams" problem, making Wayland work well with Intel / AMD / NVIDIA.
All those things in my list will happen naturally, I just wish this was faster :)
Allow me to ask why OpenGL should be replaced in the first place?
Do you mean the API as a whole or more like Desktop Environments running on Vulkan instead? The later would be super cool indeed.
Probably compositors like KWin switching to Vulkan. Not that OpenGL should disappear - you still need it to support a ton of games and etc.
Last edited by Shmerl on 21 February 2021 at 2:02 am UTC
... now mostly unmaintained X server on Linux.This is not quite the right wording. Xorg on Linux is only maintained rather than being actively developed. In other words, it's in maintenance mode. So perhaps it could be 'mostly no longer developed' or 'mostly stagnant.'
Edit: I had suggested 'mostly undeveloped' before, but that could be interpreted as meaning 'mostly unfinished,' which would not be accurate.
Last edited by CFWhitman on 21 February 2021 at 1:45 pm UTC
Nice progress. Looking forward to switching to the Wayland session when KWin / KWinFT will also add adaptive sync support. That is a bigger deal breaker than the need to use XWayland for Wine currently.VRR is planned for 5.22 https://invent.kde.org/plasma/kwin/-/merge_requests/718
See more from me