diff options
-rw-r--r-- | src/sna/sna_dri2.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c index 33cf3d9e..63c49327 100644 --- a/src/sna/sna_dri2.c +++ b/src/sna/sna_dri2.c @@ -1837,20 +1837,20 @@ void sna_dri2_destroy_window(WindowPtr win) chain = priv->chain; while ((info = chain)) { + DBG(("%s: freeing event, pending signal? %d, pending swap? handle=%d\n", + __FUNCTION__, info->signal, + info->pending.bo ? info->pending.bo->handle : 0)); assert(info->draw == &win->drawable); - if (info->signal) - frame_swap_complete(info, DRI2_EXCHANGE_COMPLETE); + if (info->pending.bo) { assert(info->pending.bo->active_scanout > 0); info->pending.bo->active_scanout--; - info->signal = true; - frame_swap_complete(info, DRI2_EXCHANGE_COMPLETE); - kgem_bo_destroy(&sna->kgem, info->pending.bo); info->pending.bo = NULL; } + info->signal = false; info->draw = NULL; list_del(&info->link); |