etnaviv: factor out shader screen related init/deint
This is a prep step for the next changes. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16172>
This commit is contained in:
parent
4d7c11aa8d
commit
a427a7f5d4
|
@ -88,8 +88,7 @@ etna_screen_destroy(struct pipe_screen *pscreen)
|
|||
if (screen->perfmon)
|
||||
etna_perfmon_del(screen->perfmon);
|
||||
|
||||
if (screen->compiler)
|
||||
etna_compiler_destroy(screen->compiler);
|
||||
etna_shader_screen_fini(pscreen);
|
||||
|
||||
if (screen->pipe)
|
||||
etna_pipe_del(screen->pipe);
|
||||
|
@ -1147,8 +1146,7 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu,
|
|||
pscreen->query_dmabuf_modifiers = etna_screen_query_dmabuf_modifiers;
|
||||
pscreen->is_dmabuf_modifier_supported = etna_screen_is_dmabuf_modifier_supported;
|
||||
|
||||
screen->compiler = etna_compiler_create(etna_screen_get_name(pscreen));
|
||||
if (!screen->compiler)
|
||||
if (!etna_shader_screen_init(pscreen))
|
||||
goto fail;
|
||||
|
||||
etna_fence_screen_init(pscreen);
|
||||
|
|
|
@ -531,3 +531,23 @@ etna_shader_init(struct pipe_context *pctx)
|
|||
pctx->bind_vs_state = etna_bind_vs_state;
|
||||
pctx->delete_vs_state = etna_delete_shader_state;
|
||||
}
|
||||
|
||||
bool
|
||||
etna_shader_screen_init(struct pipe_screen *pscreen)
|
||||
{
|
||||
struct etna_screen *screen = etna_screen(pscreen);
|
||||
|
||||
screen->compiler = etna_compiler_create(pscreen->get_name(pscreen));
|
||||
if (!screen->compiler)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
etna_shader_screen_fini(struct pipe_screen *pscreen)
|
||||
{
|
||||
struct etna_screen *screen = etna_screen(pscreen);
|
||||
|
||||
etna_compiler_destroy(screen->compiler);
|
||||
}
|
||||
|
|
|
@ -100,4 +100,10 @@ etna_shader_variant(struct etna_shader *shader, struct etna_shader_key key,
|
|||
void
|
||||
etna_shader_init(struct pipe_context *pctx);
|
||||
|
||||
bool
|
||||
etna_shader_screen_init(struct pipe_screen *pscreen);
|
||||
|
||||
void
|
||||
etna_shader_screen_fini(struct pipe_screen *pscreen);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue