From 7216e1d8afedda9dd0f8a6ab0e03274190d1c7be Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 2 Apr 2017 14:42:17 +0200 Subject: [PATCH] gallium: decrease the size of pipe_draw_info - 88 -> 80 bytes MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Nicolai Hähnle Reviewed-by: Brian Paul --- src/gallium/auxiliary/indices/u_primconvert.c | 10 ++++++++-- src/gallium/include/pipe/p_state.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gallium/auxiliary/indices/u_primconvert.c b/src/gallium/auxiliary/indices/u_primconvert.c index 2bdfade8a54..1ffca4b593c 100644 --- a/src/gallium/auxiliary/indices/u_primconvert.c +++ b/src/gallium/auxiliary/indices/u_primconvert.c @@ -128,12 +128,15 @@ util_primconvert_draw_vbo(struct primconvert_context *pc, new_info.primitive_restart = info->primitive_restart; new_info.restart_index = info->restart_index; if (info->indexed) { + enum pipe_prim_type mode = 0; + u_index_translator(pc->primtypes_mask, info->mode, pc->saved_ib.index_size, info->count, pc->api_pv, pc->api_pv, info->primitive_restart ? PR_ENABLE : PR_DISABLE, - &new_info.mode, &new_ib.index_size, &new_info.count, + &mode, &new_ib.index_size, &new_info.count, &trans_func); + new_info.mode = mode; src = ib->user_buffer; if (!src) { src = pipe_buffer_map(pc->pipe, ib->buffer, @@ -142,11 +145,14 @@ util_primconvert_draw_vbo(struct primconvert_context *pc, src = (const uint8_t *)src + ib->offset; } else { + enum pipe_prim_type mode = 0; + u_index_generator(pc->primtypes_mask, info->mode, info->start, info->count, pc->api_pv, pc->api_pv, - &new_info.mode, &new_ib.index_size, &new_info.count, + &mode, &new_ib.index_size, &new_info.count, &gen_func); + new_info.mode = mode; } u_upload_alloc(pc->pipe->stream_uploader, 0, new_ib.index_size * new_info.count, 4, diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index 45c213795c6..ce9ca34d295 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -644,7 +644,7 @@ struct pipe_index_buffer struct pipe_draw_info { boolean indexed; /**< use index buffer */ - enum pipe_prim_type mode; /**< the mode of the primitive */ + enum pipe_prim_type mode:8; /**< the mode of the primitive */ boolean primitive_restart; ubyte vertices_per_patch; /**< the number of vertices per patch */ -- 2.30.2