summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch
diff options
context:
space:
mode:
authorZhai Edwin <edwin.zhai@intel.com>2012-03-16 19:05:38 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-03-19 13:31:31 +0000
commita9e4b94f799e41a2b06f833a8b411ebee3939430 (patch)
tree503dd8aeb0a87d3eb48b43d2a790b1d7cb181b7e /meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch
parent7ed5780cbae6b60adeb56d4d3deb0b82c2dfec70 (diff)
downloadopenembedded-core-a9e4b94f799e41a2b06f833a8b411ebee3939430.tar.gz
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@intel.com>
Diffstat (limited to 'meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch')
-rw-r--r--meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch34
1 files changed, 34 insertions, 0 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 0000000000..08418c2f4b
--- /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@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)