diff --git a/src/backend/kms/device.rs b/src/backend/kms/device.rs index 7df3c8f9..418a16f3 100644 --- a/src/backend/kms/device.rs +++ b/src/backend/kms/device.rs @@ -1241,26 +1241,15 @@ fn populate_modes( ) -> Result<()> { let conn_info = drm.get_connector(conn, false)?; let max_bpc = drm_helpers::get_max_bpc(drm, conn)?.map(|(_val, range)| range.end.min(16)); - let preferred = conn_info + let Some(mode) = conn_info .modes() .iter() .find(|mode| mode.mode_type().contains(ModeTypeFlags::PREFERRED)) .copied() - .or(conn_info.modes().first().copied()); - let Some(preferred) = preferred else { + .or(conn_info.modes().first().copied()) + else { anyhow::bail!("No mode found"); }; - // Prefer the highest refresh rate at the native resolution so that - // high-refresh panels (120 Hz, 144 Hz, …) are used out-of-the-box - // without a pre-existing outputs.ron config. - let preferred_size = preferred.size(); - let mode = conn_info - .modes() - .iter() - .filter(|m| m.size() == preferred_size) - .max_by_key(|m| drm_helpers::calculate_refresh_rate(**m)) - .copied() - .unwrap_or(preferred); let refresh_rate = drm_helpers::calculate_refresh_rate(mode); let output_mode = OutputMode {