diff options
author | Marek Olšák <marek.olsak@amd.com> | 2019-01-07 13:28:12 -0500 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2019-01-16 16:39:25 -0500 |
commit | f19afaa519c2aa51d8449168fa83a98f2f04e0e5 (patch) | |
tree | 25c5c9355b36d87aba170caf4a1356b3bd42deac /amdgpu/amdgpu.h | |
parent | 98cff551b0d5e54f564e99207e9c1e8d110f0914 (diff) | |
download | external_libdrm-f19afaa519c2aa51d8449168fa83a98f2f04e0e5.tar.gz external_libdrm-f19afaa519c2aa51d8449168fa83a98f2f04e0e5.tar.bz2 external_libdrm-f19afaa519c2aa51d8449168fa83a98f2f04e0e5.zip |
amdgpu: add a faster BO list API
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'amdgpu/amdgpu.h')
-rw-r--r-- | amdgpu/amdgpu.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h index dc51659a..d6de3b8d 100644 --- a/amdgpu/amdgpu.h +++ b/amdgpu/amdgpu.h @@ -42,6 +42,7 @@ extern "C" { #endif struct drm_amdgpu_info_hw_ip; +struct drm_amdgpu_bo_list_entry; /*--------------------------------------------------------------------------*/ /* --------------------------- Defines ------------------------------------ */ @@ -779,6 +780,37 @@ int amdgpu_bo_wait_for_idle(amdgpu_bo_handle buf_handle, * * \param dev - \c [in] Device handle. * See #amdgpu_device_initialize() + * \param number_of_buffers - \c [in] Number of BOs in the list + * \param buffers - \c [in] List of BO handles + * \param result - \c [out] Created BO list handle + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * + * \sa amdgpu_bo_list_destroy_raw(), amdgpu_cs_submit_raw2() +*/ +int amdgpu_bo_list_create_raw(amdgpu_device_handle dev, + uint32_t number_of_buffers, + struct drm_amdgpu_bo_list_entry *buffers, + uint32_t *result); + +/** + * Destroys a BO list handle. + * + * \param bo_list - \c [in] BO list handle. + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * + * \sa amdgpu_bo_list_create_raw(), amdgpu_cs_submit_raw2() +*/ +int amdgpu_bo_list_destroy_raw(amdgpu_device_handle dev, uint32_t bo_list); + +/** + * Creates a BO list handle for command submission. + * + * \param dev - \c [in] Device handle. + * See #amdgpu_device_initialize() * \param number_of_resources - \c [in] Number of BOs in the list * \param resources - \c [in] List of BO handles * \param resource_prios - \c [in] Optional priority for each handle @@ -1587,6 +1619,28 @@ int amdgpu_cs_submit_raw(amdgpu_device_handle dev, struct drm_amdgpu_cs_chunk *chunks, uint64_t *seq_no); +/** + * Submit raw command submission to the kernel with a raw BO list handle. + * + * \param dev - \c [in] device handle + * \param context - \c [in] context handle for context id + * \param bo_list_handle - \c [in] raw bo list handle (0 for none) + * \param num_chunks - \c [in] number of CS chunks to submit + * \param chunks - \c [in] array of CS chunks + * \param seq_no - \c [out] output sequence number for submission. + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * + * \sa amdgpu_bo_list_create_raw(), amdgpu_bo_list_destroy_raw() + */ +int amdgpu_cs_submit_raw2(amdgpu_device_handle dev, + amdgpu_context_handle context, + uint32_t bo_list_handle, + int num_chunks, + struct drm_amdgpu_cs_chunk *chunks, + uint64_t *seq_no); + void amdgpu_cs_chunk_fence_to_dep(struct amdgpu_cs_fence *fence, struct drm_amdgpu_cs_chunk_dep *dep); void amdgpu_cs_chunk_fence_info_to_data(struct amdgpu_cs_fence_info *fence_info, |