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.

Attachment: pgptg2yExQjqA.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to