radeonsi: move si_shader_io_get_unique_index calls out of si_get_vs_key_outputs

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12343>
This commit is contained in:
Marek Olšák 2021-08-10 07:31:29 -04:00 committed by Marge Bot
parent 6d1ab77a8f
commit 35a42377cd
1 changed files with 8 additions and 7 deletions

View File

@ -1874,11 +1874,6 @@ static void si_get_vs_key_outputs(struct si_context *sctx, struct si_shader_sele
uint64_t outputs_written = vs->outputs_written_before_ps;
uint64_t inputs_read = 0;
/* Ignore outputs that are not passed from VS to PS. */
outputs_written &= ~((1ull << si_shader_io_get_unique_index(VARYING_SLOT_POS, true)) |
(1ull << si_shader_io_get_unique_index(VARYING_SLOT_PSIZ, true)) |
(1ull << si_shader_io_get_unique_index(VARYING_SLOT_CLIP_VERTEX, true)));
if (!ps_disabled) {
inputs_read = ps->inputs_read;
}
@ -2881,8 +2876,14 @@ static void *si_create_shader_selector(struct pipe_context *ctx,
} else if ((semantic <= VARYING_SLOT_VAR31 || semantic >= VARYING_SLOT_VAR0_16BIT) &&
semantic != VARYING_SLOT_EDGE) {
sel->outputs_written |= 1ull << si_shader_io_get_unique_index(semantic, false);
sel->outputs_written_before_ps |= 1ull
<< si_shader_io_get_unique_index(semantic, true);
/* Ignore outputs that are not passed from VS to PS. */
if (semantic != VARYING_SLOT_POS &&
semantic != VARYING_SLOT_PSIZ &&
semantic != VARYING_SLOT_CLIP_VERTEX) {
sel->outputs_written_before_ps |= 1ull
<< si_shader_io_get_unique_index(semantic, true);
}
}
}
}