freedreno/ir3: move finalize_nir to pscreen hook

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5372>
This commit is contained in:
Rob Clark 2020-06-15 14:37:24 -07:00
parent d3ae559378
commit f1ab57359c
8 changed files with 21 additions and 2 deletions

View file

@ -411,8 +411,6 @@ ir3_shader_from_nir(struct ir3_compiler *compiler, nir_shader *nir,
ir3_nir_post_finalize(compiler, nir);
ir3_finalize_nir(compiler, nir);
shader->nir = nir;
if (ir3_shader_debug & IR3_DBG_DISASM) {

View file

@ -634,6 +634,8 @@ tu_shader_create(struct tu_device *dev,
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
ir3_finalize_nir(dev->compiler, nir);
shader->ir3_shader =
ir3_shader_from_nir(dev->compiler, nir,
align(shader->push_consts.count, 4),

View file

@ -109,6 +109,7 @@ fd3_screen_init(struct pipe_screen *pscreen)
pscreen->context_create = fd3_context_create;
pscreen->is_format_supported = fd3_screen_is_format_supported;
fd3_emit_init_screen(pscreen);
ir3_screen_init(pscreen);
screen->setup_slices = fd3_setup_slices;
if (fd_mesa_debug & FD_DBG_TTILE)

View file

@ -114,4 +114,5 @@ fd4_screen_init(struct pipe_screen *pscreen)
pscreen->context_create = fd4_context_create;
pscreen->is_format_supported = fd4_screen_is_format_supported;
fd4_emit_init_screen(pscreen);
ir3_screen_init(pscreen);
}

View file

@ -135,4 +135,5 @@ fd5_screen_init(struct pipe_screen *pscreen)
screen->tile_mode = fd5_tile_mode;
fd5_emit_init_screen(pscreen);
ir3_screen_init(pscreen);
}

View file

@ -140,4 +140,5 @@ fd6_screen_init(struct pipe_screen *pscreen)
fd6_resource_screen_init(pscreen);
fd6_emit_init_screen(pscreen);
ir3_screen_init(pscreen);
}

View file

@ -294,6 +294,14 @@ ir3_shader_state_delete(struct pipe_context *pctx, void *hwcso)
ir3_shader_destroy(so);
}
static void
ir3_screen_finalize_nir(struct pipe_screen *pscreen, void *nir, bool optimize)
{
struct fd_screen *screen = fd_screen(pscreen);
ir3_finalize_nir(screen->compiler, nir);
}
void
ir3_prog_init(struct pipe_context *pctx)
{
@ -312,3 +320,9 @@ ir3_prog_init(struct pipe_context *pctx)
pctx->create_fs_state = ir3_shader_state_create;
pctx->delete_fs_state = ir3_shader_state_delete;
}
void
ir3_screen_init(struct pipe_screen *pscreen)
{
pscreen->finalize_nir = ir3_screen_finalize_nir;
}

View file

@ -48,6 +48,7 @@ void * ir3_shader_state_create(struct pipe_context *pctx, const struct pipe_shad
void ir3_shader_state_delete(struct pipe_context *pctx, void *hwcso);
void ir3_prog_init(struct pipe_context *pctx);
void ir3_screen_init(struct pipe_screen *pscreen);
/**
* A helper to determine if a fs input 'i' is point/sprite coord, given