From fb5237910b2e8f9b0d1a0a15de3f73dc0675771e Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Sun, 21 Jun 2020 23:22:00 +0200 Subject: [PATCH] amd: Add detection of timeline semaphore support. Reviewed-by: Samuel Pitoiset Part-of: --- 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; -- 2.30.2