Mesa (master): amd: Add detection of timeline semaphore support.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jul 23 17:49:27 UTC 2020
Module: Mesa
Branch: master
Commit: fb5237910b2e8f9b0d1a0a15de3f73dc0675771e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fb5237910b2e8f9b0d1a0a15de3f73dc0675771e
Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date: Sun Jun 21 23:22:00 2020 +0200
amd: Add detection of timeline semaphore support.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5600>
---
src/amd/common/ac_gpu_info.c | 10 ++++++++++
src/amd/common/ac_gpu_info.h | 1 +
2 files changed, 11 insertions(+)
diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c
index 4054e1506a9..797de243b40 100644
--- a/src/amd/common/ac_gpu_info.c
+++ b/src/amd/common/ac_gpu_info.c
@@ -93,6 +93,14 @@ static bool has_syncobj(int fd)
return value ? true : false;
}
+static bool has_timeline_syncobj(int fd)
+{
+ uint64_t value;
+ if (drmGetCap(fd, DRM_CAP_SYNCOBJ_TIMELINE, &value))
+ return false;
+ return value ? true : false;
+}
+
static uint64_t fix_vram_size(uint64_t size)
{
/* The VRAM size is underreported, so we need to fix it, because
@@ -478,6 +486,7 @@ bool ac_query_gpu_info(int fd, void *dev_p,
uvd_enc.available_rings ? true : false;
info->has_userptr = true;
info->has_syncobj = has_syncobj(fd);
+ info->has_timeline_syncobj = has_timeline_syncobj(fd);
info->has_syncobj_wait_for_submit = info->has_syncobj && info->drm_minor >= 20;
info->has_fence_to_handle = info->has_syncobj && info->drm_minor >= 21;
info->has_ctx_priority = info->drm_minor >= 22;
@@ -923,6 +932,7 @@ void ac_print_gpu_info(struct radeon_info *info)
printf(" has_userptr = %i\n", info->has_userptr);
printf(" has_syncobj = %u\n", info->has_syncobj);
printf(" has_syncobj_wait_for_submit = %u\n", info->has_syncobj_wait_for_submit);
+ printf(" has_timeline_syncobj = %u\n", info->has_timeline_syncobj);
printf(" has_fence_to_handle = %u\n", info->has_fence_to_handle);
printf(" has_ctx_priority = %u\n", info->has_ctx_priority);
printf(" has_local_buffers = %u\n", info->has_local_buffers);
diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h
index 4b2c35c466c..70e53f16cb4 100644
--- a/src/amd/common/ac_gpu_info.h
+++ b/src/amd/common/ac_gpu_info.h
@@ -134,6 +134,7 @@ struct radeon_info {
bool has_userptr;
bool has_syncobj;
bool has_syncobj_wait_for_submit;
+ bool has_timeline_syncobj;
bool has_fence_to_handle;
bool has_ctx_priority;
bool has_local_buffers;
More information about the mesa-commit
mailing list