Pour mieux comprendre cet article lisez : Wine, Proton et UMU : Exécuter des jeux Windows sur Linux !
Pyroveil (lien du github) est un « layer » Vulkan développé par Hans Kristian, développeur de VKD3D qui peut rendre sur Linux le traitement des « shaders » plus compatibles , avec les cartes NVIDIA. Pour faire simple, Pyroveil peut prendre les « shaders » (des petits programmes qui gèrent l’apparence des images dans un jeu) et les « reconvertir » automatiquement d’un format à un autre.
Ce n’est qu’un « workaroud temporaire » (une façon de contourner le problème) en attendant que Nvidia répare son driver Vulkan.
Entrons plus dans les détails :
Les jeux vidéo reposent souvent sur un format spécifique SPIR-V pour leurs shaders quand ils utilisent Vulkan. Or, les pilotes NVIDIA peuvent rencontrer des soucis avec certains shaders en raison d’une implémentation de Vulkan pas toujours optimale. C’est là que Pyroveil reconvertit via SPIRV-Cross -> glslang, les shaders. Cela permet de générer un code SPIR-V plus compatible avec les pilotes NVIDIA
Exemple d’usage concret : Final Fantasy VII Rebirth
Récemment, des joueurs avec des cartes NVIDIA rencontraient des problèmes pour faire tourner Final Fantasy VII Rebirth sur Linux. Grâce à Pyroveil, certains, dont moi même, avons pu contourner le souci en utilisant Pyroveil.
Sans Pyroveil (image prise sur l’Issue GitHub) :

Avec Pyroveil (test personnel sur mon PC) :

Testez vous-même :
Pour les bidouilleurs de l’extrême ou ceux qui veulent absolument jouer à FF VII Rebirth sur Linux avec Nvidia immédiatement, sans attendre un correctif de la part de Nvidia :
- Installer cmake et ninja (des outils de compilation), exemple sur base Arch Linux : sudo pacman -S cmake ninja.
- Compiler le projet :
git clone https://github.com/HansKristian-Work/pyroveil.git
cd pyroveil
git submodule update --init
cmake . -Bbuild -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local
Pour Steam flatpak le chemin est :cmake . -Bbuild -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.var/app/com.valvesoftware.Steam/.local
- Dans le dossier du jeu, supprimez les fichiers vkd3d-proton.cache et vkd3d-proton.cache.write si vous aviez déjà lancé le jeu.
- Ajoutez
PYROVEIL=1 PYROVEIL_CONFIG=~/pyroveil/hacks/ffvii-rebirth-nvidia/pyroveil.json %command%
en option de lancement.
Vous pouvez tester sur d’autres jeux, il y a déjà des remontées qu’il y a des bénéfices.
Conclusion :
L’utilisation de Pyroveil reste un peu technique pour un néophyte (compiler le projet, ajouter des options de lancement, etc.) et ce n’est, de l’aveu même de Hans Kristian, qu’une solution temporaire : « I might have found a temporary workaround for NV ». L’idéal serait évidemment que NVIDIA corrige directement son pilote pour éviter d’avoir recours à ce genre de reconversion de shaders. En attendant, vous n’êtes pas obligé de vous précipiter, à moins de vouloir absolument faire tourner Final Fantasy VII Rebirth, qui bénéficie tout particulièrement de Pyroveil.