Fix in t_vp_build: Missed necessary updates sometimes
authorNicolai Haehnle <nhaehnle@gmail.com>
Mon, 2 Apr 2007 18:59:51 +0000 (20:59 +0200)
committerNicolai Haehnle <nhaehnle@gmail.com>
Mon, 2 Apr 2007 19:01:32 +0000 (21:01 +0200)
_mesa_update_state doesn't always reset VertexProgram._Current to NULL.
This caused us to skip a necessary update of the fixed function vertex
program sometimes.

Change the logic such that we check for updates whenever the _Current
program is either NULL or the program generated by t_vp_build.

src/mesa/tnl/t_vp_build.c

index 63c99ee6ca0fb231453dd9dcd516e61e26824cf1..dff062a417c8277c1d0835d398e0baca606f3c54 100644 (file)
@@ -1506,7 +1506,8 @@ void _tnl_UpdateFixedFunctionProgram( GLcontext *ctx )
    GLuint hash;
    const struct gl_vertex_program *prev = ctx->VertexProgram._Current;
 
-   if (!ctx->VertexProgram._Current) {
+   if (!ctx->VertexProgram._Current ||
+       ctx->VertexProgram._Current == ctx->VertexProgram._TnlProgram) {
       /* Grab all the relevent state and put it in a single structure:
        */
       key = make_state_key(ctx);