vbo/dlist: reset vertex_store::used in reset_counters

This means that each list will start writing its vertices at index 0.

The previous mode (append) was useful in the past when the vertices
were written directly to a mapped-buffer object.

Now that there's an intermediate storage in RAM, the added complexity
of the append-mode has no value so drop it.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12646>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2021-08-12 15:48:55 +02:00
parent 3ab1ddd5c1
commit 6a63a4a14f
1 changed files with 7 additions and 5 deletions

View File

@ -188,11 +188,11 @@ reset_counters(struct gl_context *ctx)
{
struct vbo_save_context *save = &vbo_context(ctx)->save;
save->buffer_map = save->vertex_store->buffer_in_ram + save->vertex_store->used;
save->vertex_store->used = 0;
save->buffer_map = save->vertex_store->buffer_in_ram;
if (save->vertex_size)
save->max_vert = (save->vertex_store->buffer_in_ram_size / sizeof(float) - save->vertex_store->used) /
save->vertex_size;
save->max_vert = save->vertex_store->buffer_in_ram_size / (sizeof(float) * save->vertex_size);
else
save->max_vert = 0;
@ -985,11 +985,13 @@ wrap_filled_vertex(struct gl_context *ctx)
numComponents = save->copied.nr * save->vertex_size;
fi_type *buffer_ptr = save->vertex_store->buffer_in_ram + save->vertex_store->used;
fi_type *buffer_ptr = save->vertex_store->buffer_in_ram;
memcpy(buffer_ptr,
save->copied.buffer,
numComponents * sizeof(fi_type));
save->vert_count += save->copied.nr;
assert(save->vertex_store->used == 0 && save->vert_count == 0);
save->vert_count = save->copied.nr;
save->vertex_store->used = numComponents;
}