Lanzamiento de DXVK 3.0

Después de seis meses de desarrollo, se ha lanzado una nueva versión de DXVK (Capa de Traducción de Direct3D a Vulkan), una biblioteca de código abierto que convierte llamadas a la API Direct3D 8, 9, 10 y 11 en comandos Vulkan. Permite ejecutar aplicaciones y juegos en 3D, diseñados para Windows, en sistemas donde falta el soporte nativo de Direct3D, aprovechando las capacidades de un API gráfica más eficiente como Vulkan.

Principales cambios
En la nueva versión, se ha realizado la transición al uso de especificaciones y extensiones Vulkan 1.4, lo que requerirá un controlador compatible.

DXVK ahora utiliza dxbc-spirv para compilar shaders para todos los modelos de shaders compatibles. Esto resuelve varios problemas que antes no podían ser solucionados:
Problemas de renderizado en juegos, causados ya sea por la dependencia de los juegos en un comportamiento indefinido o porque FXC en algunos casos genera código incorrecto, como en Postal: Brain Damaged, Snowrunner.
El código generado es más compacto que el simple código convertido a SPIR-V, lo que reduce significativamente la cantidad de memoria ocupada por DXVK. En juegos como Overwatch o God of War, esto permite ahorrar alrededor de 1 GiB de memoria del sistema.
La compilación de shaders ahora se ha trasladado completamente a hilos de trabajo, lo que puede reducir el tiempo de carga en juegos como Days Gone y Final Fantasy XIV, o en algunos casos disminuir los tiempos de espera. Anteriormente, DXVK realizaba la traducción de SPIR-V en el hilo de la aplicación y compilaba únicamente los verdaderos pipelines Vulkan en hilos de trabajo.
La representación intermedia de los shaders compilados de DXVK ahora se almacena en caché en el disco dentro del directorio AppData/Local del prefijo Wine actual. Esto es necesario, ya que el tiempo de compilación ha aumentado en comparación con el antiguo compilador. La ruta de la caché se puede cambiar mediante la variable de entorno DXVK_SHADER_CACHE_PATH.

La nueva extensión de Vulkan VK_EXT_descriptor_heap ahora se utiliza por defecto en los controladores que la soportan.
Se espera que, en comparación con la implementación anterior del modelo de enlace basada en VK_EXT_descriptor_buffer, este nuevo modelo proporcione aproximadamente el mismo nivel de rendimiento relacionado con la CPU, evitando al mismo tiempo la reducción del rendimiento en GPU Nvidia (se requiere nvidia-drivers-595.84 o superior).
Cambios en D3D9
Para emular una antigua canalización de funciones fijas que permite a los juegos D3D8 y D3D9 renderizar sin sombreadores, DXVK anteriormente generaba su propio código de sombreadores sobre la marcha, basado en el estado de la canalización. En algunos juegos, como Unreal Tournament 2004, esto podía provocar notables caídas de rendimiento incluso después de largos períodos de juego.

Para solucionar esto, DXVK ahora implementa la canalización de funciones fijas en forma de un par de uber-sombreadores, para los cuales se compilan versiones optimizadas en segundo plano.
Optimización de la carga de buffers
Para alinearse más con el comportamiento de Windows, varios tipos de buffers que antes se colocaban directamente en la VRAM ahora se cargan bajo demanda, y también se ha implementado una estrategia para limitar la cantidad de memoria RAM, que corrige fallas relacionadas con el espacio de direcciones en varios juegos D3D9 de 32 bits.
Estos cambios también pueden mejorar el rendimiento en sistemas sin un tamaño de BAR variable en juegos como GTA IV.

En sistemas que admiten adecuadamente VK_EXT_sample_locations y VK_EXT_extended_dynamic_state3, el estado de renderizado D3DRS_MULTISAMPLEANTIALIAS ahora funciona correctamente, permitiendo a las aplicaciones utilizar rasterización con una sola muestra al renderizar en objetos de renderizado con múltiples muestras. Esto elimina problemas de renderizado de interfaz de usuario en Anno 1701, Men of War: Assault Squad y problemas similares en otros juegos con MSAA habilitado.

Los recursos comunes ahora funcionan con la implementación original de Wine y ya no requieren correcciones específicas para Proton.

También cabe mencionar múltiples correcciones para diferentes juegos, que ahora funcionarán mejor.

Fuente: linux.org.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