For some reason one must not overwrite these values "too early", so
pin them for the whole shader.
Fixes: 79ca45 (r600/sfn: rewrite NIR backend)
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10004
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25846>
(cherry picked from commit
eb25c7a4e284cf5a8986978d4f35cb105c073712)
"description": "r600/sfn: keep workgroup and invocation ID registers for whole shader",
"nominated": false,
"nomination_type": 3,
- "resolution": 4,
+ "resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null
for (int i = 0; i < 3; ++i) {
m_local_invocation_id[i] = vf.allocate_pinned_register(thread_id_sel, i);
+ m_local_invocation_id[i]->set_flag(Register::pin_end);
m_workgroup_id[i] = vf.allocate_pinned_register(wg_id_sel, i);
+ m_workgroup_id[i]->set_flag(Register::pin_end);
}
return 2;
}