diff options
author | marha <marha@users.sourceforge.net> | 2012-05-09 16:07:11 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-05-09 16:07:11 +0200 |
commit | 58780b4306bd1254c6c0e65d255630d5c546005f (patch) | |
tree | 71c3b3842ee282b0228246840f5006c369684ab7 /mesalib/src/mesa/state_tracker/st_draw.c | |
parent | 38e785557684536d03fff096d56d5db61cc42e8a (diff) | |
parent | 8a448108ec0bc3a0a488b2234e0d12aee503c67c (diff) | |
download | vcxsrv-58780b4306bd1254c6c0e65d255630d5c546005f.tar.gz vcxsrv-58780b4306bd1254c6c0e65d255630d5c546005f.tar.bz2 vcxsrv-58780b4306bd1254c6c0e65d255630d5c546005f.zip |
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_draw.c')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_draw.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_draw.c b/mesalib/src/mesa/state_tracker/st_draw.c index edab76bf5..42dc37576 100644 --- a/mesalib/src/mesa/state_tracker/st_draw.c +++ b/mesalib/src/mesa/state_tracker/st_draw.c @@ -966,7 +966,6 @@ st_validate_varrays(struct gl_context *ctx, */ void st_draw_vbo(struct gl_context *ctx, - const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, const struct _mesa_index_buffer *ib, @@ -979,15 +978,22 @@ st_draw_vbo(struct gl_context *ctx, struct pipe_context *pipe = st->pipe; struct pipe_index_buffer ibuffer; struct pipe_draw_info info; + const struct gl_client_array **arrays = ctx->Array._DrawArrays; unsigned i, num_instances = 1; unsigned max_index_plus_base; - GLboolean new_array = - st->dirty.st && - (st->dirty.mesa & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT)) != 0; + GLboolean new_array; /* Mesa core state should have been validated already */ assert(ctx->NewState == 0x0); + /* Get Mesa driver state. */ + st->dirty.st |= ctx->NewDriverState; + ctx->NewDriverState = 0; + + new_array = + (st->dirty.st & (ST_NEW_VERTEX_ARRAYS | ST_NEW_VERTEX_PROGRAM)) || + (st->dirty.mesa & (_NEW_PROGRAM | _NEW_BUFFER_OBJECT)) != 0; + if (ib) { int max_base_vertex = 0; |