From 875aa527b8f6e4eab6af7634d3fbaa8a67de064b Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Wed, 7 Feb 2024 21:27:16 -0800 Subject: [PATCH] iris: Move compiler creation to iris_program.c Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_context.h | 1 + src/gallium/drivers/iris/iris_program.c | 45 +++++++++++++++++++++++++ src/gallium/drivers/iris/iris_screen.c | 41 +--------------------- 3 files changed, 47 insertions(+), 40 deletions(-) diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index c6d20117d93..27c02d8ae88 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -1291,6 +1291,7 @@ void iris_flush_all_caches(struct iris_batch *batch); void iris_init_flush_functions(struct pipe_context *ctx); /* iris_program.c */ +void iris_compiler_init(struct iris_screen *screen); void iris_upload_ubo_ssbo_surf_state(struct iris_context *ice, struct pipe_shader_buffer *buf, struct iris_state_ref *surf_state, diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c index e011b39831e..03349e0e7e0 100644 --- a/src/gallium/drivers/iris/iris_program.c +++ b/src/gallium/drivers/iris/iris_program.c @@ -3275,3 +3275,48 @@ iris_fs_barycentric_modes(const struct iris_compiled_shader *shader, const struct brw_wm_prog_data *brw = brw_wm_prog_data(shader->brw_prog_data); return wm_prog_data_barycentric_modes(brw, pushed_msaa_flags); } + +static void +iris_shader_debug_log(void *data, unsigned *id, const char *fmt, ...) +{ + struct util_debug_callback *dbg = data; + va_list args; + + if (!dbg->debug_message) + return; + + va_start(args, fmt); + dbg->debug_message(dbg->data, id, UTIL_DEBUG_TYPE_SHADER_INFO, fmt, args); + va_end(args); +} + +static void +iris_shader_perf_log(void *data, unsigned *id, const char *fmt, ...) +{ + struct util_debug_callback *dbg = data; + va_list args; + va_start(args, fmt); + + if (INTEL_DEBUG(DEBUG_PERF)) { + va_list args_copy; + va_copy(args_copy, args); + vfprintf(stderr, fmt, args_copy); + va_end(args_copy); + } + + if (dbg->debug_message) { + dbg->debug_message(dbg->data, id, UTIL_DEBUG_TYPE_PERF_INFO, fmt, args); + } + + va_end(args); +} + +void +iris_compiler_init(struct iris_screen *screen) +{ + screen->compiler = brw_compiler_create(screen, screen->devinfo); + screen->compiler->shader_debug_log = iris_shader_debug_log; + screen->compiler->shader_perf_log = iris_shader_perf_log; + screen->compiler->supports_shader_constants = true; + screen->compiler->indirect_ubos_use_sampler = screen->devinfo->ver < 12; +} diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index 08e779d0512..df19633f358 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -734,41 +734,6 @@ iris_get_default_l3_config(const struct intel_device_info *devinfo, return intel_get_l3_config(devinfo, w); } -static void -iris_shader_debug_log(void *data, unsigned *id, const char *fmt, ...) -{ - struct util_debug_callback *dbg = data; - va_list args; - - if (!dbg->debug_message) - return; - - va_start(args, fmt); - dbg->debug_message(dbg->data, id, UTIL_DEBUG_TYPE_SHADER_INFO, fmt, args); - va_end(args); -} - -static void -iris_shader_perf_log(void *data, unsigned *id, const char *fmt, ...) -{ - struct util_debug_callback *dbg = data; - va_list args; - va_start(args, fmt); - - if (INTEL_DEBUG(DEBUG_PERF)) { - va_list args_copy; - va_copy(args_copy, args); - vfprintf(stderr, fmt, args_copy); - va_end(args_copy); - } - - if (dbg->debug_message) { - dbg->debug_message(dbg->data, id, UTIL_DEBUG_TYPE_PERF_INFO, fmt, args); - } - - va_end(args); -} - static void iris_detect_kernel_features(struct iris_screen *screen) { @@ -898,11 +863,7 @@ iris_screen_create(int fd, const struct pipe_screen_config *config) isl_device_init(&screen->isl_dev, screen->devinfo); - screen->compiler = brw_compiler_create(screen, screen->devinfo); - screen->compiler->shader_debug_log = iris_shader_debug_log; - screen->compiler->shader_perf_log = iris_shader_perf_log; - screen->compiler->supports_shader_constants = true; - screen->compiler->indirect_ubos_use_sampler = screen->devinfo->ver < 12; + iris_compiler_init(screen); screen->l3_config_3d = iris_get_default_l3_config(screen->devinfo, false); screen->l3_config_cs = iris_get_default_l3_config(screen->devinfo, true);