diff --git a/0001-glx-glvnd-Fix-GLXdispatchIndex-sorting.patch b/0001-glx-glvnd-Fix-GLXdispatchIndex-sorting.patch new file mode 100644 index 0000000..1356f88 --- /dev/null +++ b/0001-glx-glvnd-Fix-GLXdispatchIndex-sorting.patch @@ -0,0 +1,66 @@ +From d77692b73964b2dc81937a1d6ba2e927e1d548cc Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 6 Feb 2017 12:13:17 +0100 +Subject: [PATCH] glx/glvnd: Fix GLXdispatchIndex sorting + +Commit 8bca8d89ef3b ("glx/glvnd: Fix dispatch function names and indices") +fixed the sorting of the array initializers in g_glxglvnddispatchfuncs.c +because FindGLXFunction's binary search needs these to be sorted +alphabetically. + +That commit also mostly fixed the sorting of the DI_foo defines in +g_glxglvnddispatchindices.h, which is what actually matters as the +arrays are initialized using "[DI_foo] = glXfoo," but a small error +crept in which at least causes glXGetVisualFromFBConfigSGIX to not +resolve, breaking games such as "The Binding of Isaac: Rebirth" and +"Crypt of the NecroDancer" from Steam not working and possible causes +other problems too. + +This commit fixes the last of the sorting errors, fixing these mentioned +games not working. + +Fixes: 8bca8d89ef3b ("glx/glvnd: Fix dispatch function names and indices") +Cc: "13.0" +Cc: "17.0" +Cc: Adam Jackson +Signed-off-by: Hans de Goede +--- + src/glx/g_glxglvnddispatchindices.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/glx/g_glxglvnddispatchindices.h b/src/glx/g_glxglvnddispatchindices.h +index 0891654..05a2c8c 100644 +--- a/src/glx/g_glxglvnddispatchindices.h ++++ b/src/glx/g_glxglvnddispatchindices.h +@@ -46,14 +46,14 @@ typedef enum __GLXdispatchIndex { + DI_GetMscRateOML, + // GetProcAddress implemented by libglvnd + // GetProcAddressARB implemented by libglvnd ++ DI_GetScreenDriver, + // GetSelectedEvent implemented by libglvnd + DI_GetSelectedEventSGIX, ++ DI_GetSwapIntervalMESA, ++ DI_GetSyncValuesOML, + DI_GetVideoSyncSGI, + // GetVisualFromFBConfig implemented by libglvnd + DI_GetVisualFromFBConfigSGIX, +- DI_GetScreenDriver, +- DI_GetSwapIntervalMESA, +- DI_GetSyncValuesOML, + // ImportContextEXT implemented by libglvnd + // IsDirect implemented by libglvnd + DI_JoinSwapGroupSGIX, +@@ -81,9 +81,9 @@ typedef enum __GLXdispatchIndex { + DI_SwapIntervalMESA, + DI_SwapIntervalSGI, + // UseXFont implemented by libglvnd +- // WaitGL implemented by libglvnd + DI_WaitForMscOML, + DI_WaitForSbcOML, ++ // WaitGL implemented by libglvnd + DI_WaitVideoSyncSGI, + // WaitX implemented by libglvnd + DI_LAST_INDEX +-- +2.9.3 + diff --git a/mesa-13.0-fix-radeonsi-tess.patch b/mesa-13.0-fix-radeonsi-tess.patch deleted file mode 100644 index 28feb55..0000000 --- a/mesa-13.0-fix-radeonsi-tess.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 57f18623fb94891c04f3a395cfd977ea3747ee61 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= -Date: Tue, 17 Jan 2017 13:45:42 +0100 -Subject: radeonsi: for the tess barrier, only use emit_waitcnt on SI and LLVM - 3.9+ -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Cc: 17.0 13.0 -Reviewed-by: Edward O'Callaghan -Reviewed-by: Nicolai Hähnle - -diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c -index f404273..10f40a9 100644 ---- a/src/gallium/drivers/radeonsi/si_shader.c -+++ b/src/gallium/drivers/radeonsi/si_shader.c -@@ -5440,10 +5440,13 @@ static void si_llvm_emit_barrier(const struct lp_build_tgsi_action *action, - struct si_shader_context *ctx = si_shader_context(bld_base); - struct gallivm_state *gallivm = bld_base->base.gallivm; - -- /* The real barrier instruction isn’t needed, because an entire patch -+ /* SI only (thanks to a hw bug workaround): -+ * The real barrier instruction isn’t needed, because an entire patch - * always fits into a single wave. - */ -- if (ctx->type == PIPE_SHADER_TESS_CTRL) { -+ if (HAVE_LLVM >= 0x0309 && -+ ctx->screen->b.chip_class == SI && -+ ctx->type == PIPE_SHADER_TESS_CTRL) { - emit_waitcnt(ctx, LGKM_CNT & VM_CNT); - return; - } --- -cgit v0.10.2 - diff --git a/mesa.spec b/mesa.spec index 3826139..44a50b3 100644 --- a/mesa.spec +++ b/mesa.spec @@ -58,8 +58,8 @@ Name: mesa Summary: Mesa graphics libraries -Version: 13.0.3 -Release: 7%{?rctag:.%{rctag}}%{?dist} +Version: 13.0.4 +Release: 1%{?rctag:.%{rctag}}%{?dist} License: MIT URL: http://www.mesa3d.org @@ -87,8 +87,8 @@ Patch12: glvnd-fix-gl-dot-pc.patch Patch13: 0001-Fix-linkage-against-shared-glapi.patch Patch14: 0001-glapi-Link-with-glapi-when-built-shared.patch -# regression fix should be in 13.0.4 -Patch15: mesa-13.0-fix-radeonsi-tess.patch +# submitted upstream +Patch15: 0001-glx-glvnd-Fix-GLXdispatchIndex-sorting.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -686,6 +686,11 @@ popd %endif %changelog +* Mon Feb 6 2017 Hans de Goede - 13.0.4-1 +- New upstream bugfix release 13.0.4 +- Fix GLX_SGIX_fbconfig extension dispatching with glvnd, this fixes games such + as "The Binding of Isaac: Rebirth" and "Crypt of the NecroDancer" from Steam + * Thu Feb 2 2017 Hans de Goede - 13.0.3-7 - Update eglext.h to 20161230 version this brings in some new defines needed by some apps / libraries diff --git a/sources b/sources index 6c5cf86..b4b7e65 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mesa-13.0.3.tar.xz) = e94a60f7e3b2c64d7b44130ccac95fef8edb74ee1574125aa9ec8ceecb1819df26b0fb08369254aaee6cd6df4eecea814783351e604d4c39b0130746b15a3c1e +SHA512 (mesa-13.0.4.tar.xz) = 5f4d8ad12389a32c028cf3c5289fe285892e2b241220c5c6d04cda5748240e8b13289c4537ac7a6b58d87d6ca4111031e15ad37c9b008777be71918e42e88817