diff --git a/src/gallium/auxiliary/util/u_threaded_context.c b/src/gallium/auxiliary/util/u_threaded_context.c index 3158da4075a..400bb15632b 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.c +++ b/src/gallium/auxiliary/util/u_threaded_context.c @@ -68,6 +68,13 @@ static const char *tc_call_names[] = { # define TC_TRACE_SCOPE(call_id) #endif +enum tc_call_id { +#define CALL(name) TC_CALL_##name, +#include "u_threaded_context_calls.h" +#undef CALL + TC_NUM_CALLS, +}; + static void tc_batch_execute(void *job, UNUSED void *gdata, int thread_index); @@ -5019,6 +5026,15 @@ tc_callback(struct pipe_context *_pipe, void (*fn)(void *), void *data, * batch execution in the driver thread */ +typedef uint16_t (*tc_execute)(struct pipe_context *pipe, void *call); + +/* Callbacks that call pipe_context functions. */ +static const tc_execute execute_func[TC_NUM_CALLS] = { +#define CALL(name) tc_call_##name, +#include "u_threaded_context_calls.h" +#undef CALL +}; + ALWAYS_INLINE static void batch_execute(struct tc_batch *batch, struct pipe_context *pipe, uint64_t *last, bool parsing) { @@ -5026,7 +5042,6 @@ batch_execute(struct tc_batch *batch, struct pipe_context *pipe, uint64_t *last, * begin incrementing renderpass info on the first set_framebuffer_state call */ bool first = !batch->first_set_fb; - const tc_execute *execute_func = batch->tc->execute_func; for (uint64_t *iter = batch->slots; iter != last;) { struct tc_call_base *call = (struct tc_call_base *)iter; @@ -5428,10 +5443,6 @@ threaded_context_create(struct pipe_context *pipe, CTX_INIT(get_intel_perf_query_data); #undef CTX_INIT -#define CALL(name) tc->execute_func[TC_CALL_##name] = tc_call_##name; -#include "u_threaded_context_calls.h" -#undef CALL - if (out) *out = tc; diff --git a/src/gallium/auxiliary/util/u_threaded_context.h b/src/gallium/auxiliary/util/u_threaded_context.h index 60e7c6a5839..d8ae0c810d3 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.h +++ b/src/gallium/auxiliary/util/u_threaded_context.h @@ -275,13 +275,6 @@ struct tc_unflushed_batch_token; */ #define TC_MAX_SUBDATA_BYTES 320 -enum tc_call_id { -#define CALL(name) TC_CALL_##name, -#include "u_threaded_context_calls.h" -#undef CALL - TC_NUM_CALLS, -}; - enum tc_binding_type { TC_BINDING_VERTEX_BUFFER, TC_BINDING_STREAMOUT_BUFFER, @@ -311,8 +304,6 @@ enum tc_binding_type { TC_BINDING_IMAGE_CS, }; -typedef uint16_t (*tc_execute)(struct pipe_context *pipe, void *call); - typedef void (*tc_replace_buffer_storage_func)(struct pipe_context *ctx, struct pipe_resource *dst, struct pipe_resource *src, @@ -675,9 +666,6 @@ struct threaded_context { struct tc_renderpass_info *renderpass_info_recording; /* accessed by driver thread */ struct tc_renderpass_info *renderpass_info; - - /* Callbacks that call pipe_context functions. */ - tc_execute execute_func[TC_NUM_CALLS]; };