Repository navigation
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
- @SBudarin made their first contribution in #10
- @allexigit made their first contribution in #15
- @dingyifei made their first contribution in #21
- @nburns made their first contribution in #29
- @anoshmisiosdev made their first contribution in #26
- @demonixis made their first contribution in #47
- @orangeToT made their first contribution in #44
- @jrejaud made their first contribution in #50
- @arealjim made their first contribution in #54
- @CarpetHead made their first contribution in #81
Full Changelog: 1.2.0...1.3.0