From 954f59f2af4a135f2af2d2b6e341b4332ad3cccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 28 Apr 2021 17:19:43 -0400 Subject: [PATCH] Revert "gallium/u_threaded: align batches and call slots to 16 bytes" This reverts commit 3b1ce49bc1e5aff87805b0bab255885c84bf5052. It will be completely rewritten, but let's revert this first. Reviewed-by: Pierre-Eric Pelloux-Prayer Acked-By: Mike Blumenkrantz Part-of: --- src/gallium/auxiliary/util/u_threaded_context.c | 12 ++---------- src/gallium/auxiliary/util/u_threaded_context.h | 3 +-- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/gallium/auxiliary/util/u_threaded_context.c b/src/gallium/auxiliary/util/u_threaded_context.c index 73d45a6c909..2474fb11ddd 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.c +++ b/src/gallium/auxiliary/util/u_threaded_context.c @@ -3217,7 +3217,7 @@ tc_destroy(struct pipe_context *_pipe) slab_destroy_child(&tc->pool_transfers); assert(tc->batch_slots[tc->next].num_total_call_slots == 0); pipe->destroy(pipe); - os_free_aligned(tc); + FREE(tc); } static const tc_execute execute_func[TC_NUM_CALLS] = { @@ -3258,22 +3258,14 @@ threaded_context_create(struct pipe_context *pipe, if (!debug_get_bool_option("GALLIUM_THREAD", util_get_cpu_caps()->nr_cpus > 1)) return pipe; - tc = os_malloc_aligned(sizeof(struct threaded_context), 16); + tc = CALLOC_STRUCT(threaded_context); if (!tc) { pipe->destroy(pipe); return NULL; } - memset(tc, 0, sizeof(*tc)); pipe = trace_context_create_threaded(pipe->screen, pipe); - assert((uintptr_t)tc % 16 == 0); - /* These should be static asserts, but they don't work with MSVC */ - assert(offsetof(struct threaded_context, batch_slots) % 16 == 0); - assert(offsetof(struct threaded_context, batch_slots[0].call) % 16 == 0); - assert(offsetof(struct threaded_context, batch_slots[0].call[1]) % 16 == 0); - assert(offsetof(struct threaded_context, batch_slots[1].call) % 16 == 0); - /* The driver context isn't wrapped, so set its "priv" to NULL. */ pipe->priv = NULL; diff --git a/src/gallium/auxiliary/util/u_threaded_context.h b/src/gallium/auxiliary/util/u_threaded_context.h index 59c6f4acab2..86eaffa7192 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.h +++ b/src/gallium/auxiliary/util/u_threaded_context.h @@ -321,8 +321,7 @@ union tc_payload { bool boolean; }; -/* Each call slot should be aligned to its own size for optimal cache usage. */ -struct ALIGN16 tc_call { +struct tc_call { unsigned sentinel; ushort num_call_slots; ushort call_id;