Haces doble clic en un ejecutable de Windows dentro de Linux y, sin máquina virtual de por medio, el programa arranca. O pulsas «Jugar» en Steam con un juego que solo existe para Windows y el juego carga. Detrás de las dos cosas está Wine, una capa que hace de intérprete entre los programas de Windows y Linux, y Proton, el paquete con el que Valve la lleva a Steam. El propio repositorio de Proton lo resume así: es una herramienta para usar con el cliente de Steam que permite que juegos exclusivos de Windows funcionen en el sistema operativo Linux, y para conseguirlo usa Wine.
Repasamos qué problema resuelven, por qué no son una máquina virtual, cómo se organiza Wine por dentro, qué le añade Proton y qué hacen DXVK y VKD3D-Proton con los gráficos, con la documentación de Valve y de los proyectos DXVK y VKD3D-Proton consultada el 19 de octubre de 2026.
El problema: programas que hablan el idioma de Windows
Un programa hace muy poco por su cuenta. Para abrir un archivo, dibujar una ventana o leer el teclado, le pide esos servicios al sistema operativo a través de un catálogo de funciones ya preparadas, lo que se llama una API (interfaz de programación de aplicaciones). Cuando la petición baja hasta el núcleo del sistema, el que de verdad toca el disco o la memoria, se habla de una llamada al sistema.
En Windows, buena parte de ese catálogo vive en bibliotecas con extensión .dll, y cada programa da por hecho que estarán en su sitio y que responderán como espera. Linux tiene sus propias bibliotecas y su propio núcleo, con otras funciones y otras reglas, así que un ejecutable de Windows llevado tal cual a Linux busca piezas que no están ahí.
Con los juegos el problema tiene una segunda capa: la gráfica. Muchos dibujan cada fotograma con Direct3D, la API gráfica de Windows, mientras que en Linux la tarjeta gráfica se maneja con otras API, como Vulkan u OpenGL. Para que el juego funcione no basta con abrir sus archivos: cada orden de dibujo tiene que llegar a la tarjeta en un idioma que su controlador entienda.
Capa de compatibilidad no es lo mismo que máquina virtual
Hay dos formas de resolverlo. Una máquina virtual simula un ordenador completo y arranca dentro un Windows entero, con su núcleo y sus controladores: el programa corre en un Windows de verdad, pero hay que reservar memoria y disco para un segundo sistema que funciona a la vez que el primero.
Una capa de compatibilidad hace otra cosa: no arranca ningún Windows. El programa se ejecuta como cualquier otro programa de Linux y, cuando llama a una función de Windows, la recibe una versión reescrita que hace lo mismo con las piezas de Linux. No hay un segundo sistema operativo que cargar, solo un traductor sentado entre el programa y el sistema. Valve define Proton como una «herramienta de compatibilidad» para Steam Play basada en Wine y en componentes adicionales, y DXVK se presenta como una «capa de traducción»: los nombres ya dicen lo que hacen.
Es el camino contrario al de WSL, que mete un Linux dentro de Windows y que explicamos en qué es WSL y qué permite hacer dentro de Windows. Aquí el anfitrión es Linux y los invitados son los programas de Windows.
Wine por dentro: prefijos, DLL y winecfg
El archivo README de Wine, el que acompaña a la versión de Wine que Valve incluye en Proton, lo define como «un programa que permite ejecutar programas de Microsoft Windows (incluidos ejecutables de DOS, Windows 3.x, Win32 y Win64) en Unix». Ese mismo texto explica que se compone de un cargador de programas, que carga y ejecuta un binario de Microsoft Windows, y de una biblioteca llamada Winelib que «implementa las llamadas a la API de Windows usando sus equivalentes de Unix, X11 o Mac».
Wine guarda cada entorno de Windows en una carpeta que se llama prefijo. La documentación de DXVK, que se instala dentro de uno, enseña cómo es: el prefijo se indica con la variable WINEPREFIX y dentro tiene una carpeta drive_c con su windows/system32 y, en un prefijo por defecto, también una windows/syswow64, donde van las bibliotecas de 32 bits; en un prefijo puro de 32 bits, distinto del de por defecto, esas bibliotecas van a system32. El programa ve una estructura de carpetas de Windows aunque por debajo todo sean ficheros de Linux. Proton lleva la idea un paso más allá con una opción que crea una unidad S: que apunta a la biblioteca de Steam donde está el juego.
Como un prefijo es una carpeta, se pueden tener varios, cada uno con sus programas y sus ajustes, y cambiar de uno a otro es cambiar el valor de WINEPREFIX. Las opciones de arranque de Proton, por ejemplo, no hacen cambios permanentes en el prefijo de Wine: si se quita la opción, todo vuelve a como estaba.
La herramienta para ajustar un prefijo es winecfg. La misma guía de DXVK la usa para algo que dice mucho de cómo trabaja Wine: después de copiar las DLL de DXVK en el prefijo, hay que abrir winecfg y, en la pestaña de bibliotecas, añadir a mano sustituciones «nativas» para d3d8, d3d9, d3d10core, d3d11 y dxgi. Es decir, se le indica a Wine que, para esas bibliotecas, use las que acabas de copiar. Para deshacerlo se borran esas DLL y sus sustituciones y se ejecuta wineboot -u, que restaura los archivos DLL originales.
Esos originales son los de Wine, que ya trae su propia forma de dibujar Direct3D. Proton la llama wined3d y la describe como el renderizador basado en OpenGL, frente al de DXVK, basado en Vulkan. De hecho, DXVK pide comprobar con su panel de datos en pantalla que el programa está usando DXVK y no wined3d.
Proton: Wine empaquetado por Valve para Steam
Proton es la respuesta de Valve a una pregunta práctica: cómo hacer que todo lo anterior funcione sin que el jugador tenga que tocar un prefijo. En su repositorio aparecen como componentes el propio Wine, DXVK, VKD3D-Proton, dxvk-nvapi y VKD3D, junto a otras piezas como FFmpeg o GStreamer. La rama que muestra el repositorio en la fecha de consulta es la proton_11.0.
Para el usuario, activarlo es cuestión de un menú. Steam trae varias versiones de Proton, que los juegos usan por defecto o que se pueden elegir en la página Steam Play de los ajustes de Steam. Valve aconseja que la mayoría use el Proton que trae el propio cliente, y explica que publica el código para que los usuarios avanzados puedan modificarlo, por ejemplo para usar otra versión de Wine con un juego concreto. Una versión compilada en casa se instala en ~/.steam/root/compatibilitytools.d/ y, tras reiniciar Steam, aparece en la lista desplegable de herramientas de compatibilidad de esa misma sección Steam Play.
La otra mitad del trabajo de Proton son los ajustes por juego. El cliente de Steam fija algunas opciones para juegos conocidos mediante la variable STEAM_COMPAT_CONFIG, y el usuario puede cambiarlas con variables de entorno. Para un juego concreto, se escriben en las opciones de lanzamiento de sus propiedades en Steam, seguidas de %command%: con PROTON_USE_WINED3D=1 %command%, por ejemplo, el juego usa wined3d en lugar de DXVK. Para aplicarlas a todos los juegos, Valve propone renombrar el archivo user_settings.sample.py de la carpeta de instalación de Proton a user_settings.py y editarlo.
DXVK y VKD3D-Proton: de Direct3D a Vulkan
La parte gráfica es la que más pesa en un juego, y Proton la deja en manos de dos proyectos. DXVK se define como una capa de traducción basada en Vulkan para Direct3D 8, 9, 10 y 11 que permite ejecutar aplicaciones 3D en Linux usando Wine. Recibe las órdenes que el juego da en Direct3D y las convierte en órdenes de Vulkan, que es lo que entiende el controlador gráfico. Cada versión de Direct3D necesita sus propias bibliotecas: d3d9.dll para Direct3D 9; d3d11.dll y dxgi.dll para Direct3D 11; d3d8.dll y d3d9.dll para Direct3D 8. Steam Play y otras herramientas preparan DXVK por su cuenta cuando se activan.
Direct3D 12 va por otro camino. VKD3D-Proton es una bifurcación de VKD3D, cuyo proyecto original está en WineHQ, y su objetivo es implementar la API completa de Direct3D 12 sobre Vulkan; es, además, el trabajo de desarrollo del soporte de Direct3D 12 en Proton. Se usa como dos DLL de Windows, d3d12.dll y d3d12core.dll, que sustituyen directamente a las de Direct3D 12 y funcionan en Wine, sea el de Proton o el normal. Los componentes DXGI, que hacen falta junto a Direct3D 12, los comparte con DXVK desde su versión 2.1.
El reparto queda así, con lo que publica cada proyecto:
| Capa | Qué traduce | Dónde se usa |
|---|---|---|
| Wine | Programas de Windows a Linux | Linux; base de Proton |
| Proton | Juegos de Windows a Linux | Steam (Steam Play) |
| DXVK | Direct3D 8 a 11 a Vulkan | Wine y Proton |
| VKD3D-Proton | Direct3D 12 a Vulkan | Wine y Proton |
| wined3d | Direct3D 9 a 11 a OpenGL | Wine; opción en Proton |
Cómo comprobar si funciona y qué suele fallar
Lo primero es saber qué está pasando. Con la variable DXVK_HUD=1, DXVK muestra en pantalla el nombre de la tarjeta gráfica, la versión del controlador y los fotogramas por segundo, y con DXVK_HUD=full enseña todos sus indicadores. En Proton, PROTON_LOG=1 guarda un registro de depuración en un archivo con el número del juego, que por defecto va a la carpeta personal del usuario.
Los controladores son el primer sospechoso. VKD3D-Proton tiene requisitos duros para implementar Direct3D 12 con un rendimiento razonable, empezando por Vulkan 1.3; en AMD recomienda el controlador RADV, con Mesa 22.0 como mínimo, y en NVIDIA hace falta como mínimo la serie 535. El proyecto recomienda usar los controladores más recientes que se puedan conseguir, y DXVK pide revisar en su wiki el estado de los controladores y usar una versión lo bastante reciente antes de informar de un fallo.
El segundo clásico son los tirones. Con controladores compatibles con la extensión VK_EXT_graphics_pipeline_library, DXVK compila los sombreadores cuando el juego los carga y no al dibujar, lo que reduce o elimina los tirones en muchos juegos. A cambio, en los juegos que cargan sus sombreadores en las pantallas de carga o en el menú, el procesador puede pasar un buen rato muy ocupado, y el proyecto recomienda esperar a que termine la compilación antes de empezar a jugar. Los juegos que solo cargan los sombreadores al dibujar, como la mayoría de los hechos con Unreal Engine, seguirán teniendo algún tirón, aunque más leve.
Después están las manías de cada juego, y para eso existen las opciones de Proton. Algunos juegos dependen de funciones del controlador de NVIDIA que solo existen en Windows y necesitan que la tarjeta se presente como una de AMD; otros, unos pocos, exigen usar su propio cargador de Vulkan; y hay juegos de Direct3D 11 que funcionan mejor si se les obliga a volver a Direct3D 9. El propio cliente de Steam aplica por su cuenta algunas opciones a los juegos que ya conoce.
Y una advertencia que conviene leer antes de trastear: según la documentación de DXVK, manipular las bibliotecas de Direct3D en juegos multijugador en línea puede considerarse trampa y acabar con la cuenta bloqueada, y eso también puede aplicarse a juegos de un jugador con una parte multijugador integrada. El proyecto lo resume con un «bajo tu propia responsabilidad».
Ni Wine ni Proton convierten Linux en Windows: le dan a cada programa lo que espera encontrar y traducen lo demás sobre la marcha. Si quieres verlo con tus propios ojos sin tocar el sistema que ya tienes, puedes probar Linux desde un USB live sin modificar el disco duro y comprobar de primera mano cómo se comporta.
Te puede interesar
Tech Planet participa en el programa de afiliados de Amazon. Si compras a través de estos enlaces, recibimos una pequeña comisión sin coste extra para ti, lo que nos ayuda a seguir creando contenido como este.
| Imagen | Producto | Características | Comprar |
|---|---|---|---|
![]() |
ASUS ROG Xbox Ally | AMD Ryzen Z2 A · 16 GB de RAM y 512 GB SSD · pantalla de 7″ Full HD a 120 Hz · Windows 11 Home | Ver precio en Amazon |
![]() |
JSAUX estación de acoplamiento 6 en 1 | HDMI 2.1 de 4K a 120 Hz · Gigabit Ethernet · tres USB-A 3.0 · hasta 100 W de carga | Ver precio en Amazon |
![]() |
SanDisk Gameplay microSD 1 TB | 1 TB · hasta 190 MB/s de lectura y 130 MB/s de escritura · A2, V30 y U3 | Ver precio en Amazon |
![]() |
JSAUX ModCase para Steam Deck | Funda modular con soporte metálico y correa · ventilador de refrigeración GP0200 · para Steam Deck y Steam Deck OLED | Ver precio en Amazon |









