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

オープン
#8 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
活発
技術スタック
docker
領域
devops, game-dev

調査の方向性

提供された Docker Compose 構成とコンテナログから始め、PIXELFLUX_WAYLAND を有効にした場合と無効にした場合の動作を比較します。報告された Quadro P600、NVIDIA ドライバー、Wayland セッション、イメージ設定を使用して、黒い画面とゲーム速度の低下を再現します。Wayland 上で Dolphin が報告されたパフォーマンス低下なしに正しくレンダリングできれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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...
主要言語
Dockerfile
スター
13
フォーク
1
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

似ている issue

DevOps の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。