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. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. GCC 4.8.0 vs. LLVM Clang 3.3 Compiler Performance
  2. Intel Linux OpenGL Driver Leading Over Apple OS X
  3. The Cost Of Ubuntu Disk Encryption
  4. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
Latest Linux News
  1. A New X.Org-Free Wayland LiveCD Released
  2. Unity 8, Mir Made Progress This Week On Features
  3. LLVM Clang 3.3 RC2 Is Ready For Testing
  4. AMD RadeonSI Gallium3D Begins Simple CL Demos
  5. Intel Shows Off GNOME3-Based Tizen Shell
  6. Linux Desktop Security Could Be A Whole Lot Better
  7. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  8. New NVIDIA Linux Driver Supports The GeForce GTX 780
  9. Chrome 28 To Offer More Speed Improvements
  10. Digia Announces "Boot To Qt" Project
  11. X.Org Libraries Hit By Round Of Security Issues
Latest Forum Talk
  1. AMD RadeonSI Gallium3D Begins Simple CL Demos
  2. A New X.Org-Free Wayland LiveCD Released
  3. X.Org Libraries Hit By Round Of Security Issues
  4. Wayland's Weston Gets Output Scaling Support
  5. GCC 4.8.0 vs. LLVM Clang 3.3 Compiler Performance
  6. Linux's "Ondemand" Governor Is No...
  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