On Thu, Mar 12, 2015 at 12:10 AM, Michel Dänzer <mic...@daenzer.net> wrote: [...] > diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c > index a3f0776..97164b6 100644 > --- a/src/radeon_dri2.c > +++ b/src/radeon_dri2.c [...] > @@ -613,36 +553,41 @@ xf86CrtcPtr radeon_dri2_drawable_crtc(DrawablePtr > pDraw, Bool consider_disabled) > return NULL; > } > > -void radeon_dri2_flip_event_handler(unsigned int frame, unsigned int tv_sec, > - unsigned int tv_usec, void *event_data) > +static void > +radeon_dri2_flip_event_abort(ScrnInfoPtr scrn, void *event_data) > +{ > + free(event_data); > +} > + > +static void > +radeon_dri2_flip_event_handler(ScrnInfoPtr scrn, uint32_t frame, uint64_t > usec, > + void *event_data) > { > DRI2FrameEventPtr flip = event_data; > + unsigned tv_sec, tv_usec; > DrawablePtr drawable; > ScreenPtr screen; > - ScrnInfoPtr scrn; > int status; > PixmapPtr pixmap; > > status = dixLookupDrawable(&drawable, flip->drawable_id, serverClient, > M_ANY, DixWriteAccess); > - if (status != Success) { > - free(flip); > - return; > - } > - if (!flip->crtc) { > - free(flip); > - return; > - } > - frame += radeon_get_interpolated_vblanks(flip->crtc); > + if (status != Success) > + goto abort; > > - screen = drawable->pScreen; > - scrn = xf86ScreenToScrn(screen); > + if (!flip->crtc) > + goto abort; > + frame += radeon_get_interpolated_vblanks(flip->crtc); > > + screen = scrn->pScreen; > pixmap = screen->GetScreenPixmap(screen); > xf86DrvMsgVerb(scrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, > "%s:%d fevent[%p] width %d pitch %d (/4 %d)\n", > __func__, __LINE__, flip, pixmap->drawable.width, > pixmap->devKind, pixmap->devKind/4); > > + tv_sec = usec / 10000000; > + tv_usec = usec % 10000000;
Looks like an extra '0' crept into these calculations. Here we are dividing by 10^7 while everywhere else in this patch we use 10^6. _______________________________________________ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org http://lists.x.org/mailman/listinfo/xorg-driver-ati