Revert "mesa: do not trigger _NEW_TEXTURE_STATE in glActiveTexture()"
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 14 Mar 2018 08:46:33 +0000 (09:46 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 15 Mar 2018 20:32:52 +0000 (21:32 +0100)
This reverts commit f314a532fdc7af8381586144d2631d9968331f05.

This appears to introduce some blinking textures in UT2004. Not
sure exactly what's the root cause because we don't have much
information about the issue.

Anyway, this was just a micro optimization that actually breaks,
at least, one app almost one year later.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105436
Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/mesa/main/texstate.c

index f9f50a30054d4c160e8d47c13d03c6665e6415cd..9b64b64ae583a4c36489fdb95b93eb36e85e0b05 100644 (file)
@@ -310,6 +310,19 @@ active_texture(GLenum texture, bool no_error)
       }
    }
 
+
+   /* The below flush call seems useless because
+    * gl_context::Texture::CurrentUnit is not used by
+    * _mesa_update_texture_state() and friends.
+    *
+    * However removing the flush
+    * introduced some blinking textures in UT2004. More investigation is
+    * needed to find the root cause.
+    *
+    * https://bugs.freedesktop.org/show_bug.cgi?id=105436
+    */
+   FLUSH_VERTICES(ctx, _NEW_TEXTURE_STATE);
+
    ctx->Texture.CurrentUnit = texUnit;
    if (ctx->Transform.MatrixMode == GL_TEXTURE) {
       /* update current stack pointer */