https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #8 from Chris Rankin rankincj@googlemail.com 2011-09-11 15:55:58 PDT --- (In reply to comment #6)
It's probably easier to add fprintf() statements to _mesa_update_state_locked() and examine the carnage...
My crude debugging has revealed that the following line in update_program_enables() is reading invalid memory:
ctx->FragmentProgram._Enabled = ctx->FragmentProgram.Enabled && ctx->FragmentProgram.Current->Base.Instructions;
It looks like ctx->FragmentProgram.Current is pointing to somewhere strange.