Intel Is Making A High-Performance Software Rasterizer For Mesa

Written by Michael Larabel in Mesa on 20 October 2015 at 03:09 PM EDT. 36 Comments
MESA
While Mesa currently has the swrast, LLVMpipe, and Softpipe drivers as software rasterizers that run OpenGL on the CPU rather than any dedicated GPU, a team at Intel has been developing a new, high-performance software rasterizer. This Intel team hopes to upstream their new "OpenSWR" project into Mesa as offering fast, CPU-rendered graphics.

OpenSWR is the newly-announced high performance software rasterizer that's developed at Intel by a different development team than the ones maintaining the i965 Mesa DRI driver and the rest of the Linux graphics stack.

The group is primarily concerned with software-defined visualizations and scientific visualizations for which they developed OpenSWR. Intel already had developed a high-performance software rasterizer internally and then later they decided to engage in this project and work on upstream Mesa3D support.

In terms of the performance, "For the types of high-geometry workloads we're interested in, we are significantly faster than llvmpipe. This is to be expected, as llvmpipe only threads the fragment processing and not the geometry frontend. The linked slide below shows some performance numbers from a benchmark dataset and application. On a 36 total core dual E5-2699v3 we see performance 29x to 51x that of llvmpipe. While our current performance is quite good, we know there is more potential in this architecture. When we switched from a prototype OpenGL driver to Mesa we regressed performance severely, some due to interface issues that need tuning, some differences in shader code generation, and some due to conformance and feature additions to the core swr. We are looking to recovering most of this performance back."


This new rasterizer is being put out under the Mesa MIT license. Intel is making it open-source to satisfy customers while making it easier to deploy. Unlike their Intel i965 Mesa driver, this rasterizer builds atop Gallium3D. Additionally, OpenSWR makes use of LLVM.

The rasterizer should work with AMD CPUs, assuming your processor has AVX/AVX2 support. Intel plans on adding AVX512 support as well.

More details on this exciting new project can be found via their announcement. Until the code ends up getting mainlined, it can be found for now on this GitHub repository. Yes, I hope to run some benchmarks soon on OpenSWR.
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