glthread: qualify the *cmd unmarshal parameter with restrict

This seems like a logical thing to do. Clearly the memory can't be
accessed with any other pointer.

Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777>
This commit is contained in:
Marek Olšák 2022-08-13 01:42:34 -04:00
parent 862b00b795
commit c455ea6144
8 changed files with 34 additions and 32 deletions

View file

@ -191,7 +191,7 @@ class PrintCode(gl_XML.gl_print_base):
out('uint32_t')
out(('_mesa_unmarshal_{0}(struct gl_context *ctx, '
'const struct marshal_cmd_{0} *cmd)').format(func.name))
'const struct marshal_cmd_{0} *restrict cmd)').format(func.name))
out('{')
with indent():
for p in fixed_params:

View file

@ -70,7 +70,7 @@ class PrintCode(gl_XML.gl_print_base):
if flavor in ('custom', 'async'):
print('struct marshal_cmd_{0};'.format(func.name))
print(('uint32_t _mesa_unmarshal_{0}(struct gl_context *ctx, '
'const struct marshal_cmd_{0} *cmd);').format(func.name))
'const struct marshal_cmd_{0} *restrict cmd);').format(func.name))
if flavor in ('custom', 'async', 'sync') and not func.marshal_is_static():
print('{0} GLAPIENTRY _mesa_marshal_{1}({2});'.format(func.return_type, func.name, func.get_parameter_string()))

View file

@ -232,7 +232,7 @@ struct marshal_cmd_BindBuffer
uint32_t
_mesa_unmarshal_BindBuffer(struct gl_context *ctx,
const struct marshal_cmd_BindBuffer *cmd)
const struct marshal_cmd_BindBuffer *restrict cmd)
{
CALL_BindBuffer(ctx->Dispatch.Current, (cmd->target[0], cmd->buffer[0]));
@ -330,7 +330,7 @@ struct marshal_cmd_BufferData
uint32_t
_mesa_unmarshal_BufferData(struct gl_context *ctx,
const struct marshal_cmd_BufferData *cmd)
const struct marshal_cmd_BufferData *restrict cmd)
{
const GLuint target_or_name = cmd->target_or_name;
const GLsizei size = cmd->size;
@ -359,7 +359,7 @@ _mesa_unmarshal_BufferData(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_NamedBufferData(struct gl_context *ctx,
const struct marshal_cmd_NamedBufferData *cmd)
const struct marshal_cmd_NamedBufferData *restrict cmd)
{
unreachable("never used - all BufferData variants use DISPATCH_CMD_BufferData");
return 0;
@ -367,7 +367,7 @@ _mesa_unmarshal_NamedBufferData(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_NamedBufferDataEXT(struct gl_context *ctx,
const struct marshal_cmd_NamedBufferDataEXT *cmd)
const struct marshal_cmd_NamedBufferDataEXT *restrict cmd)
{
unreachable("never used - all BufferData variants use DISPATCH_CMD_BufferData");
return 0;
@ -454,7 +454,7 @@ struct marshal_cmd_BufferSubData
uint32_t
_mesa_unmarshal_BufferSubData(struct gl_context *ctx,
const struct marshal_cmd_BufferSubData *cmd)
const struct marshal_cmd_BufferSubData *restrict cmd)
{
const GLenum target_or_name = cmd->target_or_name;
const GLintptr offset = cmd->offset;
@ -476,7 +476,7 @@ _mesa_unmarshal_BufferSubData(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_NamedBufferSubData(struct gl_context *ctx,
const struct marshal_cmd_NamedBufferSubData *cmd)
const struct marshal_cmd_NamedBufferSubData *restrict cmd)
{
unreachable("never used - all BufferSubData variants use DISPATCH_CMD_BufferSubData");
return 0;
@ -484,7 +484,7 @@ _mesa_unmarshal_NamedBufferSubData(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_NamedBufferSubDataEXT(struct gl_context *ctx,
const struct marshal_cmd_NamedBufferSubDataEXT *cmd)
const struct marshal_cmd_NamedBufferSubDataEXT *restrict cmd)
{
unreachable("never used - all BufferSubData variants use DISPATCH_CMD_BufferSubData");
return 0;

View file

@ -292,7 +292,7 @@ struct marshal_cmd_DrawArrays
uint32_t
_mesa_unmarshal_DrawArrays(struct gl_context *ctx,
const struct marshal_cmd_DrawArrays *cmd)
const struct marshal_cmd_DrawArrays *restrict cmd)
{
const GLenum mode = cmd->mode;
const GLint first = cmd->first;
@ -317,7 +317,7 @@ struct marshal_cmd_DrawArraysInstancedBaseInstance
uint32_t
_mesa_unmarshal_DrawArraysInstancedBaseInstance(struct gl_context *ctx,
const struct marshal_cmd_DrawArraysInstancedBaseInstance *cmd)
const struct marshal_cmd_DrawArraysInstancedBaseInstance *restrict cmd)
{
const GLenum mode = cmd->mode;
const GLint first = cmd->first;
@ -380,7 +380,7 @@ struct marshal_cmd_DrawArraysUserBuf
uint32_t
_mesa_unmarshal_DrawArraysUserBuf(struct gl_context *ctx,
const struct marshal_cmd_DrawArraysUserBuf *cmd)
const struct marshal_cmd_DrawArraysUserBuf *restrict cmd)
{
const GLuint user_buffer_mask = cmd->user_buffer_mask;
const struct glthread_attrib_binding *buffers =
@ -518,7 +518,7 @@ struct marshal_cmd_MultiDrawArraysUserBuf
uint32_t
_mesa_unmarshal_MultiDrawArraysUserBuf(struct gl_context *ctx,
const struct marshal_cmd_MultiDrawArraysUserBuf *cmd)
const struct marshal_cmd_MultiDrawArraysUserBuf *restrict cmd)
{
const GLenum mode = cmd->mode;
const GLsizei draw_count = cmd->draw_count;
@ -643,7 +643,7 @@ struct marshal_cmd_DrawElementsInstanced
uint32_t
_mesa_unmarshal_DrawElementsInstanced(struct gl_context *ctx,
const struct marshal_cmd_DrawElementsInstanced *cmd)
const struct marshal_cmd_DrawElementsInstanced *restrict cmd)
{
const GLenum mode = cmd->mode;
const GLsizei count = cmd->count;
@ -671,7 +671,7 @@ struct marshal_cmd_DrawElementsBaseVertex
uint32_t
_mesa_unmarshal_DrawElementsBaseVertex(struct gl_context *ctx,
const struct marshal_cmd_DrawElementsBaseVertex *cmd)
const struct marshal_cmd_DrawElementsBaseVertex *restrict cmd)
{
const GLenum mode = cmd->mode;
const GLsizei count = cmd->count;
@ -701,7 +701,7 @@ struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance
uint32_t
_mesa_unmarshal_DrawElementsInstancedBaseVertexBaseInstance(struct gl_context *ctx,
const struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance *cmd)
const struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstance *restrict cmd)
{
const GLenum mode = cmd->mode;
const GLsizei count = cmd->count;
@ -735,7 +735,7 @@ struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstanceDrawID
uint32_t
_mesa_unmarshal_DrawElementsInstancedBaseVertexBaseInstanceDrawID(struct gl_context *ctx,
const struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstanceDrawID *cmd)
const struct marshal_cmd_DrawElementsInstancedBaseVertexBaseInstanceDrawID *restrict cmd)
{
const GLenum mode = cmd->mode;
const GLsizei count = cmd->count;
@ -774,7 +774,7 @@ struct marshal_cmd_DrawElementsUserBuf
uint32_t
_mesa_unmarshal_DrawElementsUserBuf(struct gl_context *ctx,
const struct marshal_cmd_DrawElementsUserBuf *cmd)
const struct marshal_cmd_DrawElementsUserBuf *restrict cmd)
{
const GLuint user_buffer_mask = cmd->user_buffer_mask;
const struct glthread_attrib_binding *buffers =
@ -1010,7 +1010,7 @@ struct marshal_cmd_MultiDrawElementsUserBuf
uint32_t
_mesa_unmarshal_MultiDrawElementsUserBuf(struct gl_context *ctx,
const struct marshal_cmd_MultiDrawElementsUserBuf *cmd)
const struct marshal_cmd_MultiDrawElementsUserBuf *restrict cmd)
{
const GLsizei draw_count = cmd->draw_count;
const GLuint user_buffer_mask = cmd->user_buffer_mask;
@ -1815,7 +1815,7 @@ _mesa_marshal_MultiDrawElements(GLenum mode, const GLsizei *count,
uint32_t
_mesa_unmarshal_DrawArraysInstanced(struct gl_context *ctx,
const struct marshal_cmd_DrawArraysInstanced *cmd)
const struct marshal_cmd_DrawArraysInstanced *restrict cmd)
{
unreachable("should never end up here");
return 0;
@ -1823,7 +1823,7 @@ _mesa_unmarshal_DrawArraysInstanced(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_MultiDrawArrays(struct gl_context *ctx,
const struct marshal_cmd_MultiDrawArrays *cmd)
const struct marshal_cmd_MultiDrawArrays *restrict cmd)
{
unreachable("should never end up here");
return 0;
@ -1831,7 +1831,7 @@ _mesa_unmarshal_MultiDrawArrays(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_DrawElements(struct gl_context *ctx,
const struct marshal_cmd_DrawElements *cmd)
const struct marshal_cmd_DrawElements *restrict cmd)
{
unreachable("should never end up here");
return 0;
@ -1839,7 +1839,7 @@ _mesa_unmarshal_DrawElements(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_DrawRangeElements(struct gl_context *ctx,
const struct marshal_cmd_DrawRangeElements *cmd)
const struct marshal_cmd_DrawRangeElements *restrict cmd)
{
unreachable("should never end up here");
return 0;
@ -1855,7 +1855,7 @@ _mesa_unmarshal_DrawRangeElementsBaseVertex(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_DrawElementsInstancedBaseVertex(struct gl_context *ctx,
const struct marshal_cmd_DrawElementsInstancedBaseVertex *cmd)
const struct marshal_cmd_DrawElementsInstancedBaseVertex *restrict cmd)
{
unreachable("should never end up here");
return 0;
@ -1863,7 +1863,7 @@ _mesa_unmarshal_DrawElementsInstancedBaseVertex(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_DrawElementsInstancedBaseInstance(struct gl_context *ctx,
const struct marshal_cmd_DrawElementsInstancedBaseInstance *cmd)
const struct marshal_cmd_DrawElementsInstancedBaseInstance *restrict cmd)
{
unreachable("should never end up here");
return 0;
@ -1871,7 +1871,7 @@ _mesa_unmarshal_DrawElementsInstancedBaseInstance(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_MultiDrawElements(struct gl_context *ctx,
const struct marshal_cmd_MultiDrawElements *cmd)
const struct marshal_cmd_MultiDrawElements *restrict cmd)
{
unreachable("should never end up here");
return 0;
@ -1879,7 +1879,7 @@ _mesa_unmarshal_MultiDrawElements(struct gl_context *ctx,
uint32_t
_mesa_unmarshal_MultiDrawElementsBaseVertex(struct gl_context *ctx,
const struct marshal_cmd_MultiDrawElementsBaseVertex *cmd)
const struct marshal_cmd_MultiDrawElementsBaseVertex *restrict cmd)
{
unreachable("should never end up here");
return 0;

View file

@ -26,7 +26,7 @@
uint32_t
_mesa_unmarshal_GetIntegerv(struct gl_context *ctx,
const struct marshal_cmd_GetIntegerv *cmd)
const struct marshal_cmd_GetIntegerv *restrict cmd)
{
unreachable("never executed");
return 0;

View file

@ -34,7 +34,8 @@ struct marshal_cmd_CallList
};
uint32_t
_mesa_unmarshal_CallList(struct gl_context *ctx, const struct marshal_cmd_CallList *cmd)
_mesa_unmarshal_CallList(struct gl_context *ctx,
const struct marshal_cmd_CallList *restrict cmd)
{
const GLuint num = cmd->num;

View file

@ -48,7 +48,8 @@ struct marshal_cmd_base
uint16_t cmd_size;
};
typedef uint32_t (*_mesa_unmarshal_func)(struct gl_context *ctx, const void *cmd);
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];
static inline void *

View file

@ -38,7 +38,7 @@ _mesa_glthread_ProgramChanged(struct gl_context *ctx)
uint32_t
_mesa_unmarshal_GetActiveUniform(struct gl_context *ctx,
const struct marshal_cmd_GetActiveUniform *cmd)
const struct marshal_cmd_GetActiveUniform *restrict cmd)
{
unreachable("never executed");
return 0;
@ -86,7 +86,7 @@ _mesa_marshal_GetActiveUniform(GLuint program, GLuint index, GLsizei bufSize,
uint32_t
_mesa_unmarshal_GetUniformLocation(struct gl_context *ctx,
const struct marshal_cmd_GetUniformLocation *cmd)
const struct marshal_cmd_GetUniformLocation *restrict cmd)
{
unreachable("never executed");
return 0;