backend/drm: Don't add pollute fixed modes list with custom modes

Nobody remembers why this is done and it isn't that great if people
use a lot of custom modes.
This commit is contained in:
Alexander Orzechowski 2023-06-27 11:14:55 -04:00
parent ea3c6fde3a
commit 5567aefb1c
1 changed files with 5 additions and 4 deletions

View File

@ -763,16 +763,17 @@ bool drm_connector_commit_state(struct wlr_drm_connector *conn,
conn->crtc = NULL; conn->crtc = NULL;
} }
if (pending.base->committed & WLR_OUTPUT_STATE_MODE) { if (pending.base->committed & WLR_OUTPUT_STATE_MODE) {
struct wlr_output_mode *mode = NULL;
switch (pending.base->mode_type) { switch (pending.base->mode_type) {
case WLR_OUTPUT_STATE_MODE_FIXED: case WLR_OUTPUT_STATE_MODE_FIXED:
mode = pending.base->mode; wlr_output_update_mode(&conn->output, pending.base->mode);
break; break;
case WLR_OUTPUT_STATE_MODE_CUSTOM: case WLR_OUTPUT_STATE_MODE_CUSTOM:
mode = wlr_drm_connector_add_mode(&conn->output, &pending.mode); wlr_output_update_custom_mode(&conn->output,
pending.base->custom_mode.width,
pending.base->custom_mode.height,
pending.base->custom_mode.refresh);
break; break;
} }
wlr_output_update_mode(&conn->output, mode);
} }
if (flags & DRM_MODE_PAGE_FLIP_EVENT) { if (flags & DRM_MODE_PAGE_FLIP_EVENT) {
conn->pending_page_flip_crtc = conn->crtc->id; conn->pending_page_flip_crtc = conn->crtc->id;