NVIDIA et Linux...

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.