summaryrefslogtreecommitdiff
path: root/src/gallium
diff options
context:
space:
mode:
authorKarol Herbst <kherbst@redhat.com>2022-11-30 17:53:43 +0100
committerMarge Bot <emma+marge@anholt.net>2023-03-31 20:29:00 +0000
commitc7dd3677dc6632f17d3b69f006f63492b6f9e0be (patch)
tree3fd51b6bd58ca5eca09be919ee428bba79b632f4 /src/gallium
parent87aeea20ac7b78c53beae1475d08cb890d7fb66b (diff)
panfrost: implement get_compute_state_info
Signed-off-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19855>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/panfrost/pan_shader.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_shader.c b/src/gallium/drivers/panfrost/pan_shader.c
index 7034ce5a6e0..4212e8a7838 100644
--- a/src/gallium/drivers/panfrost/pan_shader.c
+++ b/src/gallium/drivers/panfrost/pan_shader.c
@@ -487,6 +487,21 @@ panfrost_bind_compute_state(struct pipe_context *pipe, void *cso)
uncompiled ? util_dynarray_begin(&uncompiled->variants) : NULL;
}
+static void
+panfrost_get_compute_state_info(struct pipe_context *pipe, void *cso,
+ struct pipe_compute_state_object_info *info)
+{
+ struct panfrost_device *dev = pan_device(pipe->screen);
+ struct panfrost_uncompiled_shader *uncompiled = cso;
+ struct panfrost_compiled_shader *cs =
+ util_dynarray_begin(&uncompiled->variants);
+
+ info->max_threads =
+ panfrost_max_thread_count(dev->arch, cs->info.work_reg_count);
+ info->private_memory = cs->info.tls_size;
+ info->preferred_simd_size = pan_subgroup_size(dev->arch);
+}
+
void
panfrost_shader_context_init(struct pipe_context *pctx)
{
@@ -500,5 +515,6 @@ panfrost_shader_context_init(struct pipe_context *pctx)
pctx->create_compute_state = panfrost_create_compute_state;
pctx->bind_compute_state = panfrost_bind_compute_state;
+ pctx->get_compute_state_info = panfrost_get_compute_state_info;
pctx->delete_compute_state = panfrost_delete_shader_state;
}