From 162c890614f579f47cce347da99757baeae80d8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 27 Nov 2023 22:12:29 -0500 Subject: [PATCH] glthread: use autogenerated marshal structures for custom functions Reviewed-by: Timothy Arceri Part-of: --- src/mapi/glapi/gen/ARB_base_instance.xml | 6 +- .../gen/ARB_draw_elements_base_vertex.xml | 3 +- src/mapi/glapi/gen/ARB_draw_indirect.xml | 12 +- src/mapi/glapi/gen/ARB_draw_instanced.xml | 3 +- .../glapi/gen/ARB_indirect_parameters.xml | 6 +- src/mapi/glapi/gen/gl_API.xml | 5 +- src/mesa/main/glthread_draw.c | 110 ------------------ src/mesa/main/glthread_draw_unroll.c | 2 +- src/mesa/main/glthread_marshal.h | 4 +- 9 files changed, 27 insertions(+), 124 deletions(-) diff --git a/src/mapi/glapi/gen/ARB_base_instance.xml b/src/mapi/glapi/gen/ARB_base_instance.xml index b57be7ad78b..5dbf895a4dd 100644 --- a/src/mapi/glapi/gen/ARB_base_instance.xml +++ b/src/mapi/glapi/gen/ARB_base_instance.xml @@ -8,7 +8,8 @@ - + @@ -25,7 +26,8 @@ - + diff --git a/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml b/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml index 2666d56a7aa..736eda82e4a 100644 --- a/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml +++ b/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml @@ -8,7 +8,8 @@ - + diff --git a/src/mapi/glapi/gen/ARB_draw_indirect.xml b/src/mapi/glapi/gen/ARB_draw_indirect.xml index 398720e0b19..11802b5a072 100644 --- a/src/mapi/glapi/gen/ARB_draw_indirect.xml +++ b/src/mapi/glapi/gen/ARB_draw_indirect.xml @@ -8,12 +8,14 @@ - + - + @@ -24,14 +26,16 @@ - + - + diff --git a/src/mapi/glapi/gen/ARB_draw_instanced.xml b/src/mapi/glapi/gen/ARB_draw_instanced.xml index 9427a086ef1..9ff2a56cc0a 100644 --- a/src/mapi/glapi/gen/ARB_draw_instanced.xml +++ b/src/mapi/glapi/gen/ARB_draw_instanced.xml @@ -15,7 +15,8 @@ - + diff --git a/src/mapi/glapi/gen/ARB_indirect_parameters.xml b/src/mapi/glapi/gen/ARB_indirect_parameters.xml index 89250abab1d..f5807d3a9eb 100644 --- a/src/mapi/glapi/gen/ARB_indirect_parameters.xml +++ b/src/mapi/glapi/gen/ARB_indirect_parameters.xml @@ -8,7 +8,8 @@ - + @@ -17,7 +18,8 @@ - + diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 99c8232d358..5e99f4cd73a 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -2959,7 +2959,7 @@ + marshal="custom" marshal_struct="public"> @@ -3210,7 +3210,8 @@ - + diff --git a/src/mesa/main/glthread_draw.c b/src/mesa/main/glthread_draw.c index 48e9fa59f93..746aa6860d9 100644 --- a/src/mesa/main/glthread_draw.c +++ b/src/mesa/main/glthread_draw.c @@ -282,14 +282,6 @@ upload_vertices(struct gl_context *ctx, unsigned user_buffer_mask, } /* DrawArrays without user buffers. */ -struct marshal_cmd_DrawArrays -{ - struct marshal_cmd_base cmd_base; - GLenum mode; - GLint first; - GLsizei count; -}; - uint32_t _mesa_unmarshal_DrawArrays(struct gl_context *ctx, const struct marshal_cmd_DrawArrays *restrict cmd) @@ -305,16 +297,6 @@ _mesa_unmarshal_DrawArrays(struct gl_context *ctx, } /* DrawArraysInstancedBaseInstance without user buffers. */ -struct marshal_cmd_DrawArraysInstancedBaseInstance -{ - struct marshal_cmd_base cmd_base; - GLenum mode; - GLint first; - GLsizei count; - GLsizei instance_count; - GLuint baseinstance; -}; - uint32_t _mesa_unmarshal_DrawArraysInstancedBaseInstance(struct gl_context *ctx, const struct marshal_cmd_DrawArraysInstancedBaseInstance *restrict cmd) @@ -631,16 +613,6 @@ _mesa_marshal_MultiDrawArrays(GLenum mode, const GLint *first, } /* DrawElementsInstanced without user buffers. */ -struct marshal_cmd_DrawElementsInstanced -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - GLenum16 type; - GLsizei count; - GLsizei instance_count; - const GLvoid *indices; -}; - uint32_t _mesa_unmarshal_DrawElementsInstanced(struct gl_context *ctx, const struct marshal_cmd_DrawElementsInstanced *restrict cmd) @@ -659,16 +631,6 @@ _mesa_unmarshal_DrawElementsInstanced(struct gl_context *ctx, } /* DrawElementsBaseVertex without user buffers. */ -struct marshal_cmd_DrawElementsBaseVertex -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - GLenum16 type; - GLsizei count; - GLint basevertex; - const GLvoid *indices; -}; - uint32_t _mesa_unmarshal_DrawElementsBaseVertex(struct gl_context *ctx, const struct marshal_cmd_DrawElementsBaseVertex *restrict cmd) @@ -687,18 +649,6 @@ _mesa_unmarshal_DrawElementsBaseVertex(struct gl_context *ctx, } /* DrawElementsInstancedBaseVertexBaseInstance without user buffers. */ -struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - GLenum16 type; - GLsizei count; - GLsizei instance_count; - GLint basevertex; - GLuint baseinstance; - const GLvoid *indices; -}; - uint32_t _mesa_unmarshal_DrawElementsInstancedBaseVertexBaseInstance(struct gl_context *ctx, const struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance *restrict cmd) @@ -1383,13 +1333,6 @@ draw_indirect_async_allowed(struct gl_context *ctx, unsigned user_buffer_mask) (ctx->GLThread.CurrentDrawIndirectBufferName && !user_buffer_mask); } -struct marshal_cmd_DrawArraysIndirect -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - const GLvoid * indirect; -}; - uint32_t _mesa_unmarshal_DrawArraysIndirect(struct gl_context *ctx, const struct marshal_cmd_DrawArraysIndirect *cmd) @@ -1427,14 +1370,6 @@ _mesa_marshal_DrawArraysIndirect(GLenum mode, const GLvoid *indirect) lower_draw_arrays_indirect(ctx, mode, (GLintptr)indirect, 0, 1); } -struct marshal_cmd_DrawElementsIndirect -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - GLenum16 type; - const GLvoid * indirect; -}; - uint32_t _mesa_unmarshal_DrawElementsIndirect(struct gl_context *ctx, const struct marshal_cmd_DrawElementsIndirect *cmd) @@ -1475,15 +1410,6 @@ _mesa_marshal_DrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indir lower_draw_elements_indirect(ctx, mode, type, (GLintptr)indirect, 0, 1); } -struct marshal_cmd_MultiDrawArraysIndirect -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - GLsizei primcount; - GLsizei stride; - const GLvoid * indirect; -}; - uint32_t _mesa_unmarshal_MultiDrawArraysIndirect(struct gl_context *ctx, const struct marshal_cmd_MultiDrawArraysIndirect *cmd) @@ -1530,16 +1456,6 @@ _mesa_marshal_MultiDrawArraysIndirect(GLenum mode, const GLvoid *indirect, lower_draw_arrays_indirect(ctx, mode, (GLintptr)indirect, stride, primcount); } -struct marshal_cmd_MultiDrawElementsIndirect -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - GLenum16 type; - GLsizei primcount; - GLsizei stride; - const GLvoid * indirect; -}; - uint32_t _mesa_unmarshal_MultiDrawElementsIndirect(struct gl_context *ctx, const struct marshal_cmd_MultiDrawElementsIndirect *cmd) @@ -1591,16 +1507,6 @@ _mesa_marshal_MultiDrawElementsIndirect(GLenum mode, GLenum type, primcount); } -struct marshal_cmd_MultiDrawArraysIndirectCountARB -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - GLsizei maxdrawcount; - GLsizei stride; - GLintptr indirect; - GLintptr drawcount; -}; - uint32_t _mesa_unmarshal_MultiDrawArraysIndirectCountARB(struct gl_context *ctx, const struct marshal_cmd_MultiDrawArraysIndirectCountARB *cmd) @@ -1656,17 +1562,6 @@ _mesa_marshal_MultiDrawArraysIndirectCountARB(GLenum mode, GLintptr indirect, read_draw_indirect_count(ctx, drawcount)); } -struct marshal_cmd_MultiDrawElementsIndirectCountARB -{ - struct marshal_cmd_base cmd_base; - GLenum16 mode; - GLenum16 type; - GLsizei maxdrawcount; - GLsizei stride; - GLintptr indirect; - GLintptr drawcount; -}; - uint32_t _mesa_unmarshal_MultiDrawElementsIndirectCountARB(struct gl_context *ctx, const struct marshal_cmd_MultiDrawElementsIndirectCountARB *cmd) @@ -1968,11 +1863,6 @@ _mesa_DrawElementsInstancedBaseVertexBaseInstanceDrawID(void) unreachable("should never end up here"); } -struct marshal_cmd_PushMatrix -{ - struct marshal_cmd_base cmd_base; -}; - uint32_t _mesa_unmarshal_PushMatrix(struct gl_context *ctx, const struct marshal_cmd_PushMatrix *restrict cmd) diff --git a/src/mesa/main/glthread_draw_unroll.c b/src/mesa/main/glthread_draw_unroll.c index f57505fa266..5611843d92a 100644 --- a/src/mesa/main/glthread_draw_unroll.c +++ b/src/mesa/main/glthread_draw_unroll.c @@ -33,7 +33,7 @@ */ #include "context.h" -#include "marshal_generated.h" +#include "glthread_marshal.h" #include "vbo/vbo_util.h" #include "util/half_float.h" diff --git a/src/mesa/main/glthread_marshal.h b/src/mesa/main/glthread_marshal.h index ec3e9c2544b..512800020f6 100644 --- a/src/mesa/main/glthread_marshal.h +++ b/src/mesa/main/glthread_marshal.h @@ -34,7 +34,6 @@ #include "main/context.h" #include "main/macros.h" #include "main/matrix.h" -#include "marshal_generated.h" struct marshal_cmd_base { @@ -49,6 +48,9 @@ struct marshal_cmd_base uint16_t cmd_size; }; +/* This must be included after "struct marshal_cmd_base" because it uses it. */ +#include "marshal_generated.h" + typedef uint32_t (*_mesa_unmarshal_func)(struct gl_context *ctx, const void *restrict cmd); extern const _mesa_unmarshal_func _mesa_unmarshal_dispatch[NUM_DISPATCH_CMD];