diff --git a/gfx/common/vulkan_common.c b/gfx/common/vulkan_common.c index 0017b59ef0..9766c9e2df 100644 --- a/gfx/common/vulkan_common.c +++ b/gfx/common/vulkan_common.c @@ -446,7 +446,8 @@ struct vk_texture vulkan_create_texture(vk_t *vk, submit_info.pCommandBuffers = &staging; slock_lock(vk->context->queue_lock); - vkQueueSubmit(vk->context->queue, 1, &submit_info, VK_NULL_HANDLE); + vk->context->fp.vkQueueSubmit(vk->context->queue, + 1, &submit_info, VK_NULL_HANDLE); /* TODO: Very crude, but texture uploads only happen * during init, so waiting for GPU to complete transfer @@ -1041,6 +1042,7 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk, VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, CreateDevice); VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, GetDeviceQueue); VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, QueueWaitIdle); + VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, QueueSubmit); VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, DestroySemaphore); VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, CreateSemaphore); VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, DestroyFence); diff --git a/gfx/common/vulkan_common.h b/gfx/common/vulkan_common.h index cd2734a1aa..7fbee8066f 100644 --- a/gfx/common/vulkan_common.h +++ b/gfx/common/vulkan_common.h @@ -144,6 +144,7 @@ typedef struct vulkan_context PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; PFN_vkQueueWaitIdle vkQueueWaitIdle; + PFN_vkQueueSubmit vkQueueSubmit; PFN_vkCmdCopyImage vkCmdCopyImage; PFN_vkCmdSetScissor vkCmdSetScissor; PFN_vkCmdSetViewport vkCmdSetViewport; diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c index 9d5ba80d0e..9347bf234c 100644 --- a/gfx/drivers/vulkan.c +++ b/gfx/drivers/vulkan.c @@ -1298,7 +1298,7 @@ static void vulkan_readback(vk_t *vk) VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); - vkCmdCopyImage(vk->cmd, vk->chain->backbuffer.image, + vk->context->fp.vkCmdCopyImage(vk->cmd, vk->chain->backbuffer.image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, staging->image, VK_IMAGE_LAYOUT_GENERAL, @@ -1615,7 +1615,7 @@ static bool vulkan_frame(void *data, const void *frame, retro_perf_start(&queue_submit); slock_lock(vk->context->queue_lock); - vkQueueSubmit(vk->context->queue, 1, + vk->context->fp.vkQueueSubmit(vk->context->queue, 1, &submit_info, vk->context->swapchain_fences[frame_index]); slock_unlock(vk->context->queue_lock); retro_perf_stop(&queue_submit);