In order to run Firefox under Wayland, you have to be able to run Wayland session in your compositor (Clutter in case of Gnome). AFAIK, currently no compositor has working/stable Wayland support with NVidia proprietary drivers due to GBM/EGLStreams thing[1]. At the same time, open-source Nvidia driver Nouveau is in a terribly poor condition. Which, hopefully, may change soon[2][3]. Thus, if system is running off the Nvidia graphics card with proprietary drivers, there's no way to use Gnome Wayland session and Firefox 75 acceleration at the moment [corrected and specified]. Please correct me, if I'm wrong.
A separate case is where the system uses Intel/AMD graphics card and drivers, and NVidia is used for render offloading (Optimus/PRIME/Bumblebee). This may be a laptop with discrete GPU or Virtual Machine setup with GPU passthrough. Since I don't have such a setup, I can't check if it works with Firefox 75 [corrected]. But there're some discussions[4] on the matter and experimental works on implementing NVIDIA VDPAU-VAAPI wrapper[5].
[1] https://blogs.gnome.org/uraeus/2019/04/03/preparing-for-fedo...
[2] https://www.forbes.com/sites/jasonevangelho/2019/12/06/nvidi...
[3] https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-O...
[4] https://old.reddit.com/r/archlinux/comments/a94zzj/state_of_...
My previous machine had an NVIDIA GPU and despite all the great work, nouveau was almost unworkably buggy. The proprietary NVIDIA drivers did not work with Wayland at all. I bought an AMD card, Wayland worked with open source drivers and everything was butter-smooth.
I now use a NUC with an Intel GPU. Similarly to ADM GPUs, it works great with open source drivers.
I support AMD and Intel for their open-source efforts, but still hold hopes for GTC 2020 announces.
† AMD Radeon VII was super overpriced and unavailable in my area, and it still released nearly two years later.
AMD Radeon is an amazing choice in low/mid GPU market segment though.
Do you use it for a specific professional application, or do you simply want the best performance ?
Not intended to be snarky just purely curious.
- Gaming. I expect playing current AAA-titles on 4K@75-100fps. And, oh boy, I'm an avid Linux gamer (Valve Proton/DXVK)! This is probably the most GPU performance consuming activity in the long term;
- GPGPU/ML/Hashcat/Pyrit/mining. Some ML hobby/educational projects, occasional hash-cracking, mining and other fun activities. From time to time I stumble (on Github or elsewhere) at weird, but interesting experimental CUDA/OpenCL-accelerated solutions for a variety of tasks. Hey, even my terminal emulator is GPU-accelerated nowadays[1];
- Video transcoding. Encoding 4K+ video content in the background, while keeping up with my general activity. Occasionally lending my GPU to a (professional video guy) friend for CUDA-accelerated DaVinci Resolve for A/V post-production.
I certainly don't upgrade GPU every two years, more like 3-5 years for every decently improved generation. As for Nvidia, going from 16nm EV (Pascal) to (supposedly) 7nm EUV[2], might yield in up to +40-60% performance comparing to current gen Turing; so I'm pretty hyped to upgrade from the already aging GTX1080Ti with no ray-tracing. Or perhaps AMD will be finally able to pull out some ground-breaking GPU performance boost with their so-called "Big Navi", based on the new RDNA2 architecture. But I'm afraid that it will be a competitor for the current gen of Nvidia graphic cards, and not future ones. In any case, 2020 promises to be interesting for GPU/APU market. As usual, I will look at the specifications, benchmarks and price tags — and make my consumer choice.
[1] https://github.com/alacritty/alacritty
[2] https://www.sammobile.com/news/win-samsung-nvidia-7nm-proces...
When you are using wayland best is to bet on a roling distro as of now.
btw I use archlinux /s
Linux finally has a graphics stack on which this isn't as much of a problem, and it's received enough adoption that Firefox is now making changes for it. And on that news you decide to comment that Wayland is a tech demo? This news should tell you it's completely the opposite! Wayland seems to be finally delivering.
1) Wayland isn't a replacement for all of X.org. It's a replacement for much of X11, the protocol. "Wayland is just a protocol" - there's no wayland binary on your computer like there is an xorg binary. All the problems/limitations people commonly perceive with Wayland are actually problems/limitations within Wayland implementations like Mutter (Gnome) or KWin (KDE) and lacking application support. There's really not that much that "Wayland" as a project could deliver as it's just a protocol [1]!
2) Replacing something like your entire graphics stack requires a widespread, coordinated effort to unify the various Linux distro's under it. That widespread coordinated effort is not actually possible in the (by "design") extremely fragmented Linux market. The only approach is to slowly let Wayland implementations evolve, and there we have it.
Hot take: Wayland will not fully replace X11 the coming 10 years. There is no fundamental solution to the two problems above. Many popular desktops (Xfce, Cinnamon) have no plan to support Wayland at all. Some don't even want to. In the future, there will be choices for graphics stacks on Linux leading to further fragmentation.
[1]: The projects that should deliver here are: Gnome, KDE, other open source desktops. Although I think using Gnome with Wayland is superior in many ways to X11, it still has certain quite major shortcomings. It's also application toolkits: Qt and Gtk work luckily, but Electron is waiting for some Chrome renovations before supporting Wayland, and then there's stuff like Wine and Java where the refactor/reward balance simply doesn't favor them. And sometimes applications have to be updated to stop relying on using hardcoded X11 stuff, and use agnostic Gtk/Qt/Freedesktop functionality.
There's a lot of history with X11 that we have to move away from, and the incentives and coordination only allow for slow movement.
No they are deep philosophical problems. The lack of necessary protocols that allow a unified implementation for things like screen sharing, hotkey daemons, window managers, xdotools or clipboard managers are the problem.
As long as there is no standardized way to do essential tasks that are typical for a desktop use case Wayland will eternally cause problems.
But there's no standard interopability with a standard X11 socket anymore. There's interopability with KWin and Mutter and wlroots and a bunch of other things through FreeDesktop standards (Wayland being among them).
You might consider it a philosophical problem that Wayland is not trying to solve all the problems that X11 tried to solve. You might attach a lot of philosophical value to that architecture. But Windows, macOS, ChromeOS and Android seem to be doing extremely well on an architecture that is a lot less like X11 and a lot more like Wayland.
> screen sharing:
- Security problem, untrusted access to display, explicitly denied by design.
> hotkey daemons
- Security problem, untrusted input, denied by design.
> window managers
- Messing about with windows without authorization, denied by design.
> xdotools
- Untrusted input.
> clipboard managers
- Untrusted access to clipboard.
Either the compositor application has to do it, or it has to delegate it to a trusted application.
So yeah, deep philosophical problems. If you wanted Wayland to work exactly like X11 it won't because that is explicitly against its security design.
Wayland is trying to do less than X11. The things you mention are not solved at the display protocol level on any platform but X11. Your security strawman never comes in to play.
Yeah, it's not like anyone needs that functionality to do work or anything. In fact, why not just refuse to boot the computer in the first place? That'll stop a lot of security problems.
Sometimes I boot my Linux native installation as a raw disk VM in Windows 10 with VMware Workstation and then use Windows's remote desktop. That is surprisingly more responsive and a better overall experience than either VNC, X2Go, or X11 forwarding can deliver. I'd love to see something on par for Linux desktops.
Why is this taking so long on the """Wayland desktop"""? Screen sharing/remote desktop is a problem that Wayland as a protocol does not try to solve (this problem is also not solved by the display protocols on any other platform for the record). And because of that, it requires central coordination in the Linux world to standardize solve. And central coordination in the Linux world always turns out to be a total mess.
In practice if all/most implementations are buggy, I think it's fair to lump them all together and say that Wayland (as used by the software actually running on my machine) has problems. You know the meme about how whenever someone tries Desktop Linux and has trouble, someone pops up and says "just use this other distro, with this particular set of software and this exact configuration, and it'll just work!"? Wayland feels like that. Sure, if I want to go all in on GNOME (on Fedora), it'll probably work. Sure, if I use Sway with the right set of compatible programs it'll work. But... I could also just stay on X where all my programs work now with no tinkering, where I can drop in any screenshot program, any clipboard manager, any screen sharing program, any keyboard configuration/emulation tool (I'm really fond of xdotool), and it will work.
Fair enough. I think it's a bit unfair to label the collective failure of the Linux community/ecosystem to actually make change happen as "Wayland has problems". But it's true that in 2020 you will still lose use cases when using anything Wayland based.
Wayland will never replace the X11 based workflows you describe though, because it isn't X11. Although X11 has a lot of fundamental problems, flexibility isn't one. And some flexibility you will have to give up moving to any Wayland based desktop.
Yah, you don't get to be a hero, and product arch, etc for making X work better. I have yet to see a convincing argument that X couldn't have been made more secure by bolting on another opt-in extension. Then once in place, like GL ES, you start deprecating all the features used by basically no-one.
So I can totally see the appeal for a clean break from having to maintain strict backwards compatibility with a stack that has its roots in the 1980's.
This makes it really hard to implement in current browser architectures without resorting to a solution that causes you to e.g. have to copy video frames from GPU memory to main memory, causing performance drops and stutter. With Wayland, it's "easier" to actually access the GPU's video frames directly (like on Windows and macOS), enabling this implementation.
Also this "news" does not tell that Wayland is finally delivering. It tells us that the Wayland implementation of Firefox has reached feature party to X11 for very specific subsystems.
This is about being able to play web videos without causing you to lose CPU performance and battery life. This has not really been supported on Linux or X11, whereas it has been supported on Windows and Mac by almost all browsers for over a decade.
The fact that this will be officially supported by a major browser vendor on Wayland first should tell you something.
All video players on X11 have VDPAU support since ages. This is a Firefox specific problem which could be solved more easy on X11.
> The fact that this will be officially supported by a major browser vendor on Wayland first should tell you something.
It just tells me that Mozilla/Firefox really doesn't care about Linux because it took them 14 years since VDPAU works reliably on Linux to implement it.
I think you should reconsider how easy it is to smoothly get an accelerated video buffer from a specific GPU component into an already heavily GPU optimized and dynamic web page. Web browsers have a lot more complicated graphics rendering problems to solve than VLC does.
This is simply not true. I've regularly used hardware accelerated video on linux+X11 for over a decade. There are multiple ways for video playback to be accelerated, including hardware-specific video acceleration libraries like VDPAU and VAAPI, and hardware-agnostic acceleration using OpenGL (GLX). All of these options accelerate generic video playback steps like colorspace conversion, scaling. Most of these methods also provide direct hardware decoding of specific video codecs (h.264, mpeg1/2, vc1, wmv3).
Also, just like Wayland, hardware accelerated compositing (2D, not 3D!) of windows has been possible with X11 for more than a decade. Even my ancient window manager (Enlightenment DR16!) can manage X11's compositing.
Wayland was never required for any of these features.
> they don't have complicated browser UI problems
While not as complex, they do have a UI that overlays the video. However, the complexity of the UI doesn't affect video acceleration. Using libvdpau as an example, the X11 client provides[1] a separate child window[2]:
>> VDPAU expects to own the entire drawable [...] it is recommended that applications create a dedicated window for the presentation queue target, as a child (grand-child, ...) of their top-level application window.
The video playback happens in its own sandbox. Other non-video part of the UI should use their own child windows, isolated and independent of the video playback. The UI's child windows can be as complex as necessary, including overlaying the video[1]:
>> Applications may also create child-windows of the presentation queue target, which will cover any presented video in the normal fashion. VDPAU implementations will not manipulate such child windows in any fashion.
The child windows can even be alpha blended[3] with the video or other UI layers.
Reading back video data (to implement features like CanvasRenderingContext2D.getImageData()) is easy: read the video window like you would read any X11 Drawable.
What, exactly, was the "complicated UI problem" that supposedly wasn't possible to implement in X11?
[1] https://vdpau.pages.freedesktop.org/libvdpau/group__api__win...
[2] "window" is used in the X sense: a drawing context on an X server: https://www.x.org/releases/X11R7.6/doc/libX11/specs/libX11/l...
[3] X Render Extensison, section 8 https://www.x.org/releases/current/doc/renderproto/renderpro...
By the way, if you would read the actual base of the story here, you would know why it took Firefox's Wayland refactoring to actually pull this off [1].
[1]: https://mastransky.wordpress.com/2020/03/03/webgl-and-fgx-ac...
mpv and kodi have no trouble rendering hardware accelerated video on Linux under X11 though
both Kodi and MPV have UI overlays that are composited on top of the video. Also, hardware decoding APIs (vdpau, vaapi...) are mostly unrelated to rendering - see for instance https://github.com/NVIDIA/vdpau-hevc-example/blob/master/mai...