Files
DroidDeck/docs/releases/0.1.2.md

4.8 KiB

SteamDeck 0.1.2

A fix release. 0.1.1 could hang the app when you left a session - that is fixed, and the two log lines that would have explained it in the first place are in. Install it over 0.1.1; same key, same runtime, nothing to re-download.


Leaving a session could hang the app

0.1.1 collected a session's logs on the main thread as the session stopped - copying the compositor's log, scrubbing every one of the client's logs line by line, then waiting on Android's crash buffer. On a desktop session that was around four and a half seconds of frozen app, and Android ended it as not responding. The collecting now happens on its own thread.

This was introduced by 0.1.1's own logging, and it is the whole reason for this release.

crash.log was wrong twice over in 0.1.1 as well: it waited for output that arrives on another thread, so it declared the buffer empty every time, and it printed a process id where an exit status belonged. It now waits for the dump to finish and says which of three things happened - could not start, did not finish, or genuinely nothing has crashed.

Two log lines that were missing

Both came out of chasing a real report: a game that came back from the Steam menu as a small box in the corner of the screen.

  • changed its frame size: 1920x1080 -> … - a window that commits frames at a new size has rebuilt its swapchain, and that is exactly what a game shrinking looks like from the compositor's side. The size was previously nowhere in the logs and had to be guessed from a screenshot.
  • renamed "Steam Big Picture Mode" -> "Flat-Out" - gamescope keeps one window and renames it as the game takes the screen. That was silent, so the log showed a window closed under a name it had never been logged as opening, which looked like a missing event and was really a rename.

A README that matches the app

The README had grown a section per feature in the order they were written, and the parts describing the whole had fallen behind. The feature ledger now covers the drivers, audio, cores, session fixes and logs, with an honest state against each - including, in plain words, the several that set what they claim but have never been measured on hardware. The architecture diagram shows the audio relay and both Turnip slots. The session-log folder has a section of its own. And Installing now mentions the one Android setting that decides whether a session stays up at all.


Everything from 0.1.1 is here

Graphics drivers you can import and choose, per mode · Steam's overlay restored and a competing client asked to stop · DirectAudio for games and the microphone · client and game core masks · four session fixes (xalia, proot without seccomp, Turnip sysmem, Zink lazy descriptors) · Download/steamdeck-env · a folder of logs per session with credentials scrubbed and nothing identifying collected · a path for Adreno 710 / 720 / 722 through imported drivers.

See the 0.1.1 notes for what each of those does, and the README's ledger for what is proven versus merely wired.

If the client dies with nothing in its log

That is usually not the client. Android 12 and later kill the extra processes an app starts for itself, and a session is made of dozens. Some phones have a "restrict child processes" switch in Developer options - turn it off. Otherwise, once per device:

adb shell settings put global settings_enable_monitor_phantom_procs false

device.txt in every session folder records what your phone reports, and the Performance dialog says so when it is not disabled.

Credits

  • maxjivi05 (Max) - the gamescope runtime this is built on, from WinNative.
  • The412Banner - the app, the Wayland compositor, the runtime plumbing and the Steam session.
  • Winlator (brunodev85) - the audio stack, the gamepad model and the shape of a session.
  • Vauzi (Vauzi-17/710) - the Adreno 710/720/722 device entries the experimental driver carries.

Frame generation: Win-FG is built in; LSFG uses the shader chain from your own copy of Lossless Scaling, read on device and never redistributed, on groundwork from lsfg-vk (PancakeTAS).

GPL-3.0. gamescope, Mesa, Turnip, Xwayland, labwc, LXQt, PulseAudio, proot and Arch Linux ARM are their own authors'. Not affiliated with Valve - Steam, Proton and Steam Deck are Valve's, and no Valve software is redistributed here: the client is fetched from Valve's own manifest on your device.


APK SteamDeck-0.1.2.apk - 15927028 bytes sha256 a761ba112fe97f4631d598f2a5d0b1898f9b81f4575771ded39c17b743f80825 versionCode 3, built from 1f0292c by run 35674235857. Signed with the AOSP test key (v1 + v2 + v3), so it installs over 0.1.1 in place.