NVIDIA claudica y adoptará los estándares de Wayland (o eso parece)
La transición a Wayland ha pasado de ser algo prometedor a uno de los caminos más tortuosos de los recorridos por el escritorio GNU/Linux. El protocolo gráfico se ha encontrado con muchos obstáculos, de los que se pueden destacar la complejidad de su implementación y el marco poco definido que ha dibujado para afrontar ciertas situaciones. Sin embargo, no todas las trabas han sido internas, ya que Wayland también se ha visto lastrado por las despreciables artes del mayor gigante del procesamiento de gráficos: NVIDIA.
Los que han seguido la trayectoria de Wayland saben que la relación de NVIDIA con el protocolo ha sido siempre un tanto especial, sobre todo por la tendencia de la compañía a no adoptar los estándares acordados por Intel, AMD, GNOME, KDE y los desarrolladores de compositores. Mientras que los fabricantes de procesadores x86 y los desarrolladores de entornos de escritorio y compositores decidieron adoptar GBM como búfer, NVIDIA se decantó por EGLStreams, rompiendo de esa manera el consenso al que había llegado el resto.
NVIDIA motivó su decisión en que EGLStreams es una especificación abierta de Khronos Group (la misma institución que está detrás de Vulkan y OpenGL) que ofrecía un buen rendimiento, además de excusarse en el hecho de que ‘libgbm’ (la biblioteca de GBM) formaba parte de Mesa, un componente esencial de la pila gráfica de GNU/Linux que la compañía siempre ha visto como un rival, a pesar de estar publicado bajo la permisiva licencia MIT. Como es obvio, aquello no aplacó las críticas de la comunidad, sino todo lo contrario viendo la manera de actuar de NVIDIA.
EGLStreams terminó implementado como mínimo en fase inicial en GNOME y KDE Plasma, pero NVIDIA se encontró con que los resultados fueron un desastre. En el caso de KDE Plasma se tiene constancia de la implicación personal de la compañía, pero los desarrolladores de compositores se encontraron con un panorama complejo al tener que adaptarse a una tecnología muy específica de NVIDIA mientras que el resto de drivers soportaban GBM.
Con el fracaso de la implementación de EGLStreams, la presión por establecer a Wayland por defecto en GNOME, el abandono de Xorg y el hecho de que se estaba quedando muy por detrás de AMD e Intel, a NVIDIA no le ha quedado otra que dar pasos hacia atrás para ajustarse mejor a los estándares acordados por el resto. El gigante verde anunció el pasado mes de enero el soporte para XWayland acelerado por hardware y DMA-BUF, y ahora nos hacemos eco de que la compañía ha claudicado en apariencia para adoptar GBM.
James Jones, empleado de NVIDIA implicado en el soporte de Wayland, ha enviado una petición de fusión para permitir a Mesa descubrir y cargar backends de GBM alternativos al backend de Infraestructura de Renderizado Directo (DRI) incorporado por defecto. Este movimiento solo puede sostenerse en el hecho de que NVIDIA tenga una intención real de soportar GBM para su driver oficial privativo, lo que facilitaría su manejo por parte de los compositores existentes.
Es importante tener en cuenta que la interfaz de GBM (Generic Buffer Management) es un medio para asignar búferes gráficos y se puede utilizar con EGL. Esto es así gracias a que GBM ofrece una capa de abstracción capaz de funcionar con todos los drivers gráficos. Teniendo en cuenta estos datos, todo parece indicar que el empecinamiento de NVIDIA con EGLStreams ha tenido mucho de político y poco de práctico.
En resumidas cuentas, y si NVIDIA realmente termina ofreciendo lo que promete con la mencionada petición de fusión en Mesa, significa que en un futuro el driver oficial de la compañía debería de funcionar sin grandes complicaciones en una sesión de Wayland y sin requerir de grandes modificaciones en los compositores.
Por ahora la versión 470 del driver de NVIDIA promete ser mucho más amigable con Wayland, pero viendo los antecedentes, lo sensato sería exigir a la compañía resultados reales en terrenos reales (o sea, que los usuarios finales realmente vean que NVIDIA es usable con Wayland).