[oe-commits] Zhai Edwin : qemugl: Hide some GLX extensions by default
git at git.openembedded.org
git at git.openembedded.org
Mon Mar 19 13:41:46 UTC 2012
Module: openembedded-core.git
Branch: master
Commit: a9e4b94f799e41a2b06f833a8b411ebee3939430
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=a9e4b94f799e41a2b06f833a8b411ebee3939430
Author: Zhai Edwin <edwin.zhai at intel.com>
Date: Fri Mar 16 19:05:38 2012 +0800
qemugl: Hide some GLX extensions by default
Exporting these extensions make guest call some missing GLX API then crash.
It's hacky to implement these APIs, so hide these extensions as fix.
[YOCTO #1927] got fixed
Signed-off-by: Zhai Edwin <edwin.zhai at intel.com>
---
.../mesa/qemugl/extensions_emulation.patch | 34 ++++++++++++++++++++
meta/recipes-graphics/mesa/qemugl_git.bb | 5 ++-
2 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch b/meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch
new file mode 100644
index 0000000..08418c2
--- /dev/null
+++ b/meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch
@@ -0,0 +1,34 @@
+Hide some GLX extensions by default to avoid guest call missing GLX API. It's
+hacky to implement these APIs, so hide these extensions as fix.
+
+Upstream-Status: Pending
+
+Signed-off-by: Zhai Edwin <edwin.zhai at intel.com>
+
+Index: git/opengl_client.c
+===================================================================
+--- git.orig/opengl_client.c 2012-03-16 18:22:27.000000000 +0800
++++ git/opengl_client.c 2012-03-16 18:52:06.000000000 +0800
+@@ -105,6 +105,12 @@
+ "NO_MOVE", /* default : set if TCP/IP communication */
+ };
+
++/* Hiding some GLX extensions from guest */
++static const char* hiding_extensions =
++ "GLX_MESA_copy_sub_buffer,\
++ GLX_MESA_multithread_makecurrent,\
++ GLX_MESA_swap_control,\
++ ";
+
+ #ifdef WIN32
+
+@@ -3516,7 +3522,8 @@
+ static void removeUnwantedExtensions(char* ret)
+ {
+ char* toBeRemoved = getenv("GL_REMOVE_EXTENSIONS");
+- if (toBeRemoved == NULL) return;
++ if (toBeRemoved == NULL)
++ toBeRemoved = hiding_extensions;
+ toBeRemoved = strdup(toBeRemoved);
+ char* iterToBeRemoved = toBeRemoved;
+ while(*iterToBeRemoved)
diff --git a/meta/recipes-graphics/mesa/qemugl_git.bb b/meta/recipes-graphics/mesa/qemugl_git.bb
index 66f4e17..378aa65 100644
--- a/meta/recipes-graphics/mesa/qemugl_git.bb
+++ b/meta/recipes-graphics/mesa/qemugl_git.bb
@@ -12,13 +12,14 @@ COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)'
SRC_URI = "git://git.yoctoproject.org/qemugl;protocol=git \
file://versionfix.patch \
file://remove-x11r6-lib-dir.patch \
- file://call_opengl_fix.patch"
+ file://call_opengl_fix.patch \
+ file://extensions_emulation.patch"
S = "${WORKDIR}/git"
SRCREV = "d888bbc723c00d197d34a39b5b7448660ec1b1c0"
PV = "0.0+git${SRCPV}"
-PR = "r9"
+PR = "r10"
DEFAULT_PREFERENCE = "-1"
More information about the Openembedded-commits
mailing list