View source in Mesa

OpenSWR

A High Performance, Highly Scalable Software Rasterizer for OpenGL

Overview

OpenSWR provides a high performance, highly scalable, OpenGL-compatible software rasterizer. OpenSWR:

Click images for more information

OpenSWR internally builds on top of LLVM, and fully utilizes modern instruction sets like Intel® Advanced Vector Extensions (AVX, AVX2, and AVX512) to achieve high rendering performance. The charts below illustrate the compelling advantage of OpenSWR over Mesa llvmpipe in a real application scenario.

Click for more information

OpenSWR is now fully integrated into the Mesa "Amber" or "Classic" designation branch. OpenSWR provides a SWR renderer that supports much of the OpenGL 3.3 Core and OpenGL 3.0 Compatibility contexts. Standard Mesa environment variables provide the ability to run-time switch between OpenSWR and llvmpipe software renderers.

For more detail, please see the "OpenSWR Overview" presented at the Intel® HPC Developers Conference at SC15.

Building Mesa with OpenSWR

OpenSWR is built as a gallium driver within Mesa.

Build and run instructions are available for Linux or Windows.

Updates

March 28, 2022

Mesa 21.3.x is the latest branch where OpenSWR resides. This branch is refered to as "Amber" or "Classic". OpenSWR has been removed from the Mesa 22.x branch. News pieces from phoronix.com:

Visit the Build and Run Mesa with OpenSWR section of this document for updated deployment guidance.

See the Mesa repository browser for latest branch, staging, and tag information.

February 19, 2020
Mesa 20.0.0 has been released with an important feature change: support for tessellation shaders in OpenSWR!
December 12, 2019
Mesa 19.3.0 has been released with various fixes and couple of new features that are part of ARB_gpu_shader5:
  • enhanced textureGather
  • geometry shader instancing
  • geometry shader multiple streams
September 25, 2019
With Mesa 19.2.0 OpenSWR development has been revamped. Apart from many updates in the rasterizer core, support for the following OpenGL extensions has been added:
March 27, 2018
Mesa 18.0.0 has been released with support for SKX and KNL architectures in OpenSWR.
January 30, 2017
Added Windows build instructions, and moved instructions for both Linux and Windows to their own page.
July 8, 2016
Mesa 12.0 has been released and contains OpenSWR as an optional driver. Development work on OpenSWR is now done on the mesa git master repository.
Oct 19, 2015
Our initial public version of our Mesa+SWR integration work is now available from https://github.com/OpenSWR/openswr-mesa.
Aug 9, 2015

Since the release of early alpha, we have been busy integrating our OpenSWR core into the Mesa project. This enables us to take advantage of a very mature, very feature complete driver stack that would have been very difficult to develop on our own.

The result is that OpenSWR now has far greater functionality than the OpenGL 1.4 features available in the first alpha release.

Dec 12, 2014

ALPHA release. This version is the first to be released to the public. Please bear with us if there are build or functionality issues. The major applications used for testing were ParaView and VisIt - if you are trying another program you may encounter missing features.

This version is coming out as we are working on some major cleanups to the code. In order to keep our commitment to release this to the community and to provide a well-tested version, we are releasing the code that was used for the SC14 demonstrations. The next major release will contain the cleanups.

The source code can be downloaded here:

Dec 8, 2014
The slides for our OpenSWR-related talks at SC14 are now available:
Nov 13, 2014
There is an upcoming talk on OpenSWR at Supercomputing 2014: We will be posting the slides of this talk as soon as the event is over.