Update to 49.4

Resolves: RHEL-144942
This commit is contained in:
Jonas Ådahl 2026-02-13 10:46:31 +01:00
parent e766ff7413
commit 9cb90429ad
6 changed files with 1023 additions and 12 deletions

1
.gitignore vendored
View File

@ -229,3 +229,4 @@ mutter-2.31.5.tar.bz2
/mutter-47.5.tar.xz
/mutter-49.1.1.tar.xz
/meson-1.5.0.tar.gz
/mutter-49.4.tar.xz

View File

@ -0,0 +1,211 @@
From 24203b9306d75c3209969a6fdbb363afa51e15fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Fri, 13 Feb 2026 11:20:51 +0100
Subject: [PATCH] Revert "mdk: Use PipeWire damage region for minimizing
redraws"
This reverts commit fc337eb0b81740388f6e4496c87dbd4b3a578439.
---
mdk/mdk-stream.c | 117 ++++-------------------------------------------
1 file changed, 9 insertions(+), 108 deletions(-)
diff --git a/mdk/mdk-stream.c b/mdk/mdk-stream.c
index 979f89b834..96b31ea34f 100644
--- a/mdk/mdk-stream.c
+++ b/mdk/mdk-stream.c
@@ -396,8 +396,7 @@ on_stream_param_changed (void *user_data,
MdkStream *stream = MDK_STREAM (user_data);
uint8_t params_buffer[1024];
struct spa_pod_builder pod_builder;
- const struct spa_pod *params[4];
- const size_t meta_region_size = sizeof (struct spa_meta_region);
+ const struct spa_pod *params[3];
int result;
if (!format || id != SPA_PARAM_Format)
@@ -453,15 +452,6 @@ on_stream_param_changed (void *user_data,
CURSOR_META_SIZE (384, 384)),
0);
- params[3] = spa_pod_builder_add_object (
- &pod_builder,
- SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
- SPA_PARAM_META_type, SPA_POD_Id (SPA_META_VideoDamage),
- SPA_PARAM_META_size, SPA_POD_CHOICE_RANGE_Int (meta_region_size * 32,
- meta_region_size * 1,
- meta_region_size * 32),
- 0);
-
pw_stream_update_params (stream->pipewire_stream,
params, G_N_ELEMENTS (params));
}
@@ -547,60 +537,6 @@ read_cursor_metadata (MdkStream *stream,
}
}
-static cairo_region_t *
-read_damage_metadata (MdkStream *stream,
- struct spa_buffer *spa_buffer)
-{
- struct spa_meta *video_damage;
- struct spa_meta_region *meta_region;
- g_autofree cairo_rectangle_int_t *cairo_rects = NULL;
- int num_rects = 0;
-
- video_damage = spa_buffer_find_meta (spa_buffer, SPA_META_VideoDamage);
- if (!video_damage)
- return NULL;
-
- meta_region = spa_meta_first (video_damage);
- if (!meta_region)
- return NULL;
-
- spa_meta_for_each (meta_region, video_damage)
- {
- if (!spa_meta_region_is_valid (meta_region))
- break;
-
- num_rects++;
- }
-
- if (!num_rects)
- return NULL;
-
- g_debug ("Stream has damage with %d rectangles", num_rects);
-
- cairo_rects = g_new (cairo_rectangle_int_t, num_rects);
- num_rects = 0;
- spa_meta_for_each (meta_region, video_damage)
- {
- if (!spa_meta_region_is_valid (meta_region))
- break;
-
- g_debug ("Stream damage rectangle %d: %ux%u +%d+%d",
- num_rects,
- meta_region->region.size.width,
- meta_region->region.size.height,
- meta_region->region.position.x,
- meta_region->region.position.y);
-
- cairo_rects[num_rects].x = meta_region->region.position.x;
- cairo_rects[num_rects].y = meta_region->region.position.y;
- cairo_rects[num_rects].width = meta_region->region.size.width;
- cairo_rects[num_rects].height = meta_region->region.size.height;
- num_rects++;
- }
-
- return cairo_region_create_rectangles (cairo_rects, num_rects);
-}
-
static void
on_stream_process (void *user_data)
{
@@ -609,7 +545,6 @@ on_stream_process (void *user_data)
struct pw_buffer *buffer = NULL;
struct spa_buffer *spa_buffer;
struct spa_meta_header *spa_header;
- cairo_region_t *damage_region = NULL;
gboolean hold_buffer = FALSE;
gboolean has_buffer;
uint32_t drm_format;
@@ -634,13 +569,11 @@ on_stream_process (void *user_data)
if (!has_buffer)
goto read_metadata;
- damage_region = read_damage_metadata (stream, spa_buffer);
-
if (spa_buffer->datas[0].type == SPA_DATA_DmaBuf)
{
g_autoptr (GdkDmabufTextureBuilder) builder = NULL;
- g_autoptr (GError) error = NULL;
unsigned int i;
+ g_autoptr (GError) error = NULL;
if (!spa_pixel_format_to_drm_format (stream->format.info.raw.format,
&drm_format))
@@ -671,13 +604,6 @@ on_stream_process (void *user_data)
gdk_dmabuf_texture_builder_set_stride (builder, i, spa_buffer->datas[i].chunk->stride);
}
- if (GDK_IS_TEXTURE (stream->paintable))
- {
- gdk_dmabuf_texture_builder_set_update_region (builder, damage_region);
- gdk_dmabuf_texture_builder_set_update_texture (builder,
- GDK_TEXTURE (stream->paintable));
- }
-
g_clear_object (&stream->paintable);
stream->paintable =
GDK_PAINTABLE (gdk_dmabuf_texture_builder_build (builder,
@@ -703,10 +629,9 @@ on_stream_process (void *user_data)
}
else
{
- g_autoptr (GdkMemoryTextureBuilder) builder = NULL;
+ g_autoptr (GdkTexture) texture = NULL;
g_autoptr (GBytes) bytes = NULL;
GdkMemoryFormat gdk_format;
- unsigned int i;
uint8_t *map;
void *data;
uint32_t bpp;
@@ -721,29 +646,6 @@ on_stream_process (void *user_data)
goto read_metadata;
}
- builder = gdk_memory_texture_builder_new ();
- gdk_memory_texture_builder_set_width (builder,
- stream->format.info.raw.size.width);
- gdk_memory_texture_builder_set_height (builder,
- stream->format.info.raw.size.height);
- gdk_memory_texture_builder_set_format (builder,
- gdk_format);
-
- for (i = 0; i < spa_buffer->n_datas; i++)
- {
- gdk_memory_texture_builder_set_offset (builder, i,
- spa_buffer->datas[i].chunk->offset);
- gdk_memory_texture_builder_set_stride_for_plane (builder, i,
- spa_buffer->datas[i].chunk->stride);
- }
-
- if (GDK_IS_TEXTURE (stream->paintable))
- {
- gdk_memory_texture_builder_set_update_region (builder, damage_region);
- gdk_memory_texture_builder_set_update_texture (builder,
- GDK_TEXTURE (stream->paintable));
- }
-
size = spa_buffer->datas[0].maxsize + spa_buffer->datas[0].mapoffset;
map = mmap (NULL, size, PROT_READ, MAP_PRIVATE, spa_buffer->datas[0].fd, 0);
@@ -756,11 +658,12 @@ on_stream_process (void *user_data)
bytes = g_bytes_new (data, size);
- gdk_memory_texture_builder_set_bytes (builder, bytes);
-
- g_clear_object (&stream->paintable);
- stream->paintable =
- GDK_PAINTABLE (gdk_memory_texture_builder_build (builder));
+ texture = gdk_memory_texture_new (stream->format.info.raw.size.width,
+ stream->format.info.raw.size.height,
+ gdk_format,
+ bytes,
+ spa_buffer->datas[0].chunk->stride);
+ g_set_object (&stream->paintable, GDK_PAINTABLE (texture));
munmap (map, size);
}
@@ -789,8 +692,6 @@ read_metadata:
if (!pw_stream_is_driving (stream->pipewire_stream))
gdk_paintable_invalidate_contents (GDK_PAINTABLE (stream));
-
- g_clear_pointer (&damage_region, cairo_region_destroy);
}
static void
--
2.51.0

View File

@ -0,0 +1,790 @@
From 4b4bfed2a0ff7bf9581a2b993c588740ff4eea34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Fri, 13 Feb 2026 16:14:24 +0100
Subject: [PATCH] Revert "tests/monitor-backlight: Add tests for the sysfs
backlight"
This reverts commit f7338dfe1cd4d33646a619d83853e2b968793632.
---
.gitlab-ci.yml | 2 -
meson.build | 2 -
src/backends/meta-backlight-private.h | 3 -
src/backends/meta-backlight-sysfs-private.h | 1 -
src/backends/meta-backlight.c | 8 -
src/backends/meta-launcher.h | 2 -
src/tests/dbusmock-templates/logind.py | 23 --
src/tests/meson.build | 50 ++--
src/tests/meta-context-test-private.h | 28 --
src/tests/meta-context-test.c | 17 +-
src/tests/meta-monitor-test-utils.c | 59 ----
src/tests/meta-monitor-test-utils.h | 1 -
src/tests/monitor-backlight-tests.c | 284 +-------------------
src/tests/mutter_dbusrunner.py | 3 -
14 files changed, 32 insertions(+), 451 deletions(-)
delete mode 100644 src/tests/meta-context-test-private.h
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cab1daccc5..cea2448ef5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -133,7 +133,6 @@ variables:
gnome-desktop-testing
ruff
mypy
- umockdev-devel
libheif-devel
libjxl-devel
lcms2-devel
@@ -152,7 +151,6 @@ variables:
'pkgconfig(xrender)'
'pkgconfig(xtst)'
-
FDO_DISTRIBUTION_EXEC: |
set -e
diff --git a/meson.build b/meson.build
index 2afc0774b8..f77badb9ae 100644
--- a/meson.build
+++ b/meson.build
@@ -44,7 +44,6 @@ libdisplay_info_req = '>= 0.2'
# optional version requirements
udev_req = '>= 228'
gudev_req = '>= 238'
-umockdev_req = '>= 0.3.0'
# wayland version requirements
wayland_server_req = '>= 1.24'
@@ -409,7 +408,6 @@ if have_tests
gtk3_dep = dependency('gtk+-3.0', version: gtk3_req)
dbusmock_dep = python.find_installation('python3', modules: ['dbusmock'], required: false)
libevdev_dep = dependency('libevdev', required: false)
- umockdev_dep = dependency('umockdev-1.0', version: umockdev_req)
if not have_native_backend
error('Tests require the native backend to be enabled')
diff --git a/src/backends/meta-backlight-private.h b/src/backends/meta-backlight-private.h
index 0010751bbb..2740932dcd 100644
--- a/src/backends/meta-backlight-private.h
+++ b/src/backends/meta-backlight-private.h
@@ -42,6 +42,3 @@ const char * meta_backlight_get_name (MetaBacklight *backlight);
void meta_backlight_update_brightness_target (MetaBacklight *backlight,
int brightness);
-
-META_EXPORT_TEST
-gboolean meta_backlight_has_pending (MetaBacklight *backlight);
diff --git a/src/backends/meta-backlight-sysfs-private.h b/src/backends/meta-backlight-sysfs-private.h
index 2045d8c50a..1f58c2959d 100644
--- a/src/backends/meta-backlight-sysfs-private.h
+++ b/src/backends/meta-backlight-sysfs-private.h
@@ -29,7 +29,6 @@ G_DECLARE_FINAL_TYPE (MetaBacklightSysfs,
META, BACKLIGHT_SYSFS,
MetaBacklight)
-META_EXPORT_TEST
MetaBacklightSysfs * meta_backlight_sysfs_new (MetaBackend *backend,
const MetaOutputInfo *output_info,
GError **error);
diff --git a/src/backends/meta-backlight.c b/src/backends/meta-backlight.c
index c01935ac18..88f1626851 100644
--- a/src/backends/meta-backlight.c
+++ b/src/backends/meta-backlight.c
@@ -72,14 +72,6 @@ meta_backlight_get_name (MetaBacklight *backlight)
return priv->name;
}
-gboolean
-meta_backlight_has_pending (MetaBacklight *backlight)
-{
- MetaBacklightPrivate *priv = meta_backlight_get_instance_private (backlight);
-
- return priv->pending;
-}
-
void
meta_backlight_update_brightness_target (MetaBacklight *backlight,
int brightness)
diff --git a/src/backends/meta-launcher.h b/src/backends/meta-launcher.h
index 9e8b177ff3..d9e882a395 100644
--- a/src/backends/meta-launcher.h
+++ b/src/backends/meta-launcher.h
@@ -20,7 +20,6 @@
#include <glib-object.h>
#include "backends/meta-backend-types.h"
-#include "core/util-private.h"
#define META_TYPE_LAUNCHER (meta_launcher_get_type ())
G_DECLARE_FINAL_TYPE (MetaLauncher,
@@ -44,7 +43,6 @@ gboolean meta_launcher_take_control (MetaLauncher *launcher,
const char * meta_launcher_get_seat_id (MetaLauncher *launcher);
-META_EXPORT_TEST
MetaDBusLogin1Session * meta_launcher_get_session_proxy (MetaLauncher *launcher);
MetaBackend * meta_launcher_get_backend (MetaLauncher *launcher);
diff --git a/src/tests/dbusmock-templates/logind.py b/src/tests/dbusmock-templates/logind.py
index cdec8e1a25..5e5878f6c7 100644
--- a/src/tests/dbusmock-templates/logind.py
+++ b/src/tests/dbusmock-templates/logind.py
@@ -89,8 +89,6 @@ class Login1Session(mockobject.DBusMockObject):
bus = kwargs.get('mock_data')
self.host_session = bus.get_object(self.bus_name.get_name(), self.path) if bus else None
- self.backlights = {}
-
@staticmethod
def add_new(manager, session_id, seat_id, host_bus):
session_path = f'{MAIN_OBJ}/session/{session_id}'
@@ -149,27 +147,6 @@ class Login1Session(mockobject.DBusMockObject):
return self.host_session.ReleaseControl(dbus_interface=SESSION_IFACE)
# noop
- @dbus.service.method(SESSION_IFACE, in_signature='ssu', out_signature='')
- def SetBrightness(self, subsystem, name, brightness):
- self.backlights[subsystem][name] = brightness
- pass
-
- @dbus.service.method(MOCK_IFACE, in_signature='ssu', out_signature='')
- def CreateBacklight(self, subsystem, name, brightness):
- if not subsystem in self.backlights:
- self.backlights[subsystem] = {}
-
- self.backlights[subsystem][name] = brightness
-
- @dbus.service.method(MOCK_IFACE, in_signature='ss', out_signature='')
- def DestroyBacklight(self, subsystem, name):
- if subsystem in self.backlights and name in self.backlights[subsystem]:
- del self.backlights[subsystem][name]
-
- @dbus.service.method(MOCK_IFACE, in_signature='ss', out_signature='u')
- def GetBacklight(self, subsystem, name):
- return self.backlights[subsystem][name]
-
@dbus.service.method(MANAGER_IFACE, in_signature='u', out_signature='o')
def GetUser(self, uid):
diff --git a/src/tests/meson.build b/src/tests/meson.build
index dd1230b47f..efd97ef24f 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -58,7 +58,6 @@ tests_deps = [
locally_compiled_schemas_dep,
wayland_client_dep,
gvdb_dep,
- umockdev_dep,
]
if libevdev_dep.found()
@@ -264,23 +263,6 @@ privileged_test_cases = []
subdir('mtk')
-backlight_client = executable('monitor-backlight-client',
- sources: [
- 'monitor-backlight-client.c',
- built_dbus_sources['meta-dbus-display-config'],
- ],
- include_directories: tests_includes,
- c_args: [
- tests_c_args,
- '-DG_LOG_DOMAIN="mutter-monitor-backlight-test-client"',
- ],
- dependencies: [
- gio_dep,
- ],
- install: have_installed_tests,
- install_dir: mutter_installed_tests_libexecdir,
-)
-
test_cases += [
{
'name': 'unit',
@@ -430,10 +412,7 @@ test_cases += [
{
'name': 'monitor-backlight',
'suite': 'backend',
- 'sources': [ 'monitor-backlight-tests.c', ],
- 'depends': [
- backlight_client,
- ],
+ 'sources': [ 'monitor-backlight-tests.c', ]
},
{
'name': 'monitor-gdctl',
@@ -543,6 +522,23 @@ screen_cast_client_driver = executable('mutter-screen-cast-client-driver',
install_rpath: pkglibdir,
)
+backlight_client = executable('monitor-backlight-client',
+ sources: [
+ 'monitor-backlight-client.c',
+ built_dbus_sources['meta-dbus-display-config'],
+ ],
+ include_directories: tests_includes,
+ c_args: [
+ tests_c_args,
+ '-DG_LOG_DOMAIN="mutter-monitor-backlight-test-client"',
+ ],
+ dependencies: [
+ gio_dep,
+ ],
+ install: have_installed_tests,
+ install_dir: mutter_installed_tests_libexecdir,
+)
+
input_capture_client = executable('mutter-input-capture-test-client',
sources: [
'input-capture-test-client.c',
@@ -1225,13 +1221,9 @@ if have_kvm_tests or have_tty_tests
)
foreach variant: variants
- variables = variant[1] + {
- 'META_DBUS_RUNNER_DISABLE_UMOCKDEV': '1',
- 'META_DBUS_RUNNER_DISABLE_LOGIND_PASSTHROUGH': '1',
- }
-
variant_env = environment()
- foreach name, value: variables
+ variant_env.set('META_DBUS_RUNNER_DISABLE_LOGIND_PASSTHROUGH', '1')
+ foreach name, value: variant[1]
variant_env.set(name, value)
endforeach
privileged_tests += [
@@ -1239,7 +1231,7 @@ if have_kvm_tests or have_tty_tests
'name': '@0@@1@'.format(test_case['name'], variant[0]),
'suite': test_case['suite'],
'executable': test_executable,
- 'variables': variables,
+ 'variables': variant[1],
'env': variant_env,
},
]
diff --git a/src/tests/meta-context-test-private.h b/src/tests/meta-context-test-private.h
deleted file mode 100644
index ebd7275350..0000000000
--- a/src/tests/meta-context-test-private.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2025 Red Hat Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#pragma once
-
-#include "config.h"
-
-#include "meta-test/meta-context-test.h"
-
-#include <umockdev.h>
-
-META_EXPORT
-UMockdevTestbed * meta_context_test_get_udev_testbed (MetaContextTest *context_test);
diff --git a/src/tests/meta-context-test.c b/src/tests/meta-context-test.c
index 8558c6b969..81fcb7afc2 100644
--- a/src/tests/meta-context-test.c
+++ b/src/tests/meta-context-test.c
@@ -18,7 +18,7 @@
#include "config.h"
-#include "tests/meta-context-test-private.h"
+#include "meta-test/meta-context-test.h"
#include <glib.h>
#include <gio/gio.h>
@@ -57,7 +57,6 @@ typedef struct _MetaContextTestPrivate
MetaContextTestFlag flags;
MetaSessionManager *session_manager;
CoglColor *background_color;
- UMockdevTestbed *udev_testbed;
} MetaContextTestPrivate;
struct _MetaContextTestClass
@@ -101,7 +100,6 @@ meta_context_test_finalize (GObject *object)
g_clear_pointer (&priv->background_color, cogl_color_free);
g_clear_object (&priv->session_manager);
- g_clear_object (&priv->udev_testbed);
G_OBJECT_CLASS (meta_context_test_parent_class)->finalize (object);
}
@@ -396,18 +394,6 @@ meta_context_test_wait_for_x11_display (MetaContextTest *context_test)
g_assert_nonnull (meta_display_get_x11_display (display));
}
-/**
- * meta_context_test_get_udev_testbed: (skip)
- */
-UMockdevTestbed *
-meta_context_test_get_udev_testbed (MetaContextTest *context_test)
-{
- MetaContextTestPrivate *priv =
- meta_context_test_get_instance_private (context_test);
-
- return priv->udev_testbed;
-}
-
/**
* meta_create_test_context: (skip)
*/
@@ -424,7 +410,6 @@ meta_create_test_context (MetaContextTestType type,
priv = meta_context_test_get_instance_private (context_test);
priv->type = type;
priv->flags = flags;
- priv->udev_testbed = umockdev_testbed_new ();
return META_CONTEXT (context_test);
}
diff --git a/src/tests/meta-monitor-test-utils.c b/src/tests/meta-monitor-test-utils.c
index 31133e09d2..35328ba5ec 100644
--- a/src/tests/meta-monitor-test-utils.c
+++ b/src/tests/meta-monitor-test-utils.c
@@ -24,12 +24,10 @@
#include <float.h>
#include "backends/meta-backend-private.h"
-#include "backends/meta-backlight-sysfs-private.h"
#include "backends/meta-crtc.h"
#include "backends/meta-logical-monitor-private.h"
#include "backends/meta-monitor-config-manager.h"
#include "backends/meta-monitor-config-store.h"
-#include "tests/meta-context-test-private.h"
#include "tests/meta-crtc-test.h"
#include "tests/meta-output-test.h"
#include "tests/meta-test-utils.h"
@@ -651,8 +649,6 @@ meta_create_monitor_test_setup (MetaBackend *backend,
MonitorTestCaseSetup *setup,
MonitorTestFlag flags)
{
- MetaContextTest *context_test =
- META_CONTEXT_TEST (meta_backend_get_context (backend));
MetaMonitorTestSetup *test_setup;
int i;
#define META_N_CONNECTOR_TYPES 21
@@ -836,61 +832,6 @@ meta_create_monitor_test_setup (MetaBackend *backend,
NULL);
}
- if (setup->outputs[i].sysfs_backlight)
- {
- UMockdevTestbed *udev_testbed =
- meta_context_test_get_udev_testbed (context_test);
- g_autofree char *max_str = NULL;
- g_autofree char *connector_name = NULL;
- g_autofree char *connector_udev = NULL;
- g_autofree char *backlight_udev = NULL;
- int min;
-
- g_assert_true (umockdev_in_mock_environment ());
-
- umockdev_testbed_clear (udev_testbed);
-
- max_str = g_strdup_printf ("%i", setup->outputs[i].backlight_max);
- connector_name = g_strdup_printf ("card0-%s", output_info->name);
-
- /* add an enabled drm connector which will be the parent of the backlight */
- connector_udev = umockdev_testbed_add_device (udev_testbed,
- /* subsystem */
- "drm",
- /* name */
- connector_name,
- /* parent */
- NULL,
- /* attributes */
- "enabled", "enabled",
- NULL,
- /* properties */
- NULL);
-
- backlight_udev = umockdev_testbed_add_device (udev_testbed,
- /* subsystem */
- "backlight",
- /* name */
- setup->outputs[i].sysfs_backlight,
- /* parent */
- connector_udev,
- /* attributes */
- "type", "raw",
- "max_brightness", max_str,
- "brightness", max_str,
- NULL,
- /* properties */
- NULL);
-
- backlight = META_BACKLIGHT (meta_backlight_sysfs_new (backend,
- output_info,
- NULL));
- g_assert_nonnull (backlight);
-
- meta_backlight_get_brightness_info (backlight, &min, NULL);
- g_assert_cmpint (min, ==, setup->outputs[i].backlight_min);
- }
-
output = g_object_new (META_TYPE_OUTPUT_TEST,
"id", (uint64_t) i,
"gpu", meta_test_get_gpu (backend),
diff --git a/src/tests/meta-monitor-test-utils.h b/src/tests/meta-monitor-test-utils.h
index 4760315263..5098f67cf5 100644
--- a/src/tests/meta-monitor-test-utils.h
+++ b/src/tests/meta-monitor-test-utils.h
@@ -117,7 +117,6 @@ typedef struct _MonitorTestCaseOutput
int suggested_y;
int backlight_min;
int backlight_max;
- const char *sysfs_backlight;
gboolean has_edid_info;
MetaEdidInfo edid_info;
uint64_t supported_color_spaces;
diff --git a/src/tests/monitor-backlight-tests.c b/src/tests/monitor-backlight-tests.c
index 652e63b583..511b9fbe76 100644
--- a/src/tests/monitor-backlight-tests.c
+++ b/src/tests/monitor-backlight-tests.c
@@ -19,7 +19,6 @@
#include <stdio.h>
-#include "backends/meta-backlight-private.h"
#include "tests/meta-test/meta-context-test.h"
#include "tests/meta-monitor-test-utils.h"
@@ -71,55 +70,16 @@ static MonitorTestCaseSetup initial_test_case_setup = {
.n_crtcs = 2
};
-static MonitorTestCaseSetup sysfs_test_case_setup = {
- .modes = {
- {
- .width = 1024,
- .height = 768,
- .refresh_rate = 60.0
- }
- },
- .n_modes = 1,
- .outputs = {
- {
- .crtc = 0,
- .modes = { 0 },
- .n_modes = 1,
- .preferred_mode = 0,
- .possible_crtcs = { 0 },
- .n_possible_crtcs = 1,
- .width_mm = 222,
- .height_mm = 125,
- .connector_type = META_CONNECTOR_TYPE_eDP,
- .sysfs_backlight = "backlight1",
- .backlight_min = 0,
- .backlight_max = 90,
- },
- {
- .crtc = 1,
- .modes = { 0 },
- .n_modes = 1,
- .preferred_mode = 0,
- .possible_crtcs = { 1 },
- .n_possible_crtcs = 1,
- .width_mm = 220,
- .height_mm = 124
- }
- },
- .n_outputs = 2,
- .crtcs = {
- {
- .current_mode = 0
- },
- {
- .current_mode = 0
- }
- },
- .n_crtcs = 2
-};
-
static MetaContext *test_context;
+static MetaMonitorTestSetup *
+create_test_setup (MetaBackend *backend)
+{
+ return meta_create_monitor_test_setup (backend,
+ &initial_test_case_setup,
+ MONITOR_TEST_FLAG_NO_STORED);
+}
+
static void
meta_test_backlight_sanity (void)
{
@@ -209,228 +169,6 @@ meta_test_backlight_api (void)
g_main_context_iteration (NULL, TRUE);
}
-static void
-meta_test_backlight_sysfs_sanity (void)
-{
- MetaBackend *backend = meta_context_get_backend (test_context);
- MetaMonitorManager *monitor_manager =
- meta_backend_get_monitor_manager (backend);
- MetaMonitorManagerTest *monitor_manager_test =
- META_MONITOR_MANAGER_TEST (monitor_manager);
- MetaMonitorTestSetup *test_setup;
- GList *monitors;
- MetaMonitor *first_monitor;
- MetaBacklight *backlight;
- int backlight_min;
- int backlight_max;
- int backlight_value;
-
- test_setup = meta_create_monitor_test_setup (backend,
- &sysfs_test_case_setup,
- MONITOR_TEST_FLAG_NO_STORED);
- meta_monitor_manager_test_emulate_hotplug (monitor_manager_test, test_setup);
-
- monitors = meta_monitor_manager_get_monitors (monitor_manager);
- g_assert_cmpuint (g_list_length (monitors), ==, 2);
- first_monitor = g_list_nth_data (monitors, 0);
-
- backlight = meta_monitor_get_backlight (first_monitor);
- g_assert_nonnull (backlight);
-
- meta_backlight_get_brightness_info (backlight, &backlight_min, &backlight_max);
- backlight_value = meta_backlight_get_brightness (backlight);
- g_assert_cmpint (backlight_min, ==, 0);
- g_assert_cmpint (backlight_max, ==, 90);
- g_assert_cmpint (backlight_value, >=, 0);
- g_assert_cmpint (backlight_value, <=, 90);
-}
-
-static GDBusProxy *
-get_logind_mock_proxy (MetaBackend *backend)
-{
- GDBusProxy *proxy;
- g_autoptr (GError) error = NULL;
-
- MetaLauncher *launcher = meta_backend_get_launcher (backend);
- MetaDBusLogin1Session *session_proxy = meta_launcher_get_session_proxy (launcher);
- const char *session_path = g_dbus_proxy_get_object_path (G_DBUS_PROXY (session_proxy));
-
- proxy =
- g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
- G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START |
- G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
- NULL,
- "org.freedesktop.login1",
- session_path,
- "org.freedesktop.DBus.Mock",
- NULL, &error);
- if (!proxy)
- {
- g_error ("Failed to find mocked color manager system service, %s",
- error->message);
- }
-
- return proxy;
-}
-
-static void
-create_logind_backlight (MetaBackend *backend,
- const char *name,
- int brightness)
-{
-
- g_autoptr (GDBusProxy) mock_proxy = NULL;
- g_autoptr (GError) error = NULL;
- GVariantBuilder params_builder;
-
- mock_proxy = get_logind_mock_proxy (backend);
-
- g_variant_builder_init (&params_builder, G_VARIANT_TYPE ("(ssu)"));
- g_variant_builder_add (&params_builder, "s", "backlight");
- g_variant_builder_add (&params_builder, "s", name);
- g_variant_builder_add (&params_builder, "u", brightness);
-
- if (!g_dbus_proxy_call_sync (mock_proxy,
- "CreateBacklight",
- g_variant_builder_end (&params_builder),
- G_DBUS_CALL_FLAGS_NO_AUTO_START, -1, NULL,
- &error))
- g_error ("Failed to create logind backlight: %s", error->message);
-}
-
-static void
-destroy_logind_backlight (MetaBackend *backend,
- const char *name)
-{
-
- g_autoptr (GDBusProxy) mock_proxy = NULL;
- g_autoptr (GError) error = NULL;
- GVariantBuilder params_builder;
-
- mock_proxy = get_logind_mock_proxy (backend);
-
- g_variant_builder_init (&params_builder, G_VARIANT_TYPE ("(ss)"));
- g_variant_builder_add (&params_builder, "s", "backlight");
- g_variant_builder_add (&params_builder, "s", name);
-
- if (!g_dbus_proxy_call_sync (mock_proxy,
- "DestroyBacklight",
- g_variant_builder_end (&params_builder),
- G_DBUS_CALL_FLAGS_NO_AUTO_START, -1, NULL,
- &error))
- g_error ("Failed to destroy logind backlight: %s", error->message);
-}
-
-static int
-get_logind_backlight (MetaBackend *backend,
- const char *name)
-{
-
- g_autoptr (GDBusProxy) mock_proxy = NULL;
- g_autoptr (GError) error = NULL;
- GVariantBuilder params_builder;
- g_autoptr (GVariant) result = NULL;
- int backlight_value;
-
- mock_proxy = get_logind_mock_proxy (backend);
-
- g_variant_builder_init (&params_builder, G_VARIANT_TYPE ("(ss)"));
- g_variant_builder_add (&params_builder, "s", "backlight");
- g_variant_builder_add (&params_builder, "s", name);
-
- result = g_dbus_proxy_call_sync (mock_proxy,
- "GetBacklight",
- g_variant_builder_end (&params_builder),
- G_DBUS_CALL_FLAGS_NO_AUTO_START, -1, NULL,
- &error);
- if (!result)
- g_error ("Failed to destroy logind backlight: %s", error->message);
-
- g_variant_get (result, "(u)", &backlight_value);
- return backlight_value;
-}
-
-static void
-meta_test_backlight_sysfs_set (void)
-{
- MetaBackend *backend = meta_context_get_backend (test_context);
- MetaMonitorManager *monitor_manager =
- meta_backend_get_monitor_manager (backend);
- MetaMonitorManagerTest *monitor_manager_test =
- META_MONITOR_MANAGER_TEST (monitor_manager);
- MetaMonitorTestSetup *test_setup;
- GList *monitors;
- MetaMonitor *first_monitor;
- MetaBacklight *backlight;
- int backlight_value;
-
- destroy_logind_backlight (backend, "backlight1");
- create_logind_backlight (backend, "backlight1", 90);
-
- test_setup = meta_create_monitor_test_setup (backend,
- &sysfs_test_case_setup,
- MONITOR_TEST_FLAG_NO_STORED);
- meta_monitor_manager_test_emulate_hotplug (monitor_manager_test, test_setup);
-
- monitors = meta_monitor_manager_get_monitors (monitor_manager);
- first_monitor = g_list_nth_data (monitors, 0);
-
- backlight = meta_monitor_get_backlight (first_monitor);
- g_assert_nonnull (backlight);
-
- backlight_value = meta_backlight_get_brightness (backlight);
- g_assert_cmpint (backlight_value, ==, 90);
- g_assert_cmpint (get_logind_backlight (backend, "backlight1"), ==, 90);
-
- meta_backlight_set_brightness (backlight, 30);
-
- while (meta_backlight_has_pending (backlight))
- g_main_context_iteration (NULL, TRUE);
-
- backlight_value = meta_backlight_get_brightness (backlight);
- g_assert_cmpint (backlight_value, ==, 30);
- g_assert_cmpint (get_logind_backlight (backend, "backlight1"), ==, 30);
-}
-
-static MetaMonitorTestSetup *
-create_test_setup (MetaBackend *backend)
-{
- return meta_create_monitor_test_setup (backend,
- &initial_test_case_setup,
- MONITOR_TEST_FLAG_NO_STORED);
-}
-
-static void
-prepare_backlight_test (void)
-{
- MetaBackend *backend = meta_context_get_backend (test_context);
- MetaMonitorManager *monitor_manager =
- meta_backend_get_monitor_manager (backend);
- MetaMonitorManagerTest *monitor_manager_test =
- META_MONITOR_MANAGER_TEST (monitor_manager);
- MetaMonitorTestSetup *test_setup;
-
- test_setup = meta_create_monitor_test_setup (backend,
- &initial_test_case_setup,
- MONITOR_TEST_FLAG_NO_STORED);
- meta_monitor_manager_test_emulate_hotplug (monitor_manager_test, test_setup);
-}
-
-static void
-finish_backlight_test (void)
-{
-}
-
-static void
-add_test (const char *test_path,
- GTestFunc test_func)
-{
- g_test_add_vtable (test_path, 0, NULL,
- (GTestFixtureFunc) prepare_backlight_test,
- (GTestFixtureFunc) test_func,
- (GTestFixtureFunc) finish_backlight_test);
-}
-
int
main (int argc,
char *argv[])
@@ -444,10 +182,8 @@ main (int argc,
test_context = context;
meta_init_monitor_test_setup (create_test_setup);
- add_test ("/backends/backlight/sanity", meta_test_backlight_sanity);
- add_test ("/backends/backlight/api", meta_test_backlight_api);
- add_test ("/backends/backlight/sysfs/sanity", meta_test_backlight_sysfs_sanity);
- add_test ("/backends/backlight/sysfs/set", meta_test_backlight_sysfs_set);
+ g_test_add_func ("/backends/backlight/sanity", meta_test_backlight_sanity);
+ g_test_add_func ("/backends/backlight/api", meta_test_backlight_api);
return meta_context_test_run_tests (META_CONTEXT_TEST (context),
META_TEST_RUN_FLAG_NONE);
diff --git a/src/tests/mutter_dbusrunner.py b/src/tests/mutter_dbusrunner.py
index 215ab8ac57..47ec5fa4cc 100644
--- a/src/tests/mutter_dbusrunner.py
+++ b/src/tests/mutter_dbusrunner.py
@@ -275,9 +275,6 @@ def run_test(args, extra_env):
wrapper = os.getenv('META_DBUS_RUNNER_WRAPPER')
- if not os.getenv('META_DBUS_RUNNER_DISABLE_UMOCKDEV'):
- args = ['umockdev-wrapper'] + args
-
if wrapper == 'gdb':
args = ['gdb', '-ex', 'r', '-ex', 'bt full', '--args'] + args
elif wrapper == 'rr':
--
2.51.0

View File

@ -1,28 +1,31 @@
From c0fda823b3f0c6802afe549379135719f86c6bfc Mon Sep 17 00:00:00 2001
From 163bd8ef0f0cd261e34ecb7c30bc7a30a325bd6e Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Tue, 9 Mar 2021 17:21:59 -0800
Subject: [PATCH] Test: deny atomic KMS for "tegra" (RHBZ #1936991)
Subject: [PATCH 1/6] Test: deny atomic KMS for "tegra" (RHBZ #1936991)
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
data/61-mutter.rules | 1 +
data/61-mutter.rules | 3 ++-
src/backends/native/meta-kms-impl-device-atomic.c | 1 +
2 files changed, 2 insertions(+)
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/data/61-mutter.rules b/data/61-mutter.rules
index 9262b152b9..24f9655b69 100644
index 241424827d..b51369c89a 100644
--- a/data/61-mutter.rules
+++ b/data/61-mutter.rules
@@ -114,3 +114,4 @@ DRIVERS=="i915", SUBSYSTEM=="drm", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x9b
@@ -114,4 +114,5 @@ DRIVERS=="i915", SUBSYSTEM=="drm", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x9b
DRIVERS=="i915", SUBSYSTEM=="drm", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x9be6", TAG+="mutter-device-disable-kms-modifiers"
DRIVERS=="i915", SUBSYSTEM=="drm", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x9bf6", TAG+="mutter-device-disable-kms-modifiers"
ENV{ID_PATH}=="platform-vkms", TAG+="mutter-device-ignore"
-ENV{DEVPATH}=="/devices/faux/vkms/drm/card[0-9]*", TAG+="mutter-device-ignore"
\ No newline at end of file
+ENV{DEVPATH}=="/devices/faux/vkms/drm/card[0-9]*", TAG+="mutter-device-ignore"
+DRIVER=="tegra", SUBSYSTEM=="platform", TAG+="mutter-device-disable-atomic-kms"
diff --git a/src/backends/native/meta-kms-impl-device-atomic.c b/src/backends/native/meta-kms-impl-device-atomic.c
index a4ffd70b6a..9fac299e14 100644
index 7860cc2c6b..b99e32bf5d 100644
--- a/src/backends/native/meta-kms-impl-device-atomic.c
+++ b/src/backends/native/meta-kms-impl-device-atomic.c
@@ -1306,6 +1306,7 @@ requires_hotspots (const char *driver_name)
@@ -1330,6 +1330,7 @@ requires_hotspots (const char *driver_name)
"vboxvideo",
"virtio_gpu",
"vmwgfx",
@ -31,5 +34,5 @@ index a4ffd70b6a..9fac299e14 100644
};
--
2.44.0.501.g19981daefd.dirty
2.51.0

View File

@ -13,7 +13,7 @@
%global tarball_version %%(echo %{version} | tr '~' '.')
Name: mutter
Version: 49.1.1
Version: 49.4
Release: %autorelease
Summary: Window and compositing manager based on Clutter
@ -35,6 +35,13 @@ Patch: 0001-Revert-Replace-deprecated-g_qsort_with_data-with-g_s.patch
Patch: 0001-Revert-background-Port-from-gdk-pixbuf-to-glycin.patch
Patch: 0002-Revert-background-Plumb-color-state-through-backgrou.patch
# Revert upstream devkit commit that depends on newer gtk4
Patch: 0001-Revert-mdk-Use-PipeWire-damage-region-for-minimizing.patch
# Revert upstream test suite patch that depends on umockdev, which isn't
# available in the appropriate repository.
Patch: 0001-Revert-tests-monitor-backlight-Add-tests-for-the-sys.patch
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(libadwaita-1)
@ -65,7 +72,6 @@ BuildRequires: pkgconfig(libpipewire-0.3) >= %{pipewire_version}
BuildRequires: pkgconfig(sysprof-capture-4)
BuildRequires: sysprof-devel
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(umockdev-1.0)
BuildRequires: pkgconfig(xkeyboard-config)
BuildRequires: desktop-file-utils
BuildRequires: cvt

View File

@ -1,2 +1,2 @@
SHA512 (mutter-49.1.1.tar.xz) = 93ef86128b275bb76c1743c7ffbe41c53ded8737b9d40d3a9d59131c056b1df8a851ce22961827e4ca292c668a5a4e18f1a57e44a7860a8f77153ccbec54ea12
SHA512 (mutter-49.4.tar.xz) = d4cc6f9bd5367644a121bec23cfee30aa736e692cf5bdaba638635817d34f00eed6fa31e9dcbffae0c58bf7c0483d58a2c595e210071646ce361fb86650cd301
SHA512 (meson-1.5.0.tar.gz) = f0a25cf134949739c698eddaea602bf7852866b3fee3d2c11c1e6b6e48c944cf92abc3d171a2e42e21077edc01f1e7079d451f5624e2b6131382e114e814db3e