i915g: Call draw_set_mapped_vertex_buffer from draw_vbo

This regressed with the draw rework. Fixes glest and vdrift crash.
This commit is contained in:
Stéphane Marchesin 2012-10-06 13:08:36 -07:00
parent 9dfca930d7
commit 6ef37f71b0
2 changed files with 17 additions and 15 deletions

View file

@ -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.
@ -64,6 +64,16 @@ i915_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info)
if (i915->dirty)
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
*/
@ -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);

View file

@ -936,24 +936,10 @@ static void i915_set_vertex_buffers(struct pipe_context *pipe,
util_copy_vertex_buffers(i915->vertex_buffers,
&i915->nr_vertex_buffers,
buffers, count);
#if 0
/* XXX doesn't look like this is needed */
/* unmap old */
for (i = 0; i < i915->num_vertex_buffers; i++) {
draw_set_mapped_vertex_buffer(draw, i, NULL);
}
#endif
/* pass-through to draw module */
draw_set_vertex_buffers(draw, count, buffers);
/* map new */
for (i = 0; i < count; i++) {
const void *buf = buffers[i].user_buffer;
if (!buf)
buf = i915_buffer(buffers[i].buffer)->data;
draw_set_mapped_vertex_buffer(draw, i, buf);
}
}
static void *