mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-10 08:10:14 +01:00
glthread: replace custom glBindBuffer marshalling with generated one
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3948>
This commit is contained in:
parent
85276e2c1b
commit
93b2ee18a1
3 changed files with 5 additions and 59 deletions
|
|
@ -5054,7 +5054,8 @@
|
|||
<type name="intptr" size="4" glx_name="CARD32"/>
|
||||
<type name="sizeiptr" size="4" unsigned="true" glx_name="CARD32"/>
|
||||
|
||||
<function name="BindBuffer" es1="1.1" es2="2.0" marshal="custom" no_error="true">
|
||||
<function name="BindBuffer" es1="1.1" es2="2.0" no_error="true"
|
||||
marshal_call_after="_mesa_glthread_BindBuffer(ctx, target, buffer);">
|
||||
<param name="target" type="GLenum"/>
|
||||
<param name="buffer" type="GLuint"/>
|
||||
<glx ignore="true"/>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue