diff options
Diffstat (limited to 'src/radeon_present.c')
-rw-r--r-- | src/radeon_present.c | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/src/radeon_present.c b/src/radeon_present.c index ffc14a0e..d0a0c68c 100644 --- a/src/radeon_present.c +++ b/src/radeon_present.c @@ -52,7 +52,6 @@ static present_screen_info_rec radeon_present_screen_info; struct radeon_present_vblank_event { uint64_t event_id; - Bool vblank_for_flip; Bool unflip; }; @@ -120,26 +119,9 @@ static void radeon_present_vblank_handler(xf86CrtcPtr crtc, unsigned int msc, uint64_t usec, void *data) { - drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; struct radeon_present_vblank_event *event = data; - if (event->vblank_for_flip && - drmmode_crtc->tear_free && - drmmode_crtc->scanout_update_pending) { - if (drmmode_crtc->present_vblank_event_id != 0) { - xf86DrvMsg(crtc->scrn->scrnIndex, X_WARNING, - "Need to handle previously deferred vblank event\n"); - present_event_notify(drmmode_crtc->present_vblank_event_id, - drmmode_crtc->present_vblank_usec, - drmmode_crtc->present_vblank_msc); - } - - drmmode_crtc->present_vblank_event_id = event->event_id; - drmmode_crtc->present_vblank_msc = msc; - drmmode_crtc->present_vblank_usec = usec; - } else - present_event_notify(event->event_id, usec, msc); - + present_event_notify(event->event_id, usec, msc); free(event); } @@ -162,7 +144,6 @@ static int radeon_present_queue_vblank(RRCrtcPtr crtc, uint64_t event_id, uint64_t msc) { xf86CrtcPtr xf86_crtc = crtc->devPrivate; - drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private; ScreenPtr screen = crtc->pScreen; struct radeon_present_vblank_event *event; uintptr_t drm_queue_seq; @@ -171,8 +152,6 @@ radeon_present_queue_vblank(RRCrtcPtr crtc, uint64_t event_id, uint64_t msc) if (!event) return BadAlloc; event->event_id = event_id; - event->vblank_for_flip = drmmode_crtc->present_flip_expected; - drmmode_crtc->present_flip_expected = FALSE; drm_queue_seq = radeon_drm_queue_alloc(xf86_crtc, RADEON_DRM_QUEUE_CLIENT_DEFAULT, @@ -272,7 +251,6 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap, Bool sync_flip) { xf86CrtcPtr xf86_crtc = crtc->devPrivate; - drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private; ScreenPtr screen = window->drawable.pScreen; ScrnInfoPtr scrn = xf86_crtc->scrn; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn); @@ -281,8 +259,6 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap, int num_crtcs_on; int i; - drmmode_crtc->present_flip_expected = FALSE; - if (!scrn->vtSema) return FALSE; @@ -313,7 +289,6 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap, if (num_crtcs_on == 0) return FALSE; - drmmode_crtc->present_flip_expected = TRUE; return TRUE; } @@ -354,7 +329,6 @@ radeon_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc, PixmapPtr pixmap, Bool sync_flip) { xf86CrtcPtr xf86_crtc = crtc->devPrivate; - drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private; ScreenPtr screen = crtc->pScreen; ScrnInfoPtr scrn = xf86_crtc->scrn; RADEONInfoPtr info = RADEONPTR(scrn); @@ -362,11 +336,11 @@ radeon_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc, Bool ret = FALSE; if (!radeon_present_check_flip(crtc, screen->root, pixmap, sync_flip)) - goto out; + return ret; event = calloc(1, sizeof(struct radeon_present_vblank_event)); if (!event) - goto out; + return ret; event->event_id = event_id; @@ -383,8 +357,6 @@ radeon_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc, else info->drmmode.present_flipping = TRUE; - out: - drmmode_crtc->present_flip_expected = FALSE; return ret; } |