aboutsummaryrefslogtreecommitdiffstats
path: root/amdgpu/amdgpu_cs.c
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2017-09-08 16:05:54 +0200
committerMarek Olšák <marek.olsak@amd.com>2017-10-12 20:35:57 +0200
commitc74d4614048f65b412caa572c900d15adba38ce3 (patch)
tree4445a1fedee3db9677dc9563ba99cdda1fae924b /amdgpu/amdgpu_cs.c
parent59aa57b363ba8de550aced1d397c54fd9e5e213c (diff)
downloadexternal_libdrm-c74d4614048f65b412caa572c900d15adba38ce3.tar.gz
external_libdrm-c74d4614048f65b412caa572c900d15adba38ce3.tar.bz2
external_libdrm-c74d4614048f65b412caa572c900d15adba38ce3.zip
amdgpu: add amdgpu_cs_fence_to_handle
v2: update amdgpu-symbol-check Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Diffstat (limited to 'amdgpu/amdgpu_cs.c')
-rw-r--r--amdgpu/amdgpu_cs.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c
index 2cde7bff..9577d5c9 100644
--- a/amdgpu/amdgpu_cs.c
+++ b/amdgpu/amdgpu_cs.c
@@ -713,3 +713,25 @@ void amdgpu_cs_chunk_fence_to_dep(struct amdgpu_cs_fence *fence,
dep->ctx_id = fence->context->id;
dep->handle = fence->fence;
}
+
+int amdgpu_cs_fence_to_handle(amdgpu_device_handle dev,
+ struct amdgpu_cs_fence *fence,
+ uint32_t what,
+ uint32_t *out_handle)
+{
+ union drm_amdgpu_fence_to_handle fth = {0};
+ int r;
+
+ fth.in.fence.ctx_id = fence->context->id;
+ fth.in.fence.ip_type = fence->ip_type;
+ fth.in.fence.ip_instance = fence->ip_instance;
+ fth.in.fence.ring = fence->ring;
+ fth.in.fence.seq_no = fence->fence;
+ fth.in.what = what;
+
+ r = drmCommandWriteRead(dev->fd, DRM_AMDGPU_FENCE_TO_HANDLE,
+ &fth, sizeof(fth));
+ if (r == 0)
+ *out_handle = fth.out.handle;
+ return r;
+}