iris: Move compiler creation to iris_program.c

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27646>
This commit is contained in:
Caio Oliveira 2024-02-07 21:27:16 -08:00 committed by Marge Bot
parent 19574a8156
commit 875aa527b8
3 changed files with 47 additions and 40 deletions

View file

@ -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,

View file

@ -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;
}

View file

@ -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);