The last flip complete signal may happen after the sna_dri2_destroy_window function has been called. This leads to calling frame_swap_complete with a null flip drawable. So check for that and handle accordingly. Signed-off-by: Lim Siew Hoon <siew.hoon.lim@xxxxxxxxx> Reviewed-by: Bob Paauwe <bob.j.paauwe@xxxxxxxxx> Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx> --- src/sna/sna_dri2.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c index 33cf3d9..764a824 100644 --- a/src/sna/sna_dri2.c +++ b/src/sna/sna_dri2.c @@ -2874,6 +2874,10 @@ static void sna_dri2_flip_event(struct sna_dri2_event *flip) case FLIP_THROTTLE: if (flip->signal) { DBG(("%s: triple buffer swap complete, unblocking client\n", __FUNCTION__)); + if(flip->draw == NULL) { + sna_dri2_event_free(flip); + break; + } frame_swap_complete(flip, DRI2_FLIP_COMPLETE); } case FLIP_COMPLETE: -- 2.1.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx