On 05/23/2012 12:33 AM, Tapani Pälli wrote:
color material state gets reseted when vertices are flushed,
update state after flush. this change is written against piglit
test 'colormaterial-query'.

Signed-off-by: Tapani Pälli<tapani.pa...@intel.com>
---
  src/mesa/main/light.c |    4 ++++
  1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/mesa/main/light.c b/src/mesa/main/light.c
index 38ec1b6..7b7d72c 100644
--- a/src/mesa/main/light.c
+++ b/src/mesa/main/light.c
@@ -761,6 +761,10 @@ _mesa_GetMaterialfv( GLenum face, GLenum pname, GLfloat 
*params )

     FLUSH_CURRENT(ctx, 0); /* update ctx->Light.Material from vertex buffer */

+   /* flush vertices resets state, update color material */
+   if(ctx->Light.ColorMaterialEnabled)
+      _mesa_update_color_material(ctx,ctx->Current.Attrib[VERT_ATTRIB_COLOR0]);
+
     if (face==GL_FRONT) {
        f = 0;
     }

I tried your new piglit test with Mesa/master as of today and the test passes.

It looks like this commit from May 8 fixed the problem:

commit 1bc16bf98a1b5a4cca0c0ae2a80ba7982c6e4651
Author: Brian Paul <bri...@vmware.com>
Date:   Tue May 8 11:41:03 2012 -0600

    mesa: fix glMaterial / dlist bug


Can you test Mesa/master without your patch and see what happens?

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

Reply via email to