From 93b2ee18a1c00f8b60a60e34cee3743dca45bd47 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 24 Feb 2020 19:26:12 -0500 Subject: [PATCH] glthread: replace custom glBindBuffer marshalling with generated one Reviewed-by: Timothy Arceri Part-of: --- src/mapi/glapi/gen/gl_API.xml | 3 +- src/mesa/main/marshal.c | 54 ++--------------------------------- src/mesa/main/marshal.h | 7 +---- 3 files changed, 5 insertions(+), 59 deletions(-) diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index fd21297d721..19b2dea4821 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -5054,7 +5054,8 @@ - + diff --git a/src/mesa/main/marshal.c b/src/mesa/main/marshal.c index ce91d6a8f66..f8eabf1b53c 100644 --- a/src/mesa/main/marshal.c +++ b/src/mesa/main/marshal.c @@ -136,15 +136,6 @@ _mesa_marshal_ShaderSource(GLuint shader, GLsizei count, } -/* BindBufferBase: marshalled asynchronously */ -struct marshal_cmd_BindBufferBase -{ - struct marshal_cmd_base cmd_base; - GLenum target; - GLuint index; - GLuint buffer; -}; - /** Tracks the current bindings for the vertex array and index array buffers. * * This is part of what we need to enable glthread on compat-GL contexts that @@ -168,8 +159,8 @@ struct marshal_cmd_BindBufferBase * feature that if you pass a bad name, it just gens a buffer object for you, * so we escape without having to know if things are valid or not. */ -static void -track_vbo_binding(struct gl_context *ctx, GLenum target, GLuint buffer) +void +_mesa_glthread_BindBuffer(struct gl_context *ctx, GLenum target, GLuint buffer) { struct glthread_state *glthread = ctx->GLThread; @@ -191,47 +182,6 @@ track_vbo_binding(struct gl_context *ctx, GLenum target, GLuint buffer) } -struct marshal_cmd_BindBuffer -{ - struct marshal_cmd_base cmd_base; - GLenum target; - GLuint buffer; -}; - -/** - * This is just like the code-generated glBindBuffer() support, except that we - * call track_vbo_binding(). - */ -void -_mesa_unmarshal_BindBuffer(struct gl_context *ctx, - const struct marshal_cmd_BindBuffer *cmd) -{ - const GLenum target = cmd->target; - const GLuint buffer = cmd->buffer; - CALL_BindBuffer(ctx->CurrentServerDispatch, (target, buffer)); -} -void GLAPIENTRY -_mesa_marshal_BindBuffer(GLenum target, GLuint buffer) -{ - GET_CURRENT_CONTEXT(ctx); - size_t cmd_size = sizeof(struct marshal_cmd_BindBuffer); - struct marshal_cmd_BindBuffer *cmd; - debug_print_marshal("BindBuffer"); - - track_vbo_binding(ctx, target, buffer); - - if (cmd_size <= MARSHAL_MAX_CMD_SIZE) { - cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindBuffer, - cmd_size); - cmd->target = target; - cmd->buffer = buffer; - _mesa_post_marshal_hook(ctx); - } else { - _mesa_glthread_finish(ctx); - CALL_BindBuffer(ctx->CurrentServerDispatch, (target, buffer)); - } -} - /* BufferData: marshalled asynchronously */ struct marshal_cmd_BufferData { diff --git a/src/mesa/main/marshal.h b/src/mesa/main/marshal.h index c53c060f593..b75613b9a3e 100644 --- a/src/mesa/main/marshal.h +++ b/src/mesa/main/marshal.h @@ -151,7 +151,6 @@ struct _glapi_table * _mesa_create_marshal_table(const struct gl_context *ctx); struct marshal_cmd_ShaderSource; -struct marshal_cmd_BindBuffer; struct marshal_cmd_BufferData; struct marshal_cmd_BufferSubData; struct marshal_cmd_NamedBufferData; @@ -165,12 +164,8 @@ void _mesa_unmarshal_ShaderSource(struct gl_context *ctx, const struct marshal_cmd_ShaderSource *cmd); -void GLAPIENTRY -_mesa_marshal_BindBuffer(GLenum target, GLuint buffer); - void -_mesa_unmarshal_BindBuffer(struct gl_context *ctx, - const struct marshal_cmd_BindBuffer *cmd); +_mesa_glthread_BindBuffer(struct gl_context *ctx, GLenum target, GLuint buffer); void _mesa_unmarshal_BufferData(struct gl_context *ctx, -- 2.30.2