[Mesa-dev] [PATCH] mesa: add _NEW_CURRENT_ATTRIB in _mesa_program_state_flags()

Eric Anholt eric at anholt.net
Thu Sep 29 23:51:35 PDT 2011


On Thu, 29 Sep 2011 20:44:14 -0600, Brian Paul <brian.e.paul at gmail.com> wrote:
> From: Brian Paul <brianp at 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20110929/603492b9/attachment.pgp>


More information about the mesa-dev mailing list