From 7c3ddb310810fb88d3b0d9bfd3f2981f928303a8 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Mon, 2 Dec 2024 09:41:13 +0300 Subject: [PATCH] import mutter-47.0-3.el10 --- ...ogl-egl-Choose-config-only-if-needed.patch | 89 +++++++++++++++++++ ...Add-BGRX8888-format-to-the-default-l.patch | 37 ++++++++ SPECS/mutter.spec | 9 +- 3 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0001-cogl-egl-Choose-config-only-if-needed.patch create mode 100644 SOURCES/0002-renderer-native-Add-BGRX8888-format-to-the-default-l.patch diff --git a/SOURCES/0001-cogl-egl-Choose-config-only-if-needed.patch b/SOURCES/0001-cogl-egl-Choose-config-only-if-needed.patch new file mode 100644 index 0000000..7bc0c5a --- /dev/null +++ b/SOURCES/0001-cogl-egl-Choose-config-only-if-needed.patch @@ -0,0 +1,89 @@ +From 3a858da28e0517a862e40ea992f8bb0f2988dc33 Mon Sep 17 00:00:00 2001 +From: Jocelyn Falempe +Date: Fri, 18 Oct 2024 17:19:14 +0200 +Subject: [PATCH 1/2] cogl/egl: Choose config only if needed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In try_create_context(), if COGL_EGL_WINSYS_FEATURE_NO_CONFIG_CONTEXT +is set, don't try to choose an egl config. + +Signed-off-by: Jocelyn Falempe +Signed-off-by: Jonas Ådahl +Part-of: +(cherry picked from commit 18085b0e402ba5a7fe9c6a06a8cbb0bfcaabebf7) +--- + cogl/cogl/winsys/cogl-winsys-egl-private.h | 2 ++ + cogl/cogl/winsys/cogl-winsys-egl-x11.c | 1 + + cogl/cogl/winsys/cogl-winsys-egl.c | 27 +++++++++++++--------- + 3 files changed, 19 insertions(+), 11 deletions(-) + +diff --git a/cogl/cogl/winsys/cogl-winsys-egl-private.h b/cogl/cogl/winsys/cogl-winsys-egl-private.h +index 6a31d1ab2d..30821cc22f 100644 +--- a/cogl/cogl/winsys/cogl-winsys-egl-private.h ++++ b/cogl/cogl/winsys/cogl-winsys-egl-private.h +@@ -120,6 +120,8 @@ typedef struct _CoglRendererEGL + /* vtable for platform specific parts */ + const CoglWinsysEGLVtable *platform_vtable; + ++ gboolean needs_config; ++ + /* Sync for latest submitted work */ + EGLSyncKHR sync; + +diff --git a/cogl/cogl/winsys/cogl-winsys-egl-x11.c b/cogl/cogl/winsys/cogl-winsys-egl-x11.c +index 7393f79f6a..d61e82f4de 100644 +--- a/cogl/cogl/winsys/cogl-winsys-egl-x11.c ++++ b/cogl/cogl/winsys/cogl-winsys-egl-x11.c +@@ -244,6 +244,7 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer, + + egl_renderer->platform_vtable = &_cogl_winsys_egl_vtable; + egl_renderer->sync = EGL_NO_SYNC_KHR; ++ egl_renderer->needs_config = TRUE; + + if (!_cogl_xlib_renderer_connect (renderer, error)) + goto error; +diff --git a/cogl/cogl/winsys/cogl-winsys-egl.c b/cogl/cogl/winsys/cogl-winsys-egl.c +index b37ba15316..54a402aee2 100644 +--- a/cogl/cogl/winsys/cogl-winsys-egl.c ++++ b/cogl/cogl/winsys/cogl-winsys-egl.c +@@ -329,19 +329,24 @@ try_create_context (CoglDisplay *display, + + edpy = egl_renderer->edpy; + +- if (!egl_renderer->platform_vtable->choose_config (display, +- cfg_attribs, +- &config, +- &config_error)) ++ if (!(egl_renderer->private_features & ++ COGL_EGL_WINSYS_FEATURE_NO_CONFIG_CONTEXT) || ++ egl_renderer->needs_config) + { +- g_set_error (error, COGL_WINSYS_ERROR, +- COGL_WINSYS_ERROR_CREATE_CONTEXT, +- "Couldn't choose config: %s", config_error->message); +- g_error_free (config_error); +- goto err; +- } ++ if (!egl_renderer->platform_vtable->choose_config (display, ++ cfg_attribs, ++ &config, ++ &config_error)) ++ { ++ g_set_error (error, COGL_WINSYS_ERROR, ++ COGL_WINSYS_ERROR_CREATE_CONTEXT, ++ "Couldn't choose config: %s", config_error->message); ++ g_error_free (config_error); ++ goto err; ++ } + +- egl_display->egl_config = config; ++ egl_display->egl_config = config; ++ } + + if (display->renderer->driver == COGL_DRIVER_GL3) + { +-- +2.44.0.501.g19981daefd.dirty + diff --git a/SOURCES/0002-renderer-native-Add-BGRX8888-format-to-the-default-l.patch b/SOURCES/0002-renderer-native-Add-BGRX8888-format-to-the-default-l.patch new file mode 100644 index 0000000..f6e5507 --- /dev/null +++ b/SOURCES/0002-renderer-native-Add-BGRX8888-format-to-the-default-l.patch @@ -0,0 +1,37 @@ +From e5c80f620e11e401efc8deddc09b86e4b227320e Mon Sep 17 00:00:00 2001 +From: Jocelyn Falempe +Date: Tue, 15 Oct 2024 14:38:55 +0200 +Subject: [PATCH 2/2] renderer/native: Add BGRX8888 format to the default list + +On big endian machine, the native 32bits format is +DRM_FORMAT_BGRX8888, so add this format to the list. + +Tested on a s390x VM, using virtio-gpu driver. + +Signed-off-by: Jocelyn Falempe +Part-of: +(cherry picked from commit e44620c86e76f7150d756609341b97617af50258) +--- + src/backends/native/meta-onscreen-native.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c +index 8a25fca8cc..18c18f7225 100644 +--- a/src/backends/native/meta-onscreen-native.c ++++ b/src/backends/native/meta-onscreen-native.c +@@ -2088,6 +2088,12 @@ choose_onscreen_egl_config (CoglOnscreen *onscreen, + GBM_FORMAT_ABGR2101010, + GBM_FORMAT_RGBA1010102, + GBM_FORMAT_BGRA1010102, ++ GBM_FORMAT_XBGR8888, ++ GBM_FORMAT_ABGR8888, ++ GBM_FORMAT_RGBX8888, ++ GBM_FORMAT_RGBA8888, ++ GBM_FORMAT_BGRX8888, ++ GBM_FORMAT_BGRA8888, + GBM_FORMAT_XRGB8888, + GBM_FORMAT_ARGB8888, + }; +-- +2.44.0.501.g19981daefd.dirty + diff --git a/SPECS/mutter.spec b/SPECS/mutter.spec index d608ed9..a0b2bee 100644 --- a/SPECS/mutter.spec +++ b/SPECS/mutter.spec @@ -2,7 +2,7 @@ ## (rpmautospec version 0.6.5) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: - release_number = 2; + release_number = 3; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} @@ -50,6 +50,10 @@ Patch: 0003-Revert-x11-window-Use-correct-bounding-rect-to-deter.patch # Revert deprecation fix to avoid newer glib requirement Patch: 0001-Revert-Replace-deprecated-g_qsort_with_data-with-g_s.patch +# RHEL-45898 +Patch: 0001-cogl-egl-Choose-config-only-if-needed.patch +Patch: 0002-renderer-native-Add-BGRX8888-format-to-the-default-l.patch + BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0 BuildRequires: pkgconfig(sm) BuildRequires: pkgconfig(libwacom) @@ -214,6 +218,9 @@ the functionality of the installed %{name} package. %changelog ## START: Generated by rpmautospec +* Fri Nov 29 2024 Jonas Ådahl - 47.0-3 +- Backport BGRX8888 pixel format support + * Tue Oct 29 2024 Troy Dawson - 47.0-2 - Bump release for October 2024 mass rebuild: