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
This commit is contained in:
Hans de Goede 2017-02-06 14:04:20 +01:00
parent e00118db05
commit 823bbd2280
4 changed files with 76 additions and 41 deletions

View File

@ -0,0 +1,66 @@
From d77692b73964b2dc81937a1d6ba2e927e1d548cc Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
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" <mesa-stable@lists.freedesktop.org>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
Cc: Adam Jackson <ajax@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
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

View File

@ -1,36 +0,0 @@
From 57f18623fb94891c04f3a395cfd977ea3747ee61 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.olsak@amd.com>
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 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
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 isnt needed, because an entire patch
+ /* SI only (thanks to a hw bug workaround):
+ * The real barrier instruction isnt 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

View File

@ -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 <hdegoede@redhat.com> - 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 <hdegoede@redhat.com> - 13.0.3-7
- Update eglext.h to 20161230 version this brings in some new defines needed
by some apps / libraries

View File

@ -1 +1 @@
SHA512 (mesa-13.0.3.tar.xz) = e94a60f7e3b2c64d7b44130ccac95fef8edb74ee1574125aa9ec8ceecb1819df26b0fb08369254aaee6cd6df4eecea814783351e604d4c39b0130746b15a3c1e
SHA512 (mesa-13.0.4.tar.xz) = 5f4d8ad12389a32c028cf3c5289fe285892e2b241220c5c6d04cda5748240e8b13289c4537ac7a6b58d87d6ca4111031e15ad37c9b008777be71918e42e88817