diff --git a/Mesa.changes b/Mesa.changes index 6516579..c3a9e75 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Aug 9 00:51:28 UTC 2011 - stefan.bruens@rwth-aachen.de + +- add fix for bfo #28125 (DRI2 prevents indirect glx) + ------------------------------------------------------------------- Tue Aug 2 13:05:58 UTC 2011 - mhopf@novell.com diff --git a/Mesa.spec b/Mesa.spec index 90c2f0d..14ec191 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -49,6 +49,7 @@ Patch9: u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch Patch11: u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch # already upstream Patch13: U_Mesa-7.11-llvm3.patch +Patch14: U_glx-ignore-BadRequest-errors-from-DRI2Connect.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -118,6 +119,7 @@ rm -rf docs/README.{VMS,WIN32,OS2} %patch9 -p1 %patch11 -p1 %patch13 -p0 +%patch14 -p1 %build diff --git a/U_glx-ignore-BadRequest-errors-from-DRI2Connect.diff b/U_glx-ignore-BadRequest-errors-from-DRI2Connect.diff new file mode 100644 index 0000000..41c14a0 --- /dev/null +++ b/U_glx-ignore-BadRequest-errors-from-DRI2Connect.diff @@ -0,0 +1,37 @@ +From fbc2fcf685d22ec9bc9465e1f731529979497eaa Mon Sep 17 00:00:00 2001 +From: Christopher James Halse Rogers +Date: Thu, 04 Aug 2011 02:06:13 +0000 +Subject: glx/dri2: Paper over errors in DRI2Connect when indirect + +DRI2 will throw BadRequest for this when the client is not local, but +DRI2 is an implementation detail and not something callers should have +to know about. Silently swallow errors in this case, and just propagate +the failure through DRI2Connect's return code. + +Note: This is a candidate for the stable release branches. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=28125 +Signed-off-by: Christopher James Halse Rogers +--- +diff --git a/src/glx/dri2.c b/src/glx/dri2.c +index 229840d..b1b5013 100644 +--- a/src/glx/dri2.c ++++ b/src/glx/dri2.c +@@ -190,6 +190,15 @@ DRI2Error(Display *display, xError *err, XExtCodes *codes, int *ret_code) + err->minorCode == X_DRI2DestroyDrawable) + return True; + ++ /* If the server is non-local DRI2Connect will raise BadRequest. ++ * Swallow this so that DRI2Connect can signal this in its return code */ ++ if (err->majorCode == codes->major_opcode && ++ err->minorCode == X_DRI2Connect && ++ err->errorCode == BadRequest) { ++ *ret_code = False; ++ return True; ++ } ++ + return False; + } + +-- +cgit v0.8.3-6-g21f6