By passing divisor=0, we imply we do not care about synchronisation of
this request to the vertical refresh - the spec says that if we miss the
target frame, the swap will be presented as quickly as possible and may
forgo waiting until the next vblank. By using divisor=1, we request that
the swap be presented upon the vertical refresh immediately following
recipe, enforcing the synchronisation to vblank and avoiding tearing.
Reported-and-tested-by: Lukas Hejtmanek <xhejtman@ics.muni.cz>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
if (dri2_drawable->has_backbuffer) {
if (gsDRI2SwapAvailable) {
CARD64 ret;
- VA_DRI2SwapBuffers(ctx->native_dpy, dri_drawable->x_drawable, 0, 0,
- 0, &ret);
+ VA_DRI2SwapBuffers(ctx->native_dpy, dri_drawable->x_drawable,
+ 0, 1, 0,
+ &ret);
} else {
xrect.x = 0;
xrect.y = 0;