Steam-Headless / docker-steam-headless

A Headless Steam Docker image supporting NVIDIA GPU and accessible via Web UI
GNU General Public License v2.0
737 stars 80 forks source link

[Bug]: AMD drivers not properly installed #22

Closed QuaiGoner closed 2 months ago

QuaiGoner commented 1 year ago

Describe the Bug

Using noVNC i was trying to call vainfo on my AMD APU - but got an error: (no driver) image after calling apt update && apt install -y mesa-* and vainfo --display drm --device /dev/dri/renderD128 i get a proper output image

but with vainfo its still image

Steps to Reproduce

  1. docker compose up -d
  2. vainfo
  3. apt updatee && apt install -y mesa-*
  4. vainfo --display drm --device /dev/dri/renderD128
  5. vainfo

Expected Behavior

AMD driver works and sunshine uses Encoding propperly

Screenshots

No response

Relevant Settings

No response

Version

latest

Platform

Ubuntu 22.04 5.15.0-56-generic x86_64 x86_64 GNU/Linux Docker version 20.10.22, build 3a2c30b Docker Compose version v2.14.1

Relevant log output

No response

Grarak commented 8 months ago

I had the same problem. You can solve it by either not using sid for the mesa driver (https://github.com/Steam-Headless/docker-steam-headless/blob/master/overlay/etc/cont-init.d/60-configure_gpu_driver.sh#L148C5-L148C5), or do apt upgrade after adding it as source.

Josh5 commented 8 months ago

I had the same problem. You can solve it by either not using sid for the mesa driver (https://github.com/Steam-Headless/docker-steam-headless/blob/master/overlay/etc/cont-init.d/60-configure_gpu_driver.sh#L148C5-L148C5), or do apt upgrade after adding it as source.

What packages are being upgraded?

alansari commented 8 months ago

To get hardware encoding on amd I just needed to update va-driver-all and libva2 from Sid. Temporarily it works by creating an init.d script with apt update and install for the two packages. After the container is up and running apt still sources the Sid repos so no need to add it to the sources.

Bu156 commented 7 months ago

To get hardware encoding on amd I just needed to update va-driver-all and libva2 from Sid. Temporarily it works by creating an init.d script with apt update and install for the two packages. After the container is up and running apt still sources the Sid repos so no need to add it to the sources.

This makes Steam (in Docker) crash for me whenever initiating a stream

alansari commented 7 months ago

Unable to test this myself, but would you mind trying steam streaming again after installing libva2:i386? it should auto install the lib32 va-driver as well as a dependency. /crossfingers (fyi moonlight/sunshine works without the lib32 libraries as another option) edit: sorry to say but for the time being, if it doesn't work, disabling hardware encoding in steam host streaming settings is a temporary workaround.

Bu156 commented 7 months ago

Unable to test this myself, but would you mind trying steam streaming again after installing libva2:i386? it should auto install the lib32 va-driver as well as a dependency. /crossfingers (fyi moonlight/sunshine works without the lib32 libraries as another option) edit: sorry to say but for the time being, if it doesn't work, disabling hardware encoding in steam host streaming settings is a temporary workaround.

Steam is fine with CPU encoding, I get 60+ fps, often 80-90 or so, but I would prefer a full 100fps if I could. I have never gotten Sunshine/Moonlight to work well, it's always been really laggy no matter the host OS, and I've tried on two different host computers (AMD and NVidia) on both Windows and Linux with Geforce Experience and Sunshine, on multiple different clients. All have been laggy for me over a wired gigabit LAN, and sadly this docker container is no different. This is why I would prefer for Steam streaming to be fixed.

EDIT: I downgraded all packages to bookworm and now Sunshine has hardware acceleration.

timsmithxyz commented 5 months ago

Seeing the same with a dedicated AMD GPU. Can confirm downgrading all packages to bookworm fixes acceleration in Sunshine, then installing libva2:i386 fixes Steam streaming.

cRaZy-bisCuiT commented 3 months ago

Do we have a solution here? I'm using steam-headless with a Cezanne APU which works pretty perfect with it. Except for steam is not doing HW encoding, even though it's turned on.

Installing libva2:i386 will fix vainfo but steam is still doing S/W encoding. How could I fix that?

cRaZy-bisCuiT commented 2 months ago

The following Docker Image (upstream) fixes the issue, since Debian Sid is made optional:

For me Sunshine HW encoding and Steam HW encoding works.

cRaZy-bisCuiT commented 2 months ago

@QuaiGoner Can you confirm this? If so, maybe @Josh5 could close the issue then. Solved by 12a498e1eba2dab5abfed484c22742ed14ce4e8e