Are you sure about this? The fixed-func vertex and fragment shaders can move zero-stride vertex attribs into constants (uniforms). If a shader changes, it might no longer be necessary to submit zero-stride attribs via the vertex API, but this would be missed if _NEW_PROGRAM was ignored.
Marek On Thu, May 17, 2018 at 2:37 AM, <mathias.froehl...@gmx.net> wrote: > From: Mathias Fröhlich <mathias.froehl...@web.de> > > 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. > > Signed-off-by: Mathias Fröhlich <mathias.froehl...@web.de> > --- > src/mesa/main/api_arrayelt.c | 2 +- > src/mesa/vbo/vbo_context.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/main/api_arrayelt.c b/src/mesa/main/api_arrayelt.c > index 2dfa74f64b..afa3012021 100644 > --- a/src/mesa/main/api_arrayelt.c > +++ b/src/mesa/main/api_arrayelt.c > @@ -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; > diff --git a/src/mesa/vbo/vbo_context.c b/src/mesa/vbo/vbo_context.c > index ee2e31ab7a..cf9405df3d 100644 > --- a/src/mesa/vbo/vbo_context.c > +++ b/src/mesa/vbo/vbo_context.c > @@ -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) > -- > 2.14.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev