mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
radeonsi: don't set spi_ps_input_* for monolithic shaders
The driver doesn't use these values and ac_rtld has assertions expecting the value of 0. Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
1d6e358c36
commit
4a1421aa26
1 changed files with 26 additions and 13 deletions
|
|
@ -6135,7 +6135,8 @@ static void si_get_ps_prolog_key(struct si_shader *shader,
|
|||
/* BCOLORs are stored after the last input. */
|
||||
key->ps_prolog.num_interp_inputs = info->num_inputs;
|
||||
key->ps_prolog.face_vgpr_index = shader->info.face_vgpr_index;
|
||||
shader->config.spi_ps_input_ena |= S_0286CC_FRONT_FACE_ENA(1);
|
||||
if (separate_prolog)
|
||||
shader->config.spi_ps_input_ena |= S_0286CC_FRONT_FACE_ENA(1);
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < 2; i++) {
|
||||
|
|
@ -6166,18 +6167,24 @@ static void si_get_ps_prolog_key(struct si_shader *shader,
|
|||
switch (location) {
|
||||
case TGSI_INTERPOLATE_LOC_SAMPLE:
|
||||
key->ps_prolog.color_interp_vgpr_index[i] = 0;
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_PERSP_SAMPLE_ENA(1);
|
||||
if (separate_prolog) {
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_PERSP_SAMPLE_ENA(1);
|
||||
}
|
||||
break;
|
||||
case TGSI_INTERPOLATE_LOC_CENTER:
|
||||
key->ps_prolog.color_interp_vgpr_index[i] = 2;
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_PERSP_CENTER_ENA(1);
|
||||
if (separate_prolog) {
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_PERSP_CENTER_ENA(1);
|
||||
}
|
||||
break;
|
||||
case TGSI_INTERPOLATE_LOC_CENTROID:
|
||||
key->ps_prolog.color_interp_vgpr_index[i] = 4;
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_PERSP_CENTROID_ENA(1);
|
||||
if (separate_prolog) {
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_PERSP_CENTROID_ENA(1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
|
|
@ -6198,20 +6205,26 @@ static void si_get_ps_prolog_key(struct si_shader *shader,
|
|||
case TGSI_INTERPOLATE_LOC_SAMPLE:
|
||||
key->ps_prolog.color_interp_vgpr_index[i] =
|
||||
separate_prolog ? 6 : 9;
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_LINEAR_SAMPLE_ENA(1);
|
||||
if (separate_prolog) {
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_LINEAR_SAMPLE_ENA(1);
|
||||
}
|
||||
break;
|
||||
case TGSI_INTERPOLATE_LOC_CENTER:
|
||||
key->ps_prolog.color_interp_vgpr_index[i] =
|
||||
separate_prolog ? 8 : 11;
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_LINEAR_CENTER_ENA(1);
|
||||
if (separate_prolog) {
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_LINEAR_CENTER_ENA(1);
|
||||
}
|
||||
break;
|
||||
case TGSI_INTERPOLATE_LOC_CENTROID:
|
||||
key->ps_prolog.color_interp_vgpr_index[i] =
|
||||
separate_prolog ? 10 : 13;
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_LINEAR_CENTROID_ENA(1);
|
||||
if (separate_prolog) {
|
||||
shader->config.spi_ps_input_ena |=
|
||||
S_0286CC_LINEAR_CENTROID_ENA(1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue