backend/drm: modeset before enabling an output
This saves one modeset in case the previous mode is different.
@@ -422,12 +422,6 @@ static bool drm_connector_commit(struct wlr_output *output) {
return false;
}
- if (output->pending.committed & WLR_OUTPUT_STATE_ENABLED) {
- if (!enable_drm_connector(output, output->pending.enabled)) {
- return false;
- }
- }
-
if (output->pending.committed & WLR_OUTPUT_STATE_MODE) {
switch (output->pending.mode_type) {
case WLR_OUTPUT_STATE_MODE_FIXED:
@@ -446,6 +440,12 @@ static bool drm_connector_commit(struct wlr_output *output) {
}
}
+ if (output->pending.committed & WLR_OUTPUT_STATE_ENABLED) {
+ if (!enable_drm_connector(output, output->pending.enabled)) {
+ return false;
+ }
+ }
+
if (output->pending.committed & WLR_OUTPUT_STATE_BUFFER) {
if (!drm_connector_commit_buffer(output)) {
return false;
