Return to

[IMPOSSIBLE]Steam Remote Play + VDPAU HW Decode on Ubuntu 18.04 = Ripping your hair out

So I have had zero luck getting Nvidia’s (hurr durr Nvidia) VDPAU to work on Ubuntu 18.04.3 for Steam Remote Play. I’ve gotten NVFBC an NVENC working in tandem on Windows 7, thanks to a batch file and running in Fullscreen Exclusive mode, but I cannot for the life of me figure out how to increase the number of decode threads libavcodec can use or ENABLE hardware decode on Nvidia drivers.

All solutions on Google are unanswered or vague. Some say you need to install sudo apt install vdpau-va-driver vdpau-va-driver:i386, and I did that… STILL libavcodec with 4 threads…

I mean, the system is a Ryzen 5 3600X, but it’s still in the 40-50ms range for decode at 4K 60p which is quite bad, as that’s at least 2-3 frames delay.

I’m on Vulkan driver 418.52.05.

Edit: Linus Tech Tips forums to the rescue… IT’S IMPOSSIBLE. Steam is going to sit on doing libva2 support and won’t budge until someone makes enough noise, so it’s currently IMPOSSIBLE.

The longer Steam sits on libva2 support, the more clueless people wonder why HW accelerated decode will NEVER work on 18.04.

Edit: GamingOnLinux says it’s a Ubuntu package maintainer problem, so the “he said, she said…” has already begun. Who’s in the right? Steam for not updating? or Ubuntu for updating from version 1.x.x to 2.x.x IN PLACE?

Maybe it’s a bit of tit for tat after that valve developer fanned the flames during that uproar about ubuntu dropping support for i386 binaries? I imagine relations between the two aren’t exactly peachy right now. Not that I know if it was ever good to begin with. I always got the feeling that shuttleworth didn’t like people building upon his sand castle. Errr… wait is SteamOS based on Debian or Ubuntu? I forget now…

edit Oops… debian… Still dunno if there was any love there.

This was before the spat, where Ubuntu package maintainers just went ahead and made the libva package instead of 1.x.x, all of a sudden just be 2.x.x…

Early adopters of Ubuntu 17.10 got caught off guard and Steam all of a sudden wasn’t launching. They fixed the problem with Steam not launching, but not the root problem where Steam needs libva 1.x.x in order for Steam Remote Play HW accelerated decode to work.

So what’s the best way moving forward? Upgrade Steam to libva 2.x.x? or just sit on the issue and never resolve it? That’s what Valve should be asking themselves if they want to push Steam Remote Play further.

4 decode threads ONLY for software decoding isn’t enough for 4K and 1440p, even on a heavily overclocked 9900K. And you have no choice BUT software decoding on Ubuntu 18.04.

Dunno, but on Pop OS 19.04 there is a libva2 package but not a libva.

You’d think they’d update the linux steam client, but that might not happen until Debian upgrades their libva. If that’s already happened then hopefully it’s just a matter of time? Well it appears version 2 is in their current stable repos. Debian 10 came out last month. Valve be slacking.

But is it the best practice to only have a singular name for the package and then just upgrade in place?!? It should just split into libva1 and libva2, but Ubuntu didn’t really do that in a way that all the versions are satisfied with. 16.04.x does it differently than 18.04.x…

Valve should have it so there’s an environment variable to choose the damn version of libva as an upgrade path, so stable Steam could still use 1.x.x if they wanted to, but the beta would have that environment variable to use the newer version.

Is the problem performance?
I just managed to stream 2 games, subnautica and Foundations from a windows machine (actually vm) to an Ubuntu 18.04 desktop.
The performance was okay, but foundations isn’t too taxing.

Well, whatever the case, metapackage or not, ultimately the bigger question is why only version 2 is being maintained in the repo? Perhaps pretty much every other package required version 2? Was there a fundamental design flaw in it that made it insecure perhaps? Making patches to the old version impossible? There are some scenarios that come to mind. Steam is also a proprietary package whose dependencies might not even be considered as it’s not in the default repo’s? While what ubuntu did might not be strictly the best practice, whose responsibility is it to make sure non-free packages have their dependencies met if they’re not even being built by ubuntu? /shrug

I’m playing devils advocate there a bit. I think many ardent supporters would argue it’s not their problem due to the licensing conflict and lack of source code?

Round and round we go. Ultimately valve isn’t being a part of the solution either by waiting till even though Debian, one of the slowest distro’s, has already adopted the new version.

edit Err… wait. Is steam even available as a non-free package in official ubuntu repos? If that’s the case can you blame them at that point? They haven’t committed to anything in regards to steam? Or not it looks like it might be in there after all. I just assumed it was not since Ubuntu wasn’t mentioned much in some of the recent ‘gaming on linux’ topics/videos lately.

1 Like

Just an fyi, many packages like say, php, are meta packages. If you install say libsdl, it will pull in 2.0 unless specifically asking for 1.2.

In other words, can’t check at the moment but it is very possible that libva1 exist as a package, and I do believe Deb packages allow you to override dependencies in a config file somewhere. This should be enough to allow for a workaround.

Could be all wrong though, as I said, have not tried it.

I checked on my ubuntu based distros and didn’t see it but just in case -

Doesn’t look like it since 16.04 like the OP mentioned…

Only libva2 is in the current repos for 19.04. I’d have to look again but I believe it is the same for Debian. That’s why I was wondering if there was a reason it was abandoned.

edit @FurryJackman Did you see this in your searches?
If I understand this correctly it sounds as though a change in Libva makes implementing vdpau problematic? So it might not be that Valve is dragging their feet to support libva2, but that it wouldn’t bring any benefit anyways as the hardware support is gone? Maybe they’re looking at an alternative or maybe not?

edit Actually after reading the end of that thread the summary seems to be that AMD and Intel support libva2 with HW Decode but as of February of this year Nvidia had not made any moves to support it. So valve changing to the new version is probably a thing that should happen, unfortunately it will probably not help you as your trying to do decode on a Nvidia card. Typical Nvidia not playing nice with open source?

Yikes, so the rabbit hole is even worse than we thought…

Valve will have to have direct VDPAU support when they update to libva2… or someone has to write a VDPAU translation layer for libva2.

The only other alternative is NVDEC, which is 100% proprietary. (Yuck)

I might be reading this thread wrong , but is the libva-vdpau translation driver working at all? Its meant to provide a vdpau back end for va, so steam coded against libva2 may be able to use the vdpau api via that.

Im not to worried right now. Ryzen software decoding is fucking amazingly fast and its largely not bothering most of us. I like the you have updated the thread with that its impossible but your title man its making me cringe. Its got a click bait esque feel to it. I appreciate the work your are doing to uncover normal everyday difficulties.

I think steam knows what they are doing. That being said they do sit on debian linux. If you want the best steam experience on linux I highly recommend you use debian. Its just as stable as LTS if not more despite being a bit behind on the package roll outs. Its really easy to install and no you absolutely DO NOT NEED TO BE on the LATEST LINUX Kernel or for that matter LATEST brand new open source drivers to have a good gaming experience on linux at this point. You just need the correct libraries with the correct driver versions to support vulkan and DXVK for steam proton and your good.

The Ubuntu team is NOT at fault what so ever. It is their distribution ran by their community. There is no logic in saying steam should have any right over what they do or how they operate. That is against software freedom and steam can piss off for all I care.

That being said its absolutely NOT steams fault here either. Steam recommend using debian linux all the time if you want the “best experience” where as the recommend Ubuntu LTS for the average user. Primarily because someone coming from windows will have the best experience on Ubuntu.

You should check out their valve dev wiki

Funny enough they recommend the repositories built into debian. On ubuntu they advocate to not use the repo but rather download their debian package as the route that works best. Also steam is so well intertwined with debian that even they have a dedicated well documented library of information and installation wiki available at your disposal. So if you want to do it just run debian stop pulling your hair out and enjoy yourself. Its not the latest and greatest but dude bleeding edge software is literally a meme…

The purpose of a linux distribution is to be installed and to get out of your way not to always have to bend to the will of every users experience. If one does not like the experience on one distribution thats what software freedom is about change it yourself. Use what works best for you and thats my two cents.

While I agree with you that it’s not Ubuntu’s fault, and I must admit in the end this is Nvidia’s issue mostly, it seems like you didn’t really read this thread and just wanted to make a point about Debian. Ironically Debian 10 will have the same problem as any version Ubuntu right now. Again though, this is most likely because Nvidia didn’t work with the community to maintain support for their HW decode in Libva2 (while their competitors’ decode works fine with it).

No I was making a point about using what works for you. Ubuntu 16.04 still exists and is supported… Debian 9 still super usable. Is it an nvidia issue I would have to say yes but with a caveat. Why should NVidia care. Linux gaming is absolutely never their priority and why should it be when the platforms that make them the most money are what almost all gamers still run? Its a company ran by a CEO… its not a democracy. Someone doesnt like their product dont buy it… and live with whatever consequences that means. Its pretty darn simple.

Turning this into an NVidia vs its competitor (AMD) is pointless on linux and off topic for this thread. Nvidia drivers will give you better gaming performance hands down in almost all distributions right now. AMD proprietary drivers provide little to no performance benefit over their open source counter parts which in real world testing shows they are both pretty pitiful at the moment which is always subject to improvement. However there is a good amount of prospect for navi and big Navi so we will see how it changes the driver landscape for linux

That being said the original point stands why the heck should these companies care. The awful but truthful answer is they shouldnt and they only care a little bit. Primarily on the professional or sci comp side of things

Lol. I just wanted to point out that your solution of using Debian is not necessarily a solution. I would say that downgrading is typically not a viable solution for most people. Anyways, I wasn’t claiming that Nvidia was required to do anything. They supported it before, they don’t now. Therefore HW decode doesn’t work in libva2 and libva1 has been deprecated due to performance issues. End of story.

In what world is using a distribution officially supported by the software not to mention with an official support wiki and the correct version of software to get stuff working not a solution?

While Debian 10 is closer to 18.04 its still older than 18.04. I run Debian 10 on a machine and remote play just fine right now so perhaps it doesnt have the same problem. In any case the OP is right remote play is currently not functioning with VDPAU HW Decode on 18.04 nor Fedora 29+ so yeah Debian kind of is a solution. That or run steam OS. If your sole purpose of using linux is gaming steam OS is based on debian and you can install a normal desktop over the top and have all your functionality. This wraps back to my ultimate point. Use what works and do your research before jumping onto something. I wish the OP luck on solving his woes with the means that are available.

There is no libva1 for buster. If valve’s position is everyone stay on an old release of Debian that’s fine too, but it’s going to create more problems than it’s worth when it comes to vulkan support via DXVK, the kernel changes they are trying to get applied to the upstream, and probably generally going to suck for the Proton developers. But more power to anyone that wants to hold everything back for one library.

lol. Do your research indeed. Well let’s agree to disagree. It’s clear you want to disagree with me.

Thats exactly steams position. I wont argue with the company. I game locally. Its a shame they dont do better. Im not overall disagreeing with you but I dont see the point in trying to get something to work like the OP did when the company doesnt care to or doesnt have a mind to do so yet is what Im getting at with the use what works.

That being said yes Debian 10 has libva2 but for some strange reason everything works. Could be a fluke. I never cared to look into it. I rarely stream to my laptop

This is valves mentality in general. Did you see the whole deprecate x86 movement getting halted by them. IMHO valve can go to hell. When companies start to control a linux community that bothers me deeply and when the reverse happens thats kind of amusing.

This is that close to loss of civility. Keep it civil. Also, keep it respectful. Keep any rude terms like “Clickbait” away.

No one’s at fault… Everyone’s at fault for making bad choices…

See, this is the toxic side of Linux Wendell is telling people to avoid.

1 Like

Here’s a thought… Why not just use code from MPV for the presentation part of decoding the stream? MPV maintains the code, and Valve just uses that code for broad compatibility, rather than hard coding configuration options in the Steam client, and having to maintain FFmpeg themselves…

MPV is cross-platform too.

1 Like