Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
vulkan [2018/09/06 03:27] – [Explications] Ajout des détails commandes et arguments alex | vulkan [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. |
- | \\ | + | ====Procédure==== |
- | **1.** Installer Vulkan : | + | |
+ | **1.** Installer | ||
< | < | ||
sudo apt update | sudo apt update | ||
- | sudo apt install libvulkan1 libvulkan-dev vulkan-utils | + | sudo apt install libvulkan1 libvulkan-dev vulkan-tools |
</ | </ | ||
+ | (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__ |
< | < | ||
sudo add-apt-repository ppa: | sudo add-apt-repository ppa: | ||
sudo apt update | sudo apt update | ||
sudo apt upgrade | sudo apt upgrade | ||
+ | sudo apt install mesa-vulkan-drivers | ||
</ | </ | ||
- | **3.** | + | **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 : |
- | < | + | |
- | sudo apt install mesa-vulkan-drivers | + | |
- | </ | + | |
- | **4.** Pilotes NVIDIA | + | |
< | < | ||
Ligne 29: | Ligne 28: | ||
</ | </ | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Vérfier | + | Vérifier |
</ | </ | ||
- | **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 | ||
+ | < | ||
+ | Une fenêtre devrait s' | ||
+ | |||
+ | |||
+ | |||
+ | **5.** Installer | ||
< | < | ||
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 : |
< | < | ||
- | wget https:// | + | wget https:// |
- | unzip wine-esync-3.14-x86_64.tar.gz -d $HOME/ | + | unzip wine-esync-staging-pba-3.17-x86_64.tar.gz -d $HOME/ |
</ | </ | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Si pas dispo vu l' | + | Le dépôt |
</ | </ | ||
- | **7.** Lancer **PoL** -> Tools -> manage Wine versions -> Wine version (amd64) et vérifier qu'il est listé | + | |
- | **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, |
+ | |||
+ | **8.** Installer un jeu DirectX 11, par exemple | ||
< | < | ||
wget https:// | wget https:// | ||
Ligne 62: | Ligne 71: | ||
**11.** Dans **PoL** cliquer sur le **gros engrenage** avec dessous **CONFIGURE**, | **11.** Dans **PoL** cliquer sur le **gros engrenage** avec dessous **CONFIGURE**, | ||
\\ | \\ | ||
- | **12.** Sélectionner // | + | **12.** Sélectionner // |
\\ | \\ | ||
**13.** Placer dans le champ **Arguments** : | **13.** Placer dans le champ **Arguments** : | ||
< | < | ||
- | --waitforpreload --nologo | + | --waitforpreload --nologo --garbage-generation 2 |
</ | </ | ||
**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 : | ||
< | < | ||
- | export DXVK_HUD=devinfo, | + | export DXVK_HUD=devinfo, |
+ | export DXVK_USE_PIPECOMPILER=1 | ||
+ | export WINEESYNC=1 | ||
+ | export CSMT=enabled | ||
+ | export DXVK_ASYNC=1 | ||
+ | export __GL_YIELD=NOTHING | ||
</ | </ | ||
+ | L' | ||
+ | |||
**15.** Onglet **Display** -> **GLSL support** désactivé, | **15.** Onglet **Display** -> **GLSL support** désactivé, | ||
\\ | \\ | ||
- | **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' | + | **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' |
\\ | \\ | ||
**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 : | ||
< | < | ||
- | wget https:// | + | wget https:// |
- | 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 |
</ | </ | ||
- | L' | + | **L' |
Il y aura des messages venant de **WINE**, refuser l' | Il y aura des messages venant de **WINE**, refuser l' | ||
- | <WRAP center round important 90%>Si il y a eu l' | + | <WRAP center round important 90%>Si il y a eu l' |
- | $HOME/ | + | //$HOME/ |
</ | </ | ||
- | 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 // | + | 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 // |
Note : l' | Note : l' | ||
Ligne 104: | Ligne 120: | ||
**21.** Lancer **PoE** et aller dans les **OPTIONS**, | **21.** Lancer **PoE** et aller dans les **OPTIONS**, | ||
\\ | \\ | ||
- | **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 | + | **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 |
+ | <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, | ||
+ | </ | ||
\\ | \\ | ||
- | **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** |
<WRAP center round info 20%> | <WRAP center round info 20%> | ||
BON JEU ! | BON JEU ! | ||
</ | </ | ||
+ | \\ | ||
<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: | ||
</ | </ | ||
**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' | + | Si tout se passe bien une fenêtre s' |
<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 142: | Ligne 162: | ||
* **Wine** est un émulateur de système Microsoft Windows permettant d' | * **Wine** est un émulateur de système Microsoft Windows permettant d' | ||
- | * Les versions **Wine-staging** inclues des améliorations expérimentales et des correctifs que ne possèdent pas les version | + | * Les versions **Wine-staging** inclues des améliorations expérimentales et des correctifs que ne possèdent pas les versions |
* **Wine-esync** est une variante basée sur **Wine-staging** incluant des optimisations plus poussées pouvant autant aider que freiner. Ici elles aident mais certains jeux demandent une version spécialisée pour fonctionner correctement. À partir de la version 3.12 Wine-staging est capable de faire transiter les instructions Vulkan à l' | * **Wine-esync** est une variante basée sur **Wine-staging** incluant des optimisations plus poussées pouvant autant aider que freiner. Ici elles aident mais certains jeux demandent une version spécialisée pour fonctionner correctement. À partir de la version 3.12 Wine-staging est capable de faire transiter les instructions Vulkan à l' | ||
* **Vulkan** est le petit frère d' | * **Vulkan** est le petit frère d' | ||
Ligne 148: | Ligne 168: | ||
* **$WINEPREFFIX=** définie à Wine l' | * **$WINEPREFFIX=** définie à Wine l' | ||
* **DXVK** est un ensemble de librairies convertissant les commandes DirectX 11 en commandes Vulkan qui sont ici ensuite transportées par Wine jusqu' | * **DXVK** est un ensemble de librairies convertissant les commandes DirectX 11 en commandes Vulkan qui sont ici ensuite transportées par Wine jusqu' | ||
+ | * **VKD3D** est la partie de Vulkan sous Wine qui converti les instructions DIRECTX 12 en VULKAN.\\ | ||
+ | * **VK9** est la partie de Vulkan sous Wine qui converti les instructions DIRECTX 9 en VULKAN.\\ | ||
+ | [[https:// | ||
+ | **Gallium Nine** est un système **dédié aux pilotes graphiques libres** qui leur envoie les commandes **D3D9** sans conversion vers OpenGL, d'où un gain de performance les mettant plus ou moins au niveau des pilotes propriétaires. Incompatible avec VULKAN. | ||
+ | |||
\\ | \\ | ||
Les étapes 1, 2, 3 et 4 sont nécessaires parce que :\\ | Les étapes 1, 2, 3 et 4 sont nécessaires parce que :\\ | ||
Ligne 155: | Ligne 180: | ||
4. Les Pilotes **NVIDIA 396.51** et au-delà prennent en charge les instructions Vulkan pour piloter la carte graphique.\\ | 4. Les Pilotes **NVIDIA 396.51** et au-delà prennent en charge les instructions Vulkan pour piloter la carte graphique.\\ | ||
\\ | \\ | ||
- | ===Détails des commandes à exécuter avant de lancer le programme (dans PoL)=== | + | ====Détails des commandes à exécuter avant de lancer le programme (dans PoL)=== |
* Pour ne plus avoir les informations dans les applications employant Vulkan quand à la carte graphique et les pilotes il suffit d' | * Pour ne plus avoir les informations dans les applications employant Vulkan quand à la carte graphique et les pilotes il suffit d' | ||
* **DXVK_USE_PIPECOMPILER=1** active la compilation asynchrone des shaders et est nécessaire pour limiter les lags dans PoE du fait des compilations en temps réel des shaders au fur et à mesure que l'on arrive dans de nouveaux environnements. https:// | * **DXVK_USE_PIPECOMPILER=1** active la compilation asynchrone des shaders et est nécessaire pour limiter les lags dans PoE du fait des compilations en temps réel des shaders au fur et à mesure que l'on arrive dans de nouveaux environnements. https:// | ||
* **WINEESYNC=1** active un chemin alternatif des appels (excessifs) vers wineserver, réduisant de manière drastique l' | * **WINEESYNC=1** active un chemin alternatif des appels (excessifs) vers wineserver, réduisant de manière drastique l' | ||
- | * **__GL_YIELD=NOTHING** (2 x _ avant le GL !!) désactive les fonctions de mise en attente des pilotes de la carte graphique lorsqu' | + | * ** __GL_YIELD=NOTHING__** (2 x _ avant le GL !!) désactive les fonctions de mise en attente des pilotes de la carte graphique lorsqu' |
+ | * Il est possible de rajouter **export LD_PRELOAD=" | ||
- | ===Détails des arguments dans l' | + | ====Détails des arguments dans l' |
- | --waitforpreload --nologo -gc 2\\ | + | **--waitforpreload --nologo -gc 2**\\ |
Le plus simple est de lire ce qui est écrit dans la page dédiée :\\ | Le plus simple est de lire ce qui est écrit dans la page dédiée :\\ | ||
https:// | https:// | ||
+ | |||
+ | ---- | ||
+ | ====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' | ||
+ | \\ | ||
+ | Il faut aussi pour permettre à la fonction **ESYNC** de fonctionner convenablement éditer (avec sudo) :\\ | ||
+ | **/ | ||
+ | **/ | ||
+ | Et rajouter dans chaque, à la fin :\\ | ||
+ | **DefaultLimitNOFILE=1048576**\\ | ||
+ | |||
+ | [[https:// | ||