Mesa (main): radeonsi: remove unused params from si_shader_select_with_key
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri May 13 15:08:34 UTC 2022
Module: Mesa
Branch: main
Commit: b75b9d5cb4945af7d0205685fa84bc4dd12ecc62
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b75b9d5cb4945af7d0205685fa84bc4dd12ecc62
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date: Mon May 2 09:19:36 2022 +0200
radeonsi: remove unused params from si_shader_select_with_key
thread_index is always -1, optimized_or_none is always false.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16273>
---
src/gallium/drivers/radeonsi/si_state_shaders.cpp | 35 ++++++-----------------
1 file changed, 9 insertions(+), 26 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp
index 798ce8640ed..31405624489 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp
@@ -2547,18 +2547,13 @@ use_local_key_copy(const SHADER_KEY_TYPE *key, SHADER_KEY_TYPE *local_key, unsig
/**
* Select a shader variant according to the shader key.
*
- * \param optimized_or_none If the key describes an optimized shader variant and
- * the compilation isn't finished, don't select any
- * shader and return an error.
- *
* This uses a C++ template to compute the optimal memcmp size at compile time, which is important
* for getting inlined memcmp. The memcmp size depends on the shader key type and whether inlined
* uniforms are enabled.
*/
template<bool INLINE_UNIFORMS = true, typename SHADER_KEY_TYPE>
static int si_shader_select_with_key(struct si_context *sctx, struct si_shader_ctx_state *state,
- const SHADER_KEY_TYPE *key, int thread_index,
- bool optimized_or_none)
+ const SHADER_KEY_TYPE *key)
{
struct si_screen *sscreen = sctx->screen;
struct si_shader_selector *sel = state->cso;
@@ -2601,9 +2596,6 @@ again:
if (likely(current && memcmp(¤t->key, key, key_size) == 0)) {
if (unlikely(!util_queue_fence_is_signalled(¤t->ready))) {
if (current->is_optimized) {
- if (optimized_or_none)
- return -1;
-
key = use_local_key_copy(key, &local_key, key_size);
memset(&local_key.opt, 0, key_opt_size);
goto current_not_ready;
@@ -2619,12 +2611,8 @@ current_not_ready:
/* This must be done before the mutex is locked, because async GS
* compilation calls this function too, and therefore must enter
* the mutex first.
- *
- * Only wait if we are in a draw call. Don't wait if we are
- * in a compiler thread.
*/
- if (thread_index < 0)
- util_queue_fence_wait(&sel->ready);
+ util_queue_fence_wait(&sel->ready);
simple_mtx_lock(&sel->mutex);
@@ -2662,9 +2650,6 @@ current_not_ready:
* shader so as not to cause a stall due to compilation.
*/
if (iter->is_optimized) {
- if (optimized_or_none)
- return -1;
-
key = use_local_key_copy(key, &local_key, key_size);
memset(&local_key.opt, 0, key_opt_size);
goto again;
@@ -2709,7 +2694,7 @@ current_not_ready:
previous_stage_sel = ((struct si_shader_key_ge*)key)->part.gs.es;
/* We need to wait for the previous shader. */
- if (previous_stage_sel && thread_index < 0)
+ if (previous_stage_sel)
util_queue_fence_wait(&previous_stage_sel->ready);
}
@@ -2779,7 +2764,7 @@ current_not_ready:
memcmp(&key->opt, &zeroed_key->opt, key_opt_size) != 0;
/* If it's an optimized shader, compile it asynchronously. */
- if (shader->is_optimized && thread_index < 0) {
+ if (shader->is_optimized) {
/* Compile it asynchronously. */
util_queue_add_job(&sscreen->shader_compiler_queue_low_priority, shader, &shader->ready,
si_build_shader_variant_low_priority, NULL, 0);
@@ -2802,8 +2787,6 @@ current_not_ready:
if (sscreen->options.sync_compile)
util_queue_fence_wait(&shader->ready);
- if (optimized_or_none)
- return -1;
goto again;
}
@@ -2821,7 +2804,7 @@ current_not_ready:
simple_mtx_unlock(&sel->mutex);
assert(!shader->is_optimized);
- si_build_shader_variant(shader, thread_index, false);
+ si_build_shader_variant(shader, -1, false);
util_queue_fence_signal(&shader->ready);
@@ -2839,14 +2822,14 @@ int si_shader_select(struct pipe_context *ctx, struct si_shader_ctx_state *state
if (state->cso->stage == MESA_SHADER_FRAGMENT) {
if (state->key.ps.opt.inline_uniforms)
- return si_shader_select_with_key(sctx, state, &state->key.ps, -1, false);
+ return si_shader_select_with_key(sctx, state, &state->key.ps);
else
- return si_shader_select_with_key<NO_INLINE_UNIFORMS>(sctx, state, &state->key.ps, -1, false);
+ return si_shader_select_with_key<NO_INLINE_UNIFORMS>(sctx, state, &state->key.ps);
} else {
if (state->key.ge.opt.inline_uniforms) {
- return si_shader_select_with_key(sctx, state, &state->key.ge, -1, false);
+ return si_shader_select_with_key(sctx, state, &state->key.ge);
} else {
- return si_shader_select_with_key<NO_INLINE_UNIFORMS>(sctx, state, &state->key.ge, -1, false);
+ return si_shader_select_with_key<NO_INLINE_UNIFORMS>(sctx, state, &state->key.ge);
}
}
}
More information about the mesa-commit
mailing list