[Mesa-dev] [PATCH 1/2] mesa: don't flag _NEW_ARRAY for GL_PRIMITIVE_RESTART_NV

Marek Olšák maraeo at gmail.com
Thu Jun 22 12:34:28 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

---
 src/mesa/main/enable.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index f1a9c7b..e1293f9 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -59,20 +59,21 @@ update_derived_primitive_restart_state(struct gl_context *ctx)
 
 /**
  * Helper to enable/disable client-side state.
  */
 static void
 client_state(struct gl_context *ctx, GLenum cap, GLboolean state)
 {
    struct gl_vertex_array_object *vao = ctx->Array.VAO;
    GLbitfield64 flag;
    GLboolean *var;
+   uint64_t new_state = _NEW_ARRAY;
 
    switch (cap) {
       case GL_VERTEX_ARRAY:
          var = &vao->VertexAttrib[VERT_ATTRIB_POS].Enabled;
          flag = VERT_BIT_POS;
          break;
       case GL_NORMAL_ARRAY:
          var = &vao->VertexAttrib[VERT_ATTRIB_NORMAL].Enabled;
          flag = VERT_BIT_NORMAL;
          break;
@@ -108,30 +109,31 @@ client_state(struct gl_context *ctx, GLenum cap, GLboolean state)
          ctx->VertexProgram.PointSizeEnabled = state;
          break;
 
       /* GL_NV_primitive_restart */
       case GL_PRIMITIVE_RESTART_NV:
          if (!ctx->Extensions.NV_primitive_restart) {
             goto invalid_enum_error;
          }
          var = &ctx->Array.PrimitiveRestart;
          flag = 0;
+         new_state = 0; /* primitive restart is not a vertex array state */
          break;
 
       default:
          goto invalid_enum_error;
    }
 
    if (*var == state)
       return;
 
-   FLUSH_VERTICES(ctx, _NEW_ARRAY);
+   FLUSH_VERTICES(ctx, new_state);
 
    *var = state;
 
    update_derived_primitive_restart_state(ctx);
 
    if (state)
       vao->_Enabled |= flag;
    else
       vao->_Enabled &= ~flag;
 
-- 
2.7.4



More information about the mesa-dev mailing list