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:

committed by
Marge Bot

parent
4d7c11aa8d
commit
a427a7f5d4
@@ -88,8 +88,7 @@ etna_screen_destroy(struct pipe_screen *pscreen)
|
|||||||
if (screen->perfmon)
|
if (screen->perfmon)
|
||||||
etna_perfmon_del(screen->perfmon);
|
etna_perfmon_del(screen->perfmon);
|
||||||
|
|
||||||
if (screen->compiler)
|
etna_shader_screen_fini(pscreen);
|
||||||
etna_compiler_destroy(screen->compiler);
|
|
||||||
|
|
||||||
if (screen->pipe)
|
if (screen->pipe)
|
||||||
etna_pipe_del(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->query_dmabuf_modifiers = etna_screen_query_dmabuf_modifiers;
|
||||||
pscreen->is_dmabuf_modifier_supported = etna_screen_is_dmabuf_modifier_supported;
|
pscreen->is_dmabuf_modifier_supported = etna_screen_is_dmabuf_modifier_supported;
|
||||||
|
|
||||||
screen->compiler = etna_compiler_create(etna_screen_get_name(pscreen));
|
if (!etna_shader_screen_init(pscreen))
|
||||||
if (!screen->compiler)
|
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
etna_fence_screen_init(pscreen);
|
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->bind_vs_state = etna_bind_vs_state;
|
||||||
pctx->delete_vs_state = etna_delete_shader_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
|
void
|
||||||
etna_shader_init(struct pipe_context *pctx);
|
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
|
#endif
|
||||||
|
Reference in New Issue
Block a user