diff --git a/spa/plugins/vulkan/vulkan-compute-utils.c b/spa/plugins/vulkan/vulkan-compute-utils.c index 050187d15..73e6d6a21 100644 --- a/spa/plugins/vulkan/vulkan-compute-utils.c +++ b/spa/plugins/vulkan/vulkan-compute-utils.c @@ -31,16 +31,6 @@ #define VULKAN_INSTANCE_FUNCTION(name) \ PFN_##name name = (PFN_##name)vkGetInstanceProcAddr(s->base.instance, #name) -static int createFence(struct vulkan_compute_state *s) { - VkFenceCreateInfo createInfo = { - .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, - .flags = 0, - }; - VK_CHECK_RESULT(vkCreateFence(s->base.device, &createInfo, NULL, &s->fence)); - - return 0; -}; - static int createDescriptors(struct vulkan_compute_state *s) { uint32_t i; @@ -562,7 +552,7 @@ int spa_vulkan_compute_init_stream(struct vulkan_compute_state *s, struct vulkan int spa_vulkan_compute_prepare(struct vulkan_compute_state *s) { if (!s->prepared) { - CHECK(createFence(s)); + CHECK(vulkan_fence_create(&s->base, &s->fence)); CHECK(createDescriptors(s)); CHECK(createComputePipeline(s, s->shaderName)); CHECK(createCommandBuffer(s)); diff --git a/spa/plugins/vulkan/vulkan-utils.c b/spa/plugins/vulkan/vulkan-utils.c index 3dfdc0d85..c7c961605 100644 --- a/spa/plugins/vulkan/vulkan-utils.c +++ b/spa/plugins/vulkan/vulkan-utils.c @@ -420,6 +420,17 @@ bool vulkan_sync_export_dmabuf(struct vulkan_base *s, struct vulkan_buffer *vk_b return dmabuf_import_sync_file(s->log, vk_buf->fd, DMA_BUF_SYNC_WRITE, sync_file_fd); } +int vulkan_fence_create(struct vulkan_base *s, VkFence *fence) +{ + VkFenceCreateInfo createInfo = { + .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, + .flags = 0, + }; + VK_CHECK_RESULT(vkCreateFence(s->device, &createInfo, NULL, fence)); + + return 0; +} + int vulkan_commandPool_create(struct vulkan_base *s, VkCommandPool *commandPool) { const VkCommandPoolCreateInfo commandPoolCreateInfo = { diff --git a/spa/plugins/vulkan/vulkan-utils.h b/spa/plugins/vulkan/vulkan-utils.h index 9f9611f95..991b9f57d 100644 --- a/spa/plugins/vulkan/vulkan-utils.h +++ b/spa/plugins/vulkan/vulkan-utils.h @@ -80,6 +80,7 @@ int vulkan_create_dmabuf(struct vulkan_base *s, struct external_buffer_info *inf int vulkan_import_dmabuf(struct vulkan_base *s, struct external_buffer_info *info, struct vulkan_buffer *vk_buf); int vulkan_import_memptr(struct vulkan_base *s, struct external_buffer_info *info, struct vulkan_buffer *vk_buf); +int vulkan_fence_create(struct vulkan_base *s, VkFence *fence); int vulkan_commandPool_create(struct vulkan_base *s, VkCommandPool *commandPool); int vulkan_commandBuffer_create(struct vulkan_base *s, VkCommandPool commandPool, VkCommandBuffer *commandBuffer);