Steam-Headless / docker-steam-headless

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

Issues with Docker Compose Instructions #137

Open theamazingnorad opened 3 months ago

theamazingnorad commented 3 months ago

Description

As a dual AMD GPU user on Arch under KDE 6.0, I struggled to get this working. Three things I would recommend adding to the instructions.

Anyways, these edits allowed me to get this working. My wife can now game off my 6500 in the container from her Mac while I play off my 6950XT. Hurray 5950X and 64 GB ram :)

cRaZy-bisCuiT commented 2 months ago

Thanks for the info @theamazingnorad ! Would you mind to open a PR and update the needed changes? Otherwise I could try to build on my Arch system as well and then open a PR. :)

Josh5 commented 2 months ago

Description

As a dual AMD GPU user on Arch under KDE 6.0, I struggled to get this working. Three things I would recommend adding to the instructions.

  • The default port information is misleading. The example .env uses 58083 yet the install guide references 8083.
  • I had to go into 70-configure_xorg.sh to figure out why my x server was not running -- I was getting errors about Xauthority, but traced it down to not having a valid display device. I'm not sure what the DISPLAY variable of 55 is trying to do, but I ended up adding FORCE_X11_DUMMY_CONFIG=TRUE to my environmental variables to get Xorg in the container to create a dummy display and start.
  • You have a commented out line in docker-compose to pass /dev/dri. I'd suggest adding a blurb that, for multiple AMD GPU users, you need to pass the specific GPU you want. So for me, /dev/dri/card1 and /dev/dri/renderD128. At that point, only my AMD 6500 passes and not my 6950XT. Confirmed working with vkvube from the container. I was having issues with it trying to run things on the wrong GPU which was already bound to Wayland in my host.

Anyways, these edits allowed me to get this working. My wife can now game off my 6500 in the container from her Mac while I play off my 6950XT. Hurray 5950X and 64 GB ram :)

With the setup you have achieved, are the 2 of you able to play at the same time?

theamazingnorad commented 2 months ago

As a dual AMD GPU user on Arch under KDE 6.0, I struggled to get this working. Three things I would recommend adding to the instructions.

  • The default port information is misleading. The example .env uses 58083 yet the install guide references 8083.
  • I had to go into 70-configure_xorg.sh to figure out why my x server was not running -- I was getting errors about Xauthority, but traced it down to not having a valid display device. I'm not sure what the DISPLAY variable of 55 is trying to do, but I ended up adding FORCE_X11_DUMMY_CONFIG=TRUE to my environmental variables to get Xorg in the container to create a dummy display and start.
  • You have a commented out line in docker-compose to pass /dev/dri. I'd suggest adding a blurb that, for multiple AMD GPU users, you need to pass the specific GPU you want. So for me, /dev/dri/card1 and /dev/dri/renderD128. At that point, only my AMD 6500 passes and not my 6950XT. Confirmed working with vkvube from the container. I was having issues with it trying to run things on the wrong GPU which was already bound to Wayland in my host.

Anyways, these edits allowed me to get this working. My wife can now game off my 6500 in the container from her Mac while I play off my 6950XT. Hurray 5950X and 64 GB ram :)

With the setup you have achieved, are the 2 of you able to play at the same time?

Correct. We wanted to play BG3, the Steam Deck struggles with this, and she was able to to Remote Play on her Macintosh from this docker container. Note that, in order to get it working, I bound the docker container to its own network adapter so it had a unique IP address on the network. Steam struggles to do Remote Play otherwise. I've since moved on to a Windows VM with GPU passthough since she wanted to play some games that require Anti Cheat sigh

I will try to spin this back up this weekend, however, while my wife is at work and make the PR on the instructions. The real issue here is that the docker documentation is....not good for AMD GPUs. I blame this primarily on the influence of CUDA and the primarily NVIDIA focus by enterprise users. I'll reference folks to Linus' opinion on NVIDIA for further commentary :p