- Valve y Collabora trabajan en portar el driver Vulkan de código abierto RADV, nativo de Linux, al entorno de Windows.
- El proyecto busca ofrecer una alternativa libre a los drivers privativos de AMD, facilitando la depuración y la mejora comunitaria.
- El principal obstáculo técnico es la falta de documentación de AMD sobre su driver de kernel en Windows, obligando a recurrir a la ingeniería inversa.
Si te apasiona el hardware y el software libre, seguro que te suena que Linux suele llevar la delantera en cuanto a drivers abiertos para AMD. Pues bien, resulta que Valve no se conforma solo con SteamOS y ha decidido meterle mano a Windows para intentar trasladar esa magia allá. El objetivo es llevar los controladores RADV, que son la joya de la corona de Vulkan en el ecosistema Mesa de Linux, al sistema operativo de Microsoft.
Este movimiento no es una ocurrencia cualquiera, sino un proyecto serio en el que Collabora está liderando la carga con el respaldo financiero de Valve. La idea no es tirar a la basura los drivers oficiales de AMD, sino crear una capa complementaria que permita a los usuarios y desarrolladores tener más flexibilidad y control sobre cómo sus tarjetas gráficas gestionan la API Vulkan en Windows.
¿Qué es exactamente RADV y por qué es tan especial?

Para los que no estén al tanto, RADV es un controlador de espacio de usuario que implementa Vulkan para las GPUs AMD de arquitectura GCN y RDNA. En Linux, es prácticamente el estándar y es la pieza clave que hace que la Steam Deck funcione tan fluidamente. Al ser de código abierto, cualquier persona con conocimientos puede proponer mejoras, corregir errores rápidamente y optimizar el rendimiento sin tener que esperar a que el fabricante saque una actualización oficial.
Llevar esto a Windows supondría un cambio de juego total. En lugar de depender únicamente de los blobs binarios y cerrados de AMD, se abriría la puerta a que la comunidad de desarrolladores de videojuegos pueda reportar fallos y optimizar el código directamente, independientemente de si usan Windows o Linux, unificando así la base de desarrollo.
El desafío técnico: La batalla contra el código cerrado

Aquí es donde la cosa se pone cuesta arriba. Para que un driver de usuario (UMD) funcione, necesita hablarse con un driver de kernel (KMD). En Linux, esto es sencillo gracias a la transparencia del kernel de Linux y la API uAPI de DRM. Pero en Windows, el driver de kernel de AMD es una caja negra llena de código opaco.
- Ingeniería inversa: Al no haber documentación pública, el equipo ha tenido que deducir cómo funcionan las estructuras de datos privadas de AMD.
- Fragilidad del sistema: Como AMD puede cambiar estas estructuras en cualquier actualización sin avisar, el driver RADV puede dejar de funcionar de la noche a la mañana.
- Dependencia del KMD oficial: No es viable escribir un driver de kernel desde cero para Windows, por lo que RADV debe convivir con el driver privativo de AMD.
Collabora ha pedido a gritos que AMD facilite la documentación necesaria para que la comunicación entre ambos módulos sea estable. Si AMD diera el paso, demostraría que su apuesta por el código abierto no es solo marketing, sino una realidad técnica.
Hitos alcanzados y el caso de Counter-Strike 2

A pesar de las piedras en el camino, el proyecto ha logrado avances brutales. Se ha pasado de una fase experimental donde el sistema se colgaba a los pocos minutos, a una versión mucho más robusta y portable que ya no depende de WSL (Windows Subsystem for Linux), funcionando de forma nativa en el sistema. Han implementado mejoras en la sincronización, la gestión de flujos de comandos y funciones avanzadas como los task shaders y la teselación.
El momento «eureka» llegó cuando consiguieron ejecutar Counter-Strike 2 utilizando RADV en Windows. Para lograrlo, basta con activar el renderizador Vulkan mediante el comando -vulkan. Aunque todavía no cumple al cien por cien todos los estándares de la especificación Vulkan, el hecho de que un juego comercial moderno ruede es una prueba de concepto demoledora.
Cómo funciona la maquinaria interna de RADV

Para entender la complejidad, hay que saber que RADV se encarga de tareas críticas como la compilación de sombreadores. El proceso es fascinante: reciben el código en formato SPIR-V, lo pasan a una representación intermedia llamada NIR para optimizarlo y, finalmente, utilizan un compilador llamado ACO para convertirlo en el lenguaje nativo que entiende la GPU de AMD.
Mientras que el driver de kernel se encarga de la gestión de energía, la memoria de vídeo y de hablar con la GPU a través del puerto PCIe, RADV se ocupa de grabar los comandos en un formato binario (paquetes PM4) que la tarjeta pueda procesar. Esta división de tareas es lo que permite que el driver sea tan eficiente en Linux y lo que Collabora intenta replicar en el entorno de Windows.
Esta iniciativa representa un paso valiente hacia la democratización de los drivers gráficos, buscando que la libertad y la eficiencia de Mesa lleguen a millones de usuarios de PC. Aunque el camino está lleno de obstáculos debido a la naturaleza cerrada de Windows y AMD, el código ya está disponible en GitLab para que cualquiera pueda echarle un ojo, dejando claro que el espíritu colaborativo de Valve y Collabora podría cambiar la forma en que entendemos el gaming en Windows.