Looks like 2021 really could properly be the year of Wayland on the Linux desktop. For plenty it already is but NVIDIA have been a sore spot and it looks like they're moving forward now too.
NVIDIA's Erik Kurzinger has submitted a Merge Request to the xserver GitLab titled "Xwayland: Support hardware accelerated rendering with the proprietary NVIDIA driver", with the two patches included "intended to accompany upcoming support in the proprietary NVIDIA driver for hardware accelerated GL and Vulkan rendering with Xwayland". Kurzinger continues to mention that once a driver is out with the needed hooks, this code should "just start working".
The patches are being sent out to be considered, so that they can get some feedback and see if there's any substantial concerns about their approach to it.
As for the performance of it? They expect it to be "on-par with native X11 based on the benchmarking I've done", although there's "an annoying extra copy required for presentation of windowed applications, but the impact doesn't appear to be significant" and you shouldn't see it for full-screen applications as long as the compositor works with the zwp_linux_dmabuf_v1 interface.
Why is all this important? With Wayland coming along to replace X11 as a big shakeup for Linux as a whole, you need XWayland to provide that backwards compatibility to enable existing applications and games to continue working well into the future.
Because right now it is a bit of a sore sport, I tried already with patches from Adam Jackson, which kinda worked - albeit not wonderfully - but I had no Nvidia settings, and no Gsync.
Is it impossible for my graphics card vendor to do full Wayland support while keeping its driver closed?
I didn't look into Wayland yet, but XWayland is not the real thing, right?
Is it impossible for my graphics card vendor to do full Wayland support while keeping its driver closed?
What do you mean but "the real thing" ? If you ask whether a full X server will run, answer is no.
Nvidia already has wayland support, using standard egl extenstions. Rest of the Linux world uses custom (GBM) extensions. Then it becomes a question on who is right or wrong in this story. Nvidia says everyone else uses eglstream, Linux world says yes, but GBM has been there for quite some time. Both are kinda right. And neither solution is technically perfect either. Discussion to converge on a third solution that would be better for everyone have begun quite some time ago, but never converged I think ... That being said, code divergence is nothing dramatic here, there's not much difference between supporting one or the other.
As for Xwayland support, there has been some patch to make it kinda work for some time already, but it is not real good... I guess this is the "real" patch, the one that will completely and cleanly work. Red Hat has been spearheading full (x)Wayland support with Nvidia since at least 2 or 3 Fedora releases, so I guess this time it should be all in shape for Fedora 34. Also, the fact that red hat is dropping X server maintenance probably accelerated the movement from Nvidia, since only red hat still maintained it, meaning they basically declared the "time of death" by deciding to do that. And so, it will be Wayland or Wayland pretty soon now.
So it is completely possible for Nvidia to support wayland with closed source driver. It was just 1/ not wanting to support not standard egl stuff (right or wrong) 2/ probably thinking that as long as X still lived, why bother.
Last edited by 3zekiel on 7 January 2021 at 2:08 pm UTC
I hope the longstanding tearing issues with Nvidia GPU's can finally be fixed together with Wayland support.
I didn't look into Wayland yet, but XWayland is not the real thing, right?
No and yes, "XWayland" is like a container using X11 to run applications which doesn't support wayland natively, but since is isolated to the rest of the system, you can still benefit from some wayland advantages (alt + tab and alt + f4, for example, is way more responsive than x11).
Also, X.org developers will now work with only XWayland support instead of x11, so probably we'll have a optimized x11 running inside XWayland in future updates (and less bloated too)
Is it impossible for my graphics card vendor to do full Wayland support while keeping its driver closed?
Presuming is Nvidia you're talking about, right now the answer is yes because Nvidia proprietary drivers can't run GBM.
Nvidia already has wayland support, using standard egl extenstions. Rest of the Linux world uses custom (GBM) extensions. Then it becomes a question on who is right or wrong in this story. Nvidia says everyone else uses eglstream, Linux world says yes, but GBM has been there for quite some time.
What do you mean by "everyone"? Nvidia is the only one that adopted EGLStreams, not to mention that they are the ones that created this "standard" that only they implement.
Is it impossible for my graphics card vendor to do full Wayland support while keeping its driver closed?
Presuming is Nvidia you're talking about, right now the answer is yes because Nvidia proprietary drivers can't run GBM.
The issue has nothing to do with proprietary or open source. Support for Wayland has been here for ages. Support for Xwayland is, as you see, coming to full feature. Is purely technical choices (and lack of discussions when they should have happened...).
Nvidia already has wayland support, using standard egl extenstions. Rest of the Linux world uses custom (GBM) extensions. Then it becomes a question on who is right or wrong in this story. Nvidia says everyone else uses eglstream, Linux world says yes, but GBM has been there for quite some time.
What do you mean by "everyone"? Nvidia is the only one that adopted EGLStreams, not to mention that they are the ones that created this "standard" that only they implement.
I mean other OSes, at least ChromeOS and Android was their argument. I did not say their argument is good either. And if anything, issue is they did not say anything for years and then came and said "we support that and only that"
I mean other OSes, at least ChromeOS and Android was their argument. I did not say their argument is good either. And if anything, issue is they did not say anything for years and then came and said "we support that and only that"
AFAIK, no other OS uses EGLStream (I'm sure Android doesn't at least). Nvidia presented EGLStream as a OS independent solution, but the reality is that it was designed with the sole purpose of adapting to their needs. If Nvidia would want to improve GBM they would sit down with other wayland devs and start discussing a new standard that also works for Mesa drivers.
The big problem here is that Nvidia doesn't want to do a step back or rework in their driver design.
Last edited by x_wing on 7 January 2021 at 3:04 pm UTC
AMD's still at 1st gen RT and we know how useless Nvidia's 1st gen RT was. Same goes to whatever AMD calls their DLSS equivalent - which IMO is the biggest advantage Nvidia has.I think dealing with raytracing in its current state is not that simple. To begin with, not that many games implement it. Then, RTX is not always prettier than standard rendering. And finally, Dirt 5 offers better ray tracing performance on AMD, so it might still be a matter of optimisation.
1st gen tech is usually "bad" and it's a much better move to wait until 2nd gen. And Nvidia is already there :(
What I do see nonetheless, is Nvidia advertising a technology which is not a thing yet, just like they always did.
Even with this move in the right direction, which makes me really happy, I am tired of running drivers that work like no others. There are always rough edges. This and the current product lineup is driving me away from Nvidia.
I mean other OSes, at least ChromeOS and Android was their argument. I did not say their argument is good either. And if anything, issue is they did not say anything for years and then came and said "we support that and only that"
AFAIK, no other OS uses EGLStream (I'm sure Android doesn't at least). Nvidia presented EGLStream as a OS independent solution, but the reality is that it was designed with the sole purpose of adapting to their needs. If Nvidia would want to improve GBM they would sit down with other wayland devs and start discussing a new standard that also works for Mesa drivers.
The big problem here is that Nvidia doesn't want to do a step back or rework in their driver design.
Actually, it was in the pipe at some point, that 3rd, merged better API, but nothing came out of it. And yes, I agree Nvidia does not want to rework their driver, and that is the core of the issue I guess. Also, I understand it is not a technically better all around or anything like that. So yeah... We simply have to deal with it because it's Nvidia.
But I guess changing back must be non trivial for them, otherwise it would be done.
Regrading Wayland itself - now the big missing piece is Wayland support in Wine.
Last edited by Shmerl on 7 January 2021 at 4:19 pm UTC
The issue has nothing to do with proprietary or open source.
I didn't said that the problem was the driver being proprietary, I said the problem is the said driver not supporting GBM.
but coming from Nvidia with their money I'd count it as too little too late to affect how Linux gamers will perceive them.
I wish this was the case, but there's a lot of fanboys using Linux who are defending Nvidia, even when it's obviously their fault that wayland don't work with their graphic cards. Even a half-arsed "fix" from them is more than enough to make a lot of linux gamers to still give them money.
Regrading Wayland itself - now the big missing piece is Wayland support in Wine.
Fortunately, this only depends of open source software, so it'll eventually become true :)
I wish this was the case, but there's a lot of fanboys using Linux who are defending Nvidia, even when it's obviously their fault that wayland don't work with their graphic cards. Even a half-arsed "fix" from them is more than enough to make a lot of linux gamers to still give them money.
That's usually the perception of those who come from Windows and there indeed Nvidia is very dominating and people really don't care about whether something is open source or not. So when such gamers are switching to Linux they can also bring that kind of attitude with them, but even they often get what the point is eventually.
The way I see it, the actual trend among Linux gamers is growth for AMD and decline for Nvidia. But influx of former Windows gamers might continue to offset that.
I think with AMD investing more in gaming cards in general, situation on Windows will balance out too, so that influx will have less of an impact on Linux in the future.
Last edited by Shmerl on 7 January 2021 at 5:12 pm UTC
The issue has nothing to do with proprietary or open source.
I didn't said that the problem was the driver being proprietary, I said the problem is the said driver not supporting GBM.
Indeed, but I was referring the original question "Is it impossible for my graphics card vendor to do full Wayland support while keeping its driver closed?"
See more from me