From 97a10aa17334ac905ea2e2adf8e40220a5a618cc Mon Sep 17 00:00:00 2001 From: sergio Date: Thu, 21 May 2026 02:58:52 +0000 Subject: [PATCH] =?UTF-8?q?chore(mirada-compositor):=20backend=20DRM=20?= =?UTF-8?q?=E2=80=94=20log=20del=20tama=C3=B1o=20de=20las=20superficies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El panel sólo ofrece modos 1920×1080, así que la franja negra no es del modo. Para localizarla, el bucle DRM registra cada ~2 s la posición y el tamaño real de cada superficie — así se ve si el cliente llena la pantalla o se queda corto. Co-Authored-By: Claude Opus 4.7 --- crates/apps/mirada-compositor/src/drm_backend.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crates/apps/mirada-compositor/src/drm_backend.rs b/crates/apps/mirada-compositor/src/drm_backend.rs index 6baec05..c9125cb 100644 --- a/crates/apps/mirada-compositor/src/drm_backend.rs +++ b/crates/apps/mirada-compositor/src/drm_backend.rs @@ -32,6 +32,7 @@ use smithay::backend::renderer::element::surface::{ }; use smithay::backend::renderer::element::Kind; use smithay::backend::renderer::gles::GlesRenderer; +use smithay::backend::renderer::utils::with_renderer_surface_state; use smithay::backend::renderer::ImportDma; use smithay::backend::session::libseat::LibSeatSession; use smithay::backend::session::{Event as SessionEvent, Session}; @@ -74,6 +75,8 @@ struct DrmState { start: Instant, /// Nº de ventanas en el último `tick` — para registrar los cambios. last_windows: usize, + /// Cuenta de `tick`s — para registrar diagnósticos cada cierto rato. + tick_count: u32, } impl DrmState { @@ -134,6 +137,18 @@ impl DrmState { self.last_windows = n; } + // Diagnóstico cada ~2 s: dónde y de qué tamaño está cada superficie. + self.tick_count = self.tick_count.wrapping_add(1); + if self.tick_count % 120 == 0 { + for w in &self.app.windows { + let size = with_renderer_surface_state(&w.surface, |s| s.surface_size()); + eprintln!( + "mirada-compositor · ventana id={} loc={:?} visible={} superficie={size:?}", + w.id, w.loc, w.visible, + ); + } + } + if self.keymap_watch.as_ref().is_some_and(|w| w.changed()) { if let Some(path) = &self.keymap_path { match Keymap::load(path) { @@ -484,6 +499,7 @@ pub fn run() -> Result<(), Box> { ctl, start: Instant::now(), last_windows: 0, + tick_count: 0, }; let signal = event_loop.get_signal();