]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/vulkan.cpp
Support compute shaders and compute operations
[libs/gl.git] / source / backends / vulkan / vulkan.cpp
index fd6b992fef3d0105b657eaa6a49c8778f90e52f0..31349e8fad7a76e60af472e14835bb1bcd526f56 100644 (file)
@@ -19,6 +19,7 @@ VulkanFunctions::VulkanFunctions(const Graphics::VulkanContext &c):
        vkBeginCommandBuffer(context.get_function<PFN_vkBeginCommandBuffer>("vkBeginCommandBuffer")),
        vkEndCommandBuffer(context.get_function<PFN_vkEndCommandBuffer>("vkEndCommandBuffer")),
        vkQueueSubmit(context.get_function<PFN_vkQueueSubmit>("vkQueueSubmit")),
+       vkCmdExecuteCommands(context.get_function<PFN_vkCmdExecuteCommands>("vkCmdExecuteCommands")),
        // 7
        vkCreateFence(context.get_function<PFN_vkCreateFence>("vkCreateFence")),
        vkDestroyFence(context.get_function<PFN_vkDestroyFence>("vkDestroyFence")),
@@ -40,6 +41,7 @@ VulkanFunctions::VulkanFunctions(const Graphics::VulkanContext &c):
        vkCreateShaderModule(context.get_function<PFN_vkCreateShaderModule>("vkCreateShaderModule")),
        vkDestroyShaderModule(context.get_function<PFN_vkDestroyShaderModule>("vkDestroyShaderModule")),
        // 10
+       vkCreateComputePipelines(context.get_function<PFN_vkCreateComputePipelines>("vkCreateComputePipelines")),
        vkCreateGraphicsPipelines(context.get_function<PFN_vkCreateGraphicsPipelines>("vkCreateGraphicsPipelines")),
        vkDestroyPipeline(context.get_function<PFN_vkDestroyPipeline>("vkDestroyPipeline")),
        vkCmdBindPipeline(context.get_function<PFN_vkCmdBindPipeline>("vkCmdBindPipeline")),
@@ -52,10 +54,17 @@ VulkanFunctions::VulkanFunctions(const Graphics::VulkanContext &c):
        // 12
        vkCreateBuffer(context.get_function<PFN_vkCreateBuffer>("vkCreateBuffer")),
        vkDestroyBuffer(context.get_function<PFN_vkDestroyBuffer>("vkDestroyBuffer")),
+       vkCreateImage(context.get_function<PFN_vkCreateImage>("vkCreateImage")),
+       vkDestroyImage(context.get_function<PFN_vkDestroyImage>("vkDestroyImage")),
        vkCreateImageView(context.get_function<PFN_vkCreateImageView>("vkCreateImageView")),
        vkDestroyImageView(context.get_function<PFN_vkDestroyImageView>("vkDestroyImageView")),
        vkGetBufferMemoryRequirements(context.get_function<PFN_vkGetBufferMemoryRequirements>("vkGetBufferMemoryRequirements")),
+       vkGetImageMemoryRequirements(context.get_function<PFN_vkGetImageMemoryRequirements>("vkGetImageMemoryRequirements")),
        vkBindBufferMemory(context.get_function<PFN_vkBindBufferMemory>("vkBindBufferMemory")),
+       vkBindImageMemory(context.get_function<PFN_vkBindImageMemory>("vkBindImageMemory")),
+       // 13
+       vkCreateSampler(context.get_function<PFN_vkCreateSampler>("vkCreateSampler")),
+       vkDestroySampler(context.get_function<PFN_vkDestroySampler>("vkDestroySampler")),
        // 14
        vkCreateDescriptorSetLayout(context.get_function<PFN_vkCreateDescriptorSetLayout>("vkCreateDescriptorSetLayout")),
        vkDestroyDescriptorSetLayout(context.get_function<PFN_vkDestroyDescriptorSetLayout>("vkDestroyDescriptorSetLayout")),
@@ -69,6 +78,8 @@ VulkanFunctions::VulkanFunctions(const Graphics::VulkanContext &c):
        vkCmdPushConstants(context.get_function<PFN_vkCmdPushConstants>("vkCmdPushConstants")),
        // 19
        vkCmdCopyBuffer(context.get_function<PFN_vkCmdCopyBuffer>("vkCmdCopyBuffer")),
+       vkCmdCopyBufferToImage(context.get_function<PFN_vkCmdCopyBufferToImage>("vkCmdCopyBufferToImage")),
+       vkCmdBlitImage(context.get_function<PFN_vkCmdBlitImage>("vkCmdBlitImage")),
        // 20
        vkCmdBindIndexBuffer(context.get_function<PFN_vkCmdBindIndexBuffer>("vkCmdBindIndexBuffer")),
        vkCmdDrawIndexed(context.get_function<PFN_vkCmdDrawIndexed>("vkCmdDrawIndexed")),
@@ -78,6 +89,8 @@ VulkanFunctions::VulkanFunctions(const Graphics::VulkanContext &c):
        vkCmdSetViewport(context.get_function<PFN_vkCmdSetViewport>("vkCmdSetViewport")),
        // 26
        vkCmdSetScissor(context.get_function<PFN_vkCmdSetScissor>("vkCmdSetScissor")),
+       // 28
+       vkCmdDispatch(context.get_function<PFN_vkCmdDispatch>("vkCmdDispatch")),
        // 30
        vkGetPhysicalDeviceSurfaceCapabilities(context.get_function<PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR>("vkGetPhysicalDeviceSurfaceCapabilitiesKHR")),
        vkGetPhysicalDeviceSurfaceFormats(context.get_function<PFN_vkGetPhysicalDeviceSurfaceFormatsKHR>("vkGetPhysicalDeviceSurfaceFormatsKHR")),