Mesa: Fixed Function Programs Generating GLSL

Posted by Michael Larabel on October 07, 2011

Last month at XDC2011 Chicago the long-standing goal of killing off Mesa IR was talked about by Intel. There's already been the GLSL-To-TGSI translator (and also competing with that is LunarGLASS to replace Mesa IR with LLVM IR), and now there's some new work to talk about in this area that works towards the common goal.

Eric Anholt has published patches that convert the fixed function fragment program generator for Mesa to output GLSL IR. This is advancing towards the goal of having the drivers accept GLSL IR for code generation and now pushes fixed function fragment programs through the GLSL IR optimization pass. This affects hundreds of lines of code and is expected to provide an improvement for real applications. Here is Anholt's message:
Here's this patch series again, part of the kill-Mesa-IR goal we have for next release. It's been no regressions for me for a while, I was just trying to track down a 2% performance regression on gen6. It turns out that on my gen4 system, it's no performance regression, and on gen7 (at least according to testing with the followon patches to use the new coegen), it's a ~4% performance win.

While many things were learned in the process, the cause of the 2% loss appears to come down to some GPU instruction pipelining issue with lots of handwaving on my part. When using the new backend, we generate like 1/3 fewer instructions (after accounting for the 8/16 compile).

I'm not including the patches for using the new backend quite yet, as there's a functional regression on gm45 in the new backend that I need to track down first.


Mesa 7.12/8.0 is shaping up to be one hell of a release, particularly if OpenGL 3.0 support is achieved.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. The Cost Of Ubuntu Disk Encryption
  2. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  3. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  4. F2FS File-System Shows Regressions On Linux 3.10
Latest Linux News
  1. QEMU 1.5 Supports VGA Passthrough, Better USB 3.0
  2. Handbrake 0.9.9 Supports OpenCL Offloading
  3. Freedreno Gallium3D Now Banging The Adreno A3XX
  4. Jolla Announces Their First Phone
  5. Mageia 3 Released, Still Using Legacy GRUB
  6. NetBSD 6.1 Brings In More Features
  7. Using Six Monitors With AMD's Open-Source Linux Driver
  8. Benchmarking The Intel P-State, CPUfreq Changes
  9. FreeBSD Still Working On Next-Gen Package Manager
  10. DNF Still Advancing As Experimental Yum For Fedora
  11. Logitech Begins Supporting Linux Users
Latest Forum Talk
  1. QEMU 1.5 Supports VGA Passthrough, Better USB 3.0
  2. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  3. FreeBSD Still Working On Next-Gen Package Manager
  4. Benchmarking The Intel P-State, CPUfreq Changes
  5. Jolla Announces Their First Phone
  6. Kubuntu, KDE Has Little Hope For Ubuntu's Mir
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite