#include "vulkan/vulkan.h" {-# OPTIONS_GHC -fno-warn-unused-imports#-} {-# OPTIONS_HADDOCK not-home#-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE Strict #-} module Graphics.Vulkan.Core (-- * Vulkan core API interface definitions -- | -- -- @api = vulkan@ -- -- @name = VK_VERSION_1_0@ -- -- @number = 1.0@ -- -- ** Header boilerplate -- -- | -- > ##include "vk_platform.h" -- -- ** API version -- -- ** API constants module Graphics.Vulkan.Types.Enum.VkPipelineCacheHeaderVersion, pattern VK_LOD_CLAMP_NONE, pattern VK_REMAINING_MIP_LEVELS, VK_REMAINING_MIP_LEVELS, pattern VK_REMAINING_ARRAY_LAYERS, VK_REMAINING_ARRAY_LAYERS, pattern VK_WHOLE_SIZE, VK_WHOLE_SIZE, pattern VK_ATTACHMENT_UNUSED, VK_ATTACHMENT_UNUSED, pattern VK_TRUE, VK_TRUE, pattern VK_FALSE, VK_FALSE, pattern VK_QUEUE_FAMILY_IGNORED, VK_QUEUE_FAMILY_IGNORED, pattern VK_SUBPASS_EXTERNAL, VK_SUBPASS_EXTERNAL, -- ** Device initialization vkCreateInstance, vkDestroyInstance, vkEnumeratePhysicalDevices, vkGetPhysicalDeviceFeatures, vkGetPhysicalDeviceFormatProperties, vkGetPhysicalDeviceImageFormatProperties, vkGetPhysicalDeviceProperties, vkGetPhysicalDeviceQueueFamilyProperties, vkGetPhysicalDeviceMemoryProperties, vkGetInstanceProcAddr, vkGetDeviceProcAddr, module Graphics.Vulkan.Marshal, module Graphics.Vulkan.Types.BaseTypes, module Graphics.Vulkan.Types.Bitmasks, module Graphics.Vulkan.Types.Enum.VkFormat, module Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags, module Graphics.Vulkan.Types.Enum.VkImageCreateFlags, module Graphics.Vulkan.Types.Enum.VkImageTiling, module Graphics.Vulkan.Types.Enum.VkImageType, module Graphics.Vulkan.Types.Enum.VkImageUsageFlags, module Graphics.Vulkan.Types.Enum.VkInternalAllocationType, module Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags, module Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags, module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType, module Graphics.Vulkan.Types.Enum.VkQueueFlags, module Graphics.Vulkan.Types.Enum.VkResult, module Graphics.Vulkan.Types.Enum.VkSampleCountFlags, module Graphics.Vulkan.Types.Enum.VkStructureType, module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope, module Graphics.Vulkan.Types.Funcpointers, module Graphics.Vulkan.Types.Handles, module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks, module Graphics.Vulkan.Types.Struct.VkApplicationInfo, module Graphics.Vulkan.Types.Struct.VkExtent3D, module Graphics.Vulkan.Types.Struct.VkFormatProperties, module Graphics.Vulkan.Types.Struct.VkImageFormatProperties, module Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo, module Graphics.Vulkan.Types.Struct.VkMemoryHeap, module Graphics.Vulkan.Types.Struct.VkMemoryType, module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures, module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits, module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties, module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties, module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties, module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties, -- ** Device commands vkCreateDevice, vkDestroyDevice, module Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo, module Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo, -- ** Extension discovery commands vkEnumerateInstanceExtensionProperties, vkEnumerateDeviceExtensionProperties, module Graphics.Vulkan.Types.Struct.VkExtensionProperties, -- ** Layer discovery commands vkEnumerateInstanceLayerProperties, vkEnumerateDeviceLayerProperties, module Graphics.Vulkan.Types.Struct.VkLayerProperties, -- ** queue commands vkGetDeviceQueue, vkQueueSubmit, vkQueueWaitIdle, vkDeviceWaitIdle, module Graphics.Vulkan.Types.Enum.VkPipelineStageFlags, module Graphics.Vulkan.Types.Struct.VkSubmitInfo, -- ** Memory commands vkAllocateMemory, vkFreeMemory, vkMapMemory, vkUnmapMemory, vkFlushMappedMemoryRanges, vkInvalidateMappedMemoryRanges, vkGetDeviceMemoryCommitment, module Graphics.Vulkan.Types.Struct.VkMappedMemoryRange, module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo, -- ** Memory management API commands vkBindBufferMemory, vkBindImageMemory, vkGetBufferMemoryRequirements, vkGetImageMemoryRequirements, module Graphics.Vulkan.Types.Struct.VkMemoryRequirements, -- ** Sparse resource memory management API commands vkGetImageSparseMemoryRequirements, vkGetPhysicalDeviceSparseImageFormatProperties, vkQueueBindSparse, module Graphics.Vulkan.Types.Enum.VkImageAspectFlags, module Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags, module Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags, module Graphics.Vulkan.Types.Struct.VkBindSparseInfo, module Graphics.Vulkan.Types.Struct.VkImageSubresource, module Graphics.Vulkan.Types.Struct.VkOffset3D, module Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo, module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties, module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind, module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo, module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements, module Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo, module Graphics.Vulkan.Types.Struct.VkSparseMemoryBind, -- ** Fence commands vkCreateFence, vkDestroyFence, vkResetFences, vkGetFenceStatus, vkWaitForFences, module Graphics.Vulkan.Types.Enum.VkFenceCreateFlags, module Graphics.Vulkan.Types.Struct.VkFenceCreateInfo, -- ** Queue semaphore commands vkCreateSemaphore, vkDestroySemaphore, module Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo, -- ** Event commands vkCreateEvent, vkDestroyEvent, vkGetEventStatus, vkSetEvent, vkResetEvent, module Graphics.Vulkan.Types.Struct.VkEventCreateInfo, -- ** Query commands vkCreateQueryPool, vkDestroyQueryPool, vkGetQueryPoolResults, module Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags, module Graphics.Vulkan.Types.Enum.VkQueryResultFlags, module Graphics.Vulkan.Types.Enum.VkQueryType, module Graphics.Vulkan.Types.Struct.VkQueryPoolCreateInfo, -- ** Buffer commands vkCreateBuffer, vkDestroyBuffer, module Graphics.Vulkan.Types.Enum.VkBufferCreateFlags, module Graphics.Vulkan.Types.Enum.VkBufferUsageFlags, module Graphics.Vulkan.Types.Enum.VkSharingMode, module Graphics.Vulkan.Types.Struct.VkBufferCreateInfo, -- ** Buffer view commands vkCreateBufferView, vkDestroyBufferView, module Graphics.Vulkan.Types.Struct.VkBufferViewCreateInfo, -- ** Image commands vkCreateImage, vkDestroyImage, vkGetImageSubresourceLayout, module Graphics.Vulkan.Types.Enum.VkImageLayout, module Graphics.Vulkan.Types.Struct.VkImageCreateInfo, module Graphics.Vulkan.Types.Struct.VkSubresourceLayout, -- ** Image view commands vkCreateImageView, vkDestroyImageView, module Graphics.Vulkan.Types.Enum.VkComponentSwizzle, module Graphics.Vulkan.Types.Enum.VkImageViewType, module Graphics.Vulkan.Types.Struct.VkComponentMapping, module Graphics.Vulkan.Types.Struct.VkImageSubresourceRange, module Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo, -- ** Shader commands vkCreateShaderModule, vkDestroyShaderModule, module Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo, -- ** Pipeline Cache commands vkCreatePipelineCache, vkDestroyPipelineCache, vkGetPipelineCacheData, vkMergePipelineCaches, module Graphics.Vulkan.Types.Struct.VkPipelineCacheCreateInfo, -- ** Pipeline commands vkCreateGraphicsPipelines, vkCreateComputePipelines, vkDestroyPipeline, module Graphics.Vulkan.Types.Enum.VkBlendFactor, module Graphics.Vulkan.Types.Enum.VkBlendOp, module Graphics.Vulkan.Types.Enum.VkColorComponentFlags, module Graphics.Vulkan.Types.Enum.VkCompareOp, module Graphics.Vulkan.Types.Enum.VkCullModeFlags, module Graphics.Vulkan.Types.Enum.VkDynamicState, module Graphics.Vulkan.Types.Enum.VkFrontFace, module Graphics.Vulkan.Types.Enum.VkLogicOp, module Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags, module Graphics.Vulkan.Types.Enum.VkPolygonMode, module Graphics.Vulkan.Types.Enum.VkPrimitiveTopology, module Graphics.Vulkan.Types.Enum.VkShaderStageFlags, module Graphics.Vulkan.Types.Enum.VkStencilOp, module Graphics.Vulkan.Types.Enum.VkVertexInputRate, module Graphics.Vulkan.Types.Struct.VkComputePipelineCreateInfo, module Graphics.Vulkan.Types.Struct.VkExtent2D, module Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo, module Graphics.Vulkan.Types.Struct.VkOffset2D, module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState, module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo, module Graphics.Vulkan.Types.Struct.VkRect2D, module Graphics.Vulkan.Types.Struct.VkSpecializationInfo, module Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry, module Graphics.Vulkan.Types.Struct.VkStencilOpState, module Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription, module Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription, module Graphics.Vulkan.Types.Struct.VkViewport, -- ** Pipeline layout commands vkCreatePipelineLayout, vkDestroyPipelineLayout, module Graphics.Vulkan.Types.Struct.VkPipelineLayoutCreateInfo, module Graphics.Vulkan.Types.Struct.VkPushConstantRange, -- ** Sampler commands vkCreateSampler, vkDestroySampler, module Graphics.Vulkan.Types.Enum.VkBorderColor, module Graphics.Vulkan.Types.Enum.VkFilter, module Graphics.Vulkan.Types.Enum.VkSamplerAddressMode, module Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode, module Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo, -- ** Descriptor set commands vkCreateDescriptorSetLayout, vkDestroyDescriptorSetLayout, vkCreateDescriptorPool, vkDestroyDescriptorPool, vkResetDescriptorPool, vkAllocateDescriptorSets, vkFreeDescriptorSets, vkUpdateDescriptorSets, module Graphics.Vulkan.Types.Enum.VkDescriptorPoolCreateFlags, module Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags, module Graphics.Vulkan.Types.Enum.VkDescriptorType, module Graphics.Vulkan.Types.Struct.VkCopyDescriptorSet, module Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo, module Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo, module Graphics.Vulkan.Types.Struct.VkDescriptorPoolCreateInfo, module Graphics.Vulkan.Types.Struct.VkDescriptorPoolSize, module Graphics.Vulkan.Types.Struct.VkDescriptorSetAllocateInfo, module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding, module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo, module Graphics.Vulkan.Types.Struct.VkWriteDescriptorSet, -- ** Pass commands vkCreateFramebuffer, vkDestroyFramebuffer, vkCreateRenderPass, vkDestroyRenderPass, vkGetRenderAreaGranularity, module Graphics.Vulkan.Types.Enum.VkAccessFlags, module Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags, module Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp, module Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp, module Graphics.Vulkan.Types.Enum.VkDependencyFlags, module Graphics.Vulkan.Types.Enum.VkPipelineBindPoint, module Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags, module Graphics.Vulkan.Types.Struct.VkAttachmentDescription, module Graphics.Vulkan.Types.Struct.VkAttachmentReference, module Graphics.Vulkan.Types.Struct.VkFramebufferCreateInfo, module Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo, module Graphics.Vulkan.Types.Struct.VkSubpassDependency, module Graphics.Vulkan.Types.Struct.VkSubpassDescription, -- ** Command pool commands vkCreateCommandPool, vkDestroyCommandPool, vkResetCommandPool, module Graphics.Vulkan.Types.Enum.VkCommandPoolCreateFlags, module Graphics.Vulkan.Types.Enum.VkCommandPoolResetFlags, module Graphics.Vulkan.Types.Struct.VkCommandPoolCreateInfo, -- ** Command buffer commands vkAllocateCommandBuffers, vkFreeCommandBuffers, vkBeginCommandBuffer, vkEndCommandBuffer, vkResetCommandBuffer, module Graphics.Vulkan.Types.Enum.VkCommandBufferLevel, module Graphics.Vulkan.Types.Enum.VkCommandBufferResetFlags, module Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags, module Graphics.Vulkan.Types.Enum.VkQueryControlFlags, module Graphics.Vulkan.Types.Struct.VkCommandBufferAllocateInfo, module Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo, module Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo, -- ** Command buffer building commands vkCmdBindPipeline, vkCmdSetViewport, vkCmdSetScissor, vkCmdSetLineWidth, vkCmdSetDepthBias, vkCmdSetBlendConstants, vkCmdSetDepthBounds, vkCmdSetStencilCompareMask, vkCmdSetStencilWriteMask, vkCmdSetStencilReference, vkCmdBindDescriptorSets, vkCmdBindIndexBuffer, vkCmdBindVertexBuffers, vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch, vkCmdDispatchIndirect, vkCmdCopyBuffer, vkCmdCopyImage, vkCmdBlitImage, vkCmdCopyBufferToImage, vkCmdCopyImageToBuffer, vkCmdUpdateBuffer, vkCmdFillBuffer, vkCmdClearColorImage, vkCmdClearDepthStencilImage, vkCmdClearAttachments, vkCmdResolveImage, vkCmdSetEvent, vkCmdResetEvent, vkCmdWaitEvents, vkCmdPipelineBarrier, vkCmdBeginQuery, vkCmdEndQuery, vkCmdResetQueryPool, vkCmdWriteTimestamp, vkCmdCopyQueryPoolResults, vkCmdPushConstants, vkCmdBeginRenderPass, vkCmdNextSubpass, vkCmdEndRenderPass, vkCmdExecuteCommands, module Graphics.Vulkan.Types.Enum.VkIndexType, module Graphics.Vulkan.Types.Enum.VkStencilFaceFlags, module Graphics.Vulkan.Types.Enum.VkSubpassContents, module Graphics.Vulkan.Types.Struct.VkBufferCopy, module Graphics.Vulkan.Types.Struct.VkBufferImageCopy, module Graphics.Vulkan.Types.Struct.VkBufferMemoryBarrier, module Graphics.Vulkan.Types.Struct.VkClearAttachment, module Graphics.Vulkan.Types.Struct.VkClearColorValue, module Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue, module Graphics.Vulkan.Types.Struct.VkClearRect, module Graphics.Vulkan.Types.Struct.VkClearValue, module Graphics.Vulkan.Types.Struct.VkImageBlit, module Graphics.Vulkan.Types.Struct.VkImageCopy, module Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier, module Graphics.Vulkan.Types.Struct.VkImageResolve, module Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers, module Graphics.Vulkan.Types.Struct.VkMemoryBarrier, module Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo, -- ** Types not directly used by the API. Include e.g. structs that are not parameter types of commands, but still defined by the API. module Graphics.Vulkan.Types.Struct.VkDispatchIndirectCommand, module Graphics.Vulkan.Types.Struct.VkDrawIndexedIndirectCommand, module Graphics.Vulkan.Types.Struct.VkDrawIndirectCommand, module Graphics.Vulkan.Types.Enum.VkObjectType) where import Graphics.Vulkan.Constants (VK_ATTACHMENT_UNUSED, pattern VK_ATTACHMENT_UNUSED, VK_FALSE, pattern VK_FALSE, pattern VK_LOD_CLAMP_NONE, VK_QUEUE_FAMILY_IGNORED, pattern VK_QUEUE_FAMILY_IGNORED, VK_REMAINING_ARRAY_LAYERS, pattern VK_REMAINING_ARRAY_LAYERS, VK_REMAINING_MIP_LEVELS, pattern VK_REMAINING_MIP_LEVELS, VK_SUBPASS_EXTERNAL, pattern VK_SUBPASS_EXTERNAL, VK_TRUE, pattern VK_TRUE, VK_WHOLE_SIZE, pattern VK_WHOLE_SIZE) import Graphics.Vulkan.Marshal import Graphics.Vulkan.Types.BaseTypes import Graphics.Vulkan.Types.Bitmasks import Graphics.Vulkan.Types.Enum.VkAccessFlags import Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags import Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp import Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp import Graphics.Vulkan.Types.Enum.VkBlendFactor import Graphics.Vulkan.Types.Enum.VkBlendOp import Graphics.Vulkan.Types.Enum.VkBorderColor import Graphics.Vulkan.Types.Enum.VkBufferCreateFlags import Graphics.Vulkan.Types.Enum.VkBufferUsageFlags import Graphics.Vulkan.Types.Enum.VkColorComponentFlags import Graphics.Vulkan.Types.Enum.VkCommandBufferLevel import Graphics.Vulkan.Types.Enum.VkCommandBufferResetFlags import Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags import Graphics.Vulkan.Types.Enum.VkCommandPoolCreateFlags import Graphics.Vulkan.Types.Enum.VkCommandPoolResetFlags import Graphics.Vulkan.Types.Enum.VkCompareOp import Graphics.Vulkan.Types.Enum.VkComponentSwizzle import Graphics.Vulkan.Types.Enum.VkCullModeFlags import Graphics.Vulkan.Types.Enum.VkDependencyFlags import Graphics.Vulkan.Types.Enum.VkDescriptorPoolCreateFlags import Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags import Graphics.Vulkan.Types.Enum.VkDescriptorType import Graphics.Vulkan.Types.Enum.VkDynamicState import Graphics.Vulkan.Types.Enum.VkFenceCreateFlags import Graphics.Vulkan.Types.Enum.VkFilter import Graphics.Vulkan.Types.Enum.VkFormat import Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags import Graphics.Vulkan.Types.Enum.VkFrontFace import Graphics.Vulkan.Types.Enum.VkImageAspectFlags import Graphics.Vulkan.Types.Enum.VkImageCreateFlags import Graphics.Vulkan.Types.Enum.VkImageLayout import Graphics.Vulkan.Types.Enum.VkImageTiling import Graphics.Vulkan.Types.Enum.VkImageType import Graphics.Vulkan.Types.Enum.VkImageUsageFlags import Graphics.Vulkan.Types.Enum.VkImageViewType import Graphics.Vulkan.Types.Enum.VkIndexType import Graphics.Vulkan.Types.Enum.VkInternalAllocationType import Graphics.Vulkan.Types.Enum.VkLogicOp import Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags import Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags import Graphics.Vulkan.Types.Enum.VkObjectType import Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType import Graphics.Vulkan.Types.Enum.VkPipelineBindPoint import Graphics.Vulkan.Types.Enum.VkPipelineCacheHeaderVersion import Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags import Graphics.Vulkan.Types.Enum.VkPipelineStageFlags import Graphics.Vulkan.Types.Enum.VkPolygonMode import Graphics.Vulkan.Types.Enum.VkPrimitiveTopology import Graphics.Vulkan.Types.Enum.VkQueryControlFlags import Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags import Graphics.Vulkan.Types.Enum.VkQueryResultFlags import Graphics.Vulkan.Types.Enum.VkQueryType import Graphics.Vulkan.Types.Enum.VkQueueFlags import Graphics.Vulkan.Types.Enum.VkResult import Graphics.Vulkan.Types.Enum.VkSampleCountFlags import Graphics.Vulkan.Types.Enum.VkSamplerAddressMode import Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode import Graphics.Vulkan.Types.Enum.VkShaderStageFlags import Graphics.Vulkan.Types.Enum.VkSharingMode import Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags import Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags import Graphics.Vulkan.Types.Enum.VkStencilFaceFlags import Graphics.Vulkan.Types.Enum.VkStencilOp import Graphics.Vulkan.Types.Enum.VkStructureType import Graphics.Vulkan.Types.Enum.VkSubpassContents import Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags import Graphics.Vulkan.Types.Enum.VkSystemAllocationScope import Graphics.Vulkan.Types.Enum.VkVertexInputRate import Graphics.Vulkan.Types.Funcpointers import Graphics.Vulkan.Types.Handles import Graphics.Vulkan.Types.Struct.VkAllocationCallbacks import Graphics.Vulkan.Types.Struct.VkApplicationInfo import Graphics.Vulkan.Types.Struct.VkAttachmentDescription import Graphics.Vulkan.Types.Struct.VkAttachmentReference import Graphics.Vulkan.Types.Struct.VkBindSparseInfo import Graphics.Vulkan.Types.Struct.VkBufferCopy import Graphics.Vulkan.Types.Struct.VkBufferCreateInfo import Graphics.Vulkan.Types.Struct.VkBufferImageCopy import Graphics.Vulkan.Types.Struct.VkBufferMemoryBarrier import Graphics.Vulkan.Types.Struct.VkBufferViewCreateInfo import Graphics.Vulkan.Types.Struct.VkClearAttachment import Graphics.Vulkan.Types.Struct.VkClearColorValue import Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue import Graphics.Vulkan.Types.Struct.VkClearRect import Graphics.Vulkan.Types.Struct.VkClearValue import Graphics.Vulkan.Types.Struct.VkCommandBufferAllocateInfo import Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo import Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo import Graphics.Vulkan.Types.Struct.VkCommandPoolCreateInfo import Graphics.Vulkan.Types.Struct.VkComponentMapping import Graphics.Vulkan.Types.Struct.VkComputePipelineCreateInfo import Graphics.Vulkan.Types.Struct.VkCopyDescriptorSet import Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo import Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo import Graphics.Vulkan.Types.Struct.VkDescriptorPoolCreateInfo import Graphics.Vulkan.Types.Struct.VkDescriptorPoolSize import Graphics.Vulkan.Types.Struct.VkDescriptorSetAllocateInfo import Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding import Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo import Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo import Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo import Graphics.Vulkan.Types.Struct.VkDispatchIndirectCommand import Graphics.Vulkan.Types.Struct.VkDrawIndexedIndirectCommand import Graphics.Vulkan.Types.Struct.VkDrawIndirectCommand import Graphics.Vulkan.Types.Struct.VkEventCreateInfo import Graphics.Vulkan.Types.Struct.VkExtensionProperties import Graphics.Vulkan.Types.Struct.VkExtent2D import Graphics.Vulkan.Types.Struct.VkExtent3D import Graphics.Vulkan.Types.Struct.VkFenceCreateInfo import Graphics.Vulkan.Types.Struct.VkFormatProperties import Graphics.Vulkan.Types.Struct.VkFramebufferCreateInfo import Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo import Graphics.Vulkan.Types.Struct.VkImageBlit import Graphics.Vulkan.Types.Struct.VkImageCopy import Graphics.Vulkan.Types.Struct.VkImageCreateInfo import Graphics.Vulkan.Types.Struct.VkImageFormatProperties import Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier import Graphics.Vulkan.Types.Struct.VkImageResolve import Graphics.Vulkan.Types.Struct.VkImageSubresource import Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers import Graphics.Vulkan.Types.Struct.VkImageSubresourceRange import Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo import Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo import Graphics.Vulkan.Types.Struct.VkLayerProperties import Graphics.Vulkan.Types.Struct.VkMappedMemoryRange import Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo import Graphics.Vulkan.Types.Struct.VkMemoryBarrier import Graphics.Vulkan.Types.Struct.VkMemoryHeap import Graphics.Vulkan.Types.Struct.VkMemoryRequirements import Graphics.Vulkan.Types.Struct.VkMemoryType import Graphics.Vulkan.Types.Struct.VkOffset2D import Graphics.Vulkan.Types.Struct.VkOffset3D import Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures import Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits import Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties import Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties import Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties import Graphics.Vulkan.Types.Struct.VkPipelineCacheCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState import Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineLayoutCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo import Graphics.Vulkan.Types.Struct.VkPushConstantRange import Graphics.Vulkan.Types.Struct.VkQueryPoolCreateInfo import Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties import Graphics.Vulkan.Types.Struct.VkRect2D import Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo import Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo import Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo import Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo import Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo import Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo import Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties import Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind import Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo import Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements import Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo import Graphics.Vulkan.Types.Struct.VkSparseMemoryBind import Graphics.Vulkan.Types.Struct.VkSpecializationInfo import Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry import Graphics.Vulkan.Types.Struct.VkStencilOpState import Graphics.Vulkan.Types.Struct.VkSubmitInfo import Graphics.Vulkan.Types.Struct.VkSubpassDependency import Graphics.Vulkan.Types.Struct.VkSubpassDescription import Graphics.Vulkan.Types.Struct.VkSubresourceLayout import Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription import Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription import Graphics.Vulkan.Types.Struct.VkViewport import Graphics.Vulkan.Types.Struct.VkWriteDescriptorSet -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_LAYER_NOT_PRESENT', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_INCOMPATIBLE_DRIVER'. -- -- > VkResult vkCreateInstance -- > ( const VkInstanceCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkInstance* pInstance -- > ) -- -- foreign import ccall unsafe "vkCreateInstance" vkCreateInstance :: Ptr VkInstanceCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkInstance -- ^ pInstance -> IO VkResult -- | > () vkDestroyInstance -- > ( VkInstance instance -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyInstance" vkDestroyInstance :: VkInstance -- ^ instance -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'. -- -- > VkResult vkEnumeratePhysicalDevices -- > ( VkInstance instance -- > , uint32_t* pPhysicalDeviceCount -- > , VkPhysicalDevice* pPhysicalDevices -- > ) -- -- foreign import ccall unsafe "vkEnumeratePhysicalDevices" vkEnumeratePhysicalDevices :: VkInstance -- ^ instance -> Ptr Word32 -- ^ pPhysicalDeviceCount -> Ptr VkPhysicalDevice -- ^ pPhysicalDevices -> IO VkResult -- | > () vkGetPhysicalDeviceFeatures -- > ( VkPhysicalDevice physicalDevice -- > , VkPhysicalDeviceFeatures* pFeatures -- > ) -- -- foreign import ccall unsafe "vkGetPhysicalDeviceFeatures" vkGetPhysicalDeviceFeatures :: VkPhysicalDevice -- ^ physicalDevice -> Ptr VkPhysicalDeviceFeatures -- ^ pFeatures -> IO () -- | > () vkGetPhysicalDeviceFormatProperties -- > ( VkPhysicalDevice physicalDevice -- > , VkFormat format -- > , VkFormatProperties* pFormatProperties -- > ) -- -- foreign import ccall unsafe "vkGetPhysicalDeviceFormatProperties" vkGetPhysicalDeviceFormatProperties :: VkPhysicalDevice -- ^ physicalDevice -> VkFormat -- ^ format -> Ptr VkFormatProperties -- ^ pFormatProperties -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'. -- -- > VkResult vkGetPhysicalDeviceImageFormatProperties -- > ( VkPhysicalDevice physicalDevice -- > , VkFormat format -- > , VkImageType type -- > , VkImageTiling tiling -- > , VkImageUsageFlags usage -- > , VkImageCreateFlags flags -- > , VkImageFormatProperties* pImageFormatProperties -- > ) -- -- foreign import ccall unsafe "vkGetPhysicalDeviceImageFormatProperties" vkGetPhysicalDeviceImageFormatProperties :: VkPhysicalDevice -- ^ physicalDevice -> VkFormat -- ^ format -> VkImageType -- ^ type -> VkImageTiling -- ^ tiling -> VkImageUsageFlags -- ^ usage -> VkImageCreateFlags -- ^ flags -> Ptr VkImageFormatProperties -- ^ pImageFormatProperties -> IO VkResult -- | > () vkGetPhysicalDeviceProperties -- > ( VkPhysicalDevice physicalDevice -- > , VkPhysicalDeviceProperties* pProperties -- > ) -- -- foreign import ccall unsafe "vkGetPhysicalDeviceProperties" vkGetPhysicalDeviceProperties :: VkPhysicalDevice -- ^ physicalDevice -> Ptr VkPhysicalDeviceProperties -- ^ pProperties -> IO () -- | > () vkGetPhysicalDeviceQueueFamilyProperties -- > ( VkPhysicalDevice physicalDevice -- > , uint32_t* pQueueFamilyPropertyCount -- > , VkQueueFamilyProperties* pQueueFamilyProperties -- > ) -- -- foreign import ccall unsafe "vkGetPhysicalDeviceQueueFamilyProperties" vkGetPhysicalDeviceQueueFamilyProperties :: VkPhysicalDevice -- ^ physicalDevice -> Ptr Word32 -- ^ pQueueFamilyPropertyCount -> Ptr VkQueueFamilyProperties -- ^ pQueueFamilyProperties -> IO () -- | > () vkGetPhysicalDeviceMemoryProperties -- > ( VkPhysicalDevice physicalDevice -- > , VkPhysicalDeviceMemoryProperties* pMemoryProperties -- > ) -- -- foreign import ccall unsafe "vkGetPhysicalDeviceMemoryProperties" vkGetPhysicalDeviceMemoryProperties :: VkPhysicalDevice -- ^ physicalDevice -> Ptr VkPhysicalDeviceMemoryProperties -- ^ pMemoryProperties -> IO () -- | > PFN_vkVoidFunction vkGetInstanceProcAddr -- > ( VkInstance instance -- > , const char* pName -- > ) -- -- foreign import ccall unsafe "vkGetInstanceProcAddr" vkGetInstanceProcAddr :: VkInstance -- ^ instance -> CString -- ^ pName -> IO PFN_vkVoidFunction -- | > PFN_vkVoidFunction vkGetDeviceProcAddr -- > ( VkDevice device -- > , const char* pName -- > ) -- -- foreign import ccall unsafe "vkGetDeviceProcAddr" vkGetDeviceProcAddr :: VkDevice -- ^ device -> CString -- ^ pName -> IO PFN_vkVoidFunction -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_DEVICE_LOST'. -- -- > VkResult vkCreateDevice -- > ( VkPhysicalDevice physicalDevice -- > , const VkDeviceCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkDevice* pDevice -- > ) -- -- foreign import ccall unsafe "vkCreateDevice" vkCreateDevice :: VkPhysicalDevice -- ^ physicalDevice -> Ptr VkDeviceCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkDevice -- ^ pDevice -> IO VkResult -- | > () vkDestroyDevice -- > ( VkDevice device -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyDevice" vkDestroyDevice :: VkDevice -- ^ device -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'. -- -- > VkResult vkEnumerateInstanceExtensionProperties -- > ( const char* pLayerName -- > , uint32_t* pPropertyCount -- > , VkExtensionProperties* pProperties -- > ) -- -- foreign import ccall unsafe "vkEnumerateInstanceExtensionProperties" vkEnumerateInstanceExtensionProperties :: CString -- ^ pLayerName -> Ptr Word32 -- ^ pPropertyCount -> Ptr VkExtensionProperties -- ^ pProperties -> IO VkResult -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'. -- -- > VkResult vkEnumerateDeviceExtensionProperties -- > ( VkPhysicalDevice physicalDevice -- > , const char* pLayerName -- > , uint32_t* pPropertyCount -- > , VkExtensionProperties* pProperties -- > ) -- -- foreign import ccall unsafe "vkEnumerateDeviceExtensionProperties" vkEnumerateDeviceExtensionProperties :: VkPhysicalDevice -- ^ physicalDevice -> CString -- ^ pLayerName -> Ptr Word32 -- ^ pPropertyCount -> Ptr VkExtensionProperties -- ^ pProperties -> IO VkResult -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkEnumerateInstanceLayerProperties -- > ( uint32_t* pPropertyCount -- > , VkLayerProperties* pProperties -- > ) -- -- foreign import ccall unsafe "vkEnumerateInstanceLayerProperties" vkEnumerateInstanceLayerProperties :: Ptr Word32 -- ^ pPropertyCount -> Ptr VkLayerProperties -- ^ pProperties -> IO VkResult -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkEnumerateDeviceLayerProperties -- > ( VkPhysicalDevice physicalDevice -- > , uint32_t* pPropertyCount -- > , VkLayerProperties* pProperties -- > ) -- -- foreign import ccall unsafe "vkEnumerateDeviceLayerProperties" vkEnumerateDeviceLayerProperties :: VkPhysicalDevice -- ^ physicalDevice -> Ptr Word32 -- ^ pPropertyCount -> Ptr VkLayerProperties -- ^ pProperties -> IO VkResult -- | > () vkGetDeviceQueue -- > ( VkDevice device -- > , uint32_t queueFamilyIndex -- > , uint32_t queueIndex -- > , VkQueue* pQueue -- > ) -- -- foreign import ccall unsafe "vkGetDeviceQueue" vkGetDeviceQueue :: VkDevice -- ^ device -> Word32 -- ^ queueFamilyIndex -> Word32 -- ^ queueIndex -> Ptr VkQueue -- ^ pQueue -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'. -- -- > VkResult vkQueueSubmit -- > ( VkQueue queue -- > , uint32_t submitCount -- > , const VkSubmitInfo* pSubmits -- > , VkFence fence -- > ) -- -- foreign import ccall unsafe "vkQueueSubmit" vkQueueSubmit :: VkQueue -- ^ queue -> Word32 -- ^ submitCount -> Ptr VkSubmitInfo -- ^ pSubmits -> VkFence -- ^ fence -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'. -- -- > VkResult vkQueueWaitIdle -- > ( VkQueue queue -- > ) -- -- foreign import ccall unsafe "vkQueueWaitIdle" vkQueueWaitIdle :: VkQueue -- ^ queue -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'. -- -- > VkResult vkDeviceWaitIdle -- > ( VkDevice device -- > ) -- -- foreign import ccall unsafe "vkDeviceWaitIdle" vkDeviceWaitIdle :: VkDevice -- ^ device -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR'. -- -- > VkResult vkAllocateMemory -- > ( VkDevice device -- > , const VkMemoryAllocateInfo* pAllocateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkDeviceMemory* pMemory -- > ) -- -- foreign import ccall unsafe "vkAllocateMemory" vkAllocateMemory :: VkDevice -- ^ device -> Ptr VkMemoryAllocateInfo -- ^ pAllocateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkDeviceMemory -- ^ pMemory -> IO VkResult -- | > () vkFreeMemory -- > ( VkDevice device -- > , VkDeviceMemory memory -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkFreeMemory" vkFreeMemory :: VkDevice -- ^ device -> VkDeviceMemory -- ^ memory -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_MEMORY_MAP_FAILED'. -- -- > VkResult vkMapMemory -- > ( VkDevice device -- > , VkDeviceMemory memory -- > , VkDeviceSize offset -- > , VkDeviceSize size -- > , VkMemoryMapFlags flags -- > , void** ppData -- > ) -- -- foreign import ccall unsafe "vkMapMemory" vkMapMemory :: VkDevice -- ^ device -> VkDeviceMemory -- ^ memory -> VkDeviceSize -- ^ offset -> VkDeviceSize -- ^ size -> VkMemoryMapFlags -- ^ flags -> Ptr (Ptr Void) -- ^ ppData -> IO VkResult -- | > () vkUnmapMemory -- > ( VkDevice device -- > , VkDeviceMemory memory -- > ) -- -- foreign import ccall unsafe "vkUnmapMemory" vkUnmapMemory :: VkDevice -- ^ device -> VkDeviceMemory -- ^ memory -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkFlushMappedMemoryRanges -- > ( VkDevice device -- > , uint32_t memoryRangeCount -- > , const VkMappedMemoryRange* pMemoryRanges -- > ) -- -- foreign import ccall unsafe "vkFlushMappedMemoryRanges" vkFlushMappedMemoryRanges :: VkDevice -- ^ device -> Word32 -- ^ memoryRangeCount -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkInvalidateMappedMemoryRanges -- > ( VkDevice device -- > , uint32_t memoryRangeCount -- > , const VkMappedMemoryRange* pMemoryRanges -- > ) -- -- foreign import ccall unsafe "vkInvalidateMappedMemoryRanges" vkInvalidateMappedMemoryRanges :: VkDevice -- ^ device -> Word32 -- ^ memoryRangeCount -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges -> IO VkResult -- | > () vkGetDeviceMemoryCommitment -- > ( VkDevice device -- > , VkDeviceMemory memory -- > , VkDeviceSize* pCommittedMemoryInBytes -- > ) -- -- foreign import ccall unsafe "vkGetDeviceMemoryCommitment" vkGetDeviceMemoryCommitment :: VkDevice -- ^ device -> VkDeviceMemory -- ^ memory -> Ptr VkDeviceSize -- ^ pCommittedMemoryInBytes -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkBindBufferMemory -- > ( VkDevice device -- > , VkBuffer buffer -- > , VkDeviceMemory memory -- > , VkDeviceSize memoryOffset -- > ) -- -- foreign import ccall unsafe "vkBindBufferMemory" vkBindBufferMemory :: VkDevice -- ^ device -> VkBuffer -- ^ buffer -> VkDeviceMemory -- ^ memory -> VkDeviceSize -- ^ memoryOffset -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkBindImageMemory -- > ( VkDevice device -- > , VkImage image -- > , VkDeviceMemory memory -- > , VkDeviceSize memoryOffset -- > ) -- -- foreign import ccall unsafe "vkBindImageMemory" vkBindImageMemory :: VkDevice -- ^ device -> VkImage -- ^ image -> VkDeviceMemory -- ^ memory -> VkDeviceSize -- ^ memoryOffset -> IO VkResult -- | > () vkGetBufferMemoryRequirements -- > ( VkDevice device -- > , VkBuffer buffer -- > , VkMemoryRequirements* pMemoryRequirements -- > ) -- -- foreign import ccall unsafe "vkGetBufferMemoryRequirements" vkGetBufferMemoryRequirements :: VkDevice -- ^ device -> VkBuffer -- ^ buffer -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements -> IO () -- | > () vkGetImageMemoryRequirements -- > ( VkDevice device -- > , VkImage image -- > , VkMemoryRequirements* pMemoryRequirements -- > ) -- -- foreign import ccall unsafe "vkGetImageMemoryRequirements" vkGetImageMemoryRequirements :: VkDevice -- ^ device -> VkImage -- ^ image -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements -> IO () -- | > () vkGetImageSparseMemoryRequirements -- > ( VkDevice device -- > , VkImage image -- > , uint32_t* pSparseMemoryRequirementCount -- > , VkSparseImageMemoryRequirements* pSparseMemoryRequirements -- > ) -- -- foreign import ccall unsafe "vkGetImageSparseMemoryRequirements" vkGetImageSparseMemoryRequirements :: VkDevice -- ^ device -> VkImage -- ^ image -> Ptr Word32 -- ^ pSparseMemoryRequirementCount -> Ptr VkSparseImageMemoryRequirements -- ^ pSparseMemoryRequirements -> IO () -- | > () vkGetPhysicalDeviceSparseImageFormatProperties -- > ( VkPhysicalDevice physicalDevice -- > , VkFormat format -- > , VkImageType type -- > , VkSampleCountFlagBits samples -- > , VkImageUsageFlags usage -- > , VkImageTiling tiling -- > , uint32_t* pPropertyCount -- > , VkSparseImageFormatProperties* pProperties -- > ) -- -- foreign import ccall unsafe "vkGetPhysicalDeviceSparseImageFormatProperties" vkGetPhysicalDeviceSparseImageFormatProperties :: VkPhysicalDevice -- ^ physicalDevice -> VkFormat -- ^ format -> VkImageType -- ^ type -> VkSampleCountFlagBits -- ^ samples -> VkImageUsageFlags -- ^ usage -> VkImageTiling -- ^ tiling -> Ptr Word32 -- ^ pPropertyCount -> Ptr VkSparseImageFormatProperties -- ^ pProperties -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'. -- -- queues: 'sparse_binding'. -- -- > VkResult vkQueueBindSparse -- > ( VkQueue queue -- > , uint32_t bindInfoCount -- > , const VkBindSparseInfo* pBindInfo -- > , VkFence fence -- > ) -- -- foreign import ccall unsafe "vkQueueBindSparse" vkQueueBindSparse :: VkQueue -- ^ queue -> Word32 -- ^ bindInfoCount -> Ptr VkBindSparseInfo -- ^ pBindInfo -> VkFence -- ^ fence -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateFence -- > ( VkDevice device -- > , const VkFenceCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkFence* pFence -- > ) -- -- foreign import ccall unsafe "vkCreateFence" vkCreateFence :: VkDevice -- ^ device -> Ptr VkFenceCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkFence -- ^ pFence -> IO VkResult -- | > () vkDestroyFence -- > ( VkDevice device -- > , VkFence fence -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyFence" vkDestroyFence :: VkDevice -- ^ device -> VkFence -- ^ fence -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkResetFences -- > ( VkDevice device -- > , uint32_t fenceCount -- > , const VkFence* pFences -- > ) -- -- foreign import ccall unsafe "vkResetFences" vkResetFences :: VkDevice -- ^ device -> Word32 -- ^ fenceCount -> Ptr VkFence -- ^ pFences -> IO VkResult -- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'. -- -- > VkResult vkGetFenceStatus -- > ( VkDevice device -- > , VkFence fence -- > ) -- -- foreign import ccall unsafe "vkGetFenceStatus" vkGetFenceStatus :: VkDevice -- ^ device -> VkFence -- ^ fence -> IO VkResult -- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'. -- -- > VkResult vkWaitForFences -- > ( VkDevice device -- > , uint32_t fenceCount -- > , const VkFence* pFences -- > , VkBool32 waitAll -- > , uint64_t timeout -- > ) -- -- foreign import ccall unsafe "vkWaitForFences" vkWaitForFences :: VkDevice -- ^ device -> Word32 -- ^ fenceCount -> Ptr VkFence -- ^ pFences -> VkBool32 -- ^ waitAll -> Word64 -- ^ timeout -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateSemaphore -- > ( VkDevice device -- > , const VkSemaphoreCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkSemaphore* pSemaphore -- > ) -- -- foreign import ccall unsafe "vkCreateSemaphore" vkCreateSemaphore :: VkDevice -- ^ device -> Ptr VkSemaphoreCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkSemaphore -- ^ pSemaphore -> IO VkResult -- | > () vkDestroySemaphore -- > ( VkDevice device -- > , VkSemaphore semaphore -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroySemaphore" vkDestroySemaphore :: VkDevice -- ^ device -> VkSemaphore -- ^ semaphore -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateEvent -- > ( VkDevice device -- > , const VkEventCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkEvent* pEvent -- > ) -- -- foreign import ccall unsafe "vkCreateEvent" vkCreateEvent :: VkDevice -- ^ device -> Ptr VkEventCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkEvent -- ^ pEvent -> IO VkResult -- | > () vkDestroyEvent -- > ( VkDevice device -- > , VkEvent event -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyEvent" vkDestroyEvent :: VkDevice -- ^ device -> VkEvent -- ^ event -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_EVENT_SET', 'VK_EVENT_RESET'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'. -- -- > VkResult vkGetEventStatus -- > ( VkDevice device -- > , VkEvent event -- > ) -- -- foreign import ccall unsafe "vkGetEventStatus" vkGetEventStatus :: VkDevice -- ^ device -> VkEvent -- ^ event -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkSetEvent -- > ( VkDevice device -- > , VkEvent event -- > ) -- -- foreign import ccall unsafe "vkSetEvent" vkSetEvent :: VkDevice -- ^ device -> VkEvent -- ^ event -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkResetEvent -- > ( VkDevice device -- > , VkEvent event -- > ) -- -- foreign import ccall unsafe "vkResetEvent" vkResetEvent :: VkDevice -- ^ device -> VkEvent -- ^ event -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateQueryPool -- > ( VkDevice device -- > , const VkQueryPoolCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkQueryPool* pQueryPool -- > ) -- -- foreign import ccall unsafe "vkCreateQueryPool" vkCreateQueryPool :: VkDevice -- ^ device -> Ptr VkQueryPoolCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkQueryPool -- ^ pQueryPool -> IO VkResult -- | > () vkDestroyQueryPool -- > ( VkDevice device -- > , VkQueryPool queryPool -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyQueryPool" vkDestroyQueryPool :: VkDevice -- ^ device -> VkQueryPool -- ^ queryPool -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'. -- -- > VkResult vkGetQueryPoolResults -- > ( VkDevice device -- > , VkQueryPool queryPool -- > , uint32_t firstQuery -- > , uint32_t queryCount -- > , size_t dataSize -- > , void* pData -- > , VkDeviceSize stride -- > , VkQueryResultFlags flags -- > ) -- -- foreign import ccall unsafe "vkGetQueryPoolResults" vkGetQueryPoolResults :: VkDevice -- ^ device -> VkQueryPool -- ^ queryPool -> Word32 -- ^ firstQuery -> Word32 -- ^ queryCount -> CSize -- ^ dataSize -> Ptr Void -- ^ pData -> VkDeviceSize -- ^ stride -> VkQueryResultFlags -- ^ flags -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateBuffer -- > ( VkDevice device -- > , const VkBufferCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkBuffer* pBuffer -- > ) -- -- foreign import ccall unsafe "vkCreateBuffer" vkCreateBuffer :: VkDevice -- ^ device -> Ptr VkBufferCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkBuffer -- ^ pBuffer -> IO VkResult -- | > () vkDestroyBuffer -- > ( VkDevice device -- > , VkBuffer buffer -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyBuffer" vkDestroyBuffer :: VkDevice -- ^ device -> VkBuffer -- ^ buffer -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateBufferView -- > ( VkDevice device -- > , const VkBufferViewCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkBufferView* pView -- > ) -- -- foreign import ccall unsafe "vkCreateBufferView" vkCreateBufferView :: VkDevice -- ^ device -> Ptr VkBufferViewCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkBufferView -- ^ pView -> IO VkResult -- | > () vkDestroyBufferView -- > ( VkDevice device -- > , VkBufferView bufferView -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyBufferView" vkDestroyBufferView :: VkDevice -- ^ device -> VkBufferView -- ^ bufferView -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateImage -- > ( VkDevice device -- > , const VkImageCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkImage* pImage -- > ) -- -- foreign import ccall unsafe "vkCreateImage" vkCreateImage :: VkDevice -- ^ device -> Ptr VkImageCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkImage -- ^ pImage -> IO VkResult -- | > () vkDestroyImage -- > ( VkDevice device -- > , VkImage image -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyImage" vkDestroyImage :: VkDevice -- ^ device -> VkImage -- ^ image -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | > () vkGetImageSubresourceLayout -- > ( VkDevice device -- > , VkImage image -- > , const VkImageSubresource* pSubresource -- > , VkSubresourceLayout* pLayout -- > ) -- -- foreign import ccall unsafe "vkGetImageSubresourceLayout" vkGetImageSubresourceLayout :: VkDevice -- ^ device -> VkImage -- ^ image -> Ptr VkImageSubresource -- ^ pSubresource -> Ptr VkSubresourceLayout -- ^ pLayout -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateImageView -- > ( VkDevice device -- > , const VkImageViewCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkImageView* pView -- > ) -- -- foreign import ccall unsafe "vkCreateImageView" vkCreateImageView :: VkDevice -- ^ device -> Ptr VkImageViewCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkImageView -- ^ pView -> IO VkResult -- | > () vkDestroyImageView -- > ( VkDevice device -- > , VkImageView imageView -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyImageView" vkDestroyImageView :: VkDevice -- ^ device -> VkImageView -- ^ imageView -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'. -- -- > VkResult vkCreateShaderModule -- > ( VkDevice device -- > , const VkShaderModuleCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkShaderModule* pShaderModule -- > ) -- -- foreign import ccall unsafe "vkCreateShaderModule" vkCreateShaderModule :: VkDevice -- ^ device -> Ptr VkShaderModuleCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkShaderModule -- ^ pShaderModule -> IO VkResult -- | > () vkDestroyShaderModule -- > ( VkDevice device -- > , VkShaderModule shaderModule -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyShaderModule" vkDestroyShaderModule :: VkDevice -- ^ device -> VkShaderModule -- ^ shaderModule -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreatePipelineCache -- > ( VkDevice device -- > , const VkPipelineCacheCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkPipelineCache* pPipelineCache -- > ) -- -- foreign import ccall unsafe "vkCreatePipelineCache" vkCreatePipelineCache :: VkDevice -- ^ device -> Ptr VkPipelineCacheCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkPipelineCache -- ^ pPipelineCache -> IO VkResult -- | > () vkDestroyPipelineCache -- > ( VkDevice device -- > , VkPipelineCache pipelineCache -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyPipelineCache" vkDestroyPipelineCache :: VkDevice -- ^ device -> VkPipelineCache -- ^ pipelineCache -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkGetPipelineCacheData -- > ( VkDevice device -- > , VkPipelineCache pipelineCache -- > , size_t* pDataSize -- > , void* pData -- > ) -- -- foreign import ccall unsafe "vkGetPipelineCacheData" vkGetPipelineCacheData :: VkDevice -- ^ device -> VkPipelineCache -- ^ pipelineCache -> Ptr CSize -- ^ pDataSize -> Ptr Void -- ^ pData -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkMergePipelineCaches -- > ( VkDevice device -- > , VkPipelineCache dstCache -- > , uint32_t srcCacheCount -- > , const VkPipelineCache* pSrcCaches -- > ) -- -- foreign import ccall unsafe "vkMergePipelineCaches" vkMergePipelineCaches :: VkDevice -- ^ device -> VkPipelineCache -- ^ dstCache -> Word32 -- ^ srcCacheCount -> Ptr VkPipelineCache -- ^ pSrcCaches -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'. -- -- > VkResult vkCreateGraphicsPipelines -- > ( VkDevice device -- > , VkPipelineCache pipelineCache -- > , uint32_t createInfoCount -- > , const VkGraphicsPipelineCreateInfo* pCreateInfos -- > , const VkAllocationCallbacks* pAllocator -- > , VkPipeline* pPipelines -- > ) -- -- foreign import ccall unsafe "vkCreateGraphicsPipelines" vkCreateGraphicsPipelines :: VkDevice -- ^ device -> VkPipelineCache -- ^ pipelineCache -> Word32 -- ^ createInfoCount -> Ptr VkGraphicsPipelineCreateInfo -- ^ pCreateInfos -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkPipeline -- ^ pPipelines -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'. -- -- > VkResult vkCreateComputePipelines -- > ( VkDevice device -- > , VkPipelineCache pipelineCache -- > , uint32_t createInfoCount -- > , const VkComputePipelineCreateInfo* pCreateInfos -- > , const VkAllocationCallbacks* pAllocator -- > , VkPipeline* pPipelines -- > ) -- -- foreign import ccall unsafe "vkCreateComputePipelines" vkCreateComputePipelines :: VkDevice -- ^ device -> VkPipelineCache -- ^ pipelineCache -> Word32 -- ^ createInfoCount -> Ptr VkComputePipelineCreateInfo -- ^ pCreateInfos -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkPipeline -- ^ pPipelines -> IO VkResult -- | > () vkDestroyPipeline -- > ( VkDevice device -- > , VkPipeline pipeline -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyPipeline" vkDestroyPipeline :: VkDevice -- ^ device -> VkPipeline -- ^ pipeline -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreatePipelineLayout -- > ( VkDevice device -- > , const VkPipelineLayoutCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkPipelineLayout* pPipelineLayout -- > ) -- -- foreign import ccall unsafe "vkCreatePipelineLayout" vkCreatePipelineLayout :: VkDevice -- ^ device -> Ptr VkPipelineLayoutCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkPipelineLayout -- ^ pPipelineLayout -> IO VkResult -- | > () vkDestroyPipelineLayout -- > ( VkDevice device -- > , VkPipelineLayout pipelineLayout -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyPipelineLayout" vkDestroyPipelineLayout :: VkDevice -- ^ device -> VkPipelineLayout -- ^ pipelineLayout -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS'. -- -- > VkResult vkCreateSampler -- > ( VkDevice device -- > , const VkSamplerCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkSampler* pSampler -- > ) -- -- foreign import ccall unsafe "vkCreateSampler" vkCreateSampler :: VkDevice -- ^ device -> Ptr VkSamplerCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkSampler -- ^ pSampler -> IO VkResult -- | > () vkDestroySampler -- > ( VkDevice device -- > , VkSampler sampler -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroySampler" vkDestroySampler :: VkDevice -- ^ device -> VkSampler -- ^ sampler -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateDescriptorSetLayout -- > ( VkDevice device -- > , const VkDescriptorSetLayoutCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkDescriptorSetLayout* pSetLayout -- > ) -- -- foreign import ccall unsafe "vkCreateDescriptorSetLayout" vkCreateDescriptorSetLayout :: VkDevice -- ^ device -> Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkDescriptorSetLayout -- ^ pSetLayout -> IO VkResult -- | > () vkDestroyDescriptorSetLayout -- > ( VkDevice device -- > , VkDescriptorSetLayout descriptorSetLayout -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyDescriptorSetLayout" vkDestroyDescriptorSetLayout :: VkDevice -- ^ device -> VkDescriptorSetLayout -- ^ descriptorSetLayout -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateDescriptorPool -- > ( VkDevice device -- > , const VkDescriptorPoolCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkDescriptorPool* pDescriptorPool -- > ) -- -- foreign import ccall unsafe "vkCreateDescriptorPool" vkCreateDescriptorPool :: VkDevice -- ^ device -> Ptr VkDescriptorPoolCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkDescriptorPool -- ^ pDescriptorPool -> IO VkResult -- | > () vkDestroyDescriptorPool -- > ( VkDevice device -- > , VkDescriptorPool descriptorPool -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyDescriptorPool" vkDestroyDescriptorPool :: VkDevice -- ^ device -> VkDescriptorPool -- ^ descriptorPool -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkResetDescriptorPool -- > ( VkDevice device -- > , VkDescriptorPool descriptorPool -- > , VkDescriptorPoolResetFlags flags -- > ) -- -- foreign import ccall unsafe "vkResetDescriptorPool" vkResetDescriptorPool :: VkDevice -- ^ device -> VkDescriptorPool -- ^ descriptorPool -> VkDescriptorPoolResetFlags -- ^ flags -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTED_POOL', 'VK_ERROR_OUT_OF_POOL_MEMORY_KHR'. -- -- > VkResult vkAllocateDescriptorSets -- > ( VkDevice device -- > , const VkDescriptorSetAllocateInfo* pAllocateInfo -- > , VkDescriptorSet* pDescriptorSets -- > ) -- -- foreign import ccall unsafe "vkAllocateDescriptorSets" vkAllocateDescriptorSets :: VkDevice -- ^ device -> Ptr VkDescriptorSetAllocateInfo -- ^ pAllocateInfo -> Ptr VkDescriptorSet -- ^ pDescriptorSets -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkFreeDescriptorSets -- > ( VkDevice device -- > , VkDescriptorPool descriptorPool -- > , uint32_t descriptorSetCount -- > , const VkDescriptorSet* pDescriptorSets -- > ) -- -- foreign import ccall unsafe "vkFreeDescriptorSets" vkFreeDescriptorSets :: VkDevice -- ^ device -> VkDescriptorPool -- ^ descriptorPool -> Word32 -- ^ descriptorSetCount -> Ptr VkDescriptorSet -- ^ pDescriptorSets -> IO VkResult -- | > () vkUpdateDescriptorSets -- > ( VkDevice device -- > , uint32_t descriptorWriteCount -- > , const VkWriteDescriptorSet* pDescriptorWrites -- > , uint32_t descriptorCopyCount -- > , const VkCopyDescriptorSet* pDescriptorCopies -- > ) -- -- foreign import ccall unsafe "vkUpdateDescriptorSets" vkUpdateDescriptorSets :: VkDevice -- ^ device -> Word32 -- ^ descriptorWriteCount -> Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites -> Word32 -- ^ descriptorCopyCount -> Ptr VkCopyDescriptorSet -- ^ pDescriptorCopies -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateFramebuffer -- > ( VkDevice device -- > , const VkFramebufferCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkFramebuffer* pFramebuffer -- > ) -- -- foreign import ccall unsafe "vkCreateFramebuffer" vkCreateFramebuffer :: VkDevice -- ^ device -> Ptr VkFramebufferCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkFramebuffer -- ^ pFramebuffer -> IO VkResult -- | > () vkDestroyFramebuffer -- > ( VkDevice device -- > , VkFramebuffer framebuffer -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyFramebuffer" vkDestroyFramebuffer :: VkDevice -- ^ device -> VkFramebuffer -- ^ framebuffer -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateRenderPass -- > ( VkDevice device -- > , const VkRenderPassCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkRenderPass* pRenderPass -- > ) -- -- foreign import ccall unsafe "vkCreateRenderPass" vkCreateRenderPass :: VkDevice -- ^ device -> Ptr VkRenderPassCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkRenderPass -- ^ pRenderPass -> IO VkResult -- | > () vkDestroyRenderPass -- > ( VkDevice device -- > , VkRenderPass renderPass -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyRenderPass" vkDestroyRenderPass :: VkDevice -- ^ device -> VkRenderPass -- ^ renderPass -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | > () vkGetRenderAreaGranularity -- > ( VkDevice device -- > , VkRenderPass renderPass -- > , VkExtent2D* pGranularity -- > ) -- -- foreign import ccall unsafe "vkGetRenderAreaGranularity" vkGetRenderAreaGranularity :: VkDevice -- ^ device -> VkRenderPass -- ^ renderPass -> Ptr VkExtent2D -- ^ pGranularity -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkCreateCommandPool -- > ( VkDevice device -- > , const VkCommandPoolCreateInfo* pCreateInfo -- > , const VkAllocationCallbacks* pAllocator -- > , VkCommandPool* pCommandPool -- > ) -- -- foreign import ccall unsafe "vkCreateCommandPool" vkCreateCommandPool :: VkDevice -- ^ device -> Ptr VkCommandPoolCreateInfo -- ^ pCreateInfo -> Ptr VkAllocationCallbacks -- ^ pAllocator -> Ptr VkCommandPool -- ^ pCommandPool -> IO VkResult -- | > () vkDestroyCommandPool -- > ( VkDevice device -- > , VkCommandPool commandPool -- > , const VkAllocationCallbacks* pAllocator -- > ) -- -- foreign import ccall unsafe "vkDestroyCommandPool" vkDestroyCommandPool :: VkDevice -- ^ device -> VkCommandPool -- ^ commandPool -> Ptr VkAllocationCallbacks -- ^ pAllocator -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkResetCommandPool -- > ( VkDevice device -- > , VkCommandPool commandPool -- > , VkCommandPoolResetFlags flags -- > ) -- -- foreign import ccall unsafe "vkResetCommandPool" vkResetCommandPool :: VkDevice -- ^ device -> VkCommandPool -- ^ commandPool -> VkCommandPoolResetFlags -- ^ flags -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkAllocateCommandBuffers -- > ( VkDevice device -- > , const VkCommandBufferAllocateInfo* pAllocateInfo -- > , VkCommandBuffer* pCommandBuffers -- > ) -- -- foreign import ccall unsafe "vkAllocateCommandBuffers" vkAllocateCommandBuffers :: VkDevice -- ^ device -> Ptr VkCommandBufferAllocateInfo -- ^ pAllocateInfo -> Ptr VkCommandBuffer -- ^ pCommandBuffers -> IO VkResult -- | > () vkFreeCommandBuffers -- > ( VkDevice device -- > , VkCommandPool commandPool -- > , uint32_t commandBufferCount -- > , const VkCommandBuffer* pCommandBuffers -- > ) -- -- foreign import ccall unsafe "vkFreeCommandBuffers" vkFreeCommandBuffers :: VkDevice -- ^ device -> VkCommandPool -- ^ commandPool -> Word32 -- ^ commandBufferCount -> Ptr VkCommandBuffer -- ^ pCommandBuffers -> IO () -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkBeginCommandBuffer -- > ( VkCommandBuffer commandBuffer -- > , const VkCommandBufferBeginInfo* pBeginInfo -- > ) -- -- foreign import ccall unsafe "vkBeginCommandBuffer" vkBeginCommandBuffer :: VkCommandBuffer -- ^ commandBuffer -> Ptr VkCommandBufferBeginInfo -- ^ pBeginInfo -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkEndCommandBuffer -- > ( VkCommandBuffer commandBuffer -- > ) -- -- foreign import ccall unsafe "vkEndCommandBuffer" vkEndCommandBuffer :: VkCommandBuffer -- ^ commandBuffer -> IO VkResult -- | Success codes: 'VK_SUCCESS'. -- -- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'. -- -- > VkResult vkResetCommandBuffer -- > ( VkCommandBuffer commandBuffer -- > , VkCommandBufferResetFlags flags -- > ) -- -- foreign import ccall unsafe "vkResetCommandBuffer" vkResetCommandBuffer :: VkCommandBuffer -- ^ commandBuffer -> VkCommandBufferResetFlags -- ^ flags -> IO VkResult -- | queues: 'graphics', 'compute'. -- -- renderpass: @both@ -- -- > () vkCmdBindPipeline -- > ( VkCommandBuffer commandBuffer -- > , VkPipelineBindPoint pipelineBindPoint -- > , VkPipeline pipeline -- > ) -- -- foreign import ccall unsafe "vkCmdBindPipeline" vkCmdBindPipeline :: VkCommandBuffer -- ^ commandBuffer -> VkPipelineBindPoint -- ^ pipelineBindPoint -> VkPipeline -- ^ pipeline -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetViewport -- > ( VkCommandBuffer commandBuffer -- > , uint32_t firstViewport -- > , uint32_t viewportCount -- > , const VkViewport* pViewports -- > ) -- -- foreign import ccall unsafe "vkCmdSetViewport" vkCmdSetViewport :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ firstViewport -> Word32 -- ^ viewportCount -> Ptr VkViewport -- ^ pViewports -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetScissor -- > ( VkCommandBuffer commandBuffer -- > , uint32_t firstScissor -- > , uint32_t scissorCount -- > , const VkRect2D* pScissors -- > ) -- -- foreign import ccall unsafe "vkCmdSetScissor" vkCmdSetScissor :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ firstScissor -> Word32 -- ^ scissorCount -> Ptr VkRect2D -- ^ pScissors -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetLineWidth -- > ( VkCommandBuffer commandBuffer -- > , float lineWidth -- > ) -- -- foreign import ccall unsafe "vkCmdSetLineWidth" vkCmdSetLineWidth :: VkCommandBuffer -- ^ commandBuffer -> #{type float} -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetDepthBias -- > ( VkCommandBuffer commandBuffer -- > , float depthBiasConstantFactor -- > , float depthBiasClamp -- > , float depthBiasSlopeFactor -- > ) -- -- foreign import ccall unsafe "vkCmdSetDepthBias" vkCmdSetDepthBias :: VkCommandBuffer -- ^ commandBuffer -> #{type float} -> #{type float} -> #{type float} -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetBlendConstants -- > ( VkCommandBuffer commandBuffer -- > , const float blendConstants[4] -- > ) -- -- foreign import ccall unsafe "vkCmdSetBlendConstants" vkCmdSetBlendConstants :: VkCommandBuffer -- ^ commandBuffer -> Ptr #{type float} -- ^ blendConstants -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetDepthBounds -- > ( VkCommandBuffer commandBuffer -- > , float minDepthBounds -- > , float maxDepthBounds -- > ) -- -- foreign import ccall unsafe "vkCmdSetDepthBounds" vkCmdSetDepthBounds :: VkCommandBuffer -- ^ commandBuffer -> #{type float} -> #{type float} -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetStencilCompareMask -- > ( VkCommandBuffer commandBuffer -- > , VkStencilFaceFlags faceMask -- > , uint32_t compareMask -- > ) -- -- foreign import ccall unsafe "vkCmdSetStencilCompareMask" vkCmdSetStencilCompareMask :: VkCommandBuffer -- ^ commandBuffer -> VkStencilFaceFlags -- ^ faceMask -> Word32 -- ^ compareMask -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetStencilWriteMask -- > ( VkCommandBuffer commandBuffer -- > , VkStencilFaceFlags faceMask -- > , uint32_t writeMask -- > ) -- -- foreign import ccall unsafe "vkCmdSetStencilWriteMask" vkCmdSetStencilWriteMask :: VkCommandBuffer -- ^ commandBuffer -> VkStencilFaceFlags -- ^ faceMask -> Word32 -- ^ writeMask -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdSetStencilReference -- > ( VkCommandBuffer commandBuffer -- > , VkStencilFaceFlags faceMask -- > , uint32_t reference -- > ) -- -- foreign import ccall unsafe "vkCmdSetStencilReference" vkCmdSetStencilReference :: VkCommandBuffer -- ^ commandBuffer -> VkStencilFaceFlags -- ^ faceMask -> Word32 -- ^ reference -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @both@ -- -- > () vkCmdBindDescriptorSets -- > ( VkCommandBuffer commandBuffer -- > , VkPipelineBindPoint pipelineBindPoint -- > , VkPipelineLayout layout -- > , uint32_t firstSet -- > , uint32_t descriptorSetCount -- > , const VkDescriptorSet* pDescriptorSets -- > , uint32_t dynamicOffsetCount -- > , const uint32_t* pDynamicOffsets -- > ) -- -- foreign import ccall unsafe "vkCmdBindDescriptorSets" vkCmdBindDescriptorSets :: VkCommandBuffer -- ^ commandBuffer -> VkPipelineBindPoint -- ^ pipelineBindPoint -> VkPipelineLayout -- ^ layout -> Word32 -- ^ firstSet -> Word32 -- ^ descriptorSetCount -> Ptr VkDescriptorSet -- ^ pDescriptorSets -> Word32 -- ^ dynamicOffsetCount -> Ptr Word32 -- ^ pDynamicOffsets -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdBindIndexBuffer -- > ( VkCommandBuffer commandBuffer -- > , VkBuffer buffer -- > , VkDeviceSize offset -- > , VkIndexType indexType -- > ) -- -- foreign import ccall unsafe "vkCmdBindIndexBuffer" vkCmdBindIndexBuffer :: VkCommandBuffer -- ^ commandBuffer -> VkBuffer -- ^ buffer -> VkDeviceSize -- ^ offset -> VkIndexType -- ^ indexType -> IO () -- | queues: 'graphics'. -- -- renderpass: @both@ -- -- > () vkCmdBindVertexBuffers -- > ( VkCommandBuffer commandBuffer -- > , uint32_t firstBinding -- > , uint32_t bindingCount -- > , const VkBuffer* pBuffers -- > , const VkDeviceSize* pOffsets -- > ) -- -- foreign import ccall unsafe "vkCmdBindVertexBuffers" vkCmdBindVertexBuffers :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ firstBinding -> Word32 -- ^ bindingCount -> Ptr VkBuffer -- ^ pBuffers -> Ptr VkDeviceSize -- ^ pOffsets -> IO () -- | queues: 'graphics'. -- -- renderpass: @inside@ -- -- pipeline: @graphics@ -- -- > () vkCmdDraw -- > ( VkCommandBuffer commandBuffer -- > , uint32_t vertexCount -- > , uint32_t instanceCount -- > , uint32_t firstVertex -- > , uint32_t firstInstance -- > ) -- -- foreign import ccall unsafe "vkCmdDraw" vkCmdDraw :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ vertexCount -> Word32 -- ^ instanceCount -> Word32 -- ^ firstVertex -> Word32 -- ^ firstInstance -> IO () -- | queues: 'graphics'. -- -- renderpass: @inside@ -- -- pipeline: @graphics@ -- -- > () vkCmdDrawIndexed -- > ( VkCommandBuffer commandBuffer -- > , uint32_t indexCount -- > , uint32_t instanceCount -- > , uint32_t firstIndex -- > , int32_t vertexOffset -- > , uint32_t firstInstance -- > ) -- -- foreign import ccall unsafe "vkCmdDrawIndexed" vkCmdDrawIndexed :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ indexCount -> Word32 -- ^ instanceCount -> Word32 -- ^ firstIndex -> Int32 -- ^ vertexOffset -> Word32 -- ^ firstInstance -> IO () -- | queues: 'graphics'. -- -- renderpass: @inside@ -- -- pipeline: @graphics@ -- -- > () vkCmdDrawIndirect -- > ( VkCommandBuffer commandBuffer -- > , VkBuffer buffer -- > , VkDeviceSize offset -- > , uint32_t drawCount -- > , uint32_t stride -- > ) -- -- foreign import ccall unsafe "vkCmdDrawIndirect" vkCmdDrawIndirect :: VkCommandBuffer -- ^ commandBuffer -> VkBuffer -- ^ buffer -> VkDeviceSize -- ^ offset -> Word32 -- ^ drawCount -> Word32 -- ^ stride -> IO () -- | queues: 'graphics'. -- -- renderpass: @inside@ -- -- pipeline: @graphics@ -- -- > () vkCmdDrawIndexedIndirect -- > ( VkCommandBuffer commandBuffer -- > , VkBuffer buffer -- > , VkDeviceSize offset -- > , uint32_t drawCount -- > , uint32_t stride -- > ) -- -- foreign import ccall unsafe "vkCmdDrawIndexedIndirect" vkCmdDrawIndexedIndirect :: VkCommandBuffer -- ^ commandBuffer -> VkBuffer -- ^ buffer -> VkDeviceSize -- ^ offset -> Word32 -- ^ drawCount -> Word32 -- ^ stride -> IO () -- | queues: 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @compute@ -- -- > () vkCmdDispatch -- > ( VkCommandBuffer commandBuffer -- > , uint32_t groupCountX -- > , uint32_t groupCountY -- > , uint32_t groupCountZ -- > ) -- -- foreign import ccall unsafe "vkCmdDispatch" vkCmdDispatch :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ groupCountX -> Word32 -- ^ groupCountY -> Word32 -- ^ groupCountZ -> IO () -- | queues: 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @compute@ -- -- > () vkCmdDispatchIndirect -- > ( VkCommandBuffer commandBuffer -- > , VkBuffer buffer -- > , VkDeviceSize offset -- > ) -- -- foreign import ccall unsafe "vkCmdDispatchIndirect" vkCmdDispatchIndirect :: VkCommandBuffer -- ^ commandBuffer -> VkBuffer -- ^ buffer -> VkDeviceSize -- ^ offset -> IO () -- | queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdCopyBuffer -- > ( VkCommandBuffer commandBuffer -- > , VkBuffer srcBuffer -- > , VkBuffer dstBuffer -- > , uint32_t regionCount -- > , const VkBufferCopy* pRegions -- > ) -- -- foreign import ccall unsafe "vkCmdCopyBuffer" vkCmdCopyBuffer :: VkCommandBuffer -- ^ commandBuffer -> VkBuffer -- ^ srcBuffer -> VkBuffer -- ^ dstBuffer -> Word32 -- ^ regionCount -> Ptr VkBufferCopy -- ^ pRegions -> IO () -- | queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdCopyImage -- > ( VkCommandBuffer commandBuffer -- > , VkImage srcImage -- > , VkImageLayout srcImageLayout -- > , VkImage dstImage -- > , VkImageLayout dstImageLayout -- > , uint32_t regionCount -- > , const VkImageCopy* pRegions -- > ) -- -- foreign import ccall unsafe "vkCmdCopyImage" vkCmdCopyImage :: VkCommandBuffer -- ^ commandBuffer -> VkImage -- ^ srcImage -> VkImageLayout -- ^ srcImageLayout -> VkImage -- ^ dstImage -> VkImageLayout -- ^ dstImageLayout -> Word32 -- ^ regionCount -> Ptr VkImageCopy -- ^ pRegions -> IO () -- | queues: 'graphics'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdBlitImage -- > ( VkCommandBuffer commandBuffer -- > , VkImage srcImage -- > , VkImageLayout srcImageLayout -- > , VkImage dstImage -- > , VkImageLayout dstImageLayout -- > , uint32_t regionCount -- > , const VkImageBlit* pRegions -- > , VkFilter filter -- > ) -- -- foreign import ccall unsafe "vkCmdBlitImage" vkCmdBlitImage :: VkCommandBuffer -- ^ commandBuffer -> VkImage -- ^ srcImage -> VkImageLayout -- ^ srcImageLayout -> VkImage -- ^ dstImage -> VkImageLayout -- ^ dstImageLayout -> Word32 -- ^ regionCount -> Ptr VkImageBlit -- ^ pRegions -> VkFilter -- ^ filter -> IO () -- | queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdCopyBufferToImage -- > ( VkCommandBuffer commandBuffer -- > , VkBuffer srcBuffer -- > , VkImage dstImage -- > , VkImageLayout dstImageLayout -- > , uint32_t regionCount -- > , const VkBufferImageCopy* pRegions -- > ) -- -- foreign import ccall unsafe "vkCmdCopyBufferToImage" vkCmdCopyBufferToImage :: VkCommandBuffer -- ^ commandBuffer -> VkBuffer -- ^ srcBuffer -> VkImage -- ^ dstImage -> VkImageLayout -- ^ dstImageLayout -> Word32 -- ^ regionCount -> Ptr VkBufferImageCopy -- ^ pRegions -> IO () -- | queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdCopyImageToBuffer -- > ( VkCommandBuffer commandBuffer -- > , VkImage srcImage -- > , VkImageLayout srcImageLayout -- > , VkBuffer dstBuffer -- > , uint32_t regionCount -- > , const VkBufferImageCopy* pRegions -- > ) -- -- foreign import ccall unsafe "vkCmdCopyImageToBuffer" vkCmdCopyImageToBuffer :: VkCommandBuffer -- ^ commandBuffer -> VkImage -- ^ srcImage -> VkImageLayout -- ^ srcImageLayout -> VkBuffer -- ^ dstBuffer -> Word32 -- ^ regionCount -> Ptr VkBufferImageCopy -- ^ pRegions -> IO () -- | queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdUpdateBuffer -- > ( VkCommandBuffer commandBuffer -- > , VkBuffer dstBuffer -- > , VkDeviceSize dstOffset -- > , VkDeviceSize dataSize -- > , const void* pData -- > ) -- -- foreign import ccall unsafe "vkCmdUpdateBuffer" vkCmdUpdateBuffer :: VkCommandBuffer -- ^ commandBuffer -> VkBuffer -- ^ dstBuffer -> VkDeviceSize -- ^ dstOffset -> VkDeviceSize -- ^ dataSize -> Ptr Void -- ^ pData -> IO () -- | transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification -- -- queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdFillBuffer -- > ( VkCommandBuffer commandBuffer -- > , VkBuffer dstBuffer -- > , VkDeviceSize dstOffset -- > , VkDeviceSize size -- > , uint32_t data -- > ) -- -- foreign import ccall unsafe "vkCmdFillBuffer" vkCmdFillBuffer :: VkCommandBuffer -- ^ commandBuffer -> VkBuffer -- ^ dstBuffer -> VkDeviceSize -- ^ dstOffset -> VkDeviceSize -- ^ size -> Word32 -- ^ data -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdClearColorImage -- > ( VkCommandBuffer commandBuffer -- > , VkImage image -- > , VkImageLayout imageLayout -- > , const VkClearColorValue* pColor -- > , uint32_t rangeCount -- > , const VkImageSubresourceRange* pRanges -- > ) -- -- foreign import ccall unsafe "vkCmdClearColorImage" vkCmdClearColorImage :: VkCommandBuffer -- ^ commandBuffer -> VkImage -- ^ image -> VkImageLayout -- ^ imageLayout -> Ptr VkClearColorValue -- ^ pColor -> Word32 -- ^ rangeCount -> Ptr VkImageSubresourceRange -- ^ pRanges -> IO () -- | queues: 'graphics'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdClearDepthStencilImage -- > ( VkCommandBuffer commandBuffer -- > , VkImage image -- > , VkImageLayout imageLayout -- > , const VkClearDepthStencilValue* pDepthStencil -- > , uint32_t rangeCount -- > , const VkImageSubresourceRange* pRanges -- > ) -- -- foreign import ccall unsafe "vkCmdClearDepthStencilImage" vkCmdClearDepthStencilImage :: VkCommandBuffer -- ^ commandBuffer -> VkImage -- ^ image -> VkImageLayout -- ^ imageLayout -> Ptr VkClearDepthStencilValue -- ^ pDepthStencil -> Word32 -- ^ rangeCount -> Ptr VkImageSubresourceRange -- ^ pRanges -> IO () -- | queues: 'graphics'. -- -- renderpass: @inside@ -- -- pipeline: @graphics@ -- -- > () vkCmdClearAttachments -- > ( VkCommandBuffer commandBuffer -- > , uint32_t attachmentCount -- > , const VkClearAttachment* pAttachments -- > , uint32_t rectCount -- > , const VkClearRect* pRects -- > ) -- -- foreign import ccall unsafe "vkCmdClearAttachments" vkCmdClearAttachments :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ attachmentCount -> Ptr VkClearAttachment -- ^ pAttachments -> Word32 -- ^ rectCount -> Ptr VkClearRect -- ^ pRects -> IO () -- | queues: 'graphics'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdResolveImage -- > ( VkCommandBuffer commandBuffer -- > , VkImage srcImage -- > , VkImageLayout srcImageLayout -- > , VkImage dstImage -- > , VkImageLayout dstImageLayout -- > , uint32_t regionCount -- > , const VkImageResolve* pRegions -- > ) -- -- foreign import ccall unsafe "vkCmdResolveImage" vkCmdResolveImage :: VkCommandBuffer -- ^ commandBuffer -> VkImage -- ^ srcImage -> VkImageLayout -- ^ srcImageLayout -> VkImage -- ^ dstImage -> VkImageLayout -- ^ dstImageLayout -> Word32 -- ^ regionCount -> Ptr VkImageResolve -- ^ pRegions -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- > () vkCmdSetEvent -- > ( VkCommandBuffer commandBuffer -- > , VkEvent event -- > , VkPipelineStageFlags stageMask -- > ) -- -- foreign import ccall unsafe "vkCmdSetEvent" vkCmdSetEvent :: VkCommandBuffer -- ^ commandBuffer -> VkEvent -- ^ event -> VkPipelineStageFlags -- ^ stageMask -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- > () vkCmdResetEvent -- > ( VkCommandBuffer commandBuffer -- > , VkEvent event -- > , VkPipelineStageFlags stageMask -- > ) -- -- foreign import ccall unsafe "vkCmdResetEvent" vkCmdResetEvent :: VkCommandBuffer -- ^ commandBuffer -> VkEvent -- ^ event -> VkPipelineStageFlags -- ^ stageMask -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @both@ -- -- > () vkCmdWaitEvents -- > ( VkCommandBuffer commandBuffer -- > , uint32_t eventCount -- > , const VkEvent* pEvents -- > , VkPipelineStageFlags srcStageMask -- > , VkPipelineStageFlags dstStageMask -- > , uint32_t memoryBarrierCount -- > , const VkMemoryBarrier* pMemoryBarriers -- > , uint32_t bufferMemoryBarrierCount -- > , const VkBufferMemoryBarrier* pBufferMemoryBarriers -- > , uint32_t imageMemoryBarrierCount -- > , const VkImageMemoryBarrier* pImageMemoryBarriers -- > ) -- -- foreign import ccall unsafe "vkCmdWaitEvents" vkCmdWaitEvents :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ eventCount -> Ptr VkEvent -- ^ pEvents -> VkPipelineStageFlags -- ^ srcStageMask -> VkPipelineStageFlags -- ^ dstStageMask -> Word32 -- ^ memoryBarrierCount -> Ptr VkMemoryBarrier -- ^ pMemoryBarriers -> Word32 -- ^ bufferMemoryBarrierCount -> Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers -> Word32 -- ^ imageMemoryBarrierCount -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers -> IO () -- | queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @both@ -- -- > () vkCmdPipelineBarrier -- > ( VkCommandBuffer commandBuffer -- > , VkPipelineStageFlags srcStageMask -- > , VkPipelineStageFlags dstStageMask -- > , VkDependencyFlags dependencyFlags -- > , uint32_t memoryBarrierCount -- > , const VkMemoryBarrier* pMemoryBarriers -- > , uint32_t bufferMemoryBarrierCount -- > , const VkBufferMemoryBarrier* pBufferMemoryBarriers -- > , uint32_t imageMemoryBarrierCount -- > , const VkImageMemoryBarrier* pImageMemoryBarriers -- > ) -- -- foreign import ccall unsafe "vkCmdPipelineBarrier" vkCmdPipelineBarrier :: VkCommandBuffer -- ^ commandBuffer -> VkPipelineStageFlags -- ^ srcStageMask -> VkPipelineStageFlags -- ^ dstStageMask -> VkDependencyFlags -- ^ dependencyFlags -> Word32 -- ^ memoryBarrierCount -> Ptr VkMemoryBarrier -- ^ pMemoryBarriers -> Word32 -- ^ bufferMemoryBarrierCount -> Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers -> Word32 -- ^ imageMemoryBarrierCount -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @both@ -- -- > () vkCmdBeginQuery -- > ( VkCommandBuffer commandBuffer -- > , VkQueryPool queryPool -- > , uint32_t query -- > , VkQueryControlFlags flags -- > ) -- -- foreign import ccall unsafe "vkCmdBeginQuery" vkCmdBeginQuery :: VkCommandBuffer -- ^ commandBuffer -> VkQueryPool -- ^ queryPool -> Word32 -- ^ query -> VkQueryControlFlags -- ^ flags -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @both@ -- -- > () vkCmdEndQuery -- > ( VkCommandBuffer commandBuffer -- > , VkQueryPool queryPool -- > , uint32_t query -- > ) -- -- foreign import ccall unsafe "vkCmdEndQuery" vkCmdEndQuery :: VkCommandBuffer -- ^ commandBuffer -> VkQueryPool -- ^ queryPool -> Word32 -- ^ query -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- > () vkCmdResetQueryPool -- > ( VkCommandBuffer commandBuffer -- > , VkQueryPool queryPool -- > , uint32_t firstQuery -- > , uint32_t queryCount -- > ) -- -- foreign import ccall unsafe "vkCmdResetQueryPool" vkCmdResetQueryPool :: VkCommandBuffer -- ^ commandBuffer -> VkQueryPool -- ^ queryPool -> Word32 -- ^ firstQuery -> Word32 -- ^ queryCount -> IO () -- | queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @both@ -- -- pipeline: @transfer@ -- -- > () vkCmdWriteTimestamp -- > ( VkCommandBuffer commandBuffer -- > , VkPipelineStageFlagBits pipelineStage -- > , VkQueryPool queryPool -- > , uint32_t query -- > ) -- -- foreign import ccall unsafe "vkCmdWriteTimestamp" vkCmdWriteTimestamp :: VkCommandBuffer -- ^ commandBuffer -> VkPipelineStageFlagBits -- ^ pipelineStage -> VkQueryPool -- ^ queryPool -> Word32 -- ^ query -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @outside@ -- -- pipeline: @transfer@ -- -- > () vkCmdCopyQueryPoolResults -- > ( VkCommandBuffer commandBuffer -- > , VkQueryPool queryPool -- > , uint32_t firstQuery -- > , uint32_t queryCount -- > , VkBuffer dstBuffer -- > , VkDeviceSize dstOffset -- > , VkDeviceSize stride -- > , VkQueryResultFlags flags -- > ) -- -- foreign import ccall unsafe "vkCmdCopyQueryPoolResults" vkCmdCopyQueryPoolResults :: VkCommandBuffer -- ^ commandBuffer -> VkQueryPool -- ^ queryPool -> Word32 -- ^ firstQuery -> Word32 -- ^ queryCount -> VkBuffer -- ^ dstBuffer -> VkDeviceSize -- ^ dstOffset -> VkDeviceSize -- ^ stride -> VkQueryResultFlags -- ^ flags -> IO () -- | queues: 'graphics', 'compute'. -- -- renderpass: @both@ -- -- > () vkCmdPushConstants -- > ( VkCommandBuffer commandBuffer -- > , VkPipelineLayout layout -- > , VkShaderStageFlags stageFlags -- > , uint32_t offset -- > , uint32_t size -- > , const void* pValues -- > ) -- -- foreign import ccall unsafe "vkCmdPushConstants" vkCmdPushConstants :: VkCommandBuffer -- ^ commandBuffer -> VkPipelineLayout -- ^ layout -> VkShaderStageFlags -- ^ stageFlags -> Word32 -- ^ offset -> Word32 -- ^ size -> Ptr Void -- ^ pValues -> IO () -- | queues: 'graphics'. -- -- renderpass: @outside@ -- -- pipeline: @graphics@ -- -- > () vkCmdBeginRenderPass -- > ( VkCommandBuffer commandBuffer -- > , const VkRenderPassBeginInfo* pRenderPassBegin -- > , VkSubpassContents contents -- > ) -- -- foreign import ccall unsafe "vkCmdBeginRenderPass" vkCmdBeginRenderPass :: VkCommandBuffer -- ^ commandBuffer -> Ptr VkRenderPassBeginInfo -- ^ pRenderPassBegin -> VkSubpassContents -- ^ contents -> IO () -- | queues: 'graphics'. -- -- renderpass: @inside@ -- -- pipeline: @graphics@ -- -- > () vkCmdNextSubpass -- > ( VkCommandBuffer commandBuffer -- > , VkSubpassContents contents -- > ) -- -- foreign import ccall unsafe "vkCmdNextSubpass" vkCmdNextSubpass :: VkCommandBuffer -- ^ commandBuffer -> VkSubpassContents -- ^ contents -> IO () -- | queues: 'graphics'. -- -- renderpass: @inside@ -- -- pipeline: @graphics@ -- -- > () vkCmdEndRenderPass -- > ( VkCommandBuffer commandBuffer -- > ) -- -- foreign import ccall unsafe "vkCmdEndRenderPass" vkCmdEndRenderPass :: VkCommandBuffer -- ^ commandBuffer -> IO () -- | queues: 'transfer', 'graphics', 'compute'. -- -- renderpass: @both@ -- -- > () vkCmdExecuteCommands -- > ( VkCommandBuffer commandBuffer -- > , uint32_t commandBufferCount -- > , const VkCommandBuffer* pCommandBuffers -- > ) -- -- foreign import ccall unsafe "vkCmdExecuteCommands" vkCmdExecuteCommands :: VkCommandBuffer -- ^ commandBuffer -> Word32 -- ^ commandBufferCount -> Ptr VkCommandBuffer -- ^ pCommandBuffers -> IO ()