mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 10:40:11 +01:00
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:
parent
d3ae559378
commit
f1ab57359c
8 changed files with 21 additions and 2 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue