mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
pco: temporarily don't propagate pixout accesses in opt
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:
parent
a67120cda3
commit
664ab228da
1 changed files with 15 additions and 0 deletions
|
|
@ -260,6 +260,8 @@ static inline bool try_back_prop_instr(struct pco_use *uses, pco_instr *instr)
|
|||
|
||||
if (pco_ref_is_reg(*pdest_from) &&
|
||||
pco_ref_get_reg_class(*pdest_from) == PCO_REG_CLASS_PIXOUT) {
|
||||
return false;
|
||||
|
||||
bool has_isp_fb = false;
|
||||
|
||||
pco_foreach_instr_in_func_from_rev (rev_instr, use->instr) {
|
||||
|
|
@ -274,6 +276,14 @@ static inline bool try_back_prop_instr(struct pco_use *uses, pco_instr *instr)
|
|||
|
||||
if (has_isp_fb)
|
||||
return false;
|
||||
|
||||
/* Don't move pixout regs into instructions that already use them. */
|
||||
pco_foreach_instr_src (psrc, instr) {
|
||||
if (pco_ref_is_reg(*psrc) &&
|
||||
pco_ref_get_reg_class(*psrc) == PCO_REG_CLASS_PIXOUT) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert(pco_ref_get_bits(*pdest_from) == pco_ref_get_bits(*pdest_to));
|
||||
|
|
@ -373,6 +383,11 @@ static inline bool can_fwd_prop_src(const pco_instr *to_instr,
|
|||
* feature/arch-agnostic.
|
||||
*/
|
||||
|
||||
if (pco_ref_is_reg(*from) &&
|
||||
pco_ref_get_reg_class(*from) == PCO_REG_CLASS_PIXOUT) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue