Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

Valve tries to improve Big Picture Mode on Linux for NVIDIA GPUs

By - | Views: 25,349

In the latest Steam Beta Client for desktop, Valve has made an attempt to improve the experience for NVIDIA GPU owners on Linux. Since the New Big Picture Mode landed, it has been pretty rough for NVIDIA users and that's being kind. It's sluggish as heck but now perhaps for some a bit better.

For Linux from the latest Beta:

  • Fixed mouse input not working in the Store/Community pages on process startup.
  • Fixed mouse input not working in the top area of the window when dpi scaling was enabled.
  • Fixed hidpi scaling not working on Nvidia GPUs.
  • Fixed HW acceleration not being enabled on Nvidia GPUs.
  • Fixed Big Picture mode performance when using Nvidia GPUs. Known issue: some visual artifacts may appear. Use -disable-desktop-gl-fallback to restore previous behaviour if desired.

For me, I saw no improvements at all, it's still sluggish and the first attempt to load it just completely and instantly logged me out of KDE Plasma - ouch. Let me know how you get on in the comments!

The other changes:


  • Fixed issue with a black Library pane when starting Steam with -silent (used when Steam starts with your computer) and then clicking on a Steam shortcut to bring up the main window.
  • Fixed links in EULA not being clickable
  • Fixed options in context menus and dropdowns being inaccessible if they overlapped the bottom bar.
  • Fixed screenshots for mods or some non-Steam games becoming inaccessible in screenshots manager.

Steam Input

  • Reduced rumble request frequency - the requests over bluetooth may have been causing latency in some gyro over bluetooth setups.
Article taken from
Tags: Apps, Beta, Misc, Steam, Valve
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
Page: 1/2»
  Go to:

CatKiller May 18, 2023
View PC info
  • Supporter Plus
Does anyone have a firm grasp on where the issue lies? Some spec that isn't implemented by Nvidia? Some out-of-spec behaviour from Steam that happens to work on Mesa? Deliberately taking a slow path? Since it's been an issue for so long, it seems like no one knows, and they're just blindly poking.
silmeth May 18, 2023
At first try (clicked “Restart” after update) it logged me out of Plasma, and when I logged back in my BT headset settings were broken (could not choose the high-quality output audio device profile, only bad quality output + mic were present – no idea how the log-out or Steam caused this… or if something else happened simultaneously and broke the BT device settings…).

But after a full reboot it seems to be OK. High dpi UI scaling still doesn’t seem to work, but the Big Picture mode isn’t as sluggish as before. The performance isn’t great but it’s no longer a slide-show. So I guess some HW acceleration started to work?
CatKiller May 18, 2023
View PC info
  • Supporter Plus
Quoting: silmethno idea how the log-out or Steam caused this… or if something else happened simultaneously and broke the BT device settings…).
On the Steam Deck Big Picture Mode has to manage Bluetooth (and power settings, fan curve, refresh rate, and all the rest). Valve didn't isolate Steam Deck things from Big Picture things before they rolled out the new Big Picture to people where all of those things are managed by something else.
slaapliedje May 18, 2023
I wonder if they should work on creating a session file for big picture mode, so that you can select it on login from gdm/sddm/lightdm. I think that'd be somewhat useful, especially for setting up your own gaming PC in the living room.

Also, on my Debian Sid setup, I don't think I've had any of these issues (3080 GPU). I'll have to play with big picture mode some more though to say.
BigRob029 May 18, 2023
I have a really old Alienware Alpha steam machine that I'm trying to turn back into a console pc with the updated steam front end. Since its got something like a mobile gtx 970 its been quite annoying to uncover all these weird problems. More nvidia fixes is great news!
Kubuntu, Ubuntu, Pop_OS!, and Manjaro with steam auto launching into big picture from startup all had a bunch of issues for me. Batocera was probably the best solution until the steam integration and flatpak broke. I'm trying out Chimera now and it is also weirdly broken!

Better Nvidia drivers is the certainly the solution but I'll be appreciative of all the Valve optimization updates we can get!
buckysrevenge May 18, 2023
Quoting: BigRob029I have a really old Alienware Alpha steam machine that I'm trying to turn back into a console pc with the updated steam front end. Since its got something like a mobile gtx 970 its been quite annoying to uncover all these weird problems. More nvidia fixes is great news!

Yeah, I've been running my Alienware Steam Machine R2 with Manjaro Gnome (minimal install) with Steam autostarting into BPM for years, although new BPM had brought a lot of headaches, it's a breath of fresh air and an looking forward to trying out a full generic release of SteamOS on it!
mr-victory May 18, 2023
QuoteFor me, I saw no improvements at all,
It actually started working for me. It has some glitches but it is usable.
Spoiler, click me
mr-victory% prime-run gamescope -e -f -w 1920 -h 1080 -- steam -gamepadui
wlserver: [backend/headless/backend.c:68] Creating headless backend
vulkan: selecting physical device 'NVIDIA GeForce RTX 3050 Laptop GPU': queue family 2
vulkan: physical device supports DRM format modifiers
vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x3231564E (VkResult: 0)
vulkan: supported DRM formats for sampling usage:
vulkan:   0x34325241
vulkan:   0x34325258
wlserver: Running compositor on wayland display 'gamescope-0'
wlserver: [backend/headless/backend.c:16] Starting headless backend
wlserver: [xwayland/sockets.c:63] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
wlserver: [xwayland/server.c:108] Starting Xwayland on :2
wlserver: [types/wlr_compositor.c:673] New wlr_surface 0x55f4762e76f0 (res 0x55f4766d8740)
wlserver: [xwayland/server.c:273] Xserver is ready
pipewire: stream state changed: connecting
pipewire: stream state changed: paused
pipewire: stream available on node ID: 69
pipewire: renegotiating stream params (size: 1280x720)[10649]: Running Steam on garuda Soaring 64-bit[10649]: STEAM_RUNTIME is enabled automatically[10725]: Steam runtime environment up-to-date![10649]: Steam client's requirements are satisfied
[2023-05-18 20:50:17] Startup - updater built May 17 2023 20:35:41
[2023-05-18 20:50:17] Startup - Steam Client launched with: '/home/mr-victory/.local/share/Steam/ubuntu12_32/steam' '-gamepadui'
[2023-05-18 20:50:17] Opted in to client beta 'publicbeta' via beta file
You are in the 'publicbeta' client beta.
05/18 20:50:17 Init: Installing breakpad exception handler for appid(steam)/version(1684372665)/tid(10791)
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2023-05-18 20:50:18] Loading cached metrics from disk (/home/mr-victory/.local/share/Steam/package/steam_client_metrics.bin)
[2023-05-18 20:50:18] Using the following download hosts for Public, Realm steamglobal
[2023-05-18 20:50:18] 1., /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-05-18 20:50:18] 2., /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-05-18 20:50:18] 3., /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-05-18 20:50:18] Checking for update on startup
[2023-05-18 20:50:18] Checking for available updates...
[2023-05-18 20:50:18] Downloading manifest:
[2023-05-18 20:50:18] Manifest download: send request
[2023-05-18 20:50:18] Manifest download: waiting for download to finish
[2023-05-18 20:50:18] Manifest download: finished
[2023-05-18 20:50:18] Download skipped: /steam_client_publicbeta_ubuntu12 version 1684372665, installed version 1684372665, existing pending version 0
[2023-05-18 20:50:18] Nothing to do
[2023-05-18 20:50:18] Verifying installation...
[2023-05-18 20:50:18] Performing checksum verification of executable files
wlserver: [types/wlr_compositor.c:673] New wlr_surface 0x55f4766b0eb0 (res 0x55f4766dbe30)
pipewire: renegotiating stream params (size: 1920x1080)
[2023-05-18 20:50:19] Verification complete
xwm: error 3: BadWindow (invalid Window parameter) request 15 minor 0 serial 767

(process:10791): GLib-GObject-CRITICAL **: 20:50:19.307: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(process:10791): GLib-GObject-CRITICAL **: 20:50:19.307: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Loaded SDL version 3.0.0-1519-g642504bc5
XRRGetOutputInfo Workaround: initialized with override: 1 real: 0xf2f4bdb0
XRRGetCrtcInfo Workaround: initialized with override: 1 real: 0xf2f4a500
GetWin32Stats: display was not open yet, good
ComputeStartupMode: forcing gamepadui via cli
GetWin32Stats: display was not open yet, good[10807]: Runtime for steamwebhelper: defaulting to /home/mr-victory/.local/share/Steam/ubuntu12_64/steam-runtime-heavy[10807]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()[10807]: CEF sandbox already disabled
xwm: error 3: BadWindow (invalid Window parameter) request 20 minor 0 serial 1142
xwm: error 3: BadWindow (invalid Window parameter) request 20 minor 0 serial 1143
CAppInfoCacheReadFromDiskThread took 15 milliseconds to initialize
Failed to init SteamVR because it isn't installed

(steam:10791): Gtk-WARNING **: 20:50:20.079: gtk_disable_setlocale() must be called before gtk_init()
Gtk-Message: 20:50:20.080: Failed to load module "appmenu-gtk-module"
/usr/share/themes/Breeze/gtk-2.0/widgets/entry:70: error: unexpected identifier 'direction', expected character '}'

(steam:10791): Gtk-WARNING **: 20:50:20.083: Im Modulpfad »adwaita« konnte keine Themen-Engine gefunden werden,
/usr/share/themes/Breeze/gtk-2.0/widgets/styles:36: error: invalid string constant "combobox_entry", expected valid string constant

(steam:10791): GLib-CRITICAL **: 20:50:20.087: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:50:20.087: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

(steam:10791): GLib-CRITICAL **: 20:50:20.107: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:50:20.107: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
local (potentially out of sync) copy of roaming config loaded - 592 bytes.
xwm: error 3: BadWindow (invalid Window parameter) request 20 minor 0 serial 2720
xwm: error 3: BadWindow (invalid Window parameter) request 20 minor 0 serial 2721
wlserver: [types/wlr_compositor.c:673] New wlr_surface 0x55f4766b2440 (res 0x55f4766e1a80)
roaming config store loaded successfully - 592 bytes.
migrating temporary roaming config store
BRefreshApplicationsInLibrary 1: 0ms

(steam:10791): GLib-GObject-CRITICAL **: 20:50:23.101: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(steam:10791): GLib-GObject-CRITICAL **: 20:50:23.101: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
CDesktopCapturePipeWire: Opening DRM render node /dev/dri/renderD129
CDesktopCapturePipeWire: setting stream node ID: 69
ExecCommandLine: "'/home/mr-victory/.local/share/Steam/ubuntu12_32/steam' '-gamepadui'"
System startup time: 4.05 seconds
BuildCompleteAppOverviewChange: 166 apps
RegisterForAppOverview 1: 1ms
RegisterForAppOverview 2: 1ms

(steam:10791): GLib-GObject-CRITICAL **: 20:50:23.522: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(steam:10791): GLib-GObject-CRITICAL **: 20:50:23.522: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(steam:10791): GLib-GObject-CRITICAL **: 20:50:23.579: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(steam:10791): GLib-GObject-CRITICAL **: 20:50:23.579: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(steam:10791): GLib-GObject-CRITICAL **: 20:50:24.090: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(steam:10791): GLib-GObject-CRITICAL **: 20:50:24.090: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(steam:10791): GLib-CRITICAL **: 20:50:30.104: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:50:30.104: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
Errors from xkbcomp are not fatal to the X server

(steam:10791): GLib-CRITICAL **: 20:50:40.125: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:50:40.125: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

(steam:10791): GLib-CRITICAL **: 20:50:50.140: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:50:50.140: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
xwm: Unhandled client message: _NET_WM_MOVERESIZE

(steam:10791): GLib-CRITICAL **: 20:51:00.166: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:51:00.166: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

(steam:10791): GLib-CRITICAL **: 20:51:10.176: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:51:10.176: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

(steam:10791): GLib-CRITICAL **: 20:51:20.186: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:51:20.186: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
Loaded Config for Local Override Path for App ID 394360, Controller 0: /home/mr-victory/.local/share/Steam//controller_base/empty.vdf
CAPIJobRequestUserStats - Server response failed 2

(steam:10791): GLib-CRITICAL **: 20:51:30.223: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:51:30.224: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
Loaded Config for Local Override Path for App ID 444200, Controller 0: /home/mr-victory/.local/share/Steam//controller_base/empty.vdf
Loaded Config for Local Override Path for App ID 730, Controller 0: /home/mr-victory/.local/share/Steam//controller_base/empty.vdf

(steam:10791): GLib-CRITICAL **: 20:51:40.235: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:51:40.235: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

(steam:10791): GLib-CRITICAL **: 20:51:50.242: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:51:50.242: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

(steam:10791): GLib-CRITICAL **: 20:52:00.256: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:52:00.256: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

(steam:10791): GLib-CRITICAL **: 20:52:10.269: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:52:10.269: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
[2023-05-18 20:52:19] Background update loop checking for update. . .
[2023-05-18 20:52:19] Checking for available updates...
[2023-05-18 20:52:19] Downloading manifest:
[2023-05-18 20:52:19] Manifest download: send request
[2023-05-18 20:52:20] Manifest download: waiting for download to finish

(steam:10791): GLib-CRITICAL **: 20:52:20.289: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:10791): GLib-CRITICAL **: 20:52:20.289: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
[2023-05-18 20:52:21] Manifest download: finished
[2023-05-18 20:52:21] Download skipped by HTTP 304 Not Modified
[2023-05-18 20:52:21] Nothing to do
(EE) failed to read Wayland events: Broken pipe
Fatal IO error 11 (Die Ressource ist zur Zeit nicht verfügbar) on X server :2.  

Last edited by mr-victory on 18 May 2023 at 5:56 pm UTC
Philadelphus May 18, 2023
Sounds like I'll continue to wait for it to be fixed and come to the stable branch, then.
TheRiddick May 19, 2023
Well -forcedesktopscaling #.# does work now but the UI is a bit slow and wonky with mouse click zones.

The splash and login screen can often cut off part of whats being displayed since they are sized for the original tiny DPI.

Oh and yes I believe it has crashed X11 on me a few times. Normally when shutting steam down while doing something or something... whatever. Progress is progress I guess.

Last edited by TheRiddick on 19 May 2023 at 5:13 am UTC
officernice May 19, 2023
Anybody know how it works on a Raspberry Pi? I've been waiting almost a year for Pi 4 now... -.-
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.