He estado rompiéndome la cabeza y después retocando cosillas y he conseguido ejecutar tanto Battle.net como Steam con DXKV y al darle a Jugar (si el juego lo admite) se ejecuta en Vulkan con el DXVK (si no lo admite se ejecuta como siempre).
NOTA: En tarjetas Nvidia tened siempre instalada la última versión de los Developer Beta Drivers propietarios para Vulkan desde este enlace (para tarjetas Geforce 600 para arriba):
https://developer.nvidia.com/vulkan-driver
En el momento de escribir esta NOTA el driver actual es el 418.52.03
Relato lo hecho.
¿Cómo instalar DXVK de forma óptima?
Método:
NUEVO EDIT de OCTUBRE de 1018
Nuevo sistema simplificado para instalarlo.
Si todavía no has instalado DXVK simplemente haz:
Código:
WINEPREFIX=~/.winedxvk winetricks dxvk
Si ya lo tienes instalado y lo quieres actualizar a una nueva versión simplemente haz:
Código:
env WINEPREFIX=~/.winedxvk winetricks --force dxvk
Si quieres ejecutar Battle.net con DXVK usa:
Código:
env DXVK_HUD=1 WINEDEBUG=-all WINEPREFIX=~/.winedxvk wine64 "/home/<tu usuario>/.wine/drive_c/Program Files (x86)/Battle.net/Battle.net.exe"
Si quieres ejecutar Steam con DXVK usa:
Código:
env DXVK_HUD=1 WINEDEBUG=-all WINEPREFIX=~/.winedxvk wine64 "/home/<tu usuario>/.wine/drive_c/Program Files (x86)/Steam/Steam.exe" -no-cef-sandbox
Para ejecutar cualquier otro programa con DXVK usa:
Código:
env DXVK_HUD=1 WINEDEBUG=-all WINEPREFIX=~/.winedxvk wine64 <programa>
DXVK_HUD=1 es para ver arriba a la izquierda tu tarjeta gráfica, driver, versión de Vulkan, versión de DXVK y frames por segundo (fps).
Si no quieres que aparezca cámbialo a DXVK_HUD=0 o borra DXVK_HUD=1 como parámetro.
NOTA: No instaleis nada nunca en el prefijo .winedxvk. Seguid usando para instalar cosas wine <programa> o wine64 <programa> y la ruta de instalación ponedla en ~/.wine/drive_c etc.
NUEVO EDIT de 18 ABRIL de 2019
Me he fijado que winetricks suele tardar en poner disponibles las nuevas versiones. Y algún día podría ser discontinuado (nunca se sabe). Así que he usado un nuevo método que siempre ha estado disponible pero que nunca usé al estar verde en el asunto anteriormente. Método para instalar DXVK:
1. Si es la primera vez que instalas DXVK:
a) Crear Wineprefix para DXVK
Código:
WINEPREFIX=~/.winedxvk winecfg (escoged entre Windows 8.1 y Windows 10 si os saliera por defecto Windows7)
b) Bajar la última Release disponible (o la que gusteis) del Github de DXVK aquí:
https://github.com/doitsujin/dxvk/releases
Escoged para bajar el archivo .tar.gz
c) Una vez bajado descomprimirlo. Accedeis al directorio dxvk que se crea y ejecutais el siguiente comando:
Código:
env WINEPREFIX=~/.winedxvk sh setup_dxvk.sh install
Ya lo teneis todo listo. En el EDIT anterior (encima de este) teneis los comandos para poder ejecutar Steam, Battle.net y cualquier programa, así como recomendaciones sobre no instalar nada en el WINEPREFIX nuevo.
NOTA: Si por cualquier cosa se deseara desinstalar se haría con el siguiente comando desde el directorio DXVK que os creó la descompresión del .tar.gz:
Código:
env WINEPREFIX=~/.winedxvk sh setup_dxvk.sh uninstall
2. Ya tienes DXVK y quieres actualizarlo
Hacer todo lo de la sección 1 (encima) a excepción del paso a (el primero).
Si aún quieres ver como se hacía a mediados de 2018 sigue leyendo para ver el proceso e imágenes de rendimiento.
1. Dependencias
meson 0.43 o superior
Código:
krovikan@linux:~/dxvk/bin> zypper se -iv meson*
E | Nombre | Tipo | Versión | Arquitectura | Repositorio
---+-----------+---------+------------------+--------------+----------------------------
i+ | meson | paquete | 0.46.0-lp150.1.1 | noarch | Repositorio principal (OSS)
name: meson
i | meson-vim | paquete | 0.46.0-lp150.1.1 | noarch | Repositorio principal (OSS)
name: meson-vim
ninja 1.8.2 o superior
Código:
krovikan@linux:~/dxvk/bin> zypper se -iv ninja*
E | Nombre | Tipo | Versión | Arquitectura | Repositorio
--+--------+---------+-----------------+--------------+----------------------------
i | ninja | paquete | 1.8.2-lp150.1.8 | x86_64 | Repositorio principal (OSS)
name: ninja
glslang-devel 3.0 o superior
Código:
krovikan@linux:~/dxvk/bin> zypper se -iv glslang-devel
E | Nombre | Tipo | Versión | Arquitectura | Repositorio
---+---------------+---------+----------------------+--------------+----------------------------
i+ | glslang-devel | paquete | 3.0.g1516-lp150.1.11 | x86_64 | Repositorio principal (OSS)
name: glslang-devel
mingw32 y mingw64
Primero añadir los repositorios con los paquetes:
mingw32: http://download.opensuse.org/reposit...USE_Leap_15.0/
mingw64: http://download.opensuse.org/reposit...USE_Leap_15.0/
Código:
krovikan@linux:~/dxvk/bin> zypper se -i ming*
E | Nombre | Resumen | Tipo
---+------------------------------+-------------------------------------------------------------------+--------
i+ | mingw32-binutils | GNU Binutils | paquete
i+ | mingw32-cpp | MinGW Windows C Preprocessor | paquete
i+ | mingw32-cross-binutils | GNU Binutils | paquete
i | mingw32-cross-breakpad-tools | An open-source multi-platform crash reporting system | paquete
i+ | mingw32-cross-cpp | MinGW Windows cross-C Preprocessor | paquete
i+ | mingw32-cross-gcc | MinGW Windows cross-compiler (GCC) for C | paquete
i+ | mingw32-cross-gcc-c++ | MinGW Windows cross-compiler for C++ | paquete
i | mingw32-filesystem | MinGW base filesystem and environment | paquete
i+ | mingw32-gcc | MinGW Windows compiler (GCC) for C | paquete
i+ | mingw32-gcc-c++ | MinGW Windows compiler for C++ | paquete
i | mingw32-headers | MinGW-w64 headers for Win32 and Win64 | paquete
i | mingw32-libgcc_s_sjlj1 | MinGW Windows compiler for C shared libraries | paquete
i | mingw32-libgmp10 | The GNU MP Library | paquete
i | mingw32-libmpc3 | MPC multiple-precision complex library | paquete
i | mingw32-libmpfr4 | MPFR multiple-precision floating-point computation shared library | paquete
i | mingw32-libwinpthread1 | A pthreads implementation for Windows | paquete
i | mingw32-runtime | MinGW-w64 runtime libraries for Win32 | paquete
i | mingw32-winpthreads-devel | Development files for mingw32-winpthreads | paquete
i | mingw32-zlib1 | Zlib compression library | paquete
i+ | mingw64-binutils | GNU Binutils | paquete
i+ | mingw64-cpp | MinGW Windows C Preprocessor | paquete
i+ | mingw64-cross-binutils | GNU Binutils | paquete
i | mingw64-cross-breakpad-tools | An open-source multi-platform crash reporting system | paquete
i+ | mingw64-cross-cpp | MinGW Windows cross-C Preprocessor | paquete
i+ | mingw64-cross-gcc | MinGW Windows cross-compiler (GCC) for C | paquete
i+ | mingw64-cross-gcc-c++ | MinGW Windows cross-compiler for C++ | paquete
i | mingw64-filesystem | MinGW base filesystem and environment | paquete
i+ | mingw64-gcc | MinGW Windows compiler (GCC) for C | paquete
i+ | mingw64-gcc-c++ | MinGW Windows compiler for C++ | paquete
i | mingw64-headers | MinGW-w64 headers for Win32 and Win64 | paquete
i | mingw64-libgcc_s_seh1 | MinGW Windows compiler for C shared libraries | paquete
i | mingw64-libgmp10 | The GNU MP Library | paquete
i | mingw64-libmpc3 | MPC multiple-precision complex library | paquete
i | mingw64-libmpfr4 | MPFR multiple-precision floating-point computation shared library | paquete
i | mingw64-libwinpthread1 | A pthreads implementation for Windows | paquete
i | mingw64-runtime | MinGW-w64 runtime libraries for Win64 | paquete
i | mingw64-winpthreads-devel | Development files for mingw64-winpthreads | paquete
i | mingw64-zlib1 | Zlib compression library | paquete
git y las dependencias automáticas
wine-staging 3.13 o superior
steam
Los últimos drivers gráficos que hayan salido.
En el caso de las Nvidia, los últimos de la serie 396 que hayan. En mi caso tengo los 396.51 (salidos del horno hace 1 día o 2 y requeridos para la versión actual de DXVK, la 0.64)
2. Instalación de DXVK en un nuevo prefijo de Wine (si usais openSUSE será de 64 bits, el ideal)
2.1 Comenzamos con las DLLs de 32 bits
Código:
cd ~
WINEPREFIX=~/.winedxvk winecfg (escoged Windows10 si os saliera por defecto Windows7)
git clone https://github.com/doitsujin/dxvk.git
cd dxvk
WINEPREFIX=~/.winedxvk meson --cross-file build-win32.txt --prefix ~/dxvk build.w32
cd build.w32
meson configure -Dbuildtype=release
ninja
ninja install
cd ../bin
WINEPREFIX=~/.winedxvk bash setup_dxvk.sh
Ahora tendreis en .winedxvk/drive_c/windows/system32 y .winedxvk/drive_c/windows/syswow 64 2 enlaces simbólicos llamados d3d11.dll y dxgi.dll apuntando a ~/dvxk/bin.
Vamos a hacer lo siguiente:
1. Renombramos ~/dxvk a ~/dxvk32 con:
Código:
mv ~/dxvk ~/dxvk32
2. Borramos .winedxvk/drive_c/windows/system32/d3d11.dll y .winedxvk/drive_c/windows/system32/dxgi.dll (este directorio es para 64bits, esos enlaces no sirven)
Código:
rm ~/.winedxvk/drive_c/windows/system32/d3d11.dll
rm ~/.winedxvk/drive_c/windows/system32/dxgi.dll
3. Borramos .winedxvk/drive_c/windows/syswow64/d3d11.dll y .winedxvk/drive_c/windows/syswow64/dxgi.dll para rehacerlos (recordad que estamos en el directorio de 32bits)
Código:
rm ~/.winedxvk/drive_c/windows/syswow64/d3d11.dll
rm ~/.winedxvk/drive_c/windows/syswow64/dxgi.dll
4. Rehacemos los enlaces simbólicos de syswow64
Código:
ln -s ~/dxvk32/bin/d3d11.dll ~/.winedxvk/drive_c/windows/syswow64/d3d11.dll
ln -s ~/dxvk32/bin/dxgi.dll ~/.winedxvk/drive_c/windows/syswow64/dxgi.dll
Con eso tenemos los enlaces de 32bits (los de syswow64) apuntando al directorio dxvk32 que es donde compilamos las librerías anteriormente (antes llamado dxvk).
2.2 Comenzamos con las DLLs de 64 bits
Código:
cd ~
git clone https://github.com/doitsujin/dxvk.git
cd dxvk
WINEPREFIX=/home/-youruserdir-/.winedxvk meson --cross-file build-win64.txt --prefix /home/-youruserdir-/dxvk build.w64
cd build.w64
meson configure -Dbuildtype=release
ninja
ninja install
Ahora tenemos en dxvk/bin las librerías de 64 bits. Esta vez NO usaremos el script de antes ya que el prefijo .winedxvk ya está configurado con sus DLLs especificadas y que no nos interesa sobreescribir los enlaces a las librerías de 32bits del paso anterior)
Vamos a hacer lo siguiente:
1. Renombramos ~/dxvk a ~/dxvk64 con:
Código:
mv ~/dxvk ~/dxvk64
2. Rehacemos los enlaces simbólicos de system32 (directorio de 64bits)
Código:
ln -s ~/dxvk64/bin/d3d11.dll ~/.winedxvk/drive_c/windows/system32/d3d11.dll
ln -s ~/dxvk64/bin/dxgi.dll ~/.winedxvk/drive_c/windows/system32/dxgi.dll
Con eso tenemos los enlaces de 64bits (los de system32) apuntando al directorio dxvk64 que es donde compilamos las librerías anteriormente (antes llamado dxvk de nuevo).
Con todo este proceso lo tenemos todo funcional para ejecutar tanto Battle.net como Steam con DXVK (que funcione la tienda y todo lo demás) y que al darle a Jugar, si el juego admite DXVK lo haga de esa forma. Y si no lo hará como siempre.
3. Comprobar que funciona
3.1 Steam
Ejecutar con:
Código:
env DXVK_HUD=devinfo,fps DXVK_FAKE_DX10_SUPPORT=1 WINEDEBUG=-all WINEPREFIX=~/.winedxvk wine64 "/home/<tu usuario>/.wine/drive_c/Program Files (x86)/Steam/Steam.exe" -no-cef-sandbox
Podeis meter todo ese code de antes en el enlace a la aplicación que teneis en el escritorio con click derecho, Propiedades, pestaña Aplicación, campo Orden.
Una vez iniciada la sesión podreis hacer lo que querais (como siempre). Si le dais a jugar a un juego DX10,DX11 o DX12 os saldrá el HUD arriba a la izquierda (esa es la comprobación de que va todo).
Si le dais a Jugar a un juego DX9 os lo ejecutará de manera normal. De todas formas yo tengo 2 enlaces. El Steam de siempre con su orden:
env WINEPREFIX="/home/krovikan/.wine" wine64 C:\\\\windows\\\\command\\\\start.exe "C:\\Program Files (x86)\\Steam\\Steam.exe" -no-cef-sandbox
y un enlace al que le he llamado Steam DXVK que contiene la orden del code de más arriba. Eso me sirve, por ejemplo, porque Dark Souls 2 necesita tener marcada la opción CSMT en el winecfg o no para de parpadear. En el winecfg de .winedxvk esa opción ha de estar desmarcada (de hecho ya viene desmarcada por defecto).
3.2 Battle.net
Ejecutar con:
Código:
env DXVK_HUD=devinfo,fps DXVK_FAKE_DX10_SUPPORT=1 WINEDEBUG=-all WINEPREFIX=~./winedxvk wine64 "/home/<tu usuario>/.wine/drive_c/Program Files (x86)/Battle.net/Battle.net.exe"
Podeis meter todo ese code de antes en el enlace a la aplicación que teneis en el escritorio con click derecho, Propiedades, pestaña Aplicación, campo Orden.
Una vez iniciada la sesión podreis darle a jugar a un juego DX10,DX11 o DX12 y os saldrá el HUD arriba a la izquierda (esa es la comprobación de que va todo).
Si le dais a Jugar a un juego DX9 os lo ejecutará de manera normal.
Aunque los 4 de Blizzard que tengo (World of Warcraft, Diablo 3, HearthStone y Heroes of the Storm) van todos con DXVK (sé por foros que Overwatch también funciona con DXVK).
De todas formas tengo 2 enlaces (por si acaso). El Battle.net de siempre con su orden:
__GL_THREADED_OPTIMIZATIONS=0 __GL_YIELD=NOTHING wine64 "/home/<tu usuario>/.wine/drive_c/Program Files (x86)/Battle.net/Battle.net.exe"
y un enlace al que le he llamado Battle.net DXVK que contiene la orden del code de más arriba.
NOTA: Es posible que no os vaya bien el Battle.net al principio. Si no os va bien borrad ~/.wine/drive_c/users/Public/Application Data/Battle.net y todo su contenido.
Descargad el Battle.net-Setup.exe de vuesta cuenta y reinstalad esa parte del Battle.net.
IMPORTANTE: NUNCA instaleis nada en el prefijo ~/.winedxvk
Cuando tengais que instalar algo lo haceis como siempre. Cuando no especificais prefijo alguno escoge el por defecto ~/.wine (que es cómo lo debeis hacer).
Sólo se especifica el WINEPREFIX=~/.winedxvk para ejecutar un juego o aplicación (Battlet.net o Steam por lo general).
Si os dice en los juegos Instalar, vereis que a la derecha teneis la opción de Localizar juego. Dadle y navegad hasta el directorio del juego y todo listo.
Tendreis que reconfigurar las opciones de ajustes de Battle.net (acordaos de desactivar la aceleración gráfica en el Launcher).
4. Algunas capturas
World of Warcraft sin DXVK:

World of Warcraft con DXVK:


La info de la parte superior izquierda se puede eliminar borrando el parámetro DXVK_HUD=devinfo,fps
El siguiente es Endless Space 2 (en Steam). No me atrae nada el juego pero es DirectX 11 y se podía jugar con él 2 dias este fin de semana (perfecto para mis pruebas):

5 . Actualizar DXVK
Actualizando nos ahoraremos gran parte del proceso.
Tendreis que volver a hacer las compilaciones cuando salga una nueva versión bajándola de nuevo con GIT.
IMPORTANTE: Los dxvk32 y dxvk64 renombradlos a dxvk32-BAK y dxvk64-BAK por ejemplo.
5.1 32 bits
Código:
cd ~
git clone https://github.com/doitsujin/dxvk.git
cd dxvk
WINEPREFIX=~/.winedxvk meson --cross-file build-win32.txt --prefix ~/dxvk build.w32
cd build.w32
meson configure -Dbuildtype=release
ninja
ninja install
Ahora renombrais ese ~/dxvk a ~/dxvk32 y ya tendreis la 1ª parte hecha.
5.2 64 bits
Código:
cd ~
git clone https://github.com/doitsujin/dxvk.git
cd dxvk
WINEPREFIX=~/.winedxvk meson --cross-file build-win64.txt --prefix ~/dxvk build.w64
cd build.w64
meson configure -Dbuildtype=release
ninja
ninja install
Ahora renombrais ese ~/dxvk a ~/dxvk64 y ya tendreis actualizado DXVK.
6. A tener en cuenta
A medida que salen nuevas versiones de DXVK os pueden requerir que actualiceis el driver gráfico. Estad atentos a eso.
Para el proceso que he explicado con wine-staging 3.13 y DXVK 0.64 os hace falta el driver 396.51 en el caso de Nvidia:
https://devtalk.nvidia.com/default/t...iver-releases/
siempre las Current Release (driver 396.x). Nunca los LTS de familia 390.x
7. ¡A disfrutar!
De nuevo gracias a @DiabloRojo por su interés y a cualquiera que haya respondido el hilo.
Con esto ya está lo de DXVK finalizado.
Saludos
PD: Espero no haberme dejado nada en el tintero ni haber hecho erratas.
PD 2: ~ y /home/<usuario> es lo mismo. Sólo que en el segundo habrá que teclear vuestro nombre de usuario en lugar de <usuario>
Marcadores