diff options
author | Marek Olšák <marek.olsak@amd.com> | 2017-09-11 21:58:03 +0200 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2017-10-12 20:35:57 +0200 |
commit | 59aa57b363ba8de550aced1d397c54fd9e5e213c (patch) | |
tree | d644cee67ea1bc4c33e6a1bcf6d80b98588e45ce | |
parent | 2048a9e7278d64954080077fb29d603fbb611873 (diff) |
amdgpu: add amdgpu_cs_syncobj_wait
v2: update amdgpu-symbol-check
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
-rwxr-xr-x | amdgpu/amdgpu-symbol-check | 1 | ||||
-rw-r--r-- | amdgpu/amdgpu.h | 20 | ||||
-rw-r--r-- | amdgpu/amdgpu_cs.c | 12 |
3 files changed, 33 insertions, 0 deletions
diff --git a/amdgpu/amdgpu-symbol-check b/amdgpu/amdgpu-symbol-check index bc9ed3f9..7ecfc982 100755 --- a/amdgpu/amdgpu-symbol-check +++ b/amdgpu/amdgpu-symbol-check @@ -42,6 +42,7 @@ amdgpu_cs_submit amdgpu_cs_submit_raw amdgpu_cs_syncobj_export_sync_file amdgpu_cs_syncobj_import_sync_file +amdgpu_cs_syncobj_wait amdgpu_cs_wait_fences amdgpu_cs_wait_semaphore amdgpu_device_deinitialize diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h index b44b9b64..979acfc8 100644 --- a/amdgpu/amdgpu.h +++ b/amdgpu/amdgpu.h @@ -1354,6 +1354,26 @@ int amdgpu_cs_destroy_syncobj(amdgpu_device_handle dev, uint32_t syncobj); /** + * Wait for one or all sync objects to signal. + * + * \param dev - \c [in] self-explanatory + * \param handles - \c [in] array of sync object handles + * \param num_handles - \c [in] self-explanatory + * \param timeout_nsec - \c [in] self-explanatory + * \param flags - \c [in] a bitmask of DRM_SYNCOBJ_WAIT_FLAGS_* + * \param first_signaled - \c [in] self-explanatory + * + * \return 0 on success\n + * -ETIME - Timeout + * <0 - Negative POSIX Error code + * + */ +int amdgpu_cs_syncobj_wait(amdgpu_device_handle dev, + uint32_t *handles, unsigned num_handles, + int64_t timeout_nsec, unsigned flags, + uint32_t *first_signaled); + +/** * Export kernel sync object to shareable fd. * * \param dev - \c [in] device handle diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c index 4a055366..2cde7bff 100644 --- a/amdgpu/amdgpu_cs.c +++ b/amdgpu/amdgpu_cs.c @@ -615,6 +615,18 @@ int amdgpu_cs_destroy_syncobj(amdgpu_device_handle dev, return drmSyncobjDestroy(dev->fd, handle); } +int amdgpu_cs_syncobj_wait(amdgpu_device_handle dev, + uint32_t *handles, unsigned num_handles, + int64_t timeout_nsec, unsigned flags, + uint32_t *first_signaled) +{ + if (NULL == dev) + return -EINVAL; + + return drmSyncobjWait(dev->fd, handles, num_handles, timeout_nsec, + flags, first_signaled); +} + int amdgpu_cs_export_syncobj(amdgpu_device_handle dev, uint32_t handle, int *shared_fd) |