summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Matos <tiagomatos@gmail.com>2015-03-12 17:13:55 +0100
committerRui Matos <tiagomatos@gmail.com>2015-03-16 16:32:56 +0100
commit43058a36984efbe8bc0174451a587eab3a1f7e16 (patch)
tree826d9f7611ee5968b2000dbd03bbfee5563c82a2
parent8c16ac47c1b88fc48ad8ea621a75a86e028a2764 (diff)
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
-rw-r--r--src/backends/native/meta-monitor-manager-kms.c11
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 950090f5..a756b862 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