mesa: fix a swrast state validation bug
authorBrian Paul <brian.paul@tungstengraphics.com>
Wed, 13 Aug 2008 16:28:38 +0000 (10:28 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 13 Aug 2008 16:28:38 +0000 (10:28 -0600)
Fixes progs/glsl/points.c

src/mesa/swrast/s_context.c

index eab9ff3a9e7cbca058b255683d80fb35ac52cecf..b64156a82d322d3c9b24c255bd0ff30c05a2e5a3 100644 (file)
@@ -2,7 +2,7 @@
  * Mesa 3-D graphics library
  * Version:  7.1
  *
- * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -33,6 +33,7 @@
 #include "mtypes.h"
 #include "teximage.h"
 #include "swrast.h"
+#include "shader/prog_parameter.h"
 #include "shader/prog_statevars.h"
 #include "s_blend.h"
 #include "s_context.h"
@@ -501,6 +502,13 @@ _swrast_invalidate_state( GLcontext *ctx, GLbitfield new_state )
       new_state = ~0;
    }
 
+   {
+      const struct gl_fragment_program *fp = ctx->FragmentProgram._Current;
+      if (fp && (fp->Base.Parameters->StateFlags & new_state)) {
+         _mesa_load_state_parameters(ctx, fp->Base.Parameters);
+      }
+   }
+
    if (new_state & swrast->InvalidateTriangleMask)
       swrast->Triangle = _swrast_validate_triangle;