Quest headsets have a new feature called Application SpaceWarp, letting apps run at half framerate by generating every other frame synthetically.
This article was originally published November 4. It has been updated to reflect ASW’s release on November 11.
Application SpaceWarp is enabled or disabled by developers. It uses the depth buffer and motion vectors – both provided by the game engine – to extrapolate a plausible next frame for every real frame. The depth buffer is a low resolution version of each frame representing the distance of each pixel from your eye instead of color, while the motion vectors represent the movement of pixels from one frame to the next.
That means apps using ASW on Quest 1 can render at 36 FPS, while on Quest 2 developers can choose between 36 FPS, 45 FPS, or 60 FPS by changing the refresh rate mode.
Meta says when the overhead is taken into account, ASW can give apps roughly 70% more power to work with compared to rendering at full framerate. That’s the kind of jump usually seen between hardware generations. It could lead to noticeably higher fidelity graphics or even new games that wouldn’t otherwise be possible on standalone VR.
There are usually two major side effects when using technologies like ASW: latency almost doubles as input is only sampled half as often, and visual artifacts can often be seen as the extrapolation is not perfect. But Meta claims it has solutions to both.
The company notes that while the PC-based Oculus Rift’s SpaceWarp estimated the motion vectors itself, Quest’s SpaceWarp requires the game engine to provide the true motion vectors instead. This “significantly” higher quality input, Meta claims, results in “little to no” visible artifacts in most cases. For details on the edge cases where artifacts will be visible, watch the full Connect ASW presentation.
To combat the latency increase, Meta is also releasing Positional TimeWarp. While SpaceWarp is a developer choice, TimeWarp is always enabled at the system level. The current TimeWarp – on Quest since launch – reduces rotational latency by skewing each finished frame by the angle your head rotated since rendering began. Positional TimeWarp uses the same depth buffer provided for ASW to also reproject each frame in the direction your head moved, reducing translational latency too. Meta claims Positional TimeWarp is so significant that even apps using Application SpaceWarp have lower head latency than any app build currently on a Quest today.
Application SpaceWarp requires apps to use the OpenXR and Vulkan APIs – legacy Oculus API and OpenGL are not supported. Unity apps also need to use a Scriptable Render Pipeline like URP as the legacy built-in pipeline isn’t supported either.