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 Benchmarking Platform
Phoromatic Test Orchestration

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 Articles & Reviews
  1. Trying Out The Modern Linux Desktops With 4 Monitors + AMD/NVIDIA Graphics
  2. Turning A Basement Into A Big Linux Server Room
  3. NVIDIA's $1000+ GeForce GTX TITAN X Delivers Maximum Linux Performance
  4. OS X 10.10 vs. Ubuntu 15.04 vs. Fedora 21 Tests: Linux Sweeps The Board
  5. The New Place Where Linux Code Is Constantly Being Benchmarked
  6. 18-GPU NVIDIA/AMD Linux Comparison Of BioShock: Infinite
Latest Linux News
  1. Fedora 22 Alpha Now Available For AArch64 & PowerPC64
  2. Systemd Developers Did NOT Fork The Linux Kernel
  3. PulseAudio 7.0 To Enable LFE Remixing By Default
  4. Features & Changes Coming For Mir 0.13
  5. How Far Valve Has Come: Three Years Ago They Needed OpenGL Linux Help
  6. Audacity 2.1 Improves Noise Reduction, Adds Real-Time Effects Preview
  7. Linux 4.0-rc6 Kernel Released
  8. Automatically Managing The Linux Benchmarks Firing Constantly
  9. The Big Features Of The Linux 4.0 Kernel
  10. Mesa's Android Support Is Currently In Bad Shape
Most Viewed News This Week
  1. Introducing The Library Operating System For Linux
  2. Improved OpenCL Support For Blender's Cycles Renderer
  3. Allwinner Continues Jerking Around The Open-Source Community
  4. Open-Source Driver Fans Will Love NVIDIA's New OpenGL Demo
  5. GNOME 3.16 Released: It's Their Best Release Yet
  6. Systemd Change Allows For Stateless Systems With Tmpfs
  7. GNOME Shell & Mutter 3.16.0 Released
  8. GNU Nano 2.4.0 Brings Complete Undo System, Linter Support & More