Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
vulkan [2018/09/13 13:57] – [Explications] typos & cosmétique alexvulkan [2019/05/26 11:58] (Version actuelle) – [Procédure] Typos + VKCUBE sous linux + précisions MESA alex
Ligne 2: Ligne 2:
 \\ \\
 \\ \\
-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.\\ +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. Il est bon d'avoir les connaissances de base d'utilisation de Play on Linux tels que décrit ici :\\ [[http://www.gamersonlinux.com/forum/threads/playonlinux-explained-wine-versions-manager.261/]]\\ 
-\\ +====Procédure==== 
-**1.** Installer Vulkan :+ 
 +**1.** Installer **Vulkan** :
 <code> <code>
 sudo apt update sudo apt update
-sudo apt install libvulkan1 libvulkan-dev vulkan-utils+sudo apt install libvulkan1 libvulkan-dev vulkan-tools
 </code> </code>
 +(25 oct 2018 : **vulkan-utils** a été remplacé par **vulkan-tools**)
  
-**2.** Mesa récent __impératif__ donc ajout du dépôt des dernières versions :+**2.** **Mesa** récent __impératif__ pour les pilotes libres (intel, nouveau, AMD) + **Mesa Vulkan** donc ajout du dépôt des dernières versions sinon pour les pilotes propriétaires passer à l'étape :
 <code> <code>
 sudo add-apt-repository ppa:oibaf/graphics-drivers sudo add-apt-repository ppa:oibaf/graphics-drivers
 sudo apt update sudo apt update
 sudo apt upgrade sudo apt upgrade
 +sudo apt install mesa-vulkan-drivers
 </code> </code>
  
-**3.** Pilotes Mesa Vulkan : +**3.** **Pilotes propriétaires NVIDIA** avec gestion de Vulkan donc ajout du dépôt proposant les versions récentes et installation de ces dernières :
-<code> +
-sudo apt install mesa-vulkan-drivers +
-</code> +
-**4.** Pilotes NVIDIA avec gestion de Vulkan donc ajout du dépôt proposant les versions récentes et installation de ces dernières :+
  
 <code> <code>
Ligne 29: Ligne 28:
 </code> </code>
 <WRAP center round important 60%> <WRAP center round important 60%>
-Vérfier la version des pilotes et si besoin installer les pilotes avec une version égale ou supérieure à 396.51, les pilotes de la branche 390 et inférieures **NE fonctionneront PAS** avec Vulkan !+Vérifier la version des pilotes et si besoin installer les pilotes propriétaires NVIDIA avec une version égale ou supérieure à 396.51, les pilotes de la branche 390 et inférieures **NE fonctionneront PAS** avec Vulkan !
 </WRAP> </WRAP>
  
-**5.** Installer Play on Linux & Winetricks :+**4.** 
 +C'est une bonne idée de tester tout de suite si Vulkan est fonctionnel sur la machine hôte linux en tapant dans la console 
 +<code>vkcube</code> 
 +Une fenêtre devrait s'ouvrir et afficher un cube en rotation. Dans le cas contraire redémarrer et tester à nouveau. Si cela ne  fonctionne toujours pas reprendre depuis le début. 
 + 
 + 
 + 
 +**5.** Installer **Play on Linux** **Winetricks** :
  
 <code> <code>
Ligne 41: Ligne 47:
 Une vieille version de Wine sera installée aussi en dépendance mais on ne s'en préoccupe pas. 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 :+**6.** Récupérer une version de **WINE** compatible Vulkan :
  
 <code> <code>
-wget https://lutris.net/files/runners/wine-esync-3.14-x86_64.tar.gz +wget https://lutris.nyc3.digitaloceanspaces.com/runners/wine/wine-esync-staging-pba-3.17-x86_64.tar.gz 
-unzip wine-esync-3.14-x86_64.tar.gz -d $HOME/.PlayOnLinux/wine/linux-amd64+unzip wine-esync-staging-pba-3.17-x86_64.tar.gz -d $HOME/.PlayOnLinux/wine/linux-amd64
 </code> </code>
 <WRAP center round important 60%> <WRAP center round important 60%>
-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+Le dépôt https://lutris.net/files/runners/ n'est PLUS utilisable, depuis fin septembre 2018.\\ https://github.com/Kron4ek/Wine-Builds/releases est la nouvelle référence qui propose les versions stagging+esync+pba(lorsqu'elle est fonctionnelle) en x86 & amd64. 
 </WRAP> </WRAP>
  
-**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 :+**7.** Lancer **PoL** -> Tools -> manage Wine versions -> Wine version (amd64) et vérifier qu'elle est listée, la sélectionner, puis fermer la fenêtre de gestion des versions.\\ 
 + 
 +**8.** Installer un jeu DirectX 11, par exemple **Path of Exile** que nous utiliserons par la suite :
 <code> <code>
 wget https://web.poecdn.com/downloads/PathOfExileInstaller.exe wget https://web.poecdn.com/downloads/PathOfExileInstaller.exe
Ligne 62: Ligne 71:
 **11.** Dans **PoL** cliquer sur le **gros engrenage** avec dessous **CONFIGURE**, sous **Help**\\ **11.** Dans **PoL** cliquer sur le **gros engrenage** avec dessous **CONFIGURE**, sous **Help**\\
 \\ \\
-**12.** Sélectionner //Path_of_Exile// dans la liste, onglet **GENERAL** -> **Wine version**, vérifier que //wine-esync-3.14-x86_64// est bien attribué à PoE\\+**12.** Sélectionner //Path_of_Exile// dans la liste, onglet **GENERAL** -> **Wine version**, vérifier que //wine-esync-3.14-x86_64// est bien attribué à PoE et que l'exécutable est bien //PathOfExile_x64//\\
 \\ \\
 **13.** Placer dans le champ **Arguments** : **13.** Placer dans le champ **Arguments** :
Ligne 70: Ligne 79:
 **14.** Onglet **Miscellaneous** -> dans le champs **Commands to exec before running the program** mettre : **14.** Onglet **Miscellaneous** -> dans le champs **Commands to exec before running the program** mettre :
 <code> <code>
-export DXVK_HUD=devinfo,fps+export DXVK_HUD=devinfo,fps,memory,version 
 +export DXVK_USE_PIPECOMPILER=1 
 +export WINEESYNC=1 
 +export CSMT=enabled 
 +export DXVK_ASYNC=1 
 +export __GL_YIELD=NOTHING
 </code> </code>
 +L'optimisation **export LD_PRELOAD="libpthread.so.0 libGL.so.1" et GL_THREADED_OPTIMIZATIONS=1** souvent conseillée n'est valide que pour OpenGL or nous voudrons employer Vulkan, nul besoin de placer une optimisation rendue inutile quelques étapes plus loin.
 +
 **15.** Onglet **Display** -> **GLSL support** désactivé, **Video Memory Size** 2048 puis fermer la fenêtre, les changement seront directement pris en compte.\\ **15.** Onglet **Display** -> **GLSL 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.\\+**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, confirmant que le jeu fonctionne en DX9 et que nous pouvons continuer. Fermer alors le jeu.\\
 \\ \\
 **17.** Taper dans la console : **17.** Taper dans la console :
Ligne 82: Ligne 98:
 **18.** Charger les librairies de conversion **DXVK** 0.70 ou supérieures pour le PoE sous Wine et les installer avec Winetricks : **18.** Charger les librairies de conversion **DXVK** 0.70 ou supérieures pour le PoE sous Wine et les installer avec Winetricks :
 <code> <code>
-wget https://github.com/doitsujin/dxvk/releases/download/v0.70/dxvk-0.70.tar.gz +wget https://github.com/doitsujin/dxvk/releases/download/v0.71/dxvk-0.71.tar.gz 
-unzip dxvk-0.70.tar.gz +unzip dxvk-0.71.tar.gz 
-cd dxvk-0.70 +cd dxvk-0.71 
-winetricks setup_dxvk.verb+winetricks --force setup_dxvk.verb
 </code> </code>
-L'étape 17 est essentielle parce qu'elle défini dans quel système seront installées les librairies DXVK.\\+**L'étape 17 est essentielle** parce qu'elle défini dans quel système seront installées les librairies **DXVK** via **Winetricks**.\\
 Il y aura des messages venant de **WINE**, refuser l'installation de **Gecko** et **MONO** qui ne servent à rien ici. Il y aura des messages venant de **WINE**, refuser l'installation de **Gecko** et **MONO** qui ne servent à rien ici.
-<WRAP center round important 90%>Si il y a eu l'installation  d'une version antérieure à 0.70 de **dxvk** il faudra aller dans  +<WRAP center round important 90%>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**+//$HOME/.PlayOnLinux/wineprefix/Path_of_Exile/drive_c/windows/system32// ainsi que dans //syswow64// et retirer TOUS les SYMLINKS AVANT d'exécuter Winetricks **sinon l'opération échouera SANS message d'erreur**
 </WRAP> </WRAP>
-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//\\+Si besoin pour installer les librairies DLL manuellement il faut prendre celles dans //dxvk-0.71/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.\\ Note : l'étape 17 permet à Winetricks de savoir dans quel système installer les DLL ad-hoc.\\
  
Ligne 104: Ligne 120:
 **21.** Lancer **PoE** et aller dans les **OPTIONS**, sélectionner DirectX 11 dans le champs **DirectX version**. Redémarrer\\ **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.\\+**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, le nombre d'images par seconde, la quantité de mémoire vidéo utilisée et la version de VULKAN utilisée.\\ 
 +<WRAP center round important 60%> 
 +Si la version de **VULKAN** ne correspond pas à celle attendue, par exemple une mise à jour effectuée mais le système emploie toujours la version précédente, se référer à l'installation manuelle de l'étape 18 cette fois-ci en effaçant les fichiers de la version ancienne de VULKAN situés dans //system32// et //syswow64// avant de les remplacer par les nouveaux: d3d10.dll, d3d10_1.dll, d3d10core.dll, d3d11.dll, dxgi.dll 
 +</WRAP> 
 \\ \\
-**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**.+**23.** Dans les **OPTIONS** mettre **ENGINE MULTITHREADING** sur **Disabled** (au début tout au moins, quelquefois cela stabilise les images par secondes lors des scenes chargées mais d'autres fois cela fait baisser la moyenne c'est donc à tester selon les configurations)   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**. Depuis peu PoE permet en DX11 d'utiliser une gestion de l'illumination globale pour les gestion des lumières et ombres, succinctement par l'inclusion d'un shader englobant tout l'écran, mais avec une perte important du taux d'images par seconde, de l'ordre de 2 à 4 fois, donc réservé à des cartes assez puissantes (>750Ti).
  
 <WRAP center round info 20%> <WRAP center round info 20%>
 BON JEU ! BON JEU !
 </WRAP> </WRAP>
 +\\
 <WRAP center round important 80%> <WRAP center round important 80%>
 Si le jeu ne fonctionne pas il faut tester si Vulkan fonctionne déjà avec la version de Wine employée Si le jeu ne fonctionne pas il faut tester si Vulkan fonctionne déjà avec la version de Wine employée
Ligne 124: Ligne 144:
 </code> </code>
 **NOTE** : il est important de lancer cube.exe depuis son répertoire avec ses ressources sinon il produit une erreur. **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 tout se passe bien une fenêtre s'ouvre et présente un cube en rotation.
 <WRAP center round alert 60%> <WRAP center round alert 60%>
 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**__ 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**__
Ligne 176: Ligne 196:
 ====NOTES==== ====NOTES====
 Attention en spécifiant que l'OS est Windows 10 il est possible que certains jeux ( World of Tanks notamment ) se lancent EXCLUSIVEMENT en DIRECTX 11 et donc plantent dès l'accès aux menus sans messages d'erreur si VULKAN, DXVK et Wine Staging ne sont pas déjà installés et utilisés. Rien de rédhibitoire mais il faut y penser plutôt que de passer des heures dessus ou de décréter que ça ne marche pas.\\ Attention en spécifiant que l'OS est Windows 10 il est possible que certains jeux ( World of Tanks notamment ) se lancent EXCLUSIVEMENT en DIRECTX 11 et donc plantent dès l'accès aux menus sans messages d'erreur si VULKAN, DXVK et Wine Staging ne sont pas déjà installés et utilisés. Rien de rédhibitoire mais il faut y penser plutôt que de passer des heures dessus ou de décréter que ça ne marche pas.\\
 +\\
 +Il faut aussi pour permettre à la fonction **ESYNC** de fonctionner convenablement éditer (avec sudo) :\\
 +**/etc/systemd/system.conf**\\
 +**/etc/systemd/user.conf**\\ 
 +Et rajouter dans chaque, à la fin  :\\
 +**DefaultLimitNOFILE=1048576**\\
 +
 +[[https://github.com/lutris/lutris/wiki/How-to:-Esync]]