mirror of
https://github.com/brl/mutter.git
synced 2024-11-29 03:20:46 -05:00
monitor-config-manager: Only use crtc transform for assignment
The CRTC level transform (i.e. not necessarily the one set on the hardware) is what is relevant for calculating the layout the CRTC will have on the stage, so only use the one that can be handled by the hardware for the CRTC assignment. This makes the CRTC layout valid for tiled monitors. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1199
This commit is contained in:
parent
21b8ae10b8
commit
43baf643d4
@ -172,6 +172,7 @@ assign_monitor_crtc (MetaMonitor *monitor,
|
||||
MetaCrtc *crtc;
|
||||
MetaMonitorTransform transform;
|
||||
MetaMonitorTransform crtc_transform;
|
||||
MetaMonitorTransform crtc_hw_transform;
|
||||
int crtc_x, crtc_y;
|
||||
float x_offset, y_offset;
|
||||
float scale = 0.0;
|
||||
@ -200,10 +201,12 @@ assign_monitor_crtc (MetaMonitor *monitor,
|
||||
|
||||
transform = data->logical_monitor_config->transform;
|
||||
crtc_transform = meta_monitor_logical_to_crtc_transform (monitor, transform);
|
||||
if (!meta_monitor_manager_is_transform_handled (data->monitor_manager,
|
||||
crtc,
|
||||
crtc_transform))
|
||||
crtc_transform = META_MONITOR_TRANSFORM_NORMAL;
|
||||
if (meta_monitor_manager_is_transform_handled (data->monitor_manager,
|
||||
crtc,
|
||||
crtc_transform))
|
||||
crtc_hw_transform = crtc_transform;
|
||||
else
|
||||
crtc_hw_transform = META_MONITOR_TRANSFORM_NORMAL;
|
||||
|
||||
meta_monitor_calculate_crtc_pos (monitor, mode, output, crtc_transform,
|
||||
&crtc_x, &crtc_y);
|
||||
@ -244,7 +247,7 @@ assign_monitor_crtc (MetaMonitor *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);
|
||||
|
Loading…
Reference in New Issue
Block a user