La empresa Valve ha lanzado Proton 4.11, un paquete para ejecutar juegos de Windows en Linux

La empresa Valve ha publicado nueva rama del proyecto Proton 4.11, basado en las contribuciones del proyecto Wine y enfocado en permitir la ejecución en Linux de aplicaciones de juegos creadas para Windows y presentadas en el catálogo de Steam. Contribuciones del proyecto se distribuyen bajo licencia BSD. A medida que esté disponible, se trasladarán al Wine original y a proyectos relacionados, como DXVK y vkd3d, los cambios desarrollados en Proton.

Proton permite ejecutar directamente aplicaciones de juegos en el cliente de Steam para Linux que solo se suministran para Windows. El paquete incluye una implementación de DirectX 10/11 (basada en DXVK) y 12 (basado en vkd3d), que funcionan a través de la traducción de llamadas DirectX en API Vulkan, proporciona un mejor soporte para controladores de juegos y la posibilidad de usar el modo de pantalla completa independientemente de las resoluciones de pantalla admitidas en los juegos. En comparación con el Wine original, se ha incrementado significativamente el rendimiento de los juegos multihilo gracias a la aplicación de los parches “esync» (Sincronización de Eventfd) o «futex/fsync».

Principales cambios en Proton 4.11:

  • Se ha realizado la sincronización con la base de código de Wine 4.11, de la cual se han transferido más de 3300 cambios (la rama anterior se basaba en Wine 4.2). 154 parches de Proton 4.2 se han trasladado a upstream y ahora están incluidos en la base de Wine;
  • Se ha añadido soporte experimental para primitivas de sincronización basadas en la llamada al sistema futex(), lo que permite reducir la carga en la CPU en comparación con esync. Además, la nueva implementación resuelve problemas relacionados con la necesidad de usar configuraciones especiales para esync y el posible agotamiento de los descriptores de archivo disponibles.

    El objetivo del trabajo realizado es ampliar la funcionalidad de la llamada al sistema futex() en el núcleo de Linux con las capacidades necesarias para una sincronización óptima del pool de hilos. Los parches con el soporte necesario para Proton del flag FUTEX_WAIT_MULTIPLE ya transferidas están listos para ser incluidos en la base del núcleo de Linux y Glibc. Los cambios preparados aún no están incluidos en la base del núcleo, por lo que por el momento es necesario instalar un núcleo especial con soporte para estas primitivas;

    La empresa Valve ha lanzado Proton 4.11, un paquete para ejecutar juegos de Windows en Linux
  • La capa DXVK (implementación de DXGI, Direct3D 10 y Direct3D 11 sobre API Vulkan) actualizado a la versión 1.3, y D9VK (implementación experimental de Direct3D 9 sobre Vulkan) a la versión 0.13f. Para habilitar el soporte de D9VK en Proton, se debe usar el flag PROTON_USE_D9VK;
  • Se asegura la transmisión a los juegos de la frecuencia de actualización actual del monitor;
  • Se han realizado correcciones relacionadas con el manejo del enfoque del cursor del ratón y la gestión de ventanas;
  • Se han eliminado los retrasos en la entrada y los problemas de soporte de vibración para los joysticks que se presentan en algunos juegos, especialmente en juegos con motor Unity;
  • Se ha añadido soporte para la última versión de OpenVR SDK;
  • Los componentes FAudio con la implementación de bibliotecas de sonido DirectX (API XAudio2, X3DAudio, XAPO y XACT3) se han actualizado a la versión 19.07;
  • Se han resuelto problemas con el subsistema de red en juegos de GameMaker;
  • Muchos módulos de Wine ahora se compilan como archivos PE de Windows, en lugar de bibliotecas de Linux. A medida que se avanza en este trabajo, el uso de PE ayudará a algunos sistemas DRM y anticheats. En caso de usar compilaciones personalizadas de Proton, será necesario recrear la máquina virtual Vagrant para compilar archivos PE.

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

Con un núcleo que soporte fsync, al iniciar Proton 4.11 aparecerá en la consola el mensaje «fsync: up and running». Se puede desactivar fsync forzadamente utilizando la bandera PROTON_NO_FSYNC=1.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster