State of Wayland? (and open source graphics like Nouveau)

So I’ve been investigating Wayland as a way to properly implement multi monitor on Linux and possibly allow multi GPU with one display in one GPU and the other display in another, something that’s impossible on Xorg.

As or right now, it looks like only open source drivers like Nouveau and RadeonSI and Mesa play nicely with Wayland. The only one that isn’t playing nice is Nvidia Proprietary drivers, pretty much the only option for high performance at the moment for Maxwell and Pascal cards. Nvidia decided not to be an early adopter, and it looks like EGLstreams is the only way right now for those drivers to implement Wayland. (though it is extremely buggy and slow)

Unfortunately, this has caused a divide amongst FOSS users and people that want to use Linux for gaming. FOSS purists want nothing to do with proprietary drivers and some even harbor Nvidia hate just cause: (Source: https://blog.martin-graesslin.com/blog/2017/10/plasmawayland-and-nvidia-2017-edition/)

But then on the other hand people bailing on Windows to try to make Linux gaming work mostly own Nvidia Pascal cards, and Nvidia is reluctant to release signed firmware images to the Nouveau project to allow those cards to run at 3D clocks. In an ideal world, we would have RadeonSI performance by now on Nouveau with Maxwell cards by now… but no dice.

The simplest solution would be simply to get a Radeon Vega… But Vega as of now still needs the most bleeding edge kernel plus patches to work, and Pascal set the bar so high in terms of power efficiency to raw horsepower that it has became the defacto standard for new Windows 10 gaming builds. Not to mention the Radeon shortage due to cryprocurrencies.

So we have Nvidia reluctantly and slowly trying their hardest to ignore the fact Wayland exists to stick with Xorg, Nouveau having no re-clock capability, cryptocurrencies causing shortages for Radeon, GNOME defaulting to Wayland, and the FOSS community not willing to support getting Nvidia’s drivers to play nice with Wayland… GNOME defaulting to Wayland and people not patching Nvidia cards to make it work with Wayland is only setting things up for failure, making the first dive into Linux for some people a nightmare if they don’t know they have to switch to Xorg… then they learn about the bad multi-monitor support in Xorg and wonder why they haven’t gotten Wayland to work yet???

This friction (including the signed firmware requirement for reclocking) plus the situation that’s kind of out of control with the cheap AMD cards not being an option for many right now is only going to cause most beginners to quit before they get somewhere, because an average first time Linux user will not know Xorg has better support. This is a problem that desperately needs to be resolved and I’m surprised Valve and SteamOS hasn’t made efforts to contribute to getting Wayland working cause SteamOS recommendations include Nvidia cards.

Nvidia “says” they’re committed to getting resources to open source drivers according to this quote from a mailing list… (Source: https://lists.freedesktop.org/archives/mesa-dev/2017-November/177632.html)

…though I remain skeptical if that’s going to be in Valve time or not…

What do you guys think? Is this a terrible mess or is it growing pains?

The latest Phoronix story on the state of this is here: https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-Getting-The-Alloc-Going

1 Like

Nvidia still doesn’t care for linux so i don’t really see the point an open source project to try and fix their shit. Yes this may push gamers away from linux but its Nvidia that wants that. Nvidia has the money to do anything they just don’t want to commit to it.

3 Likes

And that’s bad for SteamOS, Steam, and native Linux gaming as a whole, making GPU Passthrough THE only option cause Wine is a mess and this deal with Wayland is a mess. The only way to attract gamers is GPU passthough if nobody is willing to support or put the effort in getting things to work without creating artificial friction like this… but I guess people just want Nvidia to fail… except it’s doing really well for Windows 10 and gaming on that front.

“Let them fail” seems to be the community consensus, but they’re not going away anytime soon because of strong sales of Windows 10 systems.

I did not mean to say - " let them fail ".
They will not fail, at least it wont be soon. What i meant is you can not expect Nvidia support when Nvidia themselves don’t want to invest in linux support. And it is not like they don’t have the means to.

SteamOS is half dead, the only reason SteamOS exists is because Windows tried to get money and market share from Valve and Steam. And Valve showed them that if WIndows tries to push their shit Valve will invest as much as it is needed to make it on another operating system. However Windows backed off and now Valve stopped pushing SteamOS.

It’s not bad for gaming you will just have to buy an AMD video card. The cripto market will probably settle in a year. People will probably finally see that buying new rigs is not really that cost effective.

GPU pass through is not “THE” only way especially with Nvidia, not that is not possible but for the gamers you are talking - " normal people " making a GPU pass through system with Nvidia video card is a pain in the ass.

Wine is fine but you have to try a lot of times till you get it right. Soon there will be snappy(snapd) and flatpack ( they actually already exist but soon there will be a wide support for them ) ready games.

So no you are kinda wrong, if you so much want Nvidia with wayland get yourself in to programming and do the work for them for free. You will understand what pain in the ass that is.

I should remind you not long ago the only recommended video cards for gaming on Linux were the Nvidia cards, AMD just sucked at driver support. But now AMD actually invested in drivers both proprietary and open source and now they harvest their hard work. Yes AMD is the more supported because they invested in Linux support.

3 Likes

Here’s hoping they come to their senses to realize they’re cannibalizing their userbase, which some of them include people doing neural nets like Tensorflow and without a desktop environment, you’re kind of hosed in terms of learning curve.

You mention “why not fix it yourself?” I will have to point out the SMT bug in the current Memtest86+ that is to this point unfixed. That’s an example of a impossible to fix bug, so yes, I know how hard low level programming is. In fact, Nvidia by using EGLstreams is opting for user level APIs to run low level graphics… No. Just no. (and correct me if that’s wrong)

It is unfortunate that SteamOS is becoming vaporware. It was the major push for Linux gaming and now we’re kind of back to square one in terms of push for Linux gaming. Where’s our HTC Vive Linux API? Now it’s delayed… in Valve time.

So while I agree the general consensus is to use AMD cards on Linux cause the OSS graphics stack is awesome, (and it actually is) my concern is for people just getting their feet wet having just purchased a originally Windows based gaming machine. @wendell said his goal was to make people’s first experience in Linux as friendly as possible, this is just one of the anticipated issues coming from a common hardware configuration for a gaming PC.

When I say GPU passthrough is the only one, it’s currently the only one with great reward after accomplishing the feat, because you’re literally running sandboxed Windows inside Linux with full GPU performance.

2 Likes

At the moment I don’t see why nvidia would or should care, there’s no angle in which Wayland makes a huge difference in terms of user experience in the majority of Linux desktop market.

Majority of paying Linux desktop users are “productivity” users.

I’m willing to bet a very large proportion are running Ubuntu 16.04 LTS . They’re probably using old nvidia quadro cards, and they’ve probably given up on fancy desktop environments and are using things like xfce or i3 in their day to day, rarely they might happen to be running some old plasma. Either way they’re most likely to buy the cheapest card when they buy their machine once in 3 to 5 years and stick with it.

In general, I don’t think these linux desktop users care about the latest GPU features or Wayland(or xorg) for that matter much.

Having an efficient, easy to maintain way of pushing pixels onto the screen is important to success of Linux on the desktop, but I think you should focus on new use cases for Linux desktop there, not existing ones.

Well, multi monitor across multiple GPUs requires 2 X screens and Xorg by default only draws a desktop on one GPU. Wayland theoretically solves this problem. Xorg also counts multiple monitors as a spanned single display when it has to “paint it’s canvas” to draw the desktop.

This is why some people doing tutorials recorded using OBS that need the space required by multi monitor fall back to Windows to do that, cause multiple displays across multiple GPUs is possible in both Windows and macOS, but it’s currently impossible with how Xorg is setup for Linux.

At the current point in time, AMD is the way to go for linux gaming.

AMDGPU works beautifully for gaming. Especially, with the latest of it coming to kernel 4.15.

I haven’t tried multi-monitor with different GPU’s though. That seems weird amd I’m not sure why you’d want to do that in a gaming machine, I can see this making sense in a server environment though but for computation not gaming.

3 Likes

I just have one GPU but I record with OBS just fine. It individual picks up each monitor or I can choose the entire desktop.

I am excited for wayland, but don’t expect Nvidia to actually get off their ass and try to work on something related to linux.

2 Likes

You’d want that to have one GPU dedicated to rendering the game, and one GPU dedicated to drawing the OBS canvas. When you turn on OBS’ multi-GPU compatibility mode, the only hook to the game on the game rendering GPU is retrieving the rendered frames to push over to the OBS canvas GPU which is doing the legwork to render the final composited image that will be output to be recorded or streamed.

If you try telling something what the primary monitor is with how Xorg is currently setup, especially Wine games, it always gets it wrong. Wine games always defaults to the rightmost monitor in a multi monitor setup even if you set the primary monitor as the left one in the desktop environment config. How desktop apps remember position in Xorg right now is relative position across the ENTIRE single Xscreen, it does not care about the metadata on which monitor is primary. Wayland actually tells programs what the user set as the primary monitor so problems like this would theoretically go away.

Is this for recording OBS or streaming with OBS, because having a CPU is more important for the rendering of the output. Just having OBS up on a second or third monitor really won’t kill performance, unless you have the preview up.

OBS has to draw a canvas for a rendered image to pass to the encoder even if the preview is disabled. This is done on the GPU before the CPU (in the case of x264) takes over to encode the rendered image. On Windows, you can assign the OBS canvas GPU by simply setting your primary monitor with 2 displays and one display per GPU. After launching OBS, switch your primary display back to your primary GPU and OBS will still render it’s canvas on the GPU the program started with. By enabling multi-GPU compatibility mode when you go to add a game capture, the rendered images on your current primary GPU (the more powerful one in your system) can simply be passed on to a secondary GPU which is rendering output that will eventually be encoded by x264. If OBS is launched on the same GPU as the game is, the issue is that the canvas rendering takes away resources from the game, and on certain unoptimized Unity games, this results in dramatic performance loss.

Ahh I see what you’re getting at now.

As wayland gets more fleshed-out it will be worth going to. But until then I’d say avoid it.

If your use case does not align with something the wayland devs think is a ‘valid’ use case then they will throw your comment in the trash.

I have seen NVidias presentations of their IA hardware done on ubuntu, so they do care, for their IA stuff, perhaps not for the desktop.

The open source driver always hangs with my old NVidia card, so its out of the question, and the new drivers do not work with Wayland. As Wayland takes off they might reconsider, because on the desktop world you can buy an AMD card and could be good to go for wayland, also with intel integrated for ultrabooks (plug and play).

However, unless the Linux Desktop takes off, they might not care.

Which is the problem that needs to be addressed, but with Linus himself saying f*** you Nvidia, and most of the community not willing to support their closed source ecosystem, we’re stuck with Nouveau grinding to a halt, people needing Radeon to make Wayland work, which is still not as efficient power-wise as Pascal, and fresh crops of people who built Nvidia systems with Windows who have only just found out there’s a better alternative to Windows, being screwed cause the community will not support their ecosystem or cards and shoving them off for using a card from such a ecosystem that “inhibits” and only allows people to take advantage of the full potential of a product ONLY if you do things “their way.”

This does nothing but turn people with fresh Nvidia systems and no prior experience away from Linux if we’re just gonna be hostile and say “You should have known better and have gone with AMD.”

I bought an AMD GPU mid 2016 and switched to fedora cause wayland and AMDGPU was tied to current kernels. It worked well since then on a multi display monitor setup.

My only beef is linux gaming is flakey some games just stop working. Take the last game that stopped working Sword coast Legends. Doesn’t work on Ubuntu 17.10 but does on Fedora 27.

Still desktop wise and tear free video. Fedora and wayland has been rock solid. Still testing ubuntu 17.10 and is a little flaky compared to fedora with wayland.

Are you the most savage Nvidia fan or do you not understand ?
It is Nvidia that doesn’t want to work with wayland. The Wayland project have stated what are their requirements and those requirements are for both AMD and nVidia. AMD is working with them because they follow the requirements stated, nVidia basically is saying - No guys you may have requirements but we don’t care about them and we are ready to work with you if you follow our requirements.

You see in this kind of situation there can not be a mutual understanding so there will be no business between the two.

So let me give you an example -
You are selling refreshing drinks on the side of your house for 1$ per liter. A boy comes to you and says - I will buy your product for 2 cookies costing 5 cents each or I will not buy anything from you.
What will you do ?

That’s the pity thing for user like me that want to use Nvidia for Machine learning or deep learning on LInux, but we can’t benefits the advance graphic stack on Linux.

So for next 1-2 years, I hope the developers will not ignore the users that have to stay on X when they focus on Wayland support.

1 Like