Nasra's games

Vulkan

C'est toute une histoire mouvementée !

Propriétaire / Open-source

NVIDIA a toujours refusé d'ouvrir ses pilotes. Ce qui crée de nombreux dysfonctionnements avec les distributions GNU/Linux. Les pilotes propriétaires sont compilés pour les noyaux GNU/Linux les plus utilisés (officiels, stables...). Utiliser un noyau plus récent que celui supporté ou ajouter des fonctionnalités ou corrections et vous ne pouviez plus utiliser les pilotes propriétaires de NVIDIA. L'écran noir redouté des linuxiens se substituait au démarrage et forçait à réinstaller un noyau supporté. En 2022, NVIDIA a publié une nouvelle version de ses pilotes avec un module open-source permettant de compiler les noyaux non prévus pour. Mais le reste de ses pilotes est propriétaire.

OpenGL et Vulkan

OpenGL

OpenGL est une spécification et un ensemble de bibliothèques graphiques pour la programmation 3D. Depuis 1993, OpenGL permet d'utiliser les GPU pour diverses applications graphiques professionnelles (rendus 3D, CAO...) et jeux vidéos. OpenGL est très utilisé sur GNU/Linux (toutes les applications graphiques et les interfaces graphiques), MacOS, Android et pratiquement toutes les consoles de jeux du marché (Sony et Nintendo dominent le marché). Sous Windows, Direct3D et DirectDraw sont leur équivalent.

Vulkan

AMD publie son API “Mantle” en open-source. Cette API de bas niveau est très performante et est reprise pour le projet OpenGL-Next. OpenGL-Next est renommée Vulkan.

Évolution

En 2015, Microsoft développe DirectX12 et permet la programmation bas niveau de son API graphique. Apple, de son côté, développe Metal avec un objectif similaire et une nouvelle architecture ARM.

Petit à petit, OpenGL s'efface...

Petit à petit, le vieillissant OpenGL commence à être remplacé un peu partout. Les nouveaux pilotes intègrent directement Vulkan et tendent soit à remplacer OpenGL soit à faire le pont entre des instructions OpenGL et des instructions Vulkan.

Nouveau et NVK

Nouveau est une tentative de rétro-ingénierie pour développer des pilotes open-source. Les pilotes Nouveau, intégrés au projet Mesa sont basés sur de l'OpenGL. Les performances de Nouveau sont très en deçà des pilotes propriétaires.

NVK (“Nouveau VulKan”) est développé pour ajouter le support de Vulkan aux pilotes Nouveau et profiter de performances accrues.

Nova

Développé par des ingénieurs de RedHat, le pilote Nova (open-source et en langage RUST) sert de successeur au pilote Nouveau dont le développement est ralenti ces derniers temps. Mais contrairement à Nouveau et son large support de GPU NVIDIA, le pilote Nova est intentionnellement limité aux GPU “Turing” RTX 20 et plus récents. Un code préliminaire du pilote Nova a été envoyé en vue de son adoption dans le noyau GNU/Linux 6.15.

Zink

Zink est développé récemment pour permettre aux applications programmées avec OpenGL de pouvoir s'exécuter dans un environnement à 100% Vulkan.

#Nvidia #Linux #NVK #Nouveau #OpenGL #Vulkan


...et les autres !

Proton ?

D'abord qu'est-ce que Proton ? Proton c'est un super utilitaire développé par Valve et intégré à Steam-Linux pour faire tourner des jeux créés seulement pour Windows. Il contient tout ce qu'il faut pour faire tourner des jeux et est basé, entre autres, sur deux éléments indispensables : Wine et DXVK ! Pour utiliser tout cela voici un très bon tutoriel en français ici.

Vulkan

Wine et DXVK ?

Wine est un acronyme pour “Wine Is Not an Emulator”, comme son nom l'indique, Wine est une collection de librairies qui permettent à des jeux ou applications Windows de “retrouver leurs petits” lorsqu'ils sont lancés sur Linux. En gros, c'est un traducteur d'appels d'applications. Au lieu qu'une application demande directement le .dll qu'il lui faut, Wine lui fournit une version différente qui permet de dialoguer avec Linux.

Wine est intégré dans différents projets comme PlayOnLinux, Lutris, Codeweaver...

DXVK ?

DXVK est un peu aussi un acronyme de “DirectX VulKan”. Même chose que pour Wine, il s'agit d'un traducteur. Mais avec cette fois la puissance de Vulkan, ce qui entraîne un gain de performances important voire parfois des applications qui tournent mieux ou à performances égales selon les jeux. et avec les versions, DXVK se bonifie !

Proton et ses versions non officielles.

Je ne vais parler que de celle que je teste depuis quelques temps, la version Proton-GE. C'est une petite merveille de Thomas Crider alias GloriousEggroll qui comprend les derniers développements de Wine, DXVK ainsi que d'autres utilitaires audio comme FAudio, XAudio... En gros, utiliser une version non officielle permet le plus souvent de gagner en performances et en compatibilité d'applications. Le mieux est de recenser tout cela sur le site ProtonDB qui documente tous les jeux jouables ou ayant besoin d'astuces pour fonctionner correctement !

Comment installer tout cela ?

Simple ! Vous allez dans la partie “release” du code déposé sur GitHub, vous téléchargez, et vous décompressez dans le bon dossier ! Chez moi c'est celui-ci : /home/nasra/.steam/debian-installation/compatibilitytools.d

Il n'y a plus qu'à sélectionner la bonne version dans Steam !

#vulkan #popos #mesa #proton #wine #steam