commit b455eb54cf638837d093df3dc2fc54bcd8cba391
Author: Vitaly Zaitsev <vitaly(a)easycoding.org>
Date: Sun Nov 13 13:25:59 2022 +0100
Updated to version 22.3.0-rc2.
.gitignore | 1 +
...Guard-usage-of-infer_zink-explicit_zink-i.patch | 37 +++
...ert-egl-glx-add-fallback-for-zink-loading.patch | 133 ++++++++
...eau-Use-format-modifiers-in-buffer-alloca.patch | 215 -------------
...-nouveau-no-modifier-the-invalid-modifier.patch | 32 --
...eau-Use-DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEA.patch | 337 ---------------------
...eau-Stash-supported-sector-layout-in-scre.patch | 49 ---
mesa-freeworld.spec | 20 +-
sources | 2 +-
9 files changed, 181 insertions(+), 645 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index a88829e..0784826 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/mesa-22.2.2.tar.xz
/mesa-22.2.3.tar.xz
+/mesa-22.3.0-rc2.tar.xz
diff --git a/0001-Revert-glx-Guard-usage-of-infer_zink-explicit_zink-i.patch
b/0001-Revert-glx-Guard-usage-of-infer_zink-explicit_zink-i.patch
new file mode 100644
index 0000000..4f661ae
--- /dev/null
+++ b/0001-Revert-glx-Guard-usage-of-infer_zink-explicit_zink-i.patch
@@ -0,0 +1,37 @@
+From a17c79c9df4a55ce9dfbe878d9cd19441a4e193e Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied(a)redhat.com>
+Date: Thu, 10 Nov 2022 15:20:24 +1000
+Subject: [PATCH 1/2] Revert "glx: Guard usage of infer_zink &&
!explicit_zink
+ in glxext.c"
+
+This reverts commit ffab4c8cb7bc7362cd3318f39162a98629bd4d19.
+---
+ src/glx/glxext.c | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/src/glx/glxext.c b/src/glx/glxext.c
+index 7f2fc2a0691..156bfc90946 100644
+--- a/src/glx/glxext.c
++++ b/src/glx/glxext.c
+@@ -969,7 +969,6 @@ __glXInitialize(Display * dpy)
+ #endif
+
+ if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) {
+-#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
+ Bool fail = true;
+ /* if zink was inferred, retry without zink */
+ if (infer_zink && !explicit_zink) {
+@@ -981,10 +980,6 @@ __glXInitialize(Display * dpy)
+ free(dpyPriv);
+ return NULL;
+ }
+-#else
+- free(dpyPriv);
+- return NULL;
+-#endif
+ }
+
+ __glX_send_client_info(dpyPriv);
+--
+2.38.1
+
diff --git a/0002-Revert-egl-glx-add-fallback-for-zink-loading.patch
b/0002-Revert-egl-glx-add-fallback-for-zink-loading.patch
new file mode 100644
index 0000000..2899031
--- /dev/null
+++ b/0002-Revert-egl-glx-add-fallback-for-zink-loading.patch
@@ -0,0 +1,133 @@
+From cb4d4c8e9c424969f2d7834e15fd8123dbbda84a Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied(a)redhat.com>
+Date: Thu, 10 Nov 2022 15:27:08 +1000
+Subject: [PATCH 2/2] Revert "egl/glx: add fallback for zink loading"
+
+This reverts commit 2569215f43f6ce71fb8eb2181b36c6cf976bce2a.
+
+This break glxinfo in a swrast only VM for me on Fedora
+---
+ src/egl/main/eglapi.c | 22 ++++------------------
+ src/glx/drisw_glx.c | 5 ++++-
+ src/glx/glxext.c | 29 ++++++-----------------------
+ 3 files changed, 14 insertions(+), 42 deletions(-)
+
+diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
+index 15f6e2e173b..041f35aa7b6 100644
+--- a/src/egl/main/eglapi.c
++++ b/src/egl/main/eglapi.c
+@@ -701,26 +701,12 @@ eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
+ * If the initialisation fails, try again using only software rendering.
+ */
+ if (!_eglDriver.Initialize(disp)) {
+- bool fail = true;
+- if (!disp->Options.ForceSoftware && !disp->Options.Zink
&&
+- !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) &&
!getenv("GALLIUM_DRIVER")) {
+- /* zink fallback */
+- disp->Options.Zink = EGL_TRUE;
++ if (disp->Options.ForceSoftware)
++ RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
++ else {
+ disp->Options.ForceSoftware = EGL_TRUE;
+- fail = !_eglDriver.Initialize(disp);
+- if (fail) {
+- disp->Options.Zink = EGL_FALSE;
+- disp->Options.ForceSoftware = EGL_FALSE;
+- }
+- }
+- if (fail) {
+- if (disp->Options.ForceSoftware)
++ if (!_eglDriver.Initialize(disp))
+ RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
+- else {
+- disp->Options.ForceSoftware = EGL_TRUE;
+- if (!_eglDriver.Initialize(disp))
+- RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
+- }
+ }
+ }
+
+diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
+index c124c62c31e..25d853fcd16 100644
+--- a/src/glx/drisw_glx.c
++++ b/src/glx/drisw_glx.c
+@@ -1054,8 +1054,11 @@ static struct glx_screen *
+ driswCreateScreen(int screen, struct glx_display *priv)
+ {
+ const struct drisw_display *pdpyp = (struct drisw_display *)priv->driswDisplay;
++ if (pdpyp->zink &&
!debug_get_bool_option("LIBGL_KOPPER_DISABLE", false)) {
++ return driswCreateScreenDriver(screen, priv, "zink");
++ }
+
+- return driswCreateScreenDriver(screen, priv, pdpyp->zink ? "zink" :
"swrast");
++ return driswCreateScreenDriver(screen, priv, "swrast");
+ }
+
+ /* Called from __glXFreeDisplayPrivate.
+diff --git a/src/glx/glxext.c b/src/glx/glxext.c
+index 156bfc90946..e4da247b349 100644
+--- a/src/glx/glxext.c
++++ b/src/glx/glxext.c
+@@ -923,9 +923,9 @@ __glXInitialize(Display * dpy)
+ #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
+ Bool glx_direct = !debug_get_bool_option("LIBGL_ALWAYS_INDIRECT", false);
+ Bool glx_accel = !debug_get_bool_option("LIBGL_ALWAYS_SOFTWARE", false);
++ Bool zink;
+ const char *env = getenv("MESA_LOADER_DRIVER_OVERRIDE");
+- Bool explicit_zink = env && !strcmp(env, "zink");
+- Bool infer_zink = false;
++ zink = env && !strcmp(env, "zink");
+
+ dpyPriv->drawHash = __glxHashCreate();
+
+@@ -940,25 +940,17 @@ __glXInitialize(Display * dpy)
+ ** (e.g., those called in AllocAndFetchScreenConfigs).
+ */
+ #if defined(GLX_USE_DRM)
+- if (glx_direct && glx_accel && !explicit_zink) {
++ if (glx_direct && glx_accel && !zink) {
+ #if defined(HAVE_DRI3)
+ if (!debug_get_bool_option("LIBGL_DRI3_DISABLE", false))
+ dpyPriv->dri3Display = dri3_create_display(dpy);
+ #endif /* HAVE_DRI3 */
+ if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false))
+ dpyPriv->dri2Display = dri2CreateDisplay(dpy);
+- /* zink fallback */
+- if (!dpyPriv->dri3Display && !dpyPriv->dri2Display)
+- infer_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false)
&& !getenv("GALLIUM_DRIVER");
+ }
+ #endif /* GLX_USE_DRM */
+ if (glx_direct)
+- dpyPriv->driswDisplay = driswCreateDisplay(dpy, explicit_zink | infer_zink);
+-
+-#ifdef GLX_USE_WINDOWSGL
+- if (glx_direct && glx_accel)
+- dpyPriv->windowsdriDisplay = driwindowsCreateDisplay(dpy);
+-#endif
++ dpyPriv->driswDisplay = driswCreateDisplay(dpy, zink);
+ #endif /* GLX_DIRECT_RENDERING && !GLX_USE_APPLEGL */
+
+ #ifdef GLX_USE_APPLEGL
+@@ -969,17 +961,8 @@ __glXInitialize(Display * dpy)
+ #endif
+
+ if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) {
+- Bool fail = true;
+- /* if zink was inferred, retry without zink */
+- if (infer_zink && !explicit_zink) {
+- free(dpyPriv->screens);
+- driswCreateDisplay(dpy, false);
+- fail = !AllocAndFetchScreenConfigs(dpy, dpyPriv);
+- }
+- if (fail) {
+- free(dpyPriv);
+- return NULL;
+- }
++ free(dpyPriv);
++ return NULL;
+ }
+
+ __glX_send_client_info(dpyPriv);
+--
+2.38.1
+
diff --git a/mesa-freeworld.spec b/mesa-freeworld.spec
index fdbeaad..f347b04 100644
--- a/mesa-freeworld.spec
+++ b/mesa-freeworld.spec
@@ -54,7 +54,7 @@
Name: %{srcname}-freeworld
Summary: Mesa graphics libraries
-%global ver 22.2.3
+%global ver 22.3.0-rc2
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-",
"~"); print(ver)}
Release: 1%{?dist}
License: MIT
@@ -68,15 +68,9 @@ Source1: Mesa-MLAA-License-Clarification-Email.txt
Source2: org.mesa3d.vaapi.freeworld.metainfo.xml
Source3: org.mesa3d.vdpau.freeworld.metainfo.xml
-# Patches from Karol Herbst to make Tegra work again:
-#
https://bugzilla.redhat.com/show_bug.cgi?id=1989726#c46
-# see also:
-#
https://gitlab.freedesktop.org/mesa/mesa/-/issues/5399
-# Last four revert
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3724
-Patch0005: 0003-Revert-nouveau-Use-format-modifiers-in-buffer-alloca.patch
-Patch0006: 0004-Revert-nouveau-no-modifier-the-invalid-modifier.patch
-Patch0007: 0005-Revert-nouveau-Use-DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEA.patch
-Patch0008: 0006-Revert-nouveau-Stash-supported-sector-layout-in-scre.patch
+# revert zink autoloader it breaks glxinfo in a VM
+Patch10: 0001-Revert-glx-Guard-usage-of-infer_zink-explicit_zink-i.patch
+Patch11: 0002-Revert-egl-glx-add-fallback-for-zink-loading.patch
# Patches from Karol Herbst to fix Nouveau multithreading:
#
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10752
@@ -189,7 +183,6 @@ cp %{SOURCE1} docs/
-Dgallium-drivers=swrast,virgl \
%endif
-Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \
- -Dgallium-xvmc=disabled \
-Dgallium-omx=%{!?with_omx:bellagio}%{?with_omx:disabled} \
-Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \
-Dgallium-xa=%{!?with_xa:enabled}%{?with_xa:disabled} \
@@ -263,6 +256,7 @@ rm -fr %{buildroot}%{_libdir}/libVkLayer_MESA_device_select.so
%if 0%{?with_va}
%files -n %{srcname}-va-drivers-freeworld
%license docs/license.rst
+%{_libdir}/dri/virtio_gpu_drv_video.so
%{_libdir}/dri/nouveau_drv_video.so
%if 0%{?with_r600}
%{_libdir}/dri/r600_drv_video.so
@@ -276,6 +270,7 @@ rm -fr %{buildroot}%{_libdir}/libVkLayer_MESA_device_select.so
%if 0%{?with_vdpau}
%files -n %{srcname}-vdpau-drivers-freeworld
%license docs/license.rst
+%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1*
%{_libdir}/vdpau/libvdpau_nouveau.so.1*
%if 0%{?with_r300}
%{_libdir}/vdpau/libvdpau_r300.so.1*
@@ -290,6 +285,9 @@ rm -fr %{buildroot}%{_libdir}/libVkLayer_MESA_device_select.so
%endif
%changelog
+* Sun Nov 13 2022 Vitaly Zaitsev <vitaly(a)easycoding.org> - 22.3.0~rc2-1
+- Updated to version 22.3.0-rc2.
+
* Sun Nov 13 2022 Vitaly Zaitsev <vitaly(a)easycoding.org> - 22.2.3-1
- Updated to version 22.2.3.
diff --git a/sources b/sources
index 2cbf32c..c8c6b75 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (mesa-22.2.3.tar.xz) =
08e9ce43392c46f9c0d122d70e118511eea81422d06f93ab6d330689b46feed3ac1c3bdcdcfd4a27cd5b9eaf26aab518d152a2c753f07b8ed19575d4ed892ad6
+SHA512 (mesa-22.3.0-rc2.tar.xz) =
dad41ba87b5f55c4e6f3478c348c14fc8b2b29beb87f20d99cedeeeb47bb787e2fe98570544cdb9bb06466fc3c61a43b9797d27e5f1b700c608ef539a5916fd4