Hacker News new | ask | show | jobs
by vlovich123 957 days ago
I enabled wayland recently and there’s been a lot of annoyances to the point that I wonder why I bother considering X11 works without these issues. For example:

* Chrome needs a bunch of extra flags to launch in Wayland mode

* Firefox needs extra flags to launch in Wayland mode

* Xwayland is just broken on Nvidia with both sides refusing to compromise (implicit vs explicit synchronization - Nvidia refuses to add implicit and Xwayland refuses to take Nvidia’s patch to do explicit). What this means is that you get tearing, flickering and all sorts of terrible graphical artifacts

* Chrome only just fixed HW acceleration for Nvidia (latest m120 beta)

* enabling vulkan causes Chrome to fail to render (although this may just me needing to try reinstalling Nvidia drivers)

* I thought it was an acceleration thing, but even with HW acceleration fixed Chrome has a bug where the mouse pointer leaves behind white speckling when mousing over on a dark background. VSCode doesn’t have this issue.

None of these issues appear in X and this is from someone who thought Wayland is the right way to go (eg you didn’t see this kind of story on Mac when they switched to HW accelerated compositing).

7 comments

Maybe Firefox needing flags is a per-distro thing? I’ll have to check and make sure but I think Firefox works with Waylad sessions out of the box on my Fedora laptop. That’s using an Intel iGPU instead of an Nvidia GPU though so maybe that’s also a factor.
I think that's right. To make it work on Nvidia you need to go through extra hoops in a bunch of ways (turning on config flags, installing alternative HW decoding libraries etc). Part of this story is definitely Nvidia & Wayland teams being at ends with each other for some reason so anyone on Intel & AMD GPUs probably don't see a lot of this which is kind of surprising because 10 years ago Nvidia was the only one with well behaving drivers on Linux.
I'm using sway on an Nvidia card and apart from having to use sway-nvidia (which does set some environment variables for wayland with nvidia) I don't have to set any flags for Firefox. On my laptop with Intel graphics I didn't have to use any special flags for Firefox on wayland for several years.

One thing is that the correct environment variables should be set, but all the wayland compositors have been setting these for ages AFAIK

Using Wayland on NixOS with AMD GPU. I have done exactly nothing to make Wayland work and it has none of this bugs.
But you don't have rtx, peasant!

Seriously though, it's been a while since I've had serious issues with AMD cards on Linux. I was very annoyed with the state of my rx5700 when it first launched back in 2019. We've come a long way

> But you don't have rtx, peasant! [j/k]

On Linux it's basically the opposite now. Nvidia should basically be seen as unsupported, which to be clear is 100% Nvidia's fault.

Its been well supported and functional for over 23 years through 17 years during which ati/amd gpus were closed source and bad then just bad.

X11 + Nvidia is still one the most common and functional configurations for people who want to use their computer instead of beta testing.

Yeah the typical AMD experience on linux is about as good as should be expected. It’s a shame that there’s such a complex mix of potential problems when it comes to using AMD cards for GPU passthrough after needing to reset/reassign them.
I have three laptops each with Intel graphics, each from a different generation. They all have the same show stopping (as in screen locking gotta reset) bugs after a fresh distro install, no adjustments.

But ofcourse, Wayland isn't the problem...

Wayland has been flawless for me, but for others not so much.

Every thread about wayland has people claiming it's broken yet they aren't reporting bugs or providing useful information at all, just vague complaints.

Many people experience no issues with wayland, and some people do experience issues, but without any information nothing can be done to even attempt to fix things. It's possible in many cases that something is misconfigured, or a known issue that has been fixed in newer releases of whatever you are using, or a genuine bug that hasn't yet been discovered. Nobody will ever know though.

Basically your complaint is “Linux users aren’t spending hours to reproduce every single issue and keep following up with additional debug info from every developer new to the conversation”. What if instead the model was done survey who has issues and pick 1 random person who’s reporting issues and build up a knowledge base of the ways it’s failing (ie formally “here’s the symptoms, here’s the root cause and here’s the fix” whether that fix is something the user has to do on their end or a new SW version. I think if you did that enough times, you’d be randomly sampling the highest effect bug rates. It’s not the cheapest way to do this but if you’re having so many foundational issues with something as it’s looking like Nvidia is with Wayland (especially given how old Wayland is), that’s what I’d be telling the Linux driver team at Nvidia to own end to end until we believed all the largest Nvidia issues were resolved (whether or not it’s a driver problem) and then go back to normal triage processes. This stuff is normal shit that happens at high performing teams when things are this bad (eg an entire component critical to Wayland working on a Linux desktop isn’t working if you’re an Nvidia customer).

Asking users to contribute to fixing their own issues is the quickest way to make sure nothing ever gets done. I’m an extremely technical user but im using Linux for my day to day engineering needs. I have other SW that needs my attention and debugging my personal desktop issues is not what I’d like to be doing. If it gets bad enough I’ll reinstall the OS from scratch or switch back to Mac and figure out how I can make Linux work in a VM so I can test the software I need. But right now the SW I’m working on is Linux-only and if I can solve and figure out a workaround for the problem by myself without having to pause and follow up about some bug is not where I want to spend my energy. I have enough trouble keeping track of conversations on GitHub. I just hope any bugs I can’t figure out myself will eventually get solved without me having to do anything. And I do follow up some times but the value of that has been hit and miss enough that I do it as rarely as possible.

I did. It was a base distro install just booted up, as I already stated.l, on three different, bog standard machines. They were not interested either.

I take my bug reports a bit more seriously, and I don't use instances of success to discount instances of failure. A bug's a bug, a good proces cares about outliers (and as you say, Wayland erroring does not seem like an outlier) too.

I understand not all combinations of hardware can work flawlessly, but Intel machines with Intel hardware seems like a good baseline to ensure always works before you mainline Wayland.

> yet they aren't reporting bugs or providing useful information at all,

When you have to register on a website to report bugs, you just switch back to X (path of least resistance).

Maybe if you told us, how to replicate this show stopping bug so we could it try ourselves, someone could fix it then. Wayland being the problem or not.
Not the OP, but happens to me too. Steps to replicate: put your laptop to sleep (suspend) and try to wake it up (resume). You end up with a black screen. Often times, you can SSH into your laptop, but the screen remains unresponsive. Only hard reset helps.

There are many reports of such bug. It's common on Wayland, but happens on X11 to some folks. The only constant is it happens on devices with Nvidia cards.

I tried pretty much everything and I gave up on solving it.

I didn't even have to do anything. Just boot after a fresh install and wait a minute or two. Three generation of all Intel laptops. I uploaded some logs, but people were utterly uninterested or hostile.
It has nothing to do with Wayland though, based on the description. Wayland used the base kernel API to manage the display. That is probably broken on your given device.

X11 often gets patched by a proprietary nvidia blob (the nvidia driver), which uses a separate, non-standard, X-specific API.

May be. As i wrote: Intel gpus. All I know is the problem was gone with an X session and nobody at the distro or some boards showed any interest. Not a good way to make sure code works methinks.
I did, there was no interest.
I'm curious, because I have machines with Intel GPUs from different vendors and of various generations (from Ivy Bridge, through Kaby Lake up to the Raptor Lake) and I've never seen such a bug.
I was too, but I'm not an expert and at the end of the day I need to get work done. It's up to Wayland devs to care about covering the 1001 edge cases (and thus have a process for user reports) or not.
If the device locks up, is that really Wayland, not the kernel driver or mesa driver?

Here on HN I see a lot of popular opinions on Intel and their drivers. Even today, proposing it as a baseline for Wayland. But could it perhaps be that Intel is just really good at marketing? AMD might be less about marketing and just delivering good drivers.

Wow, is this what the Nvidia Linux experience is like these days? Is it even worth it anymore?
Nvidia, even on Wayland since the latest 545 driver, works just fine if you use the proprietary drivers.
If your card is supported by the latest proprietary driver, of course.

Also, NVIDIA nukes the open drivers by providing a crippled firmware for them, but this is another story.

They're pushing the full-fat GSP firmware (all 60-odd megabytes of it) to linux-firmware soon, and allowing nouveau to call into it for reclocking support, so hopefully things will be less terrible for 20xx users and up.
Ah, I didn't think about that. What's the oldest card/gen that is actually supported by the latest drivers?
My issues started since driver 545
Are you using Wayland? I'm curious since it seems like most people I've discussed with have confirmed that the 545 drivers improved things for them. I thought they might actually have fixed/improved the experience for most Wayland users but I guess things are never that simple!
I have heard these reports too but I haven’t noticed any differences in behavior by driver version. All the bugs I mention are the same ones before and after the latest beta that everyone said improved things. I imagine they fixed some particularly visible problem although I haven’t seen it. Maybe most people are on laptops and their laptop chip got some fix for an issue impacting those users? Not sure but that’s one obvious difference that might separate me. The other is that my CPU is the 13900k without an Intel GPU and I imagine most people opt for iGPU integrated (I didn’t see the point of it when running a desktop and I had enough of bad experience with Intel+Nvidia on the laptop side of things for the past 2 years with that configuration that I decided my sanity was better this way).
Yes, wayland. With driver 545 as soon as my screen goes black (due to inactivity), it never goes out of that state anymore and I have to do a hard reboot.
Another regression is that KeePassX/C AutoType doesn't work with Wayland, so now instead of a simple CTRL+V in KeePassXC, I have to separately copy and paste the user and the pass.

I'm another X holdout because of random issues like this. X just works for me, and I don't have the time and energy to care.

https://github.com/keepassxreboot/keepassxc/issues/2281

I try to test my system setups with qemu, but I cannot for the life of me figure out which combination of whats I need to get wayland to run there. There's apparently two? framebuffer implementations which work with none of the desktops I want to use. All the documentation points to other projects that should be documenting X or Y, but don't.
It's possible some of these things are really distro+hw related, but for the sake of argument:

> * Chrome needs a bunch of extra flags to launch in Wayland mode

I'd rather have to worry about adding a few extra flags than worry about X11. X11 is overcomplicated, over-engineered, barely maintained, is apparently broken from a security angle, ancient...

Till today I have found X11 configuration one of the toughest things in Linux. I'd rather google for some wayland specific flags than worry about X11.

> * Firefox needs extra flags to launch in Wayland mode

See argument above for Chrome.

> * Xwayland is just broken on Nvidia with both sides refusing to compromise (implicit vs explicit synchronization - Nvidia refuses to add implicit and Xwayland refuses to take Nvidia’s patch to do explicit). What this means is that you get tearing, flickering and all sorts of terrible graphical artifacts

Xwayland is a transitional thing anyways too. When X is dead we won't need to worry about Xwayland either.

> * Chrome only just fixed HW acceleration for Nvidia (latest m120 beta)

One more reason got added to use Wayland from now onwards.

> * enabling vulkan causes Chrome to fail to render (although this may just me needing to try reinstalling Nvidia drivers)

Vulkan unlike OpenGL is also quite new. Give it a couple of years for every combination to get ironed out. X11 is hardly the answer here. If you're going to gripe about Wayland, X11 is never the answer.

> Vulkan unlike OpenGL is also quite new.

Vulkan is 7 years old by now. That's the same time span between Direct3D1 (1995) and Direct3D9 (2002).

Wayland is 15 years old now btw.

7 and 15 years should be more than enough time to create stable and robust software libraries.

I don't wholly disagree with your conclusion, but it's worth considering some context.

Direct3D versions 1 – 9 were indeed released at a rapid pace, more than one per year on average. However, it took a whole five years before D3D9 was superseded by D3D10, and subsequent releases have also been relatively slow.

Direct3D 12 is eight years old, even older than Vulkan. However, it still feels to me like a "new" API, I think because even now, many games still use DirectX 11.

I'm not sure why this is. Probably some combination of the flattening of the technology curve (hardware used to change more each year than they do today), and the fact that once a technology is more complex, it takes more time to change it, and to adopt those changes. And also, legacy compatibility becomes a concern: in 1995, we didn't have multiple decades of existing code, libraries, tooling, and complete consumer software to migrate and support.

>I'm not sure why this is.

It's because Windows.

DX9 remained on the frontline for as long as it did because Windows XP was supported from 2001 all the way to 2014 due to usage share. Similarly, DX11 remains on the frontline because Windows 7. I guess it's more apt to say they are because Windows Vista and Windows 8(.1) failed spectacularly respectively, but my point remains.

Since Windows 7 and 8(.1) are both EOL now, more games should start using DX12 Ultimate.

Wasn't DX12 backported to Windows 7?
Only a small subset of Direct3D 12 and only if the game dev incorporated it.
Isn't dx12 a lower level API? Not nearly as accessible as dx/opengl. I guess not everyone in the game industry has the ability to just switch because codebases are messy, "things are already working", and there not being much to gain but performance.

Deus Ex: Mankind Divided, for example, would often crash on me under dx12, until I switched to dx11. Not everyone is id Software or Epic.

> 7 and 15 years should be more than enough time to create stable and robust software libraries

Yeah, if it were goddamn Apple forcing the ecosystem to make the change. Linux is the bazaar, no one forces anything, but it also comes with disadvantages, like not adapting new tech.

> Till today I have found X11 configuration one of the toughest things in Linux. I'd rather google for some wayland specific flags than worry about X11.

My experience here is that this used to be true more than ten years ago. At some point in between that though X11 managed to get to 0 config. At least, I installed Arch & didn't have to touch the X config at all and things just worked (on NVidia at least).

I'm not trying to say needing flags is something bad. That stuff will get ironed out for sure. But if you want to avoid Xwayland, you need flags (& it's not just Chrome & Firefox - Electron needs similar things) AND Xwayland on Nvidia is a mess right now with no end in sight.

> Xwayland is a transitional thing anyways too. When X is dead we won't need to worry about Xwayland either.

Some apps don't even support Wayland and likely won't for a long time and I think you're underestimating how long XWayland will be a thing (e.g. Tcl/TK which is powers a surprising number of developer tooling UIs doesn't have Wayland & doesn't seem to have enough interest to really push this to production though previous ports have been attempted & made progress). FWIW, this argument has been made since Wayland started 15 years ago. I won't even have the same machine in 5 years.

> X11 is overcomplicated, over-engineered, barely maintained, is apparently broken from a security angle, ancient...

It's funny the kind of arguments that get made because you think I'm against your position. I agree with you and think Wayland should replace X11. But there are very real problems with it today & there's a reason anyone with an NVidia GPU goes "uggh. Wayland". The problem is not just on Nvidia's end and I see cultural problems from Wayland's side too (likely because they've faced so much drive by attacks). I feel like Nvidia is stepping up on their side though - I don't see the same from Wayland/XWayland camp.

> Nvidia is stepping up on their side though - I don't see the same from Wayland/XWayland camp

Genuinely curious -- what stepping up should happen from Wayland/XWayland ? Intel and AMD seem to work well on it so is it because they have some accepted some ugly hacks that Nvidia are not willing to do ? Something else ?

In terms of stepping up, they seem to be tackling through Wayland issues. The latest 545 seems to have people on forums saying “this fixed so many Wayland issues for me”. Now either they are paying professional astrosurfers, or they legitimately fixed some classes of bugs (or it’s random). My experience though is that this kind of feedback tends to be genuine. So I’m giving kudos where it’s due and it seems like the Nvidia team is starting to focus on Wayland issues. Similarly, I was observing recent bug tracker activity on Chrome and Nvidia and all that seemed to be tracking bugs on their end (which not surprising - Nvidia and Google have strong relationships between Android, Chrome, and formerly Stadia).

I don’t know the details on the Xwayland BS (which is the main visible issue I’m seeing as unhealthy). I have not done the technical research to fully understand whose position is actually justified. Heck it might be that both sides are correct on the facts (it doesn’t make sense to add the support that makes other GPUs work and it doesn’t make sense yet to add the new way for Nvidia) but the net outcome is that Xwayland on Nvidia’s propietary drivers remains broken for the foreseeable future. Both Intel and AMD both support something called implicit synchronization. But apparently explicit synchronization is “the future” because it enables more performance and Nvidia has clearly communicated they’re not going to support implicit. Xwayland only supports implicit synchronization and refuses to add explicit synchronization (I think strong arming their position is that the explicit synchronization protocol is isn’t ready or not popular enough yet in the ecosystem? I’m not sure). Nvidia has contributed some patch to fix Xwayland to use explicit synchronization when running on the propietary driver (or something like that).

Of course X11 is badly maintained. Because RedHat took over the maintenance and they want to push Wayland. They took it over to kill it.

X11 is not ideal but I don't think it'll really die. The big benefit of UNIX/Linux is choice. Including for a graphics stack.

I'd use Wayland if it worked with KDE on FreeBSD but it doesn't yet. But I'm not in a hurry anyway.

> Because RedHat took over the maintenance and they want to push Wayland. They took it over to kill it.

Can we stop with these useless conteos? No one goddamn cares about linux desktop, this is the unfortunate state of things. X could be maintained, but no one goddamn cares about doing that ugly work, because they don’t get paid Cobol-bank money for maintaining an ugly legacy software that was designed at a time when GPUs didn’t exist.

RedHat is just a bad maintainer because they have a commercial interest in wayland.

They've done the same to CentOS of course - just taking it over to kill it because it's in their way of selling paid licenses.

I'm surprised how much support they have been getting from the community. They managed to frame perfectly normal open source users as "freeloaders" during the whole CentOS and closing source debacle surrounding RHEL. And the community seems to be happy parrotting this twisted narrative. The whole reason for FOSS is to share.

It's one of the main reasons I moved to FreeBSD, I don't want my OS to be a stringpuppet for big tech.