Recientemente, en un artículo de la web especializada sobre Linux Phoronix, hemos podido leer que un cambio en el kernel de Linux (el núcleo del sistema operativo de Steam Deck) podría aumentar significativamente el rendimiento de los juegos en la handheld PC de Valve y en Linux en general.
Un cambio en Linux que afecta Wine, los cimientos de Proton y SteamOS
El cambio propuesto para el núcleo de Linux afectaría de manera directa a cómo funciona Wine al hacer la «traducción» de los juegos de Windows a Linux y teniendo en cuenta que esto es base para que juguemos en Steam Deck… es realmente prometedor.
Este cambio, según los que lo han propuesto, afectaría a la reproducción de juegos de forma drástica, llegando a aumentar los títulos su rendimiento entre un 20 y un 600% su rendimiento como vemos en las pruebas que han hecho.
Como puedes ver en el cuadro que han compartido, en la columna Upstream vemos cómo funciona ahora y en la columna NTSYNC vemos cómo mejoraría con este cambio en FPS.
La máquina usada para ver esto no es una Steam Deck, por lo que lo más interesante es ver el aumento porcentual de FPS que se consigue con este cambio.
Ahondando en la explicación de los desarrolladores
Os dejo aquí las palabras de los desarrolladores que, aunque pueda parecer complejo de entender, más o menos nos podemos hacer una de primera mano de lo que quieren conseguir con todo esto:
Esta serie de parches presenta un nuevo controlador char misc, /dev/ntsync, que se utiliza para implementar primitivas de sincronización de Windows NT.
El proyecto Wine emula la API de Windows en el espacio del usuario. Una parte particular de
esa API, es decir, las primitivas de sincronización NT, históricamente se han implementado a través de RPC en un proceso «kernel» dedicado. Sin embargo, las aplicaciones más recientes utilizan estas API con mayor intensidad y la sobrecarga de RPC se ha convertido en un cuello de botella.Las API de sincronización de NT son demasiado complejas para implementarlas sobre las primitivas existentes sin sacrificar la corrección. Ciertas operaciones, como NtPulseEvent() o el modo «esperar a todos» de NtWaitForMultipleObjects(), requieren control directo sobre la cola de espera subyacente y no es posible implementar una cola de espera suficientemente robusta para Wine en el espacio del usuario. Por lo tanto, este controlador propuesto implementa las interfaces problemáticas directamente en el kernel de Linux
Extracto de los comentarios de Zeb Figura de CodeWeavers y recogidas por el portal Gaming On Linux.
De momento toca esperar a ver qué pasa y si finalmente lo veremos en la próxima actualización del núcleo de Linux o en próximas versiones, pero esperemos que los resultados finales sean así de positivos y que Valve lo implemente lo antes posible tras su lanzamiento para potenciar aún más el rendimiento en nuestra handheld PC favorita.
Puedes consultar más información en la presentación de Zeb Figura sobre este tema: