diff --git a/src/backends/native/meta-kms-connector.c b/src/backends/native/meta-kms-connector.c index 368dd0ff7..7d10dcb3c 100644 --- a/src/backends/native/meta-kms-connector.c +++ b/src/backends/native/meta-kms-connector.c @@ -766,6 +766,9 @@ meta_kms_connector_predict_state (MetaKmsConnector *connector, if (!current_state) return; + if (meta_kms_update_is_power_save (update)) + current_state->current_crtc_id = 0; + mode_sets = meta_kms_update_get_mode_sets (update); for (l = mode_sets; l; l = l->next) { diff --git a/src/backends/native/meta-kms-crtc.c b/src/backends/native/meta-kms-crtc.c index 4599f4455..7d4706bf1 100644 --- a/src/backends/native/meta-kms-crtc.c +++ b/src/backends/native/meta-kms-crtc.c @@ -285,6 +285,14 @@ meta_kms_crtc_predict_state (MetaKmsCrtc *crtc, GList *crtc_gammas; GList *l; + if (meta_kms_update_is_power_save (update)) + { + crtc->current_state.is_active = FALSE; + crtc->current_state.rect = (MetaRectangle) { 0 }; + crtc->current_state.is_drm_mode_valid = FALSE; + crtc->current_state.drm_mode = (drmModeModeInfo) { 0 }; + } + mode_sets = meta_kms_update_get_mode_sets (update); for (l = mode_sets; l; l = l->next) {