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 <[email protected]> Reviewed-by: Bob Paauwe <[email protected]> Signed-off-by: Matt Roper <[email protected]> --- 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 [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
