On Thu, 29 Sep 2011 20:44:14 -0600, Brian Paul <brian.e.p...@gmail.com> wrote: > From: Brian Paul <bri...@vmware.com> > > If color material mode is enabled, constant buffer entries related > to the material coefficients will depend on glColor. So add > _NEW_CURRENT_ATTRIB to the bitset returned for material-related > constants in _mesa_program_state_flags(). > > This fixes a bug exercised by the new piglit draw-arrays-colormaterial > test. > --- > src/mesa/program/prog_statevars.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/src/mesa/program/prog_statevars.c > b/src/mesa/program/prog_statevars.c > index 6aa2409..504944c 100644 > --- a/src/mesa/program/prog_statevars.c > +++ b/src/mesa/program/prog_statevars.c > @@ -664,10 +664,13 @@ _mesa_program_state_flags(const gl_state_index > state[STATE_LENGTH]) > { > switch (state[0]) { > case STATE_MATERIAL: > + case STATE_LIGHTPROD: > + /* these can be effected by glColor when colormaterial mode is used */ > + return _NEW_LIGHT | _NEW_CURRENT_ATTRIB; > + > case STATE_LIGHT: > case STATE_LIGHTMODEL_AMBIENT: > case STATE_LIGHTMODEL_SCENECOLOR: > - case STATE_LIGHTPROD: > return _NEW_LIGHT;
Don't SCENECOLOR and AMBIENT, and PROD rely on it, since they also hit ctx->Light.Material.Attrib[]? I think STATE_LIGHT is the only exception.
pgptg2yExQjqA.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev