Primus: Client-Side GPU Offloading In 500 Lines Of Code

Written by Michael Larabel in Mesa on 3 September 2012 at 10:04 AM EDT. 8 Comments
MESA
While PRIME offloading has finally materialized and will be set when X.Org Server 1.13 is released, a new client-side GPU offloading implementation has now surfaced. Primus is a small lightweight GPU offloading implementation written in about 500 lines of code.

The PRIME / DRI2 offloading work was invasive to the xorg-server and DDX drivers with various changes being required in order to ultimately support technologies like NVIDIA Optimus. Meanwhile an independent developer has come along and wrote his own lightweight, client-side offloading implementation inspired by PRIME. Alexander Monakov introduced "Primus" to the world on Sunday.

Primus is more like VirtualGL rather than the full PRIME solution as it just deals with GLX forking for handling OpenGL offloading. Primus comes down to a ~500 lines of code pre-loadable library. This library tracks contexts and drawables and creates shadow contexts and pbuffers on a secondary X.Org Server to where OpenGL commands are redirected. Upon calling glXSwapBuffers, the contents from the secondary X.Org Server are ready and displayed. This basic implementation has been tested on a system with Intel and NVIDIA graphics while reportedly seeing "decent performance" out of the Primus library.

As far as the motive on working out this solution late in the game, "Even though this project may seem a little late given that PRIME has gained traction, I hope that it may serve as a benchmark for PRIME offloading, and maybe even as a real offloading solution in the meantime given enough bugfixing effort."

More details can be found in this mailing list message.
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