summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2019-01-15 10:29:55 -0500
committerRay Strode <rstrode@redhat.com>2019-01-15 11:37:39 -0500
commitf9907d197816fc5baad6b54f05283947eabd32d1 (patch)
tree5b8c0a3bd1cb09ac18910f126b000ce63eed517e
parent45c5f557bd71f6104ed8563571cde772d0ab988c (diff)
downloadmutter-f9907d197816fc5baad6b54f05283947eabd32d1.tar.gz
backends/native: emit gl-video-memory-purged when becoming active
The proprietary NVIDIA driver garbles memory on suspend. In order to work around that limitation, mutter needs to refresh all its textures on resuem. This commit lays the way toward doing that by emitting the "gl-video-memory-purged" signal when the compositor becomes active by logind (which happens on VT switch and on resume).
-rw-r--r--src/backends/native/meta-backend-native.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c
index 042d96ec6..f87c5a066 100644
--- a/src/backends/native/meta-backend-native.c
+++ b/src/backends/native/meta-backend-native.c
@@ -645,9 +645,16 @@ void meta_backend_native_resume (MetaBackendNative *native)
meta_backend_get_monitor_manager (backend);
MetaMonitorManagerKms *monitor_manager_kms =
META_MONITOR_MANAGER_KMS (monitor_manager);
+ MetaDisplay *display = meta_get_display ();
+ ClutterBackend *clutter_backend = clutter_get_default_backend ();
+ CoglContext *cogl_context =
+ clutter_backend_get_cogl_context (clutter_backend);
ClutterActor *stage;
MetaIdleMonitor *idle_monitor;
+ if (cogl_has_feature (cogl_context, COGL_FEATURE_ID_UNSTABLE_TEXTURES))
+ g_signal_emit_by_name (display, "gl-video-memory-purged");
+
meta_monitor_manager_kms_resume (monitor_manager_kms);
clutter_evdev_reclaim_devices ();