summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/vulkan/ra_vk.c12
-rw-r--r--video/out/vulkan/ra_vk.h6
2 files changed, 18 insertions, 0 deletions
diff --git a/video/out/vulkan/ra_vk.c b/video/out/vulkan/ra_vk.c
index 1548b8c785..80019fa4bc 100644
--- a/video/out/vulkan/ra_vk.c
+++ b/video/out/vulkan/ra_vk.c
@@ -693,8 +693,20 @@ struct ra_buf_vk {
// "current" metadata, can change during course of execution
VkPipelineStageFlags current_stage;
VkAccessFlags current_access;
+ // Arbitrary user data for the creator of a buffer
+ void *user_data;
};
+void ra_vk_buf_set_user_data(struct ra_buf *buf, void *user_data) {
+ struct ra_buf_vk *vk_priv = buf->priv;
+ vk_priv->user_data = user_data;
+}
+
+void *ra_vk_buf_get_user_data(struct ra_buf *buf) {
+ struct ra_buf_vk *vk_priv = buf->priv;
+ return vk_priv->user_data;
+}
+
static void vk_buf_deref(struct ra *ra, struct ra_buf *buf)
{
if (!buf)
diff --git a/video/out/vulkan/ra_vk.h b/video/out/vulkan/ra_vk.h
index 89eb310146..393c01a3c1 100644
--- a/video/out/vulkan/ra_vk.h
+++ b/video/out/vulkan/ra_vk.h
@@ -43,3 +43,9 @@ struct vk_external_mem {
// Export an ra_buf for importing by another api.
bool ra_vk_buf_get_external_info(struct ra *ra, struct ra_buf *buf, struct vk_external_mem *ret);
+
+// Set the buffer user data
+void ra_vk_buf_set_user_data(struct ra_buf *buf, void *priv);
+
+// Get the buffer user data
+void *ra_vk_buf_get_user_data(struct ra_buf *buf);