egl/dri2: dri2_make_current: Release previous context's display
authorNicolas Boichat <drinkcat@chromium.org>
Thu, 11 Aug 2016 08:43:32 +0000 (16:43 +0800)
committerMichel Dänzer <michel@daenzer.net>
Tue, 16 Aug 2016 08:30:35 +0000 (17:30 +0900)
commit78e3cea4197802253401766fc44362786898e024
tree0502f527e137747b4dad52cdf3f2249fdcf8fd3e
parent09dff7ae2e179d5a3490481762c6bd3d50430c9f
egl/dri2: dri2_make_current: Release previous context's display

eglMakeCurrent can also be used to change the active display. In that
case, we need to decrement ref_count of the previous display (possibly
destroying it), and increment it on the next display.

Also, old_dsurf/old_rsurf cannot be non-NULL if old_ctx is NULL, so
we only need to test if old_ctx is non-NULL.

v2: Save the old display before destroying the context.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97214
Fixes: 9ee683f877 (egl/dri2: Add reference count for dri2_egl_display)
Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Reported-by: Alexandr Zelinsky <mexahotabop@w1l.ru>
Tested-by: Alexandr Zelinsky <mexahotabop@w1l.ru>
Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
src/egl/drivers/dri2/egl_dri2.c