From a0dc303b4521bd44d93f983919898d7cfd80cba8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 29 Oct 2021 03:09:47 -0400 Subject: [PATCH] vbo: utilize structure padding to optimize indirection cold->prims[0].begin Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/mesa/vbo/vbo_save.h | 1 + src/mesa/vbo/vbo_save_api.c | 1 + src/mesa/vbo/vbo_save_draw.c | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mesa/vbo/vbo_save.h b/src/mesa/vbo/vbo_save.h index efe3904..8a513c8 100644 --- a/src/mesa/vbo/vbo_save.h +++ b/src/mesa/vbo/vbo_save.h @@ -64,6 +64,7 @@ struct vbo_save_vertex_list { struct pipe_draw_start_count_bias start_count; }; uint8_t mode; + bool draw_begins; int16_t private_refcount[VP_MODE_MAX]; struct gl_context *ctx; diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index e71613c..a483aff 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -874,6 +874,7 @@ compile_vertex_list(struct gl_context *ctx) free(merged_prims); end: + node->draw_begins = node->cold->prims[0].begin; if (!save->current_bo) { save->current_bo = ctx->Driver.NewBufferObject(ctx, VBO_BUF_ID + 1); diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c index 51c48c8..b609a7d 100644 --- a/src/mesa/vbo/vbo_save_draw.c +++ b/src/mesa/vbo/vbo_save_draw.c @@ -166,7 +166,7 @@ vbo_save_playback_vertex_list_loopback(struct gl_context *ctx, void *data) FLUSH_FOR_DRAW(ctx); - if (_mesa_inside_begin_end(ctx) && node->cold->prims[0].begin) { + if (_mesa_inside_begin_end(ctx) && node->draw_begins) { /* Error: we're about to begin a new primitive but we're already * inside a glBegin/End pair. */ @@ -304,7 +304,7 @@ vbo_save_playback_vertex_list(struct gl_context *ctx, void *data, bool copy_to_c FLUSH_FOR_DRAW(ctx); - if (_mesa_inside_begin_end(ctx) && node->cold->prims[0].begin) { + if (_mesa_inside_begin_end(ctx) && node->draw_begins) { /* Error: we're about to begin a new primitive but we're already * inside a glBegin/End pair. */ -- 2.7.4