backend/drm: modeset before enabling an output

This saves one modeset in case the previous mode is different.
This commit is contained in:
Simon Ser 2019-12-27 12:43:49 +01:00 committed by Drew DeVault
parent 5d1ba0f446
commit f0781cd792

View file

@ -422,12 +422,6 @@ static bool drm_connector_commit(struct wlr_output *output) {
return false; 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) { if (output->pending.committed & WLR_OUTPUT_STATE_MODE) {
switch (output->pending.mode_type) { switch (output->pending.mode_type) {
case WLR_OUTPUT_STATE_MODE_FIXED: 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 (output->pending.committed & WLR_OUTPUT_STATE_BUFFER) {
if (!drm_connector_commit_buffer(output)) { if (!drm_connector_commit_buffer(output)) {
return false; return false;