Mesa Receives MESA_multithread_makecurrent

Written by Michael Larabel in Intel on 21 February 2011 at 06:24 PM EST. 3 Comments
INTEL
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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week