Add a Steam Frame build option; no chaperone commit at start; timer-based tick

- 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>
This commit is contained in:
Matthias Janetschek
2026-10-07 13:35:46 +02:00
co-authored by Claude Opus 5.5
parent 266a2f9ce9
commit 423ea57db7
7 changed files with 141 additions and 19 deletions
+9
View File
@@ -111,6 +111,7 @@ set(HEADERS
src/utils/paths.h
src/utils/setup.h
src/utils/update_rate.h
src/utils/platform_capabilities.h
src/utils/Matrix.h
src/quaternion/quaternion.h
)
@@ -290,6 +291,14 @@ target_compile_definitions(AdvancedSettings PRIVATE
APPLICATION_VERSION=\"${PROJECT_VERSION}\"
)
# Build for the Steam Frame (SteamOS, aarch64). Switches off what doesn't work
# there and changes some defaults; the details are named capability constants
# in src/utils/platform_capabilities.h, the only place reading this definition.
option(OVRAS_STEAM_FRAME "Build for the Steam Frame" OFF)
if (OVRAS_STEAM_FRAME)
target_compile_definitions(AdvancedSettings PRIVATE OVRAS_STEAM_FRAME=1)
endif ()
#find_library(OPENVR_LIBRARIES
# NAMES
# openvr_api