1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

A New Linux OpenGL ABI Is Being Proposed

Mesa

Published on 13 September 2012 10:57 AM EDT
Written by Michael Larabel in Mesa
29 Comments

The Linux OpenGL stack along with the upstream OpenGL specification has been evolving at a fast pace in recent years. There was recently some discussion within the Khronos camp for updating the guide for how to implement OpenGL support on Linux and it's been decided it will be talked about next week at XDC2012. To get the ball rolling for planning out a new Linux OpenGL ABI, NVIDIA has published a proposal.

Andy Ritger of NVIDIA has sent out a straw-man proposal for a revised Linux OpenGL ABI in advance of next week's meeting in N├╝rnberg. The current Linux OpenGL ABI is effectively twelve years old now and is in need of being updated. Among the reasons that an update is needed comes down to:

- EGL showing it can be a compelling alternative to GLX for the windowing system binding. Intel has already told application developers to target EGL rather than GLX. Wayland also does away with GLX in favor of EGL. An Intel Linux developer has also been working on Waffle for run-time selection of the windowing system and GL implementation.

- The OpenGL API has advanced greatly over the past decade.

- Deciding what to do about GL_ARB_compatibility entry points.

- It's a major pain for both Linux software vendors and end-users that the current ABI doesn't allow multiple vendors' OpenGL implementations on the same file-system. A.k.a. each driver shipping its own libGL.so.1 that causes clashes with other drivers and lead to headaches when installing/removing graphics drivers. Solving this will perhaps be the most noticeable change for end-users.

As written within Andy's initial straw-man proposal, the new Linux OpenGL ABI won't seek to push this standard to Android or other embedded Linux implementations. It's also not being forced onto other UNIX-like systems such as BSD or Solaris, but in the end it may carry relevance there too.

For not breaking compatibility with existing OpenGL/GLX programs of the past decade, the existing application ABI should be preserved although likely to be deprecated. Again, the most positive point illustrated for end-users is that multiple OpenGL vendor driver implementations must be able to co-exist on the same file-system without colliding -- this will be really great to see!

The existing libGL.so.1 library should end up being a vendor-neutral API library that plugs into a libOpenGL.so.1 and libGLX.so.1 for fitting into this new ABI equation and not regressing on existing Linux OpenGL support. The proposed libOpenGL.so.1 library would then be this new interface that provides symbols for a to-be-determined version of OpenGL, no EGL/GLX entry points will be provided (like GLX with libGL), and functions for vendor OpenGL libraries to provide their dispatch table and reporting their GetProcessAddress-able functions. There would also be new EGL and OpenGL ES libraries.

The vendor/driver-specific libraries would likely carry a postfix of the vendor's name, e.g. libEGL_nvidia.so.1, so that there wouldn't be library collisions like there is now and these driver libraries then would register with the generic API library that interfaces with the user-space application.

There's certainly a need for an updated Linux OpenGL ABI and it's likely to happen. The specific details mentioned in this article are just the initial ideas expressed by Andy Ritger of NVIDIA's UNIX/Linux team to get the ball rolling. More specifics will be discussed next week from XDC2012, which will be covered on Phoronix. This new Linux OpenGL ABI though won't materialize over night and will likely be a while before it's adopted across the board for the benefit of the Linux desktop.

The initial proposal in full can be found on the mesa-dev mailing list.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. AMD R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  2. Intel Pentium G3258 On Linux
  3. SilverStone Precision PS10
  4. ASRock Z97 Extreme6
Latest Linux Articles
  1. Nouveau vs. Radeon vs. Intel Tests On Linux 3.16, Mesa 10.3-devel
  2. KVM Benchmarks On Ubuntu 14.10
  3. X.Org Server 1.16 Officially Released With Terrific Features
  4. Ubuntu With Linux 3.16 Smashes OS X 10.9.4 On The MacBook Air
Latest Linux News
  1. A New Video Has Us Real Excited About The New UT For Linux
  2. CoreOS Experiences Its First Stable Release
  3. GNOME 3.13.4 Continues Working On Wayland & More
  4. Wine 1.7.23 Has Initial Support For 64-bit Android Builds
  5. FreeBSD Developing A New Automounter, Other Features
  6. Guix 0.7 Can Now Install The GNU Operating System
  7. X.Org Foundation Still Works Towards Becoming An SPI Project
  8. Open-Source AMD Hawaii Support Should Now Be Working!
  9. KDE Developers Continue Working Toward Wayland Support
  10. Ubuntu 14.04.1 LTS Released
Latest Forum Discussions
  1. Debian + radeonsi
  2. Open-source drivers on ATI R7 260X
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. New build, first Linux PC, what could go wrong? ;)
  5. AMD "Hawaii" Open-Source GPU Acceleration Still Not Working Right
  6. Radeon related kernel bug??
  7. how the US intellegentia operates:
  8. AMD Publishes Open-Source Linux HSA Kernel Driver