La nueva versión de DXVK 1.4 con Direct3D 1.4 y solución para algunos juegos
Se acaba de anunciar la nueva versión 1.4 de la capa DXVK que proporciona la implementación de DXGI (DirectX Graphics Infrastructure), Direct3D 10 y Direct3D, trabajando a través de la traducción de llamadas a la API de Vulkan.
DXVK se puede usar para ejecutar aplicaciones y juegos 3D en Linux usando Wine, actuando como una alternativa de mayor rendimiento a la implementación de Direct3D 11 integrada en Wine que se ejecuta sobre OpenGL. En algunos juegos, el rendimiento del paquete Wine + DXVK difiere del lanzamiento en Windows en solo un 10-20%, mientras que cuando se usa la implementación Direct3D 11 basada en OpenGL, el rendimiento disminuye de manera más significativa.
Principales novedades de DXVK1.4
En esta entrega de DXVK la interfaz del software Direct3D 11 se ha actualizado a la versión 11.4, ofrecida en la última actualización de Windows 10 (1903). El soporte para D3D11.3 resolvió los problemas con el lanzamiento del juego Plants vs Zombies – Battle for Neighbourville.
Las nuevas API propuestas en D3D11.4 se implementan parcialmente y cubren solo las características que se pueden implementar además de la funcionalidad Vulkan existente.
La interfaz DXGI se ha actualizado a la versión 1.5, en la que es posible probar el soporte HDR, pero aún no se admite la salida directa al modo HDR. Se implementaron métodos para la interacción de DXGI con GDI, lo que permitió ajustar la interfaz para iniciar Rockstar Game Launcher (además, se requiere una corrección de errores en Direct2D de Wine).
De forma predeterminada, la opción d3d11.allowMapFlagNoWait está habilitada, lo que mejora el rendimiento de algunos juegos. Los problemas observados anteriormente que impidieron el lanzamiento del juego Witcher 3 se han eliminado, y el comportamiento de sincronización está cerca del controlador D3D11 original.
Se corrigieron posibles problemas de rendimiento en juegos que usan activamente contextos diferidos. Por ejemplo, problemas con los juegos Dark Souls III y Sekiro: Shadows Die Twice.
Proporciona un seguimiento más preciso de los recursos, lo que le permite reducir ligeramente la carga en la CPU.
¿Cómo añadir el soporte de DXVK?
DXVK requiere de la última versión estable de Wine para ejecutarse. Por lo que, si no cuentas con este instalado, puedes visitar el siguiente enlace en donde te mostramos a cómo hacerlo.
Ahora solo tendremos que descargar el último paquete estable de DXVK, este lo encontramos en el siguiente enlace. El paquete lo podremos descargar con ayuda del comando wget. En una terminal vamos a teclear el siguiente comando:
wget https://github.com/doitsujin/dxvk/releases/download/v1.4/dxvk-1.4.tar.gz
Después de haber realizado la descarga ahora vamos a descomprimir el paquete recién obtenido, esto lo pueden hacer con desde su entorno de escritorio o desde la misma terminal ejecutando en el siguiente comando:
tar -xzvf dxvk-1.4.tar.gz
Después accedemos a la carpeta con:
cd dxvk-1.4
Y ejecutamos el comando sh para ejecutar el script de instalación:
sudo sh setup-dxvk.sh install
Gracias a un nuevo script de Bash es posible usar Wine DXGI en lugar de la implementación provista por DXVK.
Para hacer esto, debe dar el siguiente comando:
setup-dxvk.sh install --without-dxgi
Cuando se instale DXVK en un prefijo de Wine. La ventaja es que se puede usar Wine vkd3d para juegos D3D12 y DXVK para juegos D3D11.
Además, la nueva secuencia de comandos le permite instalar la dll como enlaces simbólicos, lo que facilita la actualización de DXVK para obtener más prefijos de Wine (puede hacerlo a través del comando –symlink).
Un método más sencillo es solo copiar las dll en el directorio de Wine. Como sabrán PlayOnLinux como Crossover hacen uso de Wine también. Por lo que por cada aplicación o juego suelen crear una botella con “drive_c/windows” Aquí deberán revisar su sistema un poco mas a fondo.
Como verán la carpeta de DXVK contiene otras dos que son las dll para 32 y 64 bits estas las vamos a colocar de acuerdo a las siguientes rutas.
En donde “usuario” lo remplazas por el nombre de usuario que utilizas en tu distribución de Linux.
Para 64 bits las colocamos en:
~/.wine/drive_c/windows/system32/
O
/home/”usuario”/.wine/drive_c/windows/system32/
Y para 32 bits en:
~/.wine/drive_c/windows/syswow64
O
/home/”usuario”/.wine/drive_c/windows/system32/