Smoother Apps, Happier Users: Introducing FrameSync for Meta Horizon OS
From the most action-packed rhythm games to boundless RPGs, the best VR experiences seem to flow smoothly between every moment so people stay present in the experience instead of noticing the system behind it.
But, as VR apps become more ambitious, richer scenes and dynamic content mean performance becomes trickier to hold steady. Small inconsistencies in frame pacing can show up quickly as hitching or discomfort and hurt the user experience. To help more apps stay smooth and responsive as complexity increases, we’re introducing FrameSync, a significant update to the frame timing algorithm on Meta Horizon OS.
In v201, developers can begin testing FrameSync using the steps below.
In v203, FrameSync becomes the default for Meta Horizon Store apps, replacing PhaseSync (with an opt-out available if needed).
Dive in below to learn more about this change, what it means for VR developers, and how to get started.
What’s changing (and why)
PhaseSync historically delays the app’s rendering start time to minimize head pose latency, but it relies on 3 different modes (adaptive frame timing, fixed latency, and AppSW half-rate) and can struggle when frame times are highly variable or when apps run at lower framerates.
FrameSync uses a more robust statistical system to frame timing and prediction, eliminating the need for separate modes. This approach results in reduced stale frames and improved overall responsiveness, with small, expected tradeoffs in power and thermals.
What to expect with Framesync
1) More consistent smoothness (and often higher FPS)
FrameSync helps stabilize frame pacing, which typically shows up as less judder and fewer visible hitches during motion.
2) Fewer stale frames, especially long streaks
Consecutive stale frames can be especially noticeable (and uncomfortable). FrameSync reduces both the frequency of stale frames and the longer runs that can disrupt an experience.
3) Lower motion-to-photon latency
Better prediction can reduce the delay between a person’s movement and the corresponding visual update to help interactions feel even more immediate and responsive.
Rollout timeline
We’re rolling this out in phases so you can validate behavior across your content:
v201: Available for developer testing.
v203: Becomes the default for all Meta Horizon Store apps.
If your app is performance-sensitive (close to thermal limits, heavy simulation, variable frametimes), we recommend testing sooner rather than later.
How to test FrameSync
To enable FrameSync for testing, add the following metadata to your application's AndroidManifest.xml file:
FrameSync can increase the amount of fresh content your app delivers, which may result in a small increase in CPU/GPU utilization. Depending on your workload and session length, that can mean minor impacts to battery life and thermal behavior (including throttling).
Most apps should see net improvements, but every title is different. If FrameSync negatively impacts your app, an opt-out mechanism will be available.
Get started today
Test FrameSync on v201.
Validate with real gameplay and long sessions, not just short benchmark scenes.
Stay tuned for supporting documentation and FAQs ahead of v203.
We’ll keep iterating based on what we learn and on what you report to make the default switch in v203 as smooth as possible for both you and your audience.
Learn how we’re evolving VR and Worlds to give you clearer focus, better tools, and stronger long-term support as you build what’s next for Meta Quest and mobile.