https://bugs.freedesktop.org/show_bug.cgi?id=35257
--- Comment #7 from Tom Stellard tstellar@gmail.com 2011-03-14 17:28:24 PDT --- (In reply to comment #5)
(In reply to comment #4)
Like Marek said, this isn't a bug it is a hardware limitation. The only way this could work is with changes to Gnome Shell, so you should contact the Gnome Shell developers, although they might tell your hardware is unsupported.
Since we know there's a lot of work still to be done in the compiler's higher level optimization passes, I always feel like this is a bit of a cop out answer. The TGSI input is 125 instructions, and it looks like a nightmare of lowered if-statements. There are way more CMP/SEQ/MUL sequences than any program should generate. Unsurprisingly, the driver chokes on it. I'm sure the i915 driver, which has limitations similar to r300, would choke even worse.
Comparing the GLSL to the generated TGSI might reveal some high-level optimization opportunities that we're missing. It may also help us give some suggestions to the gnome-shell folks to make the shader more friendly to older hardware. There are, after all, a lot of i915s and r300s out there.
Just for giggles, could we get the output of MESA_GLSL=dump too? Use the same procedure as for RADEON_DEBUG=fp.
We were able to give some suggestions to the gnome shell developers to get the shader to fit. The optimization that is missing is pre-computing of equivalent expressions (not sure what the technical term is). In this shader there was a four clause conditional that was being used in two different IF statements. I've attached the before and after versions of the shader if you're interested