summaryrefslogtreecommitdiff
path: root/glamor
diff options
context:
space:
mode:
authorEmil Velikov <emil.velikov@collabora.com>2019-07-19 15:57:52 +0100
committerEmil Velikov <emil.l.velikov@gmail.com>2019-10-11 12:03:42 +0000
commit15354fb68f09eecceec5747a58cd16e6ce9236ca (patch)
tree4f87d6787e74bfec670484f5555404303dd4201c /glamor
parent89597eeba6e7a3418caa375f19f8dd303219881c (diff)
glamor_egl: override the CloseScreen/DestroyPixmap earlier
Currently we wrap the EGL CloseScreen/DestroyPixmap callbacks after the glamor ones. Thus upon teardown, we'll end calling things in the wrong order. Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Diffstat (limited to 'glamor')
-rw-r--r--glamor/glamor_egl.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
index 1661c3549..1ad16f733 100644
--- a/glamor/glamor_egl.c
+++ b/glamor/glamor_egl.c
@@ -850,12 +850,6 @@ glamor_egl_screen_init(ScreenPtr screen, struct glamor_context *glamor_ctx)
glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
#endif
- glamor_egl->saved_close_screen = screen->CloseScreen;
- screen->CloseScreen = glamor_egl_close_screen;
-
- glamor_egl->saved_destroy_pixmap = screen->DestroyPixmap;
- screen->DestroyPixmap = glamor_egl_destroy_pixmap;
-
glamor_ctx->ctx = glamor_egl->context;
glamor_ctx->display = glamor_egl->display;
@@ -910,6 +904,12 @@ glamor_egl_init(ScreenPtr screen, int fd)
dixSetPrivate(&screen->devPrivates, &glamor_egl_screen_private_key, glamor_egl);
+ glamor_egl->saved_close_screen = screen->CloseScreen;
+ screen->CloseScreen = glamor_egl_close_screen;
+
+ glamor_egl->saved_destroy_pixmap = screen->DestroyPixmap;
+ screen->DestroyPixmap = glamor_egl_destroy_pixmap;
+
glamor_egl->fd = fd;
glamor_egl->gbm = gbm_create_device(glamor_egl->fd);
if (glamor_egl->gbm == NULL) {