mirror of
https://src.fedoraproject.org/rpms/mesa.git
synced 2024-11-28 02:54:51 +00:00
Disable zink fallback in EGL
In mesa 23.3.x zink broke on nvidia, crashing in eglCreateContext. In the same release, zink was added as a fallback between the hardware drivers and swrast. Any application that was previously falling back to swrast now instead crashes, when using the nvidia vulkan driver. How exactly do you reach zink or previously swrast when using nvidia you may ask? One common path may be EGL applications using EGL_EXT_platform_xcb. The nvidia driver does not support it, thus GLVND tries the next driver which is mesa, mesa doesn't find any suitable hardware driver and thus falls back to zink or swrast. Until zink is stable again on nvidia, we should disable the zink fallback to prevent applications crashing instead of falling back to swrast. There should be no need to also disable the GLX fallback to zink as i'm not aware of a call path that would lead to using mesa when the nvidia drivers are installed. RHBZ 2255599 RHBZ 2255768 MESA 10340 MESA 10341
This commit is contained in:
parent
65240c8b17
commit
c5c4360da7
2 changed files with 27 additions and 0 deletions
26
disable-zink-egl-fallback.patch
Normal file
26
disable-zink-egl-fallback.patch
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
|
||||||
|
index d50be23e871..e3697622635 100644
|
||||||
|
--- a/src/egl/main/eglapi.c
|
||||||
|
+++ b/src/egl/main/eglapi.c
|
||||||
|
@@ -695,17 +695,21 @@ eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
|
||||||
|
if (disp->Options.ForceSoftware)
|
||||||
|
RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
|
||||||
|
else {
|
||||||
|
+#if 0
|
||||||
|
bool success = false;
|
||||||
|
if (!disp->Options.Zink && !getenv("GALLIUM_DRIVER")) {
|
||||||
|
disp->Options.Zink = EGL_TRUE;
|
||||||
|
success = _eglDriver.Initialize(disp);
|
||||||
|
}
|
||||||
|
if (!success) {
|
||||||
|
+#endif
|
||||||
|
disp->Options.Zink = EGL_FALSE;
|
||||||
|
disp->Options.ForceSoftware = EGL_TRUE;
|
||||||
|
if (!_eglDriver.Initialize(disp))
|
||||||
|
RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
|
||||||
|
+#if 0
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -76,6 +76,7 @@ Source1: Mesa-MLAA-License-Clarification-Email.txt
|
||||||
Patch10: gnome-shell-glthread-disable.patch
|
Patch10: gnome-shell-glthread-disable.patch
|
||||||
Patch11: 0001-intel-compiler-reemit-boolean-resolve-for-inverted-i.patch
|
Patch11: 0001-intel-compiler-reemit-boolean-resolve-for-inverted-i.patch
|
||||||
Patch12: 0001-intel-compiler-fix-release-build-unused-variable.patch
|
Patch12: 0001-intel-compiler-fix-release-build-unused-variable.patch
|
||||||
|
Patch13: disable-zink-egl-fallback.patch
|
||||||
|
|
||||||
BuildRequires: meson >= 1.2.0
|
BuildRequires: meson >= 1.2.0
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
|
|
Loading…
Reference in a new issue