diff options
Diffstat (limited to 'mesalib/src/mesa/vbo/vbo_exec_array.c')
-rw-r--r-- | mesalib/src/mesa/vbo/vbo_exec_array.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/mesalib/src/mesa/vbo/vbo_exec_array.c b/mesalib/src/mesa/vbo/vbo_exec_array.c index 18719d5f5..4e4f2c947 100644 --- a/mesalib/src/mesa/vbo/vbo_exec_array.c +++ b/mesalib/src/mesa/vbo/vbo_exec_array.c @@ -538,7 +538,7 @@ recalculate_input_bindings(struct gl_context *ctx) } } - for (i = 0; i < MAX_VERTEX_GENERIC_ATTRIBS; i++) { + for (i = 1; i < MAX_VERTEX_GENERIC_ATTRIBS; i++) { if (exec->array.generic_array[i]->Enabled) inputs[VERT_ATTRIB_GENERIC0 + i] = exec->array.generic_array[i]; else { @@ -547,6 +547,7 @@ recalculate_input_bindings(struct gl_context *ctx) } } + inputs[VERT_ATTRIB_GENERIC0] = inputs[0]; ctx->NewState |= _NEW_ARRAY; break; } @@ -562,8 +563,8 @@ recalculate_input_bindings(struct gl_context *ctx) * Note that this might set the _NEW_ARRAY dirty flag so state validation * must be done after this call. */ -static void -bind_arrays(struct gl_context *ctx) +void +vbo_bind_arrays(struct gl_context *ctx) { if (!ctx->Array.RebindArrays) { return; @@ -589,7 +590,7 @@ vbo_draw_arrays(struct gl_context *ctx, GLenum mode, GLint start, struct vbo_exec_context *exec = &vbo->exec; struct _mesa_prim prim[2]; - bind_arrays(ctx); + vbo_bind_arrays(ctx); /* Again... because we may have changed the bitmask of per-vertex varying * attributes. If we regenerate the fixed-function vertex program now @@ -803,7 +804,7 @@ vbo_validated_drawrangeelements(struct gl_context *ctx, GLenum mode, return; } - bind_arrays( ctx ); + vbo_bind_arrays( ctx ); /* check for dirty state again */ if (ctx->NewState) @@ -1128,7 +1129,7 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode, * same index buffer, or if we have to reset the index pointer per * primitive. */ - bind_arrays( ctx ); + vbo_bind_arrays( ctx ); /* check for dirty state again */ if (ctx->NewState) |