mesa: don't update fixed-func vert prog on irrelevant _NEW_TRANSFORM changes
authorMarek Olšák <marek.olsak@amd.com>
Wed, 3 Feb 2021 18:13:51 +0000 (13:13 -0500)
committerMarge Bot <eric+marge@anholt.net>
Fri, 26 Feb 2021 23:38:02 +0000 (23:38 +0000)
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

src/mesa/main/enable.c
src/mesa/main/state.c

index 15c3062..7806b21 100644 (file)
@@ -803,7 +803,8 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->Transform.Normalize == state)
             return;
-         FLUSH_VERTICES(ctx, _NEW_TRANSFORM, GL_TRANSFORM_BIT | GL_ENABLE_BIT);
+         FLUSH_VERTICES(ctx, _NEW_TRANSFORM | _NEW_FF_VERT_PROGRAM,
+                        GL_TRANSFORM_BIT | GL_ENABLE_BIT);
          ctx->Transform.Normalize = state;
          break;
       case GL_POINT_SMOOTH:
@@ -872,7 +873,8 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->Transform.RescaleNormals == state)
             return;
-         FLUSH_VERTICES(ctx, _NEW_TRANSFORM, GL_TRANSFORM_BIT | GL_ENABLE_BIT);
+         FLUSH_VERTICES(ctx, _NEW_TRANSFORM | _NEW_FF_VERT_PROGRAM,
+                        GL_TRANSFORM_BIT | GL_ENABLE_BIT);
          ctx->Transform.RescaleNormals = state;
          break;
       case GL_SCISSOR_TEST:
index 2ec208c..0967366 100644 (file)
@@ -492,10 +492,8 @@ _mesa_update_state_locked( struct gl_context *ctx )
                        _NEW_COLOR | _NEW_TEXTURE_STATE;
       }
 
-      if (ctx->VertexProgram._UsesTnlProgram) {
-         prog_flags |= _NEW_FF_VERT_PROGRAM | _NEW_TRANSFORM | _NEW_POINT |
-                       _NEW_FOG;
-      }
+      if (ctx->VertexProgram._UsesTnlProgram)
+         prog_flags |= _NEW_FF_VERT_PROGRAM | _NEW_POINT | _NEW_FOG;
 
       if (new_state & prog_flags) {
          /* When we generate programs from fixed-function vertex/fragment state