From f2a52b3c250831e057d1788cc2c75a35bc467202 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mathias=20Fr=C3=B6hlich?= Date: Mon, 29 Oct 2018 06:13:19 +0100 Subject: [PATCH] vbo: Make no_current_update an argument to vbo_save_NotifyBegin. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Instead of coding additional information into the primitive mode, make the only remaining flag there a direct argument to vbo_save_NotifyBegin. v2: Fix incorrect no_current_update in glRectf. Reviewed-by: Brian Paul Signed-off-by: Mathias Fröhlich --- src/mesa/main/dlist.c | 2 +- src/mesa/vbo/vbo.h | 3 ++- src/mesa/vbo/vbo_save.h | 1 - src/mesa/vbo/vbo_save_api.c | 14 +++++++------- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index ae23d292837..97461cede34 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -6094,7 +6094,7 @@ save_Begin(GLenum mode) else { ctx->Driver.CurrentSavePrimitive = mode; - vbo_save_NotifyBegin(ctx, mode); + vbo_save_NotifyBegin(ctx, mode, false); } } diff --git a/src/mesa/vbo/vbo.h b/src/mesa/vbo/vbo.h index ac0be5acf4a..60b725468d0 100644 --- a/src/mesa/vbo/vbo.h +++ b/src/mesa/vbo/vbo.h @@ -100,7 +100,8 @@ void vbo_save_SaveFlushVertices(struct gl_context *ctx); void -vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode); +vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode, + bool no_current_update); void vbo_save_NewList(struct gl_context *ctx, GLuint list, GLenum mode); diff --git a/src/mesa/vbo/vbo_save.h b/src/mesa/vbo/vbo_save.h index 6f2cc5bad42..e8677b1ac59 100644 --- a/src/mesa/vbo/vbo_save.h +++ b/src/mesa/vbo/vbo_save.h @@ -137,7 +137,6 @@ _vbo_save_get_vertex_count(const struct vbo_save_vertex_list *node) #define VBO_SAVE_BUFFER_SIZE (256*1024) /* dwords */ #define VBO_SAVE_PRIM_SIZE 128 #define VBO_SAVE_PRIM_MODE_MASK 0x3f -#define VBO_SAVE_PRIM_NO_CURRENT_UPDATE 0x80 struct vbo_save_vertex_store { struct gl_buffer_object *bufferobj; diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index 28f8c46793b..dbdd5bfbcbc 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -1193,7 +1193,8 @@ _save_CallLists(GLsizei n, GLenum type, const GLvoid * v) * Updating of ctx->Driver.CurrentSavePrimitive is already taken care of. */ void -vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode) +vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode, + bool no_current_update) { struct vbo_save_context *save = &vbo_context(ctx)->save; const GLuint i = save->prim_count++; @@ -1209,8 +1210,7 @@ vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode) save->prims[i].base_instance = 0; save->prims[i].is_indirect = 0; - save->no_current_update = - (mode & VBO_SAVE_PRIM_NO_CURRENT_UPDATE) ? 1 : 0; + save->no_current_update = no_current_update; if (save->out_of_memory) { _mesa_install_save_vtxfmt(ctx, &save->vtxfmt_noop); @@ -1280,7 +1280,7 @@ _save_PrimitiveRestartNV(void) /* restart primitive */ CALL_End(GET_DISPATCH(), ()); - vbo_save_NotifyBegin(ctx, curPrim); + vbo_save_NotifyBegin(ctx, curPrim, false); } } @@ -1294,7 +1294,7 @@ static void GLAPIENTRY _save_OBE_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) { GET_CURRENT_CONTEXT(ctx); - vbo_save_NotifyBegin(ctx, GL_QUADS); + vbo_save_NotifyBegin(ctx, GL_QUADS, false); CALL_Vertex2f(GET_DISPATCH(), (x1, y1)); CALL_Vertex2f(GET_DISPATCH(), (x2, y1)); CALL_Vertex2f(GET_DISPATCH(), (x2, y2)); @@ -1327,7 +1327,7 @@ _save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count) _ae_map_vbos(ctx); - vbo_save_NotifyBegin(ctx, (mode | VBO_SAVE_PRIM_NO_CURRENT_UPDATE)); + vbo_save_NotifyBegin(ctx, mode, true); for (i = 0; i < count; i++) CALL_ArrayElement(GET_DISPATCH(), (start + i)); @@ -1410,7 +1410,7 @@ _save_OBE_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, indices = ADD_POINTERS(indexbuf->Mappings[MAP_INTERNAL].Pointer, indices); - vbo_save_NotifyBegin(ctx, (mode | VBO_SAVE_PRIM_NO_CURRENT_UPDATE)); + vbo_save_NotifyBegin(ctx, mode, true); switch (type) { case GL_UNSIGNED_BYTE: -- 2.30.2