diff options
| -rw-r--r-- | meta/packages/qemu/qemu-git/qemugl-allow-glxcontext-release.patch | 63 | ||||
| -rw-r--r-- | meta/packages/qemu/qemu_git.bb | 5 | 
2 files changed, 66 insertions, 2 deletions
| diff --git a/meta/packages/qemu/qemu-git/qemugl-allow-glxcontext-release.patch b/meta/packages/qemu/qemu-git/qemugl-allow-glxcontext-release.patch new file mode 100644 index 0000000000..979e8afc4c --- /dev/null +++ b/meta/packages/qemu/qemu-git/qemugl-allow-glxcontext-release.patch @@ -0,0 +1,63 @@ +Allow releasing the GLXContext/Drawable with glXMakeCurrent. + +--- +commit d942ed4e853e08d2298f3e11e9a952c1d952bff5 +tree f0a934efd8a8ff48e2d96f0d6fc7d70bef106bfe +parent 93619e6be184f8de08759d347825ee0d678a6f9c +author Andrzej Zaborowski <andrew.zaborowski@intel.com> Tue, 16 Jun 2009 22:22:05 +0200 +committer Andrzej Zaborowski <andrew.zaborowski@intel.com> Tue, 16 Jun 2009 22:22:05 +0200 + + target-i386/opengl_exec.c |   31 ++++++++++++++++--------------- + 1 files changed, 16 insertions(+), 15 deletions(-) + +diff --git a/target-i386/opengl_exec.c b/target-i386/opengl_exec.c +index 4a69b9b..3d6fb21 100644 +--- a/target-i386/opengl_exec.c ++++ b/target-i386/opengl_exec.c +@@ -1600,10 +1600,9 @@ int do_function_call(int func_number, arg_t *args, char *ret_string) +                 fprintf(stderr, "client_drawable=%p fake_ctx=%d\n", +                         (void *) client_drawable, fake_ctxt); +  +-            if (client_drawable == 0 && fake_ctxt == 0) { ++            if (client_drawable == 0 && fake_ctxt == 0) +                 ret_int = glXMakeCurrent(dpy, 0, NULL); +-                process->current_state = &process->default_state; +-            } else if ((drawable = (GLXDrawable) ++            else if ((drawable = (GLXDrawable) +                                     get_association_fakepbuffer_pbuffer( +                                             process, client_drawable))) { +                 GLXContext ctxt = get_association_fakecontext_glxcontext( +@@ -1651,19 +1650,21 @@ int do_function_call(int func_number, arg_t *args, char *ret_string) +             } +  +             if (ret_int) { +-                for (i = 0; i < process->nb_states; i ++) { +-                    if (process->glstates[i]->fake_ctxt == fake_ctxt) { +-                        /* HACK !!! REMOVE */ +-                        process->current_state = process->glstates[i]; +-                        process->current_state->drawable = drawable; +-                        break; +-                    } +-                } ++                if (fake_ctxt) { ++                    for (i = 0; i < process->nb_states; i ++) ++                        if (process->glstates[i]->fake_ctxt == fake_ctxt) { ++                            /* HACK !!! REMOVE */ ++                            process->current_state = process->glstates[i]; ++                            process->current_state->drawable = drawable; ++                            break; ++                        } +  +-                if (i == process->nb_states) { +-                    fprintf(stderr, "error remembering the new context\n"); +-                    exit(-1); +-                } ++                    if (i == process->nb_states) { ++                        fprintf(stderr, "error remembering the new context\n"); ++                        exit(-1); ++                    } ++                } else ++                    process->current_state = &process->default_state; +             } +             break; +         } diff --git a/meta/packages/qemu/qemu_git.bb b/meta/packages/qemu/qemu_git.bb index bdd18e8fc6..dc640134ed 100644 --- a/meta/packages/qemu/qemu_git.bb +++ b/meta/packages/qemu/qemu_git.bb @@ -1,7 +1,7 @@  LICENSE = "GPL"  DEPENDS = "zlib"  PV = "0.10.2+git${SRCREV}" -PR = "r4" +PR = "r5"  FILESPATH = "${FILE_DIRNAME}/qemu-${PV}/:${FILE_DIRNAME}/qemu-git/" @@ -12,7 +12,8 @@ SRC_URI = "\      file://no-strip.patch;patch=1 \      file://fix-dirent.patch;patch=1 \      file://fix-nogl.patch;patch=1 \ -    file://zlibsearch.patch;patch=1 " +    file://zlibsearch.patch;patch=1 \ +    file://qemugl-allow-glxcontext-release.patch;patch=1 "  S = "${WORKDIR}/git" | 
