Mesa (main): venus: add feedback check/set/reset helpers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 16 19:06:12 UTC 2022


Module: Mesa
Branch: main
Commit: f2563788a1c348ecbc4417c2d0359b3472c1959c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f2563788a1c348ecbc4417c2d0359b3472c1959c

Author: Yiwei Zhang <zzyiwei at chromium.org>
Date:   Mon May 23 20:46:34 2022 +0000

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 <zzyiwei at chromium.org>
Reviewed-by: Ryan Neph <ryanneph at google.com>
Reviewed-by: Chad Versace <chadversary at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731>

---

 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 */



More information about the mesa-commit mailing list