Mesa (main): venus: add vn_renderer_util.[ch]

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Dec 15 19:12:29 UTC 2021


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

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu Dec  9 14:12:01 2021 -0800

venus: add vn_renderer_util.[ch]

Move helpers built on top of vn_renderer.h to the new files.

Signed-off-by: Chia-I Wu <olvaffe at gmail.com>
Reviewed-by: Ryan Neph <ryanneph at google.com>
Reviewed-by: Yiwei Zhang <zzyiwei at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14179>

---

 src/virtio/vulkan/meson.build        |  1 +
 src/virtio/vulkan/vn_instance.h      |  1 +
 src/virtio/vulkan/vn_renderer.h      | 55 ------------------------------------
 src/virtio/vulkan/vn_renderer_util.c | 45 +++++++++++++++++++++++++++++
 src/virtio/vulkan/vn_renderer_util.h | 32 +++++++++++++++++++++
 5 files changed, 79 insertions(+), 55 deletions(-)

diff --git a/src/virtio/vulkan/meson.build b/src/virtio/vulkan/meson.build
index fbce2339652..6c0d9cb32b5 100644
--- a/src/virtio/vulkan/meson.build
+++ b/src/virtio/vulkan/meson.build
@@ -47,6 +47,7 @@ libvn_files = files(
   'vn_queue.c',
   'vn_render_pass.c',
   'vn_ring.c',
+  'vn_renderer_util.c',
   'vn_renderer_virtgpu.c',
   'vn_renderer_vtest.c',
 )
diff --git a/src/virtio/vulkan/vn_instance.h b/src/virtio/vulkan/vn_instance.h
index a6e971430f5..1c3767fcea9 100644
--- a/src/virtio/vulkan/vn_instance.h
+++ b/src/virtio/vulkan/vn_instance.h
@@ -17,6 +17,7 @@
 
 #include "vn_cs.h"
 #include "vn_renderer.h"
+#include "vn_renderer_util.h"
 #include "vn_ring.h"
 
 /* require and request at least Vulkan 1.1 at both instance and device levels
diff --git a/src/virtio/vulkan/vn_renderer.h b/src/virtio/vulkan/vn_renderer.h
index 8706cc420fd..9118548bfeb 100644
--- a/src/virtio/vulkan/vn_renderer.h
+++ b/src/virtio/vulkan/vn_renderer.h
@@ -264,22 +264,6 @@ vn_renderer_submit(struct vn_renderer *renderer,
    return renderer->ops.submit(renderer, submit);
 }
 
-static inline VkResult
-vn_renderer_submit_simple(struct vn_renderer *renderer,
-                          const void *cs_data,
-                          size_t cs_size)
-{
-   const struct vn_renderer_submit submit = {
-      .batches =
-         &(const struct vn_renderer_submit_batch){
-            .cs_data = cs_data,
-            .cs_size = cs_size,
-         },
-      .batch_count = 1,
-   };
-   return vn_renderer_submit(renderer, &submit);
-}
-
 static inline VkResult
 vn_renderer_wait(struct vn_renderer *renderer,
                  const struct vn_renderer_wait *wait)
@@ -466,43 +450,4 @@ vn_renderer_sync_write(struct vn_renderer *renderer,
    return renderer->sync_ops.write(renderer, sync, val);
 }
 
-static inline VkResult
-vn_renderer_submit_simple_sync(struct vn_renderer *renderer,
-                               const void *cs_data,
-                               size_t cs_size)
-{
-   struct vn_renderer_sync *sync;
-   VkResult result =
-      vn_renderer_sync_create(renderer, 0, VN_RENDERER_SYNC_BINARY, &sync);
-   if (result != VK_SUCCESS)
-      return result;
-
-   const struct vn_renderer_submit submit = {
-      .batches =
-         &(const struct vn_renderer_submit_batch){
-            .cs_data = cs_data,
-            .cs_size = cs_size,
-            .sync_queue_cpu = true,
-            .syncs = &sync,
-            .sync_values = &(const uint64_t){ 1 },
-            .sync_count = 1,
-         },
-      .batch_count = 1,
-   };
-   const struct vn_renderer_wait wait = {
-      .timeout = UINT64_MAX,
-      .syncs = &sync,
-      .sync_values = &(const uint64_t){ 1 },
-      .sync_count = 1,
-   };
-
-   result = vn_renderer_submit(renderer, &submit);
-   if (result == VK_SUCCESS)
-      result = vn_renderer_wait(renderer, &wait);
-
-   vn_renderer_sync_destroy(renderer, sync);
-
-   return result;
-}
-
 #endif /* VN_RENDERER_H */
diff --git a/src/virtio/vulkan/vn_renderer_util.c b/src/virtio/vulkan/vn_renderer_util.c
new file mode 100644
index 00000000000..2eae0e697d5
--- /dev/null
+++ b/src/virtio/vulkan/vn_renderer_util.c
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2021 Google LLC
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "vn_renderer_util.h"
+
+VkResult
+vn_renderer_submit_simple_sync(struct vn_renderer *renderer,
+                               const void *cs_data,
+                               size_t cs_size)
+{
+   struct vn_renderer_sync *sync;
+   VkResult result =
+      vn_renderer_sync_create(renderer, 0, VN_RENDERER_SYNC_BINARY, &sync);
+   if (result != VK_SUCCESS)
+      return result;
+
+   const struct vn_renderer_submit submit = {
+      .batches =
+         &(const struct vn_renderer_submit_batch){
+            .cs_data = cs_data,
+            .cs_size = cs_size,
+            .sync_queue_cpu = true,
+            .syncs = &sync,
+            .sync_values = &(const uint64_t){ 1 },
+            .sync_count = 1,
+         },
+      .batch_count = 1,
+   };
+   const struct vn_renderer_wait wait = {
+      .timeout = UINT64_MAX,
+      .syncs = &sync,
+      .sync_values = &(const uint64_t){ 1 },
+      .sync_count = 1,
+   };
+
+   result = vn_renderer_submit(renderer, &submit);
+   if (result == VK_SUCCESS)
+      result = vn_renderer_wait(renderer, &wait);
+
+   vn_renderer_sync_destroy(renderer, sync);
+
+   return result;
+}
diff --git a/src/virtio/vulkan/vn_renderer_util.h b/src/virtio/vulkan/vn_renderer_util.h
new file mode 100644
index 00000000000..cefe4bfc5e9
--- /dev/null
+++ b/src/virtio/vulkan/vn_renderer_util.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2021 Google LLC
+ * SPDX-License-Identifier: MIT
+ */
+
+#ifndef VN_RENDERER_UTIL_H
+#define VN_RENDERER_UTIL_H
+
+#include "vn_renderer.h"
+
+static inline VkResult
+vn_renderer_submit_simple(struct vn_renderer *renderer,
+                          const void *cs_data,
+                          size_t cs_size)
+{
+   const struct vn_renderer_submit submit = {
+      .batches =
+         &(const struct vn_renderer_submit_batch){
+            .cs_data = cs_data,
+            .cs_size = cs_size,
+         },
+      .batch_count = 1,
+   };
+   return vn_renderer_submit(renderer, &submit);
+}
+
+VkResult
+vn_renderer_submit_simple_sync(struct vn_renderer *renderer,
+                               const void *cs_data,
+                               size_t cs_size);
+
+#endif /* VN_RENDERER_UTIL_H */



More information about the mesa-commit mailing list