[Bug 35257] r300_fragprog_emit.c::emit_alu(): Too many ALU instructions

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Mar 14 17:28:24 PDT 2011


https://bugs.freedesktop.org/show_bug.cgi?id=35257

--- Comment #7 from Tom Stellard <tstellar at 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

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the dri-devel mailing list