Mesa (main): etnaviv: factor out shader screen related init/deint
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jul 1 20:10:17 UTC 2022
Module: Mesa
Branch: main
Commit: a427a7f5d4e1507b9fac7dc964c186c746925cf0
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a427a7f5d4e1507b9fac7dc964c186c746925cf0
Author: Christian Gmeiner <christian.gmeiner at gmail.com>
Date: Tue Feb 1 14:45:42 2022 +0100
etnaviv: factor out shader screen related init/deint
This is a prep step for the next changes.
Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Reviewed-by: Philipp Zabel <p.zabel at pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16172>
---
src/gallium/drivers/etnaviv/etnaviv_screen.c | 6 ++----
src/gallium/drivers/etnaviv/etnaviv_shader.c | 20 ++++++++++++++++++++
src/gallium/drivers/etnaviv/etnaviv_shader.h | 6 ++++++
3 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c
index 175879ce918..67a55caefd0 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_screen.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c
@@ -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);
diff --git a/src/gallium/drivers/etnaviv/etnaviv_shader.c b/src/gallium/drivers/etnaviv/etnaviv_shader.c
index 8fabd89b53c..90bd22770e2 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_shader.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_shader.c
@@ -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);
+}
diff --git a/src/gallium/drivers/etnaviv/etnaviv_shader.h b/src/gallium/drivers/etnaviv/etnaviv_shader.h
index 726761b0af4..f6cbfa85f7f 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_shader.h
+++ b/src/gallium/drivers/etnaviv/etnaviv_shader.h
@@ -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
More information about the mesa-commit
mailing list