diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c index e20595ab9..0687202a9 100644 --- a/hw/xfree86/dri2/dri2.c +++ b/hw/xfree86/dri2/dri2.c @@ -912,8 +912,7 @@ DRI2WaitMSC(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc, } int -DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc, - CARD64 *ust, CARD64 *msc, CARD64 *sbc) +DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc) { DRI2DrawablePtr pPriv; @@ -927,14 +926,13 @@ DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc, if (target_sbc == 0) target_sbc = pPriv->swap_count + pPriv->swapsPending; - /* If current swap count already >= target_sbc, + /* If current swap count already >= target_sbc, reply and * return immediately with (ust, msc, sbc) triplet of * most recent completed swap. */ if (pPriv->swap_count >= target_sbc) { - *sbc = pPriv->swap_count; - *msc = pPriv->last_swap_msc; - *ust = pPriv->last_swap_ust; + ProcDRI2WaitMSCReply(client, pPriv->last_swap_ust, + pPriv->last_swap_msc, pPriv->swap_count); return Success; } diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h index f08ca29f3..fe0bf6ccb 100644 --- a/hw/xfree86/dri2/dri2.h +++ b/hw/xfree86/dri2/dri2.h @@ -265,8 +265,7 @@ extern _X_EXPORT int DRI2WaitMSC(ClientPtr client, DrawablePtr pDrawable, extern _X_EXPORT int ProcDRI2WaitMSCReply(ClientPtr client, CARD64 ust, CARD64 msc, CARD64 sbc); extern _X_EXPORT int DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, - CARD64 target_sbc, CARD64 *ust, CARD64 *msc, - CARD64 *sbc); + CARD64 target_sbc); extern _X_EXPORT Bool DRI2ThrottleClient(ClientPtr client, DrawablePtr pDraw); extern _X_EXPORT Bool DRI2CanFlip(DrawablePtr pDraw); diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c index db04268cb..8016edb3f 100644 --- a/hw/xfree86/dri2/dri2ext.c +++ b/hw/xfree86/dri2/dri2ext.c @@ -520,9 +520,8 @@ static int ProcDRI2WaitSBC(ClientPtr client) { REQUEST(xDRI2WaitSBCReq); - xDRI2MSCReply rep; DrawablePtr pDrawable; - CARD64 target, ust, msc, sbc; + CARD64 target; int status; REQUEST_SIZE_MATCH(xDRI2WaitSBCReq); @@ -532,18 +531,9 @@ ProcDRI2WaitSBC(ClientPtr client) return status; target = vals_to_card64(stuff->target_sbc_lo, stuff->target_sbc_hi); - status = DRI2WaitSBC(client, pDrawable, target, &ust, &msc, &sbc); - if (status != Success) - return status; + status = DRI2WaitSBC(client, pDrawable, target); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - load_msc_reply(&rep, ust, msc, sbc); - - WriteToClient(client, sizeof(xDRI2MSCReply), &rep); - - return Success; + return status; } static int