glthread: use uint64_t to declare the batch buffer instead of align(8)

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7719>
This commit is contained in:
Marek Olšák 2020-10-09 22:37:28 -04:00 committed by Marge Bot
parent 70b778945b
commit 6fe524d0f8
3 changed files with 4 additions and 9 deletions

View file

@ -48,7 +48,7 @@ glthread_unmarshal_batch(void *job, int thread_index)
struct gl_context *ctx = batch->ctx;
int pos = 0;
int used = batch->used;
uint8_t *buffer = batch->buffer;
uint64_t *buffer = batch->buffer;
_glapi_set_dispatch(ctx->CurrentServerDispatch);
@ -59,7 +59,7 @@ glthread_unmarshal_batch(void *job, int thread_index)
while (pos < used) {
const struct marshal_cmd_base *cmd =
(const struct marshal_cmd_base *)&buffer[pos];
(const struct marshal_cmd_base *)&buffer[pos / 8];
_mesa_unmarshal_dispatch[cmd->cmd_id](ctx, cmd);
pos += cmd->cmd_size;

View file

@ -109,12 +109,7 @@ struct glthread_batch
int used;
/** Data contained in the command buffer. */
#ifdef _MSC_VER
__declspec(align(8))
#else
__attribute__((aligned(8)))
#endif
uint8_t buffer[MARSHAL_MAX_CMD_SIZE];
uint64_t buffer[MARSHAL_MAX_CMD_SIZE / 8];
};
struct glthread_client_attrib {

View file

@ -64,7 +64,7 @@ _mesa_glthread_allocate_command(struct gl_context *ctx,
struct glthread_batch *next = glthread->next_batch;
const int aligned_size = align(size, 8);
struct marshal_cmd_base *cmd_base =
(struct marshal_cmd_base *)&next->buffer[glthread->used];
(struct marshal_cmd_base *)&next->buffer[glthread->used / 8];
glthread->used += aligned_size;
cmd_base->cmd_id = cmd_id;
cmd_base->cmd_size = aligned_size;