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:00 +01:00
parent ce722cdceb
commit 9817aed1e8
2 changed files with 73 additions and 1 deletions

View file

@ -0,0 +1,66 @@
From 47214dd09bf4a149573aff35aa24b0bc62184f7b 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

@ -60,7 +60,7 @@
Name: mesa
Summary: Mesa graphics libraries
Version: 17.0.0
Release: 0.4%{?rctag:.%{rctag}}%{?dist}
Release: 0.5%{?rctag:.%{rctag}}%{?dist}
License: MIT
URL: http://www.mesa3d.org
@ -88,6 +88,8 @@ Patch12: 0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
Patch13: glvnd-fix-gl-dot-pc.patch
Patch14: 0001-Fix-linkage-against-shared-glapi.patch
Patch15: 0001-glapi-Link-with-glapi-when-built-shared.patch
# submitted upstream
Patch16: 0001-glx-glvnd-Fix-GLXdispatchIndex-sorting.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@ -686,6 +688,10 @@ popd
%endif
%changelog
* Mon Feb 6 2017 Hans de Goede <hdegoede@redhat.com> - 17.0.0-0.5.rc2
- 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> - 17.0.0-0.4.rc2
- Update eglext.h to 20161230 version this brings in some new defines needed
by some apps / libraries