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

Reply via email to