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. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  2. New NVIDIA Linux Driver Supports The GeForce GTX 780
  3. Chrome 28 To Offer More Speed Improvements
  4. Digia Announces "Boot To Qt" Project
  5. X.Org Libraries Hit By Round Of Security Issues
  6. Wayland's Weston Gets Output Scaling Support
  7. Raspberry Pi Gets New Wayland Weston Renderer
  8. Debian GNU/Hurd 2013 Release Brings New Packages
  9. Intel Ultrabook Performance Is Faster With Mesa 9.2
  10. Hot Relocation HDD To SSD Support For Btrfs
  11. Phoronix Test Suite 4.6.0 "Utsira" Released
Latest Forum Talk
  1. X.Org Libraries Hit By Round Of Security Issues
  2. Raspberry Pi Gets New Wayland Weston Renderer
  3. Chrome 27 Loads Web Pages Faster
  4. Radeon 7770 Can't reclock crash kernel
  5. Digia Announces "Boot To Qt" Project
  6. Xserver 1.14 support will arrive with Catalyst...
  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