Use the OpenVR SDK's bin/linuxarm64 library on aarch64

On the Steam Frame, VR_Init failed with "Installation path could not be
located": the SDK's lib/linuxarm64/libopenvr_api.so (2.15.6) reads the VR
path registry from the fixed path /data/work/openvrpaths.vrpath instead
of ~/.config/openvr. The SDK's bin/linuxarm64 library of the same version
uses ~/.config/openvr; the vrdashboard template ships it and was verified
on the Frame. It is added as a new file (third-party/openvr had no
bin/linuxarm64, and "bin" is gitignored, hence force-added), and aarch64
builds link against and ship it. x86_64 and Windows are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-07 23:13:47 +02:00
co-authored by Claude Opus 5.5
parent 537539ab5e
commit 317db6831d
4 changed files with 32 additions and 2 deletions
+6 -1
View File
@@ -343,7 +343,12 @@ endif ()
if (WIN32)
set(OPENVR_LIB_DIR ${CMAKE_SOURCE_DIR}/third-party/openvr/lib/win64)
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|ARM64)$")
set(OPENVR_LIB_DIR ${CMAKE_SOURCE_DIR}/third-party/openvr/lib/linuxarm64)
# bin/, not lib/: the SDK's lib/linuxarm64/libopenvr_api.so looks for the
# VR path registry in the fixed path /data/work/openvrpaths.vrpath instead
# of ~/.config/openvr, so on the Steam Frame it never finds SteamVR
# ("Installation path could not be located"). bin/linuxarm64 (SDK 2.15.6)
# uses ~/.config/openvr.
set(OPENVR_LIB_DIR ${CMAKE_SOURCE_DIR}/third-party/openvr/bin/linuxarm64)
else ()
set(OPENVR_LIB_DIR ${CMAKE_SOURCE_DIR}/third-party/openvr/lib/linux64)
endif ()