From 62501fbf7bf0e2a9d9e4f2e001e48740a49e283d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 21 Aug 2022 17:30:18 -0400 Subject: [PATCH] glthread: use 8-bit GLenum for prim modes where it results in better packing This is OK because all modes > 14 are invalid. Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/mesa/main/glheader.h | 1 + src/mesa/main/glthread_draw.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h index 12c9b94..cf17f1e 100644 --- a/src/mesa/main/glheader.h +++ b/src/mesa/main/glheader.h @@ -44,6 +44,7 @@ extern "C" { /* Custom Mesa types to save space. */ +typedef unsigned char GLenum8; /* only for primitive modes */ typedef unsigned short GLenum16; typedef unsigned char GLbitfield8; typedef unsigned short GLbitfield16; diff --git a/src/mesa/main/glthread_draw.c b/src/mesa/main/glthread_draw.c index 2e709c4..030b7be 100644 --- a/src/mesa/main/glthread_draw.c +++ b/src/mesa/main/glthread_draw.c @@ -671,7 +671,7 @@ struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance { struct marshal_cmd_base cmd_base; bool index_bounds_valid; - GLenum16 mode; + GLenum8 mode; GLenum16 type; GLsizei count; GLsizei instance_count; @@ -756,7 +756,7 @@ draw_elements_async_user(struct gl_context *ctx, GLenum mode, GLsizei count, struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance *cmd; cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawElementsInstancedBaseVertexBaseInstance, cmd_size); - cmd->mode = MIN2(mode, 0xffff); + cmd->mode = MIN2(mode, 0xff); /* primitive types go from 0 to 14 */ cmd->type = MIN2(type, 0xffff); cmd->count = count; cmd->indices = indices; @@ -887,7 +887,7 @@ struct marshal_cmd_MultiDrawElementsBaseVertex { struct marshal_cmd_base cmd_base; bool has_base_vertex; - GLenum16 mode; + GLenum8 mode; GLenum16 type; GLsizei draw_count; GLuint user_buffer_mask; @@ -972,7 +972,7 @@ multi_draw_elements_async(struct gl_context *ctx, GLenum mode, } cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiDrawElementsBaseVertex, cmd_size); - cmd->mode = MIN2(mode, 0xffff); + cmd->mode = MIN2(mode, 0xff); /* primitive types go from 0 to 14 */ cmd->type = MIN2(type, 0xffff); cmd->draw_count = draw_count; cmd->user_buffer_mask = user_buffer_mask; -- 2.7.4