X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fvulkan.h;h=2b42550c24657ad2b493c8497f99ee22f6d83d76;hp=d77e2cc424e852852adb7ac31e75eeb7b6d3569c;hb=cebf1330ef6773b7b4496dc279ec02a7ca4351bb;hpb=2a70fecfbbe8708be2bdaa75d222dd5a889a8ed3 diff --git a/source/backends/vulkan/vulkan.h b/source/backends/vulkan/vulkan.h index d77e2cc4..2b42550c 100644 --- a/source/backends/vulkan/vulkan.h +++ b/source/backends/vulkan/vulkan.h @@ -124,6 +124,7 @@ private: PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; // 8.4 PFN_vkCreateShaderModule vkCreateShaderModule = 0; // 9.1 PFN_vkDestroyShaderModule vkDestroyShaderModule = 0; // 9.1 + PFN_vkCreateComputePipelines vkCreateComputePipelines = 0; // 10.1 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0; // 10.2 PFN_vkDestroyPipeline vkDestroyPipeline = 0; // 10.4 PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; // 10.10 @@ -162,6 +163,7 @@ private: PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; // 21.2 PFN_vkCmdSetViewport vkCmdSetViewport = 0; // 24.5 PFN_vkCmdSetScissor vkCmdSetScissor = 0; // 26.1 + PFN_vkCmdDispatch vkCmdDispatch = 0; // 28 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilities = 0; // 30.5.1 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormats = 0; // 30.5.2 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModes = 0; // 30.5.3 @@ -260,6 +262,9 @@ public: { vkDestroyShaderModule(device, handle_cast<::VkShaderModule>(shaderModule), 0); } // Chapter 10: Pipelines + Result CreateComputePipelines(VkPipelineCache pipelineCache, std::uint32_t createInfoCount, const VkComputePipelineCreateInfo *pCreateInfos, VkPipeline *pPipelines) const + { return { vkCreateComputePipelines(device, handle_cast<::VkPipelineCache>(pipelineCache), createInfoCount, pCreateInfos, 0, handle_cast<::VkPipeline *>(pPipelines)), "vkCreateComputePipelines" }; } + Result CreateGraphicsPipelines(VkPipelineCache pipelineCache, std::uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo *pCreateInfos, VkPipeline *pPipelines) const { return { vkCreateGraphicsPipelines(device, handle_cast<::VkPipelineCache>(pipelineCache), createInfoCount, pCreateInfos, 0, handle_cast<::VkPipeline *>(pPipelines)), "vkCreateGraphicsPipelines" }; } @@ -383,6 +388,10 @@ public: void CmdSetScissor(VkCommandBuffer commandBuffer, std::uint32_t firstScissor, std::uint32_t scissorCount, const VkRect2D *pScissors) const { vkCmdSetScissor(handle_cast<::VkCommandBuffer>(commandBuffer), firstScissor, scissorCount, pScissors); } + // Chapter 28: Dispatching Commands + void CmdDispatch(VkCommandBuffer commandBuffer, std::uint32_t groupCountX, std::uint32_t groupCountY, std::uint32_t groupCountZ) const + { vkCmdDispatch(handle_cast<::VkCommandBuffer>(commandBuffer), groupCountX, groupCountY, groupCountZ); } + // Chapter 30: Window System Integration (WSI) Result GetPhysicalDeviceSurfaceCapabilities(VkSurface surface, VkSurfaceCapabilitiesKHR &rSurfaceCapabilities) const { return { vkGetPhysicalDeviceSurfaceCapabilities(physicalDevice, handle_cast<::VkSurfaceKHR>(surface), &rSurfaceCapabilities), "vkGetPhysicalDeviceSurfaceCapabilities" }; } @@ -470,6 +479,9 @@ public: void SetScissor(std::uint32_t firstScissor, std::uint32_t scissorCount, const VkRect2D *pScissors) const { vk.CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors); } + + void Dispatch(std::uint32_t groupCountX, std::uint32_t groupCountY, std::uint32_t groupCountZ) const + { vk.CmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ); } }; } // namespace GL