logo kde

KDE está mejorando el soporte HiDPI sobre Wayland

David Edmundson, desarrollador de KWin, ha estado trabajando en dar un soporte decente a configuraciones multimonitor con un alta densidad de píxeles sobre Wayland.

Al igual que otros ámbitos de la informática, la resolución de las pantallas llevan demasiado años estancadas. Los monitores 4K todavía son una rareza y los 1080p siguen dominando de largo.

Pero para los pocos que pueden disfrutar de pantallas con una alta densidad de píxeles (HiDPI), la experiencia no siempre es todo lo buena que podría. Tener una resolución muy elevada en una pantalla de un tamaño moderado puede provocar efectos  poco deseados como tipografías demasiado pequeñas o detalles invisibles a simple vista. Las cosa se complica cuando nos vamos al multimonitor y lo hace todavía más cuando se mezclan pantallas de distinto tipo.

Dos pantallas muy diferentes en un mismo PC

 Wayland es un protocolo tan reciente que apenas hay distribuciones que hagan uso de él de forma predeterminada pero se presenta como un sustituto viable de X11. Todavía quedan cosas que hacer y una de ellas es dar un buen soporte a este tipo de configuraciones que, aunque sean poco comunes, no deben olvidarse.

Lamentablemente hay una limitación en el diseño de Wayland que impide que sea el propio protocolo el que escale la interfaz gráfica. Y es que, como si de los años 80s se tratara, cuando disponer de un coprocesador matemático era un lujo que pocos se podían permitir, Wayland está limitado a usar números enteros cuando trabaja con el escalado fraccional. La explicación técnica de esta extraña decisión de diseño podría estar en el hecho de que GTK usa enteros para el escalado.

Sea como fuere, Qt (las bibliotecas sobre las que se sustentan los tres pilares de KDE), no tiene esta limitación, por lo que se puede seguir trabajando en ello aunque Wayland no tenga esa posibilidad por sí mismo. Los objetivos que se han marcado para considerar que se ha logrado un buen soporte son:
· Que los programas antiguos sigan siendo usables y legibles.
· Que la velocidad del ratón sea consistente.
· Que las capturas de pantalla sean consistentes entre pantallas.
· Que todos los componentes se comporten de la misma forma a través de un protocolo común.

El reto no es sencillo y la solución propuesta es enrevesada. La idea principal es que el compositor Kwin lo renderice todo al doble de tamaño mientras todos los programas se muestran con normalidad (como lo harían en una pantalla de densidad estándar). Más tarde los clientes proporcionan las texturas que aparecerán al doble de la resolución de la pantalla. El proceso es el siguiente:
· Se renderiza una ventana a tamaño normal en una pantalla del doble de tamaño, de forma que la ventana se muestra al doble de tamaño.
· Se renderiza una ventana al doble de tamaño con una pantalla a tamaño normal, con lo que se consigue que las texturas tengan el tamaño correcto.
· Se renderiza una ventana del doble de tamaño a una ventana del doble de tamaño, momento en el que Kwin escala el resultado y aparece la ventana al doble de tamaño.

Esta solución, que está lejos de ser perfecta, es una opción plausible que cumpliría con los objetivos impuestos. Y todo esto quizás esté disponible en Plasma 5.11, lo cual es bastante pronto

Para más información podéis visitar el blog de David Edmundson.