drm/v3d: add multiple syncobjs support
authorMelissa Wen <mwen@igalia.com>
Thu, 30 Sep 2021 16:19:56 +0000 (17:19 +0100)
committerMelissa Wen <melissa.srw@gmail.com>
Mon, 4 Oct 2021 09:08:46 +0000 (10:08 +0100)
commite4165ae8304e5ea822fbe5909dd3be5445c058b7
treea92f6714ef4300ffa40aaf20ed89cb63164ba4e2
parentbb3425efdcd99f2b4e608e850226f7107b2f993e
drm/v3d: add multiple syncobjs support

Using the generic extension from the previous patch, a specific multisync
extension enables more than one in/out binary syncobj per job submission.
Arrays of syncobjs are set in struct drm_v3d_multisync, that also cares
of determining the stage for sync (wait deps) according to the job
queue.

v2:
- subclass the generic extension struct (Daniel)
- simplify adding dependency conditions to make understandable (Iago)

v3:
- fix conditions to consider single or multiples in/out_syncs (Iago)
- remove irrelevant comment (Iago)

Signed-off-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/ffd8b2e3dd2e0c686db441a0c0a4a0181ff85328.1633016479.git.mwen@igalia.com
drivers/gpu/drm/v3d/v3d_drv.c
drivers/gpu/drm/v3d/v3d_drv.h
drivers/gpu/drm/v3d/v3d_gem.c
include/uapi/drm/v3d_drm.h