From ea99d1c74830c1f2c7a20a6eab9f383859212298 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Thu, 12 Aug 2021 16:23:34 +0200 Subject: [PATCH] vbo/dlist: remove vbo_save_context::max_vert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit max_vert is easy to deduce from vertex_store so remove it to simplify the code. Reviewed-by: Marek Olšák Part-of: --- src/mesa/vbo/vbo.h | 1 - src/mesa/vbo/vbo_save_api.c | 21 +++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/mesa/vbo/vbo.h b/src/mesa/vbo/vbo.h index c75f991caeb..61a9b65c24f 100644 --- a/src/mesa/vbo/vbo.h +++ b/src/mesa/vbo/vbo.h @@ -179,7 +179,6 @@ struct vbo_save_context { fi_type vertex[VBO_ATTRIB_MAX*4]; /* current values */ fi_type *attrptr[VBO_ATTRIB_MAX]; GLuint vert_count; - GLuint max_vert; GLboolean dangling_attr_ref; struct vbo_save_copied_vtx copied; diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index b6830ebc453..645806b1d5d 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -166,12 +166,6 @@ reset_counters(struct gl_context *ctx) struct vbo_save_context *save = &vbo_context(ctx)->save; save->vertex_store->used = 0; - - if (save->vertex_size) - save->max_vert = save->vertex_store->buffer_in_ram_size / (sizeof(float) * save->vertex_size); - else - save->max_vert = 0; - save->prim_store->used = 0; save->vert_count = 0; save->dangling_attr_ref = GL_FALSE; @@ -938,6 +932,8 @@ wrap_filled_vertex(struct gl_context *ctx) { struct vbo_save_context *save = &vbo_context(ctx)->save; unsigned numComponents; + ASSERTED uint32_t max_vert = save->vertex_size ? + save->vertex_store->buffer_in_ram_size / (sizeof(float) * save->vertex_size) : 0; /* Emit a glEnd to close off the last vertex list. */ @@ -945,7 +941,7 @@ wrap_filled_vertex(struct gl_context *ctx) /* Copy stored stored vertices to start of new list. */ - assert(save->max_vert - save->vert_count > save->copied.nr); + assert(max_vert - save->vert_count > save->copied.nr); numComponents = save->copied.nr * save->vertex_size; @@ -1043,9 +1039,6 @@ upgrade_vertex(struct gl_context *ctx, GLuint attr, GLuint newsz) save->enabled |= BITFIELD64_BIT(attr); save->vertex_size += newsz - oldsz; - save->max_vert = ((save->vertex_store->buffer_in_ram_size / sizeof(float) - - save->vertex_store->used) / - save->vertex_size); save->vert_count = 0; /* Recalculate all the attrptr[] values: @@ -1211,13 +1204,15 @@ do { \ \ if ((A) == 0) { \ GLuint i; \ + uint32_t max_vert = save->vertex_size ? \ + save->vertex_store->buffer_in_ram_size / (sizeof(float) * save->vertex_size) : 0; \ fi_type *buffer_ptr = save->vertex_store->buffer_in_ram + save->vertex_store->used; \ \ for (i = 0; i < save->vertex_size; i++) \ buffer_ptr[i] = save->vertex[i]; \ \ save->vertex_store->used += save->vertex_size; \ - if (++save->vert_count >= save->max_vert) \ + if (++save->vert_count >= max_vert) \ wrap_filled_vertex(ctx); \ } \ } while (0) @@ -1551,9 +1546,11 @@ static void _ensure_draws_fits_in_storage(struct gl_context *ctx, int primcount, int vertcount) { struct vbo_save_context *save = &vbo_context(ctx)->save; + uint32_t max_vert = save->vertex_size ? + save->vertex_store->buffer_in_ram_size / (sizeof(float) * save->vertex_size) : 0; bool realloc_prim = save->prim_store->used + primcount > save->prim_store->size; - bool realloc_vert = save->vertex_size && (save->vert_count + vertcount >= save->max_vert); + bool realloc_vert = save->vertex_size && (save->vert_count + vertcount >= max_vert); if (realloc_prim || realloc_vert) { if (realloc_vert && (save->vert_count || save->prim_store->used)) {