From 7161e47fd18ed7bdd988bbd14c8cae65f5bc9680 Mon Sep 17 00:00:00 2001 From: Zhai Edwin Date: Fri, 16 Mar 2012 19:05:38 +0800 Subject: 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 (From OE-Core rev: a9e4b94f799e41a2b06f833a8b411ebee3939430) Signed-off-by: Zhai Edwin Signed-off-by: Richard Purdie --- .../mesa/qemugl/extensions_emulation.patch | 34 ++++++++++++++++++++++ meta/recipes-graphics/mesa/qemugl_git.bb | 5 ++-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch (limited to 'meta/recipes-graphics/mesa') 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 + +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 66f4e17beb..378aa65502 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" -- cgit v1.2.3-54-g00ecf