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