d/p/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch:
add proposed patch from upstream Bugzilla to let GDK X11 initialization complete successfully when libGL.so.1 is not available (Closes: #847366)
This commit is contained in:
9
debian/changelog
vendored
9
debian/changelog
vendored
@ -1,3 +1,12 @@
|
|||||||
|
gtk+3.0 (3.22.7-2) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
* d/p/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch:
|
||||||
|
add proposed patch from upstream Bugzilla to let GDK X11
|
||||||
|
initialization complete successfully when libGL.so.1 is not
|
||||||
|
available (Closes: #847366)
|
||||||
|
|
||||||
|
-- Simon McVittie <smcv@debian.org> Fri, 20 Jan 2017 21:38:48 +0000
|
||||||
|
|
||||||
gtk+3.0 (3.22.7-1) unstable; urgency=medium
|
gtk+3.0 (3.22.7-1) unstable; urgency=medium
|
||||||
|
|
||||||
* New upstream release.
|
* New upstream release.
|
||||||
|
|||||||
58
debian/patches/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
vendored
Normal file
58
debian/patches/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
From 1fb5f0aed9976437d8c9c82071efe9a447d73de1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emmanuele Bassi <ebassi@gnome.org>
|
||||||
|
Date: Fri, 20 Jan 2017 18:07:01 +0000
|
||||||
|
Subject: [PATCH] gdk/x11: Check if we have access to GL before using GLX API
|
||||||
|
|
||||||
|
If the platform does not have access to libGL then any call to GL and
|
||||||
|
GLX API through libepoxy will fail with an assertion. Until such time
|
||||||
|
that libepoxy exposes API for us to use, we can simply dlopen libGL
|
||||||
|
ourselves and do a symbol check.
|
||||||
|
|
||||||
|
[smcv: fix typo]
|
||||||
|
|
||||||
|
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=775279
|
||||||
|
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847366
|
||||||
|
---
|
||||||
|
gdk/x11/gdkglcontext-x11.c | 26 ++++++++++++++++++++++++++
|
||||||
|
1 file changed, 26 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/gdk/x11/gdkglcontext-x11.c b/gdk/x11/gdkglcontext-x11.c
|
||||||
|
index 0819f89648..d8ddf0fe19 100644
|
||||||
|
--- a/gdk/x11/gdkglcontext-x11.c
|
||||||
|
+++ b/gdk/x11/gdkglcontext-x11.c
|
||||||
|
@@ -854,6 +854,32 @@ gdk_x11_screen_init_gl (GdkScreen *screen)
|
||||||
|
if (_gdk_gl_flags & GDK_GL_DISABLE)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
+ /* This is an ad hoc check that bypasses libepoxy to check if libGL.so is
|
||||||
|
+ * unavailable, and disables GL support if that's the case
|
||||||
|
+ *
|
||||||
|
+ * Ideally, libepoxy should do this for us, but that would require adding
|
||||||
|
+ * new API, and we'd need a fallback anyway.
|
||||||
|
+ */
|
||||||
|
+ {
|
||||||
|
+ Bool (* fp_glXQueryExtension) (Display *dpy, int *err_base, int *ev_base);
|
||||||
|
+ GModule *module = g_module_open ("libGL.so.1", 0);
|
||||||
|
+
|
||||||
|
+ if (module == NULL)
|
||||||
|
+ {
|
||||||
|
+ GDK_NOTE (OPENGL, g_message ("No libGL.so found"));
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!g_module_symbol (module, "glXQueryExtension", (gpointer *) &fp_glXQueryExtension))
|
||||||
|
+ {
|
||||||
|
+ GDK_NOTE (OPENGL, g_message ("No glXQueryExtension symbol found"));
|
||||||
|
+ g_module_close (module);
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ g_module_close (module);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
dpy = gdk_x11_display_get_xdisplay (display);
|
||||||
|
|
||||||
|
if (!glXQueryExtension (dpy, &error_base, &event_base))
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
||||||
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -7,3 +7,4 @@
|
|||||||
071_fix-installation-of-HTML-images.patch
|
071_fix-installation-of-HTML-images.patch
|
||||||
no-accessibility-dump.patch
|
no-accessibility-dump.patch
|
||||||
reftest-known-fail.patch
|
reftest-known-fail.patch
|
||||||
|
gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
|
||||||
|
|||||||
Reference in New Issue
Block a user