Skip to content

Commit 8e3e789

Browse files
Bot Updating Documentation
1 parent 8ca9b63 commit 8e3e789

File tree

1 file changed

+49
-2
lines changed

1 file changed

+49
-2
lines changed

docs/images/docker-steam.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,19 @@ The application can be accessed at:
4545
>[!NOTE]
4646
>This image is for a web accessible version of Steam to be played through a web browser it is in development and has oddities, if you want a fully flushed out Moonlight couch solution please consider [Wolf](https://games-on-whales.github.io/wolf/stable/user/quickstart.html) or another non Docker solution. Moonlight clients have major advantages over using a web browser.
4747
48-
>[!NOTE]
49-
>NVIDIA is not working yet, for now this image is only for Intel/AMD graphics cards.
48+
## GPU Support
49+
50+
Using an Intel/AMD GPU is usually as easy as just passing `--device /dev/dri:/dev/dri`.
51+
If you have multiple GPUs you need to pass both the setting for the render node and the encoder IE for the second GPU:
52+
53+
```
54+
-e DRINODE=/dev/dri/renderD129 \
55+
-e DRI_NODE=/dev/dri/renderD129
56+
```
57+
58+
Nvidia support only works on 580 and up full proprietary drivers (no MIT/GPL) with `nvidia-drm.modeset=1` kernel parameter set. You must ensure the card is initialized before running a container so on headless systems run `nvidia-modprobe --modeset` from the host even with this kernel parameter set, this only needs to be run once per boot.
59+
60+
These modifications for NVIDIA are for Wayland to function properly and have nothing to do with the Docker runtime. If you are using compose it is important to run `sudo nvidia-ctk runtime configure --runtime=docker` this is a persistent setting and only needs to run once.
5061

5162
## Gamepad support
5263

@@ -182,6 +193,41 @@ The `DRINODE` environment variable can be used to point to a specific GPU.
182193

183194
DRI3 will work on aarch64 given the correct drivers are installed inside the container for your chipset.
184195

196+
### Nvidia GPU Support
197+
198+
**Note: Nvidia support is not available for Alpine-based images.**
199+
200+
Nvidia GPU support is available by leveraging Zink for OpenGL. When a compatible Nvidia GPU is passed through, it will also be **automatically utilized for hardware-accelerated video stream encoding** (using the `x264enc` full-frame profile), significantly reducing CPU load.
201+
202+
Enable Nvidia support with the following runtime flags:
203+
204+
| Flag | Description |
205+
| :----: | --- |
206+
| `--gpus all` | Passes all available host GPUs to the container. This can be filtered to specific GPUs. |
207+
| `--runtime nvidia` | Specifies the Nvidia runtime, which provides the necessary drivers and tools from the host. |
208+
209+
For Docker Compose, you must first configure the Nvidia runtime as the default on the host:
210+
211+
```
212+
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
213+
sudo systemctl restart docker
214+
```
215+
216+
Then, assign the GPU to the service in your `compose.yaml`:
217+
218+
```
219+
services:
220+
steam:
221+
image: lscr.io/linuxserver/steam:latest
222+
deploy:
223+
resources:
224+
reservations:
225+
devices:
226+
- driver: nvidia
227+
count: 1
228+
capabilities: [compute,video,graphics,utility]
229+
```
230+
185231
### Application Management
186232

187233
There are two methods for installing applications inside the container: PRoot Apps (recommended for persistence) and Native Apps.
@@ -655,4 +701,5 @@ To help with development, we generate this dependency graph.
655701

656702
## Versions
657703

704+
* **17.01.26:** - Document Nvidia support.
658705
* **09.01.26:** - Initial Version.

0 commit comments

Comments
 (0)