summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/radeon_dri2.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index 10a614b8..fa3719d6 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -799,6 +799,9 @@ void radeon_dri2_frame_event_handler(unsigned int frame, unsigned int tv_sec,
M_ANY, DixWriteAccess);
if (status != Success)
goto cleanup;
+ if (!event->crtc)
+ goto cleanup;
+ frame += radeon_get_interpolated_vblanks(event->crtc);
screen = drawable->pScreen;
scrn = xf86ScreenToScrn(screen);
@@ -1254,6 +1257,11 @@ void radeon_dri2_flip_event_handler(unsigned int frame, unsigned int tv_sec,
free(flip);
return;
}
+ if (!flip->crtc) {
+ free(flip);
+ return;
+ }
+ frame += radeon_get_interpolated_vblanks(flip->crtc);
screen = drawable->pScreen;
scrn = xf86ScreenToScrn(screen);