From d5b2e40be6d6e4c52078ab5a087eefaa7330c320 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 21 Jun 2022 22:16:22 +0200 Subject: mesa: update 22.0.3 -> 22.1.2 Signed-off-by: Alexander Kanavin Signed-off-by: Luca Ceresoli Signed-off-by: Richard Purdie --- ...use-swkmsDRI2Extension-instead-of-driDRI2.patch | 113 +++++++++++++++++++++ meta/recipes-graphics/mesa/mesa-gl_22.0.3.bb | 13 --- meta/recipes-graphics/mesa/mesa-gl_22.1.2.bb | 13 +++ meta/recipes-graphics/mesa/mesa.inc | 3 +- meta/recipes-graphics/mesa/mesa_22.0.3.bb | 2 - meta/recipes-graphics/mesa/mesa_22.1.2.bb | 2 + 6 files changed, 130 insertions(+), 16 deletions(-) create mode 100644 meta/recipes-graphics/mesa/files/0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch delete mode 100644 meta/recipes-graphics/mesa/mesa-gl_22.0.3.bb create mode 100644 meta/recipes-graphics/mesa/mesa-gl_22.1.2.bb delete mode 100644 meta/recipes-graphics/mesa/mesa_22.0.3.bb create mode 100644 meta/recipes-graphics/mesa/mesa_22.1.2.bb diff --git a/meta/recipes-graphics/mesa/files/0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch b/meta/recipes-graphics/mesa/files/0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch new file mode 100644 index 0000000000..db25e16f4a --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch @@ -0,0 +1,113 @@ +From feb4ec510b1328fdd9aa77305d3273d1f9c7e124 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 9 Jun 2022 11:42:05 +0200 +Subject: [PATCH] swrast_kms: use swkmsDRI2Extension instead of + driDRI2Extension + +This set of changes: +https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15649 + +caused a regression in Xorg when using swrast_kms: + (EE) AIGLX error: Calling driver entry point failed + +This commit changes the swrast_kms driver to use a dedicated screen init function +(which I believe was overlooked); I also took the opportunity to rename the +associated plumbling to have swrast-specific names. + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16942] +Signed-off-by: Alexander Kanavin +--- + src/gallium/frontends/dri/dri2.c | 16 ++++++++-------- + src/gallium/frontends/dri/dri_screen.h | 4 ++-- + src/gallium/frontends/dri/dri_util.c | 2 +- + src/gallium/targets/dri/target.c | 2 +- + 4 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c +index 63ac9d5..de33789 100644 +--- a/src/gallium/frontends/dri/dri2.c ++++ b/src/gallium/frontends/dri/dri2.c +@@ -2508,7 +2508,7 @@ release_pipe: + * Returns the struct gl_config supported by this driver. + */ + static const __DRIconfig ** +-dri_kms_init_screen(__DRIscreen * sPriv) ++dri_swrast_kms_init_screen(__DRIscreen * sPriv) + { + #if defined(GALLIUM_SOFTPIPE) + const __DRIconfig **configs; +@@ -2613,8 +2613,8 @@ static const struct __DRIDriverVtableExtensionRec galliumdrm_vtable = { + * hook. The latter is used to explicitly initialise the kms_swrast driver + * rather than selecting the approapriate driver as suggested by the loader. + */ +-const struct __DriverAPIRec dri_kms_driver_api = { +- .InitScreen = dri_kms_init_screen, ++const struct __DriverAPIRec dri_swrast_kms_driver_api = { ++ .InitScreen = dri_swrast_kms_init_screen, + .DestroyScreen = dri_destroy_screen, + .CreateBuffer = dri2_create_buffer, + .DestroyBuffer = dri_destroy_buffer, +@@ -2633,17 +2633,17 @@ const __DRIextension *galliumdrm_driver_extensions[] = { + NULL + }; + +-static const struct __DRIDriverVtableExtensionRec dri_kms_vtable = { ++static const struct __DRIDriverVtableExtensionRec dri_swrast_kms_vtable = { + .base = { __DRI_DRIVER_VTABLE, 1 }, +- .vtable = &dri_kms_driver_api, ++ .vtable = &dri_swrast_kms_driver_api, + }; + +-const __DRIextension *dri_kms_driver_extensions[] = { ++const __DRIextension *dri_swrast_kms_driver_extensions[] = { + &driCoreExtension.base, + &driImageDriverExtension.base, +- &driDRI2Extension.base, ++ &swkmsDRI2Extension.base, + &gallium_config_options.base, +- &dri_kms_vtable.base, ++ &dri_swrast_kms_vtable.base, + NULL + }; + +diff --git a/src/gallium/frontends/dri/dri_screen.h b/src/gallium/frontends/dri/dri_screen.h +index 0ee2feb..0bb8817 100644 +--- a/src/gallium/frontends/dri/dri_screen.h ++++ b/src/gallium/frontends/dri/dri_screen.h +@@ -168,8 +168,8 @@ dri_destroy_screen_helper(struct dri_screen * screen); + void + dri_destroy_screen(__DRIscreen * sPriv); + +-extern const struct __DriverAPIRec dri_kms_driver_api; +-extern const __DRIextension *dri_kms_driver_extensions[]; ++extern const struct __DriverAPIRec dri_swrast_kms_driver_api; ++extern const __DRIextension *dri_swrast_kms_driver_extensions[]; + extern const struct __DriverAPIRec galliumdrm_driver_api; + extern const __DRIextension *galliumdrm_driver_extensions[]; + extern const struct __DriverAPIRec galliumsw_driver_api; +diff --git a/src/gallium/frontends/dri/dri_util.c b/src/gallium/frontends/dri/dri_util.c +index 8d60526..03614e1 100644 +--- a/src/gallium/frontends/dri/dri_util.c ++++ b/src/gallium/frontends/dri/dri_util.c +@@ -187,7 +187,7 @@ swkmsCreateNewScreen(int scrn, int fd, + const __DRIconfig ***driver_configs, void *data) + { + return driCreateNewScreen2(scrn, fd, extensions, +- dri_kms_driver_extensions, ++ dri_swrast_kms_driver_extensions, + driver_configs, data); + } + +diff --git a/src/gallium/targets/dri/target.c b/src/gallium/targets/dri/target.c +index 9b78351..e02b03b 100644 +--- a/src/gallium/targets/dri/target.c ++++ b/src/gallium/targets/dri/target.c +@@ -25,7 +25,7 @@ const __DRIextension **__driDriverGetExtensions_kms_swrast(void); + + PUBLIC const __DRIextension **__driDriverGetExtensions_kms_swrast(void) + { +- return dri_kms_driver_extensions; ++ return dri_swrast_kms_driver_extensions; + } + + #endif diff --git a/meta/recipes-graphics/mesa/mesa-gl_22.0.3.bb b/meta/recipes-graphics/mesa/mesa-gl_22.0.3.bb deleted file mode 100644 index f2bc8f6b5b..0000000000 --- a/meta/recipes-graphics/mesa/mesa-gl_22.0.3.bb +++ /dev/null @@ -1,13 +0,0 @@ -require mesa.inc - -SUMMARY += " (OpenGL only, no EGL/GLES)" - -PROVIDES = "virtual/libgl virtual/mesa" - -S = "${WORKDIR}/mesa-${PV}" - -# At least one DRI rendering engine is required to build mesa. -# When no X11 is available, use osmesa for the rendering engine. -PACKAGECONFIG ??= "opengl ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" -PACKAGECONFIG:class-target = "opengl ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" - diff --git a/meta/recipes-graphics/mesa/mesa-gl_22.1.2.bb b/meta/recipes-graphics/mesa/mesa-gl_22.1.2.bb new file mode 100644 index 0000000000..f2bc8f6b5b --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa-gl_22.1.2.bb @@ -0,0 +1,13 @@ +require mesa.inc + +SUMMARY += " (OpenGL only, no EGL/GLES)" + +PROVIDES = "virtual/libgl virtual/mesa" + +S = "${WORKDIR}/mesa-${PV}" + +# At least one DRI rendering engine is required to build mesa. +# When no X11 is available, use osmesa for the rendering engine. +PACKAGECONFIG ??= "opengl ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" +PACKAGECONFIG:class-target = "opengl ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" + diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 3c26b23ed5..83705fc34d 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -21,9 +21,10 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \ file://0001-util-format-Check-for-NEON-before-using-it.patch \ file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \ + file://0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch \ " -SRC_URI[sha256sum] = "9f2b30f5276a9abaf71aafc6979685e2636189de1a87aea2c9e69744a6d0ebb9" +SRC_URI[sha256sum] = "0971226b4a6a3d10cfc255736b33e4017e18c14c9db1e53863ac1f8ae0deb9ea" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" diff --git a/meta/recipes-graphics/mesa/mesa_22.0.3.bb b/meta/recipes-graphics/mesa/mesa_22.0.3.bb deleted file mode 100644 index 96e8aa38d6..0000000000 --- a/meta/recipes-graphics/mesa/mesa_22.0.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require ${BPN}.inc - diff --git a/meta/recipes-graphics/mesa/mesa_22.1.2.bb b/meta/recipes-graphics/mesa/mesa_22.1.2.bb new file mode 100644 index 0000000000..96e8aa38d6 --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa_22.1.2.bb @@ -0,0 +1,2 @@ +require ${BPN}.inc + -- cgit 1.2.3-korg