From 95bb194356d6523aa46aafa0aeadf9b37b43415b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Thu, 9 Jul 2020 09:18:27 +0200 Subject: [PATCH] layout: Remove redundant background refresh When using the NVIDIA driver, textures tend to loose their pixels when suspending. In the past we handled this by figuring out when the NVIDIA driver was used, and reload the background whenever we noticed we resumed from suspend. This shouldn't be needed anymore after https://gitlab.gnome.org/GNOME/mutter/merge_requests/600, as it should handle this by listening to video-memory-purged signal. Thus remove our special handling here. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1358 --- js/ui/layout.js | 13 ------------- src/shell-util.c | 28 ---------------------------- src/shell-util.h | 2 -- 3 files changed, 43 deletions(-) diff --git a/js/ui/layout.js b/js/ui/layout.js index 4cd066582..55cefb282 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -6,7 +6,6 @@ const Signals = imports.signals; const Background = imports.ui.background; const BackgroundMenu = imports.ui.backgroundMenu; -const LoginManager = imports.misc.loginManager; const DND = imports.ui.dnd; const Main = imports.ui.main; @@ -295,18 +294,6 @@ var LayoutManager = GObject.registerClass({ monitorManager.connect('monitors-changed', this._monitorsChanged.bind(this)); this._monitorsChanged(); - - // NVIDIA drivers don't preserve FBO contents across - // suspend/resume, see - // https://bugzilla.gnome.org/show_bug.cgi?id=739178 - if (Shell.util_need_background_refresh()) { - LoginManager.getLoginManager().connect('prepare-for-sleep', - (lm, suspending) => { - if (suspending) - return; - Meta.Background.refresh_all(); - }); - } } // This is called by Main after everything else is constructed diff --git a/src/shell-util.c b/src/shell-util.c index dd9be51a3..5fe2dfcaf 100644 --- a/src/shell-util.c +++ b/src/shell-util.c @@ -409,34 +409,6 @@ shell_util_create_pixbuf_from_data (const guchar *data, typedef const gchar *(*ShellGLGetString) (GLenum); -static const gchar * -get_gl_vendor (void) -{ - static const gchar *vendor = NULL; - - if (!vendor) - { - ShellGLGetString gl_get_string; - gl_get_string = (ShellGLGetString) cogl_get_proc_address ("glGetString"); - if (gl_get_string) - vendor = gl_get_string (GL_VENDOR); - } - - return vendor; -} - -gboolean -shell_util_need_background_refresh (void) -{ - if (!clutter_check_windowing_backend (CLUTTER_WINDOWING_X11)) - return FALSE; - - if (g_strcmp0 (get_gl_vendor (), "NVIDIA Corporation") == 0) - return TRUE; - - return FALSE; -} - static gboolean canvas_draw_cb (ClutterContent *content, cairo_t *cr, diff --git a/src/shell-util.h b/src/shell-util.h index aa79f4973..00127ca95 100644 --- a/src/shell-util.h +++ b/src/shell-util.h @@ -49,8 +49,6 @@ GdkPixbuf *shell_util_create_pixbuf_from_data (const guchar *data, int height, int rowstride); -gboolean shell_util_need_background_refresh (void); - ClutterContent * shell_util_get_content_for_window_actor (MetaWindowActor *window_actor, MetaRectangle *window_rect);