[GH-ISSUE #233] Gstreamer Nvidia encoders are not used when multiple Nvidia GPUs are present #157

Closed
opened 2026-10-15 12:57:22 +00:00 by bsakaguchi · 28 comments
Owner

Originally created by @zexi on GitHub (Jul 28, 2025).
Original GitHub issue: https://github.com/games-on-whales/wolf/issues/233

In an environment with 8 Nvidia GPUs, I can successfully utilize a specific GPU for rendering by passing -e WOLF_RENDER_NODE=/dev/dri/renderD129 and --device /dev/nvidia1 parameters via the script below.

However, Gstreamer's output stream always uses software encoding instead of hardware nvcodec hardware encoding. What troubleshooting steps should I take to enable nvcodec hardware encoding?

Image
  • script:
#!/bin/bash                                                                                                                                                                                                        
                                                                                                                                                                                                                   
sudo nvidia-container-cli --load-kmods info                                                                                                                                                                        
                                                                                                                                                                                                                   
docker rm -f wolf                                                                                                                                                                                                  
                                                                                                                                                                                                                   
HTTPS_PORT=20000                                                                                                                                                                                                   
                                                                                                                                                                                                                   
HTTP_PORT=$((HTTPS_PORT+5))
CONTROL_PORT=$((HTTPS_PORT+15)) # udp
VIDEO_PING_PORT=$((HTTPS_PORT+116)) # udp
AUDIO_PING_PORT=$((HTTPS_PORT+216)) # udp
RTSP_SETUP_PORT=$((HTTPS_PORT+26))

docker run \
    --name wolf \
    --network host \
    -e WOLF_HTTP_PORT=$HTTP_PORT \
    -e WOLF_HTTPS_PORT=$HTTPS_PORT \
    -e WOLF_CONTROL_PORT=$CONTROL_PORT \
    -e WOLF_RTSP_SETUP_PORT=$RTSP_SETUP_PORT \
    -e WOLF_VIDEO_PING_PORT=$VIDEO_PING_PORT \
    -e WOLF_AUDIO_PING_PORT=$AUDIO_PING_PORT \
    -e XDG_RUNTIME_DIR=/tmp/sockets \
    -v /tmp/sockets:/tmp/sockets:rw \
    -e NVIDIA_DRIVER_VOLUME_NAME=nvidia-driver-vol \ 
    -v nvidia-driver-vol:/usr/nvidia:rw \
    -e HOST_APPS_STATE_FOLDER=/etc/wolf \
    -v /etc/wolf:/etc/wolf:rw \
    -v /var/run/docker.sock:/var/run/docker.sock:rw \
    -e WOLF_LOG_LEVEL=debug \
    -e WOLF_RENDER_NODE=/dev/dri/renderD129 \
    --device /dev/nvidia-uvm \
    --device /dev/nvidia-uvm-tools \
    --device /dev/dri/ \
    --device /dev/nvidia-caps/nvidia-cap1 \
    --device /dev/nvidia-caps/nvidia-cap2 \
    --device /dev/nvidiactl \
    --device /dev/nvidia1 \
    --device /dev/nvidia-modeset \
    --device /dev/uinput \
    --device /dev/uhid \
    -v /dev/:/dev/:rw \
    -v /run/udev:/run/udev:rw \
    --device-cgroup-rule "c 13:* rmw" \
    ghcr.io/games-on-whales/wolf:stable
Logs
[2025-07-28 11:23:50]                                                                                                                                                                                                                                                                                                                                                                                                                   
[2025-07-28 11:23:50] [ /etc/cont-init.d/10-setup_user.sh: executing... ]                                                                                                                                                                                                                                                                                                                                                               
[2025-07-28 11:23:50] **** Configure default user ****                                                                                                                                                                                                                                                                                                                                                                                  
[2025-07-28 11:23:50] Container running as root. Nothing to do.                                                                                                                                                                                                                                                                                                                                                                         
[2025-07-28 11:23:50] DONE                                                                                                                                                                                                                                                                                                                                                                                                              
[2025-07-28 11:23:50]                                                                                                                                                                                                                                                                                                                                                                                                                   
[2025-07-28 11:23:50] [ /etc/cont-init.d/15-setup_devices.sh: executing... ]                                                                                                                                                                                                                                                                                                                                                            
[2025-07-28 11:23:50] **** Configure devices ****                                                                                                                                                                                                                                                                                                                                                                                       
[2025-07-28 11:23:50] Exec device groups                                                                                                                                                                                                                                                                                                                                                                                                
[2025-07-28 11:23:50] Adding user 'root' to groups: systemd-journal,root                                                                                                                                                                                                                                                                                                                                                                
[2025-07-28 11:23:50] DONE                                                                                                                                                                                                                                                                                                                                                                                                              
[2025-07-28 11:23:50]                                                                                                                                                                                                                                                                                                                                                                                                                   
[2025-07-28 11:23:50] [ /etc/cont-init.d/30-nvidia.sh: executing... ]                                                                                                                                                                                                                                                                                                                                                                   
[2025-07-28 11:23:50] Nvidia driver volume detected                                                                                                                                                                                                                                                                                                                                                                                     
[2025-07-28 11:23:50] [nvidia] Add Vulkan ICD                                                                                                                                                                                                                                                                                                                                                                                           
[2025-07-28 11:23:50] [nvidia] Add EGL external platform                                                                                                                                                                                                                                                                                                                                                                                
[2025-07-28 11:23:50] [nvidia] Add egl-vendor                                                                                                                                                                                                                                                                                                                                                                                           
[2025-07-28 11:23:50] [nvidia] Add gbm backend                                                                                                                                                                                                                                                                                                                                                                                          
[2025-07-28 11:23:50]                                                                                                                                                                                                                                                                                                                                                                                                                   
[2025-07-28 11:23:50] [ /etc/cont-init.d/init-gamescope.sh: executing... ]                                                                                                                                                                                                                                                                                                                                                              
[2025-07-28 11:23:50] Launching the container's startup script as user 'root'                                                                                                                                                                                                                                                                                                                                                           
0:00:00.121800909   239 0x55588fc3ae70 WARN               cudanvrtc gstcudanvrtc.cpp:179:gst_cuda_nvrtc_load_library_once: Failed to load 'nvrtcGetCUBINSize', 'nvrtcGetCUBINSize': /usr/local/nvidia/lib/libnvrtc.so: undefined symbol: nvrtcGetCUBINSize                                                                                                                                                                              
0:00:00.457783657   239 0x55588fc3ae70 WARN           nvh264encoder gstnvh264encoder.cpp:2411:gst_nv_h264_encoder_register_cuda:<cudacontext0> Failed to open session                                                                                                                                                                                                                                                                   
0:00:00.459831899   239 0x55588fc3ae70 WARN           nvh265encoder gstnvh265encoder.cpp:2469:gst_nv_h265_encoder_register_cuda:<cudacontext0> Failed to open session                                                                                                                                                                                                                                                                   
0:00:00.461875300   239 0x55588fc3ae70 WARN            nvav1encoder gstnvav1encoder.cpp:1610:gst_nv_av1_encoder_register_cuda:<cudacontext0> Failed to open session                                                                                                                                                                                                                                                                     
0:00:00.588076215   239 0x55588fc3ae70 WARN                 default gstvaapi.c:232:plugin_init: Cannot create a VA display                                                                                                                                                                                                                                                                                                              
0:00:00.602044215   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm0> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.602131245   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm1> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.602210556   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm2> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.602308336   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm3> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.602387627   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm4> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.602486077   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm5> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.602570208   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm6> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.602667288   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm7> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.630935151   239 0x55588fc3ae70 WARN             msdkcontext gstmsdkcontext.c:178:gst_msdk_context_use_vaapi: Couldn't find a drm device node to open                                                                                                                                                                                                                                                                            
0:00:00.644631079   239 0x55588fc3ae70 WARN      GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise                                                                                                                                                                                                                
0:00:00.651132127   239 0x55588fc3ae70 WARN                 default ges-meta-container.c:238:_set_value:<GESAsset@0x555890397950> Could not set value on item: format-version                                                                                                                                                                                                                                                           
0:00:00.651154877   239 0x55588fc3ae70 WARN                 default ges-meta-container.c:238:_set_value:<GESAsset@0x55589039e960> Could not set value on item: format-version                                                                                                                                                                                                                                                           
0:00:00.651170697   239 0x55588fc3ae70 WARN                 default ges-meta-container.c:238:_set_value:<GESAsset@0x55589039f120> Could not set value on item: format-version                                                                                                                                                                                                                                                           
0:00:00.651604019   239 0x55588fc3ae70 WARN               structure gststructure.c:3372:priv_gst_structure_parse_fields: Failed to find delimiter, r=mimetype                                                                                                                                                                                                                                                                           
0:00:00.691717319   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm8> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.691865830   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm9> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                      
0:00:00.691970391   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm10> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                     
0:00:00.692098032   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm11> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                     
0:00:00.692206842   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm12> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                     
0:00:00.692344413   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm13> vaInitialize: unknown libva error                                                                                                                                                                                                                                                                     
0:00:00.692454634   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm14> vaInitialize: unknown libva error                                                                                                                                                          
0:00:00.692595745   239 0x55588fc3ae70 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm15> vaInitialize: unknown libva error                                                                                                                                                          
0:00:00.696254886   239 0x55588fc3ae70 WARN      GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise                            
0:00:00.699517025     1 0x557a55b414d0 WARN            GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so)
0:00:00.700960302   239 0x55588fc3ae70 WARN      GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise                                                                                                      
0:00:00.703723988   239 0x55588fc3ae70 WARN      GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise                                                                                                              
0:00:00.709228691     1 0x557a55b414d0 WARN            GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so)
10:23:51.728851325 INFO  | Gstreamer version: 1.26.2-0                                                                                                                                                                
10:23:51.729838651 DEBUG | XDG_RUNTIME_DIR=/tmp/sockets                                                                                                                                                            
10:23:51.729871581 INFO  | Reading config file from: /etc/wolf/cfg/config.toml                                                                                                                                     
10:23:51.742760475 DEBUG | /dev/dri/renderD129 vendor: NVIDIA Corporation                                                                                                                                          
0:00:00.781077583     1 0x557a55b414d0 WARN     GST_ELEMENT_FACTORY gstelementfactory.c:712:gst_element_factory_make_with_properties: no such element factory "nvh264enc"!                                                                                                                                                   
10:23:51.742837425 DEBUG | Skipping QUICKSYNC encoder, not an Intel GPU (0)                                                                                                                                           
10:23:51.742862175 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0)                                                                                                                                     
10:23:51.742889995 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0)                                                                                                                                     
10:23:51.744371214 INFO  | Using H264 encoder: x264                                                                                                                                                                
10:23:51.744384444 WARN  | Software H264 encoder detected                                                                                                                                                          
0:00:00.782680582     1 0x557a55b414d0 WARN     GST_ELEMENT_FACTORY gstelementfactory.c:712:gst_element_factory_make_with_properties: no such element factory "nvh265enc"!                                                                                                                                                   
10:23:51.744437064 DEBUG | Skipping QUICKSYNC encoder, not an Intel GPU (0)                                                                                                                                           
10:23:51.744466064 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0)                                                                                                                                     
10:23:51.744496005 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0)                                                                                                                                     
10:23:51.745350610 INFO  | Using HEVC encoder: x265                                                                                                                                                                
10:23:51.745363390 WARN  | Software HEVC encoder detected                                                             
0:00:00.783660418     1 0x557a55b414d0 WARN     GST_ELEMENT_FACTORY gstelementfactory.c:712:gst_element_factory_make_with_properties: no such element factory "nvav1enc"!                                                                                                                                                    
10:23:51.745418950 DEBUG | Skipping QUICKSYNC encoder, not an Intel GPU (0)                                                                                                                                           
10:23:51.745448530 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0)                                                       
10:23:51.745475380 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0)                                                       
10:23:51.745944183 INFO  | Using AV1 encoder: aom                                                                                    
10:23:51.745957133 WARN  | Software AV1 encoder detected                                                                                     
10:23:51.745986343 INFO  | Using zero copy pipeline on Nvidia (/dev/dri/renderD129)                                                           
Originally created by @zexi on GitHub (Jul 28, 2025). Original GitHub issue: https://github.com/games-on-whales/wolf/issues/233 In an environment with 8 Nvidia GPUs, I can successfully utilize a specific GPU for rendering by passing `-e WOLF_RENDER_NODE=/dev/dri/renderD129` and `--device /dev/nvidia1` parameters via the script below. However, Gstreamer's output stream always uses software encoding instead of hardware nvcodec hardware encoding. What troubleshooting steps should I take to enable nvcodec hardware encoding? <img width="1886" height="750" alt="Image" src="https://github.com/user-attachments/assets/391223dc-e268-4e99-8110-c515fc6212f3" /> - script: ```bash #!/bin/bash sudo nvidia-container-cli --load-kmods info docker rm -f wolf HTTPS_PORT=20000 HTTP_PORT=$((HTTPS_PORT+5)) CONTROL_PORT=$((HTTPS_PORT+15)) # udp VIDEO_PING_PORT=$((HTTPS_PORT+116)) # udp AUDIO_PING_PORT=$((HTTPS_PORT+216)) # udp RTSP_SETUP_PORT=$((HTTPS_PORT+26)) docker run \ --name wolf \ --network host \ -e WOLF_HTTP_PORT=$HTTP_PORT \ -e WOLF_HTTPS_PORT=$HTTPS_PORT \ -e WOLF_CONTROL_PORT=$CONTROL_PORT \ -e WOLF_RTSP_SETUP_PORT=$RTSP_SETUP_PORT \ -e WOLF_VIDEO_PING_PORT=$VIDEO_PING_PORT \ -e WOLF_AUDIO_PING_PORT=$AUDIO_PING_PORT \ -e XDG_RUNTIME_DIR=/tmp/sockets \ -v /tmp/sockets:/tmp/sockets:rw \ -e NVIDIA_DRIVER_VOLUME_NAME=nvidia-driver-vol \ -v nvidia-driver-vol:/usr/nvidia:rw \ -e HOST_APPS_STATE_FOLDER=/etc/wolf \ -v /etc/wolf:/etc/wolf:rw \ -v /var/run/docker.sock:/var/run/docker.sock:rw \ -e WOLF_LOG_LEVEL=debug \ -e WOLF_RENDER_NODE=/dev/dri/renderD129 \ --device /dev/nvidia-uvm \ --device /dev/nvidia-uvm-tools \ --device /dev/dri/ \ --device /dev/nvidia-caps/nvidia-cap1 \ --device /dev/nvidia-caps/nvidia-cap2 \ --device /dev/nvidiactl \ --device /dev/nvidia1 \ --device /dev/nvidia-modeset \ --device /dev/uinput \ --device /dev/uhid \ -v /dev/:/dev/:rw \ -v /run/udev:/run/udev:rw \ --device-cgroup-rule "c 13:* rmw" \ ghcr.io/games-on-whales/wolf:stable ``` <details> <summary>Logs</summary> ``` [2025-07-28 11:23:50] [2025-07-28 11:23:50] [ /etc/cont-init.d/10-setup_user.sh: executing... ] [2025-07-28 11:23:50] **** Configure default user **** [2025-07-28 11:23:50] Container running as root. Nothing to do. [2025-07-28 11:23:50] DONE [2025-07-28 11:23:50] [2025-07-28 11:23:50] [ /etc/cont-init.d/15-setup_devices.sh: executing... ] [2025-07-28 11:23:50] **** Configure devices **** [2025-07-28 11:23:50] Exec device groups [2025-07-28 11:23:50] Adding user 'root' to groups: systemd-journal,root [2025-07-28 11:23:50] DONE [2025-07-28 11:23:50] [2025-07-28 11:23:50] [ /etc/cont-init.d/30-nvidia.sh: executing... ] [2025-07-28 11:23:50] Nvidia driver volume detected [2025-07-28 11:23:50] [nvidia] Add Vulkan ICD [2025-07-28 11:23:50] [nvidia] Add EGL external platform [2025-07-28 11:23:50] [nvidia] Add egl-vendor [2025-07-28 11:23:50] [nvidia] Add gbm backend [2025-07-28 11:23:50] [2025-07-28 11:23:50] [ /etc/cont-init.d/init-gamescope.sh: executing... ] [2025-07-28 11:23:50] Launching the container's startup script as user 'root' 0:00:00.121800909 239 0x55588fc3ae70 WARN cudanvrtc gstcudanvrtc.cpp:179:gst_cuda_nvrtc_load_library_once: Failed to load 'nvrtcGetCUBINSize', 'nvrtcGetCUBINSize': /usr/local/nvidia/lib/libnvrtc.so: undefined symbol: nvrtcGetCUBINSize 0:00:00.457783657 239 0x55588fc3ae70 WARN nvh264encoder gstnvh264encoder.cpp:2411:gst_nv_h264_encoder_register_cuda:<cudacontext0> Failed to open session 0:00:00.459831899 239 0x55588fc3ae70 WARN nvh265encoder gstnvh265encoder.cpp:2469:gst_nv_h265_encoder_register_cuda:<cudacontext0> Failed to open session 0:00:00.461875300 239 0x55588fc3ae70 WARN nvav1encoder gstnvav1encoder.cpp:1610:gst_nv_av1_encoder_register_cuda:<cudacontext0> Failed to open session 0:00:00.588076215 239 0x55588fc3ae70 WARN default gstvaapi.c:232:plugin_init: Cannot create a VA display 0:00:00.602044215 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm0> vaInitialize: unknown libva error 0:00:00.602131245 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm1> vaInitialize: unknown libva error 0:00:00.602210556 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm2> vaInitialize: unknown libva error 0:00:00.602308336 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm3> vaInitialize: unknown libva error 0:00:00.602387627 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm4> vaInitialize: unknown libva error 0:00:00.602486077 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm5> vaInitialize: unknown libva error 0:00:00.602570208 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm6> vaInitialize: unknown libva error 0:00:00.602667288 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm7> vaInitialize: unknown libva error 0:00:00.630935151 239 0x55588fc3ae70 WARN msdkcontext gstmsdkcontext.c:178:gst_msdk_context_use_vaapi: Couldn't find a drm device node to open 0:00:00.644631079 239 0x55588fc3ae70 WARN GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise 0:00:00.651132127 239 0x55588fc3ae70 WARN default ges-meta-container.c:238:_set_value:<GESAsset@0x555890397950> Could not set value on item: format-version 0:00:00.651154877 239 0x55588fc3ae70 WARN default ges-meta-container.c:238:_set_value:<GESAsset@0x55589039e960> Could not set value on item: format-version 0:00:00.651170697 239 0x55588fc3ae70 WARN default ges-meta-container.c:238:_set_value:<GESAsset@0x55589039f120> Could not set value on item: format-version 0:00:00.651604019 239 0x55588fc3ae70 WARN structure gststructure.c:3372:priv_gst_structure_parse_fields: Failed to find delimiter, r=mimetype 0:00:00.691717319 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm8> vaInitialize: unknown libva error 0:00:00.691865830 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm9> vaInitialize: unknown libva error 0:00:00.691970391 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm10> vaInitialize: unknown libva error 0:00:00.692098032 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm11> vaInitialize: unknown libva error 0:00:00.692206842 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm12> vaInitialize: unknown libva error 0:00:00.692344413 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm13> vaInitialize: unknown libva error 0:00:00.692454634 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm14> vaInitialize: unknown libva error 0:00:00.692595745 239 0x55588fc3ae70 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm15> vaInitialize: unknown libva error 0:00:00.696254886 239 0x55588fc3ae70 WARN GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise 0:00:00.699517025 1 0x557a55b414d0 WARN GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so) 0:00:00.700960302 239 0x55588fc3ae70 WARN GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise 0:00:00.703723988 239 0x55588fc3ae70 WARN GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise 0:00:00.709228691 1 0x557a55b414d0 WARN GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so) 10:23:51.728851325 INFO | Gstreamer version: 1.26.2-0 10:23:51.729838651 DEBUG | XDG_RUNTIME_DIR=/tmp/sockets 10:23:51.729871581 INFO | Reading config file from: /etc/wolf/cfg/config.toml 10:23:51.742760475 DEBUG | /dev/dri/renderD129 vendor: NVIDIA Corporation 0:00:00.781077583 1 0x557a55b414d0 WARN GST_ELEMENT_FACTORY gstelementfactory.c:712:gst_element_factory_make_with_properties: no such element factory "nvh264enc"! 10:23:51.742837425 DEBUG | Skipping QUICKSYNC encoder, not an Intel GPU (0) 10:23:51.742862175 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0) 10:23:51.742889995 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0) 10:23:51.744371214 INFO | Using H264 encoder: x264 10:23:51.744384444 WARN | Software H264 encoder detected 0:00:00.782680582 1 0x557a55b414d0 WARN GST_ELEMENT_FACTORY gstelementfactory.c:712:gst_element_factory_make_with_properties: no such element factory "nvh265enc"! 10:23:51.744437064 DEBUG | Skipping QUICKSYNC encoder, not an Intel GPU (0) 10:23:51.744466064 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0) 10:23:51.744496005 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0) 10:23:51.745350610 INFO | Using HEVC encoder: x265 10:23:51.745363390 WARN | Software HEVC encoder detected 0:00:00.783660418 1 0x557a55b414d0 WARN GST_ELEMENT_FACTORY gstelementfactory.c:712:gst_element_factory_make_with_properties: no such element factory "nvav1enc"! 10:23:51.745418950 DEBUG | Skipping QUICKSYNC encoder, not an Intel GPU (0) 10:23:51.745448530 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0) 10:23:51.745475380 DEBUG | Skipping VAAPI encoder, not an Intel or AMD GPU (0) 10:23:51.745944183 INFO | Using AV1 encoder: aom 10:23:51.745957133 WARN | Software AV1 encoder detected 10:23:51.745986343 INFO | Using zero copy pipeline on Nvidia (/dev/dri/renderD129) ``` </details>
bsakaguchi 2026-10-15 12:57:22 +00:00
Author
Owner

@ABeltramo commented on GitHub (Jul 28, 2025):

First off, I recognise that we don't have great support for multiple GPUs of the same vendor. It's something that I'd like to improve in the near future, but I have a few other important PRs in the work right now..

The specific issue in your case is most likely above:

0:00:00.457783657   239 0x55588fc3ae70 WARN           nvh264encoder gstnvh264encoder.cpp:2411:gst_nv_h264_encoder_register_cuda:<cudacontext0> Failed to open session                                                                                                                                                                                                                                                                   
0:00:00.459831899   239 0x55588fc3ae70 WARN           nvh265encoder gstnvh265encoder.cpp:2469:gst_nv_h265_encoder_register_cuda:<cudacontext0> Failed to open session                                                                                                                                                                                                                                                                   
0:00:00.461875300   239 0x55588fc3ae70 WARN            nvav1encoder gstnvav1encoder.cpp:1610:gst_nv_av1_encoder_register_cuda:<cudacontext0> Failed to open session 

you might be able to get more info by lowering the Gstreamer log level with the env variable GST_DEBUG=5 which will be much more verbose, if you could post the logs again I might be able to help you better.

The first thing to check here is if the Nvidia driver volume is correctly setup and it matches the host driver version. My suggestion is to start from scratch:

# delete the current one
docker volume rm nvidia-driver
# re-create
curl https://raw.githubusercontent.com/games-on-whales/gow/master/images/nvidia-driver/Dockerfile | docker build -t gow/nvidia-driver:latest -f - --build-arg NV_VERSION=$(cat /sys/module/nvidia/version) .
docker create --rm --mount source=nvidia-driver-vol,destination=/usr/nvidia gow/nvidia-driver:latest sh
docker volume ls | grep nvidia-driver

Assuming that wasn't the issue, if I have to take a guess, I'd say that you aren't passing some specific Nvidia device like /dev/nvidiaX.


Once you'll fix that and Gstreamer can use CUDA to instantiate at least one HW encoder plugin, then you'll quickly have the issue of selecting which specific GPU to use for encoding. There are multiple ways to do that, the easiest is probably to edit the config.toml to use a specific nv{encoder}device{index}enc where index is the cuda device id (you should be able to get that easily via nvidia-smi) .
For HEVC (the most common encoder in Moonlight) you'll have to edit this line replacing nvh265enc with nvh265device1enc for the device with ID 1.

Ideally, that part will be automatically managed by Wolf to match the selected WOLF_RENDER_NODE

<!-- gh-comment-id:3128965800 --> @ABeltramo commented on GitHub (Jul 28, 2025): First off, I recognise that we don't have great support for multiple GPUs of the same vendor. It's something that I'd like to improve in the near future, but I have a few other important PRs in the work right now.. The specific issue in your case is most likely above: ``` 0:00:00.457783657 239 0x55588fc3ae70 WARN nvh264encoder gstnvh264encoder.cpp:2411:gst_nv_h264_encoder_register_cuda:<cudacontext0> Failed to open session 0:00:00.459831899 239 0x55588fc3ae70 WARN nvh265encoder gstnvh265encoder.cpp:2469:gst_nv_h265_encoder_register_cuda:<cudacontext0> Failed to open session 0:00:00.461875300 239 0x55588fc3ae70 WARN nvav1encoder gstnvav1encoder.cpp:1610:gst_nv_av1_encoder_register_cuda:<cudacontext0> Failed to open session ``` you might be able to get more info by lowering the Gstreamer log level with the env variable `GST_DEBUG=5` which will be much more verbose, **if you could post the logs again I might be able to help you better**. The first thing to check here is if the Nvidia driver volume is correctly setup and it matches the host driver version. My suggestion is to start from scratch: ```bash # delete the current one docker volume rm nvidia-driver # re-create curl https://raw.githubusercontent.com/games-on-whales/gow/master/images/nvidia-driver/Dockerfile | docker build -t gow/nvidia-driver:latest -f - --build-arg NV_VERSION=$(cat /sys/module/nvidia/version) . docker create --rm --mount source=nvidia-driver-vol,destination=/usr/nvidia gow/nvidia-driver:latest sh docker volume ls | grep nvidia-driver ``` Assuming that wasn't the issue, if I have to take a guess, I'd say that you aren't passing some specific Nvidia device like `/dev/nvidiaX`. ------- Once you'll fix that and Gstreamer can use CUDA to instantiate at least one HW encoder plugin, then you'll quickly have the issue of selecting which specific GPU to use for encoding. There are multiple ways to do that, the easiest is probably to edit the `config.toml` to use a specific `nv{encoder}device{index}enc` where `index` is the cuda device id (you should be able to get that easily via `nvidia-smi`) . For `HEVC` (the most common encoder in Moonlight) you'll have to edit [this line](https://github.com/games-on-whales/wolf/blob/1a6327d6e251d808581b825edaf5ed81967ff3f0/src/moonlight-server/state/default/config.v4.toml#L242) replacing `nvh265enc` with `nvh265device1enc` for the device with ID 1. Ideally, that part will be automatically managed by Wolf to match the selected `WOLF_RENDER_NODE`
Author
Owner

@zexi commented on GitHub (Jul 29, 2025):

@ABeltramo Thanks for your response. I followed your guidance to perform troubleshooting, but the issue persists.

1. The Gstreamer log level with the env variable GST_DEBUG=5:

debug.log

2. The Nvidia driver volume:

The nvidia driver volume is the right version matching host version.

3. Passing the right /dev/nvidiaX

I first located the PCI address of renderD129 as 0000:41:00.0 from the /dev/dri/by-path/ directory.

Then, by examining the file cat /proc/driver/nvidia/gpus/0000:41:00.0/information, I found that the Device Minor is 1.

Does this confirm that passing /dev/nvidia1 is correct? However, the nvidia-smi command shows the index of the GPU at 41:00.0 as 2.

Below is the output of the relevant commands:

$ ls -alh /dev/dri/by-path/ | grep -C 1 129
lrwxrwxrwx 1 root root   8  7月25日 14:12 pci-0000:41:00.0-card -> ../card2
lrwxrwxrwx 1 root root  13  7月25日 14:12 pci-0000:41:00.0-render -> ../renderD129
lrwxrwxrwx 1 root root   8  7月25日 14:12 pci-0000:61:00.0-card -> ../card1

$ cat /proc/driver/nvidia/gpus/0000\:41\:00.0/information 
Model:           NVIDIA GeForce RTX 4060
IRQ:             415
GPU UUID:        GPU-a5c85122-38f0-06ef-1fbf-8831936ede34
Video BIOS:      95.07.36.00.04
Bus Type:        PCIe
DMA Size:        47 bits
DMA Mask:        0x7fffffffffff
Bus Location:    0000:41:00.0
Device Minor:    1
GPU Firmware:    570.133.07
GPU Excluded:    No

$ nvidia-smi 
Tue Jul 29 17:51:19 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.133.07             Driver Version: 570.133.07     CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| 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  NVIDIA GeForce RTX 4060        Off |   00000000:01:00.0 Off |                  N/A |
| 40%   33C    P8            N/A  /  115W |       2MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA GeForce RTX 4060        Off |   00000000:23:00.0 Off |                  N/A |
| 41%   32C    P8            N/A  /  115W |       2MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   2  NVIDIA GeForce RTX 4060        Off |   00000000:41:00.0 Off |                  N/A |
| 40%   32C    P8            N/A  /  115W |       2MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   3  NVIDIA GeForce RTX 4060        Off |   00000000:61:00.0 Off |                  N/A |
| 41%   31C    P8            N/A  /  115W |       2MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   4  NVIDIA GeForce RTX 4060        Off |   00000000:81:00.0 Off |                  N/A |
| 41%   31C    P8            N/A  /  115W |       2MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   5  NVIDIA GeForce RTX 4060        Off |   00000000:A1:00.0 Off |                  N/A |
| 41%   31C    P8            N/A  /  115W |       2MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   6  NVIDIA GeForce RTX 4060        Off |   00000000:C1:00.0 Off |                  N/A |
| 40%   31C    P8            N/A  /  115W |       2MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   7  NVIDIA GeForce RTX 4060        Off |   00000000:E1:00.0 Off |                  N/A |
| 40%   30C    P8            N/A  /  115W |       2MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

Selecting specific GPU to use for encoding

After I modified this line to nvh265device1enc, software encoding was still being used.

Are there any other details I should provide? This machine is equipped with 8 GPUs, and I'm available to collaborate on testing multi-GPU scenarios.

<!-- gh-comment-id:3131770232 --> @zexi commented on GitHub (Jul 29, 2025): @ABeltramo Thanks for your response. I followed your guidance to perform troubleshooting, but the issue persists. ### 1. The Gstreamer log level with the env variable GST_DEBUG=5: [debug.log](https://github.com/user-attachments/files/21485429/debug.log) ### 2. The Nvidia driver volume: The nvidia driver volume is the right version matching host version. ### 3. Passing the right /dev/nvidiaX I first located the PCI address of renderD129 as 0000:41:00.0 from the `/dev/dri/by-path/` directory. Then, by examining the file `cat /proc/driver/nvidia/gpus/0000:41:00.0/information`, I found that the Device Minor is 1. Does this confirm that passing /dev/nvidia1 is correct? However, the nvidia-smi command shows the index of the GPU at 41:00.0 as 2. Below is the output of the relevant commands: ```bash $ ls -alh /dev/dri/by-path/ | grep -C 1 129 lrwxrwxrwx 1 root root 8 7月25日 14:12 pci-0000:41:00.0-card -> ../card2 lrwxrwxrwx 1 root root 13 7月25日 14:12 pci-0000:41:00.0-render -> ../renderD129 lrwxrwxrwx 1 root root 8 7月25日 14:12 pci-0000:61:00.0-card -> ../card1 $ cat /proc/driver/nvidia/gpus/0000\:41\:00.0/information Model: NVIDIA GeForce RTX 4060 IRQ: 415 GPU UUID: GPU-a5c85122-38f0-06ef-1fbf-8831936ede34 Video BIOS: 95.07.36.00.04 Bus Type: PCIe DMA Size: 47 bits DMA Mask: 0x7fffffffffff Bus Location: 0000:41:00.0 Device Minor: 1 GPU Firmware: 570.133.07 GPU Excluded: No $ nvidia-smi Tue Jul 29 17:51:19 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 570.133.07 Driver Version: 570.133.07 CUDA Version: 12.8 | |-----------------------------------------+------------------------+----------------------+ | 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 NVIDIA GeForce RTX 4060 Off | 00000000:01:00.0 Off | N/A | | 40% 33C P8 N/A / 115W | 2MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 1 NVIDIA GeForce RTX 4060 Off | 00000000:23:00.0 Off | N/A | | 41% 32C P8 N/A / 115W | 2MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 2 NVIDIA GeForce RTX 4060 Off | 00000000:41:00.0 Off | N/A | | 40% 32C P8 N/A / 115W | 2MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 3 NVIDIA GeForce RTX 4060 Off | 00000000:61:00.0 Off | N/A | | 41% 31C P8 N/A / 115W | 2MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 4 NVIDIA GeForce RTX 4060 Off | 00000000:81:00.0 Off | N/A | | 41% 31C P8 N/A / 115W | 2MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 5 NVIDIA GeForce RTX 4060 Off | 00000000:A1:00.0 Off | N/A | | 41% 31C P8 N/A / 115W | 2MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 6 NVIDIA GeForce RTX 4060 Off | 00000000:C1:00.0 Off | N/A | | 40% 31C P8 N/A / 115W | 2MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 7 NVIDIA GeForce RTX 4060 Off | 00000000:E1:00.0 Off | N/A | | 40% 30C P8 N/A / 115W | 2MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+ ``` ### Selecting specific GPU to use for encoding After I modified [this line](https://github.com/games-on-whales/wolf/blob/1a6327d6e251d808581b825edaf5ed81967ff3f0/src/moonlight-server/state/default/config.v4.toml#L242) to nvh265device1enc, software encoding was still being used. Are there any other details I should provide? This machine is equipped with 8 GPUs, and I'm available to collaborate on testing multi-GPU scenarios.
Author
Owner

@ABeltramo commented on GitHub (Jul 29, 2025):

Thanks for the logs, here are the relevant bits:

cudacontext gstcudacontext.cpp:383:gst_create_cucontext: GPU #0 supports NVENC: yes (NVIDIA GeForce RTX 4060) (Compute SM 8.9)
cudacontext gstcudacontext.cpp:407:gst_create_cucontext: Created CUDA context 0x5649073747c0 with device-id 0

Good, Gstreamer can see your GPU, but then you get a lot of errors like:

0nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100
nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100
nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100
nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100
nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100
nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100
nvdecoder gstnvdecoder.cpp:1456:gst_nv_decoder_check_device_caps: device can not support h264

Here's an example output from my dev machine with a 3070 plugged:

 INFO                   nvenc gstnvenc.c:391:gst_nvenc_load_library: Maximum supported API version by driver: 13.0
 INFO                   nvenc gstnvenc.c:402:gst_nvenc_load_library: Checking version 12.0
 INFO                   nvenc gstnvenc.c:413:gst_nvenc_load_library: API version 12.0 load done
 INFO                   nvenc gstnvenc.c:422:gst_nvenc_load_library: nvEncSetIOCudaStreams is supported
 WARN               cudanvrtc gstcudanvrtc.cpp:179:gst_cuda_nvrtc_load_library_once: Failed to load 'nvrtcGetCUBINSize', 'nvrtcGetCUBINSize': /usr/local/nvidia/lib/libnvrtc.so: undefined symbol: nvrtcGetCUBINSize
 INFO             cudacontext gstcudacontext.cpp:383:gst_create_cucontext: GPU #0 supports NVENC: yes (NVIDIA GeForce RTX 3070) (Compute SM 8.6)
 INFO             cudacontext gstcudacontext.cpp:407:gst_create_cucontext: Created CUDA context 0x558ba2740a30 with device-id 0
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: mpegvideo bit-depth 8 with chroma format 0 [48 - 4080] x [16 - 4080]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec mpegvideo, sink template video/mpeg, mpegversion=(int)1, systemstream=(boolean)false, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: mpeg2video bit-depth 8 with chroma format 0 [48 - 4080] x [16 - 4080]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec mpeg2video, sink template video/mpeg, mpegversion=(int)2, systemstream=(boolean)false, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: mpeg4video bit-depth 8 with chroma format 0 [48 - 2048] x [16 - 2048]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec mpeg4video, sink template video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 48, 2048 ], height=(int)[ 16, 2048 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 2048 ], height=(int)[ 16, 2048 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 2048 ], height=(int)[ 16, 2048 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 2048 ], height=(int)[ 16, 2048 ]
 INFO               nvdecoder gstnvdecoder.cpp:1312:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 3
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h264 bit-depth 8 with chroma format 0 [48 - 4096] x [16 - 4096]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec h264, sink template video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string){ constrained-baseline, baseline, main, high, constrained-high, progressive-high }, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: jpeg bit-depth 8 with chroma format 0 [64 - 32768] x [64 - 16384]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: jpeg bit-depth 8 with chroma format 1 [64 - 32768] x [64 - 16384]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec jpeg, sink template image/jpeg, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]; video/x-raw, format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]
 INFO               nvdecoder gstnvdecoder.cpp:1312:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 6
 INFO               nvdecoder gstnvdecoder.cpp:1312:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 7
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 8 with chroma format 0 [144 - 8192] x [144 - 8192]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 10 with chroma format 0 [144 - 8192] x [144 - 8192]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 12 with chroma format 0 [144 - 8192] x [144 - 8192]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 8 with chroma format 1 [144 - 8192] x [144 - 8192]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 10 with chroma format 1 [144 - 8192] x [144 - 8192]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 12 with chroma format 1 [144 - 8192] x [144 - 8192]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec h265, sink template video/x-h265, stream-format=(string)byte-stream, alignment=(string)au, profile=(string){ main, main-10, main-12, main-444, main-444-10, main-444-12 }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]src template video/x-raw(memory:CUDAMemory), format=(string){ NV12, P010_10LE, P012_LE, Y444, Y444_16LE, GBR, GBR_16LE }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]; video/x-raw(memory:GLMemory), format=(string){ NV12, P010_10LE, P012_LE, Y444, Y444_16LE, GBR }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]; video/x-raw, format=(string){ NV12, P010_10LE, P012_LE, Y444, Y444_16LE, GBR, GBR_16LE }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: vp8 bit-depth 8 with chroma format 0 [48 - 4096] x [16 - 4096]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec vp8, sink template video/x-vp8, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: vp9 bit-depth 8 with chroma format 0 [128 - 8192] x [128 - 8192]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: vp9 bit-depth 10 with chroma format 0 [128 - 8192] x [128 - 8192]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: vp9 bit-depth 12 with chroma format 0 [128 - 8192] x [128 - 8192]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec vp9, sink template video/x-vp9, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ], profile=(string){ 0, 2 }src template video/x-raw(memory:CUDAMemory), format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw(memory:GLMemory), format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw, format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: av1 bit-depth 8 with chroma format 0 [128 - 8192] x [128 - 8192]
 INFO               nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: av1 bit-depth 10 with chroma format 0 [128 - 8192] x [128 - 8192]
 INFO                 nvcodec plugin.c:239:plugin_init: CUDA video codec av1, sink template video/x-av1, alignment=(string)frame, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ], profile=(string){ main }src template video/x-raw(memory:CUDAMemory), format=(string){ NV12, P010_10LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw(memory:GLMemory), format=(string){ NV12, P010_10LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw, format=(string){ NV12, P010_10LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]
 WARN            nvav1encoder gstnvav1encoder.cpp:1429:gst_nv_av1_encoder_create_class_data:<cudacontext0> New preset is not supported
 INFO                cudanvmm gstcudanvmm.cpp:74:gst_cuda_nvmm_load_library: libnvdsbufferpool library is unavailable

See the differences? It can correctly instantiate and use the HW encoders, ex:

nvcodec plugin.c:239:plugin_init: CUDA video codec h264 ...
[...]
nvcodec plugin.c:239:plugin_init: CUDA video codec h265 ...

Following the Gstreamer source code it seems that you are stuck in this call:

cuda_ret = CuvidGetDecoderCaps (&decoder_caps);
if (cuda_ret != CUDA_SUCCESS) {
  GST_INFO ("could not query %s decoder capability, ret %d",
      codec_map->codec_name, cuda_ret);

In your case it's returning 100 which means CUDA_ERROR_NO_DEVICE, from the docs:

This indicates that no CUDA-capable devices were detected by the installed CUDA driver.

Not sure what's causing that on your machine, but I suppose you've got something wrong with the Nvidia drivers. I recommend removing them and re-install from the official sources https://www.nvidia.com/en-us/drivers/unix/ then reboot and re-create the Wolf Nvidia driver volume as explained in the previous comment.

FYI the latest "stable" version of the driver is currently 570.172.08 whilst you have 570.133.07.

Until we can fix this, the rest of the points outlined don't really apply: there's no capable HW encoder found.

<!-- gh-comment-id:3132984235 --> @ABeltramo commented on GitHub (Jul 29, 2025): Thanks for the logs, here are the relevant bits: ``` cudacontext gstcudacontext.cpp:383:gst_create_cucontext: GPU #0 supports NVENC: yes (NVIDIA GeForce RTX 4060) (Compute SM 8.9) cudacontext gstcudacontext.cpp:407:gst_create_cucontext: Created CUDA context 0x5649073747c0 with device-id 0 ``` Good, Gstreamer can see your GPU, but then you get a lot of errors like: ``` 0nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100 nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100 nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100 nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100 nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100 nvdecoder gstnvdecoder.cpp:1377:gst_nv_decoder_check_device_caps: could not query h264 decoder capability, ret 100 nvdecoder gstnvdecoder.cpp:1456:gst_nv_decoder_check_device_caps: device can not support h264 ``` Here's an example output from my dev machine with a 3070 plugged: ``` INFO nvenc gstnvenc.c:391:gst_nvenc_load_library: Maximum supported API version by driver: 13.0 INFO nvenc gstnvenc.c:402:gst_nvenc_load_library: Checking version 12.0 INFO nvenc gstnvenc.c:413:gst_nvenc_load_library: API version 12.0 load done INFO nvenc gstnvenc.c:422:gst_nvenc_load_library: nvEncSetIOCudaStreams is supported WARN cudanvrtc gstcudanvrtc.cpp:179:gst_cuda_nvrtc_load_library_once: Failed to load 'nvrtcGetCUBINSize', 'nvrtcGetCUBINSize': /usr/local/nvidia/lib/libnvrtc.so: undefined symbol: nvrtcGetCUBINSize INFO cudacontext gstcudacontext.cpp:383:gst_create_cucontext: GPU #0 supports NVENC: yes (NVIDIA GeForce RTX 3070) (Compute SM 8.6) INFO cudacontext gstcudacontext.cpp:407:gst_create_cucontext: Created CUDA context 0x558ba2740a30 with device-id 0 INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: mpegvideo bit-depth 8 with chroma format 0 [48 - 4080] x [16 - 4080] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec mpegvideo, sink template video/mpeg, mpegversion=(int)1, systemstream=(boolean)false, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: mpeg2video bit-depth 8 with chroma format 0 [48 - 4080] x [16 - 4080] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec mpeg2video, sink template video/mpeg, mpegversion=(int)2, systemstream=(boolean)false, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: mpeg4video bit-depth 8 with chroma format 0 [48 - 2048] x [16 - 2048] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec mpeg4video, sink template video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 48, 2048 ], height=(int)[ 16, 2048 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 2048 ], height=(int)[ 16, 2048 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 2048 ], height=(int)[ 16, 2048 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 2048 ], height=(int)[ 16, 2048 ] INFO nvdecoder gstnvdecoder.cpp:1312:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 3 INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h264 bit-depth 8 with chroma format 0 [48 - 4096] x [16 - 4096] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec h264, sink template video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string){ constrained-baseline, baseline, main, high, constrained-high, progressive-high }, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: jpeg bit-depth 8 with chroma format 0 [64 - 32768] x [64 - 16384] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: jpeg bit-depth 8 with chroma format 1 [64 - 32768] x [64 - 16384] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec jpeg, sink template image/jpeg, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]; video/x-raw, format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ] INFO nvdecoder gstnvdecoder.cpp:1312:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 6 INFO nvdecoder gstnvdecoder.cpp:1312:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 7 INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 8 with chroma format 0 [144 - 8192] x [144 - 8192] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 10 with chroma format 0 [144 - 8192] x [144 - 8192] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 12 with chroma format 0 [144 - 8192] x [144 - 8192] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 8 with chroma format 1 [144 - 8192] x [144 - 8192] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 10 with chroma format 1 [144 - 8192] x [144 - 8192] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: h265 bit-depth 12 with chroma format 1 [144 - 8192] x [144 - 8192] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec h265, sink template video/x-h265, stream-format=(string)byte-stream, alignment=(string)au, profile=(string){ main, main-10, main-12, main-444, main-444-10, main-444-12 }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]src template video/x-raw(memory:CUDAMemory), format=(string){ NV12, P010_10LE, P012_LE, Y444, Y444_16LE, GBR, GBR_16LE }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]; video/x-raw(memory:GLMemory), format=(string){ NV12, P010_10LE, P012_LE, Y444, Y444_16LE, GBR }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]; video/x-raw, format=(string){ NV12, P010_10LE, P012_LE, Y444, Y444_16LE, GBR, GBR_16LE }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: vp8 bit-depth 8 with chroma format 0 [48 - 4096] x [16 - 4096] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec vp8, sink template video/x-vp8, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]src template video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: vp9 bit-depth 8 with chroma format 0 [128 - 8192] x [128 - 8192] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: vp9 bit-depth 10 with chroma format 0 [128 - 8192] x [128 - 8192] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: vp9 bit-depth 12 with chroma format 0 [128 - 8192] x [128 - 8192] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec vp9, sink template video/x-vp9, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ], profile=(string){ 0, 2 }src template video/x-raw(memory:CUDAMemory), format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw(memory:GLMemory), format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw, format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: av1 bit-depth 8 with chroma format 0 [128 - 8192] x [128 - 8192] INFO nvdecoder gstnvdecoder.cpp:1403:gst_nv_decoder_check_device_caps: av1 bit-depth 10 with chroma format 0 [128 - 8192] x [128 - 8192] INFO nvcodec plugin.c:239:plugin_init: CUDA video codec av1, sink template video/x-av1, alignment=(string)frame, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ], profile=(string){ main }src template video/x-raw(memory:CUDAMemory), format=(string){ NV12, P010_10LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw(memory:GLMemory), format=(string){ NV12, P010_10LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw, format=(string){ NV12, P010_10LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ] WARN nvav1encoder gstnvav1encoder.cpp:1429:gst_nv_av1_encoder_create_class_data:<cudacontext0> New preset is not supported INFO cudanvmm gstcudanvmm.cpp:74:gst_cuda_nvmm_load_library: libnvdsbufferpool library is unavailable ``` See the differences? It can correctly instantiate and use the HW encoders, ex: ``` nvcodec plugin.c:239:plugin_init: CUDA video codec h264 ... [...] nvcodec plugin.c:239:plugin_init: CUDA video codec h265 ... ``` Following the Gstreamer [source code](https://github.com/GStreamer/gstreamer/blob/a26983d043ea8a5d6eb122e3074c5680af66a304/subprojects/gst-plugins-bad/sys/nvcodec/gstnvdecoder.cpp#L1375-L1378) it seems that you are stuck in this call: ```c cuda_ret = CuvidGetDecoderCaps (&decoder_caps); if (cuda_ret != CUDA_SUCCESS) { GST_INFO ("could not query %s decoder capability, ret %d", codec_map->codec_name, cuda_ret); ``` In your case it's returning `100` which means `CUDA_ERROR_NO_DEVICE`, from the docs: > This indicates that no CUDA-capable devices were detected by the installed CUDA driver. Not sure what's causing that on your machine, but I suppose you've got something wrong with the Nvidia drivers. I recommend removing them and re-install from the official sources https://www.nvidia.com/en-us/drivers/unix/ then reboot and re-create the Wolf Nvidia driver volume as explained in the previous comment. FYI the latest "stable" version of the driver is currently [570.172.08](https://www.nvidia.com/en-us/drivers/details/249194/) whilst you have `570.133.07`. Until we can fix this, the rest of the points outlined don't really apply: there's no capable HW encoder found.
Author
Owner

@DatCaptainHorse commented on GitHub (Jul 29, 2025):

@zexi Make sure your host system drivers are not "server" drivers, they don't come with encoding/decoding features for some reason. I.E. some Debian/Ubuntu systems default to nvidia-driver-xxx-server which will not work, while nvidia-driver-xxx would.

<!-- gh-comment-id:3133012987 --> @DatCaptainHorse commented on GitHub (Jul 29, 2025): @zexi Make sure your host system drivers are not "server" drivers, they don't come with encoding/decoding features for some reason. I.E. some Debian/Ubuntu systems default to `nvidia-driver-xxx-server` which will not work, while `nvidia-driver-xxx` would.
Author
Owner

@zexi commented on GitHub (Jul 30, 2025):

@zexi Make sure your host system drivers are not "server" drivers, they don't come with encoding/decoding features for some reason. I.E. some Debian/Ubuntu systems default to nvidia-driver-xxx-server which will not work, while nvidia-driver-xxx would.

@DatCaptainHorse Thanks for your hint. I used the NVIDIA-Linux-x86_64-*.run driver, so the encoding/decoding features is working.

<!-- gh-comment-id:3135918423 --> @zexi commented on GitHub (Jul 30, 2025): > [@zexi](https://github.com/zexi) Make sure your host system drivers are not "server" drivers, they don't come with encoding/decoding features for some reason. I.E. some Debian/Ubuntu systems default to `nvidia-driver-xxx-server` which will not work, while `nvidia-driver-xxx` would. @DatCaptainHorse Thanks for your hint. I used the `NVIDIA-Linux-x86_64-*.run` driver, so the encoding/decoding features is working.
Author
Owner

@zexi commented on GitHub (Jul 30, 2025):

@ABeltramo I installed the latest 570.172.08 nvidia driver, but the same issue and error persist.

However, I discovered a solution: by mapping all /dev/nvidia* devices into the container via the --device parameter, GStreamer can then recognize the nvcodec hardware encoder.

# passing all host /dev/nvidia* devices to container
    --device /dev/nvidia0 \
    --device /dev/nvidia1 \
    --device /dev/nvidia2 \
    --device /dev/nvidia3 \
    --device /dev/nvidia4 \
    --device /dev/nvidia5 \
    --device /dev/nvidia6 \
    --device /dev/nvidia7 \

Then exec into the wolf container and runs gst-inspect-1.0 nvcodec command, I can see the features:

Image

With this, I can modify the /etc/wolf/cfg/config.toml file to specify which GPU to use for encoding by setting nvh265device*enc.

Image

But a new issue arises: if I set the WOLF_RENDER_NODE=/dev/dri/renderD130 environment variable, the ZERO COPY feature throws the following error, whereas specifying /dev/dri/renderD128 works without issues:

Image

This is the log file with GST_DEBUG=5:

debug-zero-cp.log.zip

If I disable ZERO COPY feautre by setting WOLF_USE_ZERO_COPY=FALSE and use the legacy streaming method, the error disappears, and the system runs smoothly when using any specified /dev/dri/renderDxxx device.

Is it possible that there's a bug in the ZERO COPY implementation, causing it to work only with renderD128?

<!-- gh-comment-id:3136075118 --> @zexi commented on GitHub (Jul 30, 2025): @ABeltramo I installed the latest [570.172.08](https://www.nvidia.com/en-us/drivers/details/249194/) nvidia driver, but the same issue and error persist. However, I discovered a solution: by mapping all `/dev/nvidia*` devices into the container via the `--device` parameter, GStreamer can then recognize the nvcodec hardware encoder. ```bash # passing all host /dev/nvidia* devices to container --device /dev/nvidia0 \ --device /dev/nvidia1 \ --device /dev/nvidia2 \ --device /dev/nvidia3 \ --device /dev/nvidia4 \ --device /dev/nvidia5 \ --device /dev/nvidia6 \ --device /dev/nvidia7 \ ``` Then exec into the wolf container and runs `gst-inspect-1.0 nvcodec` command, I can see the features: <img width="511" height="296" alt="Image" src="https://github.com/user-attachments/assets/ad11fc49-10e4-4c1b-a4be-067842735147" /> With this, I can modify the /etc/wolf/cfg/config.toml file to specify which GPU to use for encoding by setting `nvh265device*enc`. <img width="949" height="156" alt="Image" src="https://github.com/user-attachments/assets/bc46a63e-3243-45bd-b9e4-3519f1371b12" /> But a new issue arises: if I set the `WOLF_RENDER_NODE=/dev/dri/renderD130` environment variable, the ZERO COPY feature throws the following error, whereas specifying /dev/dri/renderD128 works without issues: <img width="1906" height="745" alt="Image" src="https://github.com/user-attachments/assets/bb3ea45a-323b-4103-89bd-9938b321d9b4" /> This is the log file with `GST_DEBUG=5`: [debug-zero-cp.log.zip](https://github.com/user-attachments/files/21509348/debug-zero-cp.log.zip) If I disable ZERO COPY feautre by setting `WOLF_USE_ZERO_COPY=FALSE` and use the legacy streaming method, the error disappears, and the system runs smoothly when using any specified /dev/dri/renderDxxx device. Is it possible that there's a bug in the ZERO COPY implementation, causing it to work only with renderD128?
Author
Owner

@DatCaptainHorse commented on GitHub (Jul 30, 2025):

@zexi zero-copy requires that both rendering and encoding are done on same GPU, so if you try set different GPU for WOLF_RENDER_NODE than what is used for encoding, it will error out.

<!-- gh-comment-id:3136462391 --> @DatCaptainHorse commented on GitHub (Jul 30, 2025): @zexi zero-copy requires that both rendering and encoding are done on same GPU, so if you try set different GPU for `WOLF_RENDER_NODE` than what is used for encoding, it will error out.
Author
Owner

@zexi commented on GitHub (Jul 31, 2025):

@zexi zero-copy requires that both rendering and encoding are done on same GPU, so if you try set different GPU for WOLF_RENDER_NODE than what is used for encoding, it will error out.

@DatCaptainHorse When setting WOLF_RENDER_NODE=/dev/dri/renderD128, I can successfully specify different GPUs for streaming by configuring the nvh265device*enc parameter in /etc/wolf/cfg/config.toml by this line.

For example, with nvh265device1enc, the nvidia-smi command confirms the streaming process runs on GPU1 while other processes reside on GPU3.

Image

However, if I set WOLF_RENDER_NODE=/dev/dri/renderD130 (or any non-renderD128 device), the system throws an error described in the previous comment. This inconsistency leads me to suspect that the zero-copy functionality may only operate correctly with the renderD128 device.

<!-- gh-comment-id:3138367943 --> @zexi commented on GitHub (Jul 31, 2025): > [@zexi](https://github.com/zexi) zero-copy requires that both rendering and encoding are done on same GPU, so if you try set different GPU for `WOLF_RENDER_NODE` than what is used for encoding, it will error out. @DatCaptainHorse When setting WOLF_RENDER_NODE=/dev/dri/renderD128, I can successfully specify different GPUs for streaming by configuring the nvh265device*enc parameter in /etc/wolf/cfg/config.toml by [this line](https://github.com/games-on-whales/wolf/blob/1a6327d6e251d808581b825edaf5ed81967ff3f0/src/moonlight-server/state/default/config.v4.toml#L242). For example, with nvh265device1enc, the nvidia-smi command confirms the streaming process runs on GPU1 while other processes reside on GPU3. <img width="819" height="446" alt="Image" src="https://github.com/user-attachments/assets/0ad3db8d-de67-4ca0-8d0d-ee11b538e74b" /> However, if I set WOLF_RENDER_NODE=/dev/dri/renderD130 (or any non-renderD128 device), the system throws an error described in the previous comment. This inconsistency leads me to suspect that the zero-copy functionality may only operate correctly with the renderD128 device.
Author
Owner

@Gylfkxjyjdll commented on GitHub (Jul 31, 2025):

i had the same issue back then.

my solution was:

  • purging all nvidia/cuda driver and reinstalling everything. reinstalled nvidia with the open-source kernel module (very important), the cuda driver and nvidia-docker2. didnt had any issues with the driver 570.172.08 and 570.133.07. Atm i use 575.64.05

  • checked if all kernel parameters where loaded right (had once an issue here after restarting, dont know why)

  • deleting all gow related stuff

  • checked all read and write permissions

  • adding WOLF_RENDER_NODE=/dev/dri/renderD129 and WOLF_ENCODER_NODE=/dev/dri/renderD129 as env parameter (otherwise i had the same issue as you)

  • add devices = [ '/dev/nvidia0:/dev/nvidia0:mrw', '/dev/nvidia1:/dev/nvidia1:mrw', '/dev/nvidia2:/dev/nvidia2:mrw', '/dev/nvidia3:/dev/nvidia3:mrw' ] to the config.toml

  • for debugging, i changed "Privileged": true" in the config.toml

here you can read through my debugging process.
https://discord.com/channels/856434175455133727/1368484261937676341

<!-- gh-comment-id:3140141614 --> @Gylfkxjyjdll commented on GitHub (Jul 31, 2025): i had the same issue back then. my solution was: - purging all nvidia/cuda driver and reinstalling everything. reinstalled nvidia with the open-source kernel module (very important), the cuda driver and nvidia-docker2. didnt had any issues with the driver 570.172.08 and 570.133.07. Atm i use 575.64.05 - checked if all kernel parameters where loaded right (had once an issue here after restarting, dont know why) - deleting all gow related stuff - checked all read and write permissions - adding WOLF_RENDER_NODE=/dev/dri/renderD129 and WOLF_ENCODER_NODE=/dev/dri/renderD129 as env parameter (otherwise i had the same issue as you) - add devices = [ '/dev/nvidia0:/dev/nvidia0:mrw', '/dev/nvidia1:/dev/nvidia1:mrw', '/dev/nvidia2:/dev/nvidia2:mrw', '/dev/nvidia3:/dev/nvidia3:mrw' ] to the config.toml - for debugging, i changed "Privileged": true" in the config.toml here you can read through my debugging process. https://discord.com/channels/856434175455133727/1368484261937676341
Author
Owner

@zexi commented on GitHub (Aug 1, 2025):

  • add devices = [ '/dev/nvidia0:/dev/nvidia0:mrw', '/dev/nvidia1:/dev/nvidia1:mrw', '/dev/nvidia2:/dev/nvidia2:mrw', '/dev/nvidia3:/dev/nvidia3:mrw' ] to the config.toml

@Gylfkxjyjdll Thank you for sharing the solution. I think the most critical step is passing all /dev/nvidia* devices into the container.

Additionally, have you tested the latest ghcr.io/games-on-whales/wolf:stable image? This version enables zero-copy feature by default, but when I specify /dev/dri/renderD129 in a multi-GPU environment, it throws errors. Have you encountered the same issue?

<!-- gh-comment-id:3143768584 --> @zexi commented on GitHub (Aug 1, 2025): > * add devices = [ '/dev/nvidia0:/dev/nvidia0:mrw', '/dev/nvidia1:/dev/nvidia1:mrw', '/dev/nvidia2:/dev/nvidia2:mrw', '/dev/nvidia3:/dev/nvidia3:mrw' ] to the config.toml @Gylfkxjyjdll Thank you for sharing the solution. I think the most critical step is passing all `/dev/nvidia*` devices into the container. Additionally, have you tested the latest `ghcr.io/games-on-whales/wolf:stable` image? This version enables zero-copy feature by default, but when I specify /dev/dri/renderD129 in a multi-GPU environment, it throws errors. Have you encountered the same issue?
Author
Owner

@Gylfkxjyjdll commented on GitHub (Aug 2, 2025):

  • add devices = [ '/dev/nvidia0:/dev/nvidia0:mrw', '/dev/nvidia1:/dev/nvidia1:mrw', '/dev/nvidia2:/dev/nvidia2:mrw', '/dev/nvidia3:/dev/nvidia3:mrw' ] to the config.toml

@Gylfkxjyjdll Thank you for sharing the solution. I think the most critical step is passing all /dev/nvidia* devices into the container.

Additionally, have you tested the latest ghcr.io/games-on-whales/wolf:stable image? This version enables zero-copy feature by default, but when I specify /dev/dri/renderD129 in a multi-GPU environment, it throws errors. Have you encountered the same issue?

add the conatainer in the config.toml?
i tried the latest stable release. everything workes as expected.

<!-- gh-comment-id:3146387164 --> @Gylfkxjyjdll commented on GitHub (Aug 2, 2025): > > * add devices = [ '/dev/nvidia0:/dev/nvidia0:mrw', '/dev/nvidia1:/dev/nvidia1:mrw', '/dev/nvidia2:/dev/nvidia2:mrw', '/dev/nvidia3:/dev/nvidia3:mrw' ] to the config.toml > > [@Gylfkxjyjdll](https://github.com/Gylfkxjyjdll) Thank you for sharing the solution. I think the most critical step is passing all `/dev/nvidia*` devices into the container. > > Additionally, have you tested the latest `ghcr.io/games-on-whales/wolf:stable` image? This version enables zero-copy feature by default, but when I specify /dev/dri/renderD129 in a multi-GPU environment, it throws errors. Have you encountered the same issue? add the conatainer in the config.toml? i tried the latest stable release. everything workes as expected.
Author
Owner

@ABeltramo commented on GitHub (Aug 3, 2025):

@zexi It's one thing to pass the nvidia devices to the Wolf container and another one to actually share them with the running app containers (Steam, Firefox, ...). Have you added the additional /dev/nvidia mounts in each app that requires them in config.toml like @Gylfkxjyjdll showed?

<!-- gh-comment-id:3148206310 --> @ABeltramo commented on GitHub (Aug 3, 2025): @zexi It's one thing to pass the nvidia devices to the Wolf container and another one to actually share them with the running app containers (Steam, Firefox, ...). Have you added the additional `/dev/nvidia` mounts in each app that requires them in `config.toml` like @Gylfkxjyjdll showed?
Author
Owner

@zexi commented on GitHub (Aug 4, 2025):

@zexi It's one thing to pass the nvidia devices to the Wolf container and another one to actually share them with the running app containers (Steam, Firefox, ...). Have you added the additional /dev/nvidia mounts in each app that requires them in config.toml like @Gylfkxjyjdll showed?

@Gylfkxjyjdll @ABeltramo I've added the additional /dev/nvidia* devices in the config.toml but still got the same issue.

Image

The output of wolf service:

Image

The device parts of docker inspect WolfSteam_xxx output:

            "Devices": [
                {
                    "PathOnHost": "/dev/nvidia0",
                    "PathInContainer": "/dev/nvidia0",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia1",
                    "PathInContainer": "/dev/nvidia1",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia2",
                    "PathInContainer": "/dev/nvidia2",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia3",
                    "PathInContainer": "/dev/nvidia3",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia4",
                    "PathInContainer": "/dev/nvidia4",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia5",
                    "PathInContainer": "/dev/nvidia5",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia6",
                    "PathInContainer": "/dev/nvidia6",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia7",
                    "PathInContainer": "/dev/nvidia7",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/dri/card3",
                    "PathInContainer": "/dev/dri/card3",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia2",
                    "PathInContainer": "/dev/nvidia2",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia-modeset",
                    "PathInContainer": "/dev/nvidia-modeset",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia-uvm",
                    "PathInContainer": "/dev/nvidia-uvm",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidia-uvm-tools",
                    "PathInContainer": "/dev/nvidia-uvm-tools",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/nvidiactl",
                    "PathInContainer": "/dev/nvidiactl",
                    "CgroupPermissions": "mrw"
                },
                {
                    "PathOnHost": "/dev/dri/renderD130",
                    "PathInContainer": "/dev/dri/renderD130",
                    "CgroupPermissions": "mrw"
                }
            ],
<!-- gh-comment-id:3149108249 --> @zexi commented on GitHub (Aug 4, 2025): > [@zexi](https://github.com/zexi) It's one thing to pass the nvidia devices to the Wolf container and another one to actually share them with the running app containers (Steam, Firefox, ...). Have you added the additional `/dev/nvidia` mounts in each app that requires them in `config.toml` like [@Gylfkxjyjdll](https://github.com/Gylfkxjyjdll) showed? @Gylfkxjyjdll @ABeltramo I've added the additional `/dev/nvidia*` devices in the config.toml but still got the same issue. <img width="1511" height="483" alt="Image" src="https://github.com/user-attachments/assets/bdbc337a-fb8d-48fb-ad2d-21fdff6d032d" /> The output of wolf service: <img width="1906" height="806" alt="Image" src="https://github.com/user-attachments/assets/9cc790b2-ac4d-4b54-bb6b-81025ddca6bd" /> The device parts of `docker inspect WolfSteam_xxx` output: ```json "Devices": [ { "PathOnHost": "/dev/nvidia0", "PathInContainer": "/dev/nvidia0", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia1", "PathInContainer": "/dev/nvidia1", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia2", "PathInContainer": "/dev/nvidia2", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia3", "PathInContainer": "/dev/nvidia3", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia4", "PathInContainer": "/dev/nvidia4", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia5", "PathInContainer": "/dev/nvidia5", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia6", "PathInContainer": "/dev/nvidia6", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia7", "PathInContainer": "/dev/nvidia7", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/dri/card3", "PathInContainer": "/dev/dri/card3", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia2", "PathInContainer": "/dev/nvidia2", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia-modeset", "PathInContainer": "/dev/nvidia-modeset", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia-uvm", "PathInContainer": "/dev/nvidia-uvm", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidia-uvm-tools", "PathInContainer": "/dev/nvidia-uvm-tools", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/nvidiactl", "PathInContainer": "/dev/nvidiactl", "CgroupPermissions": "mrw" }, { "PathOnHost": "/dev/dri/renderD130", "PathInContainer": "/dev/dri/renderD130", "CgroupPermissions": "mrw" } ], ```
Author
Owner

@zexi commented on GitHub (Sep 28, 2025):

@DatCaptainHorse @ABeltramo After forking the gst-wayland-display and adding some debugging code (link: https://github.com/zexi/gst-wayland-display/blob/test-stable/wayland-display-core/src/utils/device/gpu.rs#L48-L74), I noticed that the enumerate_gpu_devices function retrieves drm_path values like /dev/dri/card%d in my NVIDIA GPU environment.

These paths do not match the device I specified via the environment variable WOLF_RENDER_NODE=/dev/dri/renderD129. Is this a potential issue?

Log output is as follows and the Error during GetRenderDevice: No GPU device for given DRM node message is at last line:

12:38:27.784516409 INFO  | Wayland display ready, listening on: wayland-1                                                                                                                                                                                                                                                    
=== drm_path: "/dev/dri/card1"                                                                                                                                                                                                                                                                                               
=== dev: EGLDevice { inner: 0x7fdea44dc060, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882"                                                                           
2025-09-28T12:38:27.791550Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                                                                                                                                   
=== device_name: ""                                                                                                                                                                                                                                                                                                          
=== drm_path: "/dev/dri/card2"                                                                                                                                                                                                                                                                                               
=== dev: EGLDevice { inner: 0x7fdea44dc061, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882"                                                                           
2025-09-28T12:38:27.791662Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                                                                                                                                   
=== device_name: ""                                                                                                                                                                                                                                                                                                          
=== drm_path: "/dev/dri/card3"                                                                                                                                                                                                                                                                                               
=== dev: EGLDevice { inner: 0x7fdea44dc062, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882"                                                                           
2025-09-28T12:38:27.791824Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                                                                                                                                   
=== device_name: ""                                                                                                                                                                                                                                                                                                          
=== drm_path: "/dev/dri/card4"                                                                                                                                                                                                                                                                                               
=== dev: EGLDevice { inner: 0x7fdea44dc063, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882"                                                                           
2025-09-28T12:38:27.792008Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                                                                                                                                   
=== device_name: ""                                                                                                                                                                                                                                                                                                          
=== drm_path: "/dev/dri/card5"                                                                                                                                                                                                                                                                                               
=== dev: EGLDevice { inner: 0x7fdea44dc064, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882"                                                                           
2025-09-28T12:38:27.792221Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                                                                                                                                   
=== device_name: ""                                                                                                                                                                                                                                                                                                          
=== drm_path: "/dev/dri/card6"                                                                                                                                                                                                                                                                                               
=== dev: EGLDevice { inner: 0x7fdea44dc065, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882"                                                                           
2025-09-28T12:38:27.792448Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                                                                                                                                   
=== device_name: ""                                                                                                                                                                                                                                                                                                          
=== drm_path: "/dev/dri/card7"                                                                                                                                                                                                                                                                                               
=== dev: EGLDevice { inner: 0x7fdea44dc066, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882"                                                                           
2025-09-28T12:38:27.792701Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                                                                                                                                   
=== device_name: ""                                                                                                                                                                                                                                                                                                          
=== drm_path: "/dev/dri/card8"                                                                                                                                                                                                                                                                                               
=== dev: EGLDevice { inner: 0x7fdea44dc067, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882"                                                                           
2025-09-28T12:38:27.793016Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                                                                                                                                   
=== device_name: ""                                                                                                                                                                                                                                                                                                          
=== drm_path: "/dev/dri/card1"                                                                                                                                                                                   
=== dev: EGLDevice { inner: 0x7fde6015b350, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882"                                                   
2025-09-28T12:38:27.793049Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                       
=== device_name: ""
=== drm_path: "/dev/dri/card2"
=== dev: EGLDevice { inner: 0x7fde6015b300, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882"                                                 
2025-09-28T12:38:27.793078Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                         
=== device_name: ""                                                                                                                                                                                              
=== drm_path: "/dev/dri/card3"
=== dev: EGLDevice { inner: 0x7fde6015b2b0, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882"                                                   
2025-09-28T12:38:27.793104Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                       
=== device_name: ""                                                                                                                                                                                              
=== drm_path: "/dev/dri/card4"
=== dev: EGLDevice { inner: 0x7fde6015b260, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882"                                                   
2025-09-28T12:38:27.793132Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                       
=== device_name: ""                                                                                      
=== drm_path: "/dev/dri/card5"                                                                           
=== dev: EGLDevice { inner: 0x7fde6015b210, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882"                                                   
2025-09-28T12:38:27.793158Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                         
=== device_name: ""                                                                                      
=== drm_path: "/dev/dri/card6"                                                                           
=== dev: EGLDevice { inner: 0x7fde6015b1c0, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882"                                                   
2025-09-28T12:38:27.793185Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                         
=== device_name: ""                                                                                      
=== drm_path: "/dev/dri/card7"                                                                           
=== dev: EGLDevice { inner: 0x7fde6015b170, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882"                                                   
2025-09-28T12:38:27.793212Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                         
=== device_name: ""                                                                                      
=== drm_path: "/dev/dri/card8"                                                                           
=== dev: EGLDevice { inner: 0x7fde600968f0, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882"                                                   
2025-09-28T12:38:27.793237Z  WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2)                                                         
=== device_name: ""                                                                                      
=== drm_node: DrmNode { dev: 57985, ty: Render }                                                         
=== devices: [GPUDevice { drm_node: DrmNode { dev: 57857, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57858, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57859, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57860, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_n
ode: DrmNode { dev: 57861, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57862, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57863, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57864, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57857, ty: 
Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57858, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57859, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57860, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57861, ty: Primary }, pci_vendor: NVIDIA, 
device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57862, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57863, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57864, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }]
2025-09-28T12:38:27.793260Z  WARN waylanddisplaycore::comp: Error during GetRenderDevice: No GPU device for given DRM node  
<!-- gh-comment-id:3343183216 --> @zexi commented on GitHub (Sep 28, 2025): @DatCaptainHorse @ABeltramo After forking the [gst-wayland-display](https://github.com/games-on-whales/gst-wayland-display) and adding some debugging code (link: https://github.com/zexi/gst-wayland-display/blob/test-stable/wayland-display-core/src/utils/device/gpu.rs#L48-L74), I noticed that the `enumerate_gpu_devices` function retrieves drm_path values like `/dev/dri/card%d` in my NVIDIA GPU environment. These paths do not match the device I specified via the environment variable `WOLF_RENDER_NODE=/dev/dri/renderD129`. Is this a potential issue? Log output is as follows and the *`Error during GetRenderDevice: No GPU device for given DRM node`* message is at last line: ```txt 12:38:27.784516409 INFO | Wayland display ready, listening on: wayland-1 === drm_path: "/dev/dri/card1" === dev: EGLDevice { inner: 0x7fdea44dc060, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.791550Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card2" === dev: EGLDevice { inner: 0x7fdea44dc061, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.791662Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card3" === dev: EGLDevice { inner: 0x7fdea44dc062, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.791824Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card4" === dev: EGLDevice { inner: 0x7fdea44dc063, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.792008Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card5" === dev: EGLDevice { inner: 0x7fdea44dc064, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.792221Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card6" === dev: EGLDevice { inner: 0x7fdea44dc065, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.792448Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card7" === dev: EGLDevice { inner: 0x7fdea44dc066, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.792701Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card8" === dev: EGLDevice { inner: 0x7fdea44dc067, device_extensions: ["EGL_NV_device_cuda", "EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node", "EGL_EXT_device_query_name", "EGL_EXT_device_persistent_id"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793016Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card1" === dev: EGLDevice { inner: 0x7fde6015b350, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793049Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card2" === dev: EGLDevice { inner: 0x7fde6015b300, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793078Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card3" === dev: EGLDevice { inner: 0x7fde6015b2b0, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793104Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card4" === dev: EGLDevice { inner: 0x7fde6015b260, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793132Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card5" === dev: EGLDevice { inner: 0x7fde6015b210, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793158Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card6" === dev: EGLDevice { inner: 0x7fde6015b1c0, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793185Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card7" === dev: EGLDevice { inner: 0x7fde6015b170, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793212Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_path: "/dev/dri/card8" === dev: EGLDevice { inner: 0x7fde600968f0, device_extensions: ["EGL_EXT_device_drm", "EGL_EXT_device_drm_render_node"] }, vendor_str: "10de", device_id: "2882" 2025-09-28T12:38:27.793237Z WARN waylanddisplaycore::utils::device::gpu: Failed to read /usr/share/hwdata/pci.ids: No such file or directory (os error 2) === device_name: "" === drm_node: DrmNode { dev: 57985, ty: Render } === devices: [GPUDevice { drm_node: DrmNode { dev: 57857, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57858, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57859, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57860, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_n ode: DrmNode { dev: 57861, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57862, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57863, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57864, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57857, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57858, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57859, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57860, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57861, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57862, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57863, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }, GPUDevice { drm_node: DrmNode { dev: 57864, ty: Primary }, pci_vendor: NVIDIA, device_name: "" }] 2025-09-28T12:38:27.793260Z WARN waylanddisplaycore::comp: Error during GetRenderDevice: No GPU device for given DRM node ```
Author
Owner

@ABeltramo commented on GitHub (Sep 29, 2025):

Is this a potential issue?

Nope, ultimately we just use that code to add a workaround specific only for some Intel GPUs here, but it wouldn't do anything if we hit that warning.

Lots of users report that warning, so there's definitely something wrong with the logic, and I'll fix it, but rest assured that it wouldn't cause any kind of issue with a Nvidia GPU.

<!-- gh-comment-id:3348803932 --> @ABeltramo commented on GitHub (Sep 29, 2025): > Is this a potential issue? Nope, ultimately we just use that code to add a workaround specific **only for some Intel GPUs** [here](https://github.com/games-on-whales/gst-wayland-display/blob/412d26ae19cc4e729fda36ee0fb6a2dc38fec0ef/gst-plugin-wayland-display/src/waylandsrc/imp.rs#L378-L391), but it wouldn't do anything if we hit that warning. Lots of users report that warning, so there's definitely something wrong with the logic, and I'll fix it, but rest assured that it wouldn't cause any kind of issue with a Nvidia GPU.
Author
Owner

@zexi commented on GitHub (Oct 20, 2025):

@ABeltramo For reference only, I guess the problem with the additional /dev/nvidia* devices is related to the issue: https://github.com/NVIDIA/nvidia-container-toolkit/issues/1249, which forces the requirement to pass all GPUs for Gstreamer to recognize the nvcodec hardware encoder.

<!-- gh-comment-id:3420447145 --> @zexi commented on GitHub (Oct 20, 2025): @ABeltramo For reference only, I guess the problem with the additional `/dev/nvidia*` devices is related to the issue: https://github.com/NVIDIA/nvidia-container-toolkit/issues/1249, which forces the requirement to pass all GPUs for Gstreamer to recognize the nvcodec hardware encoder.
Author
Owner

@ABeltramo commented on GitHub (Oct 30, 2025):

This should be fixed in the latest ghcr.io/games-on-whales/wolf:wolf-ui we should now correctly pick up the right GPU for both encoding and playing games in a multi-GPU setup with the WOLF_RENDER_NODE env variable.

Can you please try it out and let me know if it works for you?

<!-- gh-comment-id:3470135507 --> @ABeltramo commented on GitHub (Oct 30, 2025): This should be fixed in the latest `ghcr.io/games-on-whales/wolf:wolf-ui` we should now correctly pick up the right GPU for both encoding and playing games in a multi-GPU setup with the `WOLF_RENDER_NODE` env variable. Can you please try it out and let me know if it works for you?
Author
Owner

@zexi commented on GitHub (Oct 31, 2025):

@ABeltramo Thanks for your reply. The following error occurred while testing ghcr.io/games-on-whales/wolf:wolf-ui:

Logs
[2025-10-31 05:31:44] 
[2025-10-31 05:31:44] [ /etc/cont-init.d/10-setup_user.sh: executing... ]
[2025-10-31 05:31:44] **** Configure default user ****
[2025-10-31 05:31:44] Container running as root. Nothing to do.
[2025-10-31 05:31:44] DONE
[2025-10-31 05:31:44] 
[2025-10-31 05:31:44] [ /etc/cont-init.d/15-setup_devices.sh: executing... ]
[2025-10-31 05:31:44] **** Configure devices ****
[2025-10-31 05:31:44] Exec device groups
[2025-10-31 05:31:44] Adding user 'root' to groups: systemd-journal,root
[2025-10-31 05:31:44] DONE
[2025-10-31 05:31:44] 
[2025-10-31 05:31:44] [ /etc/cont-init.d/30-nvidia.sh: executing... ]
[2025-10-31 05:31:44] Nvidia driver volume detected
[2025-10-31 05:31:44] [nvidia] Add Vulkan ICD
[2025-10-31 05:31:44] [nvidia] Add EGL external platform
[2025-10-31 05:31:44] [nvidia] Add egl-vendor
[2025-10-31 05:31:44] [nvidia] Add gbm backend
[2025-10-31 05:31:44] 
[2025-10-31 05:31:44] [ /etc/cont-init.d/init-gamescope.sh: executing... ]
[2025-10-31 05:31:44] Launching the container's startup script as user 'root'
0:00:00.014478629   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm0> vaInitialize: unknown libva error
0:00:00.014587312   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm1> vaInitialize: unknown libva error
0:00:00.014644153   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm2> vaInitialize: unknown libva error
0:00:00.014704725   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm3> vaInitialize: unknown libva error
0:00:00.014762246   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm4> vaInitialize: unknown libva error
0:00:00.014828118   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm5> vaInitialize: unknown libva error
0:00:00.014894350   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm6> vaInitialize: unknown libva error
0:00:00.014959171   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm7> vaInitialize: unknown libva error
0:00:00.032011687   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm8> vaInitialize: unknown libva error
0:00:00.032099589   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm9> vaInitialize: unknown libva error
0:00:00.032169761   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm10> vaInitialize: unknown libva error
0:00:00.032235203   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm11> vaInitialize: unknown libva error
0:00:00.032296805   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm12> vaInitialize: unknown libva error
0:00:00.032355066   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm13> vaInitialize: unknown libva error
0:00:00.032414318   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm14> vaInitialize: unknown libva error
0:00:00.032471389   239 0x55dc082df210 WARN               vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm15> vaInitialize: unknown libva error
0:00:00.045633213   239 0x55dc082df210 WARN      GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise
0:00:00.071783177   239 0x55dc082df210 WARN             msdkcontext gstmsdkcontext.c:178:gst_msdk_context_use_vaapi: Couldn't find a drm device node to open
0:00:00.661620333   239 0x55dc082df210 WARN               cudanvrtc gstcudanvrtc.cpp:179:gst_cuda_nvrtc_load_library_once: Failed to load 'nvrtcGetCUBINSize', 'nvrtcGetCUBINSize': /usr/local/nvidia/lib/libnvrtc.so: undefined symbol: nvrtcGetCUBINSize
0:00:11.594726208   239 0x55dc082df210 WARN                 default ges-meta-container.c:238:_set_value:<GESAsset@0x55dc08f74920> Could not set value on item: format-version
0:00:11.594759169   239 0x55dc082df210 WARN                 default ges-meta-container.c:238:_set_value:<GESAsset@0x55dc0924e5d0> Could not set value on item: format-version
0:00:11.594771069   239 0x55dc082df210 WARN                 default ges-meta-container.c:238:_set_value:<GESAsset@0x55dc0924ee20> Could not set value on item: format-version
0:00:11.595152559   239 0x55dc082df210 WARN               structure gststructure.c:3378:priv_gst_structure_parse_fields: Failed to find delimiter, r=mimetype
0:00:11.625903253   239 0x55dc082df210 WARN                 default gstvaapi.c:232:plugin_init: Cannot create a VA display
0:00:11.688660263   239 0x55dc082df210 WARN      GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise
0:00:11.693261642     1 0x5595c8c40760 WARN            GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so)
0:00:11.692021591   239 0x55dc082df210 WARN      GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise
0:00:11.698699375   239 0x55dc082df210 WARN      GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise
0:00:11.703331206     1 0x5595c8c40760 WARN            GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so)
05:31:56.314549852 INFO  | Gstreamer version: 1.26.7-0
05:31:56.316820851 DEBUG | XDG_RUNTIME_DIR=/tmp/sockets
05:31:56.316855072 INFO  | Reading config file from: /etc/wolf-20006/cfg/config.toml
05:31:56.329123293 DEBUG | /dev/dri/renderD128 vendor: NVIDIA Corporation
0:00:12.500023899     1 0x5595c8c40760 WARN               cudanvrtc gstcudanvrtc.cpp:179:gst_cuda_nvrtc_load_library_once: Failed to load 'nvrtcGetCUBINSize', 'nvrtcGetCUBINSize': /usr/local/nvidia/lib/libnvrtc.so: undefined symbol: nvrtcGetCUBINSize
05:32:07.848707287 INFO  | Using h264 encoder: nvcodec
05:32:07.849335473 INFO  | Using h265 encoder: nvcodec
05:32:07.849456886 INFO  | Using av1 encoder: nvcodec
05:32:07.849513948 INFO  | Using zero copy pipeline on Nvidia (/dev/dri/renderD128)
05:32:07.849802045 DEBUG | Loading server certificates from disk: /etc/wolf-20006/cfg/cert.pem /etc/wolf-20006/cfg/key.pem
05:32:07.853344158 DEBUG | We are running as container ID bf44cfd2f681c784d113f6ed8b471b72eedf6d10ac67d093024ac7b834445fbe
05:32:07.853375039 INFO  | Detected mounted /etc/wolf-20006 in the host as /etc/wolf-20006
05:32:07.853389109 INFO  | Detected mounted /tmp/sockets in the host as /tmp/sockets
05:32:07.853634225 INFO  | [RTP] Starting RTP ping server on ports 20122 and 20222
05:32:07.853689007 INFO  | RTSP server started on port: 20032
05:32:07.853766279 INFO  | HTTP server listening on port: 20011 
05:32:07.853925883 INFO  | Starting Wolf API server on /tmp/sockets/wolf.sock
05:32:07.853941383 INFO  | Control server started on port: 20021
05:32:07.853939203 INFO  | Starting mDNS service
05:32:07.855306139 INFO  | HTTPS server listening on port: 20006 
XDG_RUNTIME_DIR (/tmp/sockets) is not owned by us (uid 0), but by uid 1000! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
05:32:07.856724736 DEBUG | [PULSE] Connecting...
05:32:07.856814848 DEBUG | [PULSE] Context failed
05:32:07.856828899 WARN  | [PULSE] Unable to connect, Access denied
05:32:07.856888690 INFO  | Starting PulseAudio docker container
05:32:07.858583835 WARN  | [DOCKER] Container WolfPulseAudio already present, removing first
05:32:09.674374923 DEBUG | 111.202.78.70 [GET] HTTP://172.30.33.104/serverinfo
05:32:09.795133620 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/serverinfo
05:32:09.907769634 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/applist
05:32:10.136511612 DEBUG | [PULSE] Connecting...
05:32:10.137672172 DEBUG | [PULSE] Pulse connection ready
05:32:13.093063706 DEBUG | 111.202.78.70 [GET] HTTP://172.30.33.104/serverinfo
05:32:13.222821518 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/serverinfo
05:32:16.412243858 DEBUG | 111.202.78.70 [GET] HTTP://172.30.33.104/serverinfo
05:32:16.537546813 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/serverinfo
05:32:17.594922779 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/launch
05:32:17.595108784 DEBUG | Host app state folder: /etc/wolf-20006/18046928878093460462/Wolf UI, creating paths
05:32:17.595208997 DEBUG | [STREAM_SESSION] Create wayland compositor
05:32:17.595327930 DEBUG | [STREAM_SESSION] Create virtual audio sink
05:32:17.595502434 DEBUG | [GSTREAMER] Starting video producer: waylanddisplaysrc name=wolf_wayland_source render_node=/dev/dri/renderD128 ! video/x-raw(memory:CUDAMemory), width=1920, height=1080, framerate=60/1 ! 
interpipesink sync=true async=false name=18046928878093460462_video max-buffers=1
05:32:17.595536555 DEBUG | [GSTREAMER] Starting audio producer: pulsesrc device="virtual_sink_18046928878093460462.monitor" server="/tmp/sockets/pulse-socket" ! audio/x-raw, channels=2, channel-mask=(bitmask)0x3, rate=48000 ! queue leaky=downstream max-size-buffers=3 ! interpipesink name="18046928878093460462_audio" sync=true async=false max-buffers=3
05:32:17.596143431 DEBUG | [PULSE] Created virtual sink: 3
05:32:17.599389576 DEBUG | Setting up waylanddisplaysrc
05:32:17.688511375 DEBUG | [RTSP] found session by matching payload: 254.56.44.122
05:32:17.688544846 DEBUG | [RTSP] received command OPTIONS
05:32:17.756387769 DEBUG | [RTSP] found session by matching payload: 254.56.44.122
05:32:17.756420020 DEBUG | [RTSP] received command DESCRIBE
05:32:17.822816446 DEBUG | [RTSP] found session by matching payload: 254.56.44.122
05:32:17.822848726 DEBUG | [RTSP] received command SETUP
05:32:17.880262117 DEBUG | Received NEED_CONTEXT for type gst.cuda.context
05:32:17.880424241 DEBUG | Found Nvidia GPU: /proc/driver/nvidia/gpus/0000:01:00.0
05:32:17.880437492 DEBUG | Found Nvidia GPU: /proc/driver/nvidia/gpus/0000:23:00.0
05:32:17.880447592 DEBUG | Found Nvidia GPU: /proc/driver/nvidia/gpus/0000:41:00.0
05:32:17.880457622 DEBUG | Found Nvidia GPU: /proc/driver/nvidia/gpus/0000:61:00.0
05:32:17.880550505 INFO  | Creating CUDA context for device /dev/dri/renderD128 (detected CUDA device ID: 0)
05:32:17.889205921 DEBUG | [RTSP] found session by matching payload: 254.56.44.122
05:32:17.889223371 DEBUG | [RTSP] received command SETUP
05:32:17.953109371 DEBUG | [RTSP] found session by matching payload: 254.56.44.122
05:32:17.953142552 DEBUG | [RTSP] received command SETUP
05:32:17.987581052 DEBUG | Created CUDA context for device: /dev/dri/renderD128
05:32:18.015897682 DEBUG | [RTSP] found session by matching payload: 254.56.44.122
05:32:18.015933593 DEBUG | [RTSP] received command ANNOUNCE
05:32:18.016083007 DEBUG | [RTSP] Moonlight requested video format HEVC
05:32:18.016096027 DEBUG | [RTSP] Adjusted video bitrate to 15308 Kbps
0:00:33.699749248     1 0x7fb0e0019d60 WARN                basesink gstbasesink.c:1248:gst_base_sink_query_latency:<18046928878093460462_video> warning: Pipeline construction is invalid, please add queues.
0:00:33.699768688     1 0x7fb0e0019d60 WARN                basesink gstbasesink.c:1248:gst_base_sink_query_latency:<18046928878093460462_video> warning: Not enough buffering available for  the processing deadline of 0:00:00.020000000, add enough queues to buffer  0:00:00.020000000 additional data. Shortening processing latency to 0:00:00.000000000.
05:32:18.076366943 DEBUG | Wayland source message: WAYLAND_DISPLAY = wayland-7
05:32:18.076392973 INFO  | Wayland display ready, listening on: wayland-7
05:32:18.076811454 DEBUG | [STREAM_SESSION] Start runner

thread '<unnamed>' panicked at wayland-display-core/src/utils/allocator/mod.rs:187:22:
Failed to create CUDA image from EGLImage: "CUDA_ERROR_INVALID_DEVICE"
stack backtrace:
   0:     0x7fb1306c1f02 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h46a716bba2450163
   1:     0x7fb1306e2b83 - core::fmt::write::h275e5980d7008551
   2:     0x7fb1306bf263 - std::io::Write::write_fmt::h561a66a0340b6995
   3:     0x7fb1306c1d52 - std::sys::backtrace::BacktraceLock::print::hafb9d5969adc39a0
   4:     0x7fb1306c32f2 - std::panicking::default_hook::{{closure}}::hae2e97a5c4b2b777
   5:     0x7fb1306c30f5 - std::panicking::default_hook::h3db1b505cfc4eb79
   6:     0x7fb1306c3c92 - std::panicking::rust_panic_with_hook::h409da73ddef13937
   7:     0x7fb1306c3a3a - std::panicking::begin_panic_handler::{{closure}}::h159b61b27f96a9c2
   8:     0x7fb1306c23f9 - std::sys::backtrace::__rust_end_short_backtrace::h5b56844d75e766fc
   9:     0x7fb1306c36cd - __rustc[4794b31dd7191200]::rust_begin_unwind
  10:     0x7fb130419890 - core::panicking::panic_fmt::hc8737e8cca20a7c8
  11:     0x7fb130419cb6 - core::result::unwrap_failed::h727108008d9f4c9b
  12:     0x7fb130501d6a - waylanddisplaycore::utils::allocator::GsCUDABuf::new::h0249a977643c1813
  13:     0x7fb1304df0ec - waylanddisplaycore::comp::init::{{closure}}::h45f82fc1f61741d2
  14:     0x7fb1304dae62 - <calloop::sources::generic::Generic<F,E> as calloop::sources::EventSource>::process_events::h2cf08d3b0359aacb
  15:     0x7fb130457574 - <calloop::sources::channel::Channel<T> as calloop::sources::EventSource>::process_events::hce955c7bc3ef8170
  16:     0x7fb13057b342 - <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events::h975c8ce131991f20
  17:     0x7fb1305815b9 - calloop::loop_logic::EventLoop<Data>::run::hd9b2213c4eed8c6d
  18:     0x7fb13054fa13 - waylanddisplaycore::comp::init::h8132dba4601e18d9
  19:     0x7fb13044f9cc - std::sys::backtrace::__rust_begin_short_backtrace::h3c84819bdc9820c8
  20:     0x7fb13046ab2a - core::ops::function::FnOnce::call_once{{vtable.shim}}::ha966726a99be2275
  21:     0x7fb1306c4d6b - std::sys::pal::unix::thread::Thread::new::thread_start::h1822d22fde68314f
  22:     0x7fb15e7ba7f1 - <unknown>
  23:     0x7fb15e84b944 - __clone
05:32:18.087533384 DEBUG | /dev/dri/renderD128 vendor: NVIDIA Corporation
05:32:18.087587696 DEBUG | [DOCKER] Using fake-udev, creating /etc/wolf-20006/18046928878093460462/Wolf UI/udev/data
05:32:18.090018549 DEBUG | [RTSP] found session by matching payload: 254.56.44.122
05:32:18.090053220 DEBUG | [RTSP] received command PLAY
0:00:33.714568965     1 0x7fb0c8001030 WARN       waylanddisplaysrc wayland-display-core/src/lib.rs:266:waylanddisplaycore: message = Failed to recv buffer ack.; err = RecvError; 
0:00:33.714601566     1 0x7fb0c8001030 WARN                 basesrc gstbasesrc.c:3187:gst_base_src_loop:<wolf_wayland_source> error: Internal data stream error.
0:00:33.714605806     1 0x7fb0c8001030 WARN                 basesrc gstbasesrc.c:3187:gst_base_src_loop:<wolf_wayland_source> error: streaming stopped, reason error (-5)
05:32:18.091126308 ERROR | [GSTREAMER] Pipeline error: Internal data stream error.
0:00:33.714839362     1 0x7fb0e0019d60 WARN       waylanddisplaysrc wayland-display-core/src/lib.rs:290:waylanddisplaycore: message = Failed to send stop command: sending on a closed channel; 
05:32:18.095242176 DEBUG | /dev/dri/renderD128 vendor: NVIDIA Corporation
05:32:18.095260866 INFO  | NVIDIA_DRIVER_VOLUME_NAME not set, assuming nvidia driver toolkit is installed..
05:32:18.095440031 DEBUG | [DOCKER] Setting DeviceCgroupRules for hidraw:244 and input:13
05:32:18.095475102 DEBUG | [DOCKER] Container options: {"HostConfig":{"IpcMode":"host","CapAdd":["NET_RAW","MKNOD","NET_ADMIN","SYS_ADMIN","SYS_NICE"],"Privileged":false,"DeviceCgroupRules":["c 244:* rwm","c 13:* rwm"],"DeviceRequests":[{"DeviceIDs":["all"],"Capabilities":[["gpu"]]}],"Runtime":"nvidia"}}
05:32:18.144603166 DEBUG | [ENET] connected client: 111.202.78.70:14078
05:32:18.149064383 DEBUG | Starting video pipeline: 
interpipesrc name=interpipesrc_18046928878093460462_video listen-to=18046928878093460462_video is-live=true stream-sync=restart-ts max-bytes=0 max-buffers=1 leaky-type=downstream !
cudaupload !
cudaconvertscale add-borders=true !
video/x-raw(memory:CUDAMemory),format=NV12, width=1920, height=1080, pixel-aspect-ratio=1/1
 !
nvh265enc gop-size=-1 bitrate=15308 aud=false rc-mode=cbr zerolatency=true preset=p1 tune=ultra-low-latency multi-pass=two-pass-quarter !
h265parse !
video/x-h265, profile=main, stream-format=byte-stream !
rtpmoonlightpay_video name=moonlight_pay payload_size=1024 fec_percentage=20 min_required_fec_packets=2 !
appsink sync=false name=wolf_udp_sink

05:32:18.151078195 DEBUG | Setting up wolf_udp_sink
05:32:18.151181558 DEBUG | Context already set, passing it to the pipeline.
05:32:18.395586196 DEBUG | Starting audio pipeline: 
interpipesrc name=interpipesrc_18046928878093460462_audio listen-to=18046928878093460462_audio is-live=true stream-sync=restart-ts max-bytes=0 max-buffers=3 block=false !
queue max-size-buffers=3 leaky=downstream ! audiorate ! audioconvert !
opusenc bitrate=96000 bitrate-type=cbr frame-size=5 bandwidth=fullband audio-type=restricted-lowdelay max-payload-size=1400 !
rtpmoonlightpay_audio name=moonlight_pay packet_duration=5 encrypt=true aes_key="ab7f4d6644266d9b1f9edfd18b796a48" aes_iv="1169696187" !
appsink name=wolf_udp_sink
05:32:18.397087145 DEBUG | Setting up wolf_udp_sink
05:32:18.618288276 INFO  | [DOCKER] Starting container: /Wolf-UI_18046928878093460462
05:32:18.618380699 DEBUG | [DOCKER] Starting container: {
 id: a3ee09a5c296c3573ba4a908818e3194ed2130f849d84f80d424f3a6da686583
 name: /Wolf-UI_18046928878093460462
 image: ghcr.io/games-on-whales/wolf-ui:main
 status: 0
 ports: []
 mounts: [/etc/wolf-20006/18046928878093460462/Wolf UI:/home/retro:rw, /etc/wolf-20006/fake-udev:/usr/bin/fake-udev:rw, /etc/wolf-20006/18046928878093460462/Wolf UI/udev:/run/udev:rw, /tmp/sockets/wolf.sock:/var/run/wolf/wolf.sock:rw, /tmp/sockets/pulse-socket:/tmp/sockets/pulse-socket:rw, /tmp/sockets/wayland-7:/tmp/sockets/wayland-7:rw]
 devices: [/dev/dri/card1:/dev/dri/card1:mrw, /dev/nvidia0:/dev/nvidia0:mrw, /dev/nvidia-modeset:/dev/nvidia-modeset:mrw, /dev/nvidia-uvm:/dev/nvidia-uvm:mrw, /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools:mrw, /dev/nvidiactl:/dev/nvidiactl:mrw, /dev/dri/renderD128:/dev/dri/renderD128:mrw]
 env: ["GOW_REQUIRED_DEVICES=/dev/input/event* /dev/dri/* /dev/nvidia*", "WOLF_SOCKET_PATH=/var/run/wolf/wolf.sock", "WOLF_UI_AUTOUPDATE=False", "LOGLEVEL=INFO", "GAMESCOPE_REFRESH=60", "PUID=1000", "WAYLAND_DISPLAY=wayland-7", "GAMESCOPE_HEIGHT=1080", "PGID=1000", "PULSE_SERVER=/tmp/sockets/pulse-socket", "WOLF_VIDEO_BUFFER_CAPS=video/x-raw(memory:CUDAMemory)", "PULSE_SOURCE=virtual_sink_18046928878093460462.monitor", "PULSE_SINK=virtual_sink_18046928878093460462", "WOLF_SESSION_ID=18046928878093460462", "XDG_RUNTIME_DIR=/tmp/sockets", "GAMESCOPE_WIDTH=1920", "NVIDIA_VISIBLE_DEVICES=all", "NVIDIA_DRIVER_CAPABILITIES=all", "PATH=/usr/games/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "UMASK=000", "UNAME=root", "HOME=/home/retro", "TZ=Europe/London", "DEBIAN_FRONTEND=noninteractive", "NEEDRESTART_SUSPEND=1", "GAMESCOPE_VERSION=3.15.14", "BUILD_ARCHITECTURE=amd64", "DEB_BUILD_OPTIONS=noddebs"]
}
05:32:19.066230984 DEBUG | [GSTREAMER] Forcing IDR
0:00:35.220625058     1 0x7fb0c8001350 WARN                 basesrc gstbasesrc.c:4255:gst_base_src_push_segment:<interpipesrc_18046928878093460462_audio> segment format mismatched, ignore
05:32:19.797999230 DEBUG | [DOCKER] Container logs: 
[2025-10-31 05:32:18] 
J[2025-10-31 05:32:18] [ /etc/cont-init.d/10-setup_user.sh: executing... ]
7[2025-10-31 05:32:18] **** Configure default user ****
@[2025-10-31 05:32:18] Container running as root. Nothing to do.
 DONE
[2025-10-31 05:32:18] 
M[2025-10-31 05:32:18] [ /etc/cont-init.d/15-setup_devices.sh: executing... ]
2[2025-10-31 05:32:18] **** Configure devices ****
)[2025-10-31 05:32:18] Exec device groups
?[2025-10-31 05:32:18] Path '/dev/input/event*' is not present.
9[2025-10-31 05:32:18] Adding user 'root' to groups: root
 DONE
[2025-10-31 05:32:18] 
F[2025-10-31 05:32:18] [ /etc/cont-init.d/30-nvidia.sh: executing... ]
[[2025-10-31 05:32:18] Nvidia driver detected, assuming it's using the nvidia driver volume
<[2025-10-31 05:32:18] Creating symlink to nvidia-drm_gbm.so
S'/usr/lib/x86_64-linux-gnu/gbm/nvidia-drm_gbm.so' -> '../libnvidia-allocator.so.1'
9[2025-10-31 05:32:18] Creating json nvidia_icd.json file
[2025-10-31 05:32:18] 
K[2025-10-31 05:32:18] [ /etc/cont-init.d/init-gamescope.sh: executing... ]
N[2025-10-31 05:32:18] Launching the container's startup script as user 'root'
'[2025-10-31 05:32:18] Starting Wolf-UI
5[2025-10-31 05:32:18] [exec] Starting: wolf-ui -f -t
+ERROR: Can't connect to a Wayland display.
@   at: init (platform/linuxbsd/wayland/wayland_thread.cpp:3909)
0ERROR: Could not initialize the Wayland thread.
X   at: DisplayServerWayland (platform/linuxbsd/wayland/display_server_wayland.cpp:1417)
0ERROR: Can't create the Wayland display server.
O   at: create_func (platform/linuxbsd/wayland/display_server_wayland.cpp:1391)
=WARNING: Display driver wayland failed, falling back to x11.
%     at: setup2 (main/main.cpp:3045)
$ERROR: X11 Display is not available
L   at: DisplayServerX11 (platform/linuxbsd/x11/display_server_x11.cpp:6586)
CERROR: Unable to create DisplayServer, all display drivers failed.
�Use "--headless" command line argument to run the engine in headless mode if this is desired (e.g. for continuous integration).
#   at: setup2 (main/main.cpp:3055)

05:32:19.798034191 DEBUG | [DOCKER] Stopping container: /Wolf-UI_18046928878093460462
05:32:19.807211701 INFO  | Stopped container: /Wolf-UI_18046928878093460462
05:32:19.807377595 DEBUG | [STREAM_SESSION] Remove virtual audio sink
05:32:19.807539329 DEBUG | [PULSE] Removed virtual sink, status: 1
05:32:19.807577080 DEBUG | [GSTREAMER] Stopping pipeline: 18046928878093460462
05:32:19.807621562 DEBUG | [GSTREAMER] Stopping pipeline: 18046928878093460462
05:32:19.807651272 DEBUG | [GSTREAMER] Stopping audio producer: 18046928878093460462
05:32:19.852151735 INFO  | [GSTREAMER] Pipeline reached End Of Stream
05:32:21.808733714 INFO  | [GSTREAMER] Pipeline reached End Of Stream
0:00:37.432447038     1 0x7fb0bc00c7d0 WARN                audiosrc gstaudiosrc.c:227:audioringbuffer_thread_func:<pulsesrc0> error reading data -1 (reason: Success), skipping segment
05:32:21.859373417 DEBUG | [ENET] disconnected client: 111.202.78.70:14078
05:32:21.859419679 DEBUG | [GSTREAMER] Pausing pipeline: 18046928878093460462
<!-- gh-comment-id:3471416044 --> @zexi commented on GitHub (Oct 31, 2025): @ABeltramo Thanks for your reply. The following error occurred while testing `ghcr.io/games-on-whales/wolf:wolf-ui`: <details> <summary>Logs</summary> ``` [2025-10-31 05:31:44] [2025-10-31 05:31:44] [ /etc/cont-init.d/10-setup_user.sh: executing... ] [2025-10-31 05:31:44] **** Configure default user **** [2025-10-31 05:31:44] Container running as root. Nothing to do. [2025-10-31 05:31:44] DONE [2025-10-31 05:31:44] [2025-10-31 05:31:44] [ /etc/cont-init.d/15-setup_devices.sh: executing... ] [2025-10-31 05:31:44] **** Configure devices **** [2025-10-31 05:31:44] Exec device groups [2025-10-31 05:31:44] Adding user 'root' to groups: systemd-journal,root [2025-10-31 05:31:44] DONE [2025-10-31 05:31:44] [2025-10-31 05:31:44] [ /etc/cont-init.d/30-nvidia.sh: executing... ] [2025-10-31 05:31:44] Nvidia driver volume detected [2025-10-31 05:31:44] [nvidia] Add Vulkan ICD [2025-10-31 05:31:44] [nvidia] Add EGL external platform [2025-10-31 05:31:44] [nvidia] Add egl-vendor [2025-10-31 05:31:44] [nvidia] Add gbm backend [2025-10-31 05:31:44] [2025-10-31 05:31:44] [ /etc/cont-init.d/init-gamescope.sh: executing... ] [2025-10-31 05:31:44] Launching the container's startup script as user 'root' 0:00:00.014478629 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm0> vaInitialize: unknown libva error 0:00:00.014587312 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm1> vaInitialize: unknown libva error 0:00:00.014644153 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm2> vaInitialize: unknown libva error 0:00:00.014704725 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm3> vaInitialize: unknown libva error 0:00:00.014762246 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm4> vaInitialize: unknown libva error 0:00:00.014828118 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm5> vaInitialize: unknown libva error 0:00:00.014894350 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm6> vaInitialize: unknown libva error 0:00:00.014959171 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm7> vaInitialize: unknown libva error 0:00:00.032011687 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm8> vaInitialize: unknown libva error 0:00:00.032099589 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm9> vaInitialize: unknown libva error 0:00:00.032169761 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm10> vaInitialize: unknown libva error 0:00:00.032235203 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm11> vaInitialize: unknown libva error 0:00:00.032296805 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm12> vaInitialize: unknown libva error 0:00:00.032355066 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm13> vaInitialize: unknown libva error 0:00:00.032414318 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm14> vaInitialize: unknown libva error 0:00:00.032471389 239 0x55dc082df210 WARN vadisplay gstvadisplay.c:401:gst_va_display_initialize:<vadisplaydrm15> vaInitialize: unknown libva error 0:00:00.045633213 239 0x55dc082df210 WARN GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise 0:00:00.071783177 239 0x55dc082df210 WARN msdkcontext gstmsdkcontext.c:178:gst_msdk_context_use_vaapi: Couldn't find a drm device node to open 0:00:00.661620333 239 0x55dc082df210 WARN cudanvrtc gstcudanvrtc.cpp:179:gst_cuda_nvrtc_load_library_once: Failed to load 'nvrtcGetCUBINSize', 'nvrtcGetCUBINSize': /usr/local/nvidia/lib/libnvrtc.so: undefined symbol: nvrtcGetCUBINSize 0:00:11.594726208 239 0x55dc082df210 WARN default ges-meta-container.c:238:_set_value:<GESAsset@0x55dc08f74920> Could not set value on item: format-version 0:00:11.594759169 239 0x55dc082df210 WARN default ges-meta-container.c:238:_set_value:<GESAsset@0x55dc0924e5d0> Could not set value on item: format-version 0:00:11.594771069 239 0x55dc082df210 WARN default ges-meta-container.c:238:_set_value:<GESAsset@0x55dc0924ee20> Could not set value on item: format-version 0:00:11.595152559 239 0x55dc082df210 WARN structure gststructure.c:3378:priv_gst_structure_parse_fields: Failed to find delimiter, r=mimetype 0:00:11.625903253 239 0x55dc082df210 WARN default gstvaapi.c:232:plugin_init: Cannot create a VA display 0:00:11.688660263 239 0x55dc082df210 WARN GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise 0:00:11.693261642 1 0x5595c8c40760 WARN GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so) 0:00:11.692021591 239 0x55dc082df210 WARN GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise 0:00:11.698699375 239 0x55dc082df210 WARN GST_PLUGIN_LOADING gstplugin.c:546:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise 0:00:11.703331206 1 0x5595c8c40760 WARN GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so) 05:31:56.314549852 INFO | Gstreamer version: 1.26.7-0 05:31:56.316820851 DEBUG | XDG_RUNTIME_DIR=/tmp/sockets 05:31:56.316855072 INFO | Reading config file from: /etc/wolf-20006/cfg/config.toml 05:31:56.329123293 DEBUG | /dev/dri/renderD128 vendor: NVIDIA Corporation 0:00:12.500023899 1 0x5595c8c40760 WARN cudanvrtc gstcudanvrtc.cpp:179:gst_cuda_nvrtc_load_library_once: Failed to load 'nvrtcGetCUBINSize', 'nvrtcGetCUBINSize': /usr/local/nvidia/lib/libnvrtc.so: undefined symbol: nvrtcGetCUBINSize 05:32:07.848707287 INFO | Using h264 encoder: nvcodec 05:32:07.849335473 INFO | Using h265 encoder: nvcodec 05:32:07.849456886 INFO | Using av1 encoder: nvcodec 05:32:07.849513948 INFO | Using zero copy pipeline on Nvidia (/dev/dri/renderD128) 05:32:07.849802045 DEBUG | Loading server certificates from disk: /etc/wolf-20006/cfg/cert.pem /etc/wolf-20006/cfg/key.pem 05:32:07.853344158 DEBUG | We are running as container ID bf44cfd2f681c784d113f6ed8b471b72eedf6d10ac67d093024ac7b834445fbe 05:32:07.853375039 INFO | Detected mounted /etc/wolf-20006 in the host as /etc/wolf-20006 05:32:07.853389109 INFO | Detected mounted /tmp/sockets in the host as /tmp/sockets 05:32:07.853634225 INFO | [RTP] Starting RTP ping server on ports 20122 and 20222 05:32:07.853689007 INFO | RTSP server started on port: 20032 05:32:07.853766279 INFO | HTTP server listening on port: 20011 05:32:07.853925883 INFO | Starting Wolf API server on /tmp/sockets/wolf.sock 05:32:07.853941383 INFO | Control server started on port: 20021 05:32:07.853939203 INFO | Starting mDNS service 05:32:07.855306139 INFO | HTTPS server listening on port: 20006 XDG_RUNTIME_DIR (/tmp/sockets) is not owned by us (uid 0), but by uid 1000! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.) 05:32:07.856724736 DEBUG | [PULSE] Connecting... 05:32:07.856814848 DEBUG | [PULSE] Context failed 05:32:07.856828899 WARN | [PULSE] Unable to connect, Access denied 05:32:07.856888690 INFO | Starting PulseAudio docker container 05:32:07.858583835 WARN | [DOCKER] Container WolfPulseAudio already present, removing first 05:32:09.674374923 DEBUG | 111.202.78.70 [GET] HTTP://172.30.33.104/serverinfo 05:32:09.795133620 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/serverinfo 05:32:09.907769634 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/applist 05:32:10.136511612 DEBUG | [PULSE] Connecting... 05:32:10.137672172 DEBUG | [PULSE] Pulse connection ready 05:32:13.093063706 DEBUG | 111.202.78.70 [GET] HTTP://172.30.33.104/serverinfo 05:32:13.222821518 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/serverinfo 05:32:16.412243858 DEBUG | 111.202.78.70 [GET] HTTP://172.30.33.104/serverinfo 05:32:16.537546813 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/serverinfo 05:32:17.594922779 DEBUG | 111.202.78.70 [GET] HTTPS://172.30.33.104/launch 05:32:17.595108784 DEBUG | Host app state folder: /etc/wolf-20006/18046928878093460462/Wolf UI, creating paths 05:32:17.595208997 DEBUG | [STREAM_SESSION] Create wayland compositor 05:32:17.595327930 DEBUG | [STREAM_SESSION] Create virtual audio sink 05:32:17.595502434 DEBUG | [GSTREAMER] Starting video producer: waylanddisplaysrc name=wolf_wayland_source render_node=/dev/dri/renderD128 ! video/x-raw(memory:CUDAMemory), width=1920, height=1080, framerate=60/1 ! interpipesink sync=true async=false name=18046928878093460462_video max-buffers=1 05:32:17.595536555 DEBUG | [GSTREAMER] Starting audio producer: pulsesrc device="virtual_sink_18046928878093460462.monitor" server="/tmp/sockets/pulse-socket" ! audio/x-raw, channels=2, channel-mask=(bitmask)0x3, rate=48000 ! queue leaky=downstream max-size-buffers=3 ! interpipesink name="18046928878093460462_audio" sync=true async=false max-buffers=3 05:32:17.596143431 DEBUG | [PULSE] Created virtual sink: 3 05:32:17.599389576 DEBUG | Setting up waylanddisplaysrc 05:32:17.688511375 DEBUG | [RTSP] found session by matching payload: 254.56.44.122 05:32:17.688544846 DEBUG | [RTSP] received command OPTIONS 05:32:17.756387769 DEBUG | [RTSP] found session by matching payload: 254.56.44.122 05:32:17.756420020 DEBUG | [RTSP] received command DESCRIBE 05:32:17.822816446 DEBUG | [RTSP] found session by matching payload: 254.56.44.122 05:32:17.822848726 DEBUG | [RTSP] received command SETUP 05:32:17.880262117 DEBUG | Received NEED_CONTEXT for type gst.cuda.context 05:32:17.880424241 DEBUG | Found Nvidia GPU: /proc/driver/nvidia/gpus/0000:01:00.0 05:32:17.880437492 DEBUG | Found Nvidia GPU: /proc/driver/nvidia/gpus/0000:23:00.0 05:32:17.880447592 DEBUG | Found Nvidia GPU: /proc/driver/nvidia/gpus/0000:41:00.0 05:32:17.880457622 DEBUG | Found Nvidia GPU: /proc/driver/nvidia/gpus/0000:61:00.0 05:32:17.880550505 INFO | Creating CUDA context for device /dev/dri/renderD128 (detected CUDA device ID: 0) 05:32:17.889205921 DEBUG | [RTSP] found session by matching payload: 254.56.44.122 05:32:17.889223371 DEBUG | [RTSP] received command SETUP 05:32:17.953109371 DEBUG | [RTSP] found session by matching payload: 254.56.44.122 05:32:17.953142552 DEBUG | [RTSP] received command SETUP 05:32:17.987581052 DEBUG | Created CUDA context for device: /dev/dri/renderD128 05:32:18.015897682 DEBUG | [RTSP] found session by matching payload: 254.56.44.122 05:32:18.015933593 DEBUG | [RTSP] received command ANNOUNCE 05:32:18.016083007 DEBUG | [RTSP] Moonlight requested video format HEVC 05:32:18.016096027 DEBUG | [RTSP] Adjusted video bitrate to 15308 Kbps 0:00:33.699749248 1 0x7fb0e0019d60 WARN basesink gstbasesink.c:1248:gst_base_sink_query_latency:<18046928878093460462_video> warning: Pipeline construction is invalid, please add queues. 0:00:33.699768688 1 0x7fb0e0019d60 WARN basesink gstbasesink.c:1248:gst_base_sink_query_latency:<18046928878093460462_video> warning: Not enough buffering available for the processing deadline of 0:00:00.020000000, add enough queues to buffer 0:00:00.020000000 additional data. Shortening processing latency to 0:00:00.000000000. 05:32:18.076366943 DEBUG | Wayland source message: WAYLAND_DISPLAY = wayland-7 05:32:18.076392973 INFO | Wayland display ready, listening on: wayland-7 05:32:18.076811454 DEBUG | [STREAM_SESSION] Start runner thread '<unnamed>' panicked at wayland-display-core/src/utils/allocator/mod.rs:187:22: Failed to create CUDA image from EGLImage: "CUDA_ERROR_INVALID_DEVICE" stack backtrace: 0: 0x7fb1306c1f02 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h46a716bba2450163 1: 0x7fb1306e2b83 - core::fmt::write::h275e5980d7008551 2: 0x7fb1306bf263 - std::io::Write::write_fmt::h561a66a0340b6995 3: 0x7fb1306c1d52 - std::sys::backtrace::BacktraceLock::print::hafb9d5969adc39a0 4: 0x7fb1306c32f2 - std::panicking::default_hook::{{closure}}::hae2e97a5c4b2b777 5: 0x7fb1306c30f5 - std::panicking::default_hook::h3db1b505cfc4eb79 6: 0x7fb1306c3c92 - std::panicking::rust_panic_with_hook::h409da73ddef13937 7: 0x7fb1306c3a3a - std::panicking::begin_panic_handler::{{closure}}::h159b61b27f96a9c2 8: 0x7fb1306c23f9 - std::sys::backtrace::__rust_end_short_backtrace::h5b56844d75e766fc 9: 0x7fb1306c36cd - __rustc[4794b31dd7191200]::rust_begin_unwind 10: 0x7fb130419890 - core::panicking::panic_fmt::hc8737e8cca20a7c8 11: 0x7fb130419cb6 - core::result::unwrap_failed::h727108008d9f4c9b 12: 0x7fb130501d6a - waylanddisplaycore::utils::allocator::GsCUDABuf::new::h0249a977643c1813 13: 0x7fb1304df0ec - waylanddisplaycore::comp::init::{{closure}}::h45f82fc1f61741d2 14: 0x7fb1304dae62 - <calloop::sources::generic::Generic<F,E> as calloop::sources::EventSource>::process_events::h2cf08d3b0359aacb 15: 0x7fb130457574 - <calloop::sources::channel::Channel<T> as calloop::sources::EventSource>::process_events::hce955c7bc3ef8170 16: 0x7fb13057b342 - <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events::h975c8ce131991f20 17: 0x7fb1305815b9 - calloop::loop_logic::EventLoop<Data>::run::hd9b2213c4eed8c6d 18: 0x7fb13054fa13 - waylanddisplaycore::comp::init::h8132dba4601e18d9 19: 0x7fb13044f9cc - std::sys::backtrace::__rust_begin_short_backtrace::h3c84819bdc9820c8 20: 0x7fb13046ab2a - core::ops::function::FnOnce::call_once{{vtable.shim}}::ha966726a99be2275 21: 0x7fb1306c4d6b - std::sys::pal::unix::thread::Thread::new::thread_start::h1822d22fde68314f 22: 0x7fb15e7ba7f1 - <unknown> 23: 0x7fb15e84b944 - __clone 05:32:18.087533384 DEBUG | /dev/dri/renderD128 vendor: NVIDIA Corporation 05:32:18.087587696 DEBUG | [DOCKER] Using fake-udev, creating /etc/wolf-20006/18046928878093460462/Wolf UI/udev/data 05:32:18.090018549 DEBUG | [RTSP] found session by matching payload: 254.56.44.122 05:32:18.090053220 DEBUG | [RTSP] received command PLAY 0:00:33.714568965 1 0x7fb0c8001030 WARN waylanddisplaysrc wayland-display-core/src/lib.rs:266:waylanddisplaycore: message = Failed to recv buffer ack.; err = RecvError; 0:00:33.714601566 1 0x7fb0c8001030 WARN basesrc gstbasesrc.c:3187:gst_base_src_loop:<wolf_wayland_source> error: Internal data stream error. 0:00:33.714605806 1 0x7fb0c8001030 WARN basesrc gstbasesrc.c:3187:gst_base_src_loop:<wolf_wayland_source> error: streaming stopped, reason error (-5) 05:32:18.091126308 ERROR | [GSTREAMER] Pipeline error: Internal data stream error. 0:00:33.714839362 1 0x7fb0e0019d60 WARN waylanddisplaysrc wayland-display-core/src/lib.rs:290:waylanddisplaycore: message = Failed to send stop command: sending on a closed channel; 05:32:18.095242176 DEBUG | /dev/dri/renderD128 vendor: NVIDIA Corporation 05:32:18.095260866 INFO | NVIDIA_DRIVER_VOLUME_NAME not set, assuming nvidia driver toolkit is installed.. 05:32:18.095440031 DEBUG | [DOCKER] Setting DeviceCgroupRules for hidraw:244 and input:13 05:32:18.095475102 DEBUG | [DOCKER] Container options: {"HostConfig":{"IpcMode":"host","CapAdd":["NET_RAW","MKNOD","NET_ADMIN","SYS_ADMIN","SYS_NICE"],"Privileged":false,"DeviceCgroupRules":["c 244:* rwm","c 13:* rwm"],"DeviceRequests":[{"DeviceIDs":["all"],"Capabilities":[["gpu"]]}],"Runtime":"nvidia"}} 05:32:18.144603166 DEBUG | [ENET] connected client: 111.202.78.70:14078 05:32:18.149064383 DEBUG | Starting video pipeline: interpipesrc name=interpipesrc_18046928878093460462_video listen-to=18046928878093460462_video is-live=true stream-sync=restart-ts max-bytes=0 max-buffers=1 leaky-type=downstream ! cudaupload ! cudaconvertscale add-borders=true ! video/x-raw(memory:CUDAMemory),format=NV12, width=1920, height=1080, pixel-aspect-ratio=1/1 ! nvh265enc gop-size=-1 bitrate=15308 aud=false rc-mode=cbr zerolatency=true preset=p1 tune=ultra-low-latency multi-pass=two-pass-quarter ! h265parse ! video/x-h265, profile=main, stream-format=byte-stream ! rtpmoonlightpay_video name=moonlight_pay payload_size=1024 fec_percentage=20 min_required_fec_packets=2 ! appsink sync=false name=wolf_udp_sink 05:32:18.151078195 DEBUG | Setting up wolf_udp_sink 05:32:18.151181558 DEBUG | Context already set, passing it to the pipeline. 05:32:18.395586196 DEBUG | Starting audio pipeline: interpipesrc name=interpipesrc_18046928878093460462_audio listen-to=18046928878093460462_audio is-live=true stream-sync=restart-ts max-bytes=0 max-buffers=3 block=false ! queue max-size-buffers=3 leaky=downstream ! audiorate ! audioconvert ! opusenc bitrate=96000 bitrate-type=cbr frame-size=5 bandwidth=fullband audio-type=restricted-lowdelay max-payload-size=1400 ! rtpmoonlightpay_audio name=moonlight_pay packet_duration=5 encrypt=true aes_key="ab7f4d6644266d9b1f9edfd18b796a48" aes_iv="1169696187" ! appsink name=wolf_udp_sink 05:32:18.397087145 DEBUG | Setting up wolf_udp_sink 05:32:18.618288276 INFO | [DOCKER] Starting container: /Wolf-UI_18046928878093460462 05:32:18.618380699 DEBUG | [DOCKER] Starting container: { id: a3ee09a5c296c3573ba4a908818e3194ed2130f849d84f80d424f3a6da686583 name: /Wolf-UI_18046928878093460462 image: ghcr.io/games-on-whales/wolf-ui:main status: 0 ports: [] mounts: [/etc/wolf-20006/18046928878093460462/Wolf UI:/home/retro:rw, /etc/wolf-20006/fake-udev:/usr/bin/fake-udev:rw, /etc/wolf-20006/18046928878093460462/Wolf UI/udev:/run/udev:rw, /tmp/sockets/wolf.sock:/var/run/wolf/wolf.sock:rw, /tmp/sockets/pulse-socket:/tmp/sockets/pulse-socket:rw, /tmp/sockets/wayland-7:/tmp/sockets/wayland-7:rw] devices: [/dev/dri/card1:/dev/dri/card1:mrw, /dev/nvidia0:/dev/nvidia0:mrw, /dev/nvidia-modeset:/dev/nvidia-modeset:mrw, /dev/nvidia-uvm:/dev/nvidia-uvm:mrw, /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools:mrw, /dev/nvidiactl:/dev/nvidiactl:mrw, /dev/dri/renderD128:/dev/dri/renderD128:mrw] env: ["GOW_REQUIRED_DEVICES=/dev/input/event* /dev/dri/* /dev/nvidia*", "WOLF_SOCKET_PATH=/var/run/wolf/wolf.sock", "WOLF_UI_AUTOUPDATE=False", "LOGLEVEL=INFO", "GAMESCOPE_REFRESH=60", "PUID=1000", "WAYLAND_DISPLAY=wayland-7", "GAMESCOPE_HEIGHT=1080", "PGID=1000", "PULSE_SERVER=/tmp/sockets/pulse-socket", "WOLF_VIDEO_BUFFER_CAPS=video/x-raw(memory:CUDAMemory)", "PULSE_SOURCE=virtual_sink_18046928878093460462.monitor", "PULSE_SINK=virtual_sink_18046928878093460462", "WOLF_SESSION_ID=18046928878093460462", "XDG_RUNTIME_DIR=/tmp/sockets", "GAMESCOPE_WIDTH=1920", "NVIDIA_VISIBLE_DEVICES=all", "NVIDIA_DRIVER_CAPABILITIES=all", "PATH=/usr/games/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "UMASK=000", "UNAME=root", "HOME=/home/retro", "TZ=Europe/London", "DEBIAN_FRONTEND=noninteractive", "NEEDRESTART_SUSPEND=1", "GAMESCOPE_VERSION=3.15.14", "BUILD_ARCHITECTURE=amd64", "DEB_BUILD_OPTIONS=noddebs"] } 05:32:19.066230984 DEBUG | [GSTREAMER] Forcing IDR 0:00:35.220625058 1 0x7fb0c8001350 WARN basesrc gstbasesrc.c:4255:gst_base_src_push_segment:<interpipesrc_18046928878093460462_audio> segment format mismatched, ignore 05:32:19.797999230 DEBUG | [DOCKER] Container logs: [2025-10-31 05:32:18] J[2025-10-31 05:32:18] [ /etc/cont-init.d/10-setup_user.sh: executing... ] 7[2025-10-31 05:32:18] **** Configure default user **** @[2025-10-31 05:32:18] Container running as root. Nothing to do. DONE [2025-10-31 05:32:18] M[2025-10-31 05:32:18] [ /etc/cont-init.d/15-setup_devices.sh: executing... ] 2[2025-10-31 05:32:18] **** Configure devices **** )[2025-10-31 05:32:18] Exec device groups ?[2025-10-31 05:32:18] Path '/dev/input/event*' is not present. 9[2025-10-31 05:32:18] Adding user 'root' to groups: root DONE [2025-10-31 05:32:18] F[2025-10-31 05:32:18] [ /etc/cont-init.d/30-nvidia.sh: executing... ] [[2025-10-31 05:32:18] Nvidia driver detected, assuming it's using the nvidia driver volume <[2025-10-31 05:32:18] Creating symlink to nvidia-drm_gbm.so S'/usr/lib/x86_64-linux-gnu/gbm/nvidia-drm_gbm.so' -> '../libnvidia-allocator.so.1' 9[2025-10-31 05:32:18] Creating json nvidia_icd.json file [2025-10-31 05:32:18] K[2025-10-31 05:32:18] [ /etc/cont-init.d/init-gamescope.sh: executing... ] N[2025-10-31 05:32:18] Launching the container's startup script as user 'root' '[2025-10-31 05:32:18] Starting Wolf-UI 5[2025-10-31 05:32:18] [exec] Starting: wolf-ui -f -t +ERROR: Can't connect to a Wayland display. @ at: init (platform/linuxbsd/wayland/wayland_thread.cpp:3909) 0ERROR: Could not initialize the Wayland thread. X at: DisplayServerWayland (platform/linuxbsd/wayland/display_server_wayland.cpp:1417) 0ERROR: Can't create the Wayland display server. O at: create_func (platform/linuxbsd/wayland/display_server_wayland.cpp:1391) =WARNING: Display driver wayland failed, falling back to x11. % at: setup2 (main/main.cpp:3045) $ERROR: X11 Display is not available L at: DisplayServerX11 (platform/linuxbsd/x11/display_server_x11.cpp:6586) CERROR: Unable to create DisplayServer, all display drivers failed. �Use "--headless" command line argument to run the engine in headless mode if this is desired (e.g. for continuous integration). # at: setup2 (main/main.cpp:3055) 05:32:19.798034191 DEBUG | [DOCKER] Stopping container: /Wolf-UI_18046928878093460462 05:32:19.807211701 INFO | Stopped container: /Wolf-UI_18046928878093460462 05:32:19.807377595 DEBUG | [STREAM_SESSION] Remove virtual audio sink 05:32:19.807539329 DEBUG | [PULSE] Removed virtual sink, status: 1 05:32:19.807577080 DEBUG | [GSTREAMER] Stopping pipeline: 18046928878093460462 05:32:19.807621562 DEBUG | [GSTREAMER] Stopping pipeline: 18046928878093460462 05:32:19.807651272 DEBUG | [GSTREAMER] Stopping audio producer: 18046928878093460462 05:32:19.852151735 INFO | [GSTREAMER] Pipeline reached End Of Stream 05:32:21.808733714 INFO | [GSTREAMER] Pipeline reached End Of Stream 0:00:37.432447038 1 0x7fb0bc00c7d0 WARN audiosrc gstaudiosrc.c:227:audioringbuffer_thread_func:<pulsesrc0> error reading data -1 (reason: Success), skipping segment 05:32:21.859373417 DEBUG | [ENET] disconnected client: 111.202.78.70:14078 05:32:21.859419679 DEBUG | [GSTREAMER] Pausing pipeline: 18046928878093460462 ``` </details>
Author
Owner

@ABeltramo commented on GitHub (Oct 31, 2025):

Thanks for testing the latest, from the logs you've posted it seems that the call to cuGraphicsEGLRegisterImage (called here for reference) fails with CUDA_ERROR_INVALID_DEVICE which from the docs means:

This indicates that the device ordinal supplied by the user does not correspond to a valid CUDA device or that the action requested is invalid for the specified device.

Since we aren't creating a CUDA context in that code path, I suppose that we should interpret that as the action requested is invalid for the specified device, whatever that means.. So one simple test could be to try using the other devices, what about /dev/dri/renderD129 and so on? Do you get different results there?

Ultimately, if all fails, I would suggest trying out ditching the Nvidia container toolkit and give it a go with the manual nvidia driver module from the quickstart guide. If you are looking for more clues, it might be helpful to also set the env variable RUST_LOG=DEBUG to get some more info from our custom Wayland compositor

<!-- gh-comment-id:3471903432 --> @ABeltramo commented on GitHub (Oct 31, 2025): Thanks for testing the latest, from the logs you've posted it seems that the call to [cuGraphicsEGLRegisterImage](https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__EGL.html#group__CUDA__EGL_1g9f9b026d175238be6f6e79048d6879c5) (called [here](https://github.com/games-on-whales/gst-wayland-display/blob/276e8a1487c768f9634a92bf744a3db4b85d953f/wayland-display-core/src/utils/allocator/cuda/mod.rs#L502-L508) for reference) fails with `CUDA_ERROR_INVALID_DEVICE` which from the docs means: > This indicates that the device ordinal supplied by the user does not correspond to a valid CUDA device or that the action requested is invalid for the specified device. Since we aren't creating a CUDA context in that code path, I suppose that we should interpret that as **the action requested is invalid for the specified device**, whatever that means.. So one simple test could be to try using the other devices, what about `/dev/dri/renderD129` and so on? Do you get different results there? Ultimately, if all fails, I would suggest trying out ditching the Nvidia container toolkit and give it a go with the manual nvidia driver module from the [quickstart guide](https://games-on-whales.github.io/wolf/stable/user/quickstart.html). If you are looking for more clues, it might be helpful to also set the env variable `RUST_LOG=DEBUG` to get some more info from our custom Wayland compositor
Author
Owner

@Gylfkxjyjdll commented on GitHub (Oct 31, 2025):

If I try a different GPU as /dev/dri/renderD129, I receive the same error with the new wolf-ui build. i tried the nvidia container toolkit and the manual driver module. both logs here.

gamesonwhale-23.log

gamesonwhale-22.log

<!-- gh-comment-id:3472016767 --> @Gylfkxjyjdll commented on GitHub (Oct 31, 2025): If I try a different GPU as /dev/dri/renderD129, I receive the same error with the new wolf-ui build. i tried the nvidia container toolkit and the manual driver module. both logs here. [gamesonwhale-23.log](https://github.com/user-attachments/files/23257446/gamesonwhale-23.log) [gamesonwhale-22.log](https://github.com/user-attachments/files/23257373/gamesonwhale-22.log)
Author
Owner

@ABeltramo commented on GitHub (Oct 31, 2025):

@Gylfkxjyjdll thanks for testing latest!

If I try a different GPU as /dev/dri/renderD129, I receive the same error with the new wolf-ui build.

I suppose that means that if you use /dev/dri/renderD128 it works, right?
Can you share the logs of running Wolf with renderD128 with WOLF_LOG_LEVEL=DEBUG and RUST_LOG=INFO and then the same logs for renderD129?

Which exact GPUs do you have btw? I can see from the logs there's also an iGPU available..

<!-- gh-comment-id:3472154231 --> @ABeltramo commented on GitHub (Oct 31, 2025): @Gylfkxjyjdll thanks for testing latest! > If I try a different GPU as /dev/dri/renderD129, I receive the same error with the new wolf-ui build. I suppose that means that if you use `/dev/dri/renderD128` it works, right? Can you share the logs of running Wolf with `renderD128` with `WOLF_LOG_LEVEL=DEBUG` and `RUST_LOG=INFO` and then the same logs for `renderD129`? Which exact GPUs do you have btw? I can see from the logs there's also an iGPU available..
Author
Owner

@Gylfkxjyjdll commented on GitHub (Oct 31, 2025):

im sorry i was in hurry.
D128 is igpu from intel. never tried this with wolf
D129 is my "default" gaming gpu <- this works, always worked
D130-D132 i recive this error.

D130 log:

gamesonwhale-24.log

D129 log:

gamesonwhale-25.log

<!-- gh-comment-id:3472535487 --> @Gylfkxjyjdll commented on GitHub (Oct 31, 2025): im sorry i was in hurry. D128 is igpu from intel. never tried this with wolf D129 is my "default" gaming gpu <- this works, always worked D130-D132 i recive this error. D130 log: [gamesonwhale-24.log](https://github.com/user-attachments/files/23260613/gamesonwhale-24.log) D129 log: [gamesonwhale-25.log](https://github.com/user-attachments/files/23260630/gamesonwhale-25.log)
Author
Owner

@zexi commented on GitHub (Oct 31, 2025):

Since we aren't creating a CUDA context in that code path, I suppose that we should interpret that as the action requested is invalid for the specified device, whatever that means.. So one simple test could be to try using the other devices, what about /dev/dri/renderD129 and so on? Do you get different results there?

@ABeltramo I've tried the other devices by container toolkit and manual way, still got the same results. The following logs with RUST_LOG=DEBUG:

wolf-ui.log

<!-- gh-comment-id:3472626792 --> @zexi commented on GitHub (Oct 31, 2025): > Since we aren't creating a CUDA context in that code path, I suppose that we should interpret that as **the action requested is invalid for the specified device**, whatever that means.. So one simple test could be to try using the other devices, what about `/dev/dri/renderD129` and so on? Do you get different results there? @ABeltramo I've tried the other devices by container toolkit and manual way, still got the same results. The following logs with `RUST_LOG=DEBUG`: [wolf-ui.log](https://github.com/user-attachments/files/23260941/wolf-ui.log)
Author
Owner

@zexi commented on GitHub (Nov 16, 2025):

@ABeltramo Could you help review this PR: https://github.com/games-on-whales/wolf/pull/287 and see if it's ready to merge? This should resolve the nvidia multi-GPU issue in my environment.

<!-- gh-comment-id:3537855876 --> @zexi commented on GitHub (Nov 16, 2025): @ABeltramo Could you help review this PR: https://github.com/games-on-whales/wolf/pull/287 and see if it's ready to merge? This should resolve the nvidia multi-GPU issue in my environment.
Author
Owner

@ABeltramo commented on GitHub (Nov 16, 2025):

This has been merged to wolf:stable, can you guys try it out on your setups and let me know if it's working for you too?

<!-- gh-comment-id:3539351316 --> @ABeltramo commented on GitHub (Nov 16, 2025): This has been merged to `wolf:stable`, can you guys try it out on your setups and let me know if it's working for you too?
Author
Owner

@zexi commented on GitHub (Nov 17, 2025):

This has been merged to wolf:stable, can you guys try it out on your setups and let me know if it's working for you too?

@ABeltramo The latest wolf:stable image is working in my environment.

The other issue I found is that the encoder for gstreamer always uses the 1st card, even though the WOLF_RENDER_NODE is specified to the other card.

Image

Is this related to this section https://github.com/games-on-whales/wolf/blob/stable/src/moonlight-server/state/configTOML.cpp#L107-L109 of code?

<!-- gh-comment-id:3540074283 --> @zexi commented on GitHub (Nov 17, 2025): > This has been merged to `wolf:stable`, can you guys try it out on your setups and let me know if it's working for you too? @ABeltramo The latest `wolf:stable` image is working in my environment. The other issue I found is that the encoder for gstreamer always uses the 1st card, even though the `WOLF_RENDER_NODE` is specified to the other card. <img width="833" height="176" alt="Image" src="https://github.com/user-attachments/assets/1fa1cad4-52d9-41d2-8b21-2a42fb8db685" /> Is this related to this section https://github.com/games-on-whales/wolf/blob/stable/src/moonlight-server/state/configTOML.cpp#L107-L109 of code?
Author
Owner

@zexi commented on GitHub (Nov 23, 2025):

This has been merged to wolf:stable, can you guys try it out on your setups and let me know if it's working for you too?

@ABeltramo The latest wolf:stable image is working in my environment.

The other issue I found is that the encoder for gstreamer always uses the 1st card, even though the WOLF_RENDER_NODE is specified to the other card.

Image Is this related to this section https://github.com/games-on-whales/wolf/blob/stable/src/moonlight-server/state/configTOML.cpp#L107-L109 of code?

The issue of being unable to use the NVIDIA Encoder in a multi-GPU environment has been resolved.

I’ll open a new issue https://github.com/games-on-whales/wolf/issues/298 to record this problem https://github.com/games-on-whales/wolf/issues/233#issuecomment-3540074283.

<!-- gh-comment-id:3567455583 --> @zexi commented on GitHub (Nov 23, 2025): > > This has been merged to `wolf:stable`, can you guys try it out on your setups and let me know if it's working for you too? > > [@ABeltramo](https://github.com/ABeltramo) The latest `wolf:stable` image is working in my environment. > > The other issue I found is that the encoder for gstreamer always uses the 1st card, even though the `WOLF_RENDER_NODE` is specified to the other card. > > <img alt="Image" width="833" height="176" src="https://private-user-images.githubusercontent.com/10767027/515001168-1fa1cad4-52d9-41d2-8b21-2a42fb8db685.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjM4NzA2MTksIm5iZiI6MTc2Mzg3MDMxOSwicGF0aCI6Ii8xMDc2NzAyNy81MTUwMDExNjgtMWZhMWNhZDQtNTJkOS00MWQyLThiMjEtMmE0MmZiOGRiNjg1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTExMjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMTIzVDAzNTgzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ4NjUzZjk0YjRjYmZiN2U5ODdlOGFmNzI2ZWMyZWU4ZDhmMTk4ODZiOGQ0MGFmOGQxOWNjNmNhMjdjYTk1MDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.trteR99DFTVayc6LczKiYBDByLp5fxwHeLJZkOuF61w"> > Is this related to this section https://github.com/games-on-whales/wolf/blob/stable/src/moonlight-server/state/configTOML.cpp#L107-L109 of code? The issue of being unable to use the NVIDIA Encoder in a multi-GPU environment has been resolved. I’ll open a new issue https://github.com/games-on-whales/wolf/issues/298 to record this problem https://github.com/games-on-whales/wolf/issues/233#issuecomment-3540074283.
Author
Owner

@zexi commented on GitHub (Nov 23, 2025):

@ABeltramo For reference only, I guess the problem with the additional /dev/nvidia* devices is related to the issue: NVIDIA/nvidia-container-toolkit#1249, which forces the requirement to pass all GPUs for Gstreamer to recognize the nvcodec hardware encoder.

Another noteworthy issue is that we currently have to pass all NVIDIA GPUs to the container for GStreamer’s nvcodec to work properly.

This is related to NVIDIA’s drivers — for reference, here’s the link: https://forums.developer.nvidia.com/t/nvenc-and-nvdec-work-on-only-one-gpu-with-multi-gpu-setups-with-nvidia-container-toolkit-in-driver-565/347361 .

Once NVIDIA’s drivers fix this issue, we should be able to pass only one GPU to the Wolf container. This will make the GPU selection logic simpler and improve isolation.

<!-- gh-comment-id:3567460010 --> @zexi commented on GitHub (Nov 23, 2025): > [@ABeltramo](https://github.com/ABeltramo) For reference only, I guess the problem with the additional `/dev/nvidia*` devices is related to the issue: [NVIDIA/nvidia-container-toolkit#1249](https://github.com/NVIDIA/nvidia-container-toolkit/issues/1249), which forces the requirement to pass all GPUs for Gstreamer to recognize the nvcodec hardware encoder. Another noteworthy issue is that we currently have to pass all NVIDIA GPUs to the container for GStreamer’s nvcodec to work properly. This is related to NVIDIA’s drivers — for reference, here’s the link: https://forums.developer.nvidia.com/t/nvenc-and-nvdec-work-on-only-one-gpu-with-multi-gpu-setups-with-nvidia-container-toolkit-in-driver-565/347361 . Once NVIDIA’s drivers fix this issue, we should be able to pass only one GPU to the Wolf container. This will make the GPU selection logic simpler and improve isolation.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolf#157
No description provided.