Ceci est une ancienne révision du document !


Vulkan sous Linux avec Wine



Cela peut sembler complexe mais finalement cela se révèle assez simple une fois que l'on a saisi le fonctionnement et les impératifs.

1. Installer Vulkan :

sudo apt install libvulkan1 libvulkan-dev vulkan-utils

2. Mesa récent impératif :

sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
sudo apt upgrade

3. Pilotes Mesa Vulkan :

sudo apt install mesa-vulkan-drivers

4. Pilotes NVIDIA avec gestion de Vulkan :

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt upgrade

Si besoin installer les pilotes 396.51, les pilotes de la branche 390 et inférieures NE fonctionneront PAS avec Vulkan !

5. Installer Play on Linux & Winetricks :

wget https://www.playonlinux.com/script_files/PlayOnLinux/4.2.12/PlayOnLinux_4.2.12.deb
sudo dpkg -i PlayOnLinux_4.2.12.deb
sudo apt install winetricks

Une vieille version de Wine sera installée aussi en dépendance mais on ne s'en préoccupe pas.

6. Récupérer une version de WINE compatible Vulkan :

wget https://lutris.net/files/runners/wine-esync-3.14-x86_64.tar.gz
unzip wine-esync-3.14-x86_64.tar.gz -d $HOME/.PlayOnLinux/wine/linux-amd64

Si pas dispo vu l'aspect éphémère prendre la 3.12, PAS la 3.13 qui est bugée. Les versions classiques et stagging officielles de Wine ne conviennent pas car elles se sont pas compilées avec la gestion de Vulkan. Celles de Lutris le sont donc il est possible d'utiliser https://lutris.net/files/runners/wine-staging-3.14-x86_64.tar.gz mais les performances seront moindres car il n'y a pas les optimisations compatibles Vulkan de la version esync

7. Lancer PoL → Tools → manage Wine versions → Wine version (amd64) et vérifier qu'il est listé puis fermer la fenêtre de gestion des versions.
8. Installer un jeu DirectX 11, par exemple Path of Exile :

wget https://web.poecdn.com/downloads/PathOfExileInstaller.exe

9. File → install → install a non-listed programm → OS 64 bits, sélectionner PathOfExileInstaller.exe et suivre les instructions.

10. Indiquer utiliser la version esync-3.14-x86_64 et nommer le système Path_of_Exile. Une fois terminée, pas plus d’icônes/programmes.

11. Dans PoL cliquer sur le gros engrenage avec dessous CONFIGURE, sous Help

12. Sélectionner Path_of_Exile dans la liste, onglet GENERALWine version, vérifier que wine-esync-3.14-x86_64 est bien attribué à PoE

13. Placer dans le champ Arguments :

--waitforpreload --nologo --experimental-frame-optimizations --garbage-generation 2

14. Onglet Miscellaneous → dans le champs Commands to exec before running the program mettre :

export DXVK_HUD=devinfo,fps

15. Onglet DisplayGLSL support désactivé, Video Memory Size 2048 puis fermer la fenêtre, les changement seront directement pris en compte.

16. Lancer PoE pour tester en mode DX9. Si tout se passe bien après une vingtaine de secondes du fait des arguments forçant le préchargement on arrivera à l'écran pour se loger et il fonctionne donc en DX9, fermer alors le jeu.

17. Taper dans la console :

export $WINEPREFFIX=$HOME/.PlayOnLinux/wineprefix/Path_of_Exile

18. Charger les librairies de conversion DXVK 0.70 ou supérieures pour le PoE sous Wine et les installer avec Winetricks :

wget https://github.com/doitsujin/dxvk/releases/download/v0.70/dxvk-0.70.tar.gz
unzip dxvk-0.70.tar.gz
cd dxvk-0.70
winetricks setup_dxvk.verb

Il y aura des messages venant de WINE, refuser l'installation de Gecko et MONO qui ne servent à rien ici.

Si il y a eu l'installation d'une version antérieure à 0.70 de dxvk il faudra aller dans $HOME/.PlayOnLinux/wineprefix/Path_of_Exile/drive_c/windows/system32 et retirer TOUS les SYMLINKS AVANT d'exécuter Winetricks sinon l'opération échouera SANS message d'erreur

Si besoin pour installer les librairies DLL manuellement il faut prendre celles dans dxvk-0.70/x64 (ou toutes version ultérieure) et les placer dans $HOME/.PlayOnLinux/wineprefix/Path_of_Exile/drive_c/windows/system32
Note : l'étape 17 permet à Winetricks de savoir dans quel système installer les DLL ad-hoc.

19. Sous PoL sélectionner Path of Exile, clic droit → Configure Wine. Il peut y avoir de nouveau des fenêtres Wine et des propositions d'installation de Gecko et Mono à refuser.
Onglet Librairies vérifier que d3d10 (native), d3d10_1 (native), d3d10core (native), d3d11 (native), dxgi (native) soient présentes et uniquement celles-ci. Dans le cas contraire retour à l'étape 18.

d3dcompiler_47 pourrait être nécessaire, à tester [EDIT] À priori non

20. Onglet Graphics tout décocher. Puis cliquer sur OK.

21. Lancer PoE et aller dans les OPTIONS, sélectionner DirectX 11 dans le champs DirectX version. Redémarrer

22. Si tout se passe bien PoE se lance en mode VULKAN et donc on voit en haut à gauche le nom de la carte graphique employée, la version du pilote vidéo (396.51 et au-delà), la version des librairies Vulkan et le nombre d'images par seconde.

23. Dans les OPTIONS mettre ENGINE MULTITHREADING sur Disabled et de même pour le VSYNC. Il existe un bug qui se manifeste par un blocage des images par seconde à la fréquence du moniteur comme si le VSYNC était activé alors qu'il ne l'est pas. Dans ce cas pour ne plus en être victime changer le niveau détail de textures dans les options. De même il arrive que certaines zones fassent tomber les images par seconde à 4-5 dans ce cas changer les OMBRES.

BON JEU !

Si le jeu ne fonctionne pas il faut tester si Vulkan fonctionne déjà avec la version de Wine employée

Pour cela charger le test VulkanCube :

wget https://haagch.frickel.club/files/cube-vulkansdk1.0.65.tar.xz
unzip cube-vulkansdk1.0.65.tar.xz
cd cube-vulkansdk1.0.65/
$HOME/.PlayOnLinux/wine/linux-amd64/esync-3.14-x86_64/bin/wine64 cube.exe

NOTE : il est important de lancer cube.exe depuis son répertoire avec ses ressources sinon il produit une erreur. Si tout se passe bien une fenêtre s'ouvre et on voir un cube tourner.

Si ce n'est pas le cas c'est que VULKAN n'est pas opérationnel et donc il FAUT reprendre toutes les étapes depuis le départ

Pour une compatibilité (très limitée) avec DX10 dans d'autres jeux tels Crysis ou Assassin's Creed il est impératif d'installer d3dcompiler_43.dll :

export $WINEPREFFIX=$HOME/.PlayOnLinux/wineprefix/nom_du_jeu_installé
winetricks d3dcompiler_43

Voir https://github.com/doitsujin/dxvk/issues/551