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
+25
-13
@@ -211,27 +211,39 @@ existing code:
|
||||
|
||||
| File | Purpose |
|
||||
|---|---|
|
||||
| `cross-arm64.Dockerfile` | Debian container with Qt 6.8 (aarch64 multiarch), CMake, Vulkan headers, X11/Xtst, libpulse |
|
||||
| `cross-arm64.Dockerfile` | Debian trixie (Qt 6.8) with arm64 multiarch libraries, cross compiler |
|
||||
| `native.Dockerfile` | The same for the host's own architecture (on the Frame: native build); base of the test container |
|
||||
| `test.Dockerfile` | Mesa (incl. lavapipe), Vulkan validation layers, Xvfb |
|
||||
| `aarch64-linux-gnu.cmake` | Cross-compile toolchain |
|
||||
| `container-build.sh` | Configures the build (`OVRAS_STEAM_FRAME=ON`) and builds it in the container |
|
||||
| `package-release.sh` | Folder with the binary, `libopenvr_api.so`, `res/`, manifests, `install.sh` / `uninstall.sh` → `.tar.gz` |
|
||||
| `deploy-to-frame.sh` | Copies the package to the Frame over SSH and runs `install.sh` |
|
||||
| `install.sh` / `uninstall.sh` | `--force-install-manifest` / `--force-remove-manifest` (section 2) and start / stop |
|
||||
| `container-build.sh cross\|native` | Builds with `OVRAS_STEAM_FRAME=ON` → `build/steamframe-<mode>/Release/` |
|
||||
| `container-test.sh` | Render tests with both APIs, Vulkan with validation layers |
|
||||
| `package-release.sh` | Build output + `install.sh` / `uninstall.sh` / `run.sh` / `README.txt` → `dist/AdvancedSettings-<version>-linux-arm64(.tar.gz)` |
|
||||
| `deploy-to-frame.sh` | Copies the package to the Frame over SSH (`rsync`) and runs `install.sh` there |
|
||||
|
||||
- **Scripts in the package:**
|
||||
- `install.sh` stops a running instance, registers it (`--force-install-manifest`, auto-start)
|
||||
and starts it with `DISPLAY=:0`. Over SSH there is no display, and Qt needs one.
|
||||
- `run.sh [opengl|vulkan]` restarts it with a given graphics API.
|
||||
- The scripts start the program in the package folder, because OVRAS writes
|
||||
`AdvancedSettings.log` into the working directory.
|
||||
- Packages use the **system Qt**: no Qt is bundled, because of section 3 the binary uses no
|
||||
private API.
|
||||
- The template's Qt-bundling fallback is not adopted for now.
|
||||
- RPATH is only `$ORIGIN` (`BUILD_WITH_INSTALL_RPATH`): the build tree gets packaged.
|
||||
|
||||
## Tests
|
||||
|
||||
- **x86_64 locally:** the build succeeds; `objdump` check (R1).
|
||||
- **Vulkan:** `container-test.sh` with validation layers. It reports no messages, and the
|
||||
render path is checked by a snapshot test (`tst_render` from the template, reduced to the
|
||||
backends).
|
||||
- **OVRAS:** the keyboard parser test `test/keyboard_input` is included in CMake if that is
|
||||
easy; otherwise it is noted as not run.
|
||||
- **On the Frame:** a checklist per acceptance criterion R1–R4, R6, R7, with both graphics
|
||||
APIs. Results go to `docs/steamframe/PROGRESS.md`.
|
||||
- **Render test `test/render/tst_render`** (`OVRAS_BUILD_TESTS=ON`):
|
||||
- Drives the backends and `QQuickRenderControl` in the same order as `OverlayController`.
|
||||
- Checks the texture description for SteamVR (type, Vulkan format) and the content and
|
||||
orientation via readback.
|
||||
- One CTest entry per API.
|
||||
- `container-test.sh` runs it with the Vulkan validation layers. It fails on validation
|
||||
messages and on skipped tests.
|
||||
- **OVRAS's keyboard parser test** (`test/keyboard_input`, qmake) is not included in CMake
|
||||
in iteration 1 (not run).
|
||||
- **On the Frame:** the checklist in `PROGRESS.md` per acceptance criterion R1–R4, R6, R7,
|
||||
with both graphics APIs.
|
||||
|
||||
## Implementation order
|
||||
|
||||
|
||||
Reference in New Issue
Block a user