Hey Kristian, The first question is whether this is necessary - from vague memory I have an idea that current attributes need not be updated by vertex buffer rendering - ie. it's optional/implementation-dependent.
I assume you're concerned with the case where you have something like // ctx->Current.Color is xyz glDrawArrays(); // has ctx->Current.Color been updated?? But assuming I'm wrong about that & we really do want to make DrawArrays set the current values, the patch looks good... Keith 2010/9/13 Kristian Høgsberg <k...@bitplanet.net>: > Setting constant vertex attributes with glDrawArrays() doesn't work right > because the last attribute isn't copied to ctx->Current. Typically, > only the last attribute doesn't get set, since vbo_exec_wrap_upgrade_vertex() > ends up getting called when setting a new attribute, and it will copy all > previously set attributes to Current. > --- > src/mesa/vbo/vbo_exec_api.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > I'm not too familiar with this code, so I'd appreciate if somebody who > knows the vbo code better could take a quick look. > > Kristian > > diff --git a/src/mesa/vbo/vbo_exec_api.c b/src/mesa/vbo/vbo_exec_api.c > index 9df75a8..90c3dd4 100644 > --- a/src/mesa/vbo/vbo_exec_api.c > +++ b/src/mesa/vbo/vbo_exec_api.c > @@ -359,6 +359,9 @@ static void vbo_exec_fixup_vertex( GLcontext *ctx, > do { \ > struct vbo_exec_context *exec = &vbo_context(ctx)->exec; \ > \ > + /* FLUSH_UPDATE_CURRENT needs to be set manually */ \ > + exec->ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; \ > + \ > if (exec->vtx.active_sz[A] != N) \ > vbo_exec_fixup_vertex(ctx, A, N); \ > \ > -- > 1.7.2.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev