Denial WM es un nuevo compositor para Wayland que apuesta por un enfoque poco habitual: integrar directamente el motor Flutter dentro del propio compositor, en lugar de ejecutarlo como una aplicación sobre otro entorno gráfico.
El proyecto está desarrollado principalmente en Rust, utiliza Smithay para gestionar buena parte de las funciones relacionadas con Wayland y está especialmente orientado a ofrecer una integración optimizada con Arch Linux.
Actualmente, Denial se encuentra en fase alpha, pero ya ofrece una arquitectura bastante ambiciosa para un compositor todavía en desarrollo.
Flutter integrado en el compositor
La principal diferencia de Denial frente a otros compositores Wayland es que Flutter Engine está integrado directamente en su código.
Mientras que Rust y Smithay se encargan del estado del protocolo Wayland, la entrada de dispositivos, DMA-BUF, DRM/KMS y la gestión de recursos nativos, Flutter se ocupa directamente de la composición y representación gráfica.
Los buffers de aplicaciones Wayland respaldados por DMA-BUF pueden importarse como texturas GPU mediante EGL_EXT_image_dma_buf_import, evitando copias de píxeles, lecturas de vuelta a la CPU o cargas adicionales de texturas.
Flutter renderiza directamente sobre buffers GBM destinados a la presentación mediante KMS, eliminando además una pasada de composición adicional o un blit final intermedio.
Un compositor preparado para el uso diario
Aunque todavía se encuentra en desarrollo temprano, Denial ya ofrece compatibilidad con aplicaciones Wayland habituales como Chromium, Firefox, Blender y Discord, además de soporte para XWayland.
El proyecto también ha sido probado con Steam y juegos exigentes ejecutados mediante Proton, mientras que la configuración multimonitor, las notificaciones, el bloqueo de pantalla y DPMS, el audio y el uso compartido de pantalla mediante OBS forman parte de las funciones disponibles.
Uno de sus detalles más interesantes es el control de volumen individual por ventana, una característica que puede resultar especialmente útil en escritorios con múltiples aplicaciones multimedia.
Flutter como herramienta de desarrollo
Denial no solo utiliza Flutter para representar la interfaz del escritorio, sino que conserva buena parte del flujo de desarrollo habitual del framework.
Un paquete opcional proporciona acceso a herramientas como Flutter Inspector, DevTools y hot reload, permitiendo modificar el shell del escritorio sin reiniciar el compositor ni cerrar las aplicaciones que estén ejecutándose.
También es posible activar o desactivar los modos de depuración y perfilado mientras Denial permanece en funcionamiento.
Optimización para tiempos de respuesta consistentes
El proyecto utiliza versiones personalizadas de Flutter Engine y Skia, con optimizaciones específicas para el funcionamiento como compositor de escritorio.
Entre ellas se incluyen seguimiento de damage mediante texturas externas, planificación especializada de fotogramas y reducción de asignaciones de memoria en rutas críticas de renderizado.
El objetivo no es únicamente alcanzar una alta tasa de fotogramas, sino mantener tiempos de renderizado bajos y consistentes, algo especialmente importante en un compositor gráfico.
Una propuesta diferente para Wayland
Denial WM todavía está en fase alpha, por lo que su desarrollo debe considerarse experimental. Sin embargo, su arquitectura resulta especialmente interesante al combinar Wayland, Rust, Smithay y Flutter en un único entorno de composición.
El proyecto está disponible bajo licencia GPLv3 o posterior y cuenta con paquetes para Arch Linux, convirtiéndose en una propuesta a seguir de cerca dentro del creciente ecosistema de compositores Wayland.
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.

