On 6/28/20 12:47 AM, Dmitry Osipenko wrote:
23.06.2020 15:09, Mikko Perttunen пишет:
struct drm_tegra_submit_syncpt_incr { /* * [in] Syncpoint FD of the syncpoint that the job will * increment. */ __s32 syncpt_fd;
/* * [in] Number of increments that the job will do. */ __u32 num_incrs;
/* * [out] Value the syncpoint will have once all increments have * executed. */ __u32 fence_value;
__u32 reserved[1]; };
The job should be considered executed once the final sync point is incremented.
Hence, there should be only one sync point per-job for increment, why would you ever need more than one?
Could you please explain what this submit_syncpt_incr is about?
This tells the kernel which syncpoint will be incremented and how many times for job tracking and verifying the user has access to that syncpoint.
A second syncpoint is used for NVENC in slice encoding mode, where the engine can be programmed to count encoded slices by incrementing a syncpoint. I'll ask around to see if I can find some more details on this.
Since the usecase is somewhat niche, we could see if we can have a design where it's only one syncpoint, but extensible later if needed.
Mikko