It seems that my first patch doesn't address all issues. Find another
patch attached that improves things even more.
Apparently pick_crtcs_score() didn't set up crtcs references correctly
if anything but the last output resulted in the best score.
I'm pretty sure that there is another bug lurking around that will make
reuse of crtcs difficult, but it will only show up on configurations
with more than 2 outputs active at the same time. Maybe even only on
configurations with more than 2 crtcs, and I don't think we have such
beasts with RandR support available yet.
I also created a kind of test suite for verifying xrandr behavior, but I
have to clean that one up before committing.
Matthias
--
Matthias Hopf <mhopf@xxxxxxx>, SuSE R&D, Zimmer 3.2.06, Tel. 74053-715
--- xrandr.c 2007-09-28 18:54:44.000000000 +0200
+++ xrandr.c 2007-11-08 20:17:45.000000000 +0100
@@ -1520,14 +1534,13 @@ pick_crtcs_score (output_t *outputs)
best_score = score;
}
}
+ if (output->crtc_info != best_crtc)
+ output->crtc_info = best_crtc;
/*
* Reset other outputs based on this one using the best crtc
*/
- if (output->crtc_info != best_crtc)
- {
- output->crtc_info = best_crtc;
- (void) pick_crtcs_score (outputs);
- }
+ (void) pick_crtcs_score (outputs);
+
return best_score;
}
_______________________________________________
xorg mailing list
xorg@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/xorg