GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Donner un sens aux versions Opengl de Glxinfo ?

Quelle est la différence entre toutes les différentes chaînes de version dans la sortie de la commande glxinfo ?

J'ai déjà posé cette question ici, mais je n'ai pas reçu beaucoup de réponses et, de toute façon, il semble qu'il y ait plus de questions connexes sur AskUbuntu.

La sortie de glxinfo|grep OpenGL suit,

 glxinfo |grep Open
    Vendor: Intel Open Source Technology Center (0x8086)
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2) 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 13.0.2
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.0.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 13.0.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
.

Pourquoi le "profil de base" est-il 4.5 , alors que la chaîne de version OpenGL est 3.0 ?

Réponse acceptée :

OpenGL ES est un sous-ensemble de la spécification OpenGL originale et est conçu pour les systèmes embarqués tels que les téléphones intelligents. Je ne sais pas à 100 % pourquoi les numéros de version ne correspondent pas, mais ce n'est pas le cas. La dernière version est la 4.5 pour OpenGL et la 3.2 pour OpenGL ES. Cela explique la raison de la partie OpenGL ES de votre sortie. Dans votre cas, les dernières versions d'OpenGL et d'OpenGL ES sont prises en charge.

Vous remarquerez que les entrées OpenGL et OpenGL ES ont une chaîne de version et une chaîne de version de langue d'ombrage. Avant OpenGL 3.3, le numéro de version d'OpenGL et le numéro de version du langage d'ombrage ne correspondaient pas. Je pense que c'est la raison pour laquelle ils ont des entrées séparées dans la sortie (car ils peuvent évidemment être différents pour le matériel plus ancien). Comme indiqué dans votre sortie, le numéro de version (4.5) correspond à la version de la langue d'ombrage (également 4.5).

La partie la plus difficile (et la partie dont je ne suis pas sûr à 100 %) est la "chaîne de version OpenGL".

D'après ce que j'ai vu sur plusieurs machines complètement différentes, cela semble être limité à la version 3.0. La version du langage d'ombrage pour 3.0 est 1.3, donc la chaîne de version du langage d'ombrage est logique pour cette version d'OpenGL. Cependant, pourquoi la version est-elle limitée à 3.0 ? Mes pensées sont les suivantes :

La version 3.0 a introduit la dépréciation (voir ce lien). C'est également de là que viennent les deux profils distincts, "Core" et "Compatibilité". Toute implémentation d'OpenGL n'a qu'à implémenter la spécification "core" pour être valide.

En relation:Mac OS X ne démarre pas à partir du menu grub dans Ubuntu Precise sur Apple MBA (5,2) ?

Si vous lisez les notes de version de Mesa pour une version particulière, vous verrez une déclaration relative à ce problème de profil de base/compatibilité. Ce qui suit a été tiré des notes de version pour la dernière version 17.0.0 ici :

Mesa 17.0.0 implements the OpenGL 4.5 API, but the version reported by glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. Some drivers don't support all the features required in OpenGL 4.5. OpenGL 4.5 is only available if requested at context creation because compatibility contexts are not supported.

Notez la dernière partie "OpenGL 4.5 n'est disponible que si demandé lors de la création du contexte car les contextes de compatibilité ne sont pas pris en charge" . Par conséquent, je pense que la "chaîne de version OpenGL" est la version prise en charge pour un contexte de profil de "compatibilité" (ou en d'autres termes, pour la prise en charge de toute fonctionnalité obsolète avant la version 3.0).


Ubuntu
  1. Quelle version de PHP et MySQL votre VPS utilise-t-il ?

  2. Comment utiliser deux versions différentes de Wine sur la même installation ?

  3. Version du package mis à jour ?

  4. Vous ne pouvez pas mettre à jour Gnupg ?

  5. Comprendre les versions RPM et les schémas de nommage

Comment vérifier la version d'Ubuntu

Comment basculer entre différentes versions de commandes sous Linux

Comment basculer entre plusieurs versions de Java sur Debian

Comment trouver la version d'Ubuntu

Comment vérifier la version d'OpenGL ?

Comment changer la version de PHP dans cPanel