mirror of
https://github.com/daniel-lynch/ovrplugin-openxr-shim.git
synced 2026-10-04 22:00:05 +02:00
Repo hygiene round following a full review. No shim behaviour changes. Leak risk: - .gitignore: ignore CLAUDE.md (personal assistant-lane config, was one `git add -A` away from a public commit) and scratch_obj/. Docs vs. reality: - shim/README.md: rewritten. It described a pre-implementation skeleton with "core fns are TODO stubs returning -1005", three mutually inconsistent stub counts, and four completed milestones listed as open. Now carries the verified breakdown: 438/438 exports = 371 generated stubs + 46 core + 7 layers + 2 Vulkan queries + 12 passthru trampolines. - TESTING.md: dropped the self-contradicting "NOT yet" block (5 of 6 items were done or misstated, and contradicted the same file 45 lines above). Path B now points at tools/desktop-harness, which exists, instead of the orphaned shim/tests/harness.c. Path A prereqs marked as the record they are. - HOST.md: corrected the runtime assumption. The OpenXR runtime inside Lepton is SteamVR (vendor/etc/openxr/1/active_runtime.json -> vrclient.so), not Monado. Favourable: SteamVR emulates Oculus Touch by default and advertises the XR_FB_foveation family, so the existing input and foveation paths should carry over. The old "remaining unknowns" are resolved by Lepton's published source and replaced with the items to check before a first Frame boot. - README.md: same runtime correction. - docs/research/RECON.md: the four passages prescribing an entitlement NOP/stub/bypass are corrected in place rather than merely disclaimed by the top banner, which they contradicted. Build correctness: - shim/build_android.sh: missing patchelf is now fatal. It warned and exited 0, producing a .so that cannot resolve the OpenXR loader at runtime. - scripts/fetch_deps.sh + packaging/build_openxr_loader.sh: pin the OpenXR and Vulkan header versions (were tracking `main`), overridable via OPENXR_TAG / VULKAN_HEADERS_TAG; require cmake for the loader build. - packaging/steamframe_patches.sh: use the apktool.jar that fetch_deps.sh downloads. Its prereq check demanded an `apktool` binary on PATH that the documented setup never provides, so it could not run after a clean setup. - shim/gen_stubs.sh: it reads all_exports.txt, not shim_surface.txt; comment and emitted banner corrected. stubs.c regenerated (banner line only). - shim/src/core.c: split seven `if (out) ...; return ...;` one-liners. Host build now compiles with zero warnings, down from seven. Verified: host build 0 warnings; gen_stubs.sh output identical on regeneration; bash -n clean on all edited scripts; pinned header/tarball URLs return 200 and the tag tarball extracts to the expected directory name. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
41 lines
1019 B
Plaintext
41 lines
1019 B
Plaintext
# Local working directories — third-party / personal material, never committed.
|
|
# dump/ = the user's own dumped game files (see README: patch-only, dump-your-own)
|
|
# ue_src/ = third-party sources consulted under their own licenses, not redistributable
|
|
# backup/ = user save data
|
|
dump/
|
|
ue_src/
|
|
backup/
|
|
ghidra_proj/
|
|
|
|
# Raw reverse-engineering output (derivative of Meta's proprietary binary).
|
|
# Keep only the plain symbol-NAME lists (the public OVRPlugin API surface).
|
|
analysis/*
|
|
!analysis/all_exports.txt
|
|
!analysis/shim_surface.txt
|
|
|
|
# Large third-party toolchains (fetched locally, not redistributed)
|
|
# (re-include our own desktop OpenXR harness source)
|
|
tools/*
|
|
!tools/desktop-harness/
|
|
|
|
# Vendored third-party headers (fetched by scripts/fetch_deps.sh)
|
|
shim/third_party/
|
|
|
|
# Build artifacts / secrets
|
|
shim/build/
|
|
build/
|
|
packaging/out/
|
|
packaging/work/
|
|
packaging/libs/
|
|
*.so
|
|
*.apk
|
|
*.o
|
|
*.keystore
|
|
*.zip
|
|
*.tar.gz
|
|
save_backup/
|
|
|
|
# Session/lane scratch (personal assistant-lane config — never public)
|
|
CLAUDE.md
|
|
scratch_obj/
|