Skip to content

OXRSys 1.3.0

Latest

Choose a tag to compare

@demonixis demonixis released this 04 Nov 11:46
· 1 commit to main since this release

What's Changed

  • Fix/vision pro black screen and eye projection by @SBudarin in #10
  • Vision Pro: world-space reprojection + head-rotation jitter fix by @SBudarin in #11
  • Preserve signed float action values when aggregating bindings by @allexigit in #15
  • Vision Pro client overhaul: streaming latency, reprojection, image quality, and input emulation by @SBudarin in #18
  • Optimize Quest foveated decode and upscale shader sampling by @allexigit in #17
  • Fix Quest refresh rate reporting after display refresh request by @allexigit in #16
  • Honor swapchain subImage rects for side-by-side eye packing by @allexigit in #12
  • Implement XR_KHR_convert_timespec_time by @dingyifei in #21
  • Add a GitHub Actions build-and-test workflow for macOS, Linux, and Windows by @dingyifei in #24
  • Fix the Windows build and client discovery/liveness: loopback beacon, dead-client watchdog, streaming-thread QoS by @dingyifei in #23
  • Fix Quest controller input and reconnect crash by @SBudarin in #25
  • visionOS: PSVR2 Sense controller input, seamless connect/reconnect, and stream recovery by @SBudarin in #27
  • Fix the macOS simulator viewer settings layout by @nburns in #29
  • Blender support by @SBudarin in #28
  • Head tracking, frame pacing, and reference-space fixes by @anoshmisiosdev in #26
  • Speed up CI with compiler and Swift package caching by @nburns in #36
  • Restore Build & Test to green by @nburns in #35
  • Hardware encoder helper for all codecs, with the encode path chosen automatically from measured availability by @anoshmisiosdev in #37
  • Develop by @demonixis in #47
  • Request recovery keyframes after Quest decoder input failures by @orangeToT in #44
  • Keep Quest decoded images alive across frame gaps by @orangeToT in #42
  • Preserve the render pose while reusing Quest video by @orangeToT in #43
  • Cut Quest H.264 decode latency from ~220 ms to ~11 ms with Qualcomm low-latency decoder keys by @jrejaud in #50
  • Accept mutable-format Vulkan swapchains so Godot 4 apps can run by @jrejaud in #49
  • Accept mutable-format Metal swapchains so Godot 4 Metal apps can render by @arealjim in #54
  • Reset tracking history when a client connects or disconnects by @arealjim in #53
  • Let a session exit right away when it never ran a frame loop by @jrejaud in #51
  • Foveated encoding: accept app eye textures of any size with the target's aspect ratio by @jrejaud in #52
  • tests: put the user's runtime config back after the passthrough tests rewrite it by @arealjim in #56
  • runtime: optional UDP packet pacing (send_pacing_ms), and count sendto failures by @arealjim in #59
  • runtime: a bare .../input/trigger or .../input/squeeze binds its /value by @arealjim in #61
  • runtime: drain an autorelease pool per encoded frame, so drops before encode cannot stall the encoder by @arealjim in #65
  • Config: fork the adb children with signals blocked and caught handlers reset by @arealjim in #63
  • runtime: report the Steam Frame controller as itself, and an optional Xbox layout for Touch-to-Xbox apps by @arealjim in #67
  • runtime: composite quad and cylinder layers into each eye before encode by @arealjim in #64
  • runtime: pacing_thread = "realtime" for a punctual xrWaitFrame wake by @arealjim in #62
  • Refuse a second Wi-Fi client while one is connected by @arealjim in #55
  • Foveation: medium_plus preset between medium and light by @arealjim in #57
  • runtime: keep the video socket's descriptor until its senders are joined by @arealjim in #60
  • runtime: wait for a slow application's snapshot instead of dropping every frame by @arealjim in #66
  • android-vr: closed-form foveation inverse instead of the 10-step bisection by @arealjim in #71
  • Add a Quest USB network (CDC-NCM) transport by @dingyifei in #76
  • android-vr: supersample the swapchain and request compositor quality settings by @CarpetHead in #81
  • runtime: add the quest3_native render preset by @CarpetHead in #82
  • runtime: forward controller haptics to the headset by @CarpetHead in #74
  • Home: make the native USB ADB backend work by @dingyifei in #77
  • runtime: request low-latency rate control from VideoToolbox by @CarpetHead in #75
  • android-vr: keep the decoder across stream reconfigurations by @CarpetHead in #79
  • Foveated encoding: centre each eye's sharp region and average the compressed edges by @CarpetHead in #78
  • Passthrough: stream real alpha packed below the eyes by @CarpetHead in #73
  • android-vr: decode the sRGB video before writing the sRGB swapchain by @CarpetHead in #72
  • Revert VideoToolbox low-latency rate control by @demonixis in #87
  • Fix streaming consistency issues after the batch merge by @demonixis in #88
  • Restore OpenXR CTS frame-loop and velocity behaviour by @demonixis in #89
  • Accept every valid frame and keep overlay snapshots by @demonixis in #90
  • Send haptics only to the hands an action is bound to by @demonixis in #91
  • Cover eye-centred and medium_plus foveation in tests by @demonixis in #92
  • Restore Swift and C++ TrackingPacket layout parity by @demonixis in #93
  • Home: fix USB ADB status, serialization and stale USB Net setup by @demonixis in #94
  • Quest: fix packed-alpha submission, deferred config and USB Net detection by @demonixis in #95
  • Docs: align protocol and config docs with the merged behaviour by @demonixis in #96
  • Honour disconnect messages only from the session owner by @demonixis in #97
  • Keep a USB ADB session owned by its USB client by @demonixis in #98
  • Keep the foveation preset with the stream layout it was built for by @demonixis in #99
  • Return XR_ERROR_TIME_INVALID for invalid timespec conversions by @demonixis in #100
  • Guard the streaming server lifetime against concurrent session end by @demonixis in #101
  • Record the green OpenXR CTS baseline by @demonixis in #102
  • runtime: keep the packed alpha rows when low-latency rate control is unavailable by @arealjim in #86
  • runtime: report no interaction profile before a client connects by @arealjim in #85
  • runtime: count every frame dropped before encode, and keep logging them by @arealjim in #84

New Contributors

Full Changelog: 1.2.0...1.3.0