panvk/csf: Fix register overlap in issue_fragment_jobs()

add_val is a 64-bit register, meaning release_sz points to the high word
of add_val, which leads to corruptions of the value added to the sync
object when simul_use=true.

Fixes: 5544d39f44 ("panvk: Add a CSF backend for panvk_queue/cmd_buffer")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32350>
This commit is contained in:
Boris Brezillon 2024-11-26 12:00:02 +01:00 committed by Marge Bot
parent b625a573da
commit 00e232d5f0

View file

@ -2248,8 +2248,8 @@ issue_fragment_jobs(struct panvk_cmd_buffer *cmdbuf)
struct cs_index iter_sb = cs_scratch_reg32(b, 2);
struct cs_index cmp_scratch = cs_scratch_reg32(b, 3);
struct cs_index add_val = cs_scratch_reg64(b, 4);
struct cs_index release_sz = cs_scratch_reg32(b, 5);
struct cs_index ringbuf_sync_addr = cs_scratch_reg64(b, 6);
struct cs_index release_sz = cs_scratch_reg32(b, 8);
struct cs_index completed = cs_scratch_reg_tuple(b, 10, 4);
struct cs_index completed_top = cs_scratch_reg64(b, 10);