On 09/30/2011 12:51 AM, Eric Anholt wrote:
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.
Yes, SCENECOLOR depends on material coefficients, but
LIGHTMODEL_AMBIENT does not. I'll fix that and commit.
-Brian
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev