radeonsi: simplify handling color interp modes in si_emit_spi_map

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6340>
This commit is contained in:
Marek Olšák 2020-08-15 02:48:13 -04:00
parent 562b8c1a47
commit 14391533f8

View file

@ -3247,7 +3247,7 @@ static void si_emit_spi_map(struct si_context *sctx)
struct si_shader *ps = sctx->ps_shader.current;
struct si_shader *vs = si_get_vs_state(sctx);
struct si_shader_info *psinfo = ps ? &ps->selector->info : NULL;
unsigned i, num_interp, num_written = 0, bcol_interp[2];
unsigned i, num_interp, num_written = 0;
unsigned spi_ps_input_cntl[32];
if (!ps || !ps->selector->info.num_inputs)
@ -3262,11 +3262,6 @@ static void si_emit_spi_map(struct si_context *sctx)
unsigned interpolate = psinfo->input_interpolate[i];
spi_ps_input_cntl[num_written++] = si_get_ps_input_cntl(sctx, vs, name, index, interpolate);
if (name == TGSI_SEMANTIC_COLOR) {
assert(index < ARRAY_SIZE(bcol_interp));
bcol_interp[index] = interpolate;
}
}
if (ps->key.part.ps.prolog.color_two_side) {
@ -3276,7 +3271,8 @@ static void si_emit_spi_map(struct si_context *sctx)
if (!(psinfo->colors_read & (0xf << (i * 4))))
continue;
spi_ps_input_cntl[num_written++] = si_get_ps_input_cntl(sctx, vs, bcol, i, bcol_interp[i]);
spi_ps_input_cntl[num_written++] = si_get_ps_input_cntl(sctx, vs, bcol, i,
psinfo->color_interpolate[i]);
}
}
assert(num_interp == num_written);