-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Is there an existing issue for this?
- I have searched the existing issues
Is your issue described in the documentation?
- I have read the documentation
Is your issue present in the latest beta/pre-release?
This issue is present in the latest pre-release
Describe the Bug
When I set adapter_name = /dev/dri/renderD128 in sunshine.conf, the logs indicate that VA-API is using a different GPU than the one I specified. It's only when I also set output_name that it uses the correct GPU, indicating that adapter_name is not working as expected.
GPU rendering devices
$ ls /dev/dri/renderD*
/dev/dri/renderD128 /dev/dri/renderD129
vainfo /dev/dri/renderD128
$ vainfo --display drm --device /dev/dri/renderD128
Trying display: drm
libva info: VA-API version 1.23.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.23 (libva 2.23.0)
vainfo: Driver version: Mesa Gallium driver 25.3.1 for AMD Radeon RX 9070 XT (radeonsi, gfx1201, LLVM 21.1.7, DRM 3.64, 6.17.7-ba22.fc43.x86_64)
vainfo: Supported profile and entrypoints
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSlice
VAProfileNone : VAEntrypointVideoProc
vainfo /dev/dri/renderD129
$ vainfo --display drm --device /dev/dri/renderD129
Trying display: drm
libva info: VA-API version 1.23.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.23 (libva 2.23.0)
vainfo: Driver version: Mesa Gallium driver 25.3.1 for AMD Ryzen 7 9800X3D 8-Core Processor (radeonsi, raphael_mendocino, LLVM 21.1.7, DRM 3.64, 6.17.7-ba22.fc43.x86_64)
vainfo: Supported profile and entrypoints
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
Notice that /dev/dri/renderD128 is AMD Radeon RX 9070 XT. If I set adapter_name = /dev/dri/renderD128 and restart sunshine, in the logs I will see the following:
[2026-01-01 15:29:00.729]: Info: config: 'adapter_name' = /dev/dri/renderD128
...
[2026-01-01 15:29:01.377]: Info: vaapi vendor: Mesa Gallium driver 25.3.1 for AMD Ryzen 7 9800X3D 8-Core Processor (radeonsi, raphael_mendocino, LLVM 21.1.7, DRM 3.64, 6.17.7-ba22.fc43.x86_64)
...
[2026-01-01 15:47:51.216]: Error: Could not open codec [av1_vaapi]: Function not implemented
This is indicating that even though the RX 9070 XT is specified as the renderer, it is still trying to use the iGPU for the AMD Ryzen 7 9800X3D. I can confirm this, because AV1 is not available to the client, even though the RX 9070 XT supports it.
I've found that setting output_name = 1 is a workaround. When setting this, AV1 becomes available and I see the following in the logs instead:
[2026-01-01 15:29:00.729]: Info: config: 'adapter_name' = /dev/dri/renderD128
[2026-01-01 15:29:00.729]: Info: config: 'output_name' = 1
...
[2026-01-01 15:31:48.933]: Info: vaapi vendor: Mesa Gallium driver 25.3.1 for AMD Radeon RX 9070 XT (radeonsi, gfx1201, LLVM 21.1.7, DRM 3.64, 6.17.7-ba22.fc43.x86_64)
...
[2026-01-01 15:31:49.017]: Info: Creating encoder [av1_vaapi]
It appears that adapter_name is not having any affect in choosing with GPU VA-API uses. It is only when explicitly selecting an output that is plugged in to the GPU that is encodes with the correct one.
My setup is non-standard. See Additional Context for more info.
Expected Behavior
Setting 'adapter_name' = /dev/dri/renderD128 will make VA-API use the /dev/dri/renderD128 GPU for encoding regardless of what output is selected.
Additional Context
In order to support custom resolutions, I am creating a virtual display with an edid firmware binary.
AMD RX 9070 XT
- DP-1 -> Physical monitor
- DP-2 -> Physical monitor
- DP-3 -> Nothing plugged in
- Reserved for virtual display
- HDMI-A-1 -> Physical monitor
Ryzen 7 9800X3D
- HDMI-A-2 -> Physical monitor
- Plugged in to motherboard's HDMI port
To create the virtual display, I have the following kernel arguments (following this post):
firmware_class.path=/usr/local/lib/firmware drm.edid_firmware=DP-3:edid/virtual-display.bin video=DP-3:e
In my sunshine apps, my Do Command runs a script that disables all monitors except for DP-3 using kscreen-doctor. The script looks like the following:
#!/bin/bash
PRIMARY_DISPLAY='DP-3'
MODE="${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT}@${SUNSHINE_CLIENT_FPS}"
kscreen-doctor output.${PRIMARY_DISPLAY}.enable \
output.${PRIMARY_DISPLAY}.mode.${MODE} \
output.${PRIMARY_DISPLAY}.brightness.100 \
output.${PRIMARY_DISPLAY}.priority.1 \
output.DP-1.disable \
output.HDMI-A-2.disable \
output.DP-2.disable \
output.HDMI-A-1.disableMy Undo Command essentially does the reverse of this, disabling the virtual display and re-enabling the physical displays.
Host Operating System
Linux
Operating System Version
https://github.com/ublue-os/bazzite/releases/tag/43.20251231.1
Architecture
amd64/x86_64
Sunshine commit or version
Sunshine version: 2025.1230.11628 commit: 2e68762
Package
Linux - Fedora Copr
GPU Type
AMD
GPU Model
AMD RX 9070 XT and AMD Ryzen 7 9800X3D
GPU Driver/Mesa Version
Mesa Gallium driver 25.3.1
Capture Method
None
Config
adapter_name = /dev/dri/renderD128
origin_web_ui_allowed = pcApps
{
"apps": [
{
"auto-detach": true,
"exclude-global-prep-cmd": false,
"exit-timeout": 5,
"image-path": "desktop.png",
"name": "Desktop",
"prep-cmd": [
{
"do": "/home/james/bazzite-scripts/display-modes/sunshine.sh",
"undo": "/home/james/bazzite-scripts/display-modes/default.sh"
}
],
"wait-all": true
},
{
"auto-detach": true,
"detached": [
"setsid steam steam://open/bigpicture"
],
"exclude-global-prep-cmd": false,
"exit-timeout": 5,
"image-path": "steam.png",
"name": "Steam Big Picture",
"prep-cmd": [
{
"do": "",
"undo": "setsid steam steam://close/bigpicture"
},
{
"do": "/home/james/bazzite-scripts/display-modes/sunshine.sh",
"undo": "/home/james/bazzite-scripts/display-modes/default.sh"
}
],
"wait-all": true
}
],
"env": {
"PATH": "$(PATH):$(HOME)/.local/bin"
}
}Relevant log output
[2026-01-01 15:47:50.599]: Info: Sunshine version: 2025.1230.11628 commit: 2e68762e3659033f455a129405046995f4e3303a
[2026-01-01 15:47:50.599]: Info: Package Publisher: LizardByte
[2026-01-01 15:47:50.599]: Info: Publisher Website: https://app.lizardbyte.dev
[2026-01-01 15:47:50.599]: Info: Get support: https://app.lizardbyte.dev/support
[2026-01-01 15:47:50.599]: Info: config: 'adapter_name' = /dev/dri/renderD128
[2026-01-01 15:47:50.599]: Info: config: 'origin_web_ui_allowed' = pc
[2026-01-01 15:47:50.599]: Error: Couldn't load cuda: -1
[2026-01-01 15:47:50.599]: Info: Found display [wayland-0]
[2026-01-01 15:47:50.600]: Info: Found interface: zxdg_output_manager_v1(31) version 3
[2026-01-01 15:47:50.600]: Info: Found interface: zwp_linux_dmabuf_v1(58) version 5
[2026-01-01 15:47:50.600]: Info: Found interface: wl_output(98) version 4
[2026-01-01 15:47:50.600]: Info: Found interface: wl_output(100) version 4
[2026-01-01 15:47:50.600]: Info: Found interface: wl_output(101) version 4
[2026-01-01 15:47:50.600]: Info: Found interface: wl_output(109) version 4
[2026-01-01 15:47:50.600]: Warning: Missing Wayland wire for wlr-export-dmabuf
[2026-01-01 15:47:50.600]: Info: /dev/dri/card2 -> amdgpu
[2026-01-01 15:47:50.601]: Info: /dev/dri/card1 -> amdgpu
[2026-01-01 15:47:50.601]: Info: Found display [wayland-0]
[2026-01-01 15:47:50.601]: Info: Found display [wayland-0]
[2026-01-01 15:47:50.601]: Info: Found interface: zxdg_output_manager_v1(31) version 3
[2026-01-01 15:47:50.601]: Info: Found interface: zwp_linux_dmabuf_v1(58) version 5
[2026-01-01 15:47:50.601]: Info: Found interface: wl_output(98) version 4
[2026-01-01 15:47:50.601]: Info: Found interface: wl_output(100) version 4
[2026-01-01 15:47:50.601]: Info: Found interface: wl_output(101) version 4
[2026-01-01 15:47:50.601]: Info: Found interface: wl_output(109) version 4
[2026-01-01 15:47:50.601]: Info: Resolution: 1920x1080
[2026-01-01 15:47:50.601]: Info: Resolution: 2560x1440
[2026-01-01 15:47:50.601]: Info: Resolution: 3840x2160
[2026-01-01 15:47:50.601]: Info: Resolution: 2560x1440
[2026-01-01 15:47:50.601]: Info: Offset: 0x240
[2026-01-01 15:47:50.601]: Info: Logical size: 1080x1920
[2026-01-01 15:47:50.601]: Info: Name: DP-2
[2026-01-01 15:47:50.601]: Info: Found monitor: HP Inc. HP E243
[2026-01-01 15:47:50.601]: Info: Offset: 1080x431
[2026-01-01 15:47:50.601]: Info: Logical size: 2560x1440
[2026-01-01 15:47:50.601]: Info: Name: DP-1
[2026-01-01 15:47:50.601]: Info: Found monitor: GIGA-BYTE TECHNOLOGY CO., LTD. G27Q
[2026-01-01 15:47:50.601]: Info: Offset: 6200x0
[2026-01-01 15:47:50.601]: Info: Logical size: 3840x2160
[2026-01-01 15:47:50.601]: Info: Name: HDMI-A-1
[2026-01-01 15:47:50.601]: Info: Found monitor: LG Electronics LG TV SSCR2
[2026-01-01 15:47:50.601]: Info: Offset: 3640x431
[2026-01-01 15:47:50.601]: Info: Logical size: 2560x1440
[2026-01-01 15:47:50.601]: Info: Name: HDMI-A-2
[2026-01-01 15:47:50.601]: Info: Found monitor: GIGA-BYTE TECHNOLOGY CO., LTD. G27Q
[2026-01-01 15:47:50.601]: Info: -------- Start of KMS monitor list --------
[2026-01-01 15:47:50.601]: Warning: Mismatch on expected Resolution compared to actual resolution: 0x0 vs 2560x1440
[2026-01-01 15:47:50.601]: Info: Monitor 0 is DP-1: GIGA-BYTE TECHNOLOGY CO., LTD. G27Q
[2026-01-01 15:47:50.601]: Warning: Mismatch on expected Resolution compared to actual resolution: 2560x1440 vs 3840x2160
[2026-01-01 15:47:50.601]: Info: Monitor 0 is HDMI-A-1: LG Electronics LG TV SSCR2
[2026-01-01 15:47:50.601]: Warning: Mismatch on expected Resolution compared to actual resolution: 3840x2160 vs 2560x1440
[2026-01-01 15:47:50.601]: Info: Monitor 1 is HDMI-A-2: GIGA-BYTE TECHNOLOGY CO., LTD. G27Q
[2026-01-01 15:47:50.601]: Info: --------- End of KMS monitor list ---------
[2026-01-01 15:47:50.672]: Info: // Testing for available encoders, this may generate errors. You can safely ignore those errors. //
[2026-01-01 15:47:50.672]: Info: Trying encoder [nvenc]
[2026-01-01 15:47:50.672]: Info: Screencasting with KMS
[2026-01-01 15:47:50.672]: Info: /dev/dri/card2 -> amdgpu
[2026-01-01 15:47:50.673]: Info: /dev/dri/card1 -> amdgpu
[2026-01-01 15:47:50.673]: Error: Couldn't find monitor [0]
[2026-01-01 15:47:50.673]: Info: /dev/dri/card2 -> amdgpu
[2026-01-01 15:47:50.673]: Info: /dev/dri/card1 -> amdgpu
[2026-01-01 15:47:50.673]: Error: Couldn't find monitor [0]
[2026-01-01 15:47:50.873]: Info: Screencasting with KMS
[2026-01-01 15:47:50.873]: Info: /dev/dri/card2 -> amdgpu
[2026-01-01 15:47:50.874]: Info: /dev/dri/card1 -> amdgpu
[2026-01-01 15:47:50.874]: Error: Couldn't find monitor [0]
[2026-01-01 15:47:50.874]: Info: /dev/dri/card2 -> amdgpu
[2026-01-01 15:47:50.874]: Info: /dev/dri/card1 -> amdgpu
[2026-01-01 15:47:50.874]: Error: Couldn't find monitor [0]
[2026-01-01 15:47:51.075]: Info: Encoder [nvenc] failed
[2026-01-01 15:47:51.075]: Info: Trying encoder [vaapi]
[2026-01-01 15:47:51.075]: Info: Screencasting with KMS
[2026-01-01 15:47:51.075]: Info: /dev/dri/card2 -> amdgpu
[2026-01-01 15:47:51.075]: Info: Found monitor for DRM screencasting
[2026-01-01 15:47:51.075]: Info: Found connector ID [108]
[2026-01-01 15:47:51.075]: Info: Found cursor plane [91]
[2026-01-01 15:47:51.095]: Info: Creating encoder [h264_vaapi]
[2026-01-01 15:47:51.095]: Info: Color coding: SDR (Rec. 601)
[2026-01-01 15:47:51.095]: Info: Color depth: 8-bit
[2026-01-01 15:47:51.095]: Info: Color range: JPEG
[2026-01-01 15:47:51.108]: Info: vaapi vendor: Mesa Gallium driver 25.3.1 for AMD Ryzen 7 9800X3D 8-Core Processor (radeonsi, raphael_mendocino, LLVM 21.1.7, DRM 3.64, 6.17.7-ba22.fc43.x86_64)
[2026-01-01 15:47:51.109]: Info: Streaming bitrate is 1000000
[2026-01-01 15:47:51.109]: Info: Using normal encoding mode
[2026-01-01 15:47:51.109]: Info: Using default rate control
[2026-01-01 15:47:51.144]: Info: Creating encoder [hevc_vaapi]
[2026-01-01 15:47:51.144]: Info: Color coding: SDR (Rec. 601)
[2026-01-01 15:47:51.144]: Info: Color depth: 8-bit
[2026-01-01 15:47:51.144]: Info: Color range: JPEG
[2026-01-01 15:47:51.157]: Info: vaapi vendor: Mesa Gallium driver 25.3.1 for AMD Ryzen 7 9800X3D 8-Core Processor (radeonsi, raphael_mendocino, LLVM 21.1.7, DRM 3.64, 6.17.7-ba22.fc43.x86_64)
[2026-01-01 15:47:51.157]: Info: Streaming bitrate is 1000000
[2026-01-01 15:47:51.157]: Info: Using normal encoding mode
[2026-01-01 15:47:51.157]: Info: Using default rate control
[2026-01-01 15:47:51.201]: Info: Creating encoder [av1_vaapi]
[2026-01-01 15:47:51.201]: Info: Color coding: SDR (Rec. 601)
[2026-01-01 15:47:51.201]: Info: Color depth: 8-bit
[2026-01-01 15:47:51.201]: Info: Color range: JPEG
[2026-01-01 15:47:51.213]: Info: vaapi vendor: Mesa Gallium driver 25.3.1 for AMD Ryzen 7 9800X3D 8-Core Processor (radeonsi, raphael_mendocino, LLVM 21.1.7, DRM 3.64, 6.17.7-ba22.fc43.x86_64)
[2026-01-01 15:47:51.213]: Info: Streaming bitrate is 1000000
[2026-01-01 15:47:51.213]: Error: [av1_vaapi @ 0xce49100] No usable encoding entrypoint found for profile VAProfileAV1Profile0 (32).
[2026-01-01 15:47:51.216]: Error: Could not open codec [av1_vaapi]: Function not implemented
[2026-01-01 15:47:51.236]: Info: Screencasting with KMS
[2026-01-01 15:47:51.237]: Info: /dev/dri/card2 -> amdgpu
[2026-01-01 15:47:51.237]: Info: Found monitor for DRM screencasting
[2026-01-01 15:47:51.237]: Info: Found connector ID [108]
[2026-01-01 15:47:51.237]: Info: Found cursor plane [91]
[2026-01-01 15:47:51.253]: Info: Creating encoder [hevc_vaapi]
[2026-01-01 15:47:51.253]: Info: Color coding: SDR (Rec. 709)
[2026-01-01 15:47:51.253]: Info: Color depth: 10-bit
[2026-01-01 15:47:51.253]: Info: Color range: JPEG
[2026-01-01 15:47:51.266]: Info: vaapi vendor: Mesa Gallium driver 25.3.1 for AMD Ryzen 7 9800X3D 8-Core Processor (radeonsi, raphael_mendocino, LLVM 21.1.7, DRM 3.64, 6.17.7-ba22.fc43.x86_64)
[2026-01-01 15:47:51.266]: Info: Streaming bitrate is 1000000
[2026-01-01 15:47:51.266]: Info: Using normal encoding mode
[2026-01-01 15:47:51.266]: Info: Using default rate control
[2026-01-01 15:47:51.299]: Info:
[2026-01-01 15:47:51.299]: Info: // Ignore any errors mentioned above, they are not relevant. //
[2026-01-01 15:47:51.299]: Info:
[2026-01-01 15:47:51.299]: Info: Found H.264 encoder: h264_vaapi [vaapi]
[2026-01-01 15:47:51.299]: Info: Found HEVC encoder: hevc_vaapi [vaapi]
[2026-01-01 15:47:51.300]: Info: Starting system tray
[2026-01-01 15:47:51.301]: Info: Adding avahi service bazzite
[2026-01-01 15:47:51.302]: Info: Configuration UI available at [https://localhost:47990]
[2026-01-01 15:47:51.364]: Info: System tray created
[2026-01-01 15:47:51.364]: Info: Starting main loop
[2026-01-01 15:47:52.206]: Info: Avahi service bazzite successfully established.