El pasado mes de octubre nos hicimos eco de la presentación de NVK, un driver de Vulkan para Mesa dirigido a funcionar con Nouveau, el controlador de código abierto presente en el kernel Linux hecho para activar las gráficas de NVIDIA. Es importante tener en cuenta que Nouveau y NVK no son componentes intercambiables, sino que van juntos debido a que realizan funciones diferentes.
NVIDIA no es una compañía que se lo haya puesto fácil a Linux, sobre todo porque a duras penas libera tecnologías o documentación que permita mejorar la situación de su soporte a través de Mesa, la pila encargada de suministrar los controladores del espacio de usuario (OpenGL, Vulkan y OpenCL) en Linux, FreeBSD y otros sistemas Unix y tipo Unix. Esto hace que el uso del driver privativo y oficial sea prácticamente obligatorio en la inmensa mayoría de los casos, incluso aquellos en los que el ordenador solo va a realizar tareas básicas de escritorio.
Guste o no, Nouveau sigue siendo un esfuerzo comunitario y basado en ingeniería inversa más destinado a ofrecer un soporte básico que a suministrar algo que pueda competir con lo que se obtiene para AMD Radeon desde hace tiempo (e Intel también si es que se pone las pilas con su driver de Vulkan para Mesa, ANV). A las limitaciones del propio Nouveau a la hora de exprimir las gráficas se suma la carencia de soporte para Vulkan, lo que limita muchísimo su uso para videojuegos y aplicaciones que se apoyan en dicha API.
Afortunadamente, parece que la carencia de soporte de Vulkan para Nouveau va a llegar pronto a su fin, ya que Collabora ha anunciado que NVK está listo para ser fusionado en Mesa. Si bien hay “numerosos contribuidores de código abierto”, parece que la mayor parte de la responsabilidad ha recaído sobre los hombros de Faith Ekstrand, empleado de Collabora, y Karol Herbst, ingeniera de Red Hat. Recordamos que Karol Herbst es también una de las principales personas implicadas en el desarrollo de RustiCL, un controlador de OpenCL 3 para Mesa.
Faith Ekstrand ha explicado en la petición de fusión que “no reclamaré la paridad con RADV (driver de Vulkan para Radeon presente en Mesa), pero tenemos un conjunto bastante sólido en este punto. Mi alumno del Google Summer of Code (@mohamexiety) ha completado la mayor parte de YCbCr y, una vez que lo haya hecho, podremos reclamar Vulkan 1.2 con una confianza razonable. También tenemos un conjunto decente de características además de eso. No todo lo necesario para DXVK, VKD3D y Zink, pero tenemos la mayor parte”.
En resumidas cuentas, puede que NVK sea fusionado pronto, pero eso no quiere decir que vaya a soportar todo lo que se podría esperar desde el primer momento. A esto se suma la debilidad del propio Nouveau, que es otra barrera que impedirá con casi toda probabilidad el uso de gráficas de NVIDIA mediante Mesa como una buena solución para jugar desde Linux y ejecutar aplicaciones pesadas que se apoyan fuertemente en la GPU.
Aunque la llegada de NVK no supondría algo muy revolucionado para el soporte de NVIDIA mediante Mesa, sí subsanaría una de las principales carencias que todavía arrastra y abriría la puerta a la ejecución de aplicaciones que se apoyan en Vulkan, una API que ya es el estándar para jugar en Linux y que poco a poco se va extendiendo entre las soluciones orientadas a profesionales.