From 5a10cdf7caa058595a33fd6b5bdad438356b6950 Mon Sep 17 00:00:00 2001 From: Matzman Date: Thu, 8 Oct 2026 00:21:52 +0200 Subject: [PATCH] Wrap-up documentation after the first tests on the Steam Frame README: status, new Steam Frame facts (Steam's generated app manifest, OpenVR library, display and font metrics) and open points. PROGRESS: partial results of T1, T2 and T4, and what is open next. Co-Authored-By: Claude Opus 5.5 --- docs/steamframe/PROGRESS.md | 28 +++++++++++++++++++++++++--- docs/steamframe/README.md | 37 ++++++++++++++++++++++++++++--------- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/docs/steamframe/PROGRESS.md b/docs/steamframe/PROGRESS.md index 99bd47e..0eb05b6 100644 --- a/docs/steamframe/PROGRESS.md +++ b/docs/steamframe/PROGRESS.md @@ -318,10 +318,10 @@ Deploy: `build_scripts/steamframe/deploy-to-frame.sh @` (SteamVR ru | # | Check | Criterion | Result | |---|---|---|---| -| T1 | `install.sh`: registration works (log: "Manifest reinstalled", via Background) | R2 | first try failed: abort without a display (fixed, see above); retest open | -| T2 | Tab appears in the dashboard, UI correct (OpenGL) | R2, R3 | open | +| T1 | `install.sh`: registration works (log: "Manifest reinstalled", via Background) | R2 | partly: "Manifest reinstalled" after three fixes (display, OpenVR library, Steam's entry), but SteamVR keeps Steam's entry for the key (see "Finding: app key …") | +| T2 | Tab appears in the dashboard, UI correct (OpenGL) | R2, R3 | partly: tab appears; root page and "Chaperone Settings" correct after the style fix; other pages not checked | | T3 | `./run.sh vulkan`: UI correct | R3 | open | -| T4 | Laser right way up, click, scrolling on several pages (both APIs) | R4 | open | +| T4 | Laser right way up, click, scrolling on several pages (both APIs) | R4 | partly: laser and navigation work (OpenGL, user's observation); scrolling and Vulkan not checked | | T5 | Text field (e.g. new profile name): SteamVR keyboard opens, input arrives | R4 | open | | T6 | An OVRAS action arrives (e.g. push-to-talk, log/notification) | R4 | open | | T7 | Play area before/after start unchanged; log: "CommitWorkingCopy skipped" | R7 | open | @@ -338,3 +338,25 @@ Deploy: `build_scripts/steamframe/deploy-to-frame.sh @` (SteamVR ru (working rules, conventions), `docs/steamframe/OVRAS-FEATURES.md` (feature analysis). - **Still open in iteration 1:** phase 4 (tests on the Frame, T1–T11) and phase 5 (assessment). + +### Wrap-up (2026-10-08) + +- **First tests on the Frame (2026-10-07/08):** six fixes, each its own commit: + `537539a` manifest commands without a display, `317db68` OpenVR library + `bin/linuxarm64`, `ec82b5f` registration when Steam lists the key, `bbb3d1b` no debug + output by default, `d664f86` layout diagnosis (font log, `--snapshot`), `ff4ea8f` Fusion + style instead of Material. +- **State on the Frame:** package of `ff4ea8f` deployed, running with + `--snapshot /tmp/ovras.png` (OpenGL). +- **Open, in this order:** + 1. Page-by-page layout check with `--snapshot` (SteamVR, Offsets, Motion, Rotation, + Space Fix, Audio, Video, Utilities, Statistics, Settings, Chaperone sub-pages). Known: + icon slightly overlaps the text on "Chaperone" and "Space Fix". + 2. Rest of T1–T11, especially T3 (Vulkan), T5 (keyboard), T8 (quit), T9 (auto-start), + T10 (CPU), T11 (uninstall). + 3. App key: Steam's entry still wins (see README "Known open points"); auto-launch is + switched on for Steam's key (`~/.config/openvr/config/vrappconfig/steam.overlay.1009850.vrappconfig`, + created by our `install.sh`). Decide on an own app key (option 2). + 4. R6: three synchronous PulseAudio queries per tick for the microphone mute state. +- **Not in the repository:** the headset photo `frame-headset-2026-10-07T22-00-14-104Z.png` + in the working tree (untracked). diff --git a/docs/steamframe/README.md b/docs/steamframe/README.md index 9daca88..d5cc5bd 100644 --- a/docs/steamframe/README.md +++ b/docs/steamframe/README.md @@ -12,16 +12,22 @@ point for continuing the work on any computer. | [OVRAS-FEATURES.md](OVRAS-FEATURES.md) | OVRAS's features and how they are implemented; issues found while reading | | [`/CLAUDE.md`](../../CLAUDE.md) | Working rules and conventions (for people and for Claude Code) | -## Status (2026-10-07) +## Status (2026-10-08) -- **Iteration 1 ("native start on the Frame"): implemented, not yet tested on the Frame.** +- **Iteration 1 ("native start on the Frame"): implemented; testing on the Frame has + started** (phase 4). OVRAS starts natively on the Frame, the dashboard tab appears, laser + and navigation work, the root page and "Chaperone Settings" fit (OpenGL). Five problems + found on the first deployment were fixed (details in [PROGRESS.md](PROGRESS.md)): + manifest commands without a display, wrong aarch64 OpenVR library, app key already + registered by Steam, debug log flood, layout cut off (Material style). - Tested without a headset: - Linux x86_64 build. - aarch64 cross build: no private Qt API except `QVulkan*`, Qt 6.8, GLIBC ≤ 2.38. - Render tests with OpenGL and Vulkan; Vulkan with validation layers and no messages. - Release package (1.6 MB). -- **Next step:** test checklist T1–T11 on the Frame ([PROGRESS.md](PROGRESS.md)), record - the results there, then assessment. +- **Next step:** continue on the Frame: page-by-page layout check with `--snapshot`, then the + rest of the test checklist T1–T11 ([PROGRESS.md](PROGRESS.md), "Wrap-up (2026-10-08)" + lists what is open), then assessment. - **After that:** iteration 2. R5 hides the features that are native in SteamVR or don't work on the Frame. Then the remaining features are checked one by one. @@ -144,14 +150,23 @@ Verified with the template on SteamOS holo 0.4.3; details in FrameAssistant's - **Manifest and SteamVR:** - The manifest needs `binary_path_linux_arm`; entries without it are skipped silently. - SteamVR refuses `VRApplication_Utility`. Manifest commands therefore fall back to - `Background`, which needs a running SteamVR. + `Background`, which needs a running SteamVR. (2026-10-07: with OVRAS, SteamVR accepted + `Utility`; the fallback stays.) + - Steam's generated `~/.local/share/Steam/config/steamapps.vrmanifest` lists every VR app + the user owns, installed or not, with a `steam://` URL. For a key listed there, SteamVR + keeps using Steam's entry even after our manifest is added (seen 2026-10-07). + - Use the OpenVR SDK's `bin/linuxarm64/libopenvr_api.so`; the SDK's `lib/linuxarm64` one + looks for the path registry in `/data/work` and never finds SteamVR. - `VR_Shutdown` must run before the graphics device is destroyed (crash with Vulkan otherwise). - **Rendering and input:** - OpenGL runs through zink (no native GL driver); Vulkan is about 1.9× faster per frame. - SteamVR reports overlay mouse coordinates with y from the bottom. - **Processes and display:** - - Over SSH there is no display: set `DISPLAY=:0` (the scripts do). + - Over SSH there is no display: set `DISPLAY=:0` (the scripts do). Commands that draw + nothing run with `QT_QPA_PLATFORM=offscreen`. + - X screen 1920×1080 with `Xft.dpi: 144`, yet Qt reports logical DPI 96 and device pixel + ratio 1 for OVRAS; default font Noto Sans (20 pt = 27 px). - Process names are cut to 15 characters: find instances by command line. - An executable must not be named like a SteamVR process (e.g. `vrdashboard`). - **Private package repositories:** the Frame's `/etc/pacman.conf` points to private Valve @@ -161,9 +176,13 @@ Verified with the template on SteamOS holo 0.4.3; details in FrameAssistant's - **SteamVR keyboard:** text fields may not get focus. The template had to send the offscreen window an explicit `FocusIn`; `qt6` doesn't (T5). -- **Unverified on the Frame:** - - QML modules: Controls/Material, Layouts, Dialogs, Multimedia. - - libXt/libXtst present? libstdc++ ≥ GLIBCXX_3.4.32? +- **App key taken by Steam's entry:** whoever owns OVRAS on Steam has + `steam.overlay.1009850` in Steam's `steamapps.vrmanifest`, and SteamVR keeps using that + entry (auto-start would launch the Steam version). On the author's Frame it is still + listed after removing the license from the account. Possible fix: an own app key for the + native build (option 2, DESIGN.md section 2a; needs its own design). +- **Unverified on the Frame:** QML modules Dialogs and Multimedia (Controls, Layouts and + the binary's libraries load, since OVRAS runs). - **Remaining play-area commit:** "auto-apply chaperone" (opt-in, default off) still commits at start-up; this belongs to R5. - **Windows:** the Windows build is broken on `steamframe`. There is no D3D11 render path