cancel
Showing results for 
Search instead for 
Did you mean: 

Oculus Quest glitches on sample app (submission timing bug?)

ssylvan
Honored Guest
Hi, when I build the VRCubeWorld sample and deploy it to my Quest, I get very noticeable glitches. The easiest way to visually see the glitch is to move side to side (translate) and look at a close up cube, you see very jarring "skips" several times a second. It's a bit worrying that such a simple sample app can't render without artifacts. The oculus metrics overlay confirms that I'm seeing 5-8 stale frames per second.

The CPU utilization is only a few percent, and GPU utilization is about 25%, so I don't think it's a performance issue.

My hypothesis is that the submission timing is not actually aligned to the vsync of the device, but rather depends on when the app starts (i.e. it throttles you to the correct frame rate, but doesn't enforce that you wake up after submission in any particular relation to the vsync). I do appear to get slightly varying "stale frames" amount each run.
My expectation is that after calling submit I should wake up right on the vsync in order to start the next frame, which in this case should be plenty of time to never miss a single frame. If I set "extra latency" mode to on, the glitches go away (but of course, at the expense of much more latency) which is consistent this hypothesis.

Anyone have any information about this issue, or some idea for how to work around it? 
1 REPLY 1

cass
Honored Guest
Hi Sebastian,

There is indeed a frame timing issue on Quest that affects very low latency apps like VrCubeWorld.  Frame timing does align with vsync, but the way that frames are handed off from the app's process to the compositor's process can occasionally be delayed past the compositor's latch time. This problem doesn't affect apps that have an extra frame of latency.  A fix for this issue is coming though!

Thanks!
Cass