Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Pilote open source de carte graphique — Wikipédia
Pilote open source de carte graphique — Wikipédia 👆 Click Here! Read More..
Article soupçonné de non-pertinence. Cliquez pour suivre ou participer au débat.
Un article de Wikipédia, l'encyclopédie libre.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

La pertinence du contenu de cet article est remise en cause (5 décembre 2024).

Considérez le contenu de cet article avec précaution. Discutez-en ou améliorez-le !
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

La mise en forme de cet article est à améliorer (novembre 2024).

La mise en forme du texte ne suit pas les recommandations de Wikipédia : il faut le « wikifier ».

Comment faire ?

Les points d'amélioration suivants sont les cas les plus fréquents. Le détail des points à revoir est peut-être précisé sur la page de discussion.

  • Les titres sont pré-formatés par le logiciel. Ils ne sont ni en capitales, ni en gras.
  • Le texte ne doit pas être écrit en capitales (les noms de famille non plus), ni en gras, ni en italique, ni en « petit »…
  • Le gras n'est utilisé que pour surligner le titre de l'article dans l'introduction, une seule fois.
  • L'italique est rarement utilisé : mots en langue étrangère, titres d'œuvres, noms de bateaux, etc.
  • Les citations ne sont pas en italique mais en corps de texte normal. Elles sont entourées par des guillemets français : « et ».
  • Les listes à puces sont à éviter, des paragraphes rédigés étant largement préférés. Les tableaux sont à réserver à la présentation de données structurées (résultats, etc.).
  • Les appels de note de bas de page (petits chiffres en exposant, introduits par l'outil «  Source ») sont à placer entre la fin de phrase et le point final[comme ça].
  • Les liens internes (vers d'autres articles de Wikipédia) sont à choisir avec parcimonie. Créez des liens vers des articles approfondissant le sujet. Les termes génériques sans rapport avec le sujet sont à éviter, ainsi que les répétitions de liens vers un même terme.
  • Les liens externes sont à placer uniquement dans une section « Liens externes », à la fin de l'article. Ces liens sont à choisir avec parcimonie suivant les règles définies. Si un lien sert de source à l'article, son insertion dans le texte est à faire par les notes de bas de page.
  • La présentation des références doit suivre les conventions bibliographiques. Il est recommandé d'utiliser les modèles {{Ouvrage}}, {{Chapitre}}, {{Article}}, {{Lien web}} et/ou {{Bibliographie}}. Le mode d'édition visuel peut mettre en forme automatiquement les références.
  • Insérer une infobox (cadre d'informations à droite) n'est pas obligatoire pour parachever la mise en page.

Pour une aide détaillée, merci de consulter Aide:Wikification.

Si vous pensez que ces points ont été résolus, vous pouvez retirer ce bandeau et améliorer la mise en forme d'un autre article.

Flowchart with Tux, the Linux penguin
Les données et instructions sont envoyées au GPU pour traitement. Les résultats rendus sont enregistrés dans un framebuffer, dont le contenu est scanné par le display controller et envoyé à l'écran.

Un pilote open source de carte graphique est un logiciel ou un ensemble de logiciels qui contrôle la carte graphique d'un ordinateur et prend en charge le rendu graphique de l'affichage, l'interface de programmations (dite API) et qui est livré avec une licence de type logiciel libre. Le pilote de carte graphique est écrit pour une gamme de matériel[1] pour laquelle il est capable de gérer divers matériels (ou cartes) spécifiques. Il prend en charge en ensemble de sous-parties de l'API utilisé par les applications pour accéder à la carte graphique. Il fonctionne avec un système d'exploitation spécifique, et dans le cas de Linux, soit dans un noyau spécifique soit dans un Loadable Kernel Module.

Il permet aussi de contrôler la sortie sur l'affichage quand le display driver fait partie du matériel graphique. La plupart des pilotes en source ouvert de carte graphique sont développés par le projet Mesa. Le pilote est constitué d'un compilateur, une liste de rendering API, et du logiciel qui gère le matériel graphique.

Pilotes open source et binary drivers

[modifier | modifier le code]
Articles connexes : Pilote informatique, Linux-Libre et firmware.

Les pilotes sans code source libre et légalement gratuitement disponible sont appelés binary drivers, en langue anglaise. Les binary drivers utilisés dans le contexte d'un système d'exploitation en développement et soumis à modifications (comme Linux) créent des problèmes pour l'utilisateur final et la manutention des paquets. Ces problèmes qui affectent la stabilité, la sécurité et la performance du système, sont la principale raison pour le développement indépendant de pilote de carte graphique en source ouverte. En l'absence de documentation technique, une compréhension du matériel sous-jacent est souvent obtenue par clean-room reverse engineering. Sur la base de cette compréhension, un pilote de carte graphique en sources ouvertes peut être écrit et légalement publié et distribué sous une licence logicielle quelconque.

Dans de rares cas, un code source OEM est disponible sur Internet sans licence libre. Ceci permet l'étude du code et sa modification pour une utilisation personnelle, mais ni le code source altéré ni le code source d'origine ne peuvent être librement distribués. Les résolutions des bugs de pilote ne peuvent pas facilement être partagés sous le forme d'une version modifiée du pilote. Ceci réduit l'utilité de tels pilotes en comparaison de pilote open source de carte graphique.

Un inconvénient des drivers graphiques open source est que les évolutions du noyau Linux ou d'autres évolutions logicielles diverses peuvent conduire à des incompatibilités des drivers graphiques qui ne sont pas toujours supportés sur le long terme. Ainsi, dans les faits, les cartes graphiques utilisées avec des drivers en source ouverte sont confrontés à une obsolescence programmée.

[réf. souhaitée]

Dans l'écosystème des distributions de logiciel libre, un pilote binaire peut ne pas résister à une mise à niveau de la distribution de logiciels ce qui conduit à l'arrêt de fonctionnement de l'écran tant que le problème ne peut pas être résolu. Une des causes possibles de ce dysfonctionnement, dans le cas de Nvidia, tient à deux faits incompatibles[2]:

  • un pilote binaire est dépendant d'une version binaire du noyau du système d'exploitation;
  • la mise à niveau d'une distribution peut conduire à un nouveau binaire du noyau du système d'exploitation remplaçant l'ancienne.

Support matériel

[modifier | modifier le code]

La suppression de firmware propriétaire présent dans le noyau Linux cause des pertes de fonctionnalités pour certains matériels qui n'ont pas d'équivalent open source. Cela affecte certaines cartes vidéo telles que des cartes graphiques Nvidia. Lorsque c'est possible, un substitut libre au firmware est fourni[3]. Ceci fait que Linux-libre, n'a pas toujours la meilleure prise en charge matérielle[réf. nécessaire].

Microcode

[modifier | modifier le code]

Linux-libre ne suggère pas la mise à jour de microcode de processeur, puisque ce code est propriétaire[4]. Les mises à jour de microcode sont proposées dans la branche principale du noyau Linux entre autres raisons pour mitiger les vulnérabilités matérielles[5].

Histoire

[modifier | modifier le code]

Dans les débuts des PC, le fonctionnement des cartes VGA a été standardisé, notamment autour des différents modes d'affichages et du système d'interruptions logicielles, notamment sous DOS.

Dans les années 1986, sur les PC grands publics, en raison de la complexité d'écriture de drivers, Windows a apporté des drivers Windows génériques et encouragé les fabricants de matériel à les utiliser[6]. Toutefois, ces drivers n'étant pas open source, ils n'ont pas pu être réutilisés pour d'autres systèmes d'exploitation.

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

En 2009 et 2011, des drivers open sources sous Ubuntu supportent l'accélération matérielle 3D car Intel et ATI ont mis à disposition open source ces drivers. Par ailleurs, Linux dispose d'excellents graphiques 2D[7],[8].

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

évolution des couches open source

[modifier | modifier le code]

Dans l'environnement Unix et Linux, de nouveaux drivers open-source sont apparus.

Principe initial du système X-Window

[modifier | modifier le code]
Diagramme des premières couches graphiques des distributions Linux
Pilotes 2D du serveur X

Les couches de logiciels et pilotes graphiques utilisées dans les distributions Linux ont évolué, à partir du protocole cœur du X Window System. Il s'agit à l'origine d'affichage de l'image des écrans en deux dimensions, dite 2D.

Cet affichage était optionnel puisque le lancement de X Window System dépend du Run level (comme expliqué plus bas). En principe, ceci assure que l'affichage fonctionne correctement en mode texte, sans défaut possible, avant le lancement du X Window System.

API GLX (1992-2012)

[modifier | modifier le code]
Article détaillé : GLX.
Autre diagramme des premières couches graphiques des distributions Linux
Rendu indirect sur GLX utilisant Utah GLX

L'API API GLX est une « Extension OpenGL pour le serveur X ». Elle est créée en 1992 et fournissant la connexion entre OpenGL et le serveur X : elle permet aux programmes qui souhaitent utiliser OpenGL de le faire dans une fenêtre fournie par le serveur X.

La dernière version est la version 1.4, sortie le 16 décembre 2005[9]. Elle a été proposée à la déprécation en ce qui concerne X.org en 2012 par Ian Romanick en faveur d'EGL


Suite

[modifier | modifier le code]


  • Diagram of the Direct Rendering Infrastructure and the Direct Rendering Manager
    Direct Rendering Infrastructure et framebuffer
  • Diagram of the 2013 Direct Rendering Infrastructure, with GPU access through the Direct Rendering Manager
    tous les accès passent au travers du Direct Rendering Manager

Noyau Linux 3.12, depuis 2013

[modifier | modifier le code]
Articles détaillés : EGL (API) et OpenGL ES.
Diagramme du noyau Linux, avec Wayland utilisant EGL
Dans le noyau Linux 3.12, les nœuds de rendu sont fusionnés et le mode setting est extrait à part. Wayland implémente le direct rendering sur EGL

.

L'interface de programmation (API) EGL fait le lien entre ses API de rendu et le système de fenêtrage du système d'exploitation sous-jacent. EGL est une option moins dépendante de la plate-forme que GLX ou WGL. Les spécifications d'EGL lui permettent de s'interfacer avec X11, avec une API très similaire à celle de GLX, la remplaçant ainsi avantageusement. EGL prend en charge la gestion des contextes graphiques, les relations entre les surfaces de dessin et les tampons mémoire, ainsi que la synchronisation du rendu. EGL permet ainsi la gestion efficace de rendu graphique mixte (2D et 3D) accéléré matériellement[10].

La bibliothèque logicielle libre Mesa, utilisée sous X.org, est compatible avec les versions 1.1 et 2.0 d'OpenGL ES.

Séquence de démarrage graphique Linux

[modifier | modifier le code]

Séquence initiale

[modifier | modifier le code]

Sous Linux, différentes classes de pilotes graphiques open source fonctionnent de manière très similaire. Le démarrage d'une distribution Linux pour PC, peut fonctionner sans recourir à aucun pilote spécifique à la puce graphique, car le gestionnaire de démarrage utilise des fonctionnélités génériques pour afficher des images, comme le Graphics Output Protocol (GOP) de l'UEFI, les pilotes d'extension du BIOS VESA (VBE) ou le mode texte VGA. Ce mode texte VGA est le même que celui qu'ilisait déjà le système DOS à la fin des années 1980.

Au travers des technologies VGA ou GOP le noyau affiche les premiers messages émis. Sur des systèmes modernes dotés de pilotes open source, le pilote graphique peut déjà être chargé en mémoire à partir du système de fichier initramfs chargé dès le démarrage du noyau, c'est-à-dire avant de pouvoir accéder au système de fichiers racine et donc avant tous les traitements suivants. Les distributions Linux modernes pratiquent généralement ce chargement précoce du pilote graphique du noyau depuis ce système de fichier initramfs. Ce module du noyau s'appelle i915 pour le matériel Intel. Il prend en charge l'initialisation du matériel, la gestion de la mémoire et la validation des commandes qui envoient les pilotes OpenGL ou vidéo à la puce graphique.

Au démarrage, le pilote du noyau définit une résolution supposée optimale pour l'écran de sortie. Cette résolution est déduite des informations obtenues à partir d'une structure de données appelée EDID (Extended Display Identifier Data), obtenue de l'écran au travers du PPC (ou DDC?) (Display Data Channel).

La définition des paramètres d'écran par le noyau est appelée paramètre de mode basé sur le noyau (KMS). Les pilotes graphiques du noyau sont donc parfois également appelés pilotes KMS. Cependant, le terme « pilote DRM » est plus approprié quand les pilotes et la fonction KMS appartiennent au Direct Rendering Manager (DRM) du noyau Linux. Ce pilote DRM est créé à la fin des années 1990, environ une décennie avant le KMS[11].

Séquence d'apparition

[modifier | modifier le code]

Lorsque le KMS définit la résolution de l'écran, l'écran s'assombrit brièvement et tous les messages émis jusqu'à ce point par le gestionnaire de démarrage ou le noyau disparaissent. Certaines distributions affichent une animation de démarrage à ce stade pour améliorer l'apparence de l'initialisation du système. Ceci est souvent pris en charge par le programme « Plymouth », qui utilise KMS, qui propose des fonctions de sortie d'images.

A ce stade, les capacités disponibles ne suffisent pas aux interfaces de bureau et aux programmes graphiques. Pour cette raison, le serveur X de X.Org démarre après l'initialisation de base du système. Il implémente le système X-Window (X11) et propose des fonctions et des interfaces avec lesquelles les applications peuvent créer une interface utilisateur et la transférer vers le serveur X. Il prend en charge la sortie via le matériel graphique et transmet les entrées, notamment souris et clavier, aux applications[11].

Précisions sur les pilotes de X-Windows

[modifier | modifier le code]

Les distributions Linux ont toujours utilisé un serveur X sur PC comme base pour les interfaces utilisateur graphiques. La configuration X auparavant requise et souvent fastidieuse est désormais pratiquement inutile, car les serveurs X modernes chargent automatiquement tous les pilotes requis pour les périphériques d'entrée et le matériel graphique lors de leur démarrage. Sur Intel, il s'agit du pilote X intel_drv.so, qui sur Ubuntu se trouve dans le répertoire xorg/modules/drivers/ sous /usr/lib ; sur un Fedora x86-64, le répertoire se trouve dans /usr/lib64/.

A l'origine, les pilotes X couramment utilisés sur les PC contenaient tout le nécessaire pour définir la résolution de l'écran. De nos jours, ce n'est plus le cas: Ils ne contrôlent plus ce paramètre de mode utilisateur. Au lieu de cela, ils doivent demander au pilote DRM via les fonctions KMS de configurer l'écran comme le spécifie l'utilisateur; par exemple via les paramètres d'affichage des bureaux ou l'outil de ligne de commande xrandr, qui transmettent leurs souhaits au serveur X et aux pilotes via l'extension X Resize, Rotate and Reflect (RandR).

Le pilote X est également responsable de l'accélération vidéo via l'extension X Video (XVideo ou XV en abrégé) et la compensation de mouvement X-Video (XvMC). Cependant, ces deux fonctions sont rarement utilisées car elles ne sont pas adaptées aux formats vidéo HD modernes.

La fonction principale restante du pilote X est l'accélération 2D, grâce à laquelle le pilote délègue le mouvement du contenu de la fenêtre à la puce graphique. Ces dernières années, EXA (mais UXA chez Intel) a été principalement utilisé à cette fin. Glamour, utilisé depuis un certain temps par le pilote Radeon X, est plus récent et utilise le pilote 3D pour l'accélération 2D.

Cette approche prive les pilotes X de leur dernière tâche essentielle. Elle facilite la conception de pilotes spécifiques au matériel et peut même les rendre inutiles. Elle attire ainsi d'autres développeurs.

En juillet 2014, dans ce contexte, Glamour a été intégré à X-Server version 1.16[11].

Architecture logicielle

[modifier | modifier le code]
Illustration of differences between Gallium3D and Direct Rendering Infrastructure models
Mesa (DRI) and Gallium3D have different driver models, but they share free and open-source code.
Driver example matrix
An example matrix of the Gallium3D driver model. With the introduction of the Gallium3D tracker and WinSys interfaces, 18 modules are required instead of 36. Each WinSys module can work with each Gallium3D device driver module and each State Tracker module.

Un pilote open source de carte graphique est principalement développé pour des distributions Linux et fonctionnent sur des noyaux Linux. Ils sont développés par des tiers développeurs enthousiastes et des employés de sociétés comme Advanced Micro Devices. chaque pilote est composé de cinq parties:

  1. Un composant DRM dans le noyau Linux
  2. Un composant KMS driver (pour Kernel Mode Setting) dans le noyau Linux (le display controller driver)
  3. Un composant libDRM dans l'espace utilisateur (c'est-à-dire en dehors de l'espace du noyau) (une bibliothèque wrapper pour les appels système au DRM, qui ne devrait être utilisé que par Mesa 3D)
  4. Un composant Mesa 3D dans l'espace utilisateur (c'est-à-dire en dehors de l'espace du noyau). Ce composant est spécifique au matériel; il est exécuté sur le CPU et traduit les commandes OpenGL, par exemple, en un code machine pour le GPU. En raison de la séparation du pilote de périphérique, le marshalling est possible. Mesa 3D est la seule implémentation libre d'OpenGL, OpenGL ES, OpenVG, GLX, EGL et OpenCL. En juillet 2014, la plupart des composants se conforment aux spécifications techniques de Gallium3D. Un State Tracker fonctionnel pour Direct3D version 9 est écrit en langage C, et un trackeur (non maintenu) pour les versions 10 et 11 de Direct3D est écrit en C++[12]. Wine inclut un Direct3D version 9. Un autre composant de Wine traduit les appels Direct3D en appels OpenGL, fonctionnant avec OpenGL.
  5. Device Dependent X (DDX), un autre pilote de carte graphique 2D pour serveur X.Org

Le DRM est spécifique au noyau. Un pilote VESA est généralement disponible pour tous les systèmes d'exploitation. Le pilote VESA supporte la plupart des cartes graphiques sans accélération et à des résolutions d'affichage limitées à un ensemble défini dans le BIOS vidéo par le fabricant[13].

Modules du noyau linux

[modifier | modifier le code]

Le noyau Linux est un exécutable doté de greffons dénommés modules, ou ko (pour l'anglais kernel object, et non pour le sens usuel): le noyau et ses options fonctionnent dès le démarrage du système Linux quand les modules sont chargés dynamiquement à la demande, c'est-à-dire au besoin. Il est possible de passer des options au noyau ainsi qu'aux modules.

Le noyau gère plutôt ce qui est commun à tous les drivers, comme l'option nomodeset, quand les modules gèrent plutôt ce qui est spécifique à une famille de matériel.

Les modules Linux pour les cartes graphiques portent des noms courts comme: amd, ast, bochs, gma500, i2c, i915, mgag200, nouveau, qxl, radeon, scheduler, tiny, ttm, udl, vboxvideo, vgem, virtio, vmwgfx, xen[14].

Certains modules sont soumis à l'intervention d'un plus grand nombre de contributeurs que d'autres. Par exemple, un échantillonnage sur une période de trois mois, montre que sur 169 auteurs, 55 contributeurs sont intervenus sur un pilote i915 et 44 sur un pilote amd, quand moins d'auteurs sont intervenus sur d'autres pilotes. Un auteur, Adam Tornhill, suggère que ce genre de métrique peut être lié à un besoin de coordination, voir à une estimation du risque de bogues[15],[16].

Modules drivers du serveur X

[modifier | modifier le code]

Le démarrage du serveur X, sur les systèmes de la famille de Linux, n'est généralement pas lancé dès le début. L'organisation héritée de UNIX System V, utilisée par Solaris et plusieurs distributions Linux, lancement des applications suivant le numéro de leur Run level qui correspond au niveau de services activés et qui peut permettre de lancer le système avec ou sans certains services. Le serveur X est généralement lancé en mode multi-utilisateurs, c'est-à-dire pas avant le Run level 3. Le serveur X dispose souvent d'un Run level qui lui est quasiment dédié, comme le Run level 4 sur Slackware ou le Run level 5 sur d'autres distributions Linux[17].

Les modules du serveur X pour les cartes graphiques sont des bibliothèques partagées. Leur nom est court et se termine par drv. Les modules génériques portent le nom de fbdev ou de vesa. Ces modules génériques permettent de faire fonctionner divers matériels mais n'offrent pas les performances optimales qu'un module spécifique peut apporter lorsqu'il fonctionne[18]. C'est aussi le cas du modules modesetting.

Les modules nv, nouveau et nvidia correspondent à du matériel vidéo de marque Nvidia[18].

Les modules ati et fglrx correspondent à du matériel vidéo de marque AMD/ATI[18].

Le module intel correspond à du matériel vidéo de marque Intel[18].

D'autres modules portent les noms de amdgpu, qxl, radeon, ou vmware[19],[20].

Interactions avec le BIOS

[modifier | modifier le code]

Les cartes graphiques et leurs pilotes peuvent être en interaction avec le BIOS, notamment sur des sujets techniques tels que[21]:

  • un nouveau protocole graphique (Graphics Output Protocol ou GOP) pour configurer les modes graphiques ;
  • extensions PCI (ou PCI Expansion ROM en anglais): micrologiciels exécutables, fournis par les périphériques PCI et exécutés par le BIOS pendant la phase de démarrage (Power On Self-Test ou POST) notamment pour initialisation du BIOS de la carte graphique. Le micrologiciel est présent en mémoire Flash ou dans le BIOS;
  • les ordinateurs portables présentent également des spécificités car ils ne sont pas prévus pour un changement de carte graphique ;

Des spécifications ACPI récentes (version 5.0) permettent de nouvelles interactions des cartes graphiques avec le BIOS: comme l'installation de tables ACPI pendant la phase de démarrage pour donner au système d'exploitation des pointeurs vers des ressources dans la table BGRT (Boot Graphics Resource Table), comme un splash screen (écran de démarrage en Français) présenté à des fins cosmétiques par le micrologiciel[21].

Mode-setting

[modifier | modifier le code]
Articles détaillés : Kernel-based mode-setting et en:X.org_Server.

Le Kernel-based mode-setting, ou KMS, est un procédé permettant la gestion des modes d'affichage par le noyau Linux et celui des systèmes BSD. Il s'oppose à l'UMS (user mode setting).

Paramétrage et fonctionnalités spécifiques

[modifier | modifier le code]
Articles détaillés : Kernel-based mode-setting et en:xorg.conf.

Les pilotes de cartes graphiques à utiliser peuvent être paramétrés dans le fichier de configuration de X. Par exemple, un pilote Nvidia peut disposer d'options NoLogo, DPI ou RenderAccel, quand un pilote ATI peut disposer d'options TexturedVideo, Textured2D ou BackingStore[22].

Hors X

[modifier | modifier le code]

En dehors du système X-Window, d'autres bibliothèques permettent d'utiliser de pilote de l'interface graphique, comme DirectFB[23] ou SDL[24].

Par fabricant

[modifier | modifier le code]

Pour profiter des fonctionnalités d’accélération matérielles de certaines cartes, des pilotes spécifiques existent. Toutefois, en l'absence de ces pilotes spécifiques, des pilotes VESA sont compatibles avec toutes les cartes compatibles VESA[25] en particulier avec les cartes compatibles VBE 2.0 et à l'exception des processeurs ARM qui ont des cartes graphiques spécifiques[26]. Toutefois, des pilotes de framebuffer existent en dehors de vesafb, comme le pilote de framebuffer mxvfb et intelfb. Ces pilotes de framebuffer gèrent une zone vue comme de la RAM par l'ordinateur, et permet de s'interfacer avec le mode setting, la mémoire de la carte, et l'accélération 2D dite scrolling (ou défilement en Français)[27].

ATI and AMD

[modifier | modifier le code]

Radeon

[modifier | modifier le code]
Article connexe : Modèle:Palette ATI.
Diagram
Linux device drivers for AMD hardware in August 2016
Une carte graphique ATI Radeon HD 4770, basée sur le processeur graphique RV740.

Le spilotes propriétaires AMD's, AMD Catalyst pour leur Radeon, est disponible pour Microsoft Windows et Linux (anciennement fglrx). Une version actuelle peut être téléchargées sur le site d'AMD, et certaines distributions Linux le contiennent dans leurs dépôts. C'est en cours de remplcament avec un pilote hybride AMDGPU-PRO combiannt le noyau open-source, X et Mesa multimedia drivers avec du code fermé OpenGL, OpenCL et Vulkan drivers dérivés de Catalyst.

Les pilotes libres et en source ouverte (FOSS) pour les GPUs ATI-AMD sotnt en cours de développement suos l'appellation Radeon (xf86-video-ati ou xserver-xorg-video-radeon). Ils doivent encore télécharger du microcode propriétaire dans le GPU pour permettre l'accélération matérielle[28].Modèle:Failed verification

Le code Radeon 3D est séparé en trois pilotes, suivan la technologie du GPU: les pilotes classiques radeon, r200 et r300 et les pilotes Gallium3D r300g, r600g and radeonsi :

  • Radeon prend en charge les séries R100.
  • R200 prend en charge les séries R200.
  • R300g prend en charge les microarchitectures antérieures à l'unified shader model : R300, R400 et R500.
  • R600g prend en charge tous les GPUs basés sur TeraScale (VLIW5/4) : R600, R700, HD 5000 (Evergreen) et HD 6000 (Northern Islands).
  • Radeonsi supports tous les GPUs basés sur Graphics Core Next : HD 7000, HD 8000 et Rx 200 (Southern Islands, Sea Islands et Volcanic Islands).

Une matrice mise à jour est disponible[29], et une prise en charge existe pour le Video Coding Engine[30] et Unified Video Decoder[31],[32]. Les pilotes FOSS Radeon graphics ne sont pas construits par reverse-ingénierie, mais sont basés sur la documentation releasé par AMD sans imposer de non-disclosure agreement (NDA)[33],[34],[35]. Le documentation commença à être graduellement releasée en 2007[36],[37],[38].

En addition de la fourniture de la documentation nécessaire, des employés d'AMD ont contribué à la prise en charge du matériel et des fonctionnalités de leur société[30].

Tous les composants des pilotes des cartes graphiques Radeon sont développés par des contributeurs cœrs et les parties prenantes intéressées mondialement. En 2011, les r300g dépassent Catalyst dans certains cas.

AMDGPU

[modifier | modifier le code]
Article détaillé : AMDGPU.

En 2014 Game Developers Conference, AMD annonce l'exploration d'une stratégie pour re-fonder la partie user-space de Catalyst sur un module noyau DRM libre plutôt que leur blob noyau propriétaire[39].

La publication de la pile et du module noyau AMDGPU nouveau est annoncé sur la mailing list dite dri-devel en avril 2015[40]. quand AMDGPU ne prend en charge officiellement que les cartes graphiques GCN 1.2 et suivantes[41], une prise en charge expérimentale pour les cartes graphiques GCN 1.0 and 1.1 (prise en charge officielle seulement par le pilote Radeon) peut être activée au travers d'un paramètre dunoyau[42],[43]. Un libdrm distinct, libdrm-amdgpu, est inclus depuis libdrm 2.4.63[44].

La code radeonsi 3D mentionné dans le paragraphe Radeon précédent (ou antérieur) est aussi utilisé dans amdgpu; le pilote 3D driver s'interface par derrière à la fois avec radeon et amdgpu.


Intel

[modifier | modifier le code]
Articles connexes : List of Intel graphics processing units, Intel GMA#Linux et Intel Graphics Technology.
Vue du dessus d'un Intel Core i7 Sandy Bridge, modèle 2600K, production vers 2011-2013)

À son actif, Intel est connu pour avoir produit (or commissioning) des pilotes open-source pour ses puces graphiques, à l'exception de leur puce PowerVR-based[45]. Leur pilote 2D X.Org est appelé xf86-video-intel. Le pilote mode-setting du noyau dans le noyau Linux n'utilise pas le BIOS vidéo pour basculer les modes vidéos; puisque certains BIOS ont des plages de mode limitées, ceci apporte un accès plus large à ceux pris en charge par les adaptateurs vidéo Intel.

La société a travaillé à optimiser leurs pilotes Linux pour la performance approchant leur contrepartie Windows spécialement sur Sandy Bridge et les matériels plus récents où les optimisations de performance ont permis aux pilotes d'Intel de surpasser leurs pilotes propriétaires Windows dans certaines tâches, en 2011[46],[47],[48] Some of the performance enhancements may also benefit users of older hardware[49].

La prise en charge des caches de base niveau d'Intel (Last Level Cache, L4-Cache, Crystalwell and Iris Pro) a été ajoutée dans le noyau Linux 3.12[50],[51]. En 2013, la société emploie 20 à 30 développeurs Linux à plein temps[52].

Autres

[modifier | modifier le code]

D'autres pilotes opens sources sont disponibles pour d'autres cartes : Matrox, S3 Graphics, Arm Ltd, Imagination Technologies, Qualcomm et Broadcom par exemples.

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Autres cartes

[modifier | modifier le code]
Red hat est l'une des sociétés intéressée par le développement de pilotes graphiques pour systèmes open source

Même si Silicon Integrated Systems et VIA Technologies ont exprimé un intérêt limité dans les pilotes FOSS, les deux ont publié du code source qui a été intégré dans le serveur X.Org par des développeurs FOSS[53]. En juilet 2008, VIA a ouvert la documentation de leurs produits pour améliorer son image dans les communautés Linux et open-source[54]. La société a échoué à travailler avec la communauté open-source pour fournir la documentation et un pilote DRM fonctionnel, abandonnant les attentes d'une prise en charge Linux[55]. Le 6 janvier 2011, il a été annoncé que VIA n'est plus intéressé par les initiatives de prise en charge open source[56].

La société DisplayLink a annoncé un projet open-source, Libdlo[57], avec le but de porter la prise en charge de leur technologie USB graphics sur Linux et d'autres plateformes. Ce code est disponible sous licence LGPL[58], mais il n'a pas été intégré dans un pilote X.Org. La prise en charge de DisplayLink graphics est disponible au travers du pilote "udlfb" du noyau (avec fbdev) en mainline et le pilote udl/drm, qui en mars 2012 n'était disponible qua dans l'arborescence drm-next.

Dans vendeur sans lien avec le matériel peuvent aussi assister les initiatives des graphiques libres. Red Hat emploie deux personnes à plein temps (David Airlie et Jérôme Glisse) pour travailler sur le logiciel Radeon[59], et le projet Fedora Project parraine un événement Fedora Graphics Test Week avant le lancement des nouvelles versions de leur distribution Linux pour essayer des pilotes graphiques libres[60]. D'autres sociétés ont fourni du développement ou du supporty compris Novell et VMware.

Identification

[modifier | modifier le code]

Le système peut savoir le pilote à utiliser car un système de configuration existe. La configuration est dite manuelle quand l'utilisateur doit paramétrer le pilote de carte graphique ou automatique quand des mécanismes d'auto-détection sont utilisés. Un des mécanismes d'auto-détection existant communique au travers du bus PCI un numéro 16 bits qui identifie la carte dans la matrice du site web du fabricant de la carte.

Dans l'environnement Xorg, un utilitaire existe pour reconnaître le type de carte graphique et en déduire un fichier de configuration Xorg. Le fichier généré peut être modifié manuellement mais cette tâche est complexe[18].

Problème connu

[modifier | modifier le code]

Les fournisseurs peuvent fournir soit des pilotes graphiques qui privilégient la compatibilité soit des pilotes graphiques qui privilégient la performance suivant les besoins de l'utilisateur[61].

Un problème connu est la présence d'écrans noirs dus à une certaine incompatibilité de certains pilotes avec l'UEFI.

« Video problems are especially tricky because it is hard to fix computer when the display is not working. »

— Keith Curtis, page 213 [62]

Voir aussi

[modifier | modifier le code]
  • Nouveau (informatique)
  • radeon (logiciel)
  • DirectFB

Notes et références

[modifier | modifier le code]
  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Free and open-source graphics device driver » (voir la liste des auteurs).
  1. ↑ pouvant éventuellement correspondre à une marque, un fabricant ou un GPU)
  2. ↑ https://www.google.fr/books/edition/Linux_Troubleshooting_Bible/Y8CXi-LJxusC?hl=fr&gbpv=1&dq=graphic+drivers+linux&pg=PA59&printsec=frontcover
  3. ↑ « LinuxLibre:Devices that require non-free firmware », LibrePlanet, 5 février 2011 (consulté le 17 avril 2012)
  4. ↑ (en) « GNU Linux-Libre 4.16 Released, Won't Warn You About Spectre/Meltdown Microcode Updates » [archive du 4 novembre 2023], sur www.phoronix.com (consulté le 23 septembre 2022)
  5. ↑ « Hardware vulnerabilities » [archive du 4 novembre 2023], kernel.org
  6. ↑ (en) Ziff Davis, Inc., PC Mag, 1986, 296 p. (lire en ligne), p. 124.
  7. ↑ https://www.google.fr/books/edition/Beginning_Ubuntu_Linux/IHYQDhcP3dMC?hl=fr&gbpv=1&dq=graphic+drivers+linux&pg=PA163&printsec=frontcover
  8. ↑ https://www.google.fr/books/edition/Beginning_Ubuntu_Linux/5i-c2yms6tUC?hl=fr&gbpv=1&dq=graphic+drivers+linux&pg=PA134&printsec=frontcover
  9. ↑ Karlton, Womack et Leech 2005.
  10. ↑ (en) EGL Overview
  11. ↑ a b et c c't Linux 2015, Server-Sicherheit, Distributionen mit Langzeit-Support, c't-Redaktion, 2015 (ISBN 9783957880468), 3957880467, page 77 sur 156, édition Heise Medien
  12. ↑ « Direct3D 9 state tracker » [archive du 20 juillet 2013], 16 juillet 2013 (consulté le 15 novembre 2017)
  13. ↑ « Index of /doc/Documentation/fb/ » (consulté le 15 novembre 2017)
  14. ↑ Nom des modules du noyau Linux
  15. ↑ https://www.google.fr/books/edition/Software_Design_X_Rays/3dVTDwAAQBAJ?hl=fr&gbpv=1&dq=Linux+driver+i915&pg=PT185&printsec=frontcover
  16. ↑ Software Design X-Rays, Fix Technical Debt with Behavioral Code Analysis, Adam Tornhill, 2018
  17. ↑ https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/deployment_guide/s1-x-runlevels
  18. ↑ a b c d et e https://www.google.fr/books/edition/Linux_Essentials/Jdg9CgAAQBAJ?hl=fr&gbpv=1&dq=graphic+drivers+linux&pg=PA91&printsec=frontcover
  19. ↑ 鳥哥的Linux私房菜--基礎學習篇(第四版)(電子書) - Page 23-17, 2016
  20. ↑ « Pilotes Xorg », sur linuxfromscratch.org (consulté le 28 novembre 2024).
  21. ↑ a et b https://cyber.gouv.fr/sites/default/files/IMG/pdf/uefi-pci-bootkits_sstic_article_fr.pdf
  22. ↑ Préparation à la certification LPIC-1 : Linux, page 544, Sébastien Rohaut. 2009
  23. ↑ Linux embarqué, Nouvelle étude de cas - Traite d'OpenEmbedded, page 462, Pierre Ficheux, Eric Bénard, 2012
  24. ↑ Linux embarqué, Nouvelle étude de cas - Traite d'OpenEmbedded, page 463, Pierre Ficheux, Eric Bénard, 2012
  25. ↑ Debian Lenny - GNU/Linux, Debian GNU/Linux 5.0 Lenny i386/AMD64, page 312, Raphaël Hertzog, Roland Mas, 2011
  26. ↑ Linux embarqué, Nouvelle étude de cas - Traite d'OpenEmbedded, page 458, Pierre Ficheux, Eric Bénard, 2012
  27. ↑ Linux Device Drivers Development, page 509, 21 Frame buffer drivers, Develop Customized Drivers for Embedded Linux, John Madieu
  28. ↑ Details of Debian package firmware-linux-nonfree in Stable Debian.org
  29. ↑ « Radeon Feature » (consulté le 15 novembre 2017)
  30. ↑ a et b « initial VCE support in Linux kernel and in the Mesa driver », 4 février 2014
  31. ↑ « drm-next-3.15 Feb 18 », 18 février 2014
  32. ↑ « drm-next-3.15 Mar 04 », 4 mars 2014
  33. ↑ « AMD Developer Guides » [archive du 16 juillet 2013]
  34. ↑ « Documentation provided by AMD »
  35. ↑ « AMD 3D Documentation list » [archive du 7 octobre 2013]
  36. ↑ « AMD to open up graphics specs », LWN.net, 5 septembre 2007 (consulté le 15 juillet 2014)
  37. ↑ « AMD: GPU Specifications Without NDAs! », 10 septembre 2007 (consulté le 15 juillet 2014)
  38. ↑ David Airlie, « AMD hand me specs on a CD » [archive du 22 octobre 2012], 13 septembre 2007 (consulté le 15 juillet 2014)
  39. ↑ « AMD exploring new Linux driver Strategy », 22 mars 2014 (consulté le 23 mars 2014)
  40. ↑ « Initial AMDGPU driver release », 20 avril 2015 (consulté le 26 avril 2016)
  41. ↑ « AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver », sur Phoronix
  42. ↑ « AMDGPU driver documentation », sur Freedesktop.org
  43. ↑ « AMD Unleashes Initial AMDGPU Driver Support For GCN 1.0 / Southern Islands GPUs », sur Phoronix
  44. ↑ « libdrm 2.4.63 », 14 août 2015
  45. ↑ An overview of graphic card manufacturers and how well they work with Ubuntu Ubuntu Gamer, January 10, 2011 (Article by Luke Benstead); (copy of the article)
  46. ↑ « More Performance Comes Out Of Intel Linux SNB », Phoronix, 22 mars 2011 (consulté le 23 mars 2011)
  47. ↑ « Intel Sandy Bridge Performance Goes Up Again », Phoronix, 31 mars 2011 (consulté le 31 mars 2011)
  48. ↑ « Intel SNB Linux Driver Can Out Run Windows Driver », Phoronix, 23 mai 2011 (consulté le 23 mai 2011)
  49. ↑ « A Historical Look At Intel Ironlake Graphics Performance », Phoronix, 25 mai 2011 (consulté le 25 mai 2011)
  50. ↑ « drm/i915: Use eLLC/LLC by default when available »
  51. ↑ « drm/i915: Use Write-Through cacheing for the display plane on Iris »
  52. ↑ « Intel Has 20~30 Full-Time Linux Graphics Developers », 2 février 2013
  53. ↑ David M. Airlie « Open Source Graphic Drivers—They Don't Kill Kittens » (19 juillet 2006) (lire en ligne, consulté le 28 janvier 2007) [archive du 8 février 2007]
    — « (ibid.) », dans Proceedings of the Linux Symposium Volume One, Ottawa, Ontario, Canada
    .
  54. ↑ Michael Larabel, « VIA Publishes Three Programming Guides », sur Phoronix, 26 juillet 2008 (consulté le 4 août 2008)
  55. ↑ Michael Larabel, « VIA's Linux TODO List... Maybe Look Forward To 2011? », sur Phoronix, 21 novembre 2009 (consulté le 30 décembre 2009)
  56. ↑ VIA's Open Linux Graphics Driver Has Been Defenestrated Phoronix, January 06, 2011 (Article by Michael Larabel)
  57. ↑ « Libdlo » (consulté le 16 novembre 2017)
  58. ↑ « DisplayLink Releases Linux Source Code for its USB Graphics Processors », DisplayLink, 15 mai 2009 (consulté le 15 mai 2009)
  59. ↑ AMD's Hiring Another Open-Source Driver Developper Phoronix, December 11, 2010 (Article by Michael Larabel)
  60. ↑ It's Fedora Graphics Test Week Phoronix, February 22, 2011 (Article by Michael Larabel)
  61. ↑ PC magazine, page 68, August 7, 2007
  62. ↑ https://www.google.fr/books/edition/After_the_Software_Wars/J7sB9-oQjvwC?hl=fr&gbpv=1&dq=Linux+driver+gma+500&pg=PA212&printsec=frontcover
  • icône décorative Portail de l’informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Pilote_open_source_de_carte_graphique&oldid=227283527 ».
Catégorie :
  • Pilote informatique
Catégories cachées :
  • Article soupçonné de non pertinence
  • Article à wikifier depuis novembre 2024
  • Article à wikifier/Liste complète
  • Article à référence souhaitée
  • Article à référence nécessaire
  • Article avec une section vide ou incomplète
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id