Mesa (master): venus: provide accessors for vn_instance_submit_command
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Apr 28 20:49:10 UTC 2021
Module: Mesa
Branch: master
Commit: 3c8255f602567f316b07ca62fb4c256cac6a83c3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c8255f602567f316b07ca62fb4c256cac6a83c3
Author: Chia-I Wu <olvaffe at gmail.com>
Date: Thu Apr 22 10:55:59 2021 -0700
venus: provide accessors for vn_instance_submit_command
This will allow us to change vn_instance_submit_command without
regenerating the headers.
Signed-off-by: Chia-I Wu <olvaffe at gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437>
---
src/virtio/vulkan/vn_device.h | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/src/virtio/vulkan/vn_device.h b/src/virtio/vulkan/vn_device.h
index 9dc458c264f..5e212c3d7c3 100644
--- a/src/virtio/vulkan/vn_device.h
+++ b/src/virtio/vulkan/vn_device.h
@@ -136,6 +136,7 @@ vn_instance_ring_submit(struct vn_instance *instance,
struct vn_instance_submit_command {
/* empty command implies errors */
struct vn_cs_encoder command;
+ struct vn_cs_encoder_buffer buffer;
/* non-zero implies waiting */
size_t reply_size;
@@ -144,8 +145,41 @@ struct vn_instance_submit_command {
struct vn_cs_decoder reply;
};
+static inline struct vn_cs_encoder *
+vn_instance_submit_command_init(struct vn_instance *instance,
+ struct vn_instance_submit_command *submit,
+ void *cmd_data,
+ size_t cmd_size,
+ size_t reply_size)
+{
+ submit->command = VN_CS_ENCODER_INITIALIZER(cmd_data, cmd_size);
+ /* fix submit->command.buffers to not point to a local variable */
+ submit->buffer = submit->command.buffers[0];
+ submit->command.buffers = &submit->buffer;
+
+ submit->reply_size = reply_size;
+ submit->reply_bo = NULL;
+
+ return &submit->command;
+}
+
void
vn_instance_submit_command(struct vn_instance *instance,
struct vn_instance_submit_command *submit);
+static inline struct vn_cs_decoder *
+vn_instance_get_command_reply(struct vn_instance *instance,
+ struct vn_instance_submit_command *submit)
+{
+ return submit->reply_bo ? &submit->reply : NULL;
+}
+
+static inline void
+vn_instance_free_command_reply(struct vn_instance *instance,
+ struct vn_instance_submit_command *submit)
+{
+ assert(submit->reply_bo);
+ vn_renderer_bo_unref(submit->reply_bo);
+}
+
#endif /* VN_DEVICE_H */
More information about the mesa-commit
mailing list