From 778dba90cfc4e801a975bd661c56a565ce60524b Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 23 Jan 2013 21:32:29 +0000 Subject: [PATCH] sna/dri: Don't contribute missed frames to the target_msc Signed-off-by: Chris Wilson --- src/sna/sna_dri.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c index 94834a09..9d249e3b 100644 --- a/src/sna/sna_dri.c +++ b/src/sna/sna_dri.c @@ -2082,18 +2082,17 @@ sna_dri_schedule_swap(ClientPtr client, DrawablePtr draw, DRI2BufferPtr front, (uint32_t)*target_msc, (uint32_t)current_msc, (uint32_t)divisor)); if (divisor == 0 && current_msc >= *target_msc - 1) { + bool sync = current_msc < *target_msc; if (can_exchange(sna, draw, front, back)) { - sna_dri_immediate_xchg(sna, draw, info, - current_msc < *target_msc); + sna_dri_immediate_xchg(sna, draw, info, sync); } else if (can_blit(sna, draw, front, back)) { - sna_dri_immediate_blit(sna, draw, info, - current_msc < *target_msc); + sna_dri_immediate_blit(sna, draw, info, sync); } else { DRI2SwapComplete(client, draw, 0, 0, 0, DRI2_BLIT_COMPLETE, func, data); sna_dri_frame_event_info_free(sna, draw, info); } - *target_msc = current_msc + 1; + *target_msc = current_msc + sync; return TRUE; }