diff options
author | Benjamin Berg <bberg@redhat.com> | 2020-09-07 16:15:30 +0200 |
---|---|---|
committer | Benjamin Berg <bberg@redhat.com> | 2020-09-07 16:20:42 +0200 |
commit | 084264e62b56ab59e04b012f67b4c1d95c9d3e7b (patch) | |
tree | a20947407afd36216e37ec385e42ad015b056ba6 | |
parent | 87055dc274a1ac04bfa9802ea8e60a8813f44a1a (diff) | |
download | mutter-benzea/gamma-fix-master.tar.gz |
kms/crtc: Always consider gamma state validbenzea/gamma-fix-master
The gamma curve remains valid even if the CRTC is turned off. As such,
there is no need to clear it and doing so breaks reading the gamma curve
while the screens are turned off using DPMS.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1420
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1392
-rw-r--r-- | src/backends/native/meta-kms-crtc.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/backends/native/meta-kms-crtc.c b/src/backends/native/meta-kms-crtc.c index f5547567b..ebdd8ed9d 100644 --- a/src/backends/native/meta-kms-crtc.c +++ b/src/backends/native/meta-kms-crtc.c @@ -156,13 +156,10 @@ void meta_kms_crtc_predict_state (MetaKmsCrtc *crtc, MetaKmsUpdate *update) { - gboolean is_gamma_valid; GList *mode_sets; GList *crtc_gammas; GList *l; - is_gamma_valid = TRUE; - mode_sets = meta_kms_update_get_mode_sets (update); for (l = mode_sets; l; l = l->next) { @@ -190,8 +187,6 @@ meta_kms_crtc_predict_state (MetaKmsCrtc *crtc, crtc->current_state.drm_mode = (drmModeModeInfo) { 0 }; } - is_gamma_valid = FALSE; - break; } @@ -212,35 +207,8 @@ meta_kms_crtc_predict_state (MetaKmsCrtc *crtc, crtc->current_state.gamma.blue = g_memdup (gamma->blue, gamma->size * sizeof (uint16_t)); - is_gamma_valid = TRUE; break; } - - if (!is_gamma_valid) - { - if (crtc->current_state.is_drm_mode_valid) - { - MetaKmsImplDevice *impl_device; - drmModeCrtc *drm_crtc; - - impl_device = meta_kms_device_get_impl_device (crtc->device); - drm_crtc = drmModeGetCrtc (meta_kms_impl_device_get_fd (impl_device), - crtc->id); - if (drm_crtc) - { - read_gamma_state (crtc, impl_device, drm_crtc); - drmModeFreeCrtc (drm_crtc); - } - else - { - clear_gamma_state (crtc); - } - } - else - { - clear_gamma_state (crtc); - } - } } MetaKmsCrtc * |