GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Glxinfo Opengl-Versionen sinnvoll machen?

Was ist der Unterschied zwischen all den verschiedenen Versionsstrings in der Ausgabe des glxinfo-Befehls?

Ich habe dies hier bereits gestellt, aber nicht viele Antworten erhalten, und es scheint sowieso, dass es mehr verwandte Fragen auf AskUbuntu gibt.

Die Ausgabe von glxinfo|grep OpenGL folgt,

 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:
.

Warum ist das „Kernprofil“ 4.5 , während die OpenGL-Versionszeichenfolge 3.0 ist?

Akzeptierte Antwort:

OpenGL ES ist eine Teilmenge der ursprünglichen OpenGL-Spezifikation und wurde für eingebettete Systeme wie Smartphones entwickelt. Ich bin mir nicht 100% sicher, warum die Versionsnummern nicht übereinstimmen, aber sie tun es nicht. Die neueste Version ist 4.5 für OpenGL und 3.2 für OpenGL ES. Dies erklärt den Grund für den OpenGL ES-Teil Ihrer Ausgabe. In Ihrem Fall haben Sie Unterstützung für die neuesten Versionen von OpenGL und OpenGL ES.

Sie werden feststellen, dass die OpenGL- und OpenGL ES-Einträge eine Versionszeichenfolge und eine Versionszeichenfolge für die Schattierungssprache haben. Vor OpenGL 3.3 stimmten die Versionsnummer von OpenGL und die Versionsnummer der Shading-Sprache nicht überein. Ich glaube, das ist der Grund, warum sie separate Einträge in der Ausgabe haben (da sie bei älterer Hardware offensichtlich unterschiedlich sein können). Wie in Ihrer Ausgabe zu sehen ist, stimmt die Versionsnummer (4.5) mit der Shading-Sprachversion (ebenfalls 4.5) überein.

Der schwierigste Teil (und der Teil, bei dem ich mir nicht 100 % sicher bin) ist die „OpenGL-Versionszeichenfolge“.

Nach dem, was ich auf mehreren völlig unterschiedlichen Maschinen gesehen habe, scheint dies auf Version 3.0 begrenzt zu sein. Die Version der Shading-Sprache für 3.0 ist 1.3, daher ist die Versionszeichenfolge der Shading-Sprache für diese OpenGL-Version sinnvoll. Warum ist die Version jedoch auf 3.0 begrenzt? Meine Gedanken sind wie folgt:

Version 3.0 führte Veraltung ein (siehe diesen Link). Daraus entstanden auch die beiden separaten Profile „Core“ und „Compatibility“. Jede Implementierung von OpenGL muss nur die „Core“-Spezifikation implementieren, um gültig zu sein.

Verwandte:Mac OS X bootet nicht vom Grub-Menü in Ubuntu Precise auf Apple MBA (5,2)?

Wenn Sie die Mesa-Versionshinweise für eine bestimmte Version lesen, sehen Sie eine Erklärung zu diesem Kern-/Kompatibilitätsprofilproblem. Folgendes wurde den Versionshinweisen für die neueste Version 17.0.0 hier entnommen:

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.

Beachten Sie den letzten Teil „OpenGL 4.5 ist nur verfügbar, wenn bei der Kontexterstellung angefordert, da Kompatibilitätskontexte nicht unterstützt werden“ . Daher denke ich, dass die „OpenGL-Versionszeichenfolge“ die unterstützte Version für einen „Kompatibilitäts“-Profilkontext ist (oder mit anderen Worten, für die Unterstützung aller veralteten Funktionen vor Version 3.0).


Ubuntu
  1. Wie verwende ich zwei verschiedene Wine-Versionen in derselben Installation?

  2. Version des aktualisierten Pakets?

  3. Kann Gnupg nicht aktualisieren?

  4. Xpra-Version auf Ubuntu 16.04?

  5. Wie man unter Linux mit mehreren Java-Versionen arbeitet

So überprüfen Sie die Ubuntu-Version

So wechseln Sie zwischen verschiedenen Versionen von Befehlen in Linux

So wechseln Sie unter Debian zwischen mehreren Java-Versionen

So finden Sie die Ubuntu-Version

Wie überprüfe ich die OpenGL-Version?

So ändern Sie die PHP-Version in cPanel