diff --git a/Mesa.changes b/Mesa.changes index f8f96a9..800aec1 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Apr 21 09:36:08 UTC 2016 - sndirsch@suse.com + +- u_dri3-Check-for-dummyContext-to-see-if-the-glx_contex.patch + * dri3: Check for dummyContext to see if the glx_context is valid + According to the comments in src/glx/glxcurrent.c + __glXGetCurrentContext() always returns a valid pointer. If no + context is made current, it will contain dummyContext. Thus a + test for NULL will always fail. + ------------------------------------------------------------------- Sun Apr 17 19:13:12 UTC 2016 - mimi.vx@gmail.com diff --git a/Mesa.spec b/Mesa.spec index 16330fa..7933376 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -58,6 +58,7 @@ Source7: Mesa.keyring # required for building against wayland of openSUSE 13.1 Patch0: n_Fixed-build-against-wayland-1.2.1.patch Patch1: u_dri2-Check-for-dummyContext-to-see-if-the-glx_context-is-valid.patch +Patch2: u_dri3-Check-for-dummyContext-to-see-if-the-glx_contex.patch # to be upstreamed Patch11: u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch # Patch from Fedora, fix 16bpp in llvmpipe @@ -555,6 +556,7 @@ rm -rf docs/README.{VMS,WIN32,OS2} %patch0 -p1 %endif %patch1 -p1 +%patch2 -p1 ### disabled, but not dropped yet; these still need investigation in ### order to figure out whether the issue is still reproducable and ### hence a fix is required diff --git a/u_dri3-Check-for-dummyContext-to-see-if-the-glx_contex.patch b/u_dri3-Check-for-dummyContext-to-see-if-the-glx_contex.patch new file mode 100644 index 0000000..42d1f1e --- /dev/null +++ b/u_dri3-Check-for-dummyContext-to-see-if-the-glx_contex.patch @@ -0,0 +1,40 @@ +From 2be941ebf55e9533652634b180fdbdd0c24075ea Mon Sep 17 00:00:00 2001 +From: Stefan Dirsch +Date: Thu, 21 Apr 2016 11:26:07 +0200 +Subject: [PATCH] dri3: Check for dummyContext to see if the glx_context is + valid + +According to the comments in src/glx/glxcurrent.c __glXGetCurrentContext() +always returns a valid pointer. If no context is made current, it will +contain dummyContext. Thus a test for NULL will always fail. + +https://lists.freedesktop.org/archives/mesa-dev/2016-April/113962.html + +Signed-off-by: Stefan Dirsch +--- + src/glx/dri3_glx.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c +index 6054ffc..e7c2ec1 100644 +--- a/src/glx/dri3_glx.c ++++ b/src/glx/dri3_glx.c +@@ -127,13 +127,9 @@ static __DRIcontext * + glx_dri3_get_dri_context(struct loader_dri3_drawable *draw) + { + struct glx_context *gc = __glXGetCurrentContext(); ++ struct dri3_context *dri3Ctx = (struct dri3_context *) gc; + +- if (gc) { +- struct dri3_context *dri3Ctx = (struct dri3_context *) gc; +- return dri3Ctx->driContext; +- } +- +- return NULL; ++ return (gc != &dummyContext) ? dri3Ctx->driContext : NULL; + } + + static void +-- +2.6.2 +