As for adding glFinish(), I'm not sure what to make of that, it could just be the slowdown from that command alters the timing pattern that's giving us problems.
A fence of -1 means that the buffer is immediately usable, so that should be handled in the mir code. I don't see anything immediately obvious in the trace, that seems pretty normal.
If we're failing to wait on a fence, then I'd expect some tearing during the animation problem. So if we see tearing during the problem, then we could focus on looking at the fence handling, if not, we could focus on the texture/buffers we are using.
As for adding glFinish(), I'm not sure what to make of that, it could just be the slowdown from that command alters the timing pattern that's giving us problems.
A fence of -1 means that the buffer is immediately usable, so that should be handled in the mir code. I don't see anything immediately obvious in the trace, that seems pretty normal.
If we're failing to wait on a fence, then I'd expect some tearing during the animation problem. So if we see tearing during the problem, then we could focus on looking at the fence handling, if not, we could focus on the texture/buffers we are using.