radeonsi/nir: set colors_read properly
shader-db results for VEGA64: Totals from affected shaders: SGPRS: 1976 -> 1976 (0.00 %) VGPRS: 1240 -> 1144 (-7.74 %) Spilled SGPRs: 145 -> 145 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Private memory VGPRs: 0 -> 0 (0.00 %) Scratch size: 0 -> 0 (0.00 %) dwords per thread Code Size: 34632 -> 34604 (-0.08 %) bytes LDS: 0 -> 0 (0.00 %) blocks Max Waves: 261 -> 285 (9.20 %) Wait states: 0 -> 0 (0.00 %) Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
05cc1dd764
commit
94a3df62d7
|
@ -74,9 +74,18 @@ static void gather_intrinsic_load_deref_info(const nir_shader *nir,
|
|||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
default: {
|
||||
unsigned semantic_name, semantic_index;
|
||||
tgsi_get_gl_varying_semantic(var->data.location, true,
|
||||
&semantic_name, &semantic_index);
|
||||
|
||||
if (semantic_name == TGSI_SEMANTIC_COLOR) {
|
||||
uint8_t mask = nir_ssa_def_components_read(&instr->dest.ssa);
|
||||
info->colors_read |= mask << (semantic_index * 4);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void scan_instruction(const struct nir_shader *nir,
|
||||
|
@ -495,12 +504,6 @@ void si_nir_scan_shader(const struct nir_shader *nir,
|
|||
info->input_interpolate[i] = TGSI_INTERPOLATE_CONSTANT;
|
||||
break;
|
||||
}
|
||||
|
||||
/* TODO make this more precise */
|
||||
if (variable->data.location == VARYING_SLOT_COL0)
|
||||
info->colors_read |= 0x0f;
|
||||
else if (variable->data.location == VARYING_SLOT_COL1)
|
||||
info->colors_read |= 0xf0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue