Mesa: Fixed Function Programs Generating GLSL

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.
2 Comments