Showing results for 
Search instead for 
Did you mean: 

Extra Buffer Swap (Overdraw) as a Cause of 'Judder'

Level 2
Since judder is such a wide problem and I have not seen mention of this yet I thought I would start a new topic on the subject.

This is just a note from my own experience developing in OpenGL, but I had an issue with what I am going to call overdraw, which felt like judder in practice. It was a result of extra buffer swapping in my engine which would draw a double and offset image. I was swapping once with the Oculus end frame call, and once with a standard swap. I think what was happening is the Oculus call would use an updated time warp matrix and the standard would use the previous frames although I don't know enough to say for certain. Both would be combined and then correctly distorted and aberrated somehow.

This is simple enough to diagnose with a screen shot, which will show the 'judder' is actually part of each single frames output.

I could see this being an issue not just with double swapping, but in engines with multiple frame buffers that get combined for shader effects. Writing a shader with no time warp over a time warped model as an example.

It seems obvious, but it took me a while to figure out since I was distracted by all the other issues of integration. It might not be your problem, but figure it is worth having on the radar.