Skip to content

Headless backend not rendering anything apart from pointer #1984

Description

@gitautas

Is there an existing issue for this?

  • I have searched the existing issues

Are you using any gamescope patches or a forked version of gamescope?

  • The issue occurs on upstream gamescope without any modifications

Current Behavior

When running Steam through gamescope on my home server using gamescope -e --backend headless -- steam -tenfoot -gamepadui I connect to the instance using Steam link and while it's seemingly launching successfully (I can hear sounds and launch games blindly) all I see in the output is the cursor that changes between normal, clickable and resize pointers if I move the cursor around the screen.

Steps To Reproduce

  1. Use a VNC solution (like magic-mirror to log into Steam
  2. launch Steam on a machine with no display connected using the headless backend gamescope -e --backend headless -- steam -tenfoot -gamepadui
  3. Connect to the session using a Steam link client

Hardware information

- Distro: Fedora Linux 42 (Server Edition) x86_64
- CPU: 12th Gen Intel(R) Core(TM) i5-12600KF (16) @ 4.90 GHz
- GPU1: NVIDIA GeForce GTX 1660 SUPER (the auto selected vulkan device for gamescope)
- GPU2: AMD Radeon RX 7600 (unable to try without disconnecting the 1660 because Gamescope does not support specifying Vulkan device ID/index :c)
- Driver Version: NVIDIA 580.82.09

Software information

- Desktop environment: N/A
- Session type: tty
- Gamescope version: gamescope --version `[gamescope] [Info]  console: gamescope version  (gcc 15.2.1)` but DNF says `3.16.15`
- Gamescope launch command(s): `gamescope -e --backend headless -- steam -tenfoot -gamepadui`

Which gamescope backends have the issue you are reporting?

  • Wayland (default for nested gamescope)
  • DRM (default for embedded gamescope, i.e. gamescope-session)
  • SDL
  • OpenVR

Logging, screenshots, or anything else

    ~  gamescope -e --backend headless -- steam -tenfoot -gamepadui                                    INT ✘  with dripauskaite@sonic 
[gamescope] [Info]  console: gamescope version  (gcc 15.2.1)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts'
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope'
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common'
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays'
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 8)
[gamescope] [Info]  scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 9)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/etc/gamescope/scripts'
[gamescope] [Warn]  scriptmgr: Directory '/etc/gamescope/scripts' does not exist
[gamescope] [Info]  scriptmgr: Loading scripts from: '/home/dripauskaite/.config/gamescope/scripts'
[gamescope] [Warn]  scriptmgr: Directory '/home/dripauskaite/.config/gamescope/scripts' does not exist
[gamescope] [Info]  vulkan: selecting physical device 'NVIDIA GeForce GTX 1660 SUPER': queue family 2 (general queue family 0)
[gamescope] [Info]  vulkan: physical device supports DRM format modifiers
[gamescope] [Info]  wlserver: [backend/headless/backend.c:67] Creating headless backend
[gamescope] [Error] vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344241 (VkResult: 0)
[gamescope] [Error] vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344258 (VkResult: 0)
[gamescope] [Info]  vulkan: supported DRM formats for sampling usage:
[gamescope] [Info]  vulkan:   AR24 (0x34325241)
[gamescope] [Info]  vulkan:   XR24 (0x34325258)
[gamescope] [Info]  vulkan:   AB24 (0x34324241)
[gamescope] [Info]  vulkan:   XB24 (0x34324258)
[gamescope] [Info]  vulkan:   RG16 (0x36314752)
[gamescope] [Info]  vulkan:   NV12 (0x3231564E)
[gamescope] [Info]  vulkan:   AB4H (0x48344241)
[gamescope] [Info]  vulkan:   XB4H (0x48344258)
[gamescope] [Info]  vulkan:   AB30 (0x30334241)
[gamescope] [Info]  vulkan:   XB30 (0x30334258)
[gamescope] [Info]  vulkan:   AR30 (0x30335241)
[gamescope] [Info]  vulkan:   XR30 (0x30335258)
[gamescope] [Info]  wlserver: Using explicit sync when available
[gamescope] [Info]  wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info]  wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info]  wlserver: Successfully initialized libei for input emulation!
[gamescope] [Info]  wlserver: [xwayland/server.c:107] Starting Xwayland on :0
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Could not resolve keysym XF86RefreshRateToggle
> Warning:          Could not resolve keysym XF86Accessibility
> Warning:          Could not resolve keysym XF86DoNotDisturb
Errors from xkbcomp are not fatal to the X server
[gamescope] [Info]  pipewire: stream state changed: connecting
[gamescope] [Info]  pipewire: stream state changed: paused
[gamescope] [Info]  pipewire: stream available on node ID: 33
[gamescope] [Info]  xwm: Embedded, no cursor set. Using left_ptr by default.
[gamescope] [Info]  vblank: Using timerfd.
steam.sh[610886]: Running Steam on fedora 42 64-bit
steam.sh[610886]: STEAM_RUNTIME is enabled automatically
setup.sh[610938]: Steam runtime environment up-to-date!
steam.sh[610886]: Log already open
steam.sh[610886]: Steam client's requirements are satisfied
CProcessEnvironmentManager is ready, 6 preallocated environment variables.
[2025-10-10 18:32:51] Startup - updater built Oct  3 2025 02:26:15
[2025-10-10 18:32:51] Startup - Steam Client launched with: '/home/dripauskaite/.local/share/Steam/ubuntu12_32/steam' '-srt-logger-opened' '-tenfoot' '-gamepadui'
10/10 18:32:51 minidumps folder is set to /tmp/dumps
10/10 18:32:51 Init: Installing breakpad exception handler for appid(steam)/version(1759461205)/tid(610980)
Looks like steam didn't shutdown cleanly, scheduling immediate update check
CProcessEnvironmentManager is ready, 6 preallocated environment variables.
[2025-10-10 18:32:51] Process started with command-line: '/home/dripauskaite/.local/share/Steam/ubuntu12_32/steam' '-child-update-ui' '-child-update-ui-socket' '8' '-srt-logger-opened' '-tenfoot' '-gamepadui'
10/10 18:32:51 minidumps folder is set to /tmp/dumps
[2025-10-10 18:32:51] Using update UI: console
10/10 18:32:51 Init: Installing breakpad exception handler for appid(steam)/version(0)/tid(610981)
[2025-10-10 18:32:51] Create window
[2025-10-10 18:32:51] Loading cached metrics from disk (/home/dripauskaite/.local/share/Steam/package/steam_client_metrics.bin)
[2025-10-10 18:32:51] Using the following download hosts for Public, Realm steamglobal
[2025-10-10 18:32:51] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 400, source = 'update_hosts_cached.vdf'
[2025-10-10 18:32:51] 2. https://client-update.fastly.steamstatic.com, /, Realm 'steamglobal', weight was 900, source = 'update_hosts_cached.vdf'
[2025-10-10 18:32:51] 3. https://client-update.steamstatic.com, /, Realm 'steamglobal', weight was 1, source = 'baked in'
[2025-10-10 18:32:51] Checking for update on startup
[2025-10-10 18:32:51] Checking for available updates...
[2025-10-10 18:32:51] Downloading manifest: https://client-update.akamai.steamstatic.com/steam_client_ubuntu12
[2025-10-10 18:32:51] Manifest download: send request
[2025-10-10 18:32:51] Set percent complete: 0
[2025-10-10 18:32:51] Set status message: Checking for available updates...
[  0%] Checking for available updates...
[2025-10-10 18:32:51] Set percent complete: -1
[2025-10-10 18:32:51] Manifest download: waiting for download to finish
[2025-10-10 18:32:52] Manifest download: finished
[2025-10-10 18:32:52] Download skipped: /steam_client_ubuntu12 version 1759461205, installed version 1759461205, existing pending version 0
[2025-10-10 18:32:52] Nothing to do
[2025-10-10 18:32:52] Verifying installation...
[2025-10-10 18:32:52] Verifying all executable checksums
[2025-10-10 18:32:52] Set percent complete: -1
[2025-10-10 18:32:52] Set status message: Verifying installation...
[----] Verifying installation...
[2025-10-10 18:32:52] Verification complete
UpdateUI: showing logo[2025-10-10 18:32:52] Set status message:
[----]
[2025-10-10 18:32:52] Set percent complete: -201
[2025-10-10 18:32:52] Show window

Steam logging initialized: directory: /home/dripauskaite/.local/share/Steam/logs

[2025-10-10 18:32:52] ProcessNextMessage: socket disconnected
[2025-10-10 18:32:52] No more messages are expected - exiting
XRRGetOutputInfo Workaround: initialized with override: 1 real: 0xf622df90
XRRGetCrtcInfo Workaround: initialized with override: 1 real: 0xf622c670
10/10 18:32:52 minidumps folder is set to /tmp/dumps
10/10 18:32:52 Init: Installing breakpad exception handler for appid(steamsysinfo)/version(1759461205)/tid(611019)
Running query: 1 - GpuTopology
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Response: gpu_topology {
  gpus {
    id: 1
    name: "NVIDIA GeForce GTX 1660 SUPER"
    vram_size_bytes: 6700400640
    driver_id: k_EGpuDriverId_NvidiaProprietary
    driver_version_major: 580
    driver_version_minor: 82
    driver_version_patch: 9
    luid: 0
  }
  gpus {
    id: 2
    name: "llvmpipe (LLVM 20.1.8, 256 bits)"
    vram_size_bytes: 3221225472
    driver_id: k_EGpuDriverId_MesaLLVMPipe
    driver_version_major: 25
    driver_version_minor: 1
    driver_version_patch: 9
    luid: 0
  }
  default_gpu_id: 1
}

Exit code: 0
Saving response to: /tmp/steamDBofpD - 110 bytes
steamwebhelper.sh[611025]: Starting steamwebhelper under bootstrap steamrt steam runtime via: /home/dripauskaite/.local/share/Steam/steamrt64/steam-runtime-steamrt/_v2-entry-point
steamwebhelper.sh[611025]: CEF sandbox already disabled
steamwebhelper.sh[611025]: Starting steamwebhelper with steamrt steam runtime at /home/dripauskaite/.local/share/Steam/steamrt64/steam-runtime-steamrt/_v2-entry-point
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 611252
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
exec ./steamwebhelper -nocrashdialog -lang=en_US -cachedir=/home/dripauskaite/.local/share/Steam/config/htmlcache -steampid=610980 -buildid=1759461205 -steamid=0 -logdir=/home/dripauskaite/.local/share/Steam/logs -uimode=4 -startcount=0 -gamepadui -steamuniverse=Public -realm=Global -clientui=/home/dripauskaite/.local/share/Steam/clientui -steampath=/home/dripauskaite/.local/share/Steam/ubuntu12_32/steam -launcher=0 -use_xcomposite_workaround --valve-initial-threadpool-size=6 --valve-enable-site-isolation --enable-smooth-scrolling --disable-gpu-compositing --disable-gpu --no-sandbox --password-store=basic --log-file=/home/dripauskaite/.local/share/Steam/logs/cef_log.txt --disable-quick-menu --disable-component-update --disable-features=SpareRendererForSitePerProcess,DcheckIsFatal,BlockPromptsIfIgnoredOften,ValveFFmpegAllowLowDelayHEVC
[gamescope] [Info]  binding: (GRMarker) -> Adding new trigger [F12 + Control_L].
[gamescope] [Info]  binding: (GRBackgroundRecordingToggle) -> Adding new trigger [F11 + Control_L].
[gamescope] [Info]  binding: (GuideKeyboardHotkey) -> Adding new trigger [Tab + Shift_L].
[gamescope] [Info]  binding: (QAMKeyboardHotkey) -> Adding new trigger [Tab + Control_L + Shift_L].
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
[Gamescope WSI] Application info:
  pApplicationName: hellovr_vulkan
  applicationVersion: 1
  pEngineName: (null)
  engineVersion: 1
  apiVersion: 4194304
[Gamescope WSI] Executable name: vulkandriverquery
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
[gamescope] [Warn]  xwm: got the same buffer committed twice, ignoring.
[gamescope] [Warn]  xwm: D-Bus call to get unit corresponding to pid 611289 failed!

The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Could not resolve keysym XF86RefreshRateToggle
> Warning:          Could not resolve keysym XF86Accessibility
> Warning:          Could not resolve keysym XF86DoNotDisturb
Errors from xkbcomp are not fatal to the X server
sh: line 1: lsb_release: command not found
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Desktop state changed: desktop: { pos:    0,   0 size: 1280, 720 } primary: { pos:    0,   0 size: 1280, 720 }
Caching cursor image for se-resize, size 24x24, serial 54, cache size = 0
CDesktopCapturePipeWire: Opening DRM render node /dev/dri/renderD128
CDesktopCapturePipeWire: setting stream node path: gamescope
reaping pid: 610981 -- steam

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions