glthread: add a last parameter to unmarshal functions
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493>
This commit is contained in:
committed by
Marge Bot
parent
d53984ce97
commit
9a9860bd11
@@ -240,7 +240,7 @@ class PrintCode(gl_XML.gl_print_base):
|
||||
|
||||
out('void')
|
||||
out(('_mesa_unmarshal_{0}(struct gl_context *ctx, '
|
||||
'const struct marshal_cmd_{0} *cmd)').format(func.name))
|
||||
'const struct marshal_cmd_{0} *cmd, const uint64_t *last)').format(func.name))
|
||||
out('{')
|
||||
with indent():
|
||||
for p in fixed_params:
|
||||
|
||||
@@ -72,7 +72,7 @@ class PrintCode(gl_XML.gl_print_base):
|
||||
if flavor in ('custom', 'async'):
|
||||
print('struct marshal_cmd_{0};'.format(func.name))
|
||||
print(('void _mesa_unmarshal_{0}(struct gl_context *ctx, '
|
||||
'const struct marshal_cmd_{0} *cmd);').format(func.name))
|
||||
'const struct marshal_cmd_{0} *cmd, const uint64_t *last);').format(func.name))
|
||||
print('{0} GLAPIENTRY _mesa_marshal_{1}({2});'.format(func.return_type, func.name, func.get_parameter_string()))
|
||||
elif flavor == 'sync':
|
||||
print('{0} GLAPIENTRY _mesa_marshal_{1}({2});'.format(func.return_type, func.name, func.get_parameter_string()))
|
||||
|
||||
@@ -49,6 +49,7 @@ glthread_unmarshal_batch(void *job, void *gdata, int thread_index)
|
||||
unsigned pos = 0;
|
||||
unsigned used = batch->used;
|
||||
uint64_t *buffer = batch->buffer;
|
||||
const uint64_t *last = &buffer[used];
|
||||
|
||||
_glapi_set_dispatch(ctx->CurrentServerDispatch);
|
||||
|
||||
@@ -61,7 +62,7 @@ glthread_unmarshal_batch(void *job, void *gdata, int thread_index)
|
||||
const struct marshal_cmd_base *cmd =
|
||||
(const struct marshal_cmd_base *)&buffer[pos];
|
||||
|
||||
_mesa_unmarshal_dispatch[cmd->cmd_id](ctx, cmd);
|
||||
_mesa_unmarshal_dispatch[cmd->cmd_id](ctx, cmd, last);
|
||||
pos += cmd->cmd_size;
|
||||
}
|
||||
|
||||
|
||||
@@ -239,7 +239,8 @@ struct marshal_cmd_BufferData
|
||||
|
||||
void
|
||||
_mesa_unmarshal_BufferData(struct gl_context *ctx,
|
||||
const struct marshal_cmd_BufferData *cmd)
|
||||
const struct marshal_cmd_BufferData *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
const GLuint target_or_name = cmd->target_or_name;
|
||||
const GLsizei size = cmd->size;
|
||||
@@ -267,14 +268,16 @@ _mesa_unmarshal_BufferData(struct gl_context *ctx,
|
||||
|
||||
void
|
||||
_mesa_unmarshal_NamedBufferData(struct gl_context *ctx,
|
||||
const struct marshal_cmd_NamedBufferData *cmd)
|
||||
const struct marshal_cmd_NamedBufferData *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - all BufferData variants use DISPATCH_CMD_BufferData");
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_NamedBufferDataEXT(struct gl_context *ctx,
|
||||
const struct marshal_cmd_NamedBufferDataEXT *cmd)
|
||||
const struct marshal_cmd_NamedBufferDataEXT *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - all BufferData variants use DISPATCH_CMD_BufferData");
|
||||
}
|
||||
@@ -360,7 +363,8 @@ struct marshal_cmd_BufferSubData
|
||||
|
||||
void
|
||||
_mesa_unmarshal_BufferSubData(struct gl_context *ctx,
|
||||
const struct marshal_cmd_BufferSubData *cmd)
|
||||
const struct marshal_cmd_BufferSubData *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
const GLenum target_or_name = cmd->target_or_name;
|
||||
const GLintptr offset = cmd->offset;
|
||||
@@ -381,14 +385,16 @@ _mesa_unmarshal_BufferSubData(struct gl_context *ctx,
|
||||
|
||||
void
|
||||
_mesa_unmarshal_NamedBufferSubData(struct gl_context *ctx,
|
||||
const struct marshal_cmd_NamedBufferSubData *cmd)
|
||||
const struct marshal_cmd_NamedBufferSubData *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - all BufferSubData variants use DISPATCH_CMD_BufferSubData");
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_NamedBufferSubDataEXT(struct gl_context *ctx,
|
||||
const struct marshal_cmd_NamedBufferSubDataEXT *cmd)
|
||||
const struct marshal_cmd_NamedBufferSubDataEXT *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - all BufferSubData variants use DISPATCH_CMD_BufferSubData");
|
||||
}
|
||||
|
||||
@@ -266,7 +266,8 @@ struct marshal_cmd_DrawArrays
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawArrays(struct gl_context *ctx,
|
||||
const struct marshal_cmd_DrawArrays *cmd)
|
||||
const struct marshal_cmd_DrawArrays *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
/* Ignore the function name. We use DISPATCH_CMD_DrawArrays
|
||||
* for all DrawArrays variants without user buffers, and
|
||||
@@ -313,7 +314,8 @@ struct marshal_cmd_DrawArraysInstancedBaseInstance
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawArraysInstancedBaseInstance(struct gl_context *ctx,
|
||||
const struct marshal_cmd_DrawArraysInstancedBaseInstance *cmd)
|
||||
const struct marshal_cmd_DrawArraysInstancedBaseInstance *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
/* Ignore the function name. We use DISPATCH_CMD_DrawArrays
|
||||
* for all DrawArrays variants without user buffers, and
|
||||
@@ -423,7 +425,8 @@ struct marshal_cmd_MultiDrawArrays
|
||||
|
||||
void
|
||||
_mesa_unmarshal_MultiDrawArrays(struct gl_context *ctx,
|
||||
const struct marshal_cmd_MultiDrawArrays *cmd)
|
||||
const struct marshal_cmd_MultiDrawArrays *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
const GLenum mode = cmd->mode;
|
||||
const GLsizei draw_count = cmd->draw_count;
|
||||
@@ -564,7 +567,8 @@ struct marshal_cmd_DrawElementsInstancedARB
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawElementsInstancedARB(struct gl_context *ctx,
|
||||
const struct marshal_cmd_DrawElementsInstancedARB *cmd)
|
||||
const struct marshal_cmd_DrawElementsInstancedARB *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
/* Ignore the function name. We use DISPATCH_CMD_DrawElementsInstanced-
|
||||
* BaseVertexBaseInstance for all DrawElements variants with user buffers,
|
||||
@@ -600,7 +604,8 @@ struct marshal_cmd_DrawRangeElementsBaseVertex
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawRangeElementsBaseVertex(struct gl_context *ctx,
|
||||
const struct marshal_cmd_DrawRangeElementsBaseVertex *cmd)
|
||||
const struct marshal_cmd_DrawRangeElementsBaseVertex *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
const GLenum mode = cmd->mode;
|
||||
const GLsizei count = cmd->count;
|
||||
@@ -667,7 +672,8 @@ struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawElementsInstancedBaseVertexBaseInstance(struct gl_context *ctx,
|
||||
const struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance *cmd)
|
||||
const struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
/* Ignore the function name. We use DISPATCH_CMD_DrawElementsInstanced-
|
||||
* BaseVertexBaseInstance for all DrawElements variants with user buffers,
|
||||
@@ -873,7 +879,8 @@ struct marshal_cmd_MultiDrawElementsBaseVertex
|
||||
|
||||
void
|
||||
_mesa_unmarshal_MultiDrawElementsBaseVertex(struct gl_context *ctx,
|
||||
const struct marshal_cmd_MultiDrawElementsBaseVertex *cmd)
|
||||
const struct marshal_cmd_MultiDrawElementsBaseVertex *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
const GLenum mode = cmd->mode;
|
||||
const GLenum type = cmd->type;
|
||||
@@ -1208,43 +1215,43 @@ _mesa_marshal_MultiDrawElementsEXT(GLenum mode, const GLsizei *count,
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawArraysInstancedARB(struct gl_context *ctx, const struct marshal_cmd_DrawArraysInstancedARB *cmd)
|
||||
_mesa_unmarshal_DrawArraysInstancedARB(struct gl_context *ctx, const struct marshal_cmd_DrawArraysInstancedARB *cmd, const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - DrawArraysInstancedBaseInstance is used instead");
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawElements(struct gl_context *ctx, const struct marshal_cmd_DrawElements *cmd)
|
||||
_mesa_unmarshal_DrawElements(struct gl_context *ctx, const struct marshal_cmd_DrawElements *cmd, const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - DrawElementsInstancedBaseVertexBaseInstance is used instead");
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawRangeElements(struct gl_context *ctx, const struct marshal_cmd_DrawRangeElements *cmd)
|
||||
_mesa_unmarshal_DrawRangeElements(struct gl_context *ctx, const struct marshal_cmd_DrawRangeElements *cmd, const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - DrawElementsInstancedBaseVertexBaseInstance is used instead");
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawElementsBaseVertex(struct gl_context *ctx, const struct marshal_cmd_DrawElementsBaseVertex *cmd)
|
||||
_mesa_unmarshal_DrawElementsBaseVertex(struct gl_context *ctx, const struct marshal_cmd_DrawElementsBaseVertex *cmd, const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - DrawElementsInstancedBaseVertexBaseInstance is used instead");
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawElementsInstancedBaseVertex(struct gl_context *ctx, const struct marshal_cmd_DrawElementsInstancedBaseVertex *cmd)
|
||||
_mesa_unmarshal_DrawElementsInstancedBaseVertex(struct gl_context *ctx, const struct marshal_cmd_DrawElementsInstancedBaseVertex *cmd, const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - DrawElementsInstancedBaseVertexBaseInstance is used instead");
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_DrawElementsInstancedBaseInstance(struct gl_context *ctx, const struct marshal_cmd_DrawElementsInstancedBaseInstance *cmd)
|
||||
_mesa_unmarshal_DrawElementsInstancedBaseInstance(struct gl_context *ctx, const struct marshal_cmd_DrawElementsInstancedBaseInstance *cmd, const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - DrawElementsInstancedBaseVertexBaseInstance is used instead");
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_unmarshal_MultiDrawElementsEXT(struct gl_context *ctx, const struct marshal_cmd_MultiDrawElementsEXT *cmd)
|
||||
_mesa_unmarshal_MultiDrawElementsEXT(struct gl_context *ctx, const struct marshal_cmd_MultiDrawElementsEXT *cmd, const uint64_t *last)
|
||||
{
|
||||
unreachable("never used - MultiDrawElementsBaseVertex is used instead");
|
||||
}
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
|
||||
void
|
||||
_mesa_unmarshal_GetIntegerv(struct gl_context *ctx,
|
||||
const struct marshal_cmd_GetIntegerv *cmd)
|
||||
const struct marshal_cmd_GetIntegerv *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
unreachable("never executed");
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ struct marshal_cmd_base
|
||||
uint16_t cmd_size;
|
||||
};
|
||||
|
||||
typedef void (*_mesa_unmarshal_func)(struct gl_context *ctx, const void *cmd);
|
||||
typedef void (*_mesa_unmarshal_func)(struct gl_context *ctx, const void *cmd, const uint64_t *last);
|
||||
extern const _mesa_unmarshal_func _mesa_unmarshal_dispatch[NUM_DISPATCH_CMD];
|
||||
|
||||
static inline void *
|
||||
|
||||
@@ -38,7 +38,8 @@ struct marshal_cmd_ShaderSource
|
||||
|
||||
void
|
||||
_mesa_unmarshal_ShaderSource(struct gl_context *ctx,
|
||||
const struct marshal_cmd_ShaderSource *cmd)
|
||||
const struct marshal_cmd_ShaderSource *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
const GLint *cmd_length = (const GLint *) (cmd + 1);
|
||||
const GLchar *cmd_strings = (const GLchar *) (cmd_length + cmd->count);
|
||||
@@ -127,7 +128,8 @@ _mesa_glthread_ProgramChanged(struct gl_context *ctx)
|
||||
|
||||
void
|
||||
_mesa_unmarshal_GetActiveUniform(struct gl_context *ctx,
|
||||
const struct marshal_cmd_GetActiveUniform *cmd)
|
||||
const struct marshal_cmd_GetActiveUniform *cmd,
|
||||
const uint64_t *last)
|
||||
{
|
||||
unreachable("never executed");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user