pco: temporarily aggressively prevent isp feedback reordering by opt passes

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
Simon Perretta
2025-04-04 14:43:38 +01:00
committed by Marge Bot
parent 07f0038974
commit aa6af19da5
+18
View File
@@ -258,6 +258,24 @@ static inline bool try_back_prop_instr(struct pco_use *uses, pco_instr *instr)
pco_ref *pdest_from = &use->instr->dest[0];
if (pco_ref_is_reg(*pdest_from) &&
pco_ref_get_reg_class(*pdest_from) == PCO_REG_CLASS_PIXOUT) {
bool has_isp_fb = false;
pco_foreach_instr_in_func_from_rev (rev_instr, use->instr) {
if (rev_instr == instr)
break;
if (rev_instr->op == PCO_OP_ALPHAF || rev_instr->op == PCO_OP_DEPTHF) {
has_isp_fb = true;
break;
}
}
if (has_isp_fb)
return false;
}
assert(pco_ref_get_bits(*pdest_from) == pco_ref_get_bits(*pdest_to));
assert(pco_ref_get_chans(*pdest_from) == pco_ref_get_chans(*pdest_to));
assert(!pco_ref_has_mods_set(*pdest_from) &&