Running Mesa 9.2-devel + LLVM 3.3 SVN With The R600 Back-End

Written by Michael Larabel in Display Drivers on 26 February 2013 at 09:26 AM EST. Page 1 of 5. 8 Comments.

The last time I extensively tested the AMD Radeon Gallium3D LLVM shader compiler back-end was last April. Since then the R600 LLVM back-end has matured quite a lot with new features and was merged into upstream LLVM. In the past few days I carried out some new tests on several different graphics cards using Mesa Git master of the R600 Gallium3D open-source graphics driver.

This R600 LLVM back-end is mainly for bringing up OpenCL/Compute support on the R600 Gallium3D stack, but it can also be used for shader compilation, albeit that's not its primary target. AMD has had this LLVM back-end publicly available in early form since December of 2011 and since then it's been one of the primary responsibilities of Tom Stellard at AMD to advance this code and bring up the open-source GPGPU capabilities. When it comes to graphics support with the R600 LLVM back-end, last April it was largely a mess. As shown in the earlier article, many things wouldn't work right for shader-based games and even the Unity/Compiz desktop. Fortunately, the situation is much improved.

With the LLVM back-end still not being used by default, Mesa needs to be configured with the --enable-r600-llvm-compiler switch at compile-time. The back-end though can be dynamically enabled/disabled through the R600_LLVM environment variable. With the R600 back-end not being in a released version of LLVM until LLVM 3.3 later in the year, for now LLVM SVN needs to be utilized for fetching the latest development code. LLVM also needs to be built for now with the --enable-experimental-targets=R600 configure switch.

In testing out Mesa Git master as of yesterday (currently labeled as Mesa 9.2-devel) and LLVM 3.3 SVN, things are working much better for the graphics situation with the R600 LLVM back-end compared to many months ago. Everything went well and the graphics were being rendered correctly for the GLSL-based games. Graphics cards from the Radeon HD 4000/5000/6000 series were tested. Testing was done in conjunction with the Linux 3.8 (x86_64) kernel. Both the Unity and Xfce desktops were tested on Ubuntu Raring.

While this testing is mostly about running some new Radeon GPU benchmarks on Mesa Git master as opposed to exclusively doing an R600 LLVM back-end comparison, on the following pages are results for several different ATI/AMD Radeon graphics cards when running this very latest Radeon graphics stack atop Ubuntu 13.04. Tested graphics cards included a Radeon HD 4670, Radeon HD 4870, Radeon HD 5450, Radeon HD 5750, Radeon HD 5830, Radeon HD 6870, and Radeon HD 6950.


Related Articles