Noticias

DXVK 3.0 trae muchas mejoras para juegos de Windows en Linux/SteamOS.

Cambios en el compilador de sombreadores

DXVK ahora usa dxbc-spirv para la compilación de sombreadores, reemplazando el código de traducción de sombreadores heredado para todos los modelos de sombreadores compatibles. Esto elimina una serie de problemas que antes eran imposibles de resolver:

  • Problemas con el renderizado en juegos, causados ​​ya sea porque los juegos dependen de un comportamiento indefinido o porque FXC genera código incorrecto en algunos casos, como se muestra en la figura. Postal: daño cerebral (#3488) y Motonieve (Ver Mesa Edición #13251).
  • El código generado es más compacto que el código SPIR-V simplemente convertido, lo que reduce significativamente la huella de memoria de DXVK. en juegos como supervisión o dios de la guerraesto puede ahorrar aproximadamente 1 GB de memoria del sistema.
  • La compilación de sombreadores ahora se ha trasladado por completo a los subprocesos de trabajo, lo que puede reducir los tiempos de inicio en juegos como dias pasados Y Final Fantasy XIVo en algunos casos reducir la tartamudez. Anteriormente, DXVK realizaba la traducción SPIR-V en el subproceso de la aplicación y solo compilaba canalizaciones Vulkan reales en procesos de trabajo.
  • La propia representación intermedia de DXVK de los sombreadores compilados ahora se almacena en caché internamente en el disco. AppData/Local directorio del prefijo Wine actual. Esto es necesario porque el tiempo de compilación ha aumentado en comparación con el compilador anterior. La ruta del caché se puede cambiar usando una variable de entorno. DXVK_SHADER_CACHE_PATH.

@K0bin implementó la compatibilidad con Shader Model 1-3 para D3D9.

Nota: Excepto en casos extremos especiales, el nuevo compilador No Se espera que el rendimiento general mejore.
Para desarrolladores: al realizar cambios en el compilador de sombreadores, instale DXVK_SHADER_CACHE=0 para evitar cargar sombreadores obsoletos.

Montones de asas

Nueva expansión de Vulcano VK_EXT_descriptor_heap ahora es el valor predeterminado en los controladores que lo admiten.

En comparación con la antigua implementación del modelo vinculante basado en VK_EXT_descriptor_bufferSe espera que este nuevo modelo alcance aproximadamente el mismo nivel de rendimiento relacionado con la CPU y al mismo tiempo reduzca la penalización de rendimiento relacionada con la GPU que se observa en las GPU de Nvidia. Por lo tanto, la ruta del búfer de descriptor introducida en DXVK 2.7 está obsoleta y se eliminará en una versión futura.

Nota: Para la versión de controladores Nvidia 595.84 Esta característica requiere una versión más reciente o superior. Esta función está deshabilitada en controladores más antiguos debido a problemas de rendimiento. DXVK imprimirá un mensaje de registro. info: Binding model: Descriptor heap si se utiliza la extensión.

Cambios D3D9

Transportador de función fija

Para emular el canal de función fija heredado que permite que los juegos D3D8 y D3D9 se rendericen sin sombreadores, DXVK generó previamente un código de sombreado nativo sobre la marcha según el estado del canal. En algunos juegos, por ejemplo. Torneo irreal 2004Esto puede provocar un retraso notable incluso después de largos períodos de juego.

Para solucionar este problema, DXVK ahora implementa una canalización de funciones fijas en forma de un par de ubershaders para los cuales se compilan variantes optimizadas en segundo plano cuando el juego establece varias configuraciones de funciones fijas. Consulte PR #5192 para obtener más información.

Optimización de la carga del búfer

Para igualar mejor el comportamiento de Windows, varios tipos de buffers que anteriormente estaban ubicados directamente en VRAM ahora se cargan bajo demanda, y se ha implementado una estrategia de limitación de RAM que corrige fallas relacionadas con el espacio de direcciones en varios juegos D3D9 de 32 bits. Consulte PR #5350 para obtener más detalles.

Nota: Estos cambios también pueden mejorar el rendimiento en sistemas sin una BAR de tamaño variable en juegos como GTA IV.

Estado de renderizado de muestreo múltiple

En sistemas que soportan suficientemente VK_EXT_sample_locations Y VK_EXT_extended_dynamic_state3, D3DRS_MULTISAMPLEANTIALIAS El estado de renderizado ahora funciona correctamente, lo que permite que las aplicaciones utilicen la rasterización de una sola muestra al renderizar en destinos de renderizado de múltiples muestras. Esto soluciona problemas de representación de la interfaz de usuario en Año 1701 (#1415), Escuadrón de Asalto «Hombres de Guerra» (#4946) y problemas similares en otros juegos con MSAA habilitado.

Otros cambios

Recursos compartidos

Los recursos compartidos ahora funcionan con la implementación original de Wine y ya no requieren correcciones específicas de Proton. (PR N° 5257).

La ruta heredada seguirá funcionando por ahora para no dañar innecesariamente las versiones anteriores de Proton, pero probablemente se eliminará en una versión futura.

Limitador de velocidad de fotogramas

variable de entorno DXVK_FRAME_RATE Para habilitar esto, se eliminó el limitador de velocidad de fotogramas incorporado. En su lugar, se recomienda a los usuarios que utilicen limitadores externos como Gamescope o Mangohud, que suelen proporcionar una experiencia más fluida.

Los usuarios que deseen seguir utilizando el limitador incorporado pueden utilizar la opción de configuración. dxvk.maxFrameRate = n.

Corrección de errores y mejoras.

  • Se corrigieron varios problemas menores de validación de Vulkan.
  • Se corrigieron varios problemas con el procesamiento de vértices del software en D3D8/9, incluidos juegos como Vietcong o yo soy el dragón. (PR N° 5656)
  • Se corrigieron cálculos de niebla incorrectos con la función fija D3D8/9 en algunos casos. Afecta Perros de mar. (#5165)
  • Si el conductor lo apoya, VK_EXT_border_color_swizzle ahora se usa para corregir el comportamiento del color del borde para varios formatos de textura D3D9 emulados. (N° 5388, PR N° 5390)
  • Se redujo la sincronización innecesaria de GPU, lo que permite la superposición entre múltiples pases de renderizado independientes, así como pases de renderizado del sombreador de cálculo. Esto es especialmente efectivo en sistemas que soportan VK_KHR_unified_image_layoutsy puede mejorar el rendimiento de la GPU en juegos como Rally de barro 2.
  • La cola de transferencia asíncrona ahora se usa de manera más agresiva para cargar recursos en VRAM. (PR N° 5713)
  • Ahora se admite la funcionalidad de vinculación de clases D3D11. No se sabe que ningún juego utilice esta función, pero algunas aplicaciones de demostración que sí la utilizan ahora deberían funcionar.
  • Se optimizaron varias rutas de código D3D9 comunes para reducir la carga de la CPU. Esto ayuda a juegos como Residente malvado 6.
  • Carga optimizada de constantes de sombreador D3D9 para reducir el uso de memoria y mejorar el rendimiento. (PR N° 5686, N° 5689)
  • DXVK ya no falsificará el ID de proveedor de la GPU Intel a través de DXGI para los juegos enviados con XeSS 2. Esta suplantación solo era necesaria para versiones anteriores de XeSS, pero ha comenzado a causar problemas con varios juegos D3D12.
  • bioshock infinito: Se solucionó un problema de larga data por el cual el juego se quedaba sin grupos de muestras y comenzaba a parpadear. (PR N° 5376)
  • Tierra fronteriza 2: Se corrigió el parpadeo del césped cuando el filtrado anisotrópico estaba habilitado. (N° 5441, PR N° 5549)
  • Colin McRae Rally 3: solucione problemas de renderizado con SilentPatch. (N° 4803, PR N° 5213)
  • Fallout Nueva Vegas: Se solucionó el problema de resolución de profundidad en algunas modificaciones. (#5665)
  • Insurgencia y Counter-Strike: Ofensiva global: Se corrigió un error en el motor que provocaba que faltaran texturas. (PR N° 5602)
  • saltar al espacio: Se corrigió un caso de comportamiento indefinido que causaba que aparecieran artefactos alrededor de objetos en ciertas escenas.
  • Max Payne: Se solucionó un problema al iniciar el juego con más de un monitor conectado. (PR N° 5221)
  • Magnate ferroviario 3: Se solucionaron problemas con las peleas Z en el terreno. (#4114)
  • Sangre fría: Cuentos de hombres lobo: Se corrigieron varios problemas con la iluminación fija.
  • Célula astilla 4: Se resolvió un problema que causaba que el juego se mostrara incorrectamente al detectar GPU AMD. (#5729)
  • Sims 3: Se resolvió un problema por el cual el juego reducía intencionalmente la calidad de las sombras en las tarjetas AMD.
  • Guerra Total: Faraón: Se corrigió un error en el juego que causaba que el menú principal parpadeara y también solucionó un problema importante de rendimiento causado por un código de sombreado cuestionable cuando se habilitaba MSAA. (PR N° 5517)
  • Bruja en la noche santa: Se corrigieron las sombras desplegables en la galería que no se mostraban correctamente. (#3785)
  • mundo de fantasía final: Se resolvió un problema por el cual el juego elegía intencionalmente no mostrar el agua y el cabello de algunos personajes al detectar una GPU AMD.

Soporte al conductor

Muchas funciones y extensiones agregadas a Vulcano 1.4 Ahora necesario. En la práctica, esto significa que ejecutar DXVK ahora también requiere un controlador que sea lo suficientemente reciente como para admitir Vulkan 1.4. La página de soporte al conductor se ha actualizado en consecuencia.

No es gran cosa, sólo asegúrese de que sus controladores no estén desactualizados por algunos años.

RDNA1/2 en Windows

Si bien esta versión generalmente funciona, el controlador AMD de Windows para estas GPU ya no recibe actualizaciones de funciones, solo puede usar un modelo de enlace heredado lento y sufre graves problemas de rendimiento que No lo he visto en ningún otro conductor.. Los usuarios afectados deberían seguir con DXVK 2.x o considerar migrar a Linux.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba