elk: Apply vgrf127 workaround in more cases

No shader-db changes on Broadwell. Older platforms were not tested.

Fixes: e7b7d572b3 ("intel/fs/ra: Re-arrange interference setup")
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
(cherry picked from commit 2e8b89ec60)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
This commit is contained in:
Ian Romanick 2025-10-28 11:02:16 -07:00 committed by Dylan Baker
parent 9bad1beb98
commit 55a37838b9
2 changed files with 7 additions and 4 deletions

View file

@ -684,7 +684,7 @@
"description": "elk: Apply vgrf127 workaround in more cases",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "e7b7d572b3bf801fa2a1a8cdff181fdf75780a96",
"notes": null

View file

@ -576,10 +576,13 @@ elk_fs_reg_alloc::setup_inst_interference(const elk_fs_inst *inst)
* This node has a fixed assignment to grf127.
*
* We don't apply it to SIMD16 instructions because previous code avoids
* any register overlap between sources and destination.
* any register overlap between sources and destination. Some care is
* taken to detect when interference may not have been added between
* source and destination. This can occur in SIMD16 with UW
* destination. See also gitlab issue #14171.
*/
if (inst->exec_size < 16 && inst->is_send_from_grf() &&
inst->dst.file == VGRF)
if (inst->is_send_from_grf() && inst->dst.file == VGRF &&
(inst->exec_size < 16 || type_sz(inst->dst.type) < 4))
ra_add_node_interference(g, first_vgrf_node + inst->dst.nr,
grf127_send_hack_node);