uAPI: syncobj/scheduler
syncobjs needs to be submitted for command submission.
Two lists:
- list of syncobjs the pushbuf has to wait for.
- list of syncobjs to signal once the pushbuf has executed.
This likely requires integration with the common drm scheduler code to avoid creating another scheduler.
Integrating with the drm scheduler, requires splitting the command submission into a frontend which checks what userspace submits, does vm updates, then hands the job to the scheduler, and a backend which hands the job to the hardware queues. This may require changes to the drm scheduler to accomodate the nvidia hw model.