From f2563788a1c348ecbc4417c2d0359b3472c1959c Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Mon, 23 May 2022 20:46:34 +0000 Subject: [PATCH] venus: add feedback check/set/reset helpers Implemented: - vn_feedback_get_status - vn_feedback_reset_status - vn_feedback_set_status - vn_feedback_get_counter - vn_feedback_set_counter Signed-off-by: Yiwei Zhang Reviewed-by: Ryan Neph Reviewed-by: Chad Versace Part-of: --- src/virtio/vulkan/vn_feedback.h | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/virtio/vulkan/vn_feedback.h b/src/virtio/vulkan/vn_feedback.h index 865f4e784f8..ea5b47e2f8a 100644 --- a/src/virtio/vulkan/vn_feedback.h +++ b/src/virtio/vulkan/vn_feedback.h @@ -64,4 +64,41 @@ void vn_feedback_pool_free(struct vn_feedback_pool *pool, struct vn_feedback_slot *slot); +static inline VkResult +vn_feedback_get_status(struct vn_feedback_slot *slot) +{ + return *slot->status; +} + +static inline void +vn_feedback_reset_status(struct vn_feedback_slot *slot) +{ + assert(slot->type == VN_FEEDBACK_TYPE_FENCE || + slot->type == VN_FEEDBACK_TYPE_EVENT); + *slot->status = + slot->type == VN_FEEDBACK_TYPE_FENCE ? VK_NOT_READY : VK_EVENT_RESET; +} + +static inline void +vn_feedback_set_status(struct vn_feedback_slot *slot, VkResult status) +{ + assert(slot->type == VN_FEEDBACK_TYPE_FENCE || + slot->type == VN_FEEDBACK_TYPE_EVENT); + *slot->status = status; +} + +static inline uint64_t +vn_feedback_get_counter(struct vn_feedback_slot *slot) +{ + assert(slot->type == VN_FEEDBACK_TYPE_TIMELINE_SEMAPHORE); + return *slot->counter; +} + +static inline void +vn_feedback_set_counter(struct vn_feedback_slot *slot, uint64_t counter) +{ + assert(slot->type == VN_FEEDBACK_TYPE_TIMELINE_SEMAPHORE); + *slot->counter = counter; +} + #endif /* VN_FEEDBACK_H */