diff options
author | Stéphane Marchesin <[email protected]> | 2012-10-06 13:08:36 -0700 |
---|---|---|
committer | Stéphane Marchesin <[email protected]> | 2012-10-06 13:15:04 -0700 |
commit | 6ef37f71b0a0460808bb68a9102c15f313492c9f (patch) | |
tree | 51523af362057e8c0d8f5d8a1e012c1477ce6d9f /src/gallium/drivers/i915/i915_context.c | |
parent | 9dfca930d7fcfda6767d3be9b1690d010f08fea5 (diff) |
i915g: Call draw_set_mapped_vertex_buffer from draw_vbo
This regressed with the draw rework. Fixes glest and vdrift crash.
Diffstat (limited to 'src/gallium/drivers/i915/i915_context.c')
-rw-r--r-- | src/gallium/drivers/i915/i915_context.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/gallium/drivers/i915/i915_context.c b/src/gallium/drivers/i915/i915_context.c index 42d90ffc0c6..0ee6c0eb89d 100644 --- a/src/gallium/drivers/i915/i915_context.c +++ b/src/gallium/drivers/i915/i915_context.c @@ -54,7 +54,7 @@ i915_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info) struct i915_context *i915 = i915_context(pipe); struct draw_context *draw = i915->draw; const void *mapped_indices = NULL; - + unsigned i; /* * Ack vs contants here, helps ipers a lot. @@ -65,6 +65,16 @@ i915_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info) i915_update_derived(i915); /* + * Map vertex buffers + */ + for (i = 0; i < i915->nr_vertex_buffers; i++) { + const void *buf = i915->vertex_buffers[i].user_buffer; + if (!buf) + buf = i915_buffer(i915->vertex_buffers[i].buffer)->data; + draw_set_mapped_vertex_buffer(draw, i, buf); + } + + /* * Map index buffer, if present */ if (info->indexed) { @@ -92,6 +102,12 @@ i915_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info) */ draw_vbo(i915->draw, info); + /* + * unmap vertex/index buffers + */ + for (i = 0; i < i915->nr_vertex_buffers; i++) { + draw_set_mapped_vertex_buffer(i915->draw, i, NULL); + } if (mapped_indices) draw_set_indexes(draw, NULL, 0); |