mesa: The glArrayElement api is independent of the current program.
authorMathias Fröhlich <mathias.froehlich@web.de>
Sun, 13 May 2018 07:18:57 +0000 (09:18 +0200)
committerMathias Fröhlich <Mathias.Froehlich@gmx.net>
Thu, 17 May 2018 18:13:40 +0000 (20:13 +0200)
All the shader program dependent handling is done on the level
of the gl_Context::Array._DrawVAO/_DrawVAOEnabledAttribs.
So, skip array element invalidation on _NEW_PROGRAM.

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
src/mesa/main/api_arrayelt.c
src/mesa/vbo/vbo_context.c

index 2dfa74f64b3571fafcd906e184dfdf6264ea9481..afa30120211e16d6c0791e4534d304dbc8023785 100644 (file)
@@ -1823,7 +1823,7 @@ _ae_invalidate_state(struct gl_context *ctx)
     * Luckily, neither the drivers nor tnl muck with the state that
     * concerns us here:
     */
-   assert(ctx->NewState & (_NEW_ARRAY | _NEW_PROGRAM));
+   assert(ctx->NewState & _NEW_ARRAY);
 
    assert(!actx->mapped_vbos);
    actx->dirty_state = true;
index ee2e31ab7a263858b90e95c828f44e3a0b3eff95..cf9405df3dc9b81566c3e33b1d1741556edcf41a 100644 (file)
@@ -157,7 +157,7 @@ vbo_exec_invalidate_state(struct gl_context *ctx)
    struct vbo_context *vbo = vbo_context(ctx);
    struct vbo_exec_context *exec = &vbo->exec;
 
-   if (ctx->NewState & (_NEW_PROGRAM | _NEW_ARRAY)) {
+   if (ctx->NewState & _NEW_ARRAY) {
       _ae_invalidate_state(ctx);
    }
    if (ctx->NewState & _NEW_EVAL)