[gnome-flashback/gnome-3-36] monitor-config-manager: only use crtc transform for assignment



commit 924a4a5dba3b1e8dc41a78a24d1ee71ba0c989e5
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Wed Apr 29 16:05:46 2020 +0300

    monitor-config-manager: only use crtc transform for assignment
    
    Based on mutter commit:
    https://gitlab.gnome.org/GNOME/mutter/-/commit/43baf643d4f4ff629391

 backends/gf-monitor-config-manager.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/backends/gf-monitor-config-manager.c b/backends/gf-monitor-config-manager.c
index c905771..ff78e70 100644
--- a/backends/gf-monitor-config-manager.c
+++ b/backends/gf-monitor-config-manager.c
@@ -665,6 +665,7 @@ assign_monitor_crtc (GfMonitor          *monitor,
   GfCrtc *crtc;
   GfMonitorTransform transform;
   GfMonitorTransform crtc_transform;
+  GfMonitorTransform crtc_hw_transform;
   int crtc_x, crtc_y;
   float x_offset, y_offset;
   float scale;
@@ -693,9 +694,12 @@ assign_monitor_crtc (GfMonitor          *monitor,
 
   transform = data->logical_monitor_config->transform;
   crtc_transform = gf_monitor_logical_to_crtc_transform (monitor, transform);
-  if (!gf_monitor_manager_is_transform_handled (data->monitor_manager,
-                                                crtc, crtc_transform))
-    crtc_transform = GF_MONITOR_TRANSFORM_NORMAL;
+  if (gf_monitor_manager_is_transform_handled (data->monitor_manager,
+                                               crtc,
+                                               crtc_transform))
+    crtc_hw_transform = crtc_transform;
+  else
+    crtc_hw_transform = GF_MONITOR_TRANSFORM_NORMAL;
 
   gf_monitor_calculate_crtc_pos (monitor, mode, output, crtc_transform,
                                  &crtc_x, &crtc_y);
@@ -738,7 +742,7 @@ assign_monitor_crtc (GfMonitor          *monitor,
     .crtc = crtc,
     .mode = crtc_mode,
     .layout = crtc_layout,
-    .transform = crtc_transform,
+    .transform = crtc_hw_transform,
     .outputs = g_ptr_array_new ()
   };
   g_ptr_array_add (crtc_info->outputs, output);


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