diff options
| author | Zhai Edwin <edwin.zhai@intel.com> | 2012-03-16 19:05:38 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-03-19 14:37:38 +0000 |
| commit | 7161e47fd18ed7bdd988bbd14c8cae65f5bc9680 (patch) | |
| tree | b72d89abb223991d09e97e3ab1b387b2b9504ded | |
| parent | fcc7e806761b251bfcffbd81ef9e25116da2f1e1 (diff) | |
| download | poky-7161e47fd18ed7bdd988bbd14c8cae65f5bc9680.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
(From OE-Core rev: a9e4b94f799e41a2b06f833a8b411ebee3939430)
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch | 34 | ||||
| -rw-r--r-- | 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 0000000000..08418c2f4b --- /dev/null +++ b/meta/recipes-graphics/mesa/qemugl/extensions_emulation.patch | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | Hide some GLX extensions by default to avoid guest call missing GLX API. It's | ||
| 2 | hacky to implement these APIs, so hide these extensions as fix. | ||
| 3 | |||
| 4 | Upstream-Status: Pending | ||
| 5 | |||
| 6 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | ||
| 7 | |||
| 8 | Index: git/opengl_client.c | ||
| 9 | =================================================================== | ||
| 10 | --- git.orig/opengl_client.c 2012-03-16 18:22:27.000000000 +0800 | ||
| 11 | +++ git/opengl_client.c 2012-03-16 18:52:06.000000000 +0800 | ||
| 12 | @@ -105,6 +105,12 @@ | ||
| 13 | "NO_MOVE", /* default : set if TCP/IP communication */ | ||
| 14 | }; | ||
| 15 | |||
| 16 | +/* Hiding some GLX extensions from guest */ | ||
| 17 | +static const char* hiding_extensions = | ||
| 18 | + "GLX_MESA_copy_sub_buffer,\ | ||
| 19 | + GLX_MESA_multithread_makecurrent,\ | ||
| 20 | + GLX_MESA_swap_control,\ | ||
| 21 | + "; | ||
| 22 | |||
| 23 | #ifdef WIN32 | ||
| 24 | |||
| 25 | @@ -3516,7 +3522,8 @@ | ||
| 26 | static void removeUnwantedExtensions(char* ret) | ||
| 27 | { | ||
| 28 | char* toBeRemoved = getenv("GL_REMOVE_EXTENSIONS"); | ||
| 29 | - if (toBeRemoved == NULL) return; | ||
| 30 | + if (toBeRemoved == NULL) | ||
| 31 | + toBeRemoved = hiding_extensions; | ||
| 32 | toBeRemoved = strdup(toBeRemoved); | ||
| 33 | char* iterToBeRemoved = toBeRemoved; | ||
| 34 | 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.*)' | |||
| 12 | SRC_URI = "git://git.yoctoproject.org/qemugl;protocol=git \ | 12 | SRC_URI = "git://git.yoctoproject.org/qemugl;protocol=git \ |
| 13 | file://versionfix.patch \ | 13 | file://versionfix.patch \ |
| 14 | file://remove-x11r6-lib-dir.patch \ | 14 | file://remove-x11r6-lib-dir.patch \ |
| 15 | file://call_opengl_fix.patch" | 15 | file://call_opengl_fix.patch \ |
| 16 | file://extensions_emulation.patch" | ||
| 16 | S = "${WORKDIR}/git" | 17 | S = "${WORKDIR}/git" |
| 17 | 18 | ||
| 18 | SRCREV = "d888bbc723c00d197d34a39b5b7448660ec1b1c0" | 19 | SRCREV = "d888bbc723c00d197d34a39b5b7448660ec1b1c0" |
| 19 | 20 | ||
| 20 | PV = "0.0+git${SRCPV}" | 21 | PV = "0.0+git${SRCPV}" |
| 21 | PR = "r9" | 22 | PR = "r10" |
| 22 | 23 | ||
| 23 | DEFAULT_PREFERENCE = "-1" | 24 | DEFAULT_PREFERENCE = "-1" |
| 24 | 25 | ||
