drm/v3d: Create a CPU job extension for a indirect CSD job
authorMaíra Canal <mcanal@igalia.com>
Thu, 30 Nov 2023 16:40:35 +0000 (13:40 -0300)
committerMaíra Canal <mcanal@igalia.com>
Fri, 1 Dec 2023 12:40:15 +0000 (09:40 -0300)
commit18b8413b25b7070fa2e55858a2c808e6909581d0
tree280ab989c572826d8526722b63cca2cac7465d7e
parent7c13132c4073628b5fe23b5188ac583a2882a6b0
drm/v3d: Create a CPU job extension for a indirect CSD job

A CPU job is a type of job that performs operations that requires CPU
intervention. An indirect CSD job is a job that, when executed in the
queue, will map the indirect buffer, read the dispatch parameters, and
submit a regular dispatch. Therefore, it is a job that needs CPU
intervention.

So, create a user extension for the CPU job that enables the creation
of an indirect CSD. This user extension will allow the creation of a CSD
job linked to a CPU job. The CPU job will wait for the indirect CSD job
dependencies and, once they are signaled, it will update the CSD job
parameters.

Co-developed-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231130164420.932823-14-mcanal@igalia.com
drivers/gpu/drm/v3d/v3d_drv.h
drivers/gpu/drm/v3d/v3d_sched.c
drivers/gpu/drm/v3d/v3d_submit.c
include/uapi/drm/v3d_drm.h