summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Berg <bberg@redhat.com>2020-09-07 16:15:30 +0200
committerBenjamin Berg <bberg@redhat.com>2020-09-07 16:20:42 +0200
commit084264e62b56ab59e04b012f67b4c1d95c9d3e7b (patch)
treea20947407afd36216e37ec385e42ad015b056ba6
parent87055dc274a1ac04bfa9802ea8e60a8813f44a1a (diff)
downloadmutter-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.c32
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 *