Skip to content

[BUG] dolphin won't run unless I disable WAYLAND #8

Description

@tf486486-design

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Hello,

I can't get docker dolphin to work correctly with WAYLAND
I have a black screen unless I disable Wayland "PIXELFLUX_WAYLAND=false"
But with PIXELFLUX_WAYLAND=false, still using old X11 and games are running at 15% speed.

Still using a very old NVIDIA QUADRO P600 GPU (but it should work with dolphin), a Ryzen 7 2700x CPU and 8GB of RAM.

The compose file:
....
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- PIXELFLUX_WAYLAND=false
- AUTO_GPU=true
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
devices:
- /dev/dri:/dev/dri
volumes:
- /data/dolphin/config:/config
ports:
- 3000:3000
- 3001:3001
restart: unless-stopped
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [compute,video,graphics,utility]

And the driver installed:
| NVIDIA-SMI 550.163.01 Driver Version: 550.163.01 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 Quadro P600 Off | 00000000:01:00.0 Off | N/A |
| 34% 34C P8 N/A / N/A | 14MiB / 2048MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 596695 G labwc 1MiB |

Expected Behavior

No response

Steps To Reproduce

.

Environment

- OS:
- How docker service was installed:

CPU architecture

x86-64

Docker creation

services:
  dolphin:
    image: lscr.io/linuxserver/dolphin:latest
    container_name: dolphin
    shm_size: "2gb"
    security_opt:
      - seccomp=unconfined
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - PIXELFLUX_WAYLAND=false
     # - DRINODE=/dev/dri/renderD128
     # - DRI_NODE=/dev/dri/renderD128
      - AUTO_GPU=true
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all
    devices:
      - /dev/dri:/dev/dri
    volumes:
      - /data/dolphin/config:/config 
    ports:
      - 3000:3000
      - 3001:3001
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [compute,video,graphics,utility]

Container logs

INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 1.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 2.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 2.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 2.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 2.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 3.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 3.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 3.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 3.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock Client  (JS): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock Client  (JS): Added to active list. Total JS clients: 1.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 4.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 5.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock Client  (JS): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock Client  (JS): Added to active list. Total JS clients: 1.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 4.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 5.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock Client  (JS): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock Client  (JS): Added to active list. Total JS clients: 1.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 4.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 5.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock Client  (JS): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock Client  (JS): Added to active list. Total JS clients: 1.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 4.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 5.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 6.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock Client  (JS): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock Client  (JS): Added to active list. Total JS clients: 2.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1000.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 7.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock Client  (JS): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock Client  (JS): Added to active list. Total JS clients: 2.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1001.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 6.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock Client  (JS): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock Client  (JS): Added to active list. Total JS clients: 2.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1002.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 6.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock Client  (JS): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock Client  (JS): Added to active list. Total JS clients: 2.
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Received arch specifier: 8 bytes (64-bit).
INFO:selkies_gamepad:Gamepad /tmp/selkies_event1003.sock Client  (EVDEV): Added to active list. Total EVDEV clients: 6.
INFO:data_websocket:Legacy client ('127.0.0.1', 38456) connected. Role: controller, Slot: None
INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 38456)
INFO:data_websocket:Attempting to establish PulseAudio connection...
INFO:data_websocket:PulseAudio connection established.
INFO:data_websocket:Registering new client for display: primary
INFO:data_websocket:Applying and sanitizing client settings for 'primary' (initial=True)
INFO:data_websocket:DPI changed from None to 120. Applying system-level change.
INFO:data_websocket:Wayland Settings: Executing 'wlr-randr --output WL-1 --scale 1.25' on wayland-0
INFO:data_websocket:Initial setup or dimensional change detected for 'primary'. Performing full display reconfiguration.
INFO:data_websocket:Starting display reconfiguration...
INFO:data_websocket:Calculating new extended desktop layout from ALL clients...
INFO:data_websocket:Layout calculated: Total Size=1920x876. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1920, 'h': 876}}
INFO:data_websocket:Starting separate capture instances for each ACTIVE display region...
INFO:data_websocket:Client 'primary' is active. Starting its capture.
INFO:data_websocket:Preparing to start capture for display='primary': Res=1920x876, Offset=0x0
INFO:data_websocket:Registered Wayland cursor callback for 'primary'
[Wayland] Configuring Output: 1920x876 @ 60.00 FPS (Scale 1.00)
INFO:data_websocket:Video chunk sender started for display 'primary'.
INFO:data_websocket:SUCCESS: Capture started for 'primary'.
INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1920, "height": 876}
INFO:data_websocket:Broadcasting display config update: DISPLAY_CONFIG_UPDATE,{"type": "display_config_update", "displays": ["primary"]}
INFO:data_websocket:Display reconfiguration finished successfully.
INFO:data_websocket:Reconfiguration process complete (state unlocked).
[Wayland] CPU encoding selected (use_cpu=true or encode_node_index=-1).
[Wayland] Decision: Readback path (encode thread) active.
INFO:data_websocket:Initial client settings message processed by ws_handler.
INFO:data_websocket:Initial setup: Primary client connected, audio not active, attempting start.
INFO:data_websocket:Starting pcmflux audio pipeline...
INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2
Stream settings active -> Res: 1920x876 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
[pcmflux] Attempting to connect to PulseAudio device: output.monitor (latency 10ms)
[pcmflux] SUCCESS: Connected to PulseAudio.
[pcmflux] SUCCESS: Opus encoder created (2 ch).
[pcmflux] Capture loop started. Device: output.monitor, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off
INFO:data_websocket:pcmflux audio capture started successfully.
INFO:data_websocket:pcmflux audio chunk broadcasting task started.
INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
INFO:data_websocket:Received redundant resize request for primary (1920x876). No action taken.
[pcmflux] First non-silent audio chunk detected! Encoding...

Activity

  1. github-actions commented on Sep 10, 2026

    @github-actions

    Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

  2. thelamer commented on Sep 10, 2026

    @thelamer
    Member

    Your driver is too old to use the wayland mode 555 is the minimum as far as I know 585 is better and 595+ is fully flushed out and my goto.

    You can try out linuxserver/webtop:dev and see if head has any fixes for you, there has been a lot of development to support old cards but afaik that was only back to pascal.

  3. thelamer commented on Sep 10, 2026

    @thelamer
    Member

    Looks like 580.178.04 is the latest binary driver supported by your card, download that run file from nvidia and install that. Then test dolphin and the dev image.

    This is how I run stuff for nvidia:

    docker run --rm -it \
      --shm-size=1gb \
      -p 3001:3001 \
      --runtime nvidia \
      --gpus all \
      --device /dev/nvidia-modeset \
      lscr.io/linuxserver/webtop:dev bash
    
  4. tf486486-design commented on Sep 11, 2026

    @tf486486-design
    Author

    Thanks for your answer, the problem is I can't install a more recent driver than the one I have

    nvidia-smi
    NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

    sudo modprobe nvidia
    modprobe: ERROR: could not insert 'nvidia': No such device

    It seems my old QUADRO P600 card isn't supporting 550+ version of the driver

  5. thelamer commented on Sep 11, 2026

    @thelamer
    Member

    I dunno that is what Nvidia's website lists for your card, they are rarely wrong, you might need to upgrade your kernel or ensure you are installing the binary drivers properly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions