mirror of
https://github.com/brl/mutter.git
synced 2025-02-21 07:24:09 +00:00
cursor-renderer/native: Handle GPU hotplug
Listen for GPU hotplug events to initialize their cursor support. This fixes one reason for why DisplayLink devices may not be using a hardware cursor. Particularly, when a DisplayLink device is hotplugged for the first time such that EVDI creates a new DRM device node after gnome-shell has already started, we used to forget to initialize the cursor support. https://gitlab.gnome.org/GNOME/mutter/merge_requests/1097 (cherry picked from commit 8abdf16a3992e3332f2378ea7c65e6e251e418e0)
This commit is contained in:
parent
11da42b2f8
commit
a5b5e95ad9
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2014 Red Hat
|
* Copyright (C) 2014 Red Hat
|
||||||
|
* Copyright 2020 DisplayLink (UK) Ltd.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License as
|
* modify it under the terms of the GNU General Public License as
|
||||||
@ -1205,6 +1206,13 @@ init_hw_cursor_support_for_gpu (MetaGpuKms *gpu_kms)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_gpu_added_for_cursor (MetaBackend *backend,
|
||||||
|
MetaGpuKms *gpu_kms)
|
||||||
|
{
|
||||||
|
init_hw_cursor_support_for_gpu (gpu_kms);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
init_hw_cursor_support (MetaCursorRendererNative *cursor_renderer_native)
|
init_hw_cursor_support (MetaCursorRendererNative *cursor_renderer_native)
|
||||||
{
|
{
|
||||||
@ -1238,6 +1246,8 @@ meta_cursor_renderer_native_new (MetaBackend *backend)
|
|||||||
g_signal_connect_object (monitor_manager, "monitors-changed-internal",
|
g_signal_connect_object (monitor_manager, "monitors-changed-internal",
|
||||||
G_CALLBACK (on_monitors_changed),
|
G_CALLBACK (on_monitors_changed),
|
||||||
cursor_renderer_native, 0);
|
cursor_renderer_native, 0);
|
||||||
|
g_signal_connect (backend, "gpu-added",
|
||||||
|
G_CALLBACK (on_gpu_added_for_cursor), NULL);
|
||||||
|
|
||||||
priv->backend = backend;
|
priv->backend = backend;
|
||||||
priv->hw_state_invalidated = TRUE;
|
priv->hw_state_invalidated = TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user