[mutter] monitor-manager-kms: Tell cogl to ignore CRTCs when DPMS isn't ON



commit 43058a36984efbe8bc0174451a587eab3a1f7e16
Author: Rui Matos <tiagomatos gmail com>
Date:   Thu Mar 12 17:13:55 2015 +0100

    monitor-manager-kms: Tell cogl to ignore CRTCs when DPMS isn't ON
    
    Otherwise cogl will try to page flip and fail.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=746098

 src/backends/native/meta-monitor-manager-kms.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
index 950090f..a756b86 100644
--- a/src/backends/native/meta-monitor-manager-kms.c
+++ b/src/backends/native/meta-monitor-manager-kms.c
@@ -690,6 +690,9 @@ meta_monitor_manager_kms_set_power_save_mode (MetaMonitorManager *manager,
                                               MetaPowerSave       mode)
 {
   MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
+  ClutterBackend *backend;
+  CoglContext *cogl_context;
+  CoglDisplay *cogl_display;
   uint64_t state;
   unsigned i;
 
@@ -728,6 +731,14 @@ meta_monitor_manager_kms_set_power_save_mode (MetaMonitorManager *manager,
                           meta_output->name, strerror (errno));
         }
     }
+
+  backend = clutter_get_default_backend ();
+  cogl_context = clutter_backend_get_cogl_context (backend);
+  cogl_display = cogl_context_get_display (cogl_context);
+
+  for (i = 0; i < manager->n_crtcs; i++)
+    cogl_kms_display_set_ignore_crtc (cogl_display, manager->crtcs[i].crtc_id,
+                                      mode != META_POWER_SAVE_ON);
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]