Resolves: RHEL-74359
This commit is contained in:
parent
cf077a55b7
commit
d41e0b2eb6
@ -0,0 +1,88 @@
|
||||
From 9b44ebf3269a7838d2288753dd66d48ebce8f8e2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
|
||||
Date: Thu, 13 Feb 2025 17:36:10 +0100
|
||||
Subject: [PATCH] cursor-renderer/native: Fix crash with
|
||||
MUTTER_DEBUG_DISABLE_HW_CURSORS=1
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Don't try to realize the cursor sprite for the HW cursor when it's set.
|
||||
|
||||
v2:
|
||||
* Refactor is_hw_cursor_supported helper out of
|
||||
realize_cursor_sprite_from_wl_buffer_for_crtc. (Jonas Ådahl)
|
||||
v3:
|
||||
* Keep meta_crtc_native_is_hw_cursor_supported check in
|
||||
meta_cursor_renderer_native_update_cursor, to try and avoid
|
||||
mysterious CI failure.
|
||||
v4:
|
||||
* Rename is_hw_cursor_supported → is_hw_cursor_available_for_gpu
|
||||
and take a MetaGpuKms * parameter.
|
||||
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4272>
|
||||
---
|
||||
.../native/meta-cursor-renderer-native.c | 20 +++++++++++++++----
|
||||
1 file changed, 16 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/backends/native/meta-cursor-renderer-native.c b/src/backends/native/meta-cursor-renderer-native.c
|
||||
index 2686e811b4..f0c373e7dc 100644
|
||||
--- a/src/backends/native/meta-cursor-renderer-native.c
|
||||
+++ b/src/backends/native/meta-cursor-renderer-native.c
|
||||
@@ -285,6 +285,19 @@ on_cursor_sprite_texture_changed (MetaCursorSprite *cursor_sprite,
|
||||
invalidate_cursor_gpu_state (cursor_renderer, cursor_sprite);
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+is_hw_cursor_available_for_gpu (MetaGpuKms *gpu_kms)
|
||||
+{
|
||||
+ MetaCursorRendererNativeGpuData *cursor_renderer_gpu_data;
|
||||
+
|
||||
+ cursor_renderer_gpu_data =
|
||||
+ meta_cursor_renderer_native_gpu_data_from_gpu (gpu_kms);
|
||||
+ if (!cursor_renderer_gpu_data || cursor_renderer_gpu_data->hw_cursor_broken)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
meta_cursor_renderer_native_update_cursor (MetaCursorRenderer *cursor_renderer,
|
||||
MetaCursorSprite *cursor_sprite)
|
||||
@@ -316,6 +329,7 @@ meta_cursor_renderer_native_update_cursor (MetaCursorRenderer *cursor_renderer,
|
||||
MetaRendererView *renderer_view = META_RENDERER_VIEW (view);
|
||||
MetaCrtc *crtc = meta_renderer_view_get_crtc (renderer_view);
|
||||
MetaCrtcNative *crtc_native = META_CRTC_NATIVE (crtc);
|
||||
+ MetaGpuKms *gpu_kms = META_GPU_KMS (meta_crtc_get_gpu (crtc));
|
||||
ClutterColorState *target_color_state =
|
||||
clutter_stage_view_get_output_color_state (CLUTTER_STAGE_VIEW (view));
|
||||
CursorStageView *cursor_stage_view = NULL;
|
||||
@@ -325,6 +339,7 @@ meta_cursor_renderer_native_update_cursor (MetaCursorRenderer *cursor_renderer,
|
||||
g_assert (cursor_stage_view);
|
||||
|
||||
if (!META_IS_CRTC_KMS (crtc) ||
|
||||
+ !is_hw_cursor_available_for_gpu (gpu_kms) ||
|
||||
!meta_crtc_native_is_hw_cursor_supported (crtc_native))
|
||||
{
|
||||
if (cursor_stage_view->has_hw_cursor)
|
||||
@@ -1051,16 +1066,13 @@ realize_cursor_sprite_from_wl_buffer_for_crtc (MetaCursorRenderer *renderer
|
||||
MetaCursorSprite *cursor_sprite = META_CURSOR_SPRITE (sprite_wayland);
|
||||
MetaGpu *gpu = meta_crtc_get_gpu (META_CRTC (crtc_kms));
|
||||
MetaGpuKms *gpu_kms = META_GPU_KMS (gpu);
|
||||
- MetaCursorRendererNativeGpuData *cursor_renderer_gpu_data;
|
||||
CoglTexture *texture;
|
||||
uint width, height;
|
||||
MetaWaylandBuffer *buffer;
|
||||
struct wl_resource *buffer_resource;
|
||||
struct wl_shm_buffer *shm_buffer;
|
||||
|
||||
- cursor_renderer_gpu_data =
|
||||
- meta_cursor_renderer_native_gpu_data_from_gpu (gpu_kms);
|
||||
- if (!cursor_renderer_gpu_data || cursor_renderer_gpu_data->hw_cursor_broken)
|
||||
+ if (!is_hw_cursor_available_for_gpu (gpu_kms))
|
||||
return FALSE;
|
||||
|
||||
buffer = meta_cursor_sprite_wayland_get_buffer (sprite_wayland);
|
||||
--
|
||||
2.48.1
|
||||
|
@ -45,6 +45,7 @@ Patch: 0001-cursor-renderer-native-Pass-destination-format-to-sc.patch
|
||||
Patch: 0002-cursor-renderer-native-Store-formats-in-MetaCursorRe.patch
|
||||
Patch: 0003-cursor-renderer-native-Probe-formats-supported-by-cu.patch
|
||||
Patch: 0001-cursor-renderer-native-Skip-init_hw_cursor_support_f.patch
|
||||
Patch: 0001-cursor-renderer-native-Fix-crash-with-MUTTER_DEBUG_D.patch
|
||||
|
||||
# RHEL-62220
|
||||
# DRM lease configuration via monitors.xml and D-Bus:
|
||||
|
Loading…
Reference in New Issue
Block a user