The CMake build had the version hard-coded as 5.7.4, while the qmake build
read it from compile_version_string.txt (5.8.17-release). The stale number
also made the version check report an update. As in the qmake build, the
full string becomes APPLICATION_VERSION and its numeric part the project
version.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
- manifest.vrmanifest: binary_path_linux and binary_path_linux_arm. The
Steam Frame's SteamVR reads only binary_path_linux_arm.
- handleManifests(): connect as Utility app first (works without a running
SteamVR, e.g. from the Windows installer); if SteamVR refuses Utility apps,
as on the Steam Frame, connect as Background app. Fail right away on other
errors instead of going through initializeOpenVR()'s retry loop.
- main(): check --graphics-api before connecting to OpenVR, so a wrong value
fails right away.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the QRhi rendering in OverlayController (private Qt API) with the
render backends of the vrdashboard template (src/render/), which use public
Qt API only (QQuickRenderTarget::fromOpenGLTexture / fromVulkanImage). The
binary then runs on another Qt 6 patch release, e.g. the Steam Frame's system
Qt.
The Vulkan backend also does what SteamVR requires and the QRhi path lacked:
the required instance/device extensions and the HMD's GPU (via
openvr_init::renderInterop()), VK_FORMAT_R8G8B8A8_UNORM, and the transition to
TRANSFER_SRC_OPTIMAL after each frame.
- New option --graphics-api opengl|vulkan (default opengl, no fallback).
- Shutdown() calls VR_Shutdown before the render target and Qt's device go
(crash on the Steam Frame with Vulkan otherwise); it runs only once.
- Mouse y is flipped on every platform: SteamVR reports it in GL convention.
- Render delay 5 -> 16 ms (about 60 fps).
- GuiPrivate is no longer needed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- CMake option OVRAS_STEAM_FRAME. It is evaluated only in
src/utils/platform_capabilities.h, which turns it into named capability
constants and platform defaults.
- Where the chaperone can't be committed (Steam Frame: it shifts the play
area), MoveCenterTabController no longer commits the working copy at start-up
or when applying reset data, and doesn't create the init autosave profile.
Skips are logged once.
- In "vsync disabled" mode the pump timer now runs directly at the custom tick
rate instead of firing every 1 ms and counting. The Frame defaults to this
mode at 11 ms (~90 Hz).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Remove Core5Compat (unused, not part of the Steam Frame's system Qt).
- Request GuiPrivate explicitly (required since Qt 6.10 for QRhi); temporary
until rendering moves to public API.
- Compile QML to bytecode only: C++ generated from QML uses private Qt API
that only matches the exact Qt version it was built with.
- Pick the OpenVR library per architecture (linux64, linuxarm64, win64) for
linking and for the copy next to the binary; RPATH $ORIGIN.
- Link libXtst, needed by input_sender_X11.cpp.
- Include d3d11.h and handle QRhi::D3D11 only on Windows.
- Replace leftover easylogging LOG(INFO) calls with qInfo().
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>