summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-09-07 17:20:29 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-09-07 17:22:12 +0100
commitc17d3b5d5cdbda510a2b6955c3a171457ecde7e5 (patch)
tree691e4723feb016b33fa1ddc0d7e278510fdb78eb
parentaa10f480c566b8523cdd49b3e23f64b7b9625987 (diff)
sna: Compute clones on final ordering
The clones are indices into the output arrays, so recompute the clones if we reorder the outputs. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_display.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index c972e316..2ba249aa 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3874,6 +3874,7 @@ static void sort_config_outputs(struct sna *sna)
{
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn);
qsort(config->output, sna->mode.num_real_output, sizeof(*config->output), output_rank);
+ sna_mode_compute_possible_outputs(sna);
}
static void sort_randr_outputs(struct sna *sna, ScreenPtr screen)
@@ -3999,7 +4000,6 @@ void sna_mode_discover(struct sna *sna)
if (changed) {
DBG(("%s: outputs changed, broadcasting\n", __FUNCTION__));
- sna_mode_compute_possible_outputs(sna);
sna_mode_set_primary(sna);
/* Reorder user visible listing */
@@ -5671,8 +5671,6 @@ bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna)
sna->mode.num_real_output = xf86_config->num_output;
- sna_mode_compute_possible_outputs(sna);
-
sna->mode.max_crtc_width = res->max_width;
sna->mode.max_crtc_height = res->max_height;