STEAM GROUP
Steam Remote Play homestream
STEAM GROUP
Steam Remote Play homestream
4,448
IN-GAME
34,988
ONLINE
Founded
November 7, 2013
ReLink2013 Apr 15, 2018 @ 4:41pm
Ubuntu 18.04 client has no hardware accelerated decode.
Hi all, I am running the following setup. (Skip down to "THE PROBLEM" if you don't want to read about my setup)

Hardware:
i7-7700k
16GB DDR4
Intel GPU Disabled in bios
PCI-E Slot 1 GeForce GTX 660TI
PCI-E Slot 2 GeForce GTX 980TI

Now I know, that looks weird but wait for the rest of the setup;

Main OS: Kubuntu 18.04 (Using custom ACS Override Kernel version 4.15.15)
Guest OS: Windows 10 Enterprise running in a KVM (Virtual Machine), with the 980TI pass-through to it.

Guest VM Specs:
4 Cores
6GB RAM
120GB VDisk on its own SSD

Basically the way I have things setup Windows 10 Runs in the background, I never even have to look at it unless I need to install something. Then I stream all my games through Steam, and run all my apps through RemoteApp using FreeRDP. Windows 10 has no idea its even running in a VM, and the 980TI is fully attached to the VM, to the point where I can even run MSI After burner and OC it.

I will start out by saying that I do not believe Windows 10 is the problem, everything in the VM seems to be running completely flawlessly. I am getting about 95% of the performance I would get on bare-metal, and Steam is reporting that it is in fact using hardware encoding when I am streaming.

THE PROBLEM:

The issue is that I cannot get Hardware accelerated decoding to work in Steam on the Linux Client. I currently have the 660TI dedicated for Linux to use, but I have also tried using a GTX 1050. I am using the nouveau driver, which supports VDPAU / VA-API, so I shouldn't have any issues. Yet every time I stream it says "Software decoding using 4 threads".

I keep hearing that using the proprietary nvidia driver would work better, but this doesn't seem to be an option for me as I absolutely cannot get them to work properly. I think it may be because of the custom kernel but im not sure.

So please, can anyone shed some light on why I cant get Hardware decoding working using the nouveau driver? from everything I can see it should work.

Although better yet, if someone knows how I can get the proprietary drivers working that would be great too.

Sorry for the long post, and thank you.
< >
Showing 1-7 of 7 comments
ReLink2013 Apr 15, 2018 @ 5:32pm 
UPDATE:
I actually managed to get the proprietary nvidia drivers installed and it still insists on using software decoding...running driver ver. 396.18
ReLink2013 Apr 16, 2018 @ 3:12am 
The below output shows that VDPAU is active and working on my system, I just cant get steam to use it. Steam is still using software decoding. I have even done a fresh install of steam.

$ vdpauinfo display: :0 screen: 0 API version: 1 Information string: NVIDIA VDPAU Driver Shared Library 396.18 Thu Apr 5 23:34:43 PDT 2018 Video surface: name width height types ------------------------------------------- 420 4096 4096 NV12 YV12 422 4096 4096 UYVY YUYV Decoder capabilities: name level macbs width height ---------------------------------------------------- MPEG1 0 65536 4032 4048 MPEG2_SIMPLE 3 65536 4032 4048 MPEG2_MAIN 3 65536 4032 4048 H264_BASELINE 51 65536 4032 4080 H264_MAIN 51 65536 4032 4080 H264_HIGH 51 65536 4032 4080 VC1_SIMPLE 1 8190 2048 2048 VC1_MAIN 2 8190 2048 2048 VC1_ADVANCED 4 8190 2048 2048 MPEG4_PART2_SP 3 8192 2048 2048 MPEG4_PART2_ASP 5 8192 2048 2048 DIVX4_QMOBILE 0 8192 2048 2048 DIVX4_MOBILE 0 8192 2048 2048 DIVX4_HOME_THEATER 0 8192 2048 2048 DIVX4_HD_1080P 0 8192 2048 2048 DIVX5_QMOBILE 0 8192 2048 2048 DIVX5_MOBILE 0 8192 2048 2048 DIVX5_HOME_THEATER 0 8192 2048 2048 DIVX5_HD_1080P 0 8192 2048 2048 H264_CONSTRAINED_BASELINE 51 65536 4032 4080 H264_EXTENDED 51 65536 4032 4080 H264_PROGRESSIVE_HIGH 51 65536 4032 4080 H264_CONSTRAINED_HIGH 51 65536 4032 4080 H264_HIGH_444_PREDICTIVE 51 65536 4032 4080 HEVC_MAIN --- not supported --- HEVC_MAIN_10 --- not supported --- HEVC_MAIN_STILL --- not supported --- HEVC_MAIN_12 --- not supported --- HEVC_MAIN_444 --- not supported --- Output surface: name width height nat types ---------------------------------------------------- B8G8R8A8 16384 16384 y Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 R10G10B10A2 16384 16384 y Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 Bitmap surface: name width height ------------------------------ B8G8R8A8 16384 16384 R8G8B8A8 16384 16384 R10G10B10A2 16384 16384 B10G10R10A2 16384 16384 A8 16384 16384 Video mixer: feature name sup ------------------------------------ DEINTERLACE_TEMPORAL y DEINTERLACE_TEMPORAL_SPATIAL y INVERSE_TELECINE y NOISE_REDUCTION y SHARPNESS y LUMA_KEY y HIGH QUALITY SCALING - L1 y HIGH QUALITY SCALING - L2 - HIGH QUALITY SCALING - L3 - HIGH QUALITY SCALING - L4 - HIGH QUALITY SCALING - L5 - HIGH QUALITY SCALING - L6 - HIGH QUALITY SCALING - L7 - HIGH QUALITY SCALING - L8 - HIGH QUALITY SCALING - L9 - parameter name sup min max ----------------------------------------------------- VIDEO_SURFACE_WIDTH y 1 4096 VIDEO_SURFACE_HEIGHT y 1 4096 CHROMA_TYPE y LAYERS y 0 4 attribute name sup min max ----------------------------------------------------- BACKGROUND_COLOR y CSC_MATRIX y NOISE_REDUCTION_LEVEL y 0.00 1.00 SHARPNESS_LEVEL y -1.00 1.00 LUMA_KEY_MIN_LUMA y LUMA_KEY_MAX_LUMA y
ReLink2013 Apr 16, 2018 @ 11:28am 
Anyone? From my understanding this should "just work", and its not.
Twiztid Apr 18, 2018 @ 5:42am 
Weird for sure, but onto the video decoding.
I've been trying to get VDPAU working on my Radeon R5 APU and it refuses, seems Steam is only using VA-API thru FFMPEG.
I have no idea if this will work for nouveau.
Try to install the native-runtime packages then run
STEAM_RUNTIME=0 steam
It will make Steam use your local libs(steam only uses 32-bit).
You may have to slightly change packages names in apt if 18.04 has different names.
To check for the local libs
cd .steam/ubuntu12_32 and run LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq
Install the packages it states from apt with :i386 at the end on a 64-bit OS.
Should mostly consist of
sudo apt install libasound2:i386 libusb-1.0-0:i386 libxi6:i386 libxtst6:i386 libxss1:i386 libxrandr2:i386 libopenal1:i386 libsm6:i386 libxcomposite1:i386 libxcursor1:i386 libnss3:i386 libnm-glib4:i386 libgtk2.0-0:i386 libgconf2-4:i386
The fix for udev
cd /lib/i386-linux-gnu sudo ln -sf libudev.so.1 libudev.so.0
Test vdpauinfo and vainfo 32-bit and revert back to 64-bit after test.
sudo apt install vainfo:i386 vdpauinfo:i386 after testing you can revert back to 64-bit sudo apt install vainfo vdpauinfo
Last edited by Twiztid; Apr 18, 2018 @ 9:04am
GusGraf Apr 29, 2018 @ 10:34am 
I am using Ubuntu 18.04 along with an Quadro nv300 and I am having the same problem, in version 16.04 the hardware decoding worked perfectly.
Twiztid Apr 29, 2018 @ 1:14pm 
Originally posted by GusGraf:
I am using Ubuntu 18.04 along with an Quadro nv300 and I am having the same problem, in version 16.04 the hardware decoding worked perfectly.
From what I've been seeing, LibVA(pushed from LibVA1 to LibVA2), possibly FFMPEG and more, have been upgraded to their latest versions, which are temp incompat. with Steam IHS.
As for VDPAU, I haven't tested my GT 610 yet. Once I have access to that GPU again, I'll tinker with it and report back.

Edit: I'm on 18.04x64 with a GT 610 running 390.48 Drivers. Seems Steam is prefering FFMPEG and VA-API outright. Ignoring VDPAU entirely.
I was able to link LibVA2 to a fake LibVA1 lib and have native steam running, but still no VDPAU.
It is attempting to use VA-API but because of the bump to LibVA2, its not decoding at all. Just a blank screen and a bunch of FFMPEG errors.
Safe to assume we won't have hardware video decoding on 18.04 for a while.
Last edited by Twiztid; Apr 29, 2018 @ 4:40pm
pecosdave May 16, 2018 @ 7:47am 
I have to say I have a similar issue to you - without VM's.

I run Maui Linux (I'll be switching to Neon when I get around to it now that Maui is essentially abandoned).

I built a "Wintendo" out of leftover hardware, a quad core AMD system and two Nvidia 9700's that aren't in SLI because the board doesn't support SLI (but it does Crossfire). The system works great even though it is a bit of a kludge.

I can stream to the Steam Link in the bedroom just fine, I've play South Park for hours on end using my Steam Link and it only pixelates on rare occasions when the Wintendo gets a bit hot, probably for not meeting the posted minimum requirements to run the game. To top it off the Wintendo was on a switch at my desk, which tied to a switch under the TV, which in turn tied to a switch in my bedroom to get the data through.

My Linux system is a eight core AMD system with a GeForce 750 Ti that runs every Linux compatible game I throw at it just fine. Even newer ones like Tomb Raider, I can't max the graphics, but it's perfectly playable and enjoyable.

Streaming from the Wintendo is a pure blockfest that my eight core, 16 GBs of RAM GeForce 750 Ti system running the proprietary nVidia driver just can't keep up with. To top it off the Wintendo and my Linux desktop are on the same gigabit Cisco (unmanaged) switch. The Steam Link should be handicapped since it is essentially an out of date mobile phone in a box going across three gigabit switches, but it plays like a dream.

I've read up on how the streaming is supposed to work. It's essentially supposed to be a VNC session with the native desktop meant for office apps video layer replaced by h.264 (or similar) video streaming and some USB link support thrown in.

I have to concur it looks like we're doing full software rendering despite the fact the nVidia card is sitting there with a great MPEG decoder on board. Theoretically you should be able to Steam stream the latest games to to an old PII running a Sigma MPEG 4 PCI decoder card and a built in Intel video chip of the era (shudder).
< >
Showing 1-7 of 7 comments
Per page: 1530 50

Date Posted: Apr 15, 2018 @ 4:41pm
Posts: 5