Commit Graph
1231 Commits
Author SHA1 Message Date
MaxsTechReview 3305724f06 perf: FEX's file lookups and opens go through the fast path instead of proot (#1283)
* perf: FEX's in-root path lookups go through the fast path instead of proot

Android has no openat2, so libblsession walks RESOLVE_IN_ROOT lookups for
FEX one component at a time. Every fstatat, readlinkat and openat in that
walk was a raw syscall that stopped in proot. When libblfastpath is loaded,
the walk now calls its fstatat, readlinkat and openat, which answer without
proot and fall back to the raw syscall themselves. Without it the walk uses
the raw syscalls as before.

One lookup drops from 250-940 us to 26-86 us. A Graveyard Keeper launch
makes 37.5k proot stops instead of 54.0k and reaches its first scene
0.31 s sooner.

* test: count fstatat64 where the preload asks for it

* perf: FEX's own file opens go through the fast path instead of proot

FEX opens host files for the game with syscall(SYS_openat), so every one
stopped in proot even when the fast path could answer it. libblsession's
syscall() now sends SYS_openat to the fast path's openat as well, the same
way the in-root walk does, and makes the raw syscall when the fast path is
not loaded.

A Graveyard Keeper launch makes 28.0k proot stops instead of 37.5k; FEX's
openat stops go from 6,739 to none.

* fix: the fast path's start-up reads don't come back through syscall()

libblsession's syscall() now sends SYS_openat to the fast path. A process
named FEX starts the fast path by reading /proc/self/cmdline with
syscall(SYS_openat), which came straight back into the fast path and
waited on its own pthread_once. Its start-up reads now call libc's
syscall directly.
2026-10-21 22:33:39 -04:00
Kurt Himebauch 1251e9d3ee Default session orientation to landscape (#1287) 2026-10-21 21:27:25 -04:00
kingokksa 2b0c55f72e feat: let the built-in controller be turned off (#1207) 2026-10-21 19:49:31 -04:00
MaxsTechReview ed29f77fc2 fix: Chromium browsers start on the desktop (#1280)
A process's status read for another process is served read-only, so
Chromium's ReadOnlyFile check no longer kills the browser. Chromium-based
AppImages without chrome-sandbox get --no-sandbox, and Flathub Chromium and
Electron apps skip zypak's spawn portal, which cannot work here.
2026-10-21 18:17:07 -04:00
kingokksa 400325fa8f fix: some games never loaded their own Steam touch layout, and the sticks could not be placed (#1058) 2026-10-21 17:39:05 -04:00
Resul Övür 2f4fe2c5be fix: manual cloud-save upload/download no longer reports a skipped sync as success (#1068) 2026-10-21 17:32:28 -04:00
Kurt Himebauch e5b54f6248 feat: SteamVR controller types, phone controls on glasses, flat games as VR panels (#1268) 2026-10-21 21:22:21 +00:00
MaxsTechReview 2111197bea perf: performance overlay updates ride the next game frame instead of an extra composite (#1274)
* perf: performance overlay updates ride the next game frame instead of an extra composite

* gamescope: a held overlay repaint is only cleared once an output was painted

* gamescope: release.env points at p12
2026-10-21 17:20:12 -04:00
MaxsTechReview 7fa8008944 perf: network tables Android refuses are served from the synthesized copy without retrying the open (#1275) 2026-10-21 17:18:11 -04:00
MaxsTechReview e04727dbaf perf: SysV message queues stay mapped instead of reopening per call (#1272) 2026-10-21 17:14:03 -04:00
MaxsTechReview bd1350ac25 perf: games skip Steam's install-script evaluator once it has finished (#1273) 2026-10-21 16:59:52 -04:00
greg 99136ea23b Add support for Java 17 via mise (#1231) 2026-10-21 18:30:34 +00:00
kingokksa cad260b450 fix: give the touch gesture dialog room to scroll on phones (#1214) 2026-10-21 14:14:03 -04:00
Kurt Himebauch d44c20f2bb feat: Rokid Max and Air glasses with 3DoF, SBS modes, 120 Hz and brightness (#1266) 2026-10-21 14:11:01 -04:00
Kurt Himebauch e9891d5a29 feat: Remote Play host: PipeWire capture, hardware encoding, touch and game audio (#1139)
* feat: run SteamOS PipeWire and WirePlumber for gamescope screen capture

* feat: hardware Remote Play encoding through MediaCodec behind Steam's V4L2 stage

* feat: deliver Remote Play touches to gamescope as touches

* feat: route game audio through PulseAudio while a Remote Play client is connected

* fix: keep the Remote Play marker when a forked child closes the encoder

* fix: allow standalone preload tests without V4L2 encoder hook
2026-10-21 17:57:24 +00:00
Kurt Himebauch d70f5f0636 feat: local builds reuse the add-on packs a CI build installed (#1265) 2026-10-21 17:23:16 +00:00
FX1922 7bb66de192 fix: keep controller focus after installing a boot movie; Xbox and itch artwork covered (#1229) 2026-10-21 13:13:31 -04:00
kingokksa ff4a7943f5 fix: store dots stay dim when signed out and stores open on the first arranged tab (#1236) 2026-10-21 13:12:49 -04:00
0x1Nawaf 83b2164e4a feat: the performance HUD adds a colored frame-time graph, battery temperature, and opacity controls (#1256) 2026-10-21 13:12:23 -04:00
Kurt Himebauch cf17f583d4 feat: Decky Loader update channel selector (#1264) 2026-10-21 17:08:46 +00:00
Kurt Himebauch 5d8fd3f5f0 feat: warn before installing a Decky plugin ZIP (#1263) 2026-10-21 12:47:10 -04:00
Kurt Himebauch bd76b39b84 fix: keep Steam downloads running across suspend with Manual policy (#1262) 2026-10-21 15:45:39 +00:00
MaxsTechReview daeef1995f fix: moving a mouse no longer recomposes the whole session overlay (#1253) 2026-10-21 06:36:30 -04:00
MaxsTechReview 3eb0400df8 fix: clearing a game's compatibility tool in Steam keeps the Linux build (#1250) 2026-10-21 06:07:16 -04:00
MaxsTechReview 093a986b88 fix: Google sign-in from a store shows the real device instead of a Galaxy S23 Ultra (#1252) 2026-10-21 05:42:41 -04:00
MaxsTechReview 11674b711b fix: browsers added as non-Steam games show their window and load pages in Gaming Mode (#1243) 2026-10-21 02:02:18 -04:00
MaxsTechReview 20577ec045 fix: a failing image or script on a store sign-in page no longer replaces the page with an SSL error (#1238) 2026-10-21 01:04:03 -04:00
Resul Övür abeaf7ccb6 fix: a failed Steam client download ends the session with a message instead of silently (#997) 2026-10-21 00:56:05 -04:00
MaxsTechReview 152b961940 fix: GOG sign-in starts without the previous account's web session (#1235) 2026-10-21 00:44:40 -04:00
MaxsTechReview 705da08a0e fix: game files keep the full game name instead of cutting it at 40 characters (#1230) 2026-10-20 23:24:29 -04:00
Resul Övür 25938cc249 fix: file manager copy/move keeps symlinks (#1027) 2026-10-20 23:24:25 -04:00
Resul Övür 3149567328 fix: cancelling a paste stops the copy and keeps a move's source (#1029) 2026-10-20 20:05:05 -04:00
Juan Martí 8ccd771059 fix: open game Components on the game's profile (#1146) 2026-10-20 19:31:17 -04:00
Resul Övür aa5e9c3e91 fix: paste bar ignores taps while a paste is running (#1025) 2026-10-20 19:22:33 -04:00
Resul Övür e032f25114 fix: ignore uinput-* system virtual input devices in controller detection (#954) 2026-10-20 18:39:35 -04:00
Resul Övür 87763976d8 fix: empty App ID no longer crashes the game environment editor (#1014) 2026-10-20 18:31:27 -04:00
Resul Övür bdd2485e96 fix: a slow folder listing no longer replaces the folder being shown (#1028) 2026-10-20 18:31:21 -04:00
Resul Övür 6eefcf4267 fix: file manager selection actions respect the search filter (#1021) 2026-10-20 18:31:14 -04:00
MaxsTechReview 1c06ddeaf2 fix: Mono P/Invoke readv calls reach the controller hook too (#1227) 2026-10-20 18:18:10 -04:00
Resul Övür 57e1b4a71b fix: moving a stick no longer releases a D-pad or trigger held as a key (#1060) 2026-10-20 18:17:37 -04:00
maxjivi05 750780b722 fix: Mono P/Invoke readv calls reach the controller hook too 2026-10-20 18:02:29 -04:00
maxjivi05 1df7760e99 Merge branch 'main' into fix/readv-follow-up 2026-10-20 18:02:29 -04:00
Resul Övür 4575bfc32d fix: file provider rejects document ids with . or .. segments (#1016) 2026-10-20 17:58:36 -04:00
Charan Rathore 2699666766 fix: treat Unreal bootstrap launcher PE name as junk (#1020) 2026-10-20 17:52:47 -04:00
Delete228 92dbd1cd5a fix: restore Factorio ARM64 controller input through readv (#1195) 2026-10-20 17:52:40 -04:00
Resul Övür 67ab3fa634 fix: shared session logs are always scrubbed, whatever their size (#1065) 2026-10-20 17:16:36 -04:00
MaxsTechReview b3122aece0 fix: Rewired games see DroidDeck's pads (udev listing, dlsym-resolved libc calls) (#1222) 2026-10-20 16:53:37 -04:00
Resul Övür 5d87822a8a fix: added-games scan keeps games like Reach, Breach, Crashday and Observer (#1023) 2026-10-20 16:53:29 -04:00
Resul Övür 385af59e9f fix: Steam Touch labels no longer corrupt the controller config (#1017) 2026-10-20 16:53:22 -04:00
Kurt HimebauchandDetinator10 4f8a7c5596 fix: let the device sleep while a session is suspended (#1220)
* fix: stop the DirectAudio output while the sink is suspended

* fix: verify every session thread before reporting suspension

* fix: freeze PRoot first and stop each guest thread on suspend

---------

Co-authored-by: Detinator10 <8469261+Detinator10@users.noreply.github.com>
2026-10-20 16:43:09 -04:00