]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/vulkan.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / backends / vulkan / vulkan.h
index d77e2cc424e852852adb7ac31e75eeb7b6d3569c..6c3726f6024c32c289c991d0686105b657d469c7 100644 (file)
@@ -117,6 +117,7 @@ private:
        PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;  // 7.6
        PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;  // 7.8
        PFN_vkCreateRenderPass vkCreateRenderPass = 0;  // 8.1
+       PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;  // 8.1
        PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;  // 8.1
        PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;  // 8.3
        PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;  // 8.3
@@ -124,6 +125,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 +164,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
@@ -237,6 +240,9 @@ public:
        Result CreateRenderPass(const VkRenderPassCreateInfo &rCreateInfo, VkRenderPass &rRenderPass) const
        { return { vkCreateRenderPass(device, &rCreateInfo, 0, handle_cast<::VkRenderPass *>(&rRenderPass)), "vkCreateRenderPass" }; }
 
+       Result CreateRenderPass2(const VkRenderPassCreateInfo2 &rCreateInfo, VkRenderPass &rRenderPass) const
+       { return { vkCreateRenderPass2(device, &rCreateInfo, 0, handle_cast<::VkRenderPass *>(&rRenderPass)), "vkCreateRenderPass2" }; }
+
        void DestroyRenderPass(VkRenderPass renderPass) const
        { vkDestroyRenderPass(device, handle_cast<::VkRenderPass>(renderPass), 0); }
 
@@ -260,6 +266,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 +392,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 +483,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