Steam Frame build, packaging and deployment scripts; render test
- build_scripts/steamframe/: Debian trixie (Qt 6.8) containers for the aarch64 cross build, native build and tests; toolchain; scripts to build, test (Vulkan validation layers), package (system Qt, ~3 MB) and deploy over SSH. Adapted from the vrdashboard template. - test/render/: render test for the OpenGL and Vulkan backends, driven like OverlayController (option OVRAS_BUILD_TESTS). - RPATH only $ORIGIN, without the build machine's link directories. - Ignore dist/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b22c35ae29
commit
bde675f1b8
@@ -122,3 +122,55 @@
|
||||
- The build tree contains the binary, `libopenvr_api.so`, both manifests,
|
||||
`default_action_manifests/` and `res/`.
|
||||
- Not tested yet: `Background` on the Frame (step 5).
|
||||
|
||||
### Step 5: Frame build, package, tests (2026-10-07)
|
||||
|
||||
**Changes:**
|
||||
- **`build_scripts/steamframe/`** (new, see DESIGN.md section 9): containers, toolchain, build,
|
||||
test, package and deploy scripts.
|
||||
- **`test/render/`** (new): render test for both backends (`OVRAS_BUILD_TESTS=ON`).
|
||||
- **`CMakeLists.txt`:**
|
||||
- option `OVRAS_BUILD_TESTS`
|
||||
- RPATH only `$ORIGIN` (`BUILD_WITH_INSTALL_RPATH`). Before, the cross binary also had the
|
||||
host's absolute link directory in its RUNPATH.
|
||||
- **`.gitignore`:** `dist/`.
|
||||
|
||||
**Results:**
|
||||
- **Render tests:**
|
||||
- locally (Arch, Qt 6.11, Intel Iris Xe): OpenGL and Vulkan, 4/4 passed each
|
||||
- in the container (Debian trixie, Qt 6.8, same GPU via `/dev/dri`): 2/2 passed,
|
||||
**no Vulkan validation messages**
|
||||
- Proof that the layer was active: `VK_LOADER_DEBUG=layer` shows
|
||||
"Inserted device layer VK_LAYER_KHRONOS_validation".
|
||||
- **Cross build (aarch64, Qt 6.8 Debian):** succeeds once the container has `libxt-dev`
|
||||
(`input_sender_X11.cpp` includes `X11/Intrinsic.h`).
|
||||
- `Qt_6_PRIVATE_API` without `QVulkan*`: 0 → **R1 symbols met**.
|
||||
- Qt version tag: `Qt_6.8` (fits the Frame's 6.8.0).
|
||||
- GLIBC ≤ 2.38 (the Frame has 2.39); GLIBCXX ≤ 3.4.32 (not checked against the Frame).
|
||||
- NEEDED: Qt6 Core/Gui/Qml/Quick/Widgets/Network/DBus/Multimedia/WebSockets, libX11,
|
||||
libXtst, libpulse, libopenvr_api, libstdc++/libc.
|
||||
- **Package** `dist/AdvancedSettings-5.7.4-linux-arm64.tar.gz`: 3.0 MB (9.1 MB unpacked).
|
||||
The version 5.7.4 comes from `qt6`'s `project()` (master is at 5.8.17).
|
||||
|
||||
**Open (needs the Frame):**
|
||||
- Are the QML modules OVRAS imports present in the Frame's system Qt? QtQuick.Controls
|
||||
(Material), Layouts, Dialogs, Multimedia.
|
||||
- Do libXt/libXtst exist on SteamOS? Is libstdc++ new enough?
|
||||
|
||||
### Test checklist on the Frame (step 5)
|
||||
|
||||
Deploy: `build_scripts/steamframe/deploy-to-frame.sh <user>@<frame>` (SteamVR running).
|
||||
|
||||
| # | Check | Criterion | Result |
|
||||
|---|---|---|---|
|
||||
| T1 | `install.sh`: registration works (log: "Manifest reinstalled", via Background) | R2 | open |
|
||||
| T2 | Tab appears in the dashboard, UI correct (OpenGL) | R2, R3 | open |
|
||||
| T3 | `./run.sh vulkan`: UI correct | R3 | open |
|
||||
| T4 | Laser right way up, click, scrolling on several pages (both APIs) | R4 | open |
|
||||
| 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 |
|
||||
| T8 | Quit app (OVRAS "Exit" and Quit in the SteamVR dashboard): no crash (both APIs) | R2 | open |
|
||||
| T9 | Auto-start after a SteamVR restart / reboot | R2 | open |
|
||||
| T10 | `pidstat -p $(pgrep -f AdvancedSettings_app) 10 6`: dashboard closed / OVRAS visible / other tab visible | R6 | open |
|
||||
| T11 | `uninstall.sh` unregisters it | R2 | open |
|
||||
|
||||
Reference in New Issue
Block a user