Mesa Receives MESA_multithread_makecurrent

Posted by Michael Larabel on February 21, 2011

The Mesa code-base now has patches for supporting the new MESA_multithread_makecurrent GLX extension. This extension was originally proposed in 2009 at the Cairo and GStreamer Hackfest but more than a year later it's now only materializing within Mesa and first within Intel's driver.

This GLX extension is designed around the needs of some applications, such as GStreamer and Cairo, with their threading model so that a single GLX context can be shared between multiple threads. By sharing the same context, this can allow for performance increases and can be even simpler from an implementation perspective too for the application developer.

Here's an overview from the GLX specification:
The GLX context setup encourages multithreaded applications to create a context per thread which each operate on their own objects in parallel, and leaves synchronization for shared objects up to the application.

For some applications, maintaining per-thread contexts and ensuring that the glFlush happens in one thread before another thread starts working on that object is difficult. For them, using the same context across multiple threads and protecting its usage with a global lock is both higher performance and easier to implement. This extension gives those applications that option by relaxing the context binding requirements.

The patch set where Intel's Eric Anholt is currently seeking feedback can be found in this Mesa mailing list series.

In terms of performance improvements thanks to this patch-set, Eric is reporting an approximate 35% boost in performance thanks to this yet-to-be-merged code.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. NVIDIA Driver Soon Likely To Support EGL, Mir
  2. OpenMandriva Goes Into Alpha Form, Russian-Based
  3. NVIDIA Brings Their Linux Driver To ARM
  4. D Language Still Showing Promise, Advancements
  5. Planetary Annihilation Released For Linux Gamers
  6. Gentoo Starts Work On KDE-Wayland Support
  7. NVIDIA To License Its Kepler GPU Technology
  8. KDE's KWin Made Lots Of Progress In 4.11
  9. Ubuntu Announces Carrier Advisory Group
  10. Qt 5.1 Release Candidate 1 Has Arrived
  11. In-Fighting Continues Over Mir On Non-Unity Ubuntu
Latest Forum Talk
  1. D Language Still Showing Promise, Advancements
  2. NVIDIA Brings Their Linux Driver To ARM
  3. NVIDIA Driver Soon Likely To Support EGL, Mir
  4. Gentoo Starts Work On KDE-Wayland Support
  5. OpenMandriva Goes Into Alpha Form, Russian-Based
  6. Planetary Annihilation Released For Linux Gamers
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite