Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16027>
return VK_SUCCESS;
}
}
+
+struct vk_shader_module *
+vk_shader_module_clone(void *mem_ctx, const struct vk_shader_module *src)
+{
+ struct vk_shader_module *dst =
+ ralloc_size(mem_ctx, sizeof(struct vk_shader_module) + src->size);
+
+ vk_object_base_init(src->base.device, &dst->base, VK_OBJECT_TYPE_SHADER_MODULE);
+
+ dst->nir = NULL;
+
+ memcpy(dst->sha1, src->sha1, sizeof(src->sha1));
+
+ dst->size = src->size;
+ memcpy(dst->data, src->data, src->size);
+
+ return dst;
+}
const struct nir_shader_compiler_options *nir_options,
void *mem_ctx, struct nir_shader **nir_out);
+struct vk_shader_module *vk_shader_module_clone(void *mem_ctx,
+ const struct vk_shader_module *src);
+
/* this should only be used for stack-allocated, temporary objects */
#define vk_shader_module_handle_from_nir(_nir) \
((VkShaderModule)(uintptr_t)&(struct vk_shader_module) { \