Valve lanza Proton 4.11, una suite para ejecutar juegos de Windows en Linux

Compañía de válvulas опубликовала nueva rama del proyecto Protón 4.11, basado en los desarrollos del proyecto Wine y destinado a asegurar el lanzamiento de aplicaciones de juegos creadas para Windows y presentadas en el catálogo de Steam en Linux. Desarrollos de proyectos propagar bajo licencia BSD. Tan pronto como estén listos, los cambios desarrollados en Proton se transfieren al Wine original y a los proyectos relacionados, como DXVK y vkd3d.

Proton le permite ejecutar directamente aplicaciones de juegos solo para Windows en el cliente Steam Linux. El paquete incluye una implementación de DirectX 10/11 (basada en Extensión DXVK) y 12 (basado en vkd3d), que funciona mediante la traducción de llamadas DirectX a la API de Vulkan, proporciona soporte mejorado para controladores de juegos y la capacidad de usar el modo de pantalla completa independientemente de las resoluciones de pantalla admitidas en los juegos. En comparación con el Wine original, el rendimiento de los juegos multiproceso ha aumentado significativamente gracias al uso de parches "sincronización"(Sincronización Eventfd) o "futex/fsync".

El principal cambios en Protón 4.11:

  • Se realizó la sincronización con el código base de Wine 4.11, desde el cual se transfirieron más de 3300 cambios (la rama anterior se basó en Wine 4.2). Se han movido 154 parches de Proton 4.2 y ahora están incluidos en el paquete principal de Wine;
  • Se agregó soporte experimental para primitivas de sincronización basadas en la llamada al sistema futex(), lo que reduce la carga de la CPU en comparación con esync. Además, la nueva implementación resuelve problemas con la necesidad de utilizar configuraciones especiales para esync y posible agotamiento de los descriptores de archivos disponibles.

    La esencia del trabajo que se está realizando es ampliar la funcionalidad de la llamada al sistema futex() estándar en el kernel de Linux con las capacidades necesarias para una sincronización óptima del grupo de subprocesos. Ya están disponibles los parches con soporte para el flag FUTEX_WAIT_MULTIPLE necesario para Proton transferido para su inclusión en el kernel principal de Linux y Glibc. Los cambios preparados aún no están incluidos en el kernel principal, por lo que por el momento es necesario establecer un núcleo especial con soporte para estas primitivas;

    Valve lanza Proton 4.11, una suite para ejecutar juegos de Windows en Linux

  • capa intermedia Extensión DXVK (implementación de DXGI, Direct3D 10 y Direct3D 11 sobre la API de Vulkan) actualizado a la versión 1.3Y D9VK (una implementación experimental de Direct3D 9 sobre Vulkan) hasta la versión 0.13f. Para habilitar la compatibilidad con D9VK en Proton, use el indicador PROTON_USE_D9VK;
  • La frecuencia de actualización actual del monitor se transmite a los juegos;
  • Se han realizado correcciones para controlar el enfoque del mouse y la administración de ventanas;
  • Se corrigió el retraso de entrada y los problemas con el soporte de vibración para joysticks que ocurren en algunos juegos, especialmente en juegos basados ​​en el motor Unity;
  • Se agregó soporte para la última versión de OpenVR SDK;
  • Los componentes de FAudio con implementación de bibliotecas de sonido DirectX (API XAudio2, X3DAudio, XAPO y XACT3) se actualizaron a la versión 19.07;
  • Se han resuelto los problemas con el subsistema de red en los juegos de GameMaker;
  • Muchos módulos de Wine ahora se crean como archivos de Windows PE en lugar de bibliotecas de Linux. A medida que avance el trabajo en esta área, el uso de PE ayudará a algunos sistemas DRM y antitrampas. Si utiliza compilaciones personalizadas de Proton, lo más probable es que necesite recrear la máquina virtual Vagrant para compilar los archivos PE.

Antes de que los parches de Valve se adopten en el kernel principal de Linux, usar futex() en lugar de esync requiere instalar un kernel especial con soporte para el grupo de sincronización de subprocesos implementado en un conjunto de parches. fsync. Para Arch Linux en AUR ya publicado Paquete de kernel listo para usar compilado con parches fsync. En Ubuntu 18.04 y 19.04, puede utilizar el PPA del kernel experimental linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Si tiene un kernel con soporte fsync, cuando ejecute Proton 4.11, la consola mostrará el mensaje "fsync: en funcionamiento". Puede forzar la desactivación de fsync usando el indicador PROTON_NO_FSYNC=1.

Fuente: opennet.ru

Añadir un comentario