Mesa (main): radv/amdgpu: Use VkResult for wait_timeline_syncobj.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Dec 28 16:14:22 UTC 2021
Module: Mesa
Branch: main
Commit: 50658ed8da210680dfe24ea1cf312ba7be109e6a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=50658ed8da210680dfe24ea1cf312ba7be109e6a
Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date: Sat Dec 11 19:44:53 2021 +0100
radv/amdgpu: Use VkResult for wait_timeline_syncobj.
So we can actually return errors.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14165>
---
src/amd/vulkan/radv_device.c | 12 ++++++------
src/amd/vulkan/radv_radeon_winsys.h | 6 +++---
src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 8 ++++----
3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 92e98f57fc3..8994d3cf700 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -4876,14 +4876,14 @@ wait_for_submission_timelines_available(struct radv_deferred_queue_submission *s
++syncobj_idx;
}
- bool success = true;
+ VkResult result = VK_SUCCESS;
if (syncobj_idx > 0) {
- success = device->ws->wait_timeline_syncobj(device->ws, syncobj, points, syncobj_idx, true,
- true, timeout);
+ result = device->ws->wait_timeline_syncobj(device->ws, syncobj, points, syncobj_idx, true,
+ true, timeout);
}
free(points);
- return success ? VK_SUCCESS : VK_TIMEOUT;
+ return result;
}
static int
@@ -6276,11 +6276,11 @@ radv_WaitSemaphores(VkDevice _device, const VkSemaphoreWaitInfo *pWaitInfo, uint
handles[i] = semaphore->permanent.syncobj;
}
- bool success =
+ VkResult result =
device->ws->wait_timeline_syncobj(device->ws, handles, pWaitInfo->pValues,
pWaitInfo->semaphoreCount, wait_all, false, abs_timeout);
free(handles);
- return success ? VK_SUCCESS : VK_TIMEOUT;
+ return result;
}
VKAPI_ATTR VkResult VKAPI_CALL
diff --git a/src/amd/vulkan/radv_radeon_winsys.h b/src/amd/vulkan/radv_radeon_winsys.h
index 6f874e738be..07d3480b07a 100644
--- a/src/amd/vulkan/radv_radeon_winsys.h
+++ b/src/amd/vulkan/radv_radeon_winsys.h
@@ -301,9 +301,9 @@ struct radeon_winsys {
VkResult (*query_syncobj)(struct radeon_winsys *ws, uint32_t handle, uint64_t *point);
bool (*wait_syncobj)(struct radeon_winsys *ws, const uint32_t *handles, uint32_t handle_count,
bool wait_all, uint64_t timeout);
- bool (*wait_timeline_syncobj)(struct radeon_winsys *ws, const uint32_t *handles,
- const uint64_t *points, uint32_t handle_count, bool wait_all,
- bool available, uint64_t timeout);
+ VkResult (*wait_timeline_syncobj)(struct radeon_winsys *ws, const uint32_t *handles,
+ const uint64_t *points, uint32_t handle_count, bool wait_all,
+ bool available, uint64_t timeout);
int (*export_syncobj)(struct radeon_winsys *ws, uint32_t syncobj, int *fd);
int (*import_syncobj)(struct radeon_winsys *ws, int fd, uint32_t *syncobj);
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index e5d3bfb545e..b2ed11e60a0 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -1844,7 +1844,7 @@ radv_amdgpu_wait_syncobj(struct radeon_winsys *_ws, const uint32_t *handles, uin
}
}
-static bool
+static VkResult
radv_amdgpu_wait_timeline_syncobj(struct radeon_winsys *_ws, const uint32_t *handles,
const uint64_t *points, uint32_t handle_count, bool wait_all,
bool available, uint64_t timeout)
@@ -1860,12 +1860,12 @@ radv_amdgpu_wait_timeline_syncobj(struct radeon_winsys *_ws, const uint32_t *han
(available ? DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE : 0),
NULL);
if (ret == 0) {
- return true;
+ return VK_SUCCESS;
} else if (ret == -ETIME) {
- return false;
+ return VK_TIMEOUT;
} else {
fprintf(stderr, "amdgpu: radv_amdgpu_wait_timeline_syncobj failed! (%d)\n", ret);
- return false;
+ return VK_ERROR_UNKNOWN;
}
}
More information about the mesa-commit
mailing list