AMD R600g LLVM Back-End Is Working A Bit Better
The R600g LLVM shader compiler back-end that's primarily intended for the Radeon Gallium3D compute support is now working a bit better for graphics support compared to when it was first committed.
Back in April the R600g LLVM compiler was hooked-up as part of AMD's effort to enable OpenCL/GPGPU support within their open-source driver stack. They've been working on the support for months and it was in early December of last year that the R600g LLVM back-end first surfaced. The LLVM back-end hasn't yet been merged in upstream LLVM but is currently living within Mesa and can be built against LLVM 3.1.
The LLVM back-end for the R600 Gallium3D driver currently isn't used or built by default but requires a build-time switch. When the back-end is integrated, the R600g LLVM support can still be toggled at run-time using the R600_LLVM environment variable.
In April after everything was merged I tried out the Radeon Gallium3D LLVM compiler back-end to see how it would work out for graphics. OpenCL is the target of the shader compiler but it could be used for OpenGL's GLSL too. Back in April it was a broken wreck for this graphics support with Xonotic and other games not rendering correctly, etc.
While GLSL on the R600g LLVM back-end hasn't been the primary target, since April the support has improved. This weekend I tested out Mesa Git master with LLVM 3.1 and it's now working much better when the LLVM back-end is enabled. Xonotic shaders now are working correctly, etc. I didn't encounter any visual defects like I saw when trying it out nearly two months ago.
Though if you're hoping for any performance changes, there weren't any major differences spotted in the few tests that I ran. Granted, the tests were just measuring the in-game frame-rates and not the shader compiler time, etc. However, for anyone interested in seeing some Mesa Git benchmarks from a Radeon HD 4890 setup with the LLVM back-end enabled, head on over to OpenBenchmarking.org.
Back in April the R600g LLVM compiler was hooked-up as part of AMD's effort to enable OpenCL/GPGPU support within their open-source driver stack. They've been working on the support for months and it was in early December of last year that the R600g LLVM back-end first surfaced. The LLVM back-end hasn't yet been merged in upstream LLVM but is currently living within Mesa and can be built against LLVM 3.1.
The LLVM back-end for the R600 Gallium3D driver currently isn't used or built by default but requires a build-time switch. When the back-end is integrated, the R600g LLVM support can still be toggled at run-time using the R600_LLVM environment variable.
In April after everything was merged I tried out the Radeon Gallium3D LLVM compiler back-end to see how it would work out for graphics. OpenCL is the target of the shader compiler but it could be used for OpenGL's GLSL too. Back in April it was a broken wreck for this graphics support with Xonotic and other games not rendering correctly, etc.
While GLSL on the R600g LLVM back-end hasn't been the primary target, since April the support has improved. This weekend I tested out Mesa Git master with LLVM 3.1 and it's now working much better when the LLVM back-end is enabled. Xonotic shaders now are working correctly, etc. I didn't encounter any visual defects like I saw when trying it out nearly two months ago.
Though if you're hoping for any performance changes, there weren't any major differences spotted in the few tests that I ran. Granted, the tests were just measuring the in-game frame-rates and not the shader compiler time, etc. However, for anyone interested in seeing some Mesa Git benchmarks from a Radeon HD 4890 setup with the LLVM back-end enabled, head on over to OpenBenchmarking.org.
16 Comments