packages feed

vulkan 1.7.0.0 → 2.0.0.0

raw patch · 213 files changed

+70070/−10589 lines, 213 filesdep ~vector-sizedPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: vector-sized

API changes (from Hackage documentation)

- Graphics.Vulkan.Buffer: VkBuffer :: Word64 -> VkBuffer
- Graphics.Vulkan.Buffer: VkBufferCreateFlagBits :: VkFlags -> VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: VkBufferCreateInfo :: VkStructureType -> Ptr Void -> VkBufferCreateFlags -> VkDeviceSize -> VkBufferUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkBufferCreateInfo
- Graphics.Vulkan.Buffer: VkBufferUsageFlagBits :: VkFlags -> VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: [$sel:vkFlags:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkBufferCreateFlags
- Graphics.Vulkan.Buffer: [$sel:vkPNext:VkBufferCreateInfo] :: VkBufferCreateInfo -> Ptr Void
- Graphics.Vulkan.Buffer: [$sel:vkPQueueFamilyIndices:VkBufferCreateInfo] :: VkBufferCreateInfo -> Ptr Word32
- Graphics.Vulkan.Buffer: [$sel:vkQueueFamilyIndexCount:VkBufferCreateInfo] :: VkBufferCreateInfo -> Word32
- Graphics.Vulkan.Buffer: [$sel:vkSType:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkStructureType
- Graphics.Vulkan.Buffer: [$sel:vkSharingMode:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkSharingMode
- Graphics.Vulkan.Buffer: [$sel:vkSize:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkDeviceSize
- Graphics.Vulkan.Buffer: [$sel:vkUsage:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkBufferUsageFlags
- Graphics.Vulkan.Buffer: data VkBufferCreateInfo
- Graphics.Vulkan.Buffer: instance Data.Bits.Bits Graphics.Vulkan.Buffer.VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: instance Data.Bits.Bits Graphics.Vulkan.Buffer.VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: instance Data.Bits.FiniteBits Graphics.Vulkan.Buffer.VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: instance Data.Bits.FiniteBits Graphics.Vulkan.Buffer.VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: instance Foreign.Storable.Storable Graphics.Vulkan.Buffer.VkBuffer
- Graphics.Vulkan.Buffer: instance Foreign.Storable.Storable Graphics.Vulkan.Buffer.VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: instance Foreign.Storable.Storable Graphics.Vulkan.Buffer.VkBufferCreateInfo
- Graphics.Vulkan.Buffer: instance Foreign.Storable.Storable Graphics.Vulkan.Buffer.VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: instance GHC.Classes.Eq Graphics.Vulkan.Buffer.VkBuffer
- Graphics.Vulkan.Buffer: instance GHC.Classes.Eq Graphics.Vulkan.Buffer.VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: instance GHC.Classes.Eq Graphics.Vulkan.Buffer.VkBufferCreateInfo
- Graphics.Vulkan.Buffer: instance GHC.Classes.Eq Graphics.Vulkan.Buffer.VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: instance GHC.Read.Read Graphics.Vulkan.Buffer.VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: instance GHC.Read.Read Graphics.Vulkan.Buffer.VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: instance GHC.Show.Show Graphics.Vulkan.Buffer.VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: instance GHC.Show.Show Graphics.Vulkan.Buffer.VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: newtype VkBuffer
- Graphics.Vulkan.Buffer: newtype VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: newtype VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: type VkBufferCreateFlags = VkBufferCreateFlagBits
- Graphics.Vulkan.Buffer: type VkBufferUsageFlags = VkBufferUsageFlagBits
- Graphics.Vulkan.Buffer: vkCreateBuffer :: VkDevice -> Ptr VkBufferCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkBuffer -> IO VkResult
- Graphics.Vulkan.Buffer: vkDestroyBuffer :: VkDevice -> VkBuffer -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.BufferView: VkBufferView :: Word64 -> VkBufferView
- Graphics.Vulkan.BufferView: VkBufferViewCreateFlags :: VkFlags -> VkBufferViewCreateFlags
- Graphics.Vulkan.BufferView: VkBufferViewCreateInfo :: VkStructureType -> Ptr Void -> VkBufferViewCreateFlags -> VkBuffer -> VkFormat -> VkDeviceSize -> VkDeviceSize -> VkBufferViewCreateInfo
- Graphics.Vulkan.BufferView: [$sel:vkBuffer:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkBuffer
- Graphics.Vulkan.BufferView: [$sel:vkFlags:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkBufferViewCreateFlags
- Graphics.Vulkan.BufferView: [$sel:vkFormat:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkFormat
- Graphics.Vulkan.BufferView: [$sel:vkOffset:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkDeviceSize
- Graphics.Vulkan.BufferView: [$sel:vkPNext:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> Ptr Void
- Graphics.Vulkan.BufferView: [$sel:vkRange:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkDeviceSize
- Graphics.Vulkan.BufferView: [$sel:vkSType:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkStructureType
- Graphics.Vulkan.BufferView: data VkBufferViewCreateInfo
- Graphics.Vulkan.BufferView: instance Foreign.Storable.Storable Graphics.Vulkan.BufferView.VkBufferView
- Graphics.Vulkan.BufferView: instance Foreign.Storable.Storable Graphics.Vulkan.BufferView.VkBufferViewCreateFlags
- Graphics.Vulkan.BufferView: instance Foreign.Storable.Storable Graphics.Vulkan.BufferView.VkBufferViewCreateInfo
- Graphics.Vulkan.BufferView: instance GHC.Classes.Eq Graphics.Vulkan.BufferView.VkBufferView
- Graphics.Vulkan.BufferView: instance GHC.Classes.Eq Graphics.Vulkan.BufferView.VkBufferViewCreateFlags
- Graphics.Vulkan.BufferView: instance GHC.Classes.Eq Graphics.Vulkan.BufferView.VkBufferViewCreateInfo
- Graphics.Vulkan.BufferView: newtype VkBufferView
- Graphics.Vulkan.BufferView: newtype VkBufferViewCreateFlags
- Graphics.Vulkan.BufferView: vkCreateBufferView :: VkDevice -> Ptr VkBufferViewCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkBufferView -> IO VkResult
- Graphics.Vulkan.BufferView: vkDestroyBufferView :: VkDevice -> VkBufferView -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.CommandBuffer: VkCommandBufferAllocateInfo :: VkStructureType -> Ptr Void -> VkCommandPool -> VkCommandBufferLevel -> Word32 -> VkCommandBufferAllocateInfo
- Graphics.Vulkan.CommandBuffer: VkCommandBufferBeginInfo :: VkStructureType -> Ptr Void -> VkCommandBufferUsageFlags -> Ptr VkCommandBufferInheritanceInfo -> VkCommandBufferBeginInfo
- Graphics.Vulkan.CommandBuffer: VkCommandBufferInheritanceInfo :: VkStructureType -> Ptr Void -> VkRenderPass -> Word32 -> VkFramebuffer -> VkBool32 -> VkQueryControlFlags -> VkQueryPipelineStatisticFlags -> VkCommandBufferInheritanceInfo
- Graphics.Vulkan.CommandBuffer: VkCommandBufferLevel :: Int32 -> VkCommandBufferLevel
- Graphics.Vulkan.CommandBuffer: VkCommandBufferResetFlagBits :: VkFlags -> VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: VkCommandBufferUsageFlagBits :: VkFlags -> VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: [$sel:vkCommandBufferCount:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> Word32
- Graphics.Vulkan.CommandBuffer: [$sel:vkCommandPool:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkCommandPool
- Graphics.Vulkan.CommandBuffer: [$sel:vkFlags:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> VkCommandBufferUsageFlags
- Graphics.Vulkan.CommandBuffer: [$sel:vkFramebuffer:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkFramebuffer
- Graphics.Vulkan.CommandBuffer: [$sel:vkLevel:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkCommandBufferLevel
- Graphics.Vulkan.CommandBuffer: [$sel:vkOcclusionQueryEnable:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkBool32
- Graphics.Vulkan.CommandBuffer: [$sel:vkPInheritanceInfo:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> Ptr VkCommandBufferInheritanceInfo
- Graphics.Vulkan.CommandBuffer: [$sel:vkPNext:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> Ptr Void
- Graphics.Vulkan.CommandBuffer: [$sel:vkPNext:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> Ptr Void
- Graphics.Vulkan.CommandBuffer: [$sel:vkPNext:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> Ptr Void
- Graphics.Vulkan.CommandBuffer: [$sel:vkPipelineStatistics:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkQueryPipelineStatisticFlags
- Graphics.Vulkan.CommandBuffer: [$sel:vkQueryFlags:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkQueryControlFlags
- Graphics.Vulkan.CommandBuffer: [$sel:vkRenderPass:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkRenderPass
- Graphics.Vulkan.CommandBuffer: [$sel:vkSType:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkStructureType
- Graphics.Vulkan.CommandBuffer: [$sel:vkSType:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> VkStructureType
- Graphics.Vulkan.CommandBuffer: [$sel:vkSType:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkStructureType
- Graphics.Vulkan.CommandBuffer: [$sel:vkSubpass:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> Word32
- Graphics.Vulkan.CommandBuffer: data VkCommandBufferAllocateInfo
- Graphics.Vulkan.CommandBuffer: data VkCommandBufferBeginInfo
- Graphics.Vulkan.CommandBuffer: data VkCommandBufferInheritanceInfo
- Graphics.Vulkan.CommandBuffer: data VkCommandBuffer_T
- Graphics.Vulkan.CommandBuffer: instance Data.Bits.Bits Graphics.Vulkan.CommandBuffer.VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: instance Data.Bits.Bits Graphics.Vulkan.CommandBuffer.VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: instance Data.Bits.FiniteBits Graphics.Vulkan.CommandBuffer.VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: instance Data.Bits.FiniteBits Graphics.Vulkan.CommandBuffer.VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBuffer.VkCommandBufferAllocateInfo
- Graphics.Vulkan.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBuffer.VkCommandBufferBeginInfo
- Graphics.Vulkan.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBuffer.VkCommandBufferInheritanceInfo
- Graphics.Vulkan.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBuffer.VkCommandBufferLevel
- Graphics.Vulkan.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBuffer.VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBuffer.VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.CommandBuffer.VkCommandBufferAllocateInfo
- Graphics.Vulkan.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.CommandBuffer.VkCommandBufferBeginInfo
- Graphics.Vulkan.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.CommandBuffer.VkCommandBufferInheritanceInfo
- Graphics.Vulkan.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.CommandBuffer.VkCommandBufferLevel
- Graphics.Vulkan.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.CommandBuffer.VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.CommandBuffer.VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: instance GHC.Read.Read Graphics.Vulkan.CommandBuffer.VkCommandBufferLevel
- Graphics.Vulkan.CommandBuffer: instance GHC.Read.Read Graphics.Vulkan.CommandBuffer.VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: instance GHC.Read.Read Graphics.Vulkan.CommandBuffer.VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.CommandBuffer.VkCommandBufferLevel
- Graphics.Vulkan.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.CommandBuffer.VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.CommandBuffer.VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: newtype VkCommandBufferLevel
- Graphics.Vulkan.CommandBuffer: newtype VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: newtype VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: type VkCommandBuffer = Ptr VkCommandBuffer_T
- Graphics.Vulkan.CommandBuffer: type VkCommandBufferResetFlags = VkCommandBufferResetFlagBits
- Graphics.Vulkan.CommandBuffer: type VkCommandBufferUsageFlags = VkCommandBufferUsageFlagBits
- Graphics.Vulkan.CommandBuffer: vkAllocateCommandBuffers :: VkDevice -> Ptr VkCommandBufferAllocateInfo -> Ptr VkCommandBuffer -> IO VkResult
- Graphics.Vulkan.CommandBuffer: vkBeginCommandBuffer :: VkCommandBuffer -> Ptr VkCommandBufferBeginInfo -> IO VkResult
- Graphics.Vulkan.CommandBuffer: vkEndCommandBuffer :: VkCommandBuffer -> IO VkResult
- Graphics.Vulkan.CommandBuffer: vkFreeCommandBuffers :: VkDevice -> VkCommandPool -> Word32 -> Ptr VkCommandBuffer -> IO ()
- Graphics.Vulkan.CommandBuffer: vkResetCommandBuffer :: VkCommandBuffer -> VkCommandBufferResetFlags -> IO VkResult
- Graphics.Vulkan.CommandBufferBuilding: VkBufferCopy :: VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkBufferCopy
- Graphics.Vulkan.CommandBufferBuilding: VkBufferImageCopy :: VkDeviceSize -> Word32 -> Word32 -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkBufferImageCopy
- Graphics.Vulkan.CommandBufferBuilding: VkClearAttachment :: VkImageAspectFlags -> Word32 -> VkClearValue -> VkClearAttachment
- Graphics.Vulkan.CommandBufferBuilding: VkClearDepthStencilValue :: CFloat -> Word32 -> VkClearDepthStencilValue
- Graphics.Vulkan.CommandBufferBuilding: VkClearRect :: VkRect2D -> Word32 -> Word32 -> VkClearRect
- Graphics.Vulkan.CommandBufferBuilding: VkColor :: VkClearColorValue -> VkClearValue
- Graphics.Vulkan.CommandBufferBuilding: VkDepthStencil :: VkClearDepthStencilValue -> VkClearValue
- Graphics.Vulkan.CommandBufferBuilding: VkFloat32 :: (Vector 4 CFloat) -> VkClearColorValue
- Graphics.Vulkan.CommandBufferBuilding: VkImageBlit :: VkImageSubresourceLayers -> Vector 2 VkOffset3D -> VkImageSubresourceLayers -> Vector 2 VkOffset3D -> VkImageBlit
- Graphics.Vulkan.CommandBufferBuilding: VkImageCopy :: VkImageSubresourceLayers -> VkOffset3D -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkImageCopy
- Graphics.Vulkan.CommandBufferBuilding: VkImageResolve :: VkImageSubresourceLayers -> VkOffset3D -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkImageResolve
- Graphics.Vulkan.CommandBufferBuilding: VkImageSubresourceLayers :: VkImageAspectFlags -> Word32 -> Word32 -> Word32 -> VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: VkIndexType :: Int32 -> VkIndexType
- Graphics.Vulkan.CommandBufferBuilding: VkInt32 :: (Vector 4 Int32) -> VkClearColorValue
- Graphics.Vulkan.CommandBufferBuilding: VkRenderPassBeginInfo :: VkStructureType -> Ptr Void -> VkRenderPass -> VkFramebuffer -> VkRect2D -> Word32 -> Ptr VkClearValue -> VkRenderPassBeginInfo
- Graphics.Vulkan.CommandBufferBuilding: VkStencilFaceFlagBits :: VkFlags -> VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: VkSubpassContents :: Int32 -> VkSubpassContents
- Graphics.Vulkan.CommandBufferBuilding: VkUint32 :: (Vector 4 Word32) -> VkClearColorValue
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkAspectMask:VkClearAttachment] :: VkClearAttachment -> VkImageAspectFlags
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkAspectMask:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> VkImageAspectFlags
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkBaseArrayLayer:VkClearRect] :: VkClearRect -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkBaseArrayLayer:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkBufferImageHeight:VkBufferImageCopy] :: VkBufferImageCopy -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkBufferOffset:VkBufferImageCopy] :: VkBufferImageCopy -> VkDeviceSize
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkBufferRowLength:VkBufferImageCopy] :: VkBufferImageCopy -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkClearValue:VkClearAttachment] :: VkClearAttachment -> VkClearValue
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkClearValueCount:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkColorAttachment:VkClearAttachment] :: VkClearAttachment -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkDepth:VkClearDepthStencilValue] :: VkClearDepthStencilValue -> CFloat
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkDstOffset:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkDstOffset:VkImageCopy] :: VkImageCopy -> VkOffset3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkDstOffset:VkImageResolve] :: VkImageResolve -> VkOffset3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkDstOffsets:VkImageBlit] :: VkImageBlit -> Vector 2 VkOffset3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkDstSubresource:VkImageBlit] :: VkImageBlit -> VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkDstSubresource:VkImageCopy] :: VkImageCopy -> VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkDstSubresource:VkImageResolve] :: VkImageResolve -> VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkExtent:VkImageCopy] :: VkImageCopy -> VkExtent3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkExtent:VkImageResolve] :: VkImageResolve -> VkExtent3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkFramebuffer:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkFramebuffer
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkImageExtent:VkBufferImageCopy] :: VkBufferImageCopy -> VkExtent3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkImageOffset:VkBufferImageCopy] :: VkBufferImageCopy -> VkOffset3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkImageSubresource:VkBufferImageCopy] :: VkBufferImageCopy -> VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkLayerCount:VkClearRect] :: VkClearRect -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkLayerCount:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkMipLevel:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkPClearValues:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Ptr VkClearValue
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkPNext:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Ptr Void
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkRect:VkClearRect] :: VkClearRect -> VkRect2D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkRenderArea:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkRect2D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkRenderPass:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkRenderPass
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSType:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkStructureType
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSize:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSrcOffset:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSrcOffset:VkImageCopy] :: VkImageCopy -> VkOffset3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSrcOffset:VkImageResolve] :: VkImageResolve -> VkOffset3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSrcOffsets:VkImageBlit] :: VkImageBlit -> Vector 2 VkOffset3D
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSrcSubresource:VkImageBlit] :: VkImageBlit -> VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSrcSubresource:VkImageCopy] :: VkImageCopy -> VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkSrcSubresource:VkImageResolve] :: VkImageResolve -> VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: [$sel:vkStencil:VkClearDepthStencilValue] :: VkClearDepthStencilValue -> Word32
- Graphics.Vulkan.CommandBufferBuilding: data VkBufferCopy
- Graphics.Vulkan.CommandBufferBuilding: data VkBufferImageCopy
- Graphics.Vulkan.CommandBufferBuilding: data VkClearAttachment
- Graphics.Vulkan.CommandBufferBuilding: data VkClearColorValue
- Graphics.Vulkan.CommandBufferBuilding: data VkClearDepthStencilValue
- Graphics.Vulkan.CommandBufferBuilding: data VkClearRect
- Graphics.Vulkan.CommandBufferBuilding: data VkClearValue
- Graphics.Vulkan.CommandBufferBuilding: data VkImageBlit
- Graphics.Vulkan.CommandBufferBuilding: data VkImageCopy
- Graphics.Vulkan.CommandBufferBuilding: data VkImageResolve
- Graphics.Vulkan.CommandBufferBuilding: data VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: data VkRenderPassBeginInfo
- Graphics.Vulkan.CommandBufferBuilding: instance Data.Bits.Bits Graphics.Vulkan.CommandBufferBuilding.VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: instance Data.Bits.FiniteBits Graphics.Vulkan.CommandBufferBuilding.VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkBufferCopy
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkBufferImageCopy
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkClearAttachment
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkClearColorValue
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkClearDepthStencilValue
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkClearRect
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkClearValue
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkImageBlit
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkImageCopy
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkImageResolve
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkIndexType
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkRenderPassBeginInfo
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.CommandBufferBuilding.VkSubpassContents
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkBufferCopy
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkBufferImageCopy
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkClearAttachment
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkClearColorValue
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkClearDepthStencilValue
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkClearRect
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkClearValue
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkImageBlit
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkImageCopy
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkImageResolve
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkImageSubresourceLayers
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkIndexType
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkRenderPassBeginInfo
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.CommandBufferBuilding.VkSubpassContents
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Read.Read Graphics.Vulkan.CommandBufferBuilding.VkIndexType
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Read.Read Graphics.Vulkan.CommandBufferBuilding.VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Read.Read Graphics.Vulkan.CommandBufferBuilding.VkSubpassContents
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.CommandBufferBuilding.VkIndexType
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.CommandBufferBuilding.VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.CommandBufferBuilding.VkSubpassContents
- Graphics.Vulkan.CommandBufferBuilding: newtype VkIndexType
- Graphics.Vulkan.CommandBufferBuilding: newtype VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: newtype VkSubpassContents
- Graphics.Vulkan.CommandBufferBuilding: type VkStencilFaceFlags = VkStencilFaceFlagBits
- Graphics.Vulkan.CommandBufferBuilding: vkCmdBeginQuery :: VkCommandBuffer -> VkQueryPool -> Word32 -> VkQueryControlFlags -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdBeginRenderPass :: VkCommandBuffer -> Ptr VkRenderPassBeginInfo -> VkSubpassContents -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdBindDescriptorSets :: VkCommandBuffer -> VkPipelineBindPoint -> VkPipelineLayout -> Word32 -> Word32 -> Ptr VkDescriptorSet -> Word32 -> Ptr Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdBindIndexBuffer :: VkCommandBuffer -> VkBuffer -> VkDeviceSize -> VkIndexType -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdBindPipeline :: VkCommandBuffer -> VkPipelineBindPoint -> VkPipeline -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdBindVertexBuffers :: VkCommandBuffer -> Word32 -> Word32 -> Ptr VkBuffer -> Ptr VkDeviceSize -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdBlitImage :: VkCommandBuffer -> VkImage -> VkImageLayout -> VkImage -> VkImageLayout -> Word32 -> Ptr VkImageBlit -> VkFilter -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdClearAttachments :: VkCommandBuffer -> Word32 -> Ptr VkClearAttachment -> Word32 -> Ptr VkClearRect -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdClearColorImage :: VkCommandBuffer -> VkImage -> VkImageLayout -> Ptr VkClearColorValue -> Word32 -> Ptr VkImageSubresourceRange -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdClearDepthStencilImage :: VkCommandBuffer -> VkImage -> VkImageLayout -> Ptr VkClearDepthStencilValue -> Word32 -> Ptr VkImageSubresourceRange -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdCopyBuffer :: VkCommandBuffer -> VkBuffer -> VkBuffer -> Word32 -> Ptr VkBufferCopy -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdCopyBufferToImage :: VkCommandBuffer -> VkBuffer -> VkImage -> VkImageLayout -> Word32 -> Ptr VkBufferImageCopy -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdCopyImage :: VkCommandBuffer -> VkImage -> VkImageLayout -> VkImage -> VkImageLayout -> Word32 -> Ptr VkImageCopy -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdCopyImageToBuffer :: VkCommandBuffer -> VkImage -> VkImageLayout -> VkBuffer -> Word32 -> Ptr VkBufferImageCopy -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdCopyQueryPoolResults :: VkCommandBuffer -> VkQueryPool -> Word32 -> Word32 -> VkBuffer -> VkDeviceSize -> VkDeviceSize -> VkQueryResultFlags -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdDispatch :: VkCommandBuffer -> Word32 -> Word32 -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdDispatchIndirect :: VkCommandBuffer -> VkBuffer -> VkDeviceSize -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdDraw :: VkCommandBuffer -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdDrawIndexed :: VkCommandBuffer -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdDrawIndexedIndirect :: VkCommandBuffer -> VkBuffer -> VkDeviceSize -> Word32 -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdDrawIndirect :: VkCommandBuffer -> VkBuffer -> VkDeviceSize -> Word32 -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdEndQuery :: VkCommandBuffer -> VkQueryPool -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdEndRenderPass :: VkCommandBuffer -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdExecuteCommands :: VkCommandBuffer -> Word32 -> Ptr VkCommandBuffer -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdFillBuffer :: VkCommandBuffer -> VkBuffer -> VkDeviceSize -> VkDeviceSize -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdNextSubpass :: VkCommandBuffer -> VkSubpassContents -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdPipelineBarrier :: VkCommandBuffer -> VkPipelineStageFlags -> VkPipelineStageFlags -> VkDependencyFlags -> Word32 -> Ptr VkMemoryBarrier -> Word32 -> Ptr VkBufferMemoryBarrier -> Word32 -> Ptr VkImageMemoryBarrier -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdPushConstants :: VkCommandBuffer -> VkPipelineLayout -> VkShaderStageFlags -> Word32 -> Word32 -> Ptr Void -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdResetEvent :: VkCommandBuffer -> VkEvent -> VkPipelineStageFlags -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdResetQueryPool :: VkCommandBuffer -> VkQueryPool -> Word32 -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdResolveImage :: VkCommandBuffer -> VkImage -> VkImageLayout -> VkImage -> VkImageLayout -> Word32 -> Ptr VkImageResolve -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetBlendConstants :: VkCommandBuffer -> Ptr CFloat -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetDepthBias :: VkCommandBuffer -> CFloat -> CFloat -> CFloat -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetDepthBounds :: VkCommandBuffer -> CFloat -> CFloat -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetEvent :: VkCommandBuffer -> VkEvent -> VkPipelineStageFlags -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetLineWidth :: VkCommandBuffer -> CFloat -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetScissor :: VkCommandBuffer -> Word32 -> Word32 -> Ptr VkRect2D -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetStencilCompareMask :: VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetStencilReference :: VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetStencilWriteMask :: VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdSetViewport :: VkCommandBuffer -> Word32 -> Word32 -> Ptr VkViewport -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdUpdateBuffer :: VkCommandBuffer -> VkBuffer -> VkDeviceSize -> VkDeviceSize -> Ptr Word32 -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdWaitEvents :: VkCommandBuffer -> Word32 -> Ptr VkEvent -> VkPipelineStageFlags -> VkPipelineStageFlags -> Word32 -> Ptr VkMemoryBarrier -> Word32 -> Ptr VkBufferMemoryBarrier -> Word32 -> Ptr VkImageMemoryBarrier -> IO ()
- Graphics.Vulkan.CommandBufferBuilding: vkCmdWriteTimestamp :: VkCommandBuffer -> VkPipelineStageFlagBits -> VkQueryPool -> Word32 -> IO ()
- Graphics.Vulkan.CommandPool: VkCommandPool :: Word64 -> VkCommandPool
- Graphics.Vulkan.CommandPool: VkCommandPoolCreateFlagBits :: VkFlags -> VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: VkCommandPoolCreateInfo :: VkStructureType -> Ptr Void -> VkCommandPoolCreateFlags -> Word32 -> VkCommandPoolCreateInfo
- Graphics.Vulkan.CommandPool: VkCommandPoolResetFlagBits :: VkFlags -> VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: [$sel:vkFlags:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> VkCommandPoolCreateFlags
- Graphics.Vulkan.CommandPool: [$sel:vkPNext:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> Ptr Void
- Graphics.Vulkan.CommandPool: [$sel:vkQueueFamilyIndex:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> Word32
- Graphics.Vulkan.CommandPool: [$sel:vkSType:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> VkStructureType
- Graphics.Vulkan.CommandPool: data VkCommandPoolCreateInfo
- Graphics.Vulkan.CommandPool: instance Data.Bits.Bits Graphics.Vulkan.CommandPool.VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: instance Data.Bits.Bits Graphics.Vulkan.CommandPool.VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: instance Data.Bits.FiniteBits Graphics.Vulkan.CommandPool.VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: instance Data.Bits.FiniteBits Graphics.Vulkan.CommandPool.VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: instance Foreign.Storable.Storable Graphics.Vulkan.CommandPool.VkCommandPool
- Graphics.Vulkan.CommandPool: instance Foreign.Storable.Storable Graphics.Vulkan.CommandPool.VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: instance Foreign.Storable.Storable Graphics.Vulkan.CommandPool.VkCommandPoolCreateInfo
- Graphics.Vulkan.CommandPool: instance Foreign.Storable.Storable Graphics.Vulkan.CommandPool.VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: instance GHC.Classes.Eq Graphics.Vulkan.CommandPool.VkCommandPool
- Graphics.Vulkan.CommandPool: instance GHC.Classes.Eq Graphics.Vulkan.CommandPool.VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: instance GHC.Classes.Eq Graphics.Vulkan.CommandPool.VkCommandPoolCreateInfo
- Graphics.Vulkan.CommandPool: instance GHC.Classes.Eq Graphics.Vulkan.CommandPool.VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: instance GHC.Read.Read Graphics.Vulkan.CommandPool.VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: instance GHC.Read.Read Graphics.Vulkan.CommandPool.VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: instance GHC.Show.Show Graphics.Vulkan.CommandPool.VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: instance GHC.Show.Show Graphics.Vulkan.CommandPool.VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: newtype VkCommandPool
- Graphics.Vulkan.CommandPool: newtype VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: newtype VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: type VkCommandPoolCreateFlags = VkCommandPoolCreateFlagBits
- Graphics.Vulkan.CommandPool: type VkCommandPoolResetFlags = VkCommandPoolResetFlagBits
- Graphics.Vulkan.CommandPool: vkCreateCommandPool :: VkDevice -> Ptr VkCommandPoolCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkCommandPool -> IO VkResult
- Graphics.Vulkan.CommandPool: vkDestroyCommandPool :: VkDevice -> VkCommandPool -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.CommandPool: vkResetCommandPool :: VkDevice -> VkCommandPool -> VkCommandPoolResetFlags -> IO VkResult
- Graphics.Vulkan.Constants: VkPipelineCacheHeaderVersion :: Int32 -> VkPipelineCacheHeaderVersion
- Graphics.Vulkan.Constants: instance Foreign.Storable.Storable Graphics.Vulkan.Constants.VkPipelineCacheHeaderVersion
- Graphics.Vulkan.Constants: instance GHC.Classes.Eq Graphics.Vulkan.Constants.VkPipelineCacheHeaderVersion
- Graphics.Vulkan.Constants: instance GHC.Read.Read Graphics.Vulkan.Constants.VkPipelineCacheHeaderVersion
- Graphics.Vulkan.Constants: instance GHC.Show.Show Graphics.Vulkan.Constants.VkPipelineCacheHeaderVersion
- Graphics.Vulkan.Constants: newtype VkPipelineCacheHeaderVersion
- Graphics.Vulkan.Constants: type VK_FALSE = 0
- Graphics.Vulkan.Constants: type VK_MAX_DESCRIPTION_SIZE = 256
- Graphics.Vulkan.Constants: type VK_MAX_EXTENSION_NAME_SIZE = 256
- Graphics.Vulkan.Constants: type VK_MAX_MEMORY_HEAPS = 16
- Graphics.Vulkan.Constants: type VK_MAX_MEMORY_TYPES = 32
- Graphics.Vulkan.Constants: type VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256
- Graphics.Vulkan.Constants: type VK_TRUE = 1
- Graphics.Vulkan.Constants: type VK_UUID_SIZE = 16
- Graphics.Vulkan.Core: VkBool32 :: Word32 -> VkBool32
- Graphics.Vulkan.Core: VkDeviceSize :: Word64 -> VkDeviceSize
- Graphics.Vulkan.Core: VkExtent2D :: Word32 -> Word32 -> VkExtent2D
- Graphics.Vulkan.Core: VkExtent3D :: Word32 -> Word32 -> Word32 -> VkExtent3D
- Graphics.Vulkan.Core: VkFormat :: Int32 -> VkFormat
- Graphics.Vulkan.Core: VkOffset2D :: Int32 -> Int32 -> VkOffset2D
- Graphics.Vulkan.Core: VkOffset3D :: Int32 -> Int32 -> Int32 -> VkOffset3D
- Graphics.Vulkan.Core: VkRect2D :: VkOffset2D -> VkExtent2D -> VkRect2D
- Graphics.Vulkan.Core: VkRect3D :: VkOffset3D -> VkExtent3D -> VkRect3D
- Graphics.Vulkan.Core: VkResult :: Int32 -> VkResult
- Graphics.Vulkan.Core: VkSharingMode :: Int32 -> VkSharingMode
- Graphics.Vulkan.Core: VkStructureType :: Int32 -> VkStructureType
- Graphics.Vulkan.Core: VkViewport :: CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> VkViewport
- Graphics.Vulkan.Core: [$sel:vkDepth:VkExtent3D] :: VkExtent3D -> Word32
- Graphics.Vulkan.Core: [$sel:vkExtent:VkRect2D] :: VkRect2D -> VkExtent2D
- Graphics.Vulkan.Core: [$sel:vkExtent:VkRect3D] :: VkRect3D -> VkExtent3D
- Graphics.Vulkan.Core: [$sel:vkHeight:VkExtent2D] :: VkExtent2D -> Word32
- Graphics.Vulkan.Core: [$sel:vkHeight:VkExtent3D] :: VkExtent3D -> Word32
- Graphics.Vulkan.Core: [$sel:vkHeight:VkViewport] :: VkViewport -> CFloat
- Graphics.Vulkan.Core: [$sel:vkMaxDepth:VkViewport] :: VkViewport -> CFloat
- Graphics.Vulkan.Core: [$sel:vkMinDepth:VkViewport] :: VkViewport -> CFloat
- Graphics.Vulkan.Core: [$sel:vkOffset:VkRect2D] :: VkRect2D -> VkOffset2D
- Graphics.Vulkan.Core: [$sel:vkOffset:VkRect3D] :: VkRect3D -> VkOffset3D
- Graphics.Vulkan.Core: [$sel:vkWidth:VkExtent2D] :: VkExtent2D -> Word32
- Graphics.Vulkan.Core: [$sel:vkWidth:VkExtent3D] :: VkExtent3D -> Word32
- Graphics.Vulkan.Core: [$sel:vkWidth:VkViewport] :: VkViewport -> CFloat
- Graphics.Vulkan.Core: [$sel:vkX:VkOffset2D] :: VkOffset2D -> Int32
- Graphics.Vulkan.Core: [$sel:vkX:VkOffset3D] :: VkOffset3D -> Int32
- Graphics.Vulkan.Core: [$sel:vkX:VkViewport] :: VkViewport -> CFloat
- Graphics.Vulkan.Core: [$sel:vkY:VkOffset2D] :: VkOffset2D -> Int32
- Graphics.Vulkan.Core: [$sel:vkY:VkOffset3D] :: VkOffset3D -> Int32
- Graphics.Vulkan.Core: [$sel:vkY:VkViewport] :: VkViewport -> CFloat
- Graphics.Vulkan.Core: [$sel:vkZ:VkOffset3D] :: VkOffset3D -> Int32
- Graphics.Vulkan.Core: data VkExtent2D
- Graphics.Vulkan.Core: data VkExtent3D
- Graphics.Vulkan.Core: data VkOffset2D
- Graphics.Vulkan.Core: data VkOffset3D
- Graphics.Vulkan.Core: data VkRect2D
- Graphics.Vulkan.Core: data VkRect3D
- Graphics.Vulkan.Core: data VkViewport
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkBool32
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkDeviceSize
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkExtent2D
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkExtent3D
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkFormat
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkOffset2D
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkOffset3D
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkRect2D
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkRect3D
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkResult
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkSharingMode
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkStructureType
- Graphics.Vulkan.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core.VkViewport
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkBool32
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkDeviceSize
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkExtent2D
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkExtent3D
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkFormat
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkOffset2D
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkOffset3D
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkRect2D
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkRect3D
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkResult
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkSharingMode
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkStructureType
- Graphics.Vulkan.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core.VkViewport
- Graphics.Vulkan.Core: instance GHC.Read.Read Graphics.Vulkan.Core.VkFormat
- Graphics.Vulkan.Core: instance GHC.Read.Read Graphics.Vulkan.Core.VkResult
- Graphics.Vulkan.Core: instance GHC.Read.Read Graphics.Vulkan.Core.VkSharingMode
- Graphics.Vulkan.Core: instance GHC.Read.Read Graphics.Vulkan.Core.VkStructureType
- Graphics.Vulkan.Core: instance GHC.Show.Show Graphics.Vulkan.Core.VkFormat
- Graphics.Vulkan.Core: instance GHC.Show.Show Graphics.Vulkan.Core.VkResult
- Graphics.Vulkan.Core: instance GHC.Show.Show Graphics.Vulkan.Core.VkSharingMode
- Graphics.Vulkan.Core: instance GHC.Show.Show Graphics.Vulkan.Core.VkStructureType
- Graphics.Vulkan.Core: newtype VkBool32
- Graphics.Vulkan.Core: newtype VkDeviceSize
- Graphics.Vulkan.Core: newtype VkFormat
- Graphics.Vulkan.Core: newtype VkResult
- Graphics.Vulkan.Core: newtype VkSharingMode
- Graphics.Vulkan.Core: newtype VkStructureType
- Graphics.Vulkan.Core: type VkFlags = Word32
- Graphics.Vulkan.DescriptorSet: VkCopyDescriptorSet :: VkStructureType -> Ptr Void -> VkDescriptorSet -> Word32 -> Word32 -> VkDescriptorSet -> Word32 -> Word32 -> Word32 -> VkCopyDescriptorSet
- Graphics.Vulkan.DescriptorSet: VkDescriptorBufferInfo :: VkBuffer -> VkDeviceSize -> VkDeviceSize -> VkDescriptorBufferInfo
- Graphics.Vulkan.DescriptorSet: VkDescriptorImageInfo :: VkSampler -> VkImageView -> VkImageLayout -> VkDescriptorImageInfo
- Graphics.Vulkan.DescriptorSet: VkDescriptorPool :: Word64 -> VkDescriptorPool
- Graphics.Vulkan.DescriptorSet: VkDescriptorPoolCreateFlagBits :: VkFlags -> VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: VkDescriptorPoolCreateInfo :: VkStructureType -> Ptr Void -> VkDescriptorPoolCreateFlags -> Word32 -> Word32 -> Ptr VkDescriptorPoolSize -> VkDescriptorPoolCreateInfo
- Graphics.Vulkan.DescriptorSet: VkDescriptorPoolResetFlags :: VkFlags -> VkDescriptorPoolResetFlags
- Graphics.Vulkan.DescriptorSet: VkDescriptorPoolSize :: VkDescriptorType -> Word32 -> VkDescriptorPoolSize
- Graphics.Vulkan.DescriptorSet: VkDescriptorSet :: Word64 -> VkDescriptorSet
- Graphics.Vulkan.DescriptorSet: VkDescriptorSetAllocateInfo :: VkStructureType -> Ptr Void -> VkDescriptorPool -> Word32 -> Ptr VkDescriptorSetLayout -> VkDescriptorSetAllocateInfo
- Graphics.Vulkan.DescriptorSet: VkDescriptorSetLayout :: Word64 -> VkDescriptorSetLayout
- Graphics.Vulkan.DescriptorSet: VkDescriptorSetLayoutBinding :: Word32 -> VkDescriptorType -> Word32 -> VkShaderStageFlags -> Ptr VkSampler -> VkDescriptorSetLayoutBinding
- Graphics.Vulkan.DescriptorSet: VkDescriptorSetLayoutCreateFlags :: VkFlags -> VkDescriptorSetLayoutCreateFlags
- Graphics.Vulkan.DescriptorSet: VkDescriptorSetLayoutCreateInfo :: VkStructureType -> Ptr Void -> VkDescriptorSetLayoutCreateFlags -> Word32 -> Ptr VkDescriptorSetLayoutBinding -> VkDescriptorSetLayoutCreateInfo
- Graphics.Vulkan.DescriptorSet: VkDescriptorType :: Int32 -> VkDescriptorType
- Graphics.Vulkan.DescriptorSet: VkWriteDescriptorSet :: VkStructureType -> Ptr Void -> VkDescriptorSet -> Word32 -> Word32 -> Word32 -> VkDescriptorType -> Ptr VkDescriptorImageInfo -> Ptr VkDescriptorBufferInfo -> Ptr VkBufferView -> VkWriteDescriptorSet
- Graphics.Vulkan.DescriptorSet: [$sel:vkBinding:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkBindingCount:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkBuffer:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkBuffer
- Graphics.Vulkan.DescriptorSet: [$sel:vkDescriptorCount:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDescriptorCount:VkDescriptorPoolSize] :: VkDescriptorPoolSize -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDescriptorCount:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDescriptorCount:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDescriptorPool:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> VkDescriptorPool
- Graphics.Vulkan.DescriptorSet: [$sel:vkDescriptorSetCount:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDescriptorType:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> VkDescriptorType
- Graphics.Vulkan.DescriptorSet: [$sel:vkDescriptorType:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkDescriptorType
- Graphics.Vulkan.DescriptorSet: [$sel:vkDstArrayElement:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDstArrayElement:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDstBinding:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDstBinding:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkDstSet:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkDescriptorSet
- Graphics.Vulkan.DescriptorSet: [$sel:vkDstSet:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkDescriptorSet
- Graphics.Vulkan.DescriptorSet: [$sel:vkFlags:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> VkDescriptorPoolCreateFlags
- Graphics.Vulkan.DescriptorSet: [$sel:vkFlags:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> VkDescriptorSetLayoutCreateFlags
- Graphics.Vulkan.DescriptorSet: [$sel:vkImageLayout:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkImageLayout
- Graphics.Vulkan.DescriptorSet: [$sel:vkImageView:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkImageView
- Graphics.Vulkan.DescriptorSet: [$sel:vkMaxSets:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkOffset:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkDeviceSize
- Graphics.Vulkan.DescriptorSet: [$sel:vkPBindings:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Ptr VkDescriptorSetLayoutBinding
- Graphics.Vulkan.DescriptorSet: [$sel:vkPBufferInfo:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkDescriptorBufferInfo
- Graphics.Vulkan.DescriptorSet: [$sel:vkPImageInfo:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkDescriptorImageInfo
- Graphics.Vulkan.DescriptorSet: [$sel:vkPImmutableSamplers:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Ptr VkSampler
- Graphics.Vulkan.DescriptorSet: [$sel:vkPNext:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Ptr Void
- Graphics.Vulkan.DescriptorSet: [$sel:vkPNext:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Ptr Void
- Graphics.Vulkan.DescriptorSet: [$sel:vkPNext:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Ptr Void
- Graphics.Vulkan.DescriptorSet: [$sel:vkPNext:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Ptr Void
- Graphics.Vulkan.DescriptorSet: [$sel:vkPNext:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr Void
- Graphics.Vulkan.DescriptorSet: [$sel:vkPPoolSizes:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Ptr VkDescriptorPoolSize
- Graphics.Vulkan.DescriptorSet: [$sel:vkPSetLayouts:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Ptr VkDescriptorSetLayout
- Graphics.Vulkan.DescriptorSet: [$sel:vkPTexelBufferView:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkBufferView
- Graphics.Vulkan.DescriptorSet: [$sel:vkPoolSizeCount:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkRange:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkDeviceSize
- Graphics.Vulkan.DescriptorSet: [$sel:vkSType:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkStructureType
- Graphics.Vulkan.DescriptorSet: [$sel:vkSType:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> VkStructureType
- Graphics.Vulkan.DescriptorSet: [$sel:vkSType:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> VkStructureType
- Graphics.Vulkan.DescriptorSet: [$sel:vkSType:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> VkStructureType
- Graphics.Vulkan.DescriptorSet: [$sel:vkSType:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkStructureType
- Graphics.Vulkan.DescriptorSet: [$sel:vkSampler:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkSampler
- Graphics.Vulkan.DescriptorSet: [$sel:vkSrcArrayElement:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkSrcBinding:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
- Graphics.Vulkan.DescriptorSet: [$sel:vkSrcSet:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkDescriptorSet
- Graphics.Vulkan.DescriptorSet: [$sel:vkStageFlags:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> VkShaderStageFlags
- Graphics.Vulkan.DescriptorSet: [$sel:vkType:VkDescriptorPoolSize] :: VkDescriptorPoolSize -> VkDescriptorType
- Graphics.Vulkan.DescriptorSet: data VkCopyDescriptorSet
- Graphics.Vulkan.DescriptorSet: data VkDescriptorBufferInfo
- Graphics.Vulkan.DescriptorSet: data VkDescriptorImageInfo
- Graphics.Vulkan.DescriptorSet: data VkDescriptorPoolCreateInfo
- Graphics.Vulkan.DescriptorSet: data VkDescriptorPoolSize
- Graphics.Vulkan.DescriptorSet: data VkDescriptorSetAllocateInfo
- Graphics.Vulkan.DescriptorSet: data VkDescriptorSetLayoutBinding
- Graphics.Vulkan.DescriptorSet: data VkDescriptorSetLayoutCreateInfo
- Graphics.Vulkan.DescriptorSet: data VkWriteDescriptorSet
- Graphics.Vulkan.DescriptorSet: instance Data.Bits.Bits Graphics.Vulkan.DescriptorSet.VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: instance Data.Bits.FiniteBits Graphics.Vulkan.DescriptorSet.VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkCopyDescriptorSet
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorBufferInfo
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorImageInfo
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorPool
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorPoolCreateInfo
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorPoolResetFlags
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorPoolSize
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorSet
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorSetAllocateInfo
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorSetLayout
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorSetLayoutBinding
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorSetLayoutCreateFlags
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorSetLayoutCreateInfo
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkDescriptorType
- Graphics.Vulkan.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.DescriptorSet.VkWriteDescriptorSet
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkCopyDescriptorSet
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorBufferInfo
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorImageInfo
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorPool
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorPoolCreateInfo
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorPoolResetFlags
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorPoolSize
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorSet
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorSetAllocateInfo
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorSetLayout
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorSetLayoutBinding
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorSetLayoutCreateFlags
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorSetLayoutCreateInfo
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkDescriptorType
- Graphics.Vulkan.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.DescriptorSet.VkWriteDescriptorSet
- Graphics.Vulkan.DescriptorSet: instance GHC.Read.Read Graphics.Vulkan.DescriptorSet.VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: instance GHC.Read.Read Graphics.Vulkan.DescriptorSet.VkDescriptorType
- Graphics.Vulkan.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.DescriptorSet.VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.DescriptorSet.VkDescriptorType
- Graphics.Vulkan.DescriptorSet: newtype VkDescriptorPool
- Graphics.Vulkan.DescriptorSet: newtype VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: newtype VkDescriptorPoolResetFlags
- Graphics.Vulkan.DescriptorSet: newtype VkDescriptorSet
- Graphics.Vulkan.DescriptorSet: newtype VkDescriptorSetLayout
- Graphics.Vulkan.DescriptorSet: newtype VkDescriptorSetLayoutCreateFlags
- Graphics.Vulkan.DescriptorSet: newtype VkDescriptorType
- Graphics.Vulkan.DescriptorSet: type VkDescriptorPoolCreateFlags = VkDescriptorPoolCreateFlagBits
- Graphics.Vulkan.DescriptorSet: vkAllocateDescriptorSets :: VkDevice -> Ptr VkDescriptorSetAllocateInfo -> Ptr VkDescriptorSet -> IO VkResult
- Graphics.Vulkan.DescriptorSet: vkCreateDescriptorPool :: VkDevice -> Ptr VkDescriptorPoolCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkDescriptorPool -> IO VkResult
- Graphics.Vulkan.DescriptorSet: vkCreateDescriptorSetLayout :: VkDevice -> Ptr VkDescriptorSetLayoutCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkDescriptorSetLayout -> IO VkResult
- Graphics.Vulkan.DescriptorSet: vkDestroyDescriptorPool :: VkDevice -> VkDescriptorPool -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.DescriptorSet: vkDestroyDescriptorSetLayout :: VkDevice -> VkDescriptorSetLayout -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.DescriptorSet: vkFreeDescriptorSets :: VkDevice -> VkDescriptorPool -> Word32 -> Ptr VkDescriptorSet -> IO VkResult
- Graphics.Vulkan.DescriptorSet: vkResetDescriptorPool :: VkDevice -> VkDescriptorPool -> VkDescriptorPoolResetFlags -> IO VkResult
- Graphics.Vulkan.DescriptorSet: vkUpdateDescriptorSets :: VkDevice -> Word32 -> Ptr VkWriteDescriptorSet -> Word32 -> Ptr VkCopyDescriptorSet -> IO ()
- Graphics.Vulkan.Device: VkDeviceCreateFlags :: VkFlags -> VkDeviceCreateFlags
- Graphics.Vulkan.Device: VkDeviceCreateInfo :: VkStructureType -> Ptr Void -> VkDeviceCreateFlags -> Word32 -> Ptr VkDeviceQueueCreateInfo -> Word32 -> Ptr (Ptr CChar) -> Word32 -> Ptr (Ptr CChar) -> Ptr VkPhysicalDeviceFeatures -> VkDeviceCreateInfo
- Graphics.Vulkan.Device: VkDeviceQueueCreateFlags :: VkFlags -> VkDeviceQueueCreateFlags
- Graphics.Vulkan.Device: VkDeviceQueueCreateInfo :: VkStructureType -> Ptr Void -> VkDeviceQueueCreateFlags -> Word32 -> Word32 -> Ptr CFloat -> VkDeviceQueueCreateInfo
- Graphics.Vulkan.Device: VkPhysicalDeviceFeatures :: VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceFeatures
- Graphics.Vulkan.Device: [$sel:vkAlphaToOne:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkDepthBiasClamp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkDepthBounds:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkDepthClamp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkDrawIndirectFirstInstance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkDualSrcBlend:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkEnabledExtensionCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32
- Graphics.Vulkan.Device: [$sel:vkEnabledLayerCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32
- Graphics.Vulkan.Device: [$sel:vkFillModeNonSolid:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkFlags:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> VkDeviceCreateFlags
- Graphics.Vulkan.Device: [$sel:vkFlags:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> VkDeviceQueueCreateFlags
- Graphics.Vulkan.Device: [$sel:vkFragmentStoresAndAtomics:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkFullDrawIndexUint32:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkGeometryShader:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkImageCubeArray:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkIndependentBlend:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkInheritedQueries:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkLargePoints:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkLogicOp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkMultiDrawIndirect:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkMultiViewport:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkOcclusionQueryPrecise:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkPEnabledFeatures:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr VkPhysicalDeviceFeatures
- Graphics.Vulkan.Device: [$sel:vkPNext:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr Void
- Graphics.Vulkan.Device: [$sel:vkPNext:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Ptr Void
- Graphics.Vulkan.Device: [$sel:vkPQueueCreateInfos:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr VkDeviceQueueCreateInfo
- Graphics.Vulkan.Device: [$sel:vkPQueuePriorities:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Ptr CFloat
- Graphics.Vulkan.Device: [$sel:vkPipelineStatisticsQuery:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkPpEnabledExtensionNames:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr (Ptr CChar)
- Graphics.Vulkan.Device: [$sel:vkPpEnabledLayerNames:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr (Ptr CChar)
- Graphics.Vulkan.Device: [$sel:vkQueueCount:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Word32
- Graphics.Vulkan.Device: [$sel:vkQueueCreateInfoCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32
- Graphics.Vulkan.Device: [$sel:vkQueueFamilyIndex:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Word32
- Graphics.Vulkan.Device: [$sel:vkRobustBufferAccess:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSType:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> VkStructureType
- Graphics.Vulkan.Device: [$sel:vkSType:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> VkStructureType
- Graphics.Vulkan.Device: [$sel:vkSampleRateShading:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSamplerAnisotropy:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderClipDistance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderCullDistance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderFloat64:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderImageGatherExtended:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderInt16:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderInt64:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderResourceMinLod:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderResourceResidency:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderSampledImageArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderStorageBufferArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderStorageImageArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderStorageImageExtendedFormats:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderStorageImageMultisample:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderStorageImageReadWithoutFormat:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderStorageImageWriteWithoutFormat:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderTessellationAndGeometryPointSize:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkShaderUniformBufferArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseBinding:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseResidency16Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseResidency2Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseResidency4Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseResidency8Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseResidencyAliased:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseResidencyBuffer:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseResidencyImage2D:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkSparseResidencyImage3D:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkTessellationShader:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkTextureCompressionASTC_LDR:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkTextureCompressionBC:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkTextureCompressionETC2:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkVariableMultisampleRate:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkVertexPipelineStoresAndAtomics:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: [$sel:vkWideLines:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
- Graphics.Vulkan.Device: data VkDeviceCreateInfo
- Graphics.Vulkan.Device: data VkDeviceQueueCreateInfo
- Graphics.Vulkan.Device: data VkDevice_T
- Graphics.Vulkan.Device: data VkPhysicalDeviceFeatures
- Graphics.Vulkan.Device: data VkPhysicalDevice_T
- Graphics.Vulkan.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Device.VkDeviceCreateFlags
- Graphics.Vulkan.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Device.VkDeviceCreateInfo
- Graphics.Vulkan.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Device.VkDeviceQueueCreateFlags
- Graphics.Vulkan.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Device.VkDeviceQueueCreateInfo
- Graphics.Vulkan.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Device.VkPhysicalDeviceFeatures
- Graphics.Vulkan.Device: instance GHC.Classes.Eq Graphics.Vulkan.Device.VkDeviceCreateFlags
- Graphics.Vulkan.Device: instance GHC.Classes.Eq Graphics.Vulkan.Device.VkDeviceCreateInfo
- Graphics.Vulkan.Device: instance GHC.Classes.Eq Graphics.Vulkan.Device.VkDeviceQueueCreateFlags
- Graphics.Vulkan.Device: instance GHC.Classes.Eq Graphics.Vulkan.Device.VkDeviceQueueCreateInfo
- Graphics.Vulkan.Device: instance GHC.Classes.Eq Graphics.Vulkan.Device.VkPhysicalDeviceFeatures
- Graphics.Vulkan.Device: newtype VkDeviceCreateFlags
- Graphics.Vulkan.Device: newtype VkDeviceQueueCreateFlags
- Graphics.Vulkan.Device: type VkDevice = Ptr VkDevice_T
- Graphics.Vulkan.Device: type VkPhysicalDevice = Ptr VkPhysicalDevice_T
- Graphics.Vulkan.Device: vkCreateDevice :: VkPhysicalDevice -> Ptr VkDeviceCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkDevice -> IO VkResult
- Graphics.Vulkan.Device: vkDestroyDevice :: VkDevice -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.DeviceInitialization: VkApplicationInfo :: VkStructureType -> Ptr Void -> Ptr CChar -> Word32 -> Ptr CChar -> Word32 -> Word32 -> VkApplicationInfo
- Graphics.Vulkan.DeviceInitialization: VkFormatFeatureFlagBits :: VkFlags -> VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: VkFormatProperties :: VkFormatFeatureFlags -> VkFormatFeatureFlags -> VkFormatFeatureFlags -> VkFormatProperties
- Graphics.Vulkan.DeviceInitialization: VkImageFormatProperties :: VkExtent3D -> Word32 -> Word32 -> VkSampleCountFlags -> VkDeviceSize -> VkImageFormatProperties
- Graphics.Vulkan.DeviceInitialization: VkInstanceCreateFlags :: VkFlags -> VkInstanceCreateFlags
- Graphics.Vulkan.DeviceInitialization: VkInstanceCreateInfo :: VkStructureType -> Ptr Void -> VkInstanceCreateFlags -> Ptr VkApplicationInfo -> Word32 -> Ptr (Ptr CChar) -> Word32 -> Ptr (Ptr CChar) -> VkInstanceCreateInfo
- Graphics.Vulkan.DeviceInitialization: VkMemoryHeap :: VkDeviceSize -> VkMemoryHeapFlags -> VkMemoryHeap
- Graphics.Vulkan.DeviceInitialization: VkMemoryHeapFlagBits :: VkFlags -> VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: VkMemoryPropertyFlagBits :: VkFlags -> VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: VkMemoryType :: VkMemoryPropertyFlags -> Word32 -> VkMemoryType
- Graphics.Vulkan.DeviceInitialization: VkPhysicalDeviceLimits :: Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkDeviceSize -> VkDeviceSize -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Vector 3 Word32 -> Word32 -> Vector 3 Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> CFloat -> CFloat -> Word32 -> Vector 2 Word32 -> Vector 2 CFloat -> Word32 -> CSize -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> Int32 -> Word32 -> Int32 -> Word32 -> CFloat -> CFloat -> Word32 -> Word32 -> Word32 -> Word32 -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> Word32 -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> Word32 -> VkBool32 -> CFloat -> Word32 -> Word32 -> Word32 -> Word32 -> Vector 2 CFloat -> Vector 2 CFloat -> CFloat -> CFloat -> VkBool32 -> VkBool32 -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkPhysicalDeviceLimits
- Graphics.Vulkan.DeviceInitialization: VkPhysicalDeviceMemoryProperties :: Word32 -> Vector VK_MAX_MEMORY_TYPES VkMemoryType -> Word32 -> Vector VK_MAX_MEMORY_HEAPS VkMemoryHeap -> VkPhysicalDeviceMemoryProperties
- Graphics.Vulkan.DeviceInitialization: VkPhysicalDeviceProperties :: Word32 -> Word32 -> Word32 -> Word32 -> VkPhysicalDeviceType -> Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar -> Vector VK_UUID_SIZE Word8 -> VkPhysicalDeviceLimits -> VkPhysicalDeviceSparseProperties -> VkPhysicalDeviceProperties
- Graphics.Vulkan.DeviceInitialization: VkPhysicalDeviceSparseProperties :: VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceSparseProperties
- Graphics.Vulkan.DeviceInitialization: VkPhysicalDeviceType :: Int32 -> VkPhysicalDeviceType
- Graphics.Vulkan.DeviceInitialization: VkQueueFamilyProperties :: VkQueueFlags -> Word32 -> Word32 -> VkExtent3D -> VkQueueFamilyProperties
- Graphics.Vulkan.DeviceInitialization: VkQueueFlagBits :: VkFlags -> VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: [$sel:vkApiVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkApiVersion:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkApplicationVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkBufferFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkBufferImageGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkDeviceID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkDeviceName:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar
- Graphics.Vulkan.DeviceInitialization: [$sel:vkDeviceType:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceType
- Graphics.Vulkan.DeviceInitialization: [$sel:vkDiscreteQueuePriorities:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkDriverVersion:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkEnabledExtensionCount:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkEnabledLayerCount:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkEngineVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkFlags:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> VkInstanceCreateFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkFlags:VkMemoryHeap] :: VkMemoryHeap -> VkMemoryHeapFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkFramebufferColorSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkFramebufferDepthSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkFramebufferNoAttachmentsSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkFramebufferStencilSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkHeapIndex:VkMemoryType] :: VkMemoryType -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkLimits:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceLimits
- Graphics.Vulkan.DeviceInitialization: [$sel:vkLineWidthGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkLineWidthRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkLinearTilingFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxArrayLayers:VkImageFormatProperties] :: VkImageFormatProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxBoundDescriptorSets:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxClipDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxColorAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxCombinedClipAndCullDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxComputeSharedMemorySize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxComputeWorkGroupCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 3 Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxComputeWorkGroupInvocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxComputeWorkGroupSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 3 Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxCullDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDescriptorSetInputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDescriptorSetSampledImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDescriptorSetSamplers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDescriptorSetStorageBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDescriptorSetStorageBuffersDynamic:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDescriptorSetStorageImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDescriptorSetUniformBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDescriptorSetUniformBuffersDynamic:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDrawIndexedIndexValue:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxDrawIndirectCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxExtent:VkImageFormatProperties] :: VkImageFormatProperties -> VkExtent3D
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxFragmentCombinedOutputResources:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxFragmentDualSrcAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxFragmentInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxFragmentOutputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxFramebufferHeight:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxFramebufferLayers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxFramebufferWidth:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxGeometryInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxGeometryOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxGeometryOutputVertices:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxGeometryShaderInvocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxGeometryTotalOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxImageArrayLayers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxImageDimension1D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxImageDimension2D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxImageDimension3D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxImageDimensionCube:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxInterpolationOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxMemoryAllocationCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxMipLevels:VkImageFormatProperties] :: VkImageFormatProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxPerStageDescriptorInputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxPerStageDescriptorSampledImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxPerStageDescriptorSamplers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxPerStageDescriptorStorageBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxPerStageDescriptorStorageImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxPerStageDescriptorUniformBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxPerStageResources:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxPushConstantsSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxResourceSize:VkImageFormatProperties] :: VkImageFormatProperties -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxSampleMaskWords:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxSamplerAllocationCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxSamplerAnisotropy:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxSamplerLodBias:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxStorageBufferRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTessellationControlPerPatchOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTessellationControlPerVertexInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTessellationControlPerVertexOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTessellationControlTotalOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTessellationEvaluationInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTessellationEvaluationOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTessellationGenerationLevel:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTessellationPatchSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTexelBufferElements:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTexelGatherOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxTexelOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxUniformBufferRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxVertexInputAttributeOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxVertexInputAttributes:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxVertexInputBindingStride:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxVertexInputBindings:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxVertexOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxViewportDimensions:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMaxViewports:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMemoryHeapCount:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMemoryHeaps:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Vector VK_MAX_MEMORY_HEAPS VkMemoryHeap
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMemoryTypeCount:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMemoryTypes:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Vector VK_MAX_MEMORY_TYPES VkMemoryType
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMinImageTransferGranularity:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> VkExtent3D
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMinInterpolationOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMinMemoryMapAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMinStorageBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMinTexelBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMinTexelGatherOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Int32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMinTexelOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Int32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMinUniformBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkMipmapPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkNonCoherentAtomSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkOptimalBufferCopyOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkOptimalBufferCopyRowPitchAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkOptimalTilingFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPApplicationInfo:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr VkApplicationInfo
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPApplicationName:VkApplicationInfo] :: VkApplicationInfo -> Ptr CChar
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPEngineName:VkApplicationInfo] :: VkApplicationInfo -> Ptr CChar
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPNext:VkApplicationInfo] :: VkApplicationInfo -> Ptr Void
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPNext:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr Void
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPipelineCacheUUID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Vector VK_UUID_SIZE Word8
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPointSizeGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPointSizeRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPpEnabledExtensionNames:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr (Ptr CChar)
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPpEnabledLayerNames:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr (Ptr CChar)
- Graphics.Vulkan.DeviceInitialization: [$sel:vkPropertyFlags:VkMemoryType] :: VkMemoryType -> VkMemoryPropertyFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkQueueCount:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkQueueFlags:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> VkQueueFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkResidencyAlignedMipSize:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkResidencyNonResidentStrict:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkResidencyStandard2DBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkResidencyStandard2DMultisampleBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkResidencyStandard3DBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSType:VkApplicationInfo] :: VkApplicationInfo -> VkStructureType
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSType:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> VkStructureType
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSampleCounts:VkImageFormatProperties] :: VkImageFormatProperties -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSampledImageColorSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSampledImageDepthSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSampledImageIntegerSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSampledImageStencilSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSize:VkMemoryHeap] :: VkMemoryHeap -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSparseAddressSpaceSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSparseProperties:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceSparseProperties
- Graphics.Vulkan.DeviceInitialization: [$sel:vkStandardSampleLocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkStorageImageSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
- Graphics.Vulkan.DeviceInitialization: [$sel:vkStrictLines:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSubPixelInterpolationOffsetBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSubPixelPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkSubTexelPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkTimestampComputeAndGraphics:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkTimestampPeriod:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkTimestampValidBits:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkVendorID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32
- Graphics.Vulkan.DeviceInitialization: [$sel:vkViewportBoundsRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat
- Graphics.Vulkan.DeviceInitialization: [$sel:vkViewportSubPixelBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
- Graphics.Vulkan.DeviceInitialization: data VkApplicationInfo
- Graphics.Vulkan.DeviceInitialization: data VkFormatProperties
- Graphics.Vulkan.DeviceInitialization: data VkImageFormatProperties
- Graphics.Vulkan.DeviceInitialization: data VkInstanceCreateInfo
- Graphics.Vulkan.DeviceInitialization: data VkInstance_T
- Graphics.Vulkan.DeviceInitialization: data VkMemoryHeap
- Graphics.Vulkan.DeviceInitialization: data VkMemoryType
- Graphics.Vulkan.DeviceInitialization: data VkPhysicalDeviceLimits
- Graphics.Vulkan.DeviceInitialization: data VkPhysicalDeviceMemoryProperties
- Graphics.Vulkan.DeviceInitialization: data VkPhysicalDeviceProperties
- Graphics.Vulkan.DeviceInitialization: data VkPhysicalDeviceSparseProperties
- Graphics.Vulkan.DeviceInitialization: data VkQueueFamilyProperties
- Graphics.Vulkan.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.DeviceInitialization.VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.DeviceInitialization.VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.DeviceInitialization.VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.DeviceInitialization.VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.DeviceInitialization.VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.DeviceInitialization.VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.DeviceInitialization.VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.DeviceInitialization.VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkApplicationInfo
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkFormatProperties
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkImageFormatProperties
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkInstanceCreateFlags
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkInstanceCreateInfo
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkMemoryHeap
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkMemoryType
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceLimits
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceMemoryProperties
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceProperties
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceSparseProperties
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceType
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkQueueFamilyProperties
- Graphics.Vulkan.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.DeviceInitialization.VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkApplicationInfo
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkFormatProperties
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkImageFormatProperties
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkInstanceCreateFlags
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkInstanceCreateInfo
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkMemoryHeap
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkMemoryType
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceLimits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceMemoryProperties
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceProperties
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceSparseProperties
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceType
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkQueueFamilyProperties
- Graphics.Vulkan.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.DeviceInitialization.VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.DeviceInitialization.VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.DeviceInitialization.VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.DeviceInitialization.VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceType
- Graphics.Vulkan.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.DeviceInitialization.VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.DeviceInitialization.VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.DeviceInitialization.VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.DeviceInitialization.VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.DeviceInitialization.VkPhysicalDeviceType
- Graphics.Vulkan.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.DeviceInitialization.VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: newtype VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: newtype VkInstanceCreateFlags
- Graphics.Vulkan.DeviceInitialization: newtype VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: newtype VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: newtype VkPhysicalDeviceType
- Graphics.Vulkan.DeviceInitialization: newtype VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: type PFN_vkVoidFunction = FunPtr (IO ())
- Graphics.Vulkan.DeviceInitialization: type VkFormatFeatureFlags = VkFormatFeatureFlagBits
- Graphics.Vulkan.DeviceInitialization: type VkInstance = Ptr VkInstance_T
- Graphics.Vulkan.DeviceInitialization: type VkMemoryHeapFlags = VkMemoryHeapFlagBits
- Graphics.Vulkan.DeviceInitialization: type VkMemoryPropertyFlags = VkMemoryPropertyFlagBits
- Graphics.Vulkan.DeviceInitialization: type VkQueueFlags = VkQueueFlagBits
- Graphics.Vulkan.DeviceInitialization: vkCreateInstance :: Ptr VkInstanceCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkInstance -> IO VkResult
- Graphics.Vulkan.DeviceInitialization: vkDestroyInstance :: VkInstance -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.DeviceInitialization: vkEnumeratePhysicalDevices :: VkInstance -> Ptr Word32 -> Ptr VkPhysicalDevice -> IO VkResult
- Graphics.Vulkan.DeviceInitialization: vkGetDeviceProcAddr :: VkDevice -> Ptr CChar -> IO PFN_vkVoidFunction
- Graphics.Vulkan.DeviceInitialization: vkGetInstanceProcAddr :: VkInstance -> Ptr CChar -> IO PFN_vkVoidFunction
- Graphics.Vulkan.DeviceInitialization: vkGetPhysicalDeviceFeatures :: VkPhysicalDevice -> Ptr VkPhysicalDeviceFeatures -> IO ()
- Graphics.Vulkan.DeviceInitialization: vkGetPhysicalDeviceFormatProperties :: VkPhysicalDevice -> VkFormat -> Ptr VkFormatProperties -> IO ()
- Graphics.Vulkan.DeviceInitialization: vkGetPhysicalDeviceImageFormatProperties :: VkPhysicalDevice -> VkFormat -> VkImageType -> VkImageTiling -> VkImageUsageFlags -> VkImageCreateFlags -> Ptr VkImageFormatProperties -> IO VkResult
- Graphics.Vulkan.DeviceInitialization: vkGetPhysicalDeviceMemoryProperties :: VkPhysicalDevice -> Ptr VkPhysicalDeviceMemoryProperties -> IO ()
- Graphics.Vulkan.DeviceInitialization: vkGetPhysicalDeviceProperties :: VkPhysicalDevice -> Ptr VkPhysicalDeviceProperties -> IO ()
- Graphics.Vulkan.DeviceInitialization: vkGetPhysicalDeviceQueueFamilyProperties :: VkPhysicalDevice -> Ptr Word32 -> Ptr VkQueueFamilyProperties -> IO ()
- Graphics.Vulkan.EXT.DebugReport: VkDebugReportCallbackCreateInfoEXT :: VkStructureType -> Ptr Void -> VkDebugReportFlagsEXT -> PFN_vkDebugReportCallbackEXT -> Ptr Void -> VkDebugReportCallbackCreateInfoEXT
- Graphics.Vulkan.EXT.DebugReport: VkDebugReportCallbackEXT :: Word64 -> VkDebugReportCallbackEXT
- Graphics.Vulkan.EXT.DebugReport: VkDebugReportErrorEXT :: Int32 -> VkDebugReportErrorEXT
- Graphics.Vulkan.EXT.DebugReport: VkDebugReportFlagsEXT :: VkFlags -> VkDebugReportFlagsEXT
- Graphics.Vulkan.EXT.DebugReport: VkDebugReportObjectTypeEXT :: Int32 -> VkDebugReportObjectTypeEXT
- Graphics.Vulkan.EXT.DebugReport: [$sel:vkFlags:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> VkDebugReportFlagsEXT
- Graphics.Vulkan.EXT.DebugReport: [$sel:vkPNext:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> Ptr Void
- Graphics.Vulkan.EXT.DebugReport: [$sel:vkPUserData:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> Ptr Void
- Graphics.Vulkan.EXT.DebugReport: [$sel:vkPfnCallback:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> PFN_vkDebugReportCallbackEXT
- Graphics.Vulkan.EXT.DebugReport: [$sel:vkSType:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> VkStructureType
- Graphics.Vulkan.EXT.DebugReport: data VkDebugReportCallbackCreateInfoEXT
- Graphics.Vulkan.EXT.DebugReport: instance Foreign.Storable.Storable Graphics.Vulkan.EXT.DebugReport.VkDebugReportCallbackCreateInfoEXT
- Graphics.Vulkan.EXT.DebugReport: instance Foreign.Storable.Storable Graphics.Vulkan.EXT.DebugReport.VkDebugReportCallbackEXT
- Graphics.Vulkan.EXT.DebugReport: instance Foreign.Storable.Storable Graphics.Vulkan.EXT.DebugReport.VkDebugReportErrorEXT
- Graphics.Vulkan.EXT.DebugReport: instance Foreign.Storable.Storable Graphics.Vulkan.EXT.DebugReport.VkDebugReportFlagsEXT
- Graphics.Vulkan.EXT.DebugReport: instance Foreign.Storable.Storable Graphics.Vulkan.EXT.DebugReport.VkDebugReportObjectTypeEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Classes.Eq Graphics.Vulkan.EXT.DebugReport.VkDebugReportCallbackCreateInfoEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Classes.Eq Graphics.Vulkan.EXT.DebugReport.VkDebugReportCallbackEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Classes.Eq Graphics.Vulkan.EXT.DebugReport.VkDebugReportErrorEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Classes.Eq Graphics.Vulkan.EXT.DebugReport.VkDebugReportFlagsEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Classes.Eq Graphics.Vulkan.EXT.DebugReport.VkDebugReportObjectTypeEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Read.Read Graphics.Vulkan.EXT.DebugReport.VkDebugReportErrorEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Read.Read Graphics.Vulkan.EXT.DebugReport.VkDebugReportObjectTypeEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Show.Show Graphics.Vulkan.EXT.DebugReport.VkDebugReportErrorEXT
- Graphics.Vulkan.EXT.DebugReport: instance GHC.Show.Show Graphics.Vulkan.EXT.DebugReport.VkDebugReportObjectTypeEXT
- Graphics.Vulkan.EXT.DebugReport: newtype VkDebugReportCallbackEXT
- Graphics.Vulkan.EXT.DebugReport: newtype VkDebugReportErrorEXT
- Graphics.Vulkan.EXT.DebugReport: newtype VkDebugReportFlagsEXT
- Graphics.Vulkan.EXT.DebugReport: newtype VkDebugReportObjectTypeEXT
- Graphics.Vulkan.EXT.DebugReport: type PFN_vkDebugReportCallbackEXT = FunPtr (VkDebugReportFlagsEXT -> VkDebugReportObjectTypeEXT -> Word64 -> CSize -> Int32 -> Ptr CChar -> Ptr CChar -> Ptr Void -> IO VkBool32)
- Graphics.Vulkan.EXT.DebugReport: vkCreateDebugReportCallbackEXT :: VkInstance -> Ptr VkDebugReportCallbackCreateInfoEXT -> Ptr VkAllocationCallbacks -> Ptr VkDebugReportCallbackEXT -> IO VkResult
- Graphics.Vulkan.EXT.DebugReport: vkDebugReportMessageEXT :: VkInstance -> VkDebugReportFlagsEXT -> VkDebugReportObjectTypeEXT -> Word64 -> CSize -> Int32 -> Ptr CChar -> Ptr CChar -> IO ()
- Graphics.Vulkan.EXT.DebugReport: vkDestroyDebugReportCallbackEXT :: VkInstance -> VkDebugReportCallbackEXT -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Event: VkEvent :: Word64 -> VkEvent
- Graphics.Vulkan.Event: VkEventCreateFlags :: VkFlags -> VkEventCreateFlags
- Graphics.Vulkan.Event: VkEventCreateInfo :: VkStructureType -> Ptr Void -> VkEventCreateFlags -> VkEventCreateInfo
- Graphics.Vulkan.Event: [$sel:vkFlags:VkEventCreateInfo] :: VkEventCreateInfo -> VkEventCreateFlags
- Graphics.Vulkan.Event: [$sel:vkPNext:VkEventCreateInfo] :: VkEventCreateInfo -> Ptr Void
- Graphics.Vulkan.Event: [$sel:vkSType:VkEventCreateInfo] :: VkEventCreateInfo -> VkStructureType
- Graphics.Vulkan.Event: data VkEventCreateInfo
- Graphics.Vulkan.Event: instance Foreign.Storable.Storable Graphics.Vulkan.Event.VkEvent
- Graphics.Vulkan.Event: instance Foreign.Storable.Storable Graphics.Vulkan.Event.VkEventCreateFlags
- Graphics.Vulkan.Event: instance Foreign.Storable.Storable Graphics.Vulkan.Event.VkEventCreateInfo
- Graphics.Vulkan.Event: instance GHC.Classes.Eq Graphics.Vulkan.Event.VkEvent
- Graphics.Vulkan.Event: instance GHC.Classes.Eq Graphics.Vulkan.Event.VkEventCreateFlags
- Graphics.Vulkan.Event: instance GHC.Classes.Eq Graphics.Vulkan.Event.VkEventCreateInfo
- Graphics.Vulkan.Event: newtype VkEvent
- Graphics.Vulkan.Event: newtype VkEventCreateFlags
- Graphics.Vulkan.Event: vkCreateEvent :: VkDevice -> Ptr VkEventCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkEvent -> IO VkResult
- Graphics.Vulkan.Event: vkDestroyEvent :: VkDevice -> VkEvent -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Event: vkGetEventStatus :: VkDevice -> VkEvent -> IO VkResult
- Graphics.Vulkan.Event: vkResetEvent :: VkDevice -> VkEvent -> IO VkResult
- Graphics.Vulkan.Event: vkSetEvent :: VkDevice -> VkEvent -> IO VkResult
- Graphics.Vulkan.ExtensionDiscovery: VkExtensionProperties :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar -> Word32 -> VkExtensionProperties
- Graphics.Vulkan.ExtensionDiscovery: [$sel:vkExtensionName:VkExtensionProperties] :: VkExtensionProperties -> Vector VK_MAX_EXTENSION_NAME_SIZE CChar
- Graphics.Vulkan.ExtensionDiscovery: [$sel:vkSpecVersion:VkExtensionProperties] :: VkExtensionProperties -> Word32
- Graphics.Vulkan.ExtensionDiscovery: data VkExtensionProperties
- Graphics.Vulkan.ExtensionDiscovery: instance Foreign.Storable.Storable Graphics.Vulkan.ExtensionDiscovery.VkExtensionProperties
- Graphics.Vulkan.ExtensionDiscovery: instance GHC.Classes.Eq Graphics.Vulkan.ExtensionDiscovery.VkExtensionProperties
- Graphics.Vulkan.ExtensionDiscovery: vkEnumerateDeviceExtensionProperties :: VkPhysicalDevice -> Ptr CChar -> Ptr Word32 -> Ptr VkExtensionProperties -> IO VkResult
- Graphics.Vulkan.ExtensionDiscovery: vkEnumerateInstanceExtensionProperties :: Ptr CChar -> Ptr Word32 -> Ptr VkExtensionProperties -> IO VkResult
- Graphics.Vulkan.Fence: VkFence :: Word64 -> VkFence
- Graphics.Vulkan.Fence: VkFenceCreateFlagBits :: VkFlags -> VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: VkFenceCreateInfo :: VkStructureType -> Ptr Void -> VkFenceCreateFlags -> VkFenceCreateInfo
- Graphics.Vulkan.Fence: [$sel:vkFlags:VkFenceCreateInfo] :: VkFenceCreateInfo -> VkFenceCreateFlags
- Graphics.Vulkan.Fence: [$sel:vkPNext:VkFenceCreateInfo] :: VkFenceCreateInfo -> Ptr Void
- Graphics.Vulkan.Fence: [$sel:vkSType:VkFenceCreateInfo] :: VkFenceCreateInfo -> VkStructureType
- Graphics.Vulkan.Fence: data VkFenceCreateInfo
- Graphics.Vulkan.Fence: instance Data.Bits.Bits Graphics.Vulkan.Fence.VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: instance Data.Bits.FiniteBits Graphics.Vulkan.Fence.VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: instance Foreign.Storable.Storable Graphics.Vulkan.Fence.VkFence
- Graphics.Vulkan.Fence: instance Foreign.Storable.Storable Graphics.Vulkan.Fence.VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: instance Foreign.Storable.Storable Graphics.Vulkan.Fence.VkFenceCreateInfo
- Graphics.Vulkan.Fence: instance GHC.Classes.Eq Graphics.Vulkan.Fence.VkFence
- Graphics.Vulkan.Fence: instance GHC.Classes.Eq Graphics.Vulkan.Fence.VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: instance GHC.Classes.Eq Graphics.Vulkan.Fence.VkFenceCreateInfo
- Graphics.Vulkan.Fence: instance GHC.Read.Read Graphics.Vulkan.Fence.VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: instance GHC.Show.Show Graphics.Vulkan.Fence.VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: newtype VkFence
- Graphics.Vulkan.Fence: newtype VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: type VkFenceCreateFlags = VkFenceCreateFlagBits
- Graphics.Vulkan.Fence: vkCreateFence :: VkDevice -> Ptr VkFenceCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkFence -> IO VkResult
- Graphics.Vulkan.Fence: vkDestroyFence :: VkDevice -> VkFence -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Fence: vkGetFenceStatus :: VkDevice -> VkFence -> IO VkResult
- Graphics.Vulkan.Fence: vkResetFences :: VkDevice -> Word32 -> Ptr VkFence -> IO VkResult
- Graphics.Vulkan.Fence: vkWaitForFences :: VkDevice -> Word32 -> Ptr VkFence -> VkBool32 -> Word64 -> IO VkResult
- Graphics.Vulkan.Image: VkImage :: Word64 -> VkImage
- Graphics.Vulkan.Image: VkImageAspectFlagBits :: VkFlags -> VkImageAspectFlagBits
- Graphics.Vulkan.Image: VkImageCreateFlagBits :: VkFlags -> VkImageCreateFlagBits
- Graphics.Vulkan.Image: VkImageCreateInfo :: VkStructureType -> Ptr Void -> VkImageCreateFlags -> VkImageType -> VkFormat -> VkExtent3D -> Word32 -> Word32 -> VkSampleCountFlagBits -> VkImageTiling -> VkImageUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkImageLayout -> VkImageCreateInfo
- Graphics.Vulkan.Image: VkImageLayout :: Int32 -> VkImageLayout
- Graphics.Vulkan.Image: VkImageSubresource :: VkImageAspectFlags -> Word32 -> Word32 -> VkImageSubresource
- Graphics.Vulkan.Image: VkImageSubresourceRange :: VkImageAspectFlags -> Word32 -> Word32 -> Word32 -> Word32 -> VkImageSubresourceRange
- Graphics.Vulkan.Image: VkImageTiling :: Int32 -> VkImageTiling
- Graphics.Vulkan.Image: VkImageType :: Int32 -> VkImageType
- Graphics.Vulkan.Image: VkImageUsageFlagBits :: VkFlags -> VkImageUsageFlagBits
- Graphics.Vulkan.Image: VkSubresourceLayout :: VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkSubresourceLayout
- Graphics.Vulkan.Image: [$sel:vkArrayLayer:VkImageSubresource] :: VkImageSubresource -> Word32
- Graphics.Vulkan.Image: [$sel:vkArrayLayers:VkImageCreateInfo] :: VkImageCreateInfo -> Word32
- Graphics.Vulkan.Image: [$sel:vkArrayPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
- Graphics.Vulkan.Image: [$sel:vkAspectMask:VkImageSubresourceRange] :: VkImageSubresourceRange -> VkImageAspectFlags
- Graphics.Vulkan.Image: [$sel:vkAspectMask:VkImageSubresource] :: VkImageSubresource -> VkImageAspectFlags
- Graphics.Vulkan.Image: [$sel:vkBaseArrayLayer:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32
- Graphics.Vulkan.Image: [$sel:vkBaseMipLevel:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32
- Graphics.Vulkan.Image: [$sel:vkDepthPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
- Graphics.Vulkan.Image: [$sel:vkExtent:VkImageCreateInfo] :: VkImageCreateInfo -> VkExtent3D
- Graphics.Vulkan.Image: [$sel:vkFlags:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageCreateFlags
- Graphics.Vulkan.Image: [$sel:vkFormat:VkImageCreateInfo] :: VkImageCreateInfo -> VkFormat
- Graphics.Vulkan.Image: [$sel:vkImageType:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageType
- Graphics.Vulkan.Image: [$sel:vkInitialLayout:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageLayout
- Graphics.Vulkan.Image: [$sel:vkLayerCount:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32
- Graphics.Vulkan.Image: [$sel:vkLevelCount:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32
- Graphics.Vulkan.Image: [$sel:vkMipLevel:VkImageSubresource] :: VkImageSubresource -> Word32
- Graphics.Vulkan.Image: [$sel:vkMipLevels:VkImageCreateInfo] :: VkImageCreateInfo -> Word32
- Graphics.Vulkan.Image: [$sel:vkOffset:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
- Graphics.Vulkan.Image: [$sel:vkPNext:VkImageCreateInfo] :: VkImageCreateInfo -> Ptr Void
- Graphics.Vulkan.Image: [$sel:vkPQueueFamilyIndices:VkImageCreateInfo] :: VkImageCreateInfo -> Ptr Word32
- Graphics.Vulkan.Image: [$sel:vkQueueFamilyIndexCount:VkImageCreateInfo] :: VkImageCreateInfo -> Word32
- Graphics.Vulkan.Image: [$sel:vkRowPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
- Graphics.Vulkan.Image: [$sel:vkSType:VkImageCreateInfo] :: VkImageCreateInfo -> VkStructureType
- Graphics.Vulkan.Image: [$sel:vkSamples:VkImageCreateInfo] :: VkImageCreateInfo -> VkSampleCountFlagBits
- Graphics.Vulkan.Image: [$sel:vkSharingMode:VkImageCreateInfo] :: VkImageCreateInfo -> VkSharingMode
- Graphics.Vulkan.Image: [$sel:vkSize:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
- Graphics.Vulkan.Image: [$sel:vkTiling:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageTiling
- Graphics.Vulkan.Image: [$sel:vkUsage:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageUsageFlags
- Graphics.Vulkan.Image: data VkImageCreateInfo
- Graphics.Vulkan.Image: data VkImageSubresource
- Graphics.Vulkan.Image: data VkImageSubresourceRange
- Graphics.Vulkan.Image: data VkSubresourceLayout
- Graphics.Vulkan.Image: instance Data.Bits.Bits Graphics.Vulkan.Image.VkImageAspectFlagBits
- Graphics.Vulkan.Image: instance Data.Bits.Bits Graphics.Vulkan.Image.VkImageCreateFlagBits
- Graphics.Vulkan.Image: instance Data.Bits.Bits Graphics.Vulkan.Image.VkImageUsageFlagBits
- Graphics.Vulkan.Image: instance Data.Bits.FiniteBits Graphics.Vulkan.Image.VkImageAspectFlagBits
- Graphics.Vulkan.Image: instance Data.Bits.FiniteBits Graphics.Vulkan.Image.VkImageCreateFlagBits
- Graphics.Vulkan.Image: instance Data.Bits.FiniteBits Graphics.Vulkan.Image.VkImageUsageFlagBits
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImage
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageAspectFlagBits
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageCreateFlagBits
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageCreateInfo
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageLayout
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageSubresource
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageSubresourceRange
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageTiling
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageType
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkImageUsageFlagBits
- Graphics.Vulkan.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Image.VkSubresourceLayout
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImage
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageAspectFlagBits
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageCreateFlagBits
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageCreateInfo
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageLayout
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageSubresource
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageSubresourceRange
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageTiling
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageType
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkImageUsageFlagBits
- Graphics.Vulkan.Image: instance GHC.Classes.Eq Graphics.Vulkan.Image.VkSubresourceLayout
- Graphics.Vulkan.Image: instance GHC.Read.Read Graphics.Vulkan.Image.VkImageAspectFlagBits
- Graphics.Vulkan.Image: instance GHC.Read.Read Graphics.Vulkan.Image.VkImageCreateFlagBits
- Graphics.Vulkan.Image: instance GHC.Read.Read Graphics.Vulkan.Image.VkImageLayout
- Graphics.Vulkan.Image: instance GHC.Read.Read Graphics.Vulkan.Image.VkImageTiling
- Graphics.Vulkan.Image: instance GHC.Read.Read Graphics.Vulkan.Image.VkImageType
- Graphics.Vulkan.Image: instance GHC.Read.Read Graphics.Vulkan.Image.VkImageUsageFlagBits
- Graphics.Vulkan.Image: instance GHC.Show.Show Graphics.Vulkan.Image.VkImageAspectFlagBits
- Graphics.Vulkan.Image: instance GHC.Show.Show Graphics.Vulkan.Image.VkImageCreateFlagBits
- Graphics.Vulkan.Image: instance GHC.Show.Show Graphics.Vulkan.Image.VkImageLayout
- Graphics.Vulkan.Image: instance GHC.Show.Show Graphics.Vulkan.Image.VkImageTiling
- Graphics.Vulkan.Image: instance GHC.Show.Show Graphics.Vulkan.Image.VkImageType
- Graphics.Vulkan.Image: instance GHC.Show.Show Graphics.Vulkan.Image.VkImageUsageFlagBits
- Graphics.Vulkan.Image: newtype VkImage
- Graphics.Vulkan.Image: newtype VkImageAspectFlagBits
- Graphics.Vulkan.Image: newtype VkImageCreateFlagBits
- Graphics.Vulkan.Image: newtype VkImageLayout
- Graphics.Vulkan.Image: newtype VkImageTiling
- Graphics.Vulkan.Image: newtype VkImageType
- Graphics.Vulkan.Image: newtype VkImageUsageFlagBits
- Graphics.Vulkan.Image: type VkImageAspectFlags = VkImageAspectFlagBits
- Graphics.Vulkan.Image: type VkImageCreateFlags = VkImageCreateFlagBits
- Graphics.Vulkan.Image: type VkImageUsageFlags = VkImageUsageFlagBits
- Graphics.Vulkan.Image: vkCreateImage :: VkDevice -> Ptr VkImageCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkImage -> IO VkResult
- Graphics.Vulkan.Image: vkDestroyImage :: VkDevice -> VkImage -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Image: vkGetImageSubresourceLayout :: VkDevice -> VkImage -> Ptr VkImageSubresource -> Ptr VkSubresourceLayout -> IO ()
- Graphics.Vulkan.ImageView: VkComponentMapping :: VkComponentSwizzle -> VkComponentSwizzle -> VkComponentSwizzle -> VkComponentSwizzle -> VkComponentMapping
- Graphics.Vulkan.ImageView: VkComponentSwizzle :: Int32 -> VkComponentSwizzle
- Graphics.Vulkan.ImageView: VkImageView :: Word64 -> VkImageView
- Graphics.Vulkan.ImageView: VkImageViewCreateFlags :: VkFlags -> VkImageViewCreateFlags
- Graphics.Vulkan.ImageView: VkImageViewCreateInfo :: VkStructureType -> Ptr Void -> VkImageViewCreateFlags -> VkImage -> VkImageViewType -> VkFormat -> VkComponentMapping -> VkImageSubresourceRange -> VkImageViewCreateInfo
- Graphics.Vulkan.ImageView: VkImageViewType :: Int32 -> VkImageViewType
- Graphics.Vulkan.ImageView: [$sel:vkA:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle
- Graphics.Vulkan.ImageView: [$sel:vkB:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle
- Graphics.Vulkan.ImageView: [$sel:vkComponents:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkComponentMapping
- Graphics.Vulkan.ImageView: [$sel:vkFlags:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageViewCreateFlags
- Graphics.Vulkan.ImageView: [$sel:vkFormat:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkFormat
- Graphics.Vulkan.ImageView: [$sel:vkG:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle
- Graphics.Vulkan.ImageView: [$sel:vkImage:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImage
- Graphics.Vulkan.ImageView: [$sel:vkPNext:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> Ptr Void
- Graphics.Vulkan.ImageView: [$sel:vkR:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle
- Graphics.Vulkan.ImageView: [$sel:vkSType:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkStructureType
- Graphics.Vulkan.ImageView: [$sel:vkSubresourceRange:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageSubresourceRange
- Graphics.Vulkan.ImageView: [$sel:vkViewType:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageViewType
- Graphics.Vulkan.ImageView: data VkComponentMapping
- Graphics.Vulkan.ImageView: data VkImageViewCreateInfo
- Graphics.Vulkan.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.ImageView.VkComponentMapping
- Graphics.Vulkan.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.ImageView.VkComponentSwizzle
- Graphics.Vulkan.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.ImageView.VkImageView
- Graphics.Vulkan.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.ImageView.VkImageViewCreateFlags
- Graphics.Vulkan.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.ImageView.VkImageViewCreateInfo
- Graphics.Vulkan.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.ImageView.VkImageViewType
- Graphics.Vulkan.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.ImageView.VkComponentMapping
- Graphics.Vulkan.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.ImageView.VkComponentSwizzle
- Graphics.Vulkan.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.ImageView.VkImageView
- Graphics.Vulkan.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.ImageView.VkImageViewCreateFlags
- Graphics.Vulkan.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.ImageView.VkImageViewCreateInfo
- Graphics.Vulkan.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.ImageView.VkImageViewType
- Graphics.Vulkan.ImageView: instance GHC.Read.Read Graphics.Vulkan.ImageView.VkComponentSwizzle
- Graphics.Vulkan.ImageView: instance GHC.Read.Read Graphics.Vulkan.ImageView.VkImageViewType
- Graphics.Vulkan.ImageView: instance GHC.Show.Show Graphics.Vulkan.ImageView.VkComponentSwizzle
- Graphics.Vulkan.ImageView: instance GHC.Show.Show Graphics.Vulkan.ImageView.VkImageViewType
- Graphics.Vulkan.ImageView: newtype VkComponentSwizzle
- Graphics.Vulkan.ImageView: newtype VkImageView
- Graphics.Vulkan.ImageView: newtype VkImageViewCreateFlags
- Graphics.Vulkan.ImageView: newtype VkImageViewType
- Graphics.Vulkan.ImageView: vkCreateImageView :: VkDevice -> Ptr VkImageViewCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkImageView -> IO VkResult
- Graphics.Vulkan.ImageView: vkDestroyImageView :: VkDevice -> VkImageView -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.KHR.Display: VkDisplayKHR :: Word64 -> VkDisplayKHR
- Graphics.Vulkan.KHR.Display: VkDisplayModeCreateFlagsKHR :: VkFlags -> VkDisplayModeCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: VkDisplayModeCreateInfoKHR :: VkStructureType -> Ptr Void -> VkDisplayModeCreateFlagsKHR -> VkDisplayModeParametersKHR -> VkDisplayModeCreateInfoKHR
- Graphics.Vulkan.KHR.Display: VkDisplayModeKHR :: Word64 -> VkDisplayModeKHR
- Graphics.Vulkan.KHR.Display: VkDisplayModeParametersKHR :: VkExtent2D -> Word32 -> VkDisplayModeParametersKHR
- Graphics.Vulkan.KHR.Display: VkDisplayModePropertiesKHR :: VkDisplayModeKHR -> VkDisplayModeParametersKHR -> VkDisplayModePropertiesKHR
- Graphics.Vulkan.KHR.Display: VkDisplayPlaneAlphaFlagBitsKHR :: VkFlags -> VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: VkDisplayPlaneCapabilitiesKHR :: VkDisplayPlaneAlphaFlagsKHR -> VkOffset2D -> VkOffset2D -> VkExtent2D -> VkExtent2D -> VkOffset2D -> VkOffset2D -> VkExtent2D -> VkExtent2D -> VkDisplayPlaneCapabilitiesKHR
- Graphics.Vulkan.KHR.Display: VkDisplayPlanePropertiesKHR :: VkDisplayKHR -> Word32 -> VkDisplayPlanePropertiesKHR
- Graphics.Vulkan.KHR.Display: VkDisplayPropertiesKHR :: VkDisplayKHR -> Ptr CChar -> VkExtent2D -> VkExtent2D -> VkSurfaceTransformFlagsKHR -> VkBool32 -> VkBool32 -> VkDisplayPropertiesKHR
- Graphics.Vulkan.KHR.Display: VkDisplaySurfaceCreateFlagsKHR :: VkFlags -> VkDisplaySurfaceCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: VkDisplaySurfaceCreateInfoKHR :: VkStructureType -> Ptr Void -> VkDisplaySurfaceCreateFlagsKHR -> VkDisplayModeKHR -> Word32 -> Word32 -> VkSurfaceTransformFlagBitsKHR -> CFloat -> VkDisplayPlaneAlphaFlagBitsKHR -> VkExtent2D -> VkDisplaySurfaceCreateInfoKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkAlphaMode:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkCurrentDisplay:VkDisplayPlanePropertiesKHR] :: VkDisplayPlanePropertiesKHR -> VkDisplayKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkCurrentStackIndex:VkDisplayPlanePropertiesKHR] :: VkDisplayPlanePropertiesKHR -> Word32
- Graphics.Vulkan.KHR.Display: [$sel:vkDisplay:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkDisplayKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkDisplayMode:VkDisplayModePropertiesKHR] :: VkDisplayModePropertiesKHR -> VkDisplayModeKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkDisplayMode:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplayModeKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkDisplayName:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> Ptr CChar
- Graphics.Vulkan.KHR.Display: [$sel:vkFlags:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkDisplayModeCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkFlags:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplaySurfaceCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkGlobalAlpha:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> CFloat
- Graphics.Vulkan.KHR.Display: [$sel:vkImageExtent:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Display: [$sel:vkMaxDstExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Display: [$sel:vkMaxDstPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D
- Graphics.Vulkan.KHR.Display: [$sel:vkMaxSrcExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Display: [$sel:vkMaxSrcPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D
- Graphics.Vulkan.KHR.Display: [$sel:vkMinDstExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Display: [$sel:vkMinDstPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D
- Graphics.Vulkan.KHR.Display: [$sel:vkMinSrcExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Display: [$sel:vkMinSrcPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D
- Graphics.Vulkan.KHR.Display: [$sel:vkPNext:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> Ptr Void
- Graphics.Vulkan.KHR.Display: [$sel:vkPNext:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Ptr Void
- Graphics.Vulkan.KHR.Display: [$sel:vkParameters:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkDisplayModeParametersKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkParameters:VkDisplayModePropertiesKHR] :: VkDisplayModePropertiesKHR -> VkDisplayModeParametersKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkPersistentContent:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkBool32
- Graphics.Vulkan.KHR.Display: [$sel:vkPhysicalDimensions:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Display: [$sel:vkPhysicalResolution:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Display: [$sel:vkPlaneIndex:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Word32
- Graphics.Vulkan.KHR.Display: [$sel:vkPlaneReorderPossible:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkBool32
- Graphics.Vulkan.KHR.Display: [$sel:vkPlaneStackIndex:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Word32
- Graphics.Vulkan.KHR.Display: [$sel:vkRefreshRate:VkDisplayModeParametersKHR] :: VkDisplayModeParametersKHR -> Word32
- Graphics.Vulkan.KHR.Display: [$sel:vkSType:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkStructureType
- Graphics.Vulkan.KHR.Display: [$sel:vkSType:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkStructureType
- Graphics.Vulkan.KHR.Display: [$sel:vkSupportedAlpha:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkDisplayPlaneAlphaFlagsKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkSupportedTransforms:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkSurfaceTransformFlagsKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkTransform:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Display: [$sel:vkVisibleRegion:VkDisplayModeParametersKHR] :: VkDisplayModeParametersKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Display: data VkDisplayModeCreateInfoKHR
- Graphics.Vulkan.KHR.Display: data VkDisplayModeParametersKHR
- Graphics.Vulkan.KHR.Display: data VkDisplayModePropertiesKHR
- Graphics.Vulkan.KHR.Display: data VkDisplayPlaneCapabilitiesKHR
- Graphics.Vulkan.KHR.Display: data VkDisplayPlanePropertiesKHR
- Graphics.Vulkan.KHR.Display: data VkDisplayPropertiesKHR
- Graphics.Vulkan.KHR.Display: data VkDisplaySurfaceCreateInfoKHR
- Graphics.Vulkan.KHR.Display: instance Data.Bits.Bits Graphics.Vulkan.KHR.Display.VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: instance Data.Bits.FiniteBits Graphics.Vulkan.KHR.Display.VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayModeCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayModeCreateInfoKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayModeKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayModeParametersKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayModePropertiesKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayPlaneCapabilitiesKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayPlanePropertiesKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplayPropertiesKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplaySurfaceCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Display.VkDisplaySurfaceCreateInfoKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayModeCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayModeCreateInfoKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayModeKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayModeParametersKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayModePropertiesKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayPlaneCapabilitiesKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayPlanePropertiesKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplayPropertiesKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplaySurfaceCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Display.VkDisplaySurfaceCreateInfoKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Read.Read Graphics.Vulkan.KHR.Display.VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: instance GHC.Show.Show Graphics.Vulkan.KHR.Display.VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: newtype VkDisplayKHR
- Graphics.Vulkan.KHR.Display: newtype VkDisplayModeCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: newtype VkDisplayModeKHR
- Graphics.Vulkan.KHR.Display: newtype VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: newtype VkDisplaySurfaceCreateFlagsKHR
- Graphics.Vulkan.KHR.Display: type VkDisplayPlaneAlphaFlagsKHR = VkDisplayPlaneAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Display: vkCreateDisplayModeKHR :: VkPhysicalDevice -> VkDisplayKHR -> Ptr VkDisplayModeCreateInfoKHR -> Ptr VkAllocationCallbacks -> Ptr VkDisplayModeKHR -> IO VkResult
- Graphics.Vulkan.KHR.Display: vkCreateDisplayPlaneSurfaceKHR :: VkInstance -> Ptr VkDisplaySurfaceCreateInfoKHR -> Ptr VkAllocationCallbacks -> Ptr VkSurfaceKHR -> IO VkResult
- Graphics.Vulkan.KHR.Display: vkGetDisplayModePropertiesKHR :: VkPhysicalDevice -> VkDisplayKHR -> Ptr Word32 -> Ptr VkDisplayModePropertiesKHR -> IO VkResult
- Graphics.Vulkan.KHR.Display: vkGetDisplayPlaneCapabilitiesKHR :: VkPhysicalDevice -> VkDisplayModeKHR -> Word32 -> Ptr VkDisplayPlaneCapabilitiesKHR -> IO VkResult
- Graphics.Vulkan.KHR.Display: vkGetDisplayPlaneSupportedDisplaysKHR :: VkPhysicalDevice -> Word32 -> Ptr Word32 -> Ptr VkDisplayKHR -> IO VkResult
- Graphics.Vulkan.KHR.Display: vkGetPhysicalDeviceDisplayPlanePropertiesKHR :: VkPhysicalDevice -> Ptr Word32 -> Ptr VkDisplayPlanePropertiesKHR -> IO VkResult
- Graphics.Vulkan.KHR.Display: vkGetPhysicalDeviceDisplayPropertiesKHR :: VkPhysicalDevice -> Ptr Word32 -> Ptr VkDisplayPropertiesKHR -> IO VkResult
- Graphics.Vulkan.KHR.DisplaySwapchain: VkDisplayPresentInfoKHR :: VkStructureType -> Ptr Void -> VkRect2D -> VkRect2D -> VkBool32 -> VkDisplayPresentInfoKHR
- Graphics.Vulkan.KHR.DisplaySwapchain: [$sel:vkDstRect:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkRect2D
- Graphics.Vulkan.KHR.DisplaySwapchain: [$sel:vkPNext:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> Ptr Void
- Graphics.Vulkan.KHR.DisplaySwapchain: [$sel:vkPersistent:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkBool32
- Graphics.Vulkan.KHR.DisplaySwapchain: [$sel:vkSType:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkStructureType
- Graphics.Vulkan.KHR.DisplaySwapchain: [$sel:vkSrcRect:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkRect2D
- Graphics.Vulkan.KHR.DisplaySwapchain: data VkDisplayPresentInfoKHR
- Graphics.Vulkan.KHR.DisplaySwapchain: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.DisplaySwapchain.VkDisplayPresentInfoKHR
- Graphics.Vulkan.KHR.DisplaySwapchain: instance GHC.Classes.Eq Graphics.Vulkan.KHR.DisplaySwapchain.VkDisplayPresentInfoKHR
- Graphics.Vulkan.KHR.DisplaySwapchain: vkCreateSharedSwapchainsKHR :: VkDevice -> Word32 -> Ptr VkSwapchainCreateInfoKHR -> Ptr VkAllocationCallbacks -> Ptr VkSwapchainKHR -> IO VkResult
- Graphics.Vulkan.KHR.Surface: VkColorSpaceKHR :: Int32 -> VkColorSpaceKHR
- Graphics.Vulkan.KHR.Surface: VkCompositeAlphaFlagBitsKHR :: VkFlags -> VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: VkPresentModeKHR :: Int32 -> VkPresentModeKHR
- Graphics.Vulkan.KHR.Surface: VkSurfaceCapabilitiesKHR :: Word32 -> Word32 -> VkExtent2D -> VkExtent2D -> VkExtent2D -> Word32 -> VkSurfaceTransformFlagsKHR -> VkSurfaceTransformFlagBitsKHR -> VkCompositeAlphaFlagsKHR -> VkImageUsageFlags -> VkSurfaceCapabilitiesKHR
- Graphics.Vulkan.KHR.Surface: VkSurfaceFormatKHR :: VkFormat -> VkColorSpaceKHR -> VkSurfaceFormatKHR
- Graphics.Vulkan.KHR.Surface: VkSurfaceKHR :: Word64 -> VkSurfaceKHR
- Graphics.Vulkan.KHR.Surface: VkSurfaceTransformFlagBitsKHR :: VkFlags -> VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: [$sel:vkColorSpace:VkSurfaceFormatKHR] :: VkSurfaceFormatKHR -> VkColorSpaceKHR
- Graphics.Vulkan.KHR.Surface: [$sel:vkCurrentExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Surface: [$sel:vkCurrentTransform:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: [$sel:vkFormat:VkSurfaceFormatKHR] :: VkSurfaceFormatKHR -> VkFormat
- Graphics.Vulkan.KHR.Surface: [$sel:vkMaxImageArrayLayers:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32
- Graphics.Vulkan.KHR.Surface: [$sel:vkMaxImageCount:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32
- Graphics.Vulkan.KHR.Surface: [$sel:vkMaxImageExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Surface: [$sel:vkMinImageCount:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32
- Graphics.Vulkan.KHR.Surface: [$sel:vkMinImageExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Surface: [$sel:vkSupportedCompositeAlpha:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkCompositeAlphaFlagsKHR
- Graphics.Vulkan.KHR.Surface: [$sel:vkSupportedTransforms:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkSurfaceTransformFlagsKHR
- Graphics.Vulkan.KHR.Surface: [$sel:vkSupportedUsageFlags:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkImageUsageFlags
- Graphics.Vulkan.KHR.Surface: data VkSurfaceCapabilitiesKHR
- Graphics.Vulkan.KHR.Surface: data VkSurfaceFormatKHR
- Graphics.Vulkan.KHR.Surface: instance Data.Bits.Bits Graphics.Vulkan.KHR.Surface.VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance Data.Bits.Bits Graphics.Vulkan.KHR.Surface.VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance Data.Bits.FiniteBits Graphics.Vulkan.KHR.Surface.VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance Data.Bits.FiniteBits Graphics.Vulkan.KHR.Surface.VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Surface.VkColorSpaceKHR
- Graphics.Vulkan.KHR.Surface: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Surface.VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Surface.VkPresentModeKHR
- Graphics.Vulkan.KHR.Surface: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Surface.VkSurfaceCapabilitiesKHR
- Graphics.Vulkan.KHR.Surface: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Surface.VkSurfaceFormatKHR
- Graphics.Vulkan.KHR.Surface: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Surface.VkSurfaceKHR
- Graphics.Vulkan.KHR.Surface: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Surface.VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Surface.VkColorSpaceKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Surface.VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Surface.VkPresentModeKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Surface.VkSurfaceCapabilitiesKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Surface.VkSurfaceFormatKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Surface.VkSurfaceKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Surface.VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Read.Read Graphics.Vulkan.KHR.Surface.VkColorSpaceKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Read.Read Graphics.Vulkan.KHR.Surface.VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Read.Read Graphics.Vulkan.KHR.Surface.VkPresentModeKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Read.Read Graphics.Vulkan.KHR.Surface.VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Show.Show Graphics.Vulkan.KHR.Surface.VkColorSpaceKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Show.Show Graphics.Vulkan.KHR.Surface.VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Show.Show Graphics.Vulkan.KHR.Surface.VkPresentModeKHR
- Graphics.Vulkan.KHR.Surface: instance GHC.Show.Show Graphics.Vulkan.KHR.Surface.VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: newtype VkColorSpaceKHR
- Graphics.Vulkan.KHR.Surface: newtype VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: newtype VkPresentModeKHR
- Graphics.Vulkan.KHR.Surface: newtype VkSurfaceKHR
- Graphics.Vulkan.KHR.Surface: newtype VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: type VkCompositeAlphaFlagsKHR = VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: type VkSurfaceTransformFlagsKHR = VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Surface: vkDestroySurfaceKHR :: VkInstance -> VkSurfaceKHR -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.KHR.Surface: vkGetPhysicalDeviceSurfaceCapabilitiesKHR :: VkPhysicalDevice -> VkSurfaceKHR -> Ptr VkSurfaceCapabilitiesKHR -> IO VkResult
- Graphics.Vulkan.KHR.Surface: vkGetPhysicalDeviceSurfaceFormatsKHR :: VkPhysicalDevice -> VkSurfaceKHR -> Ptr Word32 -> Ptr VkSurfaceFormatKHR -> IO VkResult
- Graphics.Vulkan.KHR.Surface: vkGetPhysicalDeviceSurfacePresentModesKHR :: VkPhysicalDevice -> VkSurfaceKHR -> Ptr Word32 -> Ptr VkPresentModeKHR -> IO VkResult
- Graphics.Vulkan.KHR.Surface: vkGetPhysicalDeviceSurfaceSupportKHR :: VkPhysicalDevice -> Word32 -> VkSurfaceKHR -> Ptr VkBool32 -> IO VkResult
- Graphics.Vulkan.KHR.Swapchain: VkPresentInfoKHR :: VkStructureType -> Ptr Void -> Word32 -> Ptr VkSemaphore -> Word32 -> Ptr VkSwapchainKHR -> Ptr Word32 -> Ptr VkResult -> VkPresentInfoKHR
- Graphics.Vulkan.KHR.Swapchain: VkSwapchainCreateFlagsKHR :: VkFlags -> VkSwapchainCreateFlagsKHR
- Graphics.Vulkan.KHR.Swapchain: VkSwapchainCreateInfoKHR :: VkStructureType -> Ptr Void -> VkSwapchainCreateFlagsKHR -> VkSurfaceKHR -> Word32 -> VkFormat -> VkColorSpaceKHR -> VkExtent2D -> Word32 -> VkImageUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkSurfaceTransformFlagBitsKHR -> VkCompositeAlphaFlagBitsKHR -> VkPresentModeKHR -> VkBool32 -> VkSwapchainKHR -> VkSwapchainCreateInfoKHR
- Graphics.Vulkan.KHR.Swapchain: VkSwapchainKHR :: Word64 -> VkSwapchainKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkClipped:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkBool32
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkCompositeAlpha:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkCompositeAlphaFlagBitsKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkFlags:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSwapchainCreateFlagsKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkImageArrayLayers:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkImageColorSpace:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkColorSpaceKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkImageExtent:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkExtent2D
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkImageFormat:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkFormat
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkImageSharingMode:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSharingMode
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkImageUsage:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkImageUsageFlags
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkMinImageCount:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkOldSwapchain:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSwapchainKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPImageIndices:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr Word32
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPNext:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr Void
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPNext:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Ptr Void
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPQueueFamilyIndices:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Ptr Word32
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPResults:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkResult
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPSwapchains:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkSwapchainKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPWaitSemaphores:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkSemaphore
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPreTransform:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSurfaceTransformFlagBitsKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkPresentMode:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkPresentModeKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkQueueFamilyIndexCount:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkSType:VkPresentInfoKHR] :: VkPresentInfoKHR -> VkStructureType
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkSType:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkStructureType
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkSurface:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSurfaceKHR
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkSwapchainCount:VkPresentInfoKHR] :: VkPresentInfoKHR -> Word32
- Graphics.Vulkan.KHR.Swapchain: [$sel:vkWaitSemaphoreCount:VkPresentInfoKHR] :: VkPresentInfoKHR -> Word32
- Graphics.Vulkan.KHR.Swapchain: data VkPresentInfoKHR
- Graphics.Vulkan.KHR.Swapchain: data VkSwapchainCreateInfoKHR
- Graphics.Vulkan.KHR.Swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Swapchain.VkPresentInfoKHR
- Graphics.Vulkan.KHR.Swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Swapchain.VkSwapchainCreateFlagsKHR
- Graphics.Vulkan.KHR.Swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Swapchain.VkSwapchainCreateInfoKHR
- Graphics.Vulkan.KHR.Swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.KHR.Swapchain.VkSwapchainKHR
- Graphics.Vulkan.KHR.Swapchain: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Swapchain.VkPresentInfoKHR
- Graphics.Vulkan.KHR.Swapchain: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Swapchain.VkSwapchainCreateFlagsKHR
- Graphics.Vulkan.KHR.Swapchain: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Swapchain.VkSwapchainCreateInfoKHR
- Graphics.Vulkan.KHR.Swapchain: instance GHC.Classes.Eq Graphics.Vulkan.KHR.Swapchain.VkSwapchainKHR
- Graphics.Vulkan.KHR.Swapchain: newtype VkSwapchainCreateFlagsKHR
- Graphics.Vulkan.KHR.Swapchain: newtype VkSwapchainKHR
- Graphics.Vulkan.KHR.Swapchain: vkAcquireNextImageKHR :: VkDevice -> VkSwapchainKHR -> Word64 -> VkSemaphore -> VkFence -> Ptr Word32 -> IO VkResult
- Graphics.Vulkan.KHR.Swapchain: vkCreateSwapchainKHR :: VkDevice -> Ptr VkSwapchainCreateInfoKHR -> Ptr VkAllocationCallbacks -> Ptr VkSwapchainKHR -> IO VkResult
- Graphics.Vulkan.KHR.Swapchain: vkDestroySwapchainKHR :: VkDevice -> VkSwapchainKHR -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.KHR.Swapchain: vkGetSwapchainImagesKHR :: VkDevice -> VkSwapchainKHR -> Ptr Word32 -> Ptr VkImage -> IO VkResult
- Graphics.Vulkan.KHR.Swapchain: vkQueuePresentKHR :: VkQueue -> Ptr VkPresentInfoKHR -> IO VkResult
- Graphics.Vulkan.LayerDiscovery: VkLayerProperties :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar -> Word32 -> Word32 -> Vector VK_MAX_DESCRIPTION_SIZE CChar -> VkLayerProperties
- Graphics.Vulkan.LayerDiscovery: [$sel:vkDescription:VkLayerProperties] :: VkLayerProperties -> Vector VK_MAX_DESCRIPTION_SIZE CChar
- Graphics.Vulkan.LayerDiscovery: [$sel:vkImplementationVersion:VkLayerProperties] :: VkLayerProperties -> Word32
- Graphics.Vulkan.LayerDiscovery: [$sel:vkLayerName:VkLayerProperties] :: VkLayerProperties -> Vector VK_MAX_EXTENSION_NAME_SIZE CChar
- Graphics.Vulkan.LayerDiscovery: [$sel:vkSpecVersion:VkLayerProperties] :: VkLayerProperties -> Word32
- Graphics.Vulkan.LayerDiscovery: data VkLayerProperties
- Graphics.Vulkan.LayerDiscovery: instance Foreign.Storable.Storable Graphics.Vulkan.LayerDiscovery.VkLayerProperties
- Graphics.Vulkan.LayerDiscovery: instance GHC.Classes.Eq Graphics.Vulkan.LayerDiscovery.VkLayerProperties
- Graphics.Vulkan.LayerDiscovery: vkEnumerateDeviceLayerProperties :: VkPhysicalDevice -> Ptr Word32 -> Ptr VkLayerProperties -> IO VkResult
- Graphics.Vulkan.LayerDiscovery: vkEnumerateInstanceLayerProperties :: Ptr Word32 -> Ptr VkLayerProperties -> IO VkResult
- Graphics.Vulkan.Memory: VkAllocationCallbacks :: Ptr Void -> PFN_vkAllocationFunction -> PFN_vkReallocationFunction -> PFN_vkFreeFunction -> PFN_vkInternalAllocationNotification -> PFN_vkInternalFreeNotification -> VkAllocationCallbacks
- Graphics.Vulkan.Memory: VkDeviceMemory :: Word64 -> VkDeviceMemory
- Graphics.Vulkan.Memory: VkInternalAllocationType :: Int32 -> VkInternalAllocationType
- Graphics.Vulkan.Memory: VkMappedMemoryRange :: VkStructureType -> Ptr Void -> VkDeviceMemory -> VkDeviceSize -> VkDeviceSize -> VkMappedMemoryRange
- Graphics.Vulkan.Memory: VkMemoryAllocateInfo :: VkStructureType -> Ptr Void -> VkDeviceSize -> Word32 -> VkMemoryAllocateInfo
- Graphics.Vulkan.Memory: VkMemoryMapFlags :: VkFlags -> VkMemoryMapFlags
- Graphics.Vulkan.Memory: VkSystemAllocationScope :: Int32 -> VkSystemAllocationScope
- Graphics.Vulkan.Memory: [$sel:vkAllocationSize:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> VkDeviceSize
- Graphics.Vulkan.Memory: [$sel:vkMemory:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceMemory
- Graphics.Vulkan.Memory: [$sel:vkMemoryTypeIndex:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> Word32
- Graphics.Vulkan.Memory: [$sel:vkOffset:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceSize
- Graphics.Vulkan.Memory: [$sel:vkPNext:VkMappedMemoryRange] :: VkMappedMemoryRange -> Ptr Void
- Graphics.Vulkan.Memory: [$sel:vkPNext:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> Ptr Void
- Graphics.Vulkan.Memory: [$sel:vkPUserData:VkAllocationCallbacks] :: VkAllocationCallbacks -> Ptr Void
- Graphics.Vulkan.Memory: [$sel:vkPfnAllocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkAllocationFunction
- Graphics.Vulkan.Memory: [$sel:vkPfnFree:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkFreeFunction
- Graphics.Vulkan.Memory: [$sel:vkPfnInternalAllocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkInternalAllocationNotification
- Graphics.Vulkan.Memory: [$sel:vkPfnInternalFree:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkInternalFreeNotification
- Graphics.Vulkan.Memory: [$sel:vkPfnReallocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkReallocationFunction
- Graphics.Vulkan.Memory: [$sel:vkSType:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkStructureType
- Graphics.Vulkan.Memory: [$sel:vkSType:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> VkStructureType
- Graphics.Vulkan.Memory: [$sel:vkSize:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceSize
- Graphics.Vulkan.Memory: data VkAllocationCallbacks
- Graphics.Vulkan.Memory: data VkMappedMemoryRange
- Graphics.Vulkan.Memory: data VkMemoryAllocateInfo
- Graphics.Vulkan.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Memory.VkAllocationCallbacks
- Graphics.Vulkan.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Memory.VkDeviceMemory
- Graphics.Vulkan.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Memory.VkInternalAllocationType
- Graphics.Vulkan.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Memory.VkMappedMemoryRange
- Graphics.Vulkan.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Memory.VkMemoryAllocateInfo
- Graphics.Vulkan.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Memory.VkMemoryMapFlags
- Graphics.Vulkan.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Memory.VkSystemAllocationScope
- Graphics.Vulkan.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Memory.VkAllocationCallbacks
- Graphics.Vulkan.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Memory.VkDeviceMemory
- Graphics.Vulkan.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Memory.VkInternalAllocationType
- Graphics.Vulkan.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Memory.VkMappedMemoryRange
- Graphics.Vulkan.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Memory.VkMemoryAllocateInfo
- Graphics.Vulkan.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Memory.VkMemoryMapFlags
- Graphics.Vulkan.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Memory.VkSystemAllocationScope
- Graphics.Vulkan.Memory: instance GHC.Read.Read Graphics.Vulkan.Memory.VkInternalAllocationType
- Graphics.Vulkan.Memory: instance GHC.Read.Read Graphics.Vulkan.Memory.VkSystemAllocationScope
- Graphics.Vulkan.Memory: instance GHC.Show.Show Graphics.Vulkan.Memory.VkInternalAllocationType
- Graphics.Vulkan.Memory: instance GHC.Show.Show Graphics.Vulkan.Memory.VkSystemAllocationScope
- Graphics.Vulkan.Memory: newtype VkDeviceMemory
- Graphics.Vulkan.Memory: newtype VkInternalAllocationType
- Graphics.Vulkan.Memory: newtype VkMemoryMapFlags
- Graphics.Vulkan.Memory: newtype VkSystemAllocationScope
- Graphics.Vulkan.Memory: type PFN_vkAllocationFunction = FunPtr (Ptr Void -> CSize -> CSize -> VkSystemAllocationScope -> IO (Ptr Void))
- Graphics.Vulkan.Memory: type PFN_vkFreeFunction = FunPtr (Ptr Void -> Ptr Void -> IO ())
- Graphics.Vulkan.Memory: type PFN_vkInternalAllocationNotification = FunPtr (Ptr Void -> CSize -> VkInternalAllocationType -> VkSystemAllocationScope -> IO ())
- Graphics.Vulkan.Memory: type PFN_vkInternalFreeNotification = FunPtr (Ptr Void -> CSize -> VkInternalAllocationType -> VkSystemAllocationScope -> IO ())
- Graphics.Vulkan.Memory: type PFN_vkReallocationFunction = FunPtr (Ptr Void -> Ptr Void -> CSize -> CSize -> VkSystemAllocationScope -> IO (Ptr Void))
- Graphics.Vulkan.Memory: vkAllocateMemory :: VkDevice -> Ptr VkMemoryAllocateInfo -> Ptr VkAllocationCallbacks -> Ptr VkDeviceMemory -> IO VkResult
- Graphics.Vulkan.Memory: vkFlushMappedMemoryRanges :: VkDevice -> Word32 -> Ptr VkMappedMemoryRange -> IO VkResult
- Graphics.Vulkan.Memory: vkFreeMemory :: VkDevice -> VkDeviceMemory -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Memory: vkGetDeviceMemoryCommitment :: VkDevice -> VkDeviceMemory -> Ptr VkDeviceSize -> IO ()
- Graphics.Vulkan.Memory: vkInvalidateMappedMemoryRanges :: VkDevice -> Word32 -> Ptr VkMappedMemoryRange -> IO VkResult
- Graphics.Vulkan.Memory: vkMapMemory :: VkDevice -> VkDeviceMemory -> VkDeviceSize -> VkDeviceSize -> VkMemoryMapFlags -> Ptr (Ptr Void) -> IO VkResult
- Graphics.Vulkan.Memory: vkUnmapMemory :: VkDevice -> VkDeviceMemory -> IO ()
- Graphics.Vulkan.MemoryManagement: VkMemoryRequirements :: VkDeviceSize -> VkDeviceSize -> Word32 -> VkMemoryRequirements
- Graphics.Vulkan.MemoryManagement: [$sel:vkAlignment:VkMemoryRequirements] :: VkMemoryRequirements -> VkDeviceSize
- Graphics.Vulkan.MemoryManagement: [$sel:vkMemoryTypeBits:VkMemoryRequirements] :: VkMemoryRequirements -> Word32
- Graphics.Vulkan.MemoryManagement: [$sel:vkSize:VkMemoryRequirements] :: VkMemoryRequirements -> VkDeviceSize
- Graphics.Vulkan.MemoryManagement: data VkMemoryRequirements
- Graphics.Vulkan.MemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.MemoryManagement.VkMemoryRequirements
- Graphics.Vulkan.MemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.MemoryManagement.VkMemoryRequirements
- Graphics.Vulkan.MemoryManagement: vkBindBufferMemory :: VkDevice -> VkBuffer -> VkDeviceMemory -> VkDeviceSize -> IO VkResult
- Graphics.Vulkan.MemoryManagement: vkBindImageMemory :: VkDevice -> VkImage -> VkDeviceMemory -> VkDeviceSize -> IO VkResult
- Graphics.Vulkan.MemoryManagement: vkGetBufferMemoryRequirements :: VkDevice -> VkBuffer -> Ptr VkMemoryRequirements -> IO ()
- Graphics.Vulkan.MemoryManagement: vkGetImageMemoryRequirements :: VkDevice -> VkImage -> Ptr VkMemoryRequirements -> IO ()
- Graphics.Vulkan.OtherTypes: VkBufferMemoryBarrier :: VkStructureType -> Ptr Void -> VkAccessFlags -> VkAccessFlags -> Word32 -> Word32 -> VkBuffer -> VkDeviceSize -> VkDeviceSize -> VkBufferMemoryBarrier
- Graphics.Vulkan.OtherTypes: VkDispatchIndirectCommand :: Word32 -> Word32 -> Word32 -> VkDispatchIndirectCommand
- Graphics.Vulkan.OtherTypes: VkDrawIndexedIndirectCommand :: Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> VkDrawIndexedIndirectCommand
- Graphics.Vulkan.OtherTypes: VkDrawIndirectCommand :: Word32 -> Word32 -> Word32 -> Word32 -> VkDrawIndirectCommand
- Graphics.Vulkan.OtherTypes: VkImageMemoryBarrier :: VkStructureType -> Ptr Void -> VkAccessFlags -> VkAccessFlags -> VkImageLayout -> VkImageLayout -> Word32 -> Word32 -> VkImage -> VkImageSubresourceRange -> VkImageMemoryBarrier
- Graphics.Vulkan.OtherTypes: VkMemoryBarrier :: VkStructureType -> Ptr Void -> VkAccessFlags -> VkAccessFlags -> VkMemoryBarrier
- Graphics.Vulkan.OtherTypes: [$sel:vkBuffer:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkBuffer
- Graphics.Vulkan.OtherTypes: [$sel:vkDstAccessMask:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkAccessFlags
- Graphics.Vulkan.OtherTypes: [$sel:vkDstAccessMask:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkAccessFlags
- Graphics.Vulkan.OtherTypes: [$sel:vkDstAccessMask:VkMemoryBarrier] :: VkMemoryBarrier -> VkAccessFlags
- Graphics.Vulkan.OtherTypes: [$sel:vkDstQueueFamilyIndex:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkDstQueueFamilyIndex:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkFirstIndex:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkFirstInstance:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkFirstInstance:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkFirstVertex:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkImage:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImage
- Graphics.Vulkan.OtherTypes: [$sel:vkIndexCount:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkInstanceCount:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkInstanceCount:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkNewLayout:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageLayout
- Graphics.Vulkan.OtherTypes: [$sel:vkOffset:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkDeviceSize
- Graphics.Vulkan.OtherTypes: [$sel:vkOldLayout:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageLayout
- Graphics.Vulkan.OtherTypes: [$sel:vkPNext:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Ptr Void
- Graphics.Vulkan.OtherTypes: [$sel:vkPNext:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Ptr Void
- Graphics.Vulkan.OtherTypes: [$sel:vkPNext:VkMemoryBarrier] :: VkMemoryBarrier -> Ptr Void
- Graphics.Vulkan.OtherTypes: [$sel:vkSType:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkStructureType
- Graphics.Vulkan.OtherTypes: [$sel:vkSType:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkStructureType
- Graphics.Vulkan.OtherTypes: [$sel:vkSType:VkMemoryBarrier] :: VkMemoryBarrier -> VkStructureType
- Graphics.Vulkan.OtherTypes: [$sel:vkSize:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkDeviceSize
- Graphics.Vulkan.OtherTypes: [$sel:vkSrcAccessMask:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkAccessFlags
- Graphics.Vulkan.OtherTypes: [$sel:vkSrcAccessMask:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkAccessFlags
- Graphics.Vulkan.OtherTypes: [$sel:vkSrcAccessMask:VkMemoryBarrier] :: VkMemoryBarrier -> VkAccessFlags
- Graphics.Vulkan.OtherTypes: [$sel:vkSrcQueueFamilyIndex:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkSrcQueueFamilyIndex:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkSubresourceRange:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageSubresourceRange
- Graphics.Vulkan.OtherTypes: [$sel:vkVertexCount:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkVertexOffset:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Int32
- Graphics.Vulkan.OtherTypes: [$sel:vkX:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkY:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: [$sel:vkZ:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32
- Graphics.Vulkan.OtherTypes: data VkBufferMemoryBarrier
- Graphics.Vulkan.OtherTypes: data VkDispatchIndirectCommand
- Graphics.Vulkan.OtherTypes: data VkDrawIndexedIndirectCommand
- Graphics.Vulkan.OtherTypes: data VkDrawIndirectCommand
- Graphics.Vulkan.OtherTypes: data VkImageMemoryBarrier
- Graphics.Vulkan.OtherTypes: data VkMemoryBarrier
- Graphics.Vulkan.OtherTypes: instance Foreign.Storable.Storable Graphics.Vulkan.OtherTypes.VkBufferMemoryBarrier
- Graphics.Vulkan.OtherTypes: instance Foreign.Storable.Storable Graphics.Vulkan.OtherTypes.VkDispatchIndirectCommand
- Graphics.Vulkan.OtherTypes: instance Foreign.Storable.Storable Graphics.Vulkan.OtherTypes.VkDrawIndexedIndirectCommand
- Graphics.Vulkan.OtherTypes: instance Foreign.Storable.Storable Graphics.Vulkan.OtherTypes.VkDrawIndirectCommand
- Graphics.Vulkan.OtherTypes: instance Foreign.Storable.Storable Graphics.Vulkan.OtherTypes.VkImageMemoryBarrier
- Graphics.Vulkan.OtherTypes: instance Foreign.Storable.Storable Graphics.Vulkan.OtherTypes.VkMemoryBarrier
- Graphics.Vulkan.OtherTypes: instance GHC.Classes.Eq Graphics.Vulkan.OtherTypes.VkBufferMemoryBarrier
- Graphics.Vulkan.OtherTypes: instance GHC.Classes.Eq Graphics.Vulkan.OtherTypes.VkDispatchIndirectCommand
- Graphics.Vulkan.OtherTypes: instance GHC.Classes.Eq Graphics.Vulkan.OtherTypes.VkDrawIndexedIndirectCommand
- Graphics.Vulkan.OtherTypes: instance GHC.Classes.Eq Graphics.Vulkan.OtherTypes.VkDrawIndirectCommand
- Graphics.Vulkan.OtherTypes: instance GHC.Classes.Eq Graphics.Vulkan.OtherTypes.VkImageMemoryBarrier
- Graphics.Vulkan.OtherTypes: instance GHC.Classes.Eq Graphics.Vulkan.OtherTypes.VkMemoryBarrier
- Graphics.Vulkan.Pass: VkAccessFlagBits :: VkFlags -> VkAccessFlagBits
- Graphics.Vulkan.Pass: VkAttachmentDescription :: VkAttachmentDescriptionFlags -> VkFormat -> VkSampleCountFlagBits -> VkAttachmentLoadOp -> VkAttachmentStoreOp -> VkAttachmentLoadOp -> VkAttachmentStoreOp -> VkImageLayout -> VkImageLayout -> VkAttachmentDescription
- Graphics.Vulkan.Pass: VkAttachmentDescriptionFlagBits :: VkFlags -> VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: VkAttachmentLoadOp :: Int32 -> VkAttachmentLoadOp
- Graphics.Vulkan.Pass: VkAttachmentReference :: Word32 -> VkImageLayout -> VkAttachmentReference
- Graphics.Vulkan.Pass: VkAttachmentStoreOp :: Int32 -> VkAttachmentStoreOp
- Graphics.Vulkan.Pass: VkDependencyFlagBits :: VkFlags -> VkDependencyFlagBits
- Graphics.Vulkan.Pass: VkFramebuffer :: Word64 -> VkFramebuffer
- Graphics.Vulkan.Pass: VkFramebufferCreateFlags :: VkFlags -> VkFramebufferCreateFlags
- Graphics.Vulkan.Pass: VkFramebufferCreateInfo :: VkStructureType -> Ptr Void -> VkFramebufferCreateFlags -> VkRenderPass -> Word32 -> Ptr VkImageView -> Word32 -> Word32 -> Word32 -> VkFramebufferCreateInfo
- Graphics.Vulkan.Pass: VkRenderPass :: Word64 -> VkRenderPass
- Graphics.Vulkan.Pass: VkRenderPassCreateFlags :: VkFlags -> VkRenderPassCreateFlags
- Graphics.Vulkan.Pass: VkRenderPassCreateInfo :: VkStructureType -> Ptr Void -> VkRenderPassCreateFlags -> Word32 -> Ptr VkAttachmentDescription -> Word32 -> Ptr VkSubpassDescription -> Word32 -> Ptr VkSubpassDependency -> VkRenderPassCreateInfo
- Graphics.Vulkan.Pass: VkSubpassDependency :: Word32 -> Word32 -> VkPipelineStageFlags -> VkPipelineStageFlags -> VkAccessFlags -> VkAccessFlags -> VkDependencyFlags -> VkSubpassDependency
- Graphics.Vulkan.Pass: VkSubpassDescription :: VkSubpassDescriptionFlags -> VkPipelineBindPoint -> Word32 -> Ptr VkAttachmentReference -> Word32 -> Ptr VkAttachmentReference -> Ptr VkAttachmentReference -> Ptr VkAttachmentReference -> Word32 -> Ptr Word32 -> VkSubpassDescription
- Graphics.Vulkan.Pass: VkSubpassDescriptionFlags :: VkFlags -> VkSubpassDescriptionFlags
- Graphics.Vulkan.Pass: [$sel:vkAttachment:VkAttachmentReference] :: VkAttachmentReference -> Word32
- Graphics.Vulkan.Pass: [$sel:vkAttachmentCount:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32
- Graphics.Vulkan.Pass: [$sel:vkAttachmentCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32
- Graphics.Vulkan.Pass: [$sel:vkColorAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32
- Graphics.Vulkan.Pass: [$sel:vkDependencyCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32
- Graphics.Vulkan.Pass: [$sel:vkDependencyFlags:VkSubpassDependency] :: VkSubpassDependency -> VkDependencyFlags
- Graphics.Vulkan.Pass: [$sel:vkDstAccessMask:VkSubpassDependency] :: VkSubpassDependency -> VkAccessFlags
- Graphics.Vulkan.Pass: [$sel:vkDstStageMask:VkSubpassDependency] :: VkSubpassDependency -> VkPipelineStageFlags
- Graphics.Vulkan.Pass: [$sel:vkDstSubpass:VkSubpassDependency] :: VkSubpassDependency -> Word32
- Graphics.Vulkan.Pass: [$sel:vkFinalLayout:VkAttachmentDescription] :: VkAttachmentDescription -> VkImageLayout
- Graphics.Vulkan.Pass: [$sel:vkFlags:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentDescriptionFlags
- Graphics.Vulkan.Pass: [$sel:vkFlags:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkFramebufferCreateFlags
- Graphics.Vulkan.Pass: [$sel:vkFlags:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> VkRenderPassCreateFlags
- Graphics.Vulkan.Pass: [$sel:vkFlags:VkSubpassDescription] :: VkSubpassDescription -> VkSubpassDescriptionFlags
- Graphics.Vulkan.Pass: [$sel:vkFormat:VkAttachmentDescription] :: VkAttachmentDescription -> VkFormat
- Graphics.Vulkan.Pass: [$sel:vkHeight:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32
- Graphics.Vulkan.Pass: [$sel:vkInitialLayout:VkAttachmentDescription] :: VkAttachmentDescription -> VkImageLayout
- Graphics.Vulkan.Pass: [$sel:vkInputAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32
- Graphics.Vulkan.Pass: [$sel:vkLayers:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32
- Graphics.Vulkan.Pass: [$sel:vkLayout:VkAttachmentReference] :: VkAttachmentReference -> VkImageLayout
- Graphics.Vulkan.Pass: [$sel:vkLoadOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentLoadOp
- Graphics.Vulkan.Pass: [$sel:vkPAttachments:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Ptr VkImageView
- Graphics.Vulkan.Pass: [$sel:vkPAttachments:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkAttachmentDescription
- Graphics.Vulkan.Pass: [$sel:vkPColorAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference
- Graphics.Vulkan.Pass: [$sel:vkPDependencies:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkSubpassDependency
- Graphics.Vulkan.Pass: [$sel:vkPDepthStencilAttachment:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference
- Graphics.Vulkan.Pass: [$sel:vkPInputAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference
- Graphics.Vulkan.Pass: [$sel:vkPNext:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Ptr Void
- Graphics.Vulkan.Pass: [$sel:vkPNext:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr Void
- Graphics.Vulkan.Pass: [$sel:vkPPreserveAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr Word32
- Graphics.Vulkan.Pass: [$sel:vkPResolveAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference
- Graphics.Vulkan.Pass: [$sel:vkPSubpasses:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkSubpassDescription
- Graphics.Vulkan.Pass: [$sel:vkPipelineBindPoint:VkSubpassDescription] :: VkSubpassDescription -> VkPipelineBindPoint
- Graphics.Vulkan.Pass: [$sel:vkPreserveAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32
- Graphics.Vulkan.Pass: [$sel:vkRenderPass:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkRenderPass
- Graphics.Vulkan.Pass: [$sel:vkSType:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkStructureType
- Graphics.Vulkan.Pass: [$sel:vkSType:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> VkStructureType
- Graphics.Vulkan.Pass: [$sel:vkSamples:VkAttachmentDescription] :: VkAttachmentDescription -> VkSampleCountFlagBits
- Graphics.Vulkan.Pass: [$sel:vkSrcAccessMask:VkSubpassDependency] :: VkSubpassDependency -> VkAccessFlags
- Graphics.Vulkan.Pass: [$sel:vkSrcStageMask:VkSubpassDependency] :: VkSubpassDependency -> VkPipelineStageFlags
- Graphics.Vulkan.Pass: [$sel:vkSrcSubpass:VkSubpassDependency] :: VkSubpassDependency -> Word32
- Graphics.Vulkan.Pass: [$sel:vkStencilLoadOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentLoadOp
- Graphics.Vulkan.Pass: [$sel:vkStencilStoreOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentStoreOp
- Graphics.Vulkan.Pass: [$sel:vkStoreOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentStoreOp
- Graphics.Vulkan.Pass: [$sel:vkSubpassCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32
- Graphics.Vulkan.Pass: [$sel:vkWidth:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32
- Graphics.Vulkan.Pass: data VkAttachmentDescription
- Graphics.Vulkan.Pass: data VkAttachmentReference
- Graphics.Vulkan.Pass: data VkFramebufferCreateInfo
- Graphics.Vulkan.Pass: data VkRenderPassCreateInfo
- Graphics.Vulkan.Pass: data VkSubpassDependency
- Graphics.Vulkan.Pass: data VkSubpassDescription
- Graphics.Vulkan.Pass: instance Data.Bits.Bits Graphics.Vulkan.Pass.VkAccessFlagBits
- Graphics.Vulkan.Pass: instance Data.Bits.Bits Graphics.Vulkan.Pass.VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: instance Data.Bits.Bits Graphics.Vulkan.Pass.VkDependencyFlagBits
- Graphics.Vulkan.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Pass.VkAccessFlagBits
- Graphics.Vulkan.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Pass.VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Pass.VkDependencyFlagBits
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkAccessFlagBits
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkAttachmentDescription
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkAttachmentLoadOp
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkAttachmentReference
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkAttachmentStoreOp
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkDependencyFlagBits
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkFramebuffer
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkFramebufferCreateFlags
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkFramebufferCreateInfo
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkRenderPass
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkRenderPassCreateFlags
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkRenderPassCreateInfo
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkSubpassDependency
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkSubpassDescription
- Graphics.Vulkan.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Pass.VkSubpassDescriptionFlags
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkAccessFlagBits
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkAttachmentDescription
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkAttachmentLoadOp
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkAttachmentReference
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkAttachmentStoreOp
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkDependencyFlagBits
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkFramebuffer
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkFramebufferCreateFlags
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkFramebufferCreateInfo
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkRenderPass
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkRenderPassCreateFlags
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkRenderPassCreateInfo
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkSubpassDependency
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkSubpassDescription
- Graphics.Vulkan.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Pass.VkSubpassDescriptionFlags
- Graphics.Vulkan.Pass: instance GHC.Read.Read Graphics.Vulkan.Pass.VkAccessFlagBits
- Graphics.Vulkan.Pass: instance GHC.Read.Read Graphics.Vulkan.Pass.VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: instance GHC.Read.Read Graphics.Vulkan.Pass.VkAttachmentLoadOp
- Graphics.Vulkan.Pass: instance GHC.Read.Read Graphics.Vulkan.Pass.VkAttachmentStoreOp
- Graphics.Vulkan.Pass: instance GHC.Read.Read Graphics.Vulkan.Pass.VkDependencyFlagBits
- Graphics.Vulkan.Pass: instance GHC.Show.Show Graphics.Vulkan.Pass.VkAccessFlagBits
- Graphics.Vulkan.Pass: instance GHC.Show.Show Graphics.Vulkan.Pass.VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: instance GHC.Show.Show Graphics.Vulkan.Pass.VkAttachmentLoadOp
- Graphics.Vulkan.Pass: instance GHC.Show.Show Graphics.Vulkan.Pass.VkAttachmentStoreOp
- Graphics.Vulkan.Pass: instance GHC.Show.Show Graphics.Vulkan.Pass.VkDependencyFlagBits
- Graphics.Vulkan.Pass: newtype VkAccessFlagBits
- Graphics.Vulkan.Pass: newtype VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: newtype VkAttachmentLoadOp
- Graphics.Vulkan.Pass: newtype VkAttachmentStoreOp
- Graphics.Vulkan.Pass: newtype VkDependencyFlagBits
- Graphics.Vulkan.Pass: newtype VkFramebuffer
- Graphics.Vulkan.Pass: newtype VkFramebufferCreateFlags
- Graphics.Vulkan.Pass: newtype VkRenderPass
- Graphics.Vulkan.Pass: newtype VkRenderPassCreateFlags
- Graphics.Vulkan.Pass: newtype VkSubpassDescriptionFlags
- Graphics.Vulkan.Pass: type VkAccessFlags = VkAccessFlagBits
- Graphics.Vulkan.Pass: type VkAttachmentDescriptionFlags = VkAttachmentDescriptionFlagBits
- Graphics.Vulkan.Pass: type VkDependencyFlags = VkDependencyFlagBits
- Graphics.Vulkan.Pass: vkCreateFramebuffer :: VkDevice -> Ptr VkFramebufferCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkFramebuffer -> IO VkResult
- Graphics.Vulkan.Pass: vkCreateRenderPass :: VkDevice -> Ptr VkRenderPassCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkRenderPass -> IO VkResult
- Graphics.Vulkan.Pass: vkDestroyFramebuffer :: VkDevice -> VkFramebuffer -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Pass: vkDestroyRenderPass :: VkDevice -> VkRenderPass -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Pass: vkGetRenderAreaGranularity :: VkDevice -> VkRenderPass -> Ptr VkExtent2D -> IO ()
- Graphics.Vulkan.Pipeline: VkBlendFactor :: Int32 -> VkBlendFactor
- Graphics.Vulkan.Pipeline: VkBlendOp :: Int32 -> VkBlendOp
- Graphics.Vulkan.Pipeline: VkColorComponentFlagBits :: VkFlags -> VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: VkComputePipelineCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineCreateFlags -> VkPipelineShaderStageCreateInfo -> VkPipelineLayout -> VkPipeline -> Int32 -> VkComputePipelineCreateInfo
- Graphics.Vulkan.Pipeline: VkCullModeFlagBits :: VkFlags -> VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: VkDynamicState :: Int32 -> VkDynamicState
- Graphics.Vulkan.Pipeline: VkFrontFace :: Int32 -> VkFrontFace
- Graphics.Vulkan.Pipeline: VkGraphicsPipelineCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineCreateFlags -> Word32 -> Ptr VkPipelineShaderStageCreateInfo -> Ptr VkPipelineVertexInputStateCreateInfo -> Ptr VkPipelineInputAssemblyStateCreateInfo -> Ptr VkPipelineTessellationStateCreateInfo -> Ptr VkPipelineViewportStateCreateInfo -> Ptr VkPipelineRasterizationStateCreateInfo -> Ptr VkPipelineMultisampleStateCreateInfo -> Ptr VkPipelineDepthStencilStateCreateInfo -> Ptr VkPipelineColorBlendStateCreateInfo -> Ptr VkPipelineDynamicStateCreateInfo -> VkPipelineLayout -> VkRenderPass -> Word32 -> VkPipeline -> Int32 -> VkGraphicsPipelineCreateInfo
- Graphics.Vulkan.Pipeline: VkLogicOp :: Int32 -> VkLogicOp
- Graphics.Vulkan.Pipeline: VkPipeline :: Word64 -> VkPipeline
- Graphics.Vulkan.Pipeline: VkPipelineBindPoint :: Int32 -> VkPipelineBindPoint
- Graphics.Vulkan.Pipeline: VkPipelineColorBlendAttachmentState :: VkBool32 -> VkBlendFactor -> VkBlendFactor -> VkBlendOp -> VkBlendFactor -> VkBlendFactor -> VkBlendOp -> VkColorComponentFlags -> VkPipelineColorBlendAttachmentState
- Graphics.Vulkan.Pipeline: VkPipelineColorBlendStateCreateFlags :: VkFlags -> VkPipelineColorBlendStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineColorBlendStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineColorBlendStateCreateFlags -> VkBool32 -> VkLogicOp -> Word32 -> Ptr VkPipelineColorBlendAttachmentState -> Vector 4 CFloat -> VkPipelineColorBlendStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineCreateFlagBits :: VkFlags -> VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: VkPipelineDepthStencilStateCreateFlags :: VkFlags -> VkPipelineDepthStencilStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineDepthStencilStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineDepthStencilStateCreateFlags -> VkBool32 -> VkBool32 -> VkCompareOp -> VkBool32 -> VkBool32 -> VkStencilOpState -> VkStencilOpState -> CFloat -> CFloat -> VkPipelineDepthStencilStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineDynamicStateCreateFlags :: VkFlags -> VkPipelineDynamicStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineDynamicStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineDynamicStateCreateFlags -> Word32 -> Ptr VkDynamicState -> VkPipelineDynamicStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineInputAssemblyStateCreateFlags :: VkFlags -> VkPipelineInputAssemblyStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineInputAssemblyStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineInputAssemblyStateCreateFlags -> VkPrimitiveTopology -> VkBool32 -> VkPipelineInputAssemblyStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineMultisampleStateCreateFlags :: VkFlags -> VkPipelineMultisampleStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineMultisampleStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineMultisampleStateCreateFlags -> VkSampleCountFlagBits -> VkBool32 -> CFloat -> Ptr VkSampleMask -> VkBool32 -> VkBool32 -> VkPipelineMultisampleStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineRasterizationStateCreateFlags :: VkFlags -> VkPipelineRasterizationStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineRasterizationStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineRasterizationStateCreateFlags -> VkBool32 -> VkBool32 -> VkPolygonMode -> VkCullModeFlags -> VkFrontFace -> VkBool32 -> CFloat -> CFloat -> CFloat -> CFloat -> VkPipelineRasterizationStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineShaderStageCreateFlags :: VkFlags -> VkPipelineShaderStageCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineShaderStageCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineShaderStageCreateFlags -> VkShaderStageFlagBits -> VkShaderModule -> Ptr CChar -> Ptr VkSpecializationInfo -> VkPipelineShaderStageCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineStageFlagBits :: VkFlags -> VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: VkPipelineTessellationStateCreateFlags :: VkFlags -> VkPipelineTessellationStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineTessellationStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineTessellationStateCreateFlags -> Word32 -> VkPipelineTessellationStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineVertexInputStateCreateFlags :: VkFlags -> VkPipelineVertexInputStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineVertexInputStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineVertexInputStateCreateFlags -> Word32 -> Ptr VkVertexInputBindingDescription -> Word32 -> Ptr VkVertexInputAttributeDescription -> VkPipelineVertexInputStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPipelineViewportStateCreateFlags :: VkFlags -> VkPipelineViewportStateCreateFlags
- Graphics.Vulkan.Pipeline: VkPipelineViewportStateCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineViewportStateCreateFlags -> Word32 -> Ptr VkViewport -> Word32 -> Ptr VkRect2D -> VkPipelineViewportStateCreateInfo
- Graphics.Vulkan.Pipeline: VkPolygonMode :: Int32 -> VkPolygonMode
- Graphics.Vulkan.Pipeline: VkPrimitiveTopology :: Int32 -> VkPrimitiveTopology
- Graphics.Vulkan.Pipeline: VkSampleMask :: Word32 -> VkSampleMask
- Graphics.Vulkan.Pipeline: VkSpecializationInfo :: Word32 -> Ptr VkSpecializationMapEntry -> CSize -> Ptr Void -> VkSpecializationInfo
- Graphics.Vulkan.Pipeline: VkSpecializationMapEntry :: Word32 -> Word32 -> CSize -> VkSpecializationMapEntry
- Graphics.Vulkan.Pipeline: VkStencilOp :: Int32 -> VkStencilOp
- Graphics.Vulkan.Pipeline: VkStencilOpState :: VkStencilOp -> VkStencilOp -> VkStencilOp -> VkCompareOp -> Word32 -> Word32 -> Word32 -> VkStencilOpState
- Graphics.Vulkan.Pipeline: VkVertexInputAttributeDescription :: Word32 -> Word32 -> VkFormat -> Word32 -> VkVertexInputAttributeDescription
- Graphics.Vulkan.Pipeline: VkVertexInputBindingDescription :: Word32 -> Word32 -> VkVertexInputRate -> VkVertexInputBindingDescription
- Graphics.Vulkan.Pipeline: VkVertexInputRate :: Int32 -> VkVertexInputRate
- Graphics.Vulkan.Pipeline: [$sel:vkAlphaBlendOp:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendOp
- Graphics.Vulkan.Pipeline: [$sel:vkAlphaToCoverageEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkAlphaToOneEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkAttachmentCount:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkBack:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStencilOpState
- Graphics.Vulkan.Pipeline: [$sel:vkBasePipelineHandle:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipeline
- Graphics.Vulkan.Pipeline: [$sel:vkBasePipelineHandle:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipeline
- Graphics.Vulkan.Pipeline: [$sel:vkBasePipelineIndex:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> Int32
- Graphics.Vulkan.Pipeline: [$sel:vkBasePipelineIndex:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Int32
- Graphics.Vulkan.Pipeline: [$sel:vkBinding:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkBinding:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkBlendConstants:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Vector 4 CFloat
- Graphics.Vulkan.Pipeline: [$sel:vkBlendEnable:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkColorBlendOp:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendOp
- Graphics.Vulkan.Pipeline: [$sel:vkColorWriteMask:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkColorComponentFlags
- Graphics.Vulkan.Pipeline: [$sel:vkCompareMask:VkStencilOpState] :: VkStencilOpState -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkCompareOp:VkStencilOpState] :: VkStencilOpState -> VkCompareOp
- Graphics.Vulkan.Pipeline: [$sel:vkConstantID:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkCullMode:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkCullModeFlags
- Graphics.Vulkan.Pipeline: [$sel:vkDataSize:VkSpecializationInfo] :: VkSpecializationInfo -> CSize
- Graphics.Vulkan.Pipeline: [$sel:vkDepthBiasClamp:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat
- Graphics.Vulkan.Pipeline: [$sel:vkDepthBiasConstantFactor:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat
- Graphics.Vulkan.Pipeline: [$sel:vkDepthBiasEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkDepthBiasSlopeFactor:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat
- Graphics.Vulkan.Pipeline: [$sel:vkDepthBoundsTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkDepthClampEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkDepthCompareOp:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkCompareOp
- Graphics.Vulkan.Pipeline: [$sel:vkDepthFailOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp
- Graphics.Vulkan.Pipeline: [$sel:vkDepthTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkDepthWriteEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkDstAlphaBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor
- Graphics.Vulkan.Pipeline: [$sel:vkDstColorBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor
- Graphics.Vulkan.Pipeline: [$sel:vkDynamicStateCount:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkFailOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipelineCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkPipelineColorBlendStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkPipelineDepthStencilStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> VkPipelineDynamicStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkPipelineInputAssemblyStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkPipelineMultisampleStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkPipelineRasterizationStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkPipelineShaderStageCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> VkPipelineTessellationStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> VkPipelineVertexInputStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFlags:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> VkPipelineViewportStateCreateFlags
- Graphics.Vulkan.Pipeline: [$sel:vkFormat:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> VkFormat
- Graphics.Vulkan.Pipeline: [$sel:vkFront:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStencilOpState
- Graphics.Vulkan.Pipeline: [$sel:vkFrontFace:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkFrontFace
- Graphics.Vulkan.Pipeline: [$sel:vkInputRate:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> VkVertexInputRate
- Graphics.Vulkan.Pipeline: [$sel:vkLayout:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineLayout
- Graphics.Vulkan.Pipeline: [$sel:vkLayout:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipelineLayout
- Graphics.Vulkan.Pipeline: [$sel:vkLineWidth:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat
- Graphics.Vulkan.Pipeline: [$sel:vkLocation:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkLogicOp:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkLogicOp
- Graphics.Vulkan.Pipeline: [$sel:vkLogicOpEnable:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkMapEntryCount:VkSpecializationInfo] :: VkSpecializationInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkMaxDepthBounds:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> CFloat
- Graphics.Vulkan.Pipeline: [$sel:vkMinDepthBounds:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> CFloat
- Graphics.Vulkan.Pipeline: [$sel:vkMinSampleShading:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> CFloat
- Graphics.Vulkan.Pipeline: [$sel:vkModule:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkShaderModule
- Graphics.Vulkan.Pipeline: [$sel:vkOffset:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkOffset:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkPAttachments:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Ptr VkPipelineColorBlendAttachmentState
- Graphics.Vulkan.Pipeline: [$sel:vkPColorBlendState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineColorBlendStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPData:VkSpecializationInfo] :: VkSpecializationInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPDepthStencilState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineDepthStencilStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPDynamicState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineDynamicStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPDynamicStates:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Ptr VkDynamicState
- Graphics.Vulkan.Pipeline: [$sel:vkPInputAssemblyState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineInputAssemblyStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPMapEntries:VkSpecializationInfo] :: VkSpecializationInfo -> Ptr VkSpecializationMapEntry
- Graphics.Vulkan.Pipeline: [$sel:vkPMultisampleState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineMultisampleStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPName:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr CChar
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPNext:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr Void
- Graphics.Vulkan.Pipeline: [$sel:vkPRasterizationState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineRasterizationStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPSampleMask:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> Ptr VkSampleMask
- Graphics.Vulkan.Pipeline: [$sel:vkPScissors:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr VkRect2D
- Graphics.Vulkan.Pipeline: [$sel:vkPSpecializationInfo:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr VkSpecializationInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPStages:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineShaderStageCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPTessellationState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineTessellationStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPVertexAttributeDescriptions:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr VkVertexInputAttributeDescription
- Graphics.Vulkan.Pipeline: [$sel:vkPVertexBindingDescriptions:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr VkVertexInputBindingDescription
- Graphics.Vulkan.Pipeline: [$sel:vkPVertexInputState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineVertexInputStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPViewportState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineViewportStateCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkPViewports:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr VkViewport
- Graphics.Vulkan.Pipeline: [$sel:vkPassOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp
- Graphics.Vulkan.Pipeline: [$sel:vkPatchControlPoints:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkPolygonMode:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkPolygonMode
- Graphics.Vulkan.Pipeline: [$sel:vkPrimitiveRestartEnable:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkRasterizationSamples:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkSampleCountFlagBits
- Graphics.Vulkan.Pipeline: [$sel:vkRasterizerDiscardEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkReference:VkStencilOpState] :: VkStencilOpState -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkRenderPass:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkRenderPass
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSType:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> VkStructureType
- Graphics.Vulkan.Pipeline: [$sel:vkSampleShadingEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkScissorCount:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkSize:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> CSize
- Graphics.Vulkan.Pipeline: [$sel:vkSrcAlphaBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor
- Graphics.Vulkan.Pipeline: [$sel:vkSrcColorBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor
- Graphics.Vulkan.Pipeline: [$sel:vkStage:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineShaderStageCreateInfo
- Graphics.Vulkan.Pipeline: [$sel:vkStage:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkShaderStageFlagBits
- Graphics.Vulkan.Pipeline: [$sel:vkStageCount:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkStencilTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32
- Graphics.Vulkan.Pipeline: [$sel:vkStride:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkSubpass:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkTopology:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkPrimitiveTopology
- Graphics.Vulkan.Pipeline: [$sel:vkVertexAttributeDescriptionCount:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkVertexBindingDescriptionCount:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkViewportCount:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Word32
- Graphics.Vulkan.Pipeline: [$sel:vkWriteMask:VkStencilOpState] :: VkStencilOpState -> Word32
- Graphics.Vulkan.Pipeline: data VkComputePipelineCreateInfo
- Graphics.Vulkan.Pipeline: data VkGraphicsPipelineCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineColorBlendAttachmentState
- Graphics.Vulkan.Pipeline: data VkPipelineColorBlendStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineDepthStencilStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineDynamicStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineInputAssemblyStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineMultisampleStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineRasterizationStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineShaderStageCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineTessellationStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineVertexInputStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkPipelineViewportStateCreateInfo
- Graphics.Vulkan.Pipeline: data VkSpecializationInfo
- Graphics.Vulkan.Pipeline: data VkSpecializationMapEntry
- Graphics.Vulkan.Pipeline: data VkStencilOpState
- Graphics.Vulkan.Pipeline: data VkVertexInputAttributeDescription
- Graphics.Vulkan.Pipeline: data VkVertexInputBindingDescription
- Graphics.Vulkan.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Pipeline.VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Pipeline.VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Pipeline.VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Pipeline.VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Pipeline.VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Pipeline.VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Pipeline.VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Pipeline.VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkBlendFactor
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkBlendOp
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkComputePipelineCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkDynamicState
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkFrontFace
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkGraphicsPipelineCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkLogicOp
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipeline
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineBindPoint
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineColorBlendAttachmentState
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineColorBlendStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineColorBlendStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineDepthStencilStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineDepthStencilStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineDynamicStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineDynamicStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineInputAssemblyStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineInputAssemblyStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineMultisampleStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineMultisampleStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineRasterizationStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineRasterizationStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineShaderStageCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineShaderStageCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineTessellationStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineTessellationStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineVertexInputStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineVertexInputStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineViewportStateCreateFlags
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPipelineViewportStateCreateInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPolygonMode
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkPrimitiveTopology
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkSampleMask
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkSpecializationInfo
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkSpecializationMapEntry
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkStencilOp
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkStencilOpState
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkVertexInputAttributeDescription
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkVertexInputBindingDescription
- Graphics.Vulkan.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Pipeline.VkVertexInputRate
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkBlendFactor
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkBlendOp
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkComputePipelineCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkDynamicState
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkFrontFace
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkGraphicsPipelineCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkLogicOp
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipeline
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineBindPoint
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineColorBlendAttachmentState
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineColorBlendStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineColorBlendStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineDepthStencilStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineDepthStencilStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineDynamicStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineDynamicStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineInputAssemblyStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineInputAssemblyStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineMultisampleStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineMultisampleStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineRasterizationStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineRasterizationStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineShaderStageCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineShaderStageCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineTessellationStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineTessellationStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineVertexInputStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineVertexInputStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineViewportStateCreateFlags
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPipelineViewportStateCreateInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPolygonMode
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkPrimitiveTopology
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkSampleMask
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkSpecializationInfo
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkSpecializationMapEntry
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkStencilOp
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkStencilOpState
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkVertexInputAttributeDescription
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkVertexInputBindingDescription
- Graphics.Vulkan.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Pipeline.VkVertexInputRate
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkBlendFactor
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkBlendOp
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkDynamicState
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkFrontFace
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkLogicOp
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkPipelineBindPoint
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkPolygonMode
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkPrimitiveTopology
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkStencilOp
- Graphics.Vulkan.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Pipeline.VkVertexInputRate
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkBlendFactor
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkBlendOp
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkDynamicState
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkFrontFace
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkLogicOp
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkPipelineBindPoint
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkPolygonMode
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkPrimitiveTopology
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkStencilOp
- Graphics.Vulkan.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Pipeline.VkVertexInputRate
- Graphics.Vulkan.Pipeline: newtype VkBlendFactor
- Graphics.Vulkan.Pipeline: newtype VkBlendOp
- Graphics.Vulkan.Pipeline: newtype VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: newtype VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: newtype VkDynamicState
- Graphics.Vulkan.Pipeline: newtype VkFrontFace
- Graphics.Vulkan.Pipeline: newtype VkLogicOp
- Graphics.Vulkan.Pipeline: newtype VkPipeline
- Graphics.Vulkan.Pipeline: newtype VkPipelineBindPoint
- Graphics.Vulkan.Pipeline: newtype VkPipelineColorBlendStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: newtype VkPipelineDepthStencilStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineDynamicStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineInputAssemblyStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineMultisampleStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineRasterizationStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineShaderStageCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: newtype VkPipelineTessellationStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineVertexInputStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPipelineViewportStateCreateFlags
- Graphics.Vulkan.Pipeline: newtype VkPolygonMode
- Graphics.Vulkan.Pipeline: newtype VkPrimitiveTopology
- Graphics.Vulkan.Pipeline: newtype VkSampleMask
- Graphics.Vulkan.Pipeline: newtype VkStencilOp
- Graphics.Vulkan.Pipeline: newtype VkVertexInputRate
- Graphics.Vulkan.Pipeline: type VkColorComponentFlags = VkColorComponentFlagBits
- Graphics.Vulkan.Pipeline: type VkCullModeFlags = VkCullModeFlagBits
- Graphics.Vulkan.Pipeline: type VkPipelineCreateFlags = VkPipelineCreateFlagBits
- Graphics.Vulkan.Pipeline: type VkPipelineStageFlags = VkPipelineStageFlagBits
- Graphics.Vulkan.Pipeline: vkCreateComputePipelines :: VkDevice -> VkPipelineCache -> Word32 -> Ptr VkComputePipelineCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkPipeline -> IO VkResult
- Graphics.Vulkan.Pipeline: vkCreateGraphicsPipelines :: VkDevice -> VkPipelineCache -> Word32 -> Ptr VkGraphicsPipelineCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkPipeline -> IO VkResult
- Graphics.Vulkan.Pipeline: vkDestroyPipeline :: VkDevice -> VkPipeline -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.PipelineCache: VkPipelineCache :: Word64 -> VkPipelineCache
- Graphics.Vulkan.PipelineCache: VkPipelineCacheCreateFlags :: VkFlags -> VkPipelineCacheCreateFlags
- Graphics.Vulkan.PipelineCache: VkPipelineCacheCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineCacheCreateFlags -> CSize -> Ptr Void -> VkPipelineCacheCreateInfo
- Graphics.Vulkan.PipelineCache: [$sel:vkFlags:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> VkPipelineCacheCreateFlags
- Graphics.Vulkan.PipelineCache: [$sel:vkInitialDataSize:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> CSize
- Graphics.Vulkan.PipelineCache: [$sel:vkPInitialData:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> Ptr Void
- Graphics.Vulkan.PipelineCache: [$sel:vkPNext:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> Ptr Void
- Graphics.Vulkan.PipelineCache: [$sel:vkSType:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> VkStructureType
- Graphics.Vulkan.PipelineCache: data VkPipelineCacheCreateInfo
- Graphics.Vulkan.PipelineCache: instance Foreign.Storable.Storable Graphics.Vulkan.PipelineCache.VkPipelineCache
- Graphics.Vulkan.PipelineCache: instance Foreign.Storable.Storable Graphics.Vulkan.PipelineCache.VkPipelineCacheCreateFlags
- Graphics.Vulkan.PipelineCache: instance Foreign.Storable.Storable Graphics.Vulkan.PipelineCache.VkPipelineCacheCreateInfo
- Graphics.Vulkan.PipelineCache: instance GHC.Classes.Eq Graphics.Vulkan.PipelineCache.VkPipelineCache
- Graphics.Vulkan.PipelineCache: instance GHC.Classes.Eq Graphics.Vulkan.PipelineCache.VkPipelineCacheCreateFlags
- Graphics.Vulkan.PipelineCache: instance GHC.Classes.Eq Graphics.Vulkan.PipelineCache.VkPipelineCacheCreateInfo
- Graphics.Vulkan.PipelineCache: newtype VkPipelineCache
- Graphics.Vulkan.PipelineCache: newtype VkPipelineCacheCreateFlags
- Graphics.Vulkan.PipelineCache: vkCreatePipelineCache :: VkDevice -> Ptr VkPipelineCacheCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkPipelineCache -> IO VkResult
- Graphics.Vulkan.PipelineCache: vkDestroyPipelineCache :: VkDevice -> VkPipelineCache -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.PipelineCache: vkGetPipelineCacheData :: VkDevice -> VkPipelineCache -> Ptr CSize -> Ptr Void -> IO VkResult
- Graphics.Vulkan.PipelineCache: vkMergePipelineCaches :: VkDevice -> VkPipelineCache -> Word32 -> Ptr VkPipelineCache -> IO VkResult
- Graphics.Vulkan.PipelineLayout: VkPipelineLayout :: Word64 -> VkPipelineLayout
- Graphics.Vulkan.PipelineLayout: VkPipelineLayoutCreateFlags :: VkFlags -> VkPipelineLayoutCreateFlags
- Graphics.Vulkan.PipelineLayout: VkPipelineLayoutCreateInfo :: VkStructureType -> Ptr Void -> VkPipelineLayoutCreateFlags -> Word32 -> Ptr VkDescriptorSetLayout -> Word32 -> Ptr VkPushConstantRange -> VkPipelineLayoutCreateInfo
- Graphics.Vulkan.PipelineLayout: VkPushConstantRange :: VkShaderStageFlags -> Word32 -> Word32 -> VkPushConstantRange
- Graphics.Vulkan.PipelineLayout: [$sel:vkFlags:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> VkPipelineLayoutCreateFlags
- Graphics.Vulkan.PipelineLayout: [$sel:vkOffset:VkPushConstantRange] :: VkPushConstantRange -> Word32
- Graphics.Vulkan.PipelineLayout: [$sel:vkPNext:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr Void
- Graphics.Vulkan.PipelineLayout: [$sel:vkPPushConstantRanges:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr VkPushConstantRange
- Graphics.Vulkan.PipelineLayout: [$sel:vkPSetLayouts:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr VkDescriptorSetLayout
- Graphics.Vulkan.PipelineLayout: [$sel:vkPushConstantRangeCount:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Word32
- Graphics.Vulkan.PipelineLayout: [$sel:vkSType:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> VkStructureType
- Graphics.Vulkan.PipelineLayout: [$sel:vkSetLayoutCount:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Word32
- Graphics.Vulkan.PipelineLayout: [$sel:vkSize:VkPushConstantRange] :: VkPushConstantRange -> Word32
- Graphics.Vulkan.PipelineLayout: [$sel:vkStageFlags:VkPushConstantRange] :: VkPushConstantRange -> VkShaderStageFlags
- Graphics.Vulkan.PipelineLayout: data VkPipelineLayoutCreateInfo
- Graphics.Vulkan.PipelineLayout: data VkPushConstantRange
- Graphics.Vulkan.PipelineLayout: instance Foreign.Storable.Storable Graphics.Vulkan.PipelineLayout.VkPipelineLayout
- Graphics.Vulkan.PipelineLayout: instance Foreign.Storable.Storable Graphics.Vulkan.PipelineLayout.VkPipelineLayoutCreateFlags
- Graphics.Vulkan.PipelineLayout: instance Foreign.Storable.Storable Graphics.Vulkan.PipelineLayout.VkPipelineLayoutCreateInfo
- Graphics.Vulkan.PipelineLayout: instance Foreign.Storable.Storable Graphics.Vulkan.PipelineLayout.VkPushConstantRange
- Graphics.Vulkan.PipelineLayout: instance GHC.Classes.Eq Graphics.Vulkan.PipelineLayout.VkPipelineLayout
- Graphics.Vulkan.PipelineLayout: instance GHC.Classes.Eq Graphics.Vulkan.PipelineLayout.VkPipelineLayoutCreateFlags
- Graphics.Vulkan.PipelineLayout: instance GHC.Classes.Eq Graphics.Vulkan.PipelineLayout.VkPipelineLayoutCreateInfo
- Graphics.Vulkan.PipelineLayout: instance GHC.Classes.Eq Graphics.Vulkan.PipelineLayout.VkPushConstantRange
- Graphics.Vulkan.PipelineLayout: newtype VkPipelineLayout
- Graphics.Vulkan.PipelineLayout: newtype VkPipelineLayoutCreateFlags
- Graphics.Vulkan.PipelineLayout: vkCreatePipelineLayout :: VkDevice -> Ptr VkPipelineLayoutCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkPipelineLayout -> IO VkResult
- Graphics.Vulkan.PipelineLayout: vkDestroyPipelineLayout :: VkDevice -> VkPipelineLayout -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Query: VkQueryControlFlagBits :: VkFlags -> VkQueryControlFlagBits
- Graphics.Vulkan.Query: VkQueryPipelineStatisticFlagBits :: VkFlags -> VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: VkQueryPool :: Word64 -> VkQueryPool
- Graphics.Vulkan.Query: VkQueryPoolCreateFlags :: VkFlags -> VkQueryPoolCreateFlags
- Graphics.Vulkan.Query: VkQueryPoolCreateInfo :: VkStructureType -> Ptr Void -> VkQueryPoolCreateFlags -> VkQueryType -> Word32 -> VkQueryPipelineStatisticFlags -> VkQueryPoolCreateInfo
- Graphics.Vulkan.Query: VkQueryResultFlagBits :: VkFlags -> VkQueryResultFlagBits
- Graphics.Vulkan.Query: VkQueryType :: Int32 -> VkQueryType
- Graphics.Vulkan.Query: [$sel:vkFlags:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryPoolCreateFlags
- Graphics.Vulkan.Query: [$sel:vkPNext:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> Ptr Void
- Graphics.Vulkan.Query: [$sel:vkPipelineStatistics:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryPipelineStatisticFlags
- Graphics.Vulkan.Query: [$sel:vkQueryCount:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> Word32
- Graphics.Vulkan.Query: [$sel:vkQueryType:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryType
- Graphics.Vulkan.Query: [$sel:vkSType:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkStructureType
- Graphics.Vulkan.Query: data VkQueryPoolCreateInfo
- Graphics.Vulkan.Query: instance Data.Bits.Bits Graphics.Vulkan.Query.VkQueryControlFlagBits
- Graphics.Vulkan.Query: instance Data.Bits.Bits Graphics.Vulkan.Query.VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: instance Data.Bits.Bits Graphics.Vulkan.Query.VkQueryResultFlagBits
- Graphics.Vulkan.Query: instance Data.Bits.FiniteBits Graphics.Vulkan.Query.VkQueryControlFlagBits
- Graphics.Vulkan.Query: instance Data.Bits.FiniteBits Graphics.Vulkan.Query.VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: instance Data.Bits.FiniteBits Graphics.Vulkan.Query.VkQueryResultFlagBits
- Graphics.Vulkan.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Query.VkQueryControlFlagBits
- Graphics.Vulkan.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Query.VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Query.VkQueryPool
- Graphics.Vulkan.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Query.VkQueryPoolCreateFlags
- Graphics.Vulkan.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Query.VkQueryPoolCreateInfo
- Graphics.Vulkan.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Query.VkQueryResultFlagBits
- Graphics.Vulkan.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Query.VkQueryType
- Graphics.Vulkan.Query: instance GHC.Classes.Eq Graphics.Vulkan.Query.VkQueryControlFlagBits
- Graphics.Vulkan.Query: instance GHC.Classes.Eq Graphics.Vulkan.Query.VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: instance GHC.Classes.Eq Graphics.Vulkan.Query.VkQueryPool
- Graphics.Vulkan.Query: instance GHC.Classes.Eq Graphics.Vulkan.Query.VkQueryPoolCreateFlags
- Graphics.Vulkan.Query: instance GHC.Classes.Eq Graphics.Vulkan.Query.VkQueryPoolCreateInfo
- Graphics.Vulkan.Query: instance GHC.Classes.Eq Graphics.Vulkan.Query.VkQueryResultFlagBits
- Graphics.Vulkan.Query: instance GHC.Classes.Eq Graphics.Vulkan.Query.VkQueryType
- Graphics.Vulkan.Query: instance GHC.Read.Read Graphics.Vulkan.Query.VkQueryControlFlagBits
- Graphics.Vulkan.Query: instance GHC.Read.Read Graphics.Vulkan.Query.VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: instance GHC.Read.Read Graphics.Vulkan.Query.VkQueryResultFlagBits
- Graphics.Vulkan.Query: instance GHC.Read.Read Graphics.Vulkan.Query.VkQueryType
- Graphics.Vulkan.Query: instance GHC.Show.Show Graphics.Vulkan.Query.VkQueryControlFlagBits
- Graphics.Vulkan.Query: instance GHC.Show.Show Graphics.Vulkan.Query.VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: instance GHC.Show.Show Graphics.Vulkan.Query.VkQueryResultFlagBits
- Graphics.Vulkan.Query: instance GHC.Show.Show Graphics.Vulkan.Query.VkQueryType
- Graphics.Vulkan.Query: newtype VkQueryControlFlagBits
- Graphics.Vulkan.Query: newtype VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: newtype VkQueryPool
- Graphics.Vulkan.Query: newtype VkQueryPoolCreateFlags
- Graphics.Vulkan.Query: newtype VkQueryResultFlagBits
- Graphics.Vulkan.Query: newtype VkQueryType
- Graphics.Vulkan.Query: type VkQueryControlFlags = VkQueryControlFlagBits
- Graphics.Vulkan.Query: type VkQueryPipelineStatisticFlags = VkQueryPipelineStatisticFlagBits
- Graphics.Vulkan.Query: type VkQueryResultFlags = VkQueryResultFlagBits
- Graphics.Vulkan.Query: vkCreateQueryPool :: VkDevice -> Ptr VkQueryPoolCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkQueryPool -> IO VkResult
- Graphics.Vulkan.Query: vkDestroyQueryPool :: VkDevice -> VkQueryPool -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Query: vkGetQueryPoolResults :: VkDevice -> VkQueryPool -> Word32 -> Word32 -> CSize -> Ptr Void -> VkDeviceSize -> VkQueryResultFlags -> IO VkResult
- Graphics.Vulkan.Queue: VkSubmitInfo :: VkStructureType -> Ptr Void -> Word32 -> Ptr VkSemaphore -> Ptr VkPipelineStageFlags -> Word32 -> Ptr VkCommandBuffer -> Word32 -> Ptr VkSemaphore -> VkSubmitInfo
- Graphics.Vulkan.Queue: [$sel:vkCommandBufferCount:VkSubmitInfo] :: VkSubmitInfo -> Word32
- Graphics.Vulkan.Queue: [$sel:vkPCommandBuffers:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkCommandBuffer
- Graphics.Vulkan.Queue: [$sel:vkPNext:VkSubmitInfo] :: VkSubmitInfo -> Ptr Void
- Graphics.Vulkan.Queue: [$sel:vkPSignalSemaphores:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkSemaphore
- Graphics.Vulkan.Queue: [$sel:vkPWaitDstStageMask:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkPipelineStageFlags
- Graphics.Vulkan.Queue: [$sel:vkPWaitSemaphores:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkSemaphore
- Graphics.Vulkan.Queue: [$sel:vkSType:VkSubmitInfo] :: VkSubmitInfo -> VkStructureType
- Graphics.Vulkan.Queue: [$sel:vkSignalSemaphoreCount:VkSubmitInfo] :: VkSubmitInfo -> Word32
- Graphics.Vulkan.Queue: [$sel:vkWaitSemaphoreCount:VkSubmitInfo] :: VkSubmitInfo -> Word32
- Graphics.Vulkan.Queue: data VkQueue_T
- Graphics.Vulkan.Queue: data VkSubmitInfo
- Graphics.Vulkan.Queue: instance Foreign.Storable.Storable Graphics.Vulkan.Queue.VkSubmitInfo
- Graphics.Vulkan.Queue: instance GHC.Classes.Eq Graphics.Vulkan.Queue.VkSubmitInfo
- Graphics.Vulkan.Queue: type VkQueue = Ptr VkQueue_T
- Graphics.Vulkan.Queue: vkDeviceWaitIdle :: VkDevice -> IO VkResult
- Graphics.Vulkan.Queue: vkGetDeviceQueue :: VkDevice -> Word32 -> Word32 -> Ptr VkQueue -> IO ()
- Graphics.Vulkan.Queue: vkQueueSubmit :: VkQueue -> Word32 -> Ptr VkSubmitInfo -> VkFence -> IO VkResult
- Graphics.Vulkan.Queue: vkQueueWaitIdle :: VkQueue -> IO VkResult
- Graphics.Vulkan.QueueSemaphore: VkSemaphore :: Word64 -> VkSemaphore
- Graphics.Vulkan.QueueSemaphore: VkSemaphoreCreateFlags :: VkFlags -> VkSemaphoreCreateFlags
- Graphics.Vulkan.QueueSemaphore: VkSemaphoreCreateInfo :: VkStructureType -> Ptr Void -> VkSemaphoreCreateFlags -> VkSemaphoreCreateInfo
- Graphics.Vulkan.QueueSemaphore: [$sel:vkFlags:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> VkSemaphoreCreateFlags
- Graphics.Vulkan.QueueSemaphore: [$sel:vkPNext:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> Ptr Void
- Graphics.Vulkan.QueueSemaphore: [$sel:vkSType:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> VkStructureType
- Graphics.Vulkan.QueueSemaphore: data VkSemaphoreCreateInfo
- Graphics.Vulkan.QueueSemaphore: instance Foreign.Storable.Storable Graphics.Vulkan.QueueSemaphore.VkSemaphore
- Graphics.Vulkan.QueueSemaphore: instance Foreign.Storable.Storable Graphics.Vulkan.QueueSemaphore.VkSemaphoreCreateFlags
- Graphics.Vulkan.QueueSemaphore: instance Foreign.Storable.Storable Graphics.Vulkan.QueueSemaphore.VkSemaphoreCreateInfo
- Graphics.Vulkan.QueueSemaphore: instance GHC.Classes.Eq Graphics.Vulkan.QueueSemaphore.VkSemaphore
- Graphics.Vulkan.QueueSemaphore: instance GHC.Classes.Eq Graphics.Vulkan.QueueSemaphore.VkSemaphoreCreateFlags
- Graphics.Vulkan.QueueSemaphore: instance GHC.Classes.Eq Graphics.Vulkan.QueueSemaphore.VkSemaphoreCreateInfo
- Graphics.Vulkan.QueueSemaphore: newtype VkSemaphore
- Graphics.Vulkan.QueueSemaphore: newtype VkSemaphoreCreateFlags
- Graphics.Vulkan.QueueSemaphore: vkCreateSemaphore :: VkDevice -> Ptr VkSemaphoreCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkSemaphore -> IO VkResult
- Graphics.Vulkan.QueueSemaphore: vkDestroySemaphore :: VkDevice -> VkSemaphore -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Sampler: VkBorderColor :: Int32 -> VkBorderColor
- Graphics.Vulkan.Sampler: VkCompareOp :: Int32 -> VkCompareOp
- Graphics.Vulkan.Sampler: VkFilter :: Int32 -> VkFilter
- Graphics.Vulkan.Sampler: VkSampleCountFlagBits :: VkFlags -> VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: VkSampler :: Word64 -> VkSampler
- Graphics.Vulkan.Sampler: VkSamplerAddressMode :: Int32 -> VkSamplerAddressMode
- Graphics.Vulkan.Sampler: VkSamplerCreateFlags :: VkFlags -> VkSamplerCreateFlags
- Graphics.Vulkan.Sampler: VkSamplerCreateInfo :: VkStructureType -> Ptr Void -> VkSamplerCreateFlags -> VkFilter -> VkFilter -> VkSamplerMipmapMode -> VkSamplerAddressMode -> VkSamplerAddressMode -> VkSamplerAddressMode -> CFloat -> VkBool32 -> CFloat -> VkBool32 -> VkCompareOp -> CFloat -> CFloat -> VkBorderColor -> VkBool32 -> VkSamplerCreateInfo
- Graphics.Vulkan.Sampler: VkSamplerMipmapMode :: Int32 -> VkSamplerMipmapMode
- Graphics.Vulkan.Sampler: [$sel:vkAddressModeU:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode
- Graphics.Vulkan.Sampler: [$sel:vkAddressModeV:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode
- Graphics.Vulkan.Sampler: [$sel:vkAddressModeW:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode
- Graphics.Vulkan.Sampler: [$sel:vkAnisotropyEnable:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32
- Graphics.Vulkan.Sampler: [$sel:vkBorderColor:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBorderColor
- Graphics.Vulkan.Sampler: [$sel:vkCompareEnable:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32
- Graphics.Vulkan.Sampler: [$sel:vkCompareOp:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkCompareOp
- Graphics.Vulkan.Sampler: [$sel:vkFlags:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerCreateFlags
- Graphics.Vulkan.Sampler: [$sel:vkMagFilter:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkFilter
- Graphics.Vulkan.Sampler: [$sel:vkMaxAnisotropy:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat
- Graphics.Vulkan.Sampler: [$sel:vkMaxLod:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat
- Graphics.Vulkan.Sampler: [$sel:vkMinFilter:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkFilter
- Graphics.Vulkan.Sampler: [$sel:vkMinLod:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat
- Graphics.Vulkan.Sampler: [$sel:vkMipLodBias:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat
- Graphics.Vulkan.Sampler: [$sel:vkMipmapMode:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerMipmapMode
- Graphics.Vulkan.Sampler: [$sel:vkPNext:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> Ptr Void
- Graphics.Vulkan.Sampler: [$sel:vkSType:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkStructureType
- Graphics.Vulkan.Sampler: [$sel:vkUnnormalizedCoordinates:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32
- Graphics.Vulkan.Sampler: data VkSamplerCreateInfo
- Graphics.Vulkan.Sampler: instance Data.Bits.Bits Graphics.Vulkan.Sampler.VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: instance Data.Bits.FiniteBits Graphics.Vulkan.Sampler.VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkBorderColor
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkCompareOp
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkFilter
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkSampler
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkSamplerAddressMode
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkSamplerCreateFlags
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkSamplerCreateInfo
- Graphics.Vulkan.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Sampler.VkSamplerMipmapMode
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkBorderColor
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkCompareOp
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkFilter
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkSampler
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkSamplerAddressMode
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkSamplerCreateFlags
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkSamplerCreateInfo
- Graphics.Vulkan.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Sampler.VkSamplerMipmapMode
- Graphics.Vulkan.Sampler: instance GHC.Read.Read Graphics.Vulkan.Sampler.VkBorderColor
- Graphics.Vulkan.Sampler: instance GHC.Read.Read Graphics.Vulkan.Sampler.VkCompareOp
- Graphics.Vulkan.Sampler: instance GHC.Read.Read Graphics.Vulkan.Sampler.VkFilter
- Graphics.Vulkan.Sampler: instance GHC.Read.Read Graphics.Vulkan.Sampler.VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: instance GHC.Read.Read Graphics.Vulkan.Sampler.VkSamplerAddressMode
- Graphics.Vulkan.Sampler: instance GHC.Read.Read Graphics.Vulkan.Sampler.VkSamplerMipmapMode
- Graphics.Vulkan.Sampler: instance GHC.Show.Show Graphics.Vulkan.Sampler.VkBorderColor
- Graphics.Vulkan.Sampler: instance GHC.Show.Show Graphics.Vulkan.Sampler.VkCompareOp
- Graphics.Vulkan.Sampler: instance GHC.Show.Show Graphics.Vulkan.Sampler.VkFilter
- Graphics.Vulkan.Sampler: instance GHC.Show.Show Graphics.Vulkan.Sampler.VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: instance GHC.Show.Show Graphics.Vulkan.Sampler.VkSamplerAddressMode
- Graphics.Vulkan.Sampler: instance GHC.Show.Show Graphics.Vulkan.Sampler.VkSamplerMipmapMode
- Graphics.Vulkan.Sampler: newtype VkBorderColor
- Graphics.Vulkan.Sampler: newtype VkCompareOp
- Graphics.Vulkan.Sampler: newtype VkFilter
- Graphics.Vulkan.Sampler: newtype VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: newtype VkSampler
- Graphics.Vulkan.Sampler: newtype VkSamplerAddressMode
- Graphics.Vulkan.Sampler: newtype VkSamplerCreateFlags
- Graphics.Vulkan.Sampler: newtype VkSamplerMipmapMode
- Graphics.Vulkan.Sampler: type VkSampleCountFlags = VkSampleCountFlagBits
- Graphics.Vulkan.Sampler: vkCreateSampler :: VkDevice -> Ptr VkSamplerCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkSampler -> IO VkResult
- Graphics.Vulkan.Sampler: vkDestroySampler :: VkDevice -> VkSampler -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.Shader: VkShaderModule :: Word64 -> VkShaderModule
- Graphics.Vulkan.Shader: VkShaderModuleCreateFlags :: VkFlags -> VkShaderModuleCreateFlags
- Graphics.Vulkan.Shader: VkShaderModuleCreateInfo :: VkStructureType -> Ptr Void -> VkShaderModuleCreateFlags -> CSize -> Ptr Word32 -> VkShaderModuleCreateInfo
- Graphics.Vulkan.Shader: VkShaderStageFlagBits :: VkFlags -> VkShaderStageFlagBits
- Graphics.Vulkan.Shader: [$sel:vkCodeSize:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> CSize
- Graphics.Vulkan.Shader: [$sel:vkFlags:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> VkShaderModuleCreateFlags
- Graphics.Vulkan.Shader: [$sel:vkPCode:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> Ptr Word32
- Graphics.Vulkan.Shader: [$sel:vkPNext:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> Ptr Void
- Graphics.Vulkan.Shader: [$sel:vkSType:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> VkStructureType
- Graphics.Vulkan.Shader: data VkShaderModuleCreateInfo
- Graphics.Vulkan.Shader: instance Data.Bits.Bits Graphics.Vulkan.Shader.VkShaderStageFlagBits
- Graphics.Vulkan.Shader: instance Data.Bits.FiniteBits Graphics.Vulkan.Shader.VkShaderStageFlagBits
- Graphics.Vulkan.Shader: instance Foreign.Storable.Storable Graphics.Vulkan.Shader.VkShaderModule
- Graphics.Vulkan.Shader: instance Foreign.Storable.Storable Graphics.Vulkan.Shader.VkShaderModuleCreateFlags
- Graphics.Vulkan.Shader: instance Foreign.Storable.Storable Graphics.Vulkan.Shader.VkShaderModuleCreateInfo
- Graphics.Vulkan.Shader: instance Foreign.Storable.Storable Graphics.Vulkan.Shader.VkShaderStageFlagBits
- Graphics.Vulkan.Shader: instance GHC.Classes.Eq Graphics.Vulkan.Shader.VkShaderModule
- Graphics.Vulkan.Shader: instance GHC.Classes.Eq Graphics.Vulkan.Shader.VkShaderModuleCreateFlags
- Graphics.Vulkan.Shader: instance GHC.Classes.Eq Graphics.Vulkan.Shader.VkShaderModuleCreateInfo
- Graphics.Vulkan.Shader: instance GHC.Classes.Eq Graphics.Vulkan.Shader.VkShaderStageFlagBits
- Graphics.Vulkan.Shader: instance GHC.Read.Read Graphics.Vulkan.Shader.VkShaderStageFlagBits
- Graphics.Vulkan.Shader: instance GHC.Show.Show Graphics.Vulkan.Shader.VkShaderStageFlagBits
- Graphics.Vulkan.Shader: newtype VkShaderModule
- Graphics.Vulkan.Shader: newtype VkShaderModuleCreateFlags
- Graphics.Vulkan.Shader: newtype VkShaderStageFlagBits
- Graphics.Vulkan.Shader: type VkShaderStageFlags = VkShaderStageFlagBits
- Graphics.Vulkan.Shader: vkCreateShaderModule :: VkDevice -> Ptr VkShaderModuleCreateInfo -> Ptr VkAllocationCallbacks -> Ptr VkShaderModule -> IO VkResult
- Graphics.Vulkan.Shader: vkDestroyShaderModule :: VkDevice -> VkShaderModule -> Ptr VkAllocationCallbacks -> IO ()
- Graphics.Vulkan.SparseResourceMemoryManagement: VkBindSparseInfo :: VkStructureType -> Ptr Void -> Word32 -> Ptr VkSemaphore -> Word32 -> Ptr VkSparseBufferMemoryBindInfo -> Word32 -> Ptr VkSparseImageOpaqueMemoryBindInfo -> Word32 -> Ptr VkSparseImageMemoryBindInfo -> Word32 -> Ptr VkSemaphore -> VkBindSparseInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseBufferMemoryBindInfo :: VkBuffer -> Word32 -> Ptr VkSparseMemoryBind -> VkSparseBufferMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseImageFormatFlagBits :: VkFlags -> VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseImageFormatProperties :: VkImageAspectFlags -> VkExtent3D -> VkSparseImageFormatFlags -> VkSparseImageFormatProperties
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseImageMemoryBind :: VkImageSubresource -> VkOffset3D -> VkExtent3D -> VkDeviceMemory -> VkDeviceSize -> VkSparseMemoryBindFlags -> VkSparseImageMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseImageMemoryBindInfo :: VkImage -> Word32 -> Ptr VkSparseImageMemoryBind -> VkSparseImageMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseImageMemoryRequirements :: VkSparseImageFormatProperties -> Word32 -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkSparseImageMemoryRequirements
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseImageOpaqueMemoryBindInfo :: VkImage -> Word32 -> Ptr VkSparseMemoryBind -> VkSparseImageOpaqueMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseMemoryBind :: VkDeviceSize -> VkDeviceSize -> VkDeviceMemory -> VkDeviceSize -> VkSparseMemoryBindFlags -> VkSparseMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: VkSparseMemoryBindFlagBits :: VkFlags -> VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkAspectMask:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkImageAspectFlags
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkBindCount:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkBindCount:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkBindCount:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkBuffer:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> VkBuffer
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkBufferBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkExtent:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkExtent3D
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkFlags:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkSparseImageFormatFlags
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkFlags:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkSparseMemoryBindFlags
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkFlags:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkSparseMemoryBindFlags
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkFormatProperties:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkSparseImageFormatProperties
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImage:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> VkImage
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImage:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> VkImage
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImageBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImageGranularity:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkExtent3D
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImageMipTailFirstLod:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImageMipTailOffset:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImageMipTailSize:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImageMipTailStride:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkImageOpaqueBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkMemory:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkDeviceMemory
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkMemory:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceMemory
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkMemoryOffset:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkDeviceSize
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkMemoryOffset:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkOffset:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkOffset3D
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPBinds:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> Ptr VkSparseMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPBinds:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> Ptr VkSparseImageMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPBinds:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> Ptr VkSparseMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPBufferBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseBufferMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPImageBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseImageMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPImageOpaqueBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseImageOpaqueMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPNext:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr Void
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPSignalSemaphores:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSemaphore
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkPWaitSemaphores:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSemaphore
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkResourceOffset:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkSType:VkBindSparseInfo] :: VkBindSparseInfo -> VkStructureType
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkSignalSemaphoreCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkSize:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkSubresource:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkImageSubresource
- Graphics.Vulkan.SparseResourceMemoryManagement: [$sel:vkWaitSemaphoreCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
- Graphics.Vulkan.SparseResourceMemoryManagement: data VkBindSparseInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: data VkSparseBufferMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: data VkSparseImageFormatProperties
- Graphics.Vulkan.SparseResourceMemoryManagement: data VkSparseImageMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: data VkSparseImageMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: data VkSparseImageMemoryRequirements
- Graphics.Vulkan.SparseResourceMemoryManagement: data VkSparseImageOpaqueMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: data VkSparseMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Data.Bits.Bits Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Data.Bits.Bits Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Data.Bits.FiniteBits Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Data.Bits.FiniteBits Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkBindSparseInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageFormatProperties
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkBindSparseInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageFormatProperties
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseMemoryBind
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Read.Read Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Read.Read Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: newtype VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: newtype VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: type VkSparseImageFormatFlags = VkSparseImageFormatFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: type VkSparseMemoryBindFlags = VkSparseMemoryBindFlagBits
- Graphics.Vulkan.SparseResourceMemoryManagement: vkGetImageSparseMemoryRequirements :: VkDevice -> VkImage -> Ptr Word32 -> Ptr VkSparseImageMemoryRequirements -> IO ()
- Graphics.Vulkan.SparseResourceMemoryManagement: vkGetPhysicalDeviceSparseImageFormatProperties :: VkPhysicalDevice -> VkFormat -> VkImageType -> VkSampleCountFlagBits -> VkImageUsageFlags -> VkImageTiling -> Ptr Word32 -> Ptr VkSparseImageFormatProperties -> IO ()
- Graphics.Vulkan.SparseResourceMemoryManagement: vkQueueBindSparse :: VkQueue -> Word32 -> Ptr VkBindSparseInfo -> VkFence -> IO VkResult
- Graphics.Vulkan.Version: vkApiVersion :: Word32
- Graphics.Vulkan.Version: vkMakeVersion :: Word32 -> Word32 -> Word32 -> Word32
- Graphics.Vulkan.Version: vkVersionMajor :: Word32 -> Word32
- Graphics.Vulkan.Version: vkVersionMinor :: Word32 -> Word32
- Graphics.Vulkan.Version: vkVersionPatch :: Word32 -> Word32
+ Graphics.Vulkan.Core10.Buffer: VkBufferCreateFlagBits :: VkFlags -> VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: VkBufferCreateInfo :: VkStructureType -> Ptr () -> VkBufferCreateFlags -> VkDeviceSize -> VkBufferUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkBufferCreateInfo
+ Graphics.Vulkan.Core10.Buffer: VkBufferUsageFlagBits :: VkFlags -> VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: VkSharingMode :: Int32 -> VkSharingMode
+ Graphics.Vulkan.Core10.Buffer: [$sel:vkFlags:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkBufferCreateFlags
+ Graphics.Vulkan.Core10.Buffer: [$sel:vkPNext:VkBufferCreateInfo] :: VkBufferCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Buffer: [$sel:vkPQueueFamilyIndices:VkBufferCreateInfo] :: VkBufferCreateInfo -> Ptr Word32
+ Graphics.Vulkan.Core10.Buffer: [$sel:vkQueueFamilyIndexCount:VkBufferCreateInfo] :: VkBufferCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Buffer: [$sel:vkSType:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Buffer: [$sel:vkSharingMode:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkSharingMode
+ Graphics.Vulkan.Core10.Buffer: [$sel:vkSize:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkDeviceSize
+ Graphics.Vulkan.Core10.Buffer: [$sel:vkUsage:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkBufferUsageFlags
+ Graphics.Vulkan.Core10.Buffer: data VkBufferCreateInfo
+ Graphics.Vulkan.Core10.Buffer: instance Data.Bits.Bits Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance Data.Bits.Bits Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo
+ Graphics.Vulkan.Core10.Buffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Buffer.VkSharingMode
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Buffer.VkSharingMode
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Buffer.VkSharingMode
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Read.Read Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Read.Read Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Read.Read Graphics.Vulkan.Core10.Buffer.VkSharingMode
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Show.Show Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Show.Show Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Show.Show Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: instance GHC.Show.Show Graphics.Vulkan.Core10.Buffer.VkSharingMode
+ Graphics.Vulkan.Core10.Buffer: newtype VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: newtype VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: newtype VkSharingMode
+ Graphics.Vulkan.Core10.Buffer: type VkBufferCreateFlags = VkBufferCreateFlagBits
+ Graphics.Vulkan.Core10.Buffer: type VkBufferUsageFlags = VkBufferUsageFlagBits
+ Graphics.Vulkan.Core10.Buffer: vkCreateBuffer :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkBufferCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pBuffer" ::: Ptr VkBuffer) -> IO VkResult
+ Graphics.Vulkan.Core10.Buffer: vkDestroyBuffer :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.BufferView: VkBufferViewCreateFlags :: VkFlags -> VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: VkBufferViewCreateInfo :: VkStructureType -> Ptr () -> VkBufferViewCreateFlags -> VkBuffer -> VkFormat -> VkDeviceSize -> VkDeviceSize -> VkBufferViewCreateInfo
+ Graphics.Vulkan.Core10.BufferView: [$sel:vkBuffer:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkBuffer
+ Graphics.Vulkan.Core10.BufferView: [$sel:vkFlags:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: [$sel:vkFormat:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkFormat
+ Graphics.Vulkan.Core10.BufferView: [$sel:vkOffset:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkDeviceSize
+ Graphics.Vulkan.Core10.BufferView: [$sel:vkPNext:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.BufferView: [$sel:vkRange:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkDeviceSize
+ Graphics.Vulkan.Core10.BufferView: [$sel:vkSType:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.BufferView: data VkBufferViewCreateInfo
+ Graphics.Vulkan.Core10.BufferView: instance Data.Bits.Bits Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo
+ Graphics.Vulkan.Core10.BufferView: instance GHC.Classes.Eq Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: instance GHC.Classes.Eq Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo
+ Graphics.Vulkan.Core10.BufferView: instance GHC.Classes.Ord Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: instance GHC.Read.Read Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: instance GHC.Show.Show Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: instance GHC.Show.Show Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo
+ Graphics.Vulkan.Core10.BufferView: newtype VkBufferViewCreateFlags
+ Graphics.Vulkan.Core10.BufferView: type VkBufferView = Ptr VkBufferView_T
+ Graphics.Vulkan.Core10.BufferView: vkCreateBufferView :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkBufferViewCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pView" ::: Ptr VkBufferView) -> IO VkResult
+ Graphics.Vulkan.Core10.BufferView: vkDestroyBufferView :: ("device" ::: VkDevice) -> ("bufferView" ::: VkBufferView) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.CommandBuffer: VkCommandBufferAllocateInfo :: VkStructureType -> Ptr () -> VkCommandPool -> VkCommandBufferLevel -> Word32 -> VkCommandBufferAllocateInfo
+ Graphics.Vulkan.Core10.CommandBuffer: VkCommandBufferBeginInfo :: VkStructureType -> Ptr () -> VkCommandBufferUsageFlags -> Ptr VkCommandBufferInheritanceInfo -> VkCommandBufferBeginInfo
+ Graphics.Vulkan.Core10.CommandBuffer: VkCommandBufferInheritanceInfo :: VkStructureType -> Ptr () -> VkRenderPass -> Word32 -> VkFramebuffer -> VkBool32 -> VkQueryControlFlags -> VkQueryPipelineStatisticFlags -> VkCommandBufferInheritanceInfo
+ Graphics.Vulkan.Core10.CommandBuffer: VkCommandBufferLevel :: Int32 -> VkCommandBufferLevel
+ Graphics.Vulkan.Core10.CommandBuffer: VkCommandBufferResetFlagBits :: VkFlags -> VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: VkCommandBufferUsageFlagBits :: VkFlags -> VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: VkQueryControlFlagBits :: VkFlags -> VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkCommandBufferCount:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> Word32
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkCommandPool:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkCommandPool
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkFlags:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> VkCommandBufferUsageFlags
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkFramebuffer:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkFramebuffer
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkLevel:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkCommandBufferLevel
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkOcclusionQueryEnable:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkBool32
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkPInheritanceInfo:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> Ptr VkCommandBufferInheritanceInfo
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkPNext:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkPNext:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> Ptr ()
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkPNext:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> Ptr ()
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkPipelineStatistics:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkQueryPipelineStatisticFlags
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkQueryFlags:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkQueryControlFlags
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkRenderPass:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkRenderPass
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkSType:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkSType:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> VkStructureType
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkSType:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkStructureType
+ Graphics.Vulkan.Core10.CommandBuffer: [$sel:vkSubpass:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> Word32
+ Graphics.Vulkan.Core10.CommandBuffer: data VkCommandBufferAllocateInfo
+ Graphics.Vulkan.Core10.CommandBuffer: data VkCommandBufferBeginInfo
+ Graphics.Vulkan.Core10.CommandBuffer: data VkCommandBufferInheritanceInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferAllocateInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferBeginInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel
+ Graphics.Vulkan.Core10.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferAllocateInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferBeginInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferAllocateInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferBeginInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: newtype VkCommandBufferLevel
+ Graphics.Vulkan.Core10.CommandBuffer: newtype VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: newtype VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: newtype VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: type VkCommandBufferResetFlags = VkCommandBufferResetFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: type VkCommandBufferUsageFlags = VkCommandBufferUsageFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: type VkQueryControlFlags = VkQueryControlFlagBits
+ Graphics.Vulkan.Core10.CommandBuffer: vkAllocateCommandBuffers :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkCommandBufferAllocateInfo) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO VkResult
+ Graphics.Vulkan.Core10.CommandBuffer: vkBeginCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("pBeginInfo" ::: Ptr VkCommandBufferBeginInfo) -> IO VkResult
+ Graphics.Vulkan.Core10.CommandBuffer: vkEndCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> IO VkResult
+ Graphics.Vulkan.Core10.CommandBuffer: vkFreeCommandBuffers :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO ()
+ Graphics.Vulkan.Core10.CommandBuffer: vkResetCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("flags" ::: VkCommandBufferResetFlags) -> IO VkResult
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkBufferCopy :: VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkBufferCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkBufferImageCopy :: VkDeviceSize -> Word32 -> Word32 -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkBufferImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkBufferMemoryBarrier :: VkStructureType -> Ptr () -> VkAccessFlags -> VkAccessFlags -> Word32 -> Word32 -> VkBuffer -> VkDeviceSize -> VkDeviceSize -> VkBufferMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkClearAttachment :: VkImageAspectFlags -> Word32 -> VkClearValue -> VkClearAttachment
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkClearDepthStencilValue :: CFloat -> Word32 -> VkClearDepthStencilValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkClearRect :: VkRect2D -> Word32 -> Word32 -> VkClearRect
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkColor :: VkClearColorValue -> VkClearValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkDepthStencil :: VkClearDepthStencilValue -> VkClearValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkDispatchIndirectCommand :: Word32 -> Word32 -> Word32 -> VkDispatchIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkDrawIndexedIndirectCommand :: Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> VkDrawIndexedIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkDrawIndirectCommand :: Word32 -> Word32 -> Word32 -> Word32 -> VkDrawIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkFloat32 :: (Vector 4 CFloat) -> VkClearColorValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkImageBlit :: VkImageSubresourceLayers -> Vector 2 VkOffset3D -> VkImageSubresourceLayers -> Vector 2 VkOffset3D -> VkImageBlit
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkImageCopy :: VkImageSubresourceLayers -> VkOffset3D -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkImageMemoryBarrier :: VkStructureType -> Ptr () -> VkAccessFlags -> VkAccessFlags -> VkImageLayout -> VkImageLayout -> Word32 -> Word32 -> VkImage -> VkImageSubresourceRange -> VkImageMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkImageResolve :: VkImageSubresourceLayers -> VkOffset3D -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkImageResolve
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkImageSubresourceLayers :: VkImageAspectFlags -> Word32 -> Word32 -> Word32 -> VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkIndexType :: Int32 -> VkIndexType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkInt32 :: (Vector 4 Int32) -> VkClearColorValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkMemoryBarrier :: VkStructureType -> Ptr () -> VkAccessFlags -> VkAccessFlags -> VkMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkRenderPassBeginInfo :: VkStructureType -> Ptr () -> VkRenderPass -> VkFramebuffer -> VkRect2D -> Word32 -> Ptr VkClearValue -> VkRenderPassBeginInfo
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkStencilFaceFlagBits :: VkFlags -> VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkSubpassContents :: Int32 -> VkSubpassContents
+ Graphics.Vulkan.Core10.CommandBufferBuilding: VkUint32 :: (Vector 4 Word32) -> VkClearColorValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkAspectMask:VkClearAttachment] :: VkClearAttachment -> VkImageAspectFlags
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkAspectMask:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> VkImageAspectFlags
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkBaseArrayLayer:VkClearRect] :: VkClearRect -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkBaseArrayLayer:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkBuffer:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkBuffer
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkBufferImageHeight:VkBufferImageCopy] :: VkBufferImageCopy -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkBufferOffset:VkBufferImageCopy] :: VkBufferImageCopy -> VkDeviceSize
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkBufferRowLength:VkBufferImageCopy] :: VkBufferImageCopy -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkClearValue:VkClearAttachment] :: VkClearAttachment -> VkClearValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkClearValueCount:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkColorAttachment:VkClearAttachment] :: VkClearAttachment -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDepth:VkClearDepthStencilValue] :: VkClearDepthStencilValue -> CFloat
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstAccessMask:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkAccessFlags
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstAccessMask:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkAccessFlags
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstAccessMask:VkMemoryBarrier] :: VkMemoryBarrier -> VkAccessFlags
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstOffset:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstOffset:VkImageCopy] :: VkImageCopy -> VkOffset3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstOffset:VkImageResolve] :: VkImageResolve -> VkOffset3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstOffsets:VkImageBlit] :: VkImageBlit -> Vector 2 VkOffset3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstQueueFamilyIndex:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstQueueFamilyIndex:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstSubresource:VkImageBlit] :: VkImageBlit -> VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstSubresource:VkImageCopy] :: VkImageCopy -> VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkDstSubresource:VkImageResolve] :: VkImageResolve -> VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkExtent:VkImageCopy] :: VkImageCopy -> VkExtent3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkExtent:VkImageResolve] :: VkImageResolve -> VkExtent3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkFirstIndex:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkFirstInstance:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkFirstInstance:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkFirstVertex:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkFramebuffer:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkFramebuffer
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkImage:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImage
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkImageExtent:VkBufferImageCopy] :: VkBufferImageCopy -> VkExtent3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkImageOffset:VkBufferImageCopy] :: VkBufferImageCopy -> VkOffset3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkImageSubresource:VkBufferImageCopy] :: VkBufferImageCopy -> VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkIndexCount:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkInstanceCount:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkInstanceCount:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkLayerCount:VkClearRect] :: VkClearRect -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkLayerCount:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkMipLevel:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkNewLayout:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageLayout
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkOffset:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkDeviceSize
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkOldLayout:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageLayout
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkPClearValues:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Ptr VkClearValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkPNext:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Ptr ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkPNext:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Ptr ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkPNext:VkMemoryBarrier] :: VkMemoryBarrier -> Ptr ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkPNext:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Ptr ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkRect:VkClearRect] :: VkClearRect -> VkRect2D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkRenderArea:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkRect2D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkRenderPass:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkRenderPass
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSType:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkStructureType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSType:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkStructureType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSType:VkMemoryBarrier] :: VkMemoryBarrier -> VkStructureType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSType:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkStructureType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSize:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSize:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkDeviceSize
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcAccessMask:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkAccessFlags
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcAccessMask:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkAccessFlags
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcAccessMask:VkMemoryBarrier] :: VkMemoryBarrier -> VkAccessFlags
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcOffset:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcOffset:VkImageCopy] :: VkImageCopy -> VkOffset3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcOffset:VkImageResolve] :: VkImageResolve -> VkOffset3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcOffsets:VkImageBlit] :: VkImageBlit -> Vector 2 VkOffset3D
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcQueueFamilyIndex:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcQueueFamilyIndex:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcSubresource:VkImageBlit] :: VkImageBlit -> VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcSubresource:VkImageCopy] :: VkImageCopy -> VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSrcSubresource:VkImageResolve] :: VkImageResolve -> VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkStencil:VkClearDepthStencilValue] :: VkClearDepthStencilValue -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkSubresourceRange:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageSubresourceRange
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkVertexCount:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkVertexOffset:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Int32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkX:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkY:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: [$sel:vkZ:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkBufferCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkBufferImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkBufferMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkClearAttachment
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkClearColorValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkClearDepthStencilValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkClearRect
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkClearValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkDispatchIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkDrawIndexedIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkDrawIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkImageBlit
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkImageMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkImageResolve
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: data VkRenderPassBeginInfo
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearAttachment
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearColorValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearDepthStencilValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearRect
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkDispatchIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndexedIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageBlit
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageResolve
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearAttachment
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearColorValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearDepthStencilValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearRect
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkDispatchIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndexedIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageBlit
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageResolve
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearAttachment
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearColorValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearDepthStencilValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearRect
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearValue
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkDispatchIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndexedIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndirectCommand
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageBlit
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageCopy
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageResolve
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageSubresourceLayers
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents
+ Graphics.Vulkan.Core10.CommandBufferBuilding: newtype VkIndexType
+ Graphics.Vulkan.Core10.CommandBufferBuilding: newtype VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: newtype VkSubpassContents
+ Graphics.Vulkan.Core10.CommandBufferBuilding: type VkStencilFaceFlags = VkStencilFaceFlagBits
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdBeginQuery :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("query" ::: Word32) -> ("flags" ::: VkQueryControlFlags) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdBeginRenderPass :: ("commandBuffer" ::: VkCommandBuffer) -> ("pRenderPassBegin" ::: Ptr VkRenderPassBeginInfo) -> ("contents" ::: VkSubpassContents) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdBindDescriptorSets :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineBindPoint" ::: VkPipelineBindPoint) -> ("layout" ::: VkPipelineLayout) -> ("firstSet" ::: Word32) -> ("descriptorSetCount" ::: Word32) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> ("dynamicOffsetCount" ::: Word32) -> ("pDynamicOffsets" ::: Ptr Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdBindIndexBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("indexType" ::: VkIndexType) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdBindPipeline :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineBindPoint" ::: VkPipelineBindPoint) -> ("pipeline" ::: VkPipeline) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdBindVertexBuffers :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr VkBuffer) -> ("pOffsets" ::: Ptr VkDeviceSize) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdBlitImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcImage" ::: VkImage) -> ("srcImageLayout" ::: VkImageLayout) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkImageBlit) -> ("filter" ::: VkFilter) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdClearAttachments :: ("commandBuffer" ::: VkCommandBuffer) -> ("attachmentCount" ::: Word32) -> ("pAttachments" ::: Ptr VkClearAttachment) -> ("rectCount" ::: Word32) -> ("pRects" ::: Ptr VkClearRect) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdClearColorImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("image" ::: VkImage) -> ("imageLayout" ::: VkImageLayout) -> ("pColor" ::: Ptr VkClearColorValue) -> ("rangeCount" ::: Word32) -> ("pRanges" ::: Ptr VkImageSubresourceRange) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdClearDepthStencilImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("image" ::: VkImage) -> ("imageLayout" ::: VkImageLayout) -> ("pDepthStencil" ::: Ptr VkClearDepthStencilValue) -> ("rangeCount" ::: Word32) -> ("pRanges" ::: Ptr VkImageSubresourceRange) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdCopyBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcBuffer" ::: VkBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkBufferCopy) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdCopyBufferToImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcBuffer" ::: VkBuffer) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkBufferImageCopy) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdCopyImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcImage" ::: VkImage) -> ("srcImageLayout" ::: VkImageLayout) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkImageCopy) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdCopyImageToBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcImage" ::: VkImage) -> ("srcImageLayout" ::: VkImageLayout) -> ("dstBuffer" ::: VkBuffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkBufferImageCopy) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdCopyQueryPoolResults :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("stride" ::: VkDeviceSize) -> ("flags" ::: VkQueryResultFlags) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdDispatch :: ("commandBuffer" ::: VkCommandBuffer) -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdDispatchIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdDraw :: ("commandBuffer" ::: VkCommandBuffer) -> ("vertexCount" ::: Word32) -> ("instanceCount" ::: Word32) -> ("firstVertex" ::: Word32) -> ("firstInstance" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdDrawIndexed :: ("commandBuffer" ::: VkCommandBuffer) -> ("indexCount" ::: Word32) -> ("instanceCount" ::: Word32) -> ("firstIndex" ::: Word32) -> ("vertexOffset" ::: Int32) -> ("firstInstance" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdDrawIndexedIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdDrawIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdEndQuery :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("query" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdEndRenderPass :: ("commandBuffer" ::: VkCommandBuffer) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdExecuteCommands :: ("commandBuffer" ::: VkCommandBuffer) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdFillBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("size" ::: VkDeviceSize) -> ("data" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdNextSubpass :: ("commandBuffer" ::: VkCommandBuffer) -> ("contents" ::: VkSubpassContents) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdPipelineBarrier :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcStageMask" ::: VkPipelineStageFlags) -> ("dstStageMask" ::: VkPipelineStageFlags) -> ("dependencyFlags" ::: VkDependencyFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr VkMemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr VkBufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr VkImageMemoryBarrier) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdPushConstants :: ("commandBuffer" ::: VkCommandBuffer) -> ("layout" ::: VkPipelineLayout) -> ("stageFlags" ::: VkShaderStageFlags) -> ("offset" ::: Word32) -> ("size" ::: Word32) -> ("pValues" ::: Ptr ()) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdResetEvent :: ("commandBuffer" ::: VkCommandBuffer) -> ("event" ::: VkEvent) -> ("stageMask" ::: VkPipelineStageFlags) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdResetQueryPool :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdResolveImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcImage" ::: VkImage) -> ("srcImageLayout" ::: VkImageLayout) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkImageResolve) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetBlendConstants :: ("commandBuffer" ::: VkCommandBuffer) -> ("blendConstants" ::: Ptr CFloat) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetDepthBias :: ("commandBuffer" ::: VkCommandBuffer) -> ("depthBiasConstantFactor" ::: CFloat) -> ("depthBiasClamp" ::: CFloat) -> ("depthBiasSlopeFactor" ::: CFloat) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetDepthBounds :: ("commandBuffer" ::: VkCommandBuffer) -> ("minDepthBounds" ::: CFloat) -> ("maxDepthBounds" ::: CFloat) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetEvent :: ("commandBuffer" ::: VkCommandBuffer) -> ("event" ::: VkEvent) -> ("stageMask" ::: VkPipelineStageFlags) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetLineWidth :: ("commandBuffer" ::: VkCommandBuffer) -> ("lineWidth" ::: CFloat) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetScissor :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstScissor" ::: Word32) -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr VkRect2D) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetStencilCompareMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("compareMask" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetStencilReference :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("reference" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetStencilWriteMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("writeMask" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdSetViewport :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr VkViewport) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdUpdateBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("dataSize" ::: VkDeviceSize) -> ("pData" ::: Ptr ()) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdWaitEvents :: ("commandBuffer" ::: VkCommandBuffer) -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr VkEvent) -> ("srcStageMask" ::: VkPipelineStageFlags) -> ("dstStageMask" ::: VkPipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr VkMemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr VkBufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr VkImageMemoryBarrier) -> IO ()
+ Graphics.Vulkan.Core10.CommandBufferBuilding: vkCmdWriteTimestamp :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineStage" ::: VkPipelineStageFlagBits) -> ("queryPool" ::: VkQueryPool) -> ("query" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core10.CommandPool: VkCommandPoolCreateFlagBits :: VkFlags -> VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: VkCommandPoolCreateInfo :: VkStructureType -> Ptr () -> VkCommandPoolCreateFlags -> Word32 -> VkCommandPoolCreateInfo
+ Graphics.Vulkan.Core10.CommandPool: VkCommandPoolResetFlagBits :: VkFlags -> VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: [$sel:vkFlags:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> VkCommandPoolCreateFlags
+ Graphics.Vulkan.Core10.CommandPool: [$sel:vkPNext:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.CommandPool: [$sel:vkQueueFamilyIndex:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> Word32
+ Graphics.Vulkan.Core10.CommandPool: [$sel:vkSType:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.CommandPool: data VkCommandPoolCreateInfo
+ Graphics.Vulkan.Core10.CommandPool: instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo
+ Graphics.Vulkan.Core10.CommandPool: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Read.Read Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo
+ Graphics.Vulkan.Core10.CommandPool: instance GHC.Show.Show Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: newtype VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: newtype VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: type VkCommandPool = Ptr VkCommandPool_T
+ Graphics.Vulkan.Core10.CommandPool: type VkCommandPoolCreateFlags = VkCommandPoolCreateFlagBits
+ Graphics.Vulkan.Core10.CommandPool: type VkCommandPoolResetFlags = VkCommandPoolResetFlagBits
+ Graphics.Vulkan.Core10.CommandPool: vkCreateCommandPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkCommandPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pCommandPool" ::: Ptr VkCommandPool) -> IO VkResult
+ Graphics.Vulkan.Core10.CommandPool: vkDestroyCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.CommandPool: vkResetCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolResetFlags) -> IO VkResult
+ Graphics.Vulkan.Core10.Constants: VkPipelineCacheHeaderVersion :: Int32 -> VkPipelineCacheHeaderVersion
+ Graphics.Vulkan.Core10.Constants: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion
+ Graphics.Vulkan.Core10.Constants: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion
+ Graphics.Vulkan.Core10.Constants: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion
+ Graphics.Vulkan.Core10.Constants: instance GHC.Read.Read Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion
+ Graphics.Vulkan.Core10.Constants: instance GHC.Show.Show Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion
+ Graphics.Vulkan.Core10.Constants: newtype VkPipelineCacheHeaderVersion
+ Graphics.Vulkan.Core10.Core: VkBool32 :: Int32 -> VkBool32
+ Graphics.Vulkan.Core10.Core: VkFormat :: Int32 -> VkFormat
+ Graphics.Vulkan.Core10.Core: VkObjectType :: Int32 -> VkObjectType
+ Graphics.Vulkan.Core10.Core: VkResult :: Int32 -> VkResult
+ Graphics.Vulkan.Core10.Core: VkStructureType :: Int32 -> VkStructureType
+ Graphics.Vulkan.Core10.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkBool32
+ Graphics.Vulkan.Core10.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkFormat
+ Graphics.Vulkan.Core10.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkObjectType
+ Graphics.Vulkan.Core10.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkResult
+ Graphics.Vulkan.Core10.Core: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkStructureType
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkBool32
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkFormat
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkObjectType
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkResult
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkStructureType
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkBool32
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkFormat
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkObjectType
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkResult
+ Graphics.Vulkan.Core10.Core: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkStructureType
+ Graphics.Vulkan.Core10.Core: instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkBool32
+ Graphics.Vulkan.Core10.Core: instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkFormat
+ Graphics.Vulkan.Core10.Core: instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkObjectType
+ Graphics.Vulkan.Core10.Core: instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkResult
+ Graphics.Vulkan.Core10.Core: instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkStructureType
+ Graphics.Vulkan.Core10.Core: instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkBool32
+ Graphics.Vulkan.Core10.Core: instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkFormat
+ Graphics.Vulkan.Core10.Core: instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkObjectType
+ Graphics.Vulkan.Core10.Core: instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkResult
+ Graphics.Vulkan.Core10.Core: instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkStructureType
+ Graphics.Vulkan.Core10.Core: newtype VkBool32
+ Graphics.Vulkan.Core10.Core: newtype VkFormat
+ Graphics.Vulkan.Core10.Core: newtype VkObjectType
+ Graphics.Vulkan.Core10.Core: newtype VkResult
+ Graphics.Vulkan.Core10.Core: newtype VkStructureType
+ Graphics.Vulkan.Core10.Core: type VkFlags = Word32
+ Graphics.Vulkan.Core10.DescriptorSet: VkCopyDescriptorSet :: VkStructureType -> Ptr () -> VkDescriptorSet -> Word32 -> Word32 -> VkDescriptorSet -> Word32 -> Word32 -> Word32 -> VkCopyDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorBufferInfo :: VkBuffer -> VkDeviceSize -> VkDeviceSize -> VkDescriptorBufferInfo
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorImageInfo :: VkSampler -> VkImageView -> VkImageLayout -> VkDescriptorImageInfo
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorPoolCreateFlagBits :: VkFlags -> VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorPoolCreateInfo :: VkStructureType -> Ptr () -> VkDescriptorPoolCreateFlags -> Word32 -> Word32 -> Ptr VkDescriptorPoolSize -> VkDescriptorPoolCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorPoolResetFlags :: VkFlags -> VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorPoolSize :: VkDescriptorType -> Word32 -> VkDescriptorPoolSize
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorSetAllocateInfo :: VkStructureType -> Ptr () -> VkDescriptorPool -> Word32 -> Ptr VkDescriptorSetLayout -> VkDescriptorSetAllocateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorSetLayoutBinding :: Word32 -> VkDescriptorType -> Word32 -> VkShaderStageFlags -> Ptr VkSampler -> VkDescriptorSetLayoutBinding
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorSetLayoutCreateFlagBits :: VkFlags -> VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorSetLayoutCreateInfo :: VkStructureType -> Ptr () -> VkDescriptorSetLayoutCreateFlags -> Word32 -> Ptr VkDescriptorSetLayoutBinding -> VkDescriptorSetLayoutCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: VkDescriptorType :: Int32 -> VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: VkWriteDescriptorSet :: VkStructureType -> Ptr () -> VkDescriptorSet -> Word32 -> Word32 -> Word32 -> VkDescriptorType -> Ptr VkDescriptorImageInfo -> Ptr VkDescriptorBufferInfo -> Ptr VkBufferView -> VkWriteDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkBinding:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkBindingCount:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkBuffer:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkBuffer
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDescriptorCount:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDescriptorCount:VkDescriptorPoolSize] :: VkDescriptorPoolSize -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDescriptorCount:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDescriptorCount:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDescriptorPool:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> VkDescriptorPool
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDescriptorSetCount:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDescriptorType:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDescriptorType:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDstArrayElement:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDstArrayElement:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDstBinding:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDstBinding:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDstSet:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkDstSet:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkFlags:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> VkDescriptorPoolCreateFlags
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkFlags:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> VkDescriptorSetLayoutCreateFlags
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkImageLayout:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkImageLayout
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkImageView:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkImageView
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkMaxSets:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkOffset:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkDeviceSize
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPBindings:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Ptr VkDescriptorSetLayoutBinding
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPBufferInfo:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkDescriptorBufferInfo
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPImageInfo:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkDescriptorImageInfo
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPImmutableSamplers:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Ptr VkSampler
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPNext:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Ptr ()
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPNext:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPNext:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPNext:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPNext:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr ()
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPPoolSizes:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Ptr VkDescriptorPoolSize
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPSetLayouts:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Ptr VkDescriptorSetLayout
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPTexelBufferView:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkBufferView
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkPoolSizeCount:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkRange:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkDeviceSize
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSType:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkStructureType
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSType:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSType:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSType:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSType:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkStructureType
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSampler:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkSampler
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSrcArrayElement:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSrcBinding:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkSrcSet:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkStageFlags:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> VkShaderStageFlags
+ Graphics.Vulkan.Core10.DescriptorSet: [$sel:vkType:VkDescriptorPoolSize] :: VkDescriptorPoolSize -> VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: data VkCopyDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: data VkDescriptorBufferInfo
+ Graphics.Vulkan.Core10.DescriptorSet: data VkDescriptorImageInfo
+ Graphics.Vulkan.Core10.DescriptorSet: data VkDescriptorPoolCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: data VkDescriptorPoolSize
+ Graphics.Vulkan.Core10.DescriptorSet: data VkDescriptorSetAllocateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: data VkDescriptorSetLayoutBinding
+ Graphics.Vulkan.Core10.DescriptorSet: data VkDescriptorSetLayoutCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: data VkWriteDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: instance Data.Bits.Bits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance Data.Bits.Bits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: instance Data.Bits.Bits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkCopyDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolSize
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutBinding
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkCopyDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolSize
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutBinding
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Read.Read Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Read.Read Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Read.Read Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Read.Read Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkCopyDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolSize
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutBinding
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet
+ Graphics.Vulkan.Core10.DescriptorSet: newtype VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: newtype VkDescriptorPoolResetFlags
+ Graphics.Vulkan.Core10.DescriptorSet: newtype VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: newtype VkDescriptorType
+ Graphics.Vulkan.Core10.DescriptorSet: type VkDescriptorPool = Ptr VkDescriptorPool_T
+ Graphics.Vulkan.Core10.DescriptorSet: type VkDescriptorPoolCreateFlags = VkDescriptorPoolCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: type VkDescriptorSet = Ptr VkDescriptorSet_T
+ Graphics.Vulkan.Core10.DescriptorSet: type VkDescriptorSetLayoutCreateFlags = VkDescriptorSetLayoutCreateFlagBits
+ Graphics.Vulkan.Core10.DescriptorSet: vkAllocateDescriptorSets :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkDescriptorSetAllocateInfo) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult
+ Graphics.Vulkan.Core10.DescriptorSet: vkCreateDescriptorPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorPool" ::: Ptr VkDescriptorPool) -> IO VkResult
+ Graphics.Vulkan.Core10.DescriptorSet: vkCreateDescriptorSetLayout :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSetLayout" ::: Ptr VkDescriptorSetLayout) -> IO VkResult
+ Graphics.Vulkan.Core10.DescriptorSet: vkDestroyDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.DescriptorSet: vkDestroyDescriptorSetLayout :: ("device" ::: VkDevice) -> ("descriptorSetLayout" ::: VkDescriptorSetLayout) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.DescriptorSet: vkFreeDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("descriptorSetCount" ::: Word32) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult
+ Graphics.Vulkan.Core10.DescriptorSet: vkResetDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("flags" ::: VkDescriptorPoolResetFlags) -> IO VkResult
+ Graphics.Vulkan.Core10.DescriptorSet: vkUpdateDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr VkWriteDescriptorSet) -> ("descriptorCopyCount" ::: Word32) -> ("pDescriptorCopies" ::: Ptr VkCopyDescriptorSet) -> IO ()
+ Graphics.Vulkan.Core10.Device: VkDeviceCreateFlags :: VkFlags -> VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: VkDeviceCreateInfo :: VkStructureType -> Ptr () -> VkDeviceCreateFlags -> Word32 -> Ptr VkDeviceQueueCreateInfo -> Word32 -> Ptr (Ptr CChar) -> Word32 -> Ptr (Ptr CChar) -> Ptr VkPhysicalDeviceFeatures -> VkDeviceCreateInfo
+ Graphics.Vulkan.Core10.Device: VkDeviceQueueCreateFlagBits :: VkFlags -> VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: VkDeviceQueueCreateInfo :: VkStructureType -> Ptr () -> VkDeviceQueueCreateFlags -> Word32 -> Word32 -> Ptr CFloat -> VkDeviceQueueCreateInfo
+ Graphics.Vulkan.Core10.Device: [$sel:vkEnabledExtensionCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Device: [$sel:vkEnabledLayerCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Device: [$sel:vkFlags:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: [$sel:vkFlags:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> VkDeviceQueueCreateFlags
+ Graphics.Vulkan.Core10.Device: [$sel:vkPEnabledFeatures:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr VkPhysicalDeviceFeatures
+ Graphics.Vulkan.Core10.Device: [$sel:vkPNext:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Device: [$sel:vkPNext:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Device: [$sel:vkPPEnabledExtensionNames:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr (Ptr CChar)
+ Graphics.Vulkan.Core10.Device: [$sel:vkPPEnabledLayerNames:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr (Ptr CChar)
+ Graphics.Vulkan.Core10.Device: [$sel:vkPQueueCreateInfos:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr VkDeviceQueueCreateInfo
+ Graphics.Vulkan.Core10.Device: [$sel:vkPQueuePriorities:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Ptr CFloat
+ Graphics.Vulkan.Core10.Device: [$sel:vkQueueCount:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Device: [$sel:vkQueueCreateInfoCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Device: [$sel:vkQueueFamilyIndex:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Device: [$sel:vkSType:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Device: [$sel:vkSType:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Device: data VkDeviceCreateInfo
+ Graphics.Vulkan.Core10.Device: data VkDeviceQueueCreateInfo
+ Graphics.Vulkan.Core10.Device: instance Data.Bits.Bits Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: instance Data.Bits.Bits Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo
+ Graphics.Vulkan.Core10.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateInfo
+ Graphics.Vulkan.Core10.Device: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo
+ Graphics.Vulkan.Core10.Device: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateInfo
+ Graphics.Vulkan.Core10.Device: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: instance GHC.Read.Read Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: instance GHC.Read.Read Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: instance GHC.Show.Show Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: instance GHC.Show.Show Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo
+ Graphics.Vulkan.Core10.Device: instance GHC.Show.Show Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: instance GHC.Show.Show Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateInfo
+ Graphics.Vulkan.Core10.Device: newtype VkDeviceCreateFlags
+ Graphics.Vulkan.Core10.Device: newtype VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: type VkDeviceQueueCreateFlags = VkDeviceQueueCreateFlagBits
+ Graphics.Vulkan.Core10.Device: vkCreateDevice :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pCreateInfo" ::: Ptr VkDeviceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDevice" ::: Ptr VkDevice) -> IO VkResult
+ Graphics.Vulkan.Core10.Device: vkDestroyDevice :: ("device" ::: VkDevice) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.DeviceInitialization: VkAllocationCallbacks :: Ptr () -> PFN_vkAllocationFunction -> PFN_vkReallocationFunction -> PFN_vkFreeFunction -> PFN_vkInternalAllocationNotification -> PFN_vkInternalFreeNotification -> VkAllocationCallbacks
+ Graphics.Vulkan.Core10.DeviceInitialization: VkApplicationInfo :: VkStructureType -> Ptr () -> Ptr CChar -> Word32 -> Ptr CChar -> Word32 -> Word32 -> VkApplicationInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: VkExtent3D :: Word32 -> Word32 -> Word32 -> VkExtent3D
+ Graphics.Vulkan.Core10.DeviceInitialization: VkFormatFeatureFlagBits :: VkFlags -> VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: VkFormatProperties :: VkFormatFeatureFlags -> VkFormatFeatureFlags -> VkFormatFeatureFlags -> VkFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: VkImageCreateFlagBits :: VkFlags -> VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: VkImageFormatProperties :: VkExtent3D -> Word32 -> Word32 -> VkSampleCountFlags -> VkDeviceSize -> VkImageFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: VkImageTiling :: Int32 -> VkImageTiling
+ Graphics.Vulkan.Core10.DeviceInitialization: VkImageType :: Int32 -> VkImageType
+ Graphics.Vulkan.Core10.DeviceInitialization: VkImageUsageFlagBits :: VkFlags -> VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: VkInstanceCreateFlags :: VkFlags -> VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: VkInstanceCreateInfo :: VkStructureType -> Ptr () -> VkInstanceCreateFlags -> Ptr VkApplicationInfo -> Word32 -> Ptr (Ptr CChar) -> Word32 -> Ptr (Ptr CChar) -> VkInstanceCreateInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: VkInternalAllocationType :: Int32 -> VkInternalAllocationType
+ Graphics.Vulkan.Core10.DeviceInitialization: VkMemoryHeap :: VkDeviceSize -> VkMemoryHeapFlags -> VkMemoryHeap
+ Graphics.Vulkan.Core10.DeviceInitialization: VkMemoryHeapFlagBits :: VkFlags -> VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: VkMemoryPropertyFlagBits :: VkFlags -> VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: VkMemoryType :: VkMemoryPropertyFlags -> Word32 -> VkMemoryType
+ Graphics.Vulkan.Core10.DeviceInitialization: VkPhysicalDeviceFeatures :: VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceFeatures
+ Graphics.Vulkan.Core10.DeviceInitialization: VkPhysicalDeviceLimits :: Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkDeviceSize -> VkDeviceSize -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Vector 3 Word32 -> Word32 -> Vector 3 Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> CFloat -> CFloat -> Word32 -> Vector 2 Word32 -> Vector 2 CFloat -> Word32 -> CSize -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> Int32 -> Word32 -> Int32 -> Word32 -> CFloat -> CFloat -> Word32 -> Word32 -> Word32 -> Word32 -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> Word32 -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> VkSampleCountFlags -> Word32 -> VkBool32 -> CFloat -> Word32 -> Word32 -> Word32 -> Word32 -> Vector 2 CFloat -> Vector 2 CFloat -> CFloat -> CFloat -> VkBool32 -> VkBool32 -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkPhysicalDeviceLimits
+ Graphics.Vulkan.Core10.DeviceInitialization: VkPhysicalDeviceMemoryProperties :: Word32 -> Vector VK_MAX_MEMORY_TYPES VkMemoryType -> Word32 -> Vector VK_MAX_MEMORY_HEAPS VkMemoryHeap -> VkPhysicalDeviceMemoryProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: VkPhysicalDeviceProperties :: Word32 -> Word32 -> Word32 -> Word32 -> VkPhysicalDeviceType -> Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar -> Vector VK_UUID_SIZE Word8 -> VkPhysicalDeviceLimits -> VkPhysicalDeviceSparseProperties -> VkPhysicalDeviceProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: VkPhysicalDeviceSparseProperties :: VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceSparseProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: VkPhysicalDeviceType :: Int32 -> VkPhysicalDeviceType
+ Graphics.Vulkan.Core10.DeviceInitialization: VkQueueFamilyProperties :: VkQueueFlags -> Word32 -> Word32 -> VkExtent3D -> VkQueueFamilyProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: VkQueueFlagBits :: VkFlags -> VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: VkSampleCountFlagBits :: VkFlags -> VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: VkSystemAllocationScope :: Int32 -> VkSystemAllocationScope
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkAlphaToOne:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkApiVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkApiVersion:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkApplicationVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkBufferFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkBufferImageGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDepth:VkExtent3D] :: VkExtent3D -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDepthBiasClamp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDepthBounds:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDepthClamp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDeviceID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDeviceName:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDeviceType:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceType
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDiscreteQueuePriorities:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDrawIndirectFirstInstance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDriverVersion:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkDualSrcBlend:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkEnabledExtensionCount:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkEnabledLayerCount:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkEngineVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFillModeNonSolid:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFlags:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFlags:VkMemoryHeap] :: VkMemoryHeap -> VkMemoryHeapFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFragmentStoresAndAtomics:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFramebufferColorSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFramebufferDepthSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFramebufferNoAttachmentsSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFramebufferStencilSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkFullDrawIndexUint32:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkGeometryShader:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkHeapIndex:VkMemoryType] :: VkMemoryType -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkHeight:VkExtent3D] :: VkExtent3D -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkImageCubeArray:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkIndependentBlend:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkInheritedQueries:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkLargePoints:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkLimits:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceLimits
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkLineWidthGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkLineWidthRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkLinearTilingFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkLogicOp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxArrayLayers:VkImageFormatProperties] :: VkImageFormatProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxBoundDescriptorSets:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxClipDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxColorAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxCombinedClipAndCullDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxComputeSharedMemorySize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxComputeWorkGroupCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 3 Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxComputeWorkGroupInvocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxComputeWorkGroupSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 3 Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxCullDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDescriptorSetInputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDescriptorSetSampledImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDescriptorSetSamplers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDescriptorSetStorageBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDescriptorSetStorageBuffersDynamic:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDescriptorSetStorageImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDescriptorSetUniformBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDescriptorSetUniformBuffersDynamic:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDrawIndexedIndexValue:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxDrawIndirectCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxExtent:VkImageFormatProperties] :: VkImageFormatProperties -> VkExtent3D
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxFragmentCombinedOutputResources:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxFragmentDualSrcAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxFragmentInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxFragmentOutputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxFramebufferHeight:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxFramebufferLayers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxFramebufferWidth:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxGeometryInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxGeometryOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxGeometryOutputVertices:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxGeometryShaderInvocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxGeometryTotalOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxImageArrayLayers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxImageDimension1D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxImageDimension2D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxImageDimension3D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxImageDimensionCube:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxInterpolationOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxMemoryAllocationCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxMipLevels:VkImageFormatProperties] :: VkImageFormatProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxPerStageDescriptorInputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxPerStageDescriptorSampledImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxPerStageDescriptorSamplers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxPerStageDescriptorStorageBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxPerStageDescriptorStorageImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxPerStageDescriptorUniformBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxPerStageResources:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxPushConstantsSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxResourceSize:VkImageFormatProperties] :: VkImageFormatProperties -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxSampleMaskWords:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxSamplerAllocationCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxSamplerAnisotropy:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxSamplerLodBias:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxStorageBufferRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTessellationControlPerPatchOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTessellationControlPerVertexInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTessellationControlPerVertexOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTessellationControlTotalOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTessellationEvaluationInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTessellationEvaluationOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTessellationGenerationLevel:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTessellationPatchSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTexelBufferElements:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTexelGatherOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxTexelOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxUniformBufferRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxVertexInputAttributeOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxVertexInputAttributes:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxVertexInputBindingStride:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxVertexInputBindings:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxVertexOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxViewportDimensions:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMaxViewports:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMemoryHeapCount:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMemoryHeaps:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Vector VK_MAX_MEMORY_HEAPS VkMemoryHeap
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMemoryTypeCount:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMemoryTypes:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Vector VK_MAX_MEMORY_TYPES VkMemoryType
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMinImageTransferGranularity:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> VkExtent3D
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMinInterpolationOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMinMemoryMapAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMinStorageBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMinTexelBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMinTexelGatherOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Int32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMinTexelOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Int32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMinUniformBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMipmapPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMultiDrawIndirect:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkMultiViewport:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkNonCoherentAtomSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkOcclusionQueryPrecise:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkOptimalBufferCopyOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkOptimalBufferCopyRowPitchAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkOptimalTilingFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPApplicationInfo:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr VkApplicationInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPApplicationName:VkApplicationInfo] :: VkApplicationInfo -> Ptr CChar
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPEngineName:VkApplicationInfo] :: VkApplicationInfo -> Ptr CChar
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPNext:VkApplicationInfo] :: VkApplicationInfo -> Ptr ()
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPNext:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPPEnabledExtensionNames:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr (Ptr CChar)
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPPEnabledLayerNames:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr (Ptr CChar)
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPUserData:VkAllocationCallbacks] :: VkAllocationCallbacks -> Ptr ()
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPfnAllocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkAllocationFunction
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPfnFree:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkFreeFunction
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPfnInternalAllocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkInternalAllocationNotification
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPfnInternalFree:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkInternalFreeNotification
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPfnReallocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkReallocationFunction
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPipelineCacheUUID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Vector VK_UUID_SIZE Word8
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPipelineStatisticsQuery:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPointSizeGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPointSizeRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkPropertyFlags:VkMemoryType] :: VkMemoryType -> VkMemoryPropertyFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkQueueCount:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkQueueFlags:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> VkQueueFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkResidencyAlignedMipSize:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkResidencyNonResidentStrict:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkResidencyStandard2DBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkResidencyStandard2DMultisampleBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkResidencyStandard3DBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkRobustBufferAccess:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSType:VkApplicationInfo] :: VkApplicationInfo -> VkStructureType
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSType:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSampleCounts:VkImageFormatProperties] :: VkImageFormatProperties -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSampleRateShading:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSampledImageColorSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSampledImageDepthSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSampledImageIntegerSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSampledImageStencilSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSamplerAnisotropy:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderClipDistance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderCullDistance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderFloat64:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderImageGatherExtended:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderInt16:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderInt64:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderResourceMinLod:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderResourceResidency:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderSampledImageArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderStorageBufferArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderStorageImageArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderStorageImageExtendedFormats:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderStorageImageMultisample:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderStorageImageReadWithoutFormat:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderStorageImageWriteWithoutFormat:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderTessellationAndGeometryPointSize:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkShaderUniformBufferArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSize:VkMemoryHeap] :: VkMemoryHeap -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseAddressSpaceSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseBinding:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseProperties:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceSparseProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseResidency16Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseResidency2Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseResidency4Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseResidency8Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseResidencyAliased:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseResidencyBuffer:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseResidencyImage2D:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSparseResidencyImage3D:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkStandardSampleLocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkStorageImageSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkStrictLines:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSubPixelInterpolationOffsetBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSubPixelPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkSubTexelPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkTessellationShader:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkTextureCompressionASTC_LDR:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkTextureCompressionBC:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkTextureCompressionETC2:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkTimestampComputeAndGraphics:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkTimestampPeriod:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkTimestampValidBits:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkVariableMultisampleRate:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkVendorID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkVertexPipelineStoresAndAtomics:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkViewportBoundsRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkViewportSubPixelBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkWideLines:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32
+ Graphics.Vulkan.Core10.DeviceInitialization: [$sel:vkWidth:VkExtent3D] :: VkExtent3D -> Word32
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkAllocationCallbacks
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkApplicationInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkExtent3D
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkImageFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkInstanceCreateInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkMemoryHeap
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkMemoryType
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkPhysicalDeviceFeatures
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkPhysicalDeviceLimits
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkPhysicalDeviceMemoryProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkPhysicalDeviceProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkPhysicalDeviceSparseProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: data VkQueueFamilyProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeap
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceSparseProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeap
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceSparseProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkImageType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkImageType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateInfo
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeap
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceSparseProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkImageTiling
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkImageType
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkInstanceCreateFlags
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkInternalAllocationType
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkPhysicalDeviceType
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: newtype VkSystemAllocationScope
+ Graphics.Vulkan.Core10.DeviceInitialization: type PFN_vkAllocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ()))
+ Graphics.Vulkan.Core10.DeviceInitialization: type PFN_vkFreeFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pMemory" ::: Ptr ()) -> IO ())
+ Graphics.Vulkan.Core10.DeviceInitialization: type PFN_vkInternalAllocationNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ())
+ Graphics.Vulkan.Core10.DeviceInitialization: type PFN_vkInternalFreeNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ())
+ Graphics.Vulkan.Core10.DeviceInitialization: type PFN_vkReallocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pOriginal" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ()))
+ Graphics.Vulkan.Core10.DeviceInitialization: type PFN_vkVoidFunction = Ptr (() -> IO ())
+ Graphics.Vulkan.Core10.DeviceInitialization: type VK_MAX_MEMORY_HEAPS = 16
+ Graphics.Vulkan.Core10.DeviceInitialization: type VK_MAX_MEMORY_TYPES = 32
+ Graphics.Vulkan.Core10.DeviceInitialization: type VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256
+ Graphics.Vulkan.Core10.DeviceInitialization: type VK_UUID_SIZE = 16
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkDevice = Ptr VkDevice_T
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkDeviceSize = Word64
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkFormatFeatureFlags = VkFormatFeatureFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkImageCreateFlags = VkImageCreateFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkImageUsageFlags = VkImageUsageFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkInstance = Ptr VkInstance_T
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkMemoryHeapFlags = VkMemoryHeapFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkMemoryPropertyFlags = VkMemoryPropertyFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkPhysicalDevice = Ptr VkPhysicalDevice_T
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkQueueFlags = VkQueueFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: type VkSampleCountFlags = VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.DeviceInitialization: vkCreateInstance :: ("pCreateInfo" ::: Ptr VkInstanceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pInstance" ::: Ptr VkInstance) -> IO VkResult
+ Graphics.Vulkan.Core10.DeviceInitialization: vkDestroyInstance :: ("instance" ::: VkInstance) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.DeviceInitialization: vkEnumeratePhysicalDevices :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr VkPhysicalDevice) -> IO VkResult
+ Graphics.Vulkan.Core10.DeviceInitialization: vkGetDeviceProcAddr :: ("device" ::: VkDevice) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction
+ Graphics.Vulkan.Core10.DeviceInitialization: vkGetInstanceProcAddr :: ("instance" ::: VkInstance) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction
+ Graphics.Vulkan.Core10.DeviceInitialization: vkGetPhysicalDeviceFeatures :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures) -> IO ()
+ Graphics.Vulkan.Core10.DeviceInitialization: vkGetPhysicalDeviceFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties) -> IO ()
+ Graphics.Vulkan.Core10.DeviceInitialization: vkGetPhysicalDeviceImageFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("tiling" ::: VkImageTiling) -> ("usage" ::: VkImageUsageFlags) -> ("flags" ::: VkImageCreateFlags) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties) -> IO VkResult
+ Graphics.Vulkan.Core10.DeviceInitialization: vkGetPhysicalDeviceMemoryProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties) -> IO ()
+ Graphics.Vulkan.Core10.DeviceInitialization: vkGetPhysicalDeviceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties) -> IO ()
+ Graphics.Vulkan.Core10.DeviceInitialization: vkGetPhysicalDeviceQueueFamilyProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties) -> IO ()
+ Graphics.Vulkan.Core10.Event: VkEventCreateFlags :: VkFlags -> VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: VkEventCreateInfo :: VkStructureType -> Ptr () -> VkEventCreateFlags -> VkEventCreateInfo
+ Graphics.Vulkan.Core10.Event: [$sel:vkFlags:VkEventCreateInfo] :: VkEventCreateInfo -> VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: [$sel:vkPNext:VkEventCreateInfo] :: VkEventCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Event: [$sel:vkSType:VkEventCreateInfo] :: VkEventCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Event: data VkEventCreateInfo
+ Graphics.Vulkan.Core10.Event: instance Data.Bits.Bits Graphics.Vulkan.Core10.Event.VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Event.VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Event.VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Event.VkEventCreateInfo
+ Graphics.Vulkan.Core10.Event: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Event.VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Event.VkEventCreateInfo
+ Graphics.Vulkan.Core10.Event: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Event.VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: instance GHC.Read.Read Graphics.Vulkan.Core10.Event.VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: instance GHC.Show.Show Graphics.Vulkan.Core10.Event.VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: instance GHC.Show.Show Graphics.Vulkan.Core10.Event.VkEventCreateInfo
+ Graphics.Vulkan.Core10.Event: newtype VkEventCreateFlags
+ Graphics.Vulkan.Core10.Event: type VkEvent = Ptr VkEvent_T
+ Graphics.Vulkan.Core10.Event: vkCreateEvent :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkEventCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pEvent" ::: Ptr VkEvent) -> IO VkResult
+ Graphics.Vulkan.Core10.Event: vkDestroyEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Event: vkGetEventStatus :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult
+ Graphics.Vulkan.Core10.Event: vkResetEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult
+ Graphics.Vulkan.Core10.Event: vkSetEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult
+ Graphics.Vulkan.Core10.ExtensionDiscovery: VkExtensionProperties :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar -> Word32 -> VkExtensionProperties
+ Graphics.Vulkan.Core10.ExtensionDiscovery: [$sel:vkExtensionName:VkExtensionProperties] :: VkExtensionProperties -> Vector VK_MAX_EXTENSION_NAME_SIZE CChar
+ Graphics.Vulkan.Core10.ExtensionDiscovery: [$sel:vkSpecVersion:VkExtensionProperties] :: VkExtensionProperties -> Word32
+ Graphics.Vulkan.Core10.ExtensionDiscovery: data VkExtensionProperties
+ Graphics.Vulkan.Core10.ExtensionDiscovery: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ExtensionDiscovery.VkExtensionProperties
+ Graphics.Vulkan.Core10.ExtensionDiscovery: instance GHC.Classes.Eq Graphics.Vulkan.Core10.ExtensionDiscovery.VkExtensionProperties
+ Graphics.Vulkan.Core10.ExtensionDiscovery: instance GHC.Show.Show Graphics.Vulkan.Core10.ExtensionDiscovery.VkExtensionProperties
+ Graphics.Vulkan.Core10.ExtensionDiscovery: type VK_MAX_EXTENSION_NAME_SIZE = 256
+ Graphics.Vulkan.Core10.ExtensionDiscovery: vkEnumerateDeviceExtensionProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pLayerName" ::: Ptr CChar) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkExtensionProperties) -> IO VkResult
+ Graphics.Vulkan.Core10.ExtensionDiscovery: vkEnumerateInstanceExtensionProperties :: ("pLayerName" ::: Ptr CChar) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkExtensionProperties) -> IO VkResult
+ Graphics.Vulkan.Core10.Fence: VkFenceCreateFlagBits :: VkFlags -> VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: VkFenceCreateInfo :: VkStructureType -> Ptr () -> VkFenceCreateFlags -> VkFenceCreateInfo
+ Graphics.Vulkan.Core10.Fence: [$sel:vkFlags:VkFenceCreateInfo] :: VkFenceCreateInfo -> VkFenceCreateFlags
+ Graphics.Vulkan.Core10.Fence: [$sel:vkPNext:VkFenceCreateInfo] :: VkFenceCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Fence: [$sel:vkSType:VkFenceCreateInfo] :: VkFenceCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Fence: data VkFenceCreateInfo
+ Graphics.Vulkan.Core10.Fence: instance Data.Bits.Bits Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Fence.VkFenceCreateInfo
+ Graphics.Vulkan.Core10.Fence: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Fence.VkFenceCreateInfo
+ Graphics.Vulkan.Core10.Fence: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: instance GHC.Read.Read Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: instance GHC.Show.Show Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: instance GHC.Show.Show Graphics.Vulkan.Core10.Fence.VkFenceCreateInfo
+ Graphics.Vulkan.Core10.Fence: newtype VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: type VkFenceCreateFlags = VkFenceCreateFlagBits
+ Graphics.Vulkan.Core10.Fence: vkCreateFence :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkFenceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFence" ::: Ptr VkFence) -> IO VkResult
+ Graphics.Vulkan.Core10.Fence: vkDestroyFence :: ("device" ::: VkDevice) -> ("fence" ::: VkFence) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Fence: vkGetFenceStatus :: ("device" ::: VkDevice) -> ("fence" ::: VkFence) -> IO VkResult
+ Graphics.Vulkan.Core10.Fence: vkResetFences :: ("device" ::: VkDevice) -> ("fenceCount" ::: Word32) -> ("pFences" ::: Ptr VkFence) -> IO VkResult
+ Graphics.Vulkan.Core10.Fence: vkWaitForFences :: ("device" ::: VkDevice) -> ("fenceCount" ::: Word32) -> ("pFences" ::: Ptr VkFence) -> ("waitAll" ::: VkBool32) -> ("timeout" ::: Word64) -> IO VkResult
+ Graphics.Vulkan.Core10.Image: VkImageCreateInfo :: VkStructureType -> Ptr () -> VkImageCreateFlags -> VkImageType -> VkFormat -> VkExtent3D -> Word32 -> Word32 -> VkSampleCountFlagBits -> VkImageTiling -> VkImageUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkImageLayout -> VkImageCreateInfo
+ Graphics.Vulkan.Core10.Image: VkImageLayout :: Int32 -> VkImageLayout
+ Graphics.Vulkan.Core10.Image: VkSubresourceLayout :: VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkSubresourceLayout
+ Graphics.Vulkan.Core10.Image: [$sel:vkArrayLayers:VkImageCreateInfo] :: VkImageCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Image: [$sel:vkArrayPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
+ Graphics.Vulkan.Core10.Image: [$sel:vkDepthPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
+ Graphics.Vulkan.Core10.Image: [$sel:vkExtent:VkImageCreateInfo] :: VkImageCreateInfo -> VkExtent3D
+ Graphics.Vulkan.Core10.Image: [$sel:vkFlags:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageCreateFlags
+ Graphics.Vulkan.Core10.Image: [$sel:vkFormat:VkImageCreateInfo] :: VkImageCreateInfo -> VkFormat
+ Graphics.Vulkan.Core10.Image: [$sel:vkImageType:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageType
+ Graphics.Vulkan.Core10.Image: [$sel:vkInitialLayout:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageLayout
+ Graphics.Vulkan.Core10.Image: [$sel:vkMipLevels:VkImageCreateInfo] :: VkImageCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Image: [$sel:vkOffset:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
+ Graphics.Vulkan.Core10.Image: [$sel:vkPNext:VkImageCreateInfo] :: VkImageCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Image: [$sel:vkPQueueFamilyIndices:VkImageCreateInfo] :: VkImageCreateInfo -> Ptr Word32
+ Graphics.Vulkan.Core10.Image: [$sel:vkQueueFamilyIndexCount:VkImageCreateInfo] :: VkImageCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Image: [$sel:vkRowPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
+ Graphics.Vulkan.Core10.Image: [$sel:vkSType:VkImageCreateInfo] :: VkImageCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Image: [$sel:vkSamples:VkImageCreateInfo] :: VkImageCreateInfo -> VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.Image: [$sel:vkSharingMode:VkImageCreateInfo] :: VkImageCreateInfo -> VkSharingMode
+ Graphics.Vulkan.Core10.Image: [$sel:vkSize:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize
+ Graphics.Vulkan.Core10.Image: [$sel:vkTiling:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageTiling
+ Graphics.Vulkan.Core10.Image: [$sel:vkUsage:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageUsageFlags
+ Graphics.Vulkan.Core10.Image: data VkImageCreateInfo
+ Graphics.Vulkan.Core10.Image: data VkSubresourceLayout
+ Graphics.Vulkan.Core10.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Image.VkImageCreateInfo
+ Graphics.Vulkan.Core10.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Image.VkImageLayout
+ Graphics.Vulkan.Core10.Image: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Image.VkSubresourceLayout
+ Graphics.Vulkan.Core10.Image: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Image.VkImageCreateInfo
+ Graphics.Vulkan.Core10.Image: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Image.VkImageLayout
+ Graphics.Vulkan.Core10.Image: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Image.VkSubresourceLayout
+ Graphics.Vulkan.Core10.Image: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Image.VkImageLayout
+ Graphics.Vulkan.Core10.Image: instance GHC.Read.Read Graphics.Vulkan.Core10.Image.VkImageLayout
+ Graphics.Vulkan.Core10.Image: instance GHC.Show.Show Graphics.Vulkan.Core10.Image.VkImageCreateInfo
+ Graphics.Vulkan.Core10.Image: instance GHC.Show.Show Graphics.Vulkan.Core10.Image.VkImageLayout
+ Graphics.Vulkan.Core10.Image: instance GHC.Show.Show Graphics.Vulkan.Core10.Image.VkSubresourceLayout
+ Graphics.Vulkan.Core10.Image: newtype VkImageLayout
+ Graphics.Vulkan.Core10.Image: vkCreateImage :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkImageCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pImage" ::: Ptr VkImage) -> IO VkResult
+ Graphics.Vulkan.Core10.Image: vkDestroyImage :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Image: vkGetImageSubresourceLayout :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pSubresource" ::: Ptr VkImageSubresource) -> ("pLayout" ::: Ptr VkSubresourceLayout) -> IO ()
+ Graphics.Vulkan.Core10.ImageView: VkComponentMapping :: VkComponentSwizzle -> VkComponentSwizzle -> VkComponentSwizzle -> VkComponentSwizzle -> VkComponentMapping
+ Graphics.Vulkan.Core10.ImageView: VkComponentSwizzle :: Int32 -> VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: VkImageSubresourceRange :: VkImageAspectFlags -> Word32 -> Word32 -> Word32 -> Word32 -> VkImageSubresourceRange
+ Graphics.Vulkan.Core10.ImageView: VkImageViewCreateFlags :: VkFlags -> VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: VkImageViewCreateInfo :: VkStructureType -> Ptr () -> VkImageViewCreateFlags -> VkImage -> VkImageViewType -> VkFormat -> VkComponentMapping -> VkImageSubresourceRange -> VkImageViewCreateInfo
+ Graphics.Vulkan.Core10.ImageView: VkImageViewType :: Int32 -> VkImageViewType
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkA:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkAspectMask:VkImageSubresourceRange] :: VkImageSubresourceRange -> VkImageAspectFlags
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkB:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkBaseArrayLayer:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkBaseMipLevel:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkComponents:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkComponentMapping
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkFlags:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkFormat:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkFormat
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkG:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkImage:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImage
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkLayerCount:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkLevelCount:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkPNext:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkR:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkSType:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkSubresourceRange:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageSubresourceRange
+ Graphics.Vulkan.Core10.ImageView: [$sel:vkViewType:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageViewType
+ Graphics.Vulkan.Core10.ImageView: data VkComponentMapping
+ Graphics.Vulkan.Core10.ImageView: data VkImageSubresourceRange
+ Graphics.Vulkan.Core10.ImageView: data VkImageViewCreateInfo
+ Graphics.Vulkan.Core10.ImageView: instance Data.Bits.Bits Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkComponentMapping
+ Graphics.Vulkan.Core10.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange
+ Graphics.Vulkan.Core10.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo
+ Graphics.Vulkan.Core10.ImageView: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkImageViewType
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkComponentMapping
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkImageViewType
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Ord Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Ord Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Classes.Ord Graphics.Vulkan.Core10.ImageView.VkImageViewType
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Read.Read Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Read.Read Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Read.Read Graphics.Vulkan.Core10.ImageView.VkImageViewType
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkComponentMapping
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo
+ Graphics.Vulkan.Core10.ImageView: instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkImageViewType
+ Graphics.Vulkan.Core10.ImageView: newtype VkComponentSwizzle
+ Graphics.Vulkan.Core10.ImageView: newtype VkImageViewCreateFlags
+ Graphics.Vulkan.Core10.ImageView: newtype VkImageViewType
+ Graphics.Vulkan.Core10.ImageView: type VkImageView = Ptr VkImageView_T
+ Graphics.Vulkan.Core10.ImageView: vkCreateImageView :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkImageViewCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pView" ::: Ptr VkImageView) -> IO VkResult
+ Graphics.Vulkan.Core10.ImageView: vkDestroyImageView :: ("device" ::: VkDevice) -> ("imageView" ::: VkImageView) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.LayerDiscovery: VkLayerProperties :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar -> Word32 -> Word32 -> Vector VK_MAX_DESCRIPTION_SIZE CChar -> VkLayerProperties
+ Graphics.Vulkan.Core10.LayerDiscovery: [$sel:vkDescription:VkLayerProperties] :: VkLayerProperties -> Vector VK_MAX_DESCRIPTION_SIZE CChar
+ Graphics.Vulkan.Core10.LayerDiscovery: [$sel:vkImplementationVersion:VkLayerProperties] :: VkLayerProperties -> Word32
+ Graphics.Vulkan.Core10.LayerDiscovery: [$sel:vkLayerName:VkLayerProperties] :: VkLayerProperties -> Vector VK_MAX_EXTENSION_NAME_SIZE CChar
+ Graphics.Vulkan.Core10.LayerDiscovery: [$sel:vkSpecVersion:VkLayerProperties] :: VkLayerProperties -> Word32
+ Graphics.Vulkan.Core10.LayerDiscovery: data VkLayerProperties
+ Graphics.Vulkan.Core10.LayerDiscovery: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.LayerDiscovery.VkLayerProperties
+ Graphics.Vulkan.Core10.LayerDiscovery: instance GHC.Classes.Eq Graphics.Vulkan.Core10.LayerDiscovery.VkLayerProperties
+ Graphics.Vulkan.Core10.LayerDiscovery: instance GHC.Show.Show Graphics.Vulkan.Core10.LayerDiscovery.VkLayerProperties
+ Graphics.Vulkan.Core10.LayerDiscovery: type VK_MAX_DESCRIPTION_SIZE = 256
+ Graphics.Vulkan.Core10.LayerDiscovery: vkEnumerateDeviceLayerProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkLayerProperties) -> IO VkResult
+ Graphics.Vulkan.Core10.LayerDiscovery: vkEnumerateInstanceLayerProperties :: ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkLayerProperties) -> IO VkResult
+ Graphics.Vulkan.Core10.Memory: VkMappedMemoryRange :: VkStructureType -> Ptr () -> VkDeviceMemory -> VkDeviceSize -> VkDeviceSize -> VkMappedMemoryRange
+ Graphics.Vulkan.Core10.Memory: VkMemoryAllocateInfo :: VkStructureType -> Ptr () -> VkDeviceSize -> Word32 -> VkMemoryAllocateInfo
+ Graphics.Vulkan.Core10.Memory: VkMemoryMapFlags :: VkFlags -> VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: [$sel:vkAllocationSize:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> VkDeviceSize
+ Graphics.Vulkan.Core10.Memory: [$sel:vkMemory:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceMemory
+ Graphics.Vulkan.Core10.Memory: [$sel:vkMemoryTypeIndex:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> Word32
+ Graphics.Vulkan.Core10.Memory: [$sel:vkOffset:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceSize
+ Graphics.Vulkan.Core10.Memory: [$sel:vkPNext:VkMappedMemoryRange] :: VkMappedMemoryRange -> Ptr ()
+ Graphics.Vulkan.Core10.Memory: [$sel:vkPNext:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Memory: [$sel:vkSType:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkStructureType
+ Graphics.Vulkan.Core10.Memory: [$sel:vkSType:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Memory: [$sel:vkSize:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceSize
+ Graphics.Vulkan.Core10.Memory: data VkMappedMemoryRange
+ Graphics.Vulkan.Core10.Memory: data VkMemoryAllocateInfo
+ Graphics.Vulkan.Core10.Memory: instance Data.Bits.Bits Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Memory.VkMappedMemoryRange
+ Graphics.Vulkan.Core10.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo
+ Graphics.Vulkan.Core10.Memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Memory.VkMappedMemoryRange
+ Graphics.Vulkan.Core10.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo
+ Graphics.Vulkan.Core10.Memory: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: instance GHC.Read.Read Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: instance GHC.Show.Show Graphics.Vulkan.Core10.Memory.VkMappedMemoryRange
+ Graphics.Vulkan.Core10.Memory: instance GHC.Show.Show Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo
+ Graphics.Vulkan.Core10.Memory: instance GHC.Show.Show Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: newtype VkMemoryMapFlags
+ Graphics.Vulkan.Core10.Memory: type VkDeviceMemory = Ptr VkDeviceMemory_T
+ Graphics.Vulkan.Core10.Memory: vkAllocateMemory :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkMemoryAllocateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMemory" ::: Ptr VkDeviceMemory) -> IO VkResult
+ Graphics.Vulkan.Core10.Memory: vkFlushMappedMemoryRanges :: ("device" ::: VkDevice) -> ("memoryRangeCount" ::: Word32) -> ("pMemoryRanges" ::: Ptr VkMappedMemoryRange) -> IO VkResult
+ Graphics.Vulkan.Core10.Memory: vkFreeMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Memory: vkGetDeviceMemoryCommitment :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("pCommittedMemoryInBytes" ::: Ptr VkDeviceSize) -> IO ()
+ Graphics.Vulkan.Core10.Memory: vkInvalidateMappedMemoryRanges :: ("device" ::: VkDevice) -> ("memoryRangeCount" ::: Word32) -> ("pMemoryRanges" ::: Ptr VkMappedMemoryRange) -> IO VkResult
+ Graphics.Vulkan.Core10.Memory: vkMapMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("offset" ::: VkDeviceSize) -> ("size" ::: VkDeviceSize) -> ("flags" ::: VkMemoryMapFlags) -> ("ppData" ::: Ptr (Ptr ())) -> IO VkResult
+ Graphics.Vulkan.Core10.Memory: vkUnmapMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> IO ()
+ Graphics.Vulkan.Core10.MemoryManagement: VkMemoryRequirements :: VkDeviceSize -> VkDeviceSize -> Word32 -> VkMemoryRequirements
+ Graphics.Vulkan.Core10.MemoryManagement: [$sel:vkAlignment:VkMemoryRequirements] :: VkMemoryRequirements -> VkDeviceSize
+ Graphics.Vulkan.Core10.MemoryManagement: [$sel:vkMemoryTypeBits:VkMemoryRequirements] :: VkMemoryRequirements -> Word32
+ Graphics.Vulkan.Core10.MemoryManagement: [$sel:vkSize:VkMemoryRequirements] :: VkMemoryRequirements -> VkDeviceSize
+ Graphics.Vulkan.Core10.MemoryManagement: data VkMemoryRequirements
+ Graphics.Vulkan.Core10.MemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.MemoryManagement.VkMemoryRequirements
+ Graphics.Vulkan.Core10.MemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.MemoryManagement.VkMemoryRequirements
+ Graphics.Vulkan.Core10.MemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.MemoryManagement.VkMemoryRequirements
+ Graphics.Vulkan.Core10.MemoryManagement: type VkBuffer = Ptr VkBuffer_T
+ Graphics.Vulkan.Core10.MemoryManagement: type VkImage = Ptr VkImage_T
+ Graphics.Vulkan.Core10.MemoryManagement: vkBindBufferMemory :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("memory" ::: VkDeviceMemory) -> ("memoryOffset" ::: VkDeviceSize) -> IO VkResult
+ Graphics.Vulkan.Core10.MemoryManagement: vkBindImageMemory :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("memory" ::: VkDeviceMemory) -> ("memoryOffset" ::: VkDeviceSize) -> IO VkResult
+ Graphics.Vulkan.Core10.MemoryManagement: vkGetBufferMemoryRequirements :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements) -> IO ()
+ Graphics.Vulkan.Core10.MemoryManagement: vkGetImageMemoryRequirements :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements) -> IO ()
+ Graphics.Vulkan.Core10.Pass: VkAccessFlagBits :: VkFlags -> VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: VkAttachmentDescription :: VkAttachmentDescriptionFlags -> VkFormat -> VkSampleCountFlagBits -> VkAttachmentLoadOp -> VkAttachmentStoreOp -> VkAttachmentLoadOp -> VkAttachmentStoreOp -> VkImageLayout -> VkImageLayout -> VkAttachmentDescription
+ Graphics.Vulkan.Core10.Pass: VkAttachmentDescriptionFlagBits :: VkFlags -> VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: VkAttachmentLoadOp :: Int32 -> VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: VkAttachmentReference :: Word32 -> VkImageLayout -> VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: VkAttachmentStoreOp :: Int32 -> VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: VkDependencyFlagBits :: VkFlags -> VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: VkFramebufferCreateFlags :: VkFlags -> VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: VkFramebufferCreateInfo :: VkStructureType -> Ptr () -> VkFramebufferCreateFlags -> VkRenderPass -> Word32 -> Ptr VkImageView -> Word32 -> Word32 -> Word32 -> VkFramebufferCreateInfo
+ Graphics.Vulkan.Core10.Pass: VkPipelineBindPoint :: Int32 -> VkPipelineBindPoint
+ Graphics.Vulkan.Core10.Pass: VkRenderPassCreateFlags :: VkFlags -> VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: VkRenderPassCreateInfo :: VkStructureType -> Ptr () -> VkRenderPassCreateFlags -> Word32 -> Ptr VkAttachmentDescription -> Word32 -> Ptr VkSubpassDescription -> Word32 -> Ptr VkSubpassDependency -> VkRenderPassCreateInfo
+ Graphics.Vulkan.Core10.Pass: VkSubpassDependency :: Word32 -> Word32 -> VkPipelineStageFlags -> VkPipelineStageFlags -> VkAccessFlags -> VkAccessFlags -> VkDependencyFlags -> VkSubpassDependency
+ Graphics.Vulkan.Core10.Pass: VkSubpassDescription :: VkSubpassDescriptionFlags -> VkPipelineBindPoint -> Word32 -> Ptr VkAttachmentReference -> Word32 -> Ptr VkAttachmentReference -> Ptr VkAttachmentReference -> Ptr VkAttachmentReference -> Word32 -> Ptr Word32 -> VkSubpassDescription
+ Graphics.Vulkan.Core10.Pass: VkSubpassDescriptionFlagBits :: VkFlags -> VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: [$sel:vkAttachment:VkAttachmentReference] :: VkAttachmentReference -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkAttachmentCount:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkAttachmentCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkColorAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkDependencyCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkDependencyFlags:VkSubpassDependency] :: VkSubpassDependency -> VkDependencyFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkDstAccessMask:VkSubpassDependency] :: VkSubpassDependency -> VkAccessFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkDstStageMask:VkSubpassDependency] :: VkSubpassDependency -> VkPipelineStageFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkDstSubpass:VkSubpassDependency] :: VkSubpassDependency -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkFinalLayout:VkAttachmentDescription] :: VkAttachmentDescription -> VkImageLayout
+ Graphics.Vulkan.Core10.Pass: [$sel:vkFlags:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentDescriptionFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkFlags:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkFlags:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkFlags:VkSubpassDescription] :: VkSubpassDescription -> VkSubpassDescriptionFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkFormat:VkAttachmentDescription] :: VkAttachmentDescription -> VkFormat
+ Graphics.Vulkan.Core10.Pass: [$sel:vkHeight:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkInitialLayout:VkAttachmentDescription] :: VkAttachmentDescription -> VkImageLayout
+ Graphics.Vulkan.Core10.Pass: [$sel:vkInputAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkLayers:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkLayout:VkAttachmentReference] :: VkAttachmentReference -> VkImageLayout
+ Graphics.Vulkan.Core10.Pass: [$sel:vkLoadOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPAttachments:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Ptr VkImageView
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPAttachments:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkAttachmentDescription
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPColorAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPDependencies:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkSubpassDependency
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPDepthStencilAttachment:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPInputAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPNext:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPNext:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPPreserveAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPResolveAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPSubpasses:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkSubpassDescription
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPipelineBindPoint:VkSubpassDescription] :: VkSubpassDescription -> VkPipelineBindPoint
+ Graphics.Vulkan.Core10.Pass: [$sel:vkPreserveAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkRenderPass:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkRenderPass
+ Graphics.Vulkan.Core10.Pass: [$sel:vkSType:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pass: [$sel:vkSType:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pass: [$sel:vkSamples:VkAttachmentDescription] :: VkAttachmentDescription -> VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.Pass: [$sel:vkSrcAccessMask:VkSubpassDependency] :: VkSubpassDependency -> VkAccessFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkSrcStageMask:VkSubpassDependency] :: VkSubpassDependency -> VkPipelineStageFlags
+ Graphics.Vulkan.Core10.Pass: [$sel:vkSrcSubpass:VkSubpassDependency] :: VkSubpassDependency -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkStencilLoadOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: [$sel:vkStencilStoreOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: [$sel:vkStoreOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: [$sel:vkSubpassCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pass: [$sel:vkWidth:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pass: data VkAttachmentDescription
+ Graphics.Vulkan.Core10.Pass: data VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: data VkFramebufferCreateInfo
+ Graphics.Vulkan.Core10.Pass: data VkRenderPassCreateInfo
+ Graphics.Vulkan.Core10.Pass: data VkSubpassDependency
+ Graphics.Vulkan.Core10.Pass: data VkSubpassDescription
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentDescription
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkSubpassDependency
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkSubpassDescription
+ Graphics.Vulkan.Core10.Pass: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentDescription
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkSubpassDependency
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkSubpassDescription
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentDescription
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentReference
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkSubpassDependency
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkSubpassDescription
+ Graphics.Vulkan.Core10.Pass: instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: newtype VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: newtype VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: newtype VkAttachmentLoadOp
+ Graphics.Vulkan.Core10.Pass: newtype VkAttachmentStoreOp
+ Graphics.Vulkan.Core10.Pass: newtype VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: newtype VkFramebufferCreateFlags
+ Graphics.Vulkan.Core10.Pass: newtype VkPipelineBindPoint
+ Graphics.Vulkan.Core10.Pass: newtype VkRenderPassCreateFlags
+ Graphics.Vulkan.Core10.Pass: newtype VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: type VkAccessFlags = VkAccessFlagBits
+ Graphics.Vulkan.Core10.Pass: type VkAttachmentDescriptionFlags = VkAttachmentDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: type VkDependencyFlags = VkDependencyFlagBits
+ Graphics.Vulkan.Core10.Pass: type VkFramebuffer = Ptr VkFramebuffer_T
+ Graphics.Vulkan.Core10.Pass: type VkSubpassDescriptionFlags = VkSubpassDescriptionFlagBits
+ Graphics.Vulkan.Core10.Pass: vkCreateFramebuffer :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkFramebufferCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFramebuffer" ::: Ptr VkFramebuffer) -> IO VkResult
+ Graphics.Vulkan.Core10.Pass: vkCreateRenderPass :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkRenderPassCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pRenderPass" ::: Ptr VkRenderPass) -> IO VkResult
+ Graphics.Vulkan.Core10.Pass: vkDestroyFramebuffer :: ("device" ::: VkDevice) -> ("framebuffer" ::: VkFramebuffer) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Pass: vkDestroyRenderPass :: ("device" ::: VkDevice) -> ("renderPass" ::: VkRenderPass) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Pass: vkGetRenderAreaGranularity :: ("device" ::: VkDevice) -> ("renderPass" ::: VkRenderPass) -> ("pGranularity" ::: Ptr VkExtent2D) -> IO ()
+ Graphics.Vulkan.Core10.Pipeline: VkBlendFactor :: Int32 -> VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: VkBlendOp :: Int32 -> VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: VkColorComponentFlagBits :: VkFlags -> VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: VkCompareOp :: Int32 -> VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: VkComputePipelineCreateInfo :: VkStructureType -> Ptr () -> VkPipelineCreateFlags -> VkPipelineShaderStageCreateInfo -> VkPipelineLayout -> VkPipeline -> Int32 -> VkComputePipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkCullModeFlagBits :: VkFlags -> VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: VkDynamicState :: Int32 -> VkDynamicState
+ Graphics.Vulkan.Core10.Pipeline: VkExtent2D :: Word32 -> Word32 -> VkExtent2D
+ Graphics.Vulkan.Core10.Pipeline: VkFrontFace :: Int32 -> VkFrontFace
+ Graphics.Vulkan.Core10.Pipeline: VkGraphicsPipelineCreateInfo :: VkStructureType -> Ptr () -> VkPipelineCreateFlags -> Word32 -> Ptr VkPipelineShaderStageCreateInfo -> Ptr VkPipelineVertexInputStateCreateInfo -> Ptr VkPipelineInputAssemblyStateCreateInfo -> Ptr VkPipelineTessellationStateCreateInfo -> Ptr VkPipelineViewportStateCreateInfo -> Ptr VkPipelineRasterizationStateCreateInfo -> Ptr VkPipelineMultisampleStateCreateInfo -> Ptr VkPipelineDepthStencilStateCreateInfo -> Ptr VkPipelineColorBlendStateCreateInfo -> Ptr VkPipelineDynamicStateCreateInfo -> VkPipelineLayout -> VkRenderPass -> Word32 -> VkPipeline -> Int32 -> VkGraphicsPipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkLogicOp :: Int32 -> VkLogicOp
+ Graphics.Vulkan.Core10.Pipeline: VkOffset2D :: Int32 -> Int32 -> VkOffset2D
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineColorBlendAttachmentState :: VkBool32 -> VkBlendFactor -> VkBlendFactor -> VkBlendOp -> VkBlendFactor -> VkBlendFactor -> VkBlendOp -> VkColorComponentFlags -> VkPipelineColorBlendAttachmentState
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineColorBlendStateCreateFlags :: VkFlags -> VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineColorBlendStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineColorBlendStateCreateFlags -> VkBool32 -> VkLogicOp -> Word32 -> Ptr VkPipelineColorBlendAttachmentState -> Vector 4 CFloat -> VkPipelineColorBlendStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineCreateFlagBits :: VkFlags -> VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineDepthStencilStateCreateFlags :: VkFlags -> VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineDepthStencilStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineDepthStencilStateCreateFlags -> VkBool32 -> VkBool32 -> VkCompareOp -> VkBool32 -> VkBool32 -> VkStencilOpState -> VkStencilOpState -> CFloat -> CFloat -> VkPipelineDepthStencilStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineDynamicStateCreateFlags :: VkFlags -> VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineDynamicStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineDynamicStateCreateFlags -> Word32 -> Ptr VkDynamicState -> VkPipelineDynamicStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineInputAssemblyStateCreateFlags :: VkFlags -> VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineInputAssemblyStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineInputAssemblyStateCreateFlags -> VkPrimitiveTopology -> VkBool32 -> VkPipelineInputAssemblyStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineMultisampleStateCreateFlags :: VkFlags -> VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineMultisampleStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineMultisampleStateCreateFlags -> VkSampleCountFlagBits -> VkBool32 -> CFloat -> Ptr VkSampleMask -> VkBool32 -> VkBool32 -> VkPipelineMultisampleStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineRasterizationStateCreateFlags :: VkFlags -> VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineRasterizationStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineRasterizationStateCreateFlags -> VkBool32 -> VkBool32 -> VkPolygonMode -> VkCullModeFlags -> VkFrontFace -> VkBool32 -> CFloat -> CFloat -> CFloat -> CFloat -> VkPipelineRasterizationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineShaderStageCreateFlags :: VkFlags -> VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineShaderStageCreateInfo :: VkStructureType -> Ptr () -> VkPipelineShaderStageCreateFlags -> VkShaderStageFlagBits -> VkShaderModule -> Ptr CChar -> Ptr VkSpecializationInfo -> VkPipelineShaderStageCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineTessellationStateCreateFlags :: VkFlags -> VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineTessellationStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineTessellationStateCreateFlags -> Word32 -> VkPipelineTessellationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineVertexInputStateCreateFlags :: VkFlags -> VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineVertexInputStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineVertexInputStateCreateFlags -> Word32 -> Ptr VkVertexInputBindingDescription -> Word32 -> Ptr VkVertexInputAttributeDescription -> VkPipelineVertexInputStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineViewportStateCreateFlags :: VkFlags -> VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: VkPipelineViewportStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineViewportStateCreateFlags -> Word32 -> Ptr VkViewport -> Word32 -> Ptr VkRect2D -> VkPipelineViewportStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: VkPolygonMode :: Int32 -> VkPolygonMode
+ Graphics.Vulkan.Core10.Pipeline: VkPrimitiveTopology :: Int32 -> VkPrimitiveTopology
+ Graphics.Vulkan.Core10.Pipeline: VkRect2D :: VkOffset2D -> VkExtent2D -> VkRect2D
+ Graphics.Vulkan.Core10.Pipeline: VkShaderStageFlagBits :: VkFlags -> VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: VkSpecializationInfo :: Word32 -> Ptr VkSpecializationMapEntry -> CSize -> Ptr () -> VkSpecializationInfo
+ Graphics.Vulkan.Core10.Pipeline: VkSpecializationMapEntry :: Word32 -> Word32 -> CSize -> VkSpecializationMapEntry
+ Graphics.Vulkan.Core10.Pipeline: VkStencilOp :: Int32 -> VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: VkStencilOpState :: VkStencilOp -> VkStencilOp -> VkStencilOp -> VkCompareOp -> Word32 -> Word32 -> Word32 -> VkStencilOpState
+ Graphics.Vulkan.Core10.Pipeline: VkVertexInputAttributeDescription :: Word32 -> Word32 -> VkFormat -> Word32 -> VkVertexInputAttributeDescription
+ Graphics.Vulkan.Core10.Pipeline: VkVertexInputBindingDescription :: Word32 -> Word32 -> VkVertexInputRate -> VkVertexInputBindingDescription
+ Graphics.Vulkan.Core10.Pipeline: VkVertexInputRate :: Int32 -> VkVertexInputRate
+ Graphics.Vulkan.Core10.Pipeline: VkViewport :: CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> VkViewport
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkAlphaBlendOp:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkAlphaToCoverageEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkAlphaToOneEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkAttachmentCount:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBack:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStencilOpState
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBasePipelineHandle:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipeline
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBasePipelineHandle:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipeline
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBasePipelineIndex:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> Int32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBasePipelineIndex:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Int32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBinding:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBinding:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBlendConstants:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Vector 4 CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkBlendEnable:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkColorBlendOp:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkColorWriteMask:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkColorComponentFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkCompareMask:VkStencilOpState] :: VkStencilOpState -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkCompareOp:VkStencilOpState] :: VkStencilOpState -> VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkConstantID:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkCullMode:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkCullModeFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDataSize:VkSpecializationInfo] :: VkSpecializationInfo -> CSize
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthBiasClamp:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthBiasConstantFactor:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthBiasEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthBiasSlopeFactor:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthBoundsTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthClampEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthCompareOp:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthFailOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDepthWriteEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDstAlphaBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDstColorBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkDynamicStateCount:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkExtent:VkRect2D] :: VkRect2D -> VkExtent2D
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFailOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipelineCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFlags:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFormat:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> VkFormat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFront:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStencilOpState
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkFrontFace:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkFrontFace
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkHeight:VkExtent2D] :: VkExtent2D -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkHeight:VkViewport] :: VkViewport -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkInputRate:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> VkVertexInputRate
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkLayout:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineLayout
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkLayout:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipelineLayout
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkLineWidth:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkLocation:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkLogicOp:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkLogicOp
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkLogicOpEnable:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkMapEntryCount:VkSpecializationInfo] :: VkSpecializationInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkMaxDepth:VkViewport] :: VkViewport -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkMaxDepthBounds:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkMinDepth:VkViewport] :: VkViewport -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkMinDepthBounds:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkMinSampleShading:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkModule:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkShaderModule
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkOffset:VkRect2D] :: VkRect2D -> VkOffset2D
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkOffset:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkOffset:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPAttachments:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Ptr VkPipelineColorBlendAttachmentState
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPColorBlendState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineColorBlendStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPData:VkSpecializationInfo] :: VkSpecializationInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPDepthStencilState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineDepthStencilStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPDynamicState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineDynamicStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPDynamicStates:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Ptr VkDynamicState
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPInputAssemblyState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineInputAssemblyStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPMapEntries:VkSpecializationInfo] :: VkSpecializationInfo -> Ptr VkSpecializationMapEntry
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPMultisampleState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineMultisampleStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPName:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr CChar
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPNext:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPRasterizationState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineRasterizationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPSampleMask:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> Ptr VkSampleMask
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPScissors:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr VkRect2D
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPSpecializationInfo:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr VkSpecializationInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPStages:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineShaderStageCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPTessellationState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineTessellationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPVertexAttributeDescriptions:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr VkVertexInputAttributeDescription
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPVertexBindingDescriptions:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr VkVertexInputBindingDescription
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPVertexInputState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineVertexInputStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPViewportState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineViewportStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPViewports:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr VkViewport
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPassOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPatchControlPoints:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPolygonMode:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkPolygonMode
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkPrimitiveRestartEnable:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkRasterizationSamples:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkSampleCountFlagBits
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkRasterizerDiscardEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkReference:VkStencilOpState] :: VkStencilOpState -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkRenderPass:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkRenderPass
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSType:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSampleShadingEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkScissorCount:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSize:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> CSize
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSrcAlphaBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSrcColorBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkStage:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineShaderStageCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkStage:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkStageCount:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkStencilTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkStride:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkSubpass:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkTopology:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkPrimitiveTopology
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkVertexAttributeDescriptionCount:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkVertexBindingDescriptionCount:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkViewportCount:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkWidth:VkExtent2D] :: VkExtent2D -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkWidth:VkViewport] :: VkViewport -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkWriteMask:VkStencilOpState] :: VkStencilOpState -> Word32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkX:VkOffset2D] :: VkOffset2D -> Int32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkX:VkViewport] :: VkViewport -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkY:VkOffset2D] :: VkOffset2D -> Int32
+ Graphics.Vulkan.Core10.Pipeline: [$sel:vkY:VkViewport] :: VkViewport -> CFloat
+ Graphics.Vulkan.Core10.Pipeline: data VkComputePipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkExtent2D
+ Graphics.Vulkan.Core10.Pipeline: data VkGraphicsPipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkOffset2D
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineColorBlendAttachmentState
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineColorBlendStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineDepthStencilStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineDynamicStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineInputAssemblyStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineMultisampleStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineRasterizationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineShaderStageCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineTessellationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineVertexInputStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkPipelineViewportStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkRect2D
+ Graphics.Vulkan.Core10.Pipeline: data VkSpecializationInfo
+ Graphics.Vulkan.Core10.Pipeline: data VkSpecializationMapEntry
+ Graphics.Vulkan.Core10.Pipeline: data VkStencilOpState
+ Graphics.Vulkan.Core10.Pipeline: data VkVertexInputAttributeDescription
+ Graphics.Vulkan.Core10.Pipeline: data VkVertexInputBindingDescription
+ Graphics.Vulkan.Core10.Pipeline: data VkViewport
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkComputePipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkDynamicState
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkExtent2D
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkFrontFace
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkLogicOp
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkOffset2D
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPolygonMode
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkRect2D
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkSpecializationInfo
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkSpecializationMapEntry
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkStencilOpState
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkVertexInputAttributeDescription
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkVertexInputBindingDescription
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate
+ Graphics.Vulkan.Core10.Pipeline: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkViewport
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkComputePipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkDynamicState
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkExtent2D
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkFrontFace
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkLogicOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkOffset2D
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPolygonMode
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkRect2D
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkSpecializationInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkSpecializationMapEntry
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkStencilOpState
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkVertexInputAttributeDescription
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkVertexInputBindingDescription
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkViewport
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkDynamicState
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkFrontFace
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkLogicOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPolygonMode
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkDynamicState
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkFrontFace
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkLogicOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPolygonMode
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkComputePipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkDynamicState
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkExtent2D
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkFrontFace
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkLogicOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkOffset2D
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPolygonMode
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkRect2D
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkSpecializationInfo
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkSpecializationMapEntry
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkStencilOpState
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkVertexInputAttributeDescription
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkVertexInputBindingDescription
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate
+ Graphics.Vulkan.Core10.Pipeline: instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkViewport
+ Graphics.Vulkan.Core10.Pipeline: newtype VkBlendFactor
+ Graphics.Vulkan.Core10.Pipeline: newtype VkBlendOp
+ Graphics.Vulkan.Core10.Pipeline: newtype VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: newtype VkCompareOp
+ Graphics.Vulkan.Core10.Pipeline: newtype VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: newtype VkDynamicState
+ Graphics.Vulkan.Core10.Pipeline: newtype VkFrontFace
+ Graphics.Vulkan.Core10.Pipeline: newtype VkLogicOp
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineColorBlendStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineDepthStencilStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineDynamicStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineInputAssemblyStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineMultisampleStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineRasterizationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineShaderStageCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineTessellationStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineVertexInputStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPipelineViewportStateCreateFlags
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPolygonMode
+ Graphics.Vulkan.Core10.Pipeline: newtype VkPrimitiveTopology
+ Graphics.Vulkan.Core10.Pipeline: newtype VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.Pipeline: newtype VkStencilOp
+ Graphics.Vulkan.Core10.Pipeline: newtype VkVertexInputRate
+ Graphics.Vulkan.Core10.Pipeline: type VkColorComponentFlags = VkColorComponentFlagBits
+ Graphics.Vulkan.Core10.Pipeline: type VkCullModeFlags = VkCullModeFlagBits
+ Graphics.Vulkan.Core10.Pipeline: type VkPipeline = Ptr VkPipeline_T
+ Graphics.Vulkan.Core10.Pipeline: type VkPipelineCreateFlags = VkPipelineCreateFlagBits
+ Graphics.Vulkan.Core10.Pipeline: type VkPipelineLayout = Ptr VkPipelineLayout_T
+ Graphics.Vulkan.Core10.Pipeline: type VkRenderPass = Ptr VkRenderPass_T
+ Graphics.Vulkan.Core10.Pipeline: type VkSampleMask = Word32
+ Graphics.Vulkan.Core10.Pipeline: vkCreateComputePipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkComputePipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult
+ Graphics.Vulkan.Core10.Pipeline: vkCreateGraphicsPipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkGraphicsPipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult
+ Graphics.Vulkan.Core10.Pipeline: vkDestroyPipeline :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.PipelineCache: VkPipelineCacheCreateFlags :: VkFlags -> VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: VkPipelineCacheCreateInfo :: VkStructureType -> Ptr () -> VkPipelineCacheCreateFlags -> CSize -> Ptr () -> VkPipelineCacheCreateInfo
+ Graphics.Vulkan.Core10.PipelineCache: [$sel:vkFlags:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: [$sel:vkInitialDataSize:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> CSize
+ Graphics.Vulkan.Core10.PipelineCache: [$sel:vkPInitialData:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.PipelineCache: [$sel:vkPNext:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.PipelineCache: [$sel:vkSType:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.PipelineCache: data VkPipelineCacheCreateInfo
+ Graphics.Vulkan.Core10.PipelineCache: instance Data.Bits.Bits Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateInfo
+ Graphics.Vulkan.Core10.PipelineCache: instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateInfo
+ Graphics.Vulkan.Core10.PipelineCache: instance GHC.Classes.Ord Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: instance GHC.Read.Read Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateInfo
+ Graphics.Vulkan.Core10.PipelineCache: newtype VkPipelineCacheCreateFlags
+ Graphics.Vulkan.Core10.PipelineCache: type VkPipelineCache = Ptr VkPipelineCache_T
+ Graphics.Vulkan.Core10.PipelineCache: vkCreatePipelineCache :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkPipelineCacheCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelineCache" ::: Ptr VkPipelineCache) -> IO VkResult
+ Graphics.Vulkan.Core10.PipelineCache: vkDestroyPipelineCache :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.PipelineCache: vkGetPipelineCacheData :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO VkResult
+ Graphics.Vulkan.Core10.PipelineCache: vkMergePipelineCaches :: ("device" ::: VkDevice) -> ("dstCache" ::: VkPipelineCache) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr VkPipelineCache) -> IO VkResult
+ Graphics.Vulkan.Core10.PipelineLayout: VkPipelineLayoutCreateFlags :: VkFlags -> VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: VkPipelineLayoutCreateInfo :: VkStructureType -> Ptr () -> VkPipelineLayoutCreateFlags -> Word32 -> Ptr VkDescriptorSetLayout -> Word32 -> Ptr VkPushConstantRange -> VkPipelineLayoutCreateInfo
+ Graphics.Vulkan.Core10.PipelineLayout: VkPushConstantRange :: VkShaderStageFlags -> Word32 -> Word32 -> VkPushConstantRange
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkFlags:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkOffset:VkPushConstantRange] :: VkPushConstantRange -> Word32
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkPNext:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkPPushConstantRanges:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr VkPushConstantRange
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkPSetLayouts:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr VkDescriptorSetLayout
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkPushConstantRangeCount:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Word32
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkSType:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkSetLayoutCount:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Word32
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkSize:VkPushConstantRange] :: VkPushConstantRange -> Word32
+ Graphics.Vulkan.Core10.PipelineLayout: [$sel:vkStageFlags:VkPushConstantRange] :: VkPushConstantRange -> VkShaderStageFlags
+ Graphics.Vulkan.Core10.PipelineLayout: data VkPipelineLayoutCreateInfo
+ Graphics.Vulkan.Core10.PipelineLayout: data VkPushConstantRange
+ Graphics.Vulkan.Core10.PipelineLayout: instance Data.Bits.Bits Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateInfo
+ Graphics.Vulkan.Core10.PipelineLayout: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineLayout.VkPushConstantRange
+ Graphics.Vulkan.Core10.PipelineLayout: instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateInfo
+ Graphics.Vulkan.Core10.PipelineLayout: instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineLayout.VkPushConstantRange
+ Graphics.Vulkan.Core10.PipelineLayout: instance GHC.Classes.Ord Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: instance GHC.Read.Read Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateInfo
+ Graphics.Vulkan.Core10.PipelineLayout: instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineLayout.VkPushConstantRange
+ Graphics.Vulkan.Core10.PipelineLayout: newtype VkPipelineLayoutCreateFlags
+ Graphics.Vulkan.Core10.PipelineLayout: type VkDescriptorSetLayout = Ptr VkDescriptorSetLayout_T
+ Graphics.Vulkan.Core10.PipelineLayout: type VkShaderStageFlags = VkShaderStageFlagBits
+ Graphics.Vulkan.Core10.PipelineLayout: vkCreatePipelineLayout :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkPipelineLayoutCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelineLayout" ::: Ptr VkPipelineLayout) -> IO VkResult
+ Graphics.Vulkan.Core10.PipelineLayout: vkDestroyPipelineLayout :: ("device" ::: VkDevice) -> ("pipelineLayout" ::: VkPipelineLayout) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Query: VkQueryPipelineStatisticFlagBits :: VkFlags -> VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: VkQueryPoolCreateFlags :: VkFlags -> VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: VkQueryPoolCreateInfo :: VkStructureType -> Ptr () -> VkQueryPoolCreateFlags -> VkQueryType -> Word32 -> VkQueryPipelineStatisticFlags -> VkQueryPoolCreateInfo
+ Graphics.Vulkan.Core10.Query: VkQueryResultFlagBits :: VkFlags -> VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: VkQueryType :: Int32 -> VkQueryType
+ Graphics.Vulkan.Core10.Query: [$sel:vkFlags:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: [$sel:vkPNext:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Query: [$sel:vkPipelineStatistics:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryPipelineStatisticFlags
+ Graphics.Vulkan.Core10.Query: [$sel:vkQueryCount:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> Word32
+ Graphics.Vulkan.Core10.Query: [$sel:vkQueryType:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryType
+ Graphics.Vulkan.Core10.Query: [$sel:vkSType:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Query: data VkQueryPoolCreateInfo
+ Graphics.Vulkan.Core10.Query: instance Data.Bits.Bits Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: instance Data.Bits.Bits Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: instance Data.Bits.Bits Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryPoolCreateInfo
+ Graphics.Vulkan.Core10.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryType
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryPoolCreateInfo
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryType
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Query.VkQueryType
+ Graphics.Vulkan.Core10.Query: instance GHC.Read.Read Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: instance GHC.Read.Read Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: instance GHC.Read.Read Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: instance GHC.Read.Read Graphics.Vulkan.Core10.Query.VkQueryType
+ Graphics.Vulkan.Core10.Query: instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryPoolCreateInfo
+ Graphics.Vulkan.Core10.Query: instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryType
+ Graphics.Vulkan.Core10.Query: newtype VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: newtype VkQueryPoolCreateFlags
+ Graphics.Vulkan.Core10.Query: newtype VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: newtype VkQueryType
+ Graphics.Vulkan.Core10.Query: type VkQueryPipelineStatisticFlags = VkQueryPipelineStatisticFlagBits
+ Graphics.Vulkan.Core10.Query: type VkQueryPool = Ptr VkQueryPool_T
+ Graphics.Vulkan.Core10.Query: type VkQueryResultFlags = VkQueryResultFlagBits
+ Graphics.Vulkan.Core10.Query: vkCreateQueryPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkQueryPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pQueryPool" ::: Ptr VkQueryPool) -> IO VkResult
+ Graphics.Vulkan.Core10.Query: vkDestroyQueryPool :: ("device" ::: VkDevice) -> ("queryPool" ::: VkQueryPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Query: vkGetQueryPoolResults :: ("device" ::: VkDevice) -> ("queryPool" ::: VkQueryPool) -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> ("dataSize" ::: CSize) -> ("pData" ::: Ptr ()) -> ("stride" ::: VkDeviceSize) -> ("flags" ::: VkQueryResultFlags) -> IO VkResult
+ Graphics.Vulkan.Core10.Queue: VkPipelineStageFlagBits :: VkFlags -> VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: VkSubmitInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr VkSemaphore -> Ptr VkPipelineStageFlags -> Word32 -> Ptr VkCommandBuffer -> Word32 -> Ptr VkSemaphore -> VkSubmitInfo
+ Graphics.Vulkan.Core10.Queue: [$sel:vkCommandBufferCount:VkSubmitInfo] :: VkSubmitInfo -> Word32
+ Graphics.Vulkan.Core10.Queue: [$sel:vkPCommandBuffers:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkCommandBuffer
+ Graphics.Vulkan.Core10.Queue: [$sel:vkPNext:VkSubmitInfo] :: VkSubmitInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Queue: [$sel:vkPSignalSemaphores:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkSemaphore
+ Graphics.Vulkan.Core10.Queue: [$sel:vkPWaitDstStageMask:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkPipelineStageFlags
+ Graphics.Vulkan.Core10.Queue: [$sel:vkPWaitSemaphores:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkSemaphore
+ Graphics.Vulkan.Core10.Queue: [$sel:vkSType:VkSubmitInfo] :: VkSubmitInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Queue: [$sel:vkSignalSemaphoreCount:VkSubmitInfo] :: VkSubmitInfo -> Word32
+ Graphics.Vulkan.Core10.Queue: [$sel:vkWaitSemaphoreCount:VkSubmitInfo] :: VkSubmitInfo -> Word32
+ Graphics.Vulkan.Core10.Queue: data VkSubmitInfo
+ Graphics.Vulkan.Core10.Queue: instance Data.Bits.Bits Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Queue.VkSubmitInfo
+ Graphics.Vulkan.Core10.Queue: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Queue.VkSubmitInfo
+ Graphics.Vulkan.Core10.Queue: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: instance GHC.Read.Read Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: instance GHC.Show.Show Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: instance GHC.Show.Show Graphics.Vulkan.Core10.Queue.VkSubmitInfo
+ Graphics.Vulkan.Core10.Queue: newtype VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: type VkCommandBuffer = Ptr VkCommandBuffer_T
+ Graphics.Vulkan.Core10.Queue: type VkFence = Ptr VkFence_T
+ Graphics.Vulkan.Core10.Queue: type VkPipelineStageFlags = VkPipelineStageFlagBits
+ Graphics.Vulkan.Core10.Queue: type VkQueue = Ptr VkQueue_T
+ Graphics.Vulkan.Core10.Queue: type VkSemaphore = Ptr VkSemaphore_T
+ Graphics.Vulkan.Core10.Queue: vkDeviceWaitIdle :: ("device" ::: VkDevice) -> IO VkResult
+ Graphics.Vulkan.Core10.Queue: vkGetDeviceQueue :: ("device" ::: VkDevice) -> ("queueFamilyIndex" ::: Word32) -> ("queueIndex" ::: Word32) -> ("pQueue" ::: Ptr VkQueue) -> IO ()
+ Graphics.Vulkan.Core10.Queue: vkQueueSubmit :: ("queue" ::: VkQueue) -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr VkSubmitInfo) -> ("fence" ::: VkFence) -> IO VkResult
+ Graphics.Vulkan.Core10.Queue: vkQueueWaitIdle :: ("queue" ::: VkQueue) -> IO VkResult
+ Graphics.Vulkan.Core10.QueueSemaphore: VkSemaphoreCreateFlags :: VkFlags -> VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: VkSemaphoreCreateInfo :: VkStructureType -> Ptr () -> VkSemaphoreCreateFlags -> VkSemaphoreCreateInfo
+ Graphics.Vulkan.Core10.QueueSemaphore: [$sel:vkFlags:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: [$sel:vkPNext:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.QueueSemaphore: [$sel:vkSType:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.QueueSemaphore: data VkSemaphoreCreateInfo
+ Graphics.Vulkan.Core10.QueueSemaphore: instance Data.Bits.Bits Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateInfo
+ Graphics.Vulkan.Core10.QueueSemaphore: instance GHC.Classes.Eq Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: instance GHC.Classes.Eq Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateInfo
+ Graphics.Vulkan.Core10.QueueSemaphore: instance GHC.Classes.Ord Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: instance GHC.Read.Read Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: instance GHC.Show.Show Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: instance GHC.Show.Show Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateInfo
+ Graphics.Vulkan.Core10.QueueSemaphore: newtype VkSemaphoreCreateFlags
+ Graphics.Vulkan.Core10.QueueSemaphore: vkCreateSemaphore :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSemaphoreCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSemaphore" ::: Ptr VkSemaphore) -> IO VkResult
+ Graphics.Vulkan.Core10.QueueSemaphore: vkDestroySemaphore :: ("device" ::: VkDevice) -> ("semaphore" ::: VkSemaphore) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Sampler: VkBorderColor :: Int32 -> VkBorderColor
+ Graphics.Vulkan.Core10.Sampler: VkFilter :: Int32 -> VkFilter
+ Graphics.Vulkan.Core10.Sampler: VkSamplerAddressMode :: Int32 -> VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: VkSamplerCreateFlags :: VkFlags -> VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: VkSamplerCreateInfo :: VkStructureType -> Ptr () -> VkSamplerCreateFlags -> VkFilter -> VkFilter -> VkSamplerMipmapMode -> VkSamplerAddressMode -> VkSamplerAddressMode -> VkSamplerAddressMode -> CFloat -> VkBool32 -> CFloat -> VkBool32 -> VkCompareOp -> CFloat -> CFloat -> VkBorderColor -> VkBool32 -> VkSamplerCreateInfo
+ Graphics.Vulkan.Core10.Sampler: VkSamplerMipmapMode :: Int32 -> VkSamplerMipmapMode
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkAddressModeU:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkAddressModeV:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkAddressModeW:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkAnisotropyEnable:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkBorderColor:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBorderColor
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkCompareEnable:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkCompareOp:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkCompareOp
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkFlags:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkMagFilter:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkFilter
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkMaxAnisotropy:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkMaxLod:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkMinFilter:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkFilter
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkMinLod:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkMipLodBias:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkMipmapMode:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerMipmapMode
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkPNext:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkSType:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Sampler: [$sel:vkUnnormalizedCoordinates:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32
+ Graphics.Vulkan.Core10.Sampler: data VkSamplerCreateInfo
+ Graphics.Vulkan.Core10.Sampler: instance Data.Bits.Bits Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkBorderColor
+ Graphics.Vulkan.Core10.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkFilter
+ Graphics.Vulkan.Core10.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo
+ Graphics.Vulkan.Core10.Sampler: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkBorderColor
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkFilter
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkBorderColor
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkFilter
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkBorderColor
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkFilter
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkBorderColor
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkFilter
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo
+ Graphics.Vulkan.Core10.Sampler: instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode
+ Graphics.Vulkan.Core10.Sampler: newtype VkBorderColor
+ Graphics.Vulkan.Core10.Sampler: newtype VkFilter
+ Graphics.Vulkan.Core10.Sampler: newtype VkSamplerAddressMode
+ Graphics.Vulkan.Core10.Sampler: newtype VkSamplerCreateFlags
+ Graphics.Vulkan.Core10.Sampler: newtype VkSamplerMipmapMode
+ Graphics.Vulkan.Core10.Sampler: type VkSampler = Ptr VkSampler_T
+ Graphics.Vulkan.Core10.Sampler: vkCreateSampler :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSampler" ::: Ptr VkSampler) -> IO VkResult
+ Graphics.Vulkan.Core10.Sampler: vkDestroySampler :: ("device" ::: VkDevice) -> ("sampler" ::: VkSampler) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.Shader: VkShaderModuleCreateFlags :: VkFlags -> VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: VkShaderModuleCreateInfo :: VkStructureType -> Ptr () -> VkShaderModuleCreateFlags -> CSize -> Ptr Word32 -> VkShaderModuleCreateInfo
+ Graphics.Vulkan.Core10.Shader: [$sel:vkCodeSize:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> CSize
+ Graphics.Vulkan.Core10.Shader: [$sel:vkFlags:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: [$sel:vkPCode:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> Ptr Word32
+ Graphics.Vulkan.Core10.Shader: [$sel:vkPNext:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core10.Shader: [$sel:vkSType:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core10.Shader: data VkShaderModuleCreateInfo
+ Graphics.Vulkan.Core10.Shader: instance Data.Bits.Bits Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateInfo
+ Graphics.Vulkan.Core10.Shader: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: instance GHC.Classes.Eq Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateInfo
+ Graphics.Vulkan.Core10.Shader: instance GHC.Classes.Ord Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: instance GHC.Read.Read Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: instance GHC.Show.Show Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: instance GHC.Show.Show Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateInfo
+ Graphics.Vulkan.Core10.Shader: newtype VkShaderModuleCreateFlags
+ Graphics.Vulkan.Core10.Shader: type VkShaderModule = Ptr VkShaderModule_T
+ Graphics.Vulkan.Core10.Shader: vkCreateShaderModule :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkShaderModuleCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pShaderModule" ::: Ptr VkShaderModule) -> IO VkResult
+ Graphics.Vulkan.Core10.Shader: vkDestroyShaderModule :: ("device" ::: VkDevice) -> ("shaderModule" ::: VkShaderModule) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkBindSparseInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr VkSemaphore -> Word32 -> Ptr VkSparseBufferMemoryBindInfo -> Word32 -> Ptr VkSparseImageOpaqueMemoryBindInfo -> Word32 -> Ptr VkSparseImageMemoryBindInfo -> Word32 -> Ptr VkSemaphore -> VkBindSparseInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkImageAspectFlagBits :: VkFlags -> VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkImageSubresource :: VkImageAspectFlags -> Word32 -> Word32 -> VkImageSubresource
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkOffset3D :: Int32 -> Int32 -> Int32 -> VkOffset3D
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseBufferMemoryBindInfo :: VkBuffer -> Word32 -> Ptr VkSparseMemoryBind -> VkSparseBufferMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseImageFormatFlagBits :: VkFlags -> VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseImageFormatProperties :: VkImageAspectFlags -> VkExtent3D -> VkSparseImageFormatFlags -> VkSparseImageFormatProperties
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseImageMemoryBind :: VkImageSubresource -> VkOffset3D -> VkExtent3D -> VkDeviceMemory -> VkDeviceSize -> VkSparseMemoryBindFlags -> VkSparseImageMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseImageMemoryBindInfo :: VkImage -> Word32 -> Ptr VkSparseImageMemoryBind -> VkSparseImageMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseImageMemoryRequirements :: VkSparseImageFormatProperties -> Word32 -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkSparseImageMemoryRequirements
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseImageOpaqueMemoryBindInfo :: VkImage -> Word32 -> Ptr VkSparseMemoryBind -> VkSparseImageOpaqueMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseMemoryBind :: VkDeviceSize -> VkDeviceSize -> VkDeviceMemory -> VkDeviceSize -> VkSparseMemoryBindFlags -> VkSparseMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: VkSparseMemoryBindFlagBits :: VkFlags -> VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkArrayLayer:VkImageSubresource] :: VkImageSubresource -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkAspectMask:VkImageSubresource] :: VkImageSubresource -> VkImageAspectFlags
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkAspectMask:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkImageAspectFlags
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkBindCount:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkBindCount:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkBindCount:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkBuffer:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> VkBuffer
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkBufferBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkExtent:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkExtent3D
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkFlags:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkSparseImageFormatFlags
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkFlags:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkSparseMemoryBindFlags
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkFlags:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkSparseMemoryBindFlags
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkFormatProperties:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkSparseImageFormatProperties
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImage:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> VkImage
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImage:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> VkImage
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImageBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImageGranularity:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkExtent3D
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImageMipTailFirstLod:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImageMipTailOffset:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImageMipTailSize:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImageMipTailStride:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkImageOpaqueBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkMemory:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkDeviceMemory
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkMemory:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceMemory
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkMemoryOffset:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkDeviceSize
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkMemoryOffset:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkMipLevel:VkImageSubresource] :: VkImageSubresource -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkOffset:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkOffset3D
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPBinds:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> Ptr VkSparseMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPBinds:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> Ptr VkSparseImageMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPBinds:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> Ptr VkSparseMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPBufferBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseBufferMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPImageBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseImageMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPImageOpaqueBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseImageOpaqueMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPNext:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr ()
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPSignalSemaphores:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSemaphore
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkPWaitSemaphores:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSemaphore
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkResourceOffset:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkSType:VkBindSparseInfo] :: VkBindSparseInfo -> VkStructureType
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkSignalSemaphoreCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkSize:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkSubresource:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkImageSubresource
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkWaitSemaphoreCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkX:VkOffset3D] :: VkOffset3D -> Int32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkY:VkOffset3D] :: VkOffset3D -> Int32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: [$sel:vkZ:VkOffset3D] :: VkOffset3D -> Int32
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkBindSparseInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkImageSubresource
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkOffset3D
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkSparseBufferMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkSparseImageFormatProperties
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkSparseImageMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkSparseImageMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkSparseImageMemoryRequirements
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkSparseImageOpaqueMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: data VkSparseMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Data.Bits.Bits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Data.Bits.Bits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Data.Bits.Bits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkBindSparseInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageSubresource
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkBindSparseInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageSubresource
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Ord Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Ord Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Classes.Ord Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Read.Read Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Read.Read Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Read.Read Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkBindSparseInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageSubresource
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBind
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: newtype VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: newtype VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: newtype VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: type VkImageAspectFlags = VkImageAspectFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: type VkSparseImageFormatFlags = VkSparseImageFormatFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: type VkSparseMemoryBindFlags = VkSparseMemoryBindFlagBits
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: vkGetImageSparseMemoryRequirements :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements) -> IO ()
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: vkGetPhysicalDeviceSparseImageFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("samples" ::: VkSampleCountFlagBits) -> ("usage" ::: VkImageUsageFlags) -> ("tiling" ::: VkImageTiling) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties) -> IO ()
+ Graphics.Vulkan.Core10.SparseResourceMemoryManagement: vkQueueBindSparse :: ("queue" ::: VkQueue) -> ("bindInfoCount" ::: Word32) -> ("pBindInfo" ::: Ptr VkBindSparseInfo) -> ("fence" ::: VkFence) -> IO VkResult
+ Graphics.Vulkan.Core10.Version: _VK_VERSION_MAJOR :: Word32 -> Word32
+ Graphics.Vulkan.Core10.Version: _VK_VERSION_MINOR :: Word32 -> Word32
+ Graphics.Vulkan.Core10.Version: _VK_VERSION_PATCH :: Word32 -> Word32
+ Graphics.Vulkan.Core11.DeviceInitialization: vkEnumerateInstanceVersion :: ("pApiVersion" ::: Ptr Word32) -> IO VkResult
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: VkDeviceQueueInfo2 :: VkStructureType -> Ptr () -> VkDeviceQueueCreateFlags -> Word32 -> Word32 -> VkDeviceQueueInfo2
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: VkPhysicalDeviceProtectedMemoryFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceProtectedMemoryFeatures
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: VkPhysicalDeviceProtectedMemoryProperties :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceProtectedMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: VkProtectedSubmitInfo :: VkStructureType -> Ptr () -> VkBool32 -> VkProtectedSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkFlags:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> VkDeviceQueueCreateFlags
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkPNext:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkPNext:VkPhysicalDeviceProtectedMemoryFeatures] :: VkPhysicalDeviceProtectedMemoryFeatures -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkPNext:VkPhysicalDeviceProtectedMemoryProperties] :: VkPhysicalDeviceProtectedMemoryProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkPNext:VkProtectedSubmitInfo] :: VkProtectedSubmitInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkProtectedMemory:VkPhysicalDeviceProtectedMemoryFeatures] :: VkPhysicalDeviceProtectedMemoryFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkProtectedNoFault:VkPhysicalDeviceProtectedMemoryProperties] :: VkPhysicalDeviceProtectedMemoryProperties -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkProtectedSubmit:VkProtectedSubmitInfo] :: VkProtectedSubmitInfo -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkQueueFamilyIndex:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> Word32
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkQueueIndex:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> Word32
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkSType:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkSType:VkPhysicalDeviceProtectedMemoryFeatures] :: VkPhysicalDeviceProtectedMemoryFeatures -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkSType:VkPhysicalDeviceProtectedMemoryProperties] :: VkPhysicalDeviceProtectedMemoryProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: [$sel:vkSType:VkProtectedSubmitInfo] :: VkProtectedSubmitInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: data VkDeviceQueueInfo2
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: data VkPhysicalDeviceProtectedMemoryFeatures
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: data VkPhysicalDeviceProtectedMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: data VkProtectedSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkDeviceQueueInfo2
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkDeviceQueueInfo2
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkDeviceQueueInfo2
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory: vkGetDeviceQueue2 :: ("device" ::: VkDevice) -> ("pQueueInfo" ::: Ptr VkDeviceQueueInfo2) -> ("pQueue" ::: Ptr VkQueue) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: VkPhysicalDeviceSubgroupProperties :: VkStructureType -> Ptr () -> Word32 -> VkShaderStageFlags -> VkSubgroupFeatureFlags -> VkBool32 -> VkPhysicalDeviceSubgroupProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: VkSubgroupFeatureFlagBits :: VkFlags -> VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: [$sel:vkPNext:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: [$sel:vkQuadOperationsInAllStages:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: [$sel:vkSType:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: [$sel:vkSubgroupSize:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> Word32
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: [$sel:vkSupportedOperations:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> VkSubgroupFeatureFlags
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: [$sel:vkSupportedStages:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> VkShaderStageFlags
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: data VkPhysicalDeviceSubgroupProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: newtype VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup: type VkSubgroupFeatureFlags = VkSubgroupFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: VkPhysicalDevice16BitStorageFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDevice16BitStorageFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: [$sel:vkPNext:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: [$sel:vkSType:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: [$sel:vkStorageBuffer16BitAccess:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: [$sel:vkStorageInputOutput16:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: [$sel:vkStoragePushConstant16:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: [$sel:vkUniformAndStorageBuffer16BitAccess:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: data VkPhysicalDevice16BitStorageFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: VkBindBufferMemoryInfo :: VkStructureType -> Ptr () -> VkBuffer -> VkDeviceMemory -> VkDeviceSize -> VkBindBufferMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: VkBindImageMemoryInfo :: VkStructureType -> Ptr () -> VkImage -> VkDeviceMemory -> VkDeviceSize -> VkBindImageMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkBuffer:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> VkBuffer
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkImage:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> VkImage
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkMemory:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> VkDeviceMemory
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkMemory:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> VkDeviceMemory
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkMemoryOffset:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> VkDeviceSize
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkMemoryOffset:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> VkDeviceSize
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkPNext:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkPNext:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkSType:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: [$sel:vkSType:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: data VkBindBufferMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: data VkBindImageMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: vkBindBufferMemory2 :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindBufferMemoryInfo) -> IO VkResult
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2: vkBindImageMemory2 :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindImageMemoryInfo) -> IO VkResult
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: VkMemoryDedicatedAllocateInfo :: VkStructureType -> Ptr () -> VkImage -> VkBuffer -> VkMemoryDedicatedAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: VkMemoryDedicatedRequirements :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkMemoryDedicatedRequirements
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: [$sel:vkBuffer:VkMemoryDedicatedAllocateInfo] :: VkMemoryDedicatedAllocateInfo -> VkBuffer
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: [$sel:vkImage:VkMemoryDedicatedAllocateInfo] :: VkMemoryDedicatedAllocateInfo -> VkImage
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: [$sel:vkPNext:VkMemoryDedicatedAllocateInfo] :: VkMemoryDedicatedAllocateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: [$sel:vkPNext:VkMemoryDedicatedRequirements] :: VkMemoryDedicatedRequirements -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: [$sel:vkPrefersDedicatedAllocation:VkMemoryDedicatedRequirements] :: VkMemoryDedicatedRequirements -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: [$sel:vkRequiresDedicatedAllocation:VkMemoryDedicatedRequirements] :: VkMemoryDedicatedRequirements -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: [$sel:vkSType:VkMemoryDedicatedAllocateInfo] :: VkMemoryDedicatedAllocateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: [$sel:vkSType:VkMemoryDedicatedRequirements] :: VkMemoryDedicatedRequirements -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: data VkMemoryDedicatedAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: data VkMemoryDedicatedRequirements
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedRequirements
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedRequirements
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedRequirements
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: VkDescriptorUpdateTemplateCreateFlags :: VkFlags -> VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: VkDescriptorUpdateTemplateCreateInfo :: VkStructureType -> Ptr () -> VkDescriptorUpdateTemplateCreateFlags -> Word32 -> Ptr VkDescriptorUpdateTemplateEntry -> VkDescriptorUpdateTemplateType -> VkDescriptorSetLayout -> VkPipelineBindPoint -> VkPipelineLayout -> Word32 -> VkDescriptorUpdateTemplateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: VkDescriptorUpdateTemplateEntry :: Word32 -> Word32 -> Word32 -> VkDescriptorType -> CSize -> CSize -> VkDescriptorUpdateTemplateEntry
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: VkDescriptorUpdateTemplateType :: Int32 -> VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkDescriptorCount:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkDescriptorSetLayout:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkDescriptorSetLayout
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkDescriptorType:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> VkDescriptorType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkDescriptorUpdateEntryCount:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkDstArrayElement:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkDstBinding:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkFlags:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkOffset:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> CSize
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkPDescriptorUpdateEntries:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> Ptr VkDescriptorUpdateTemplateEntry
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkPNext:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkPipelineBindPoint:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkPipelineBindPoint
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkPipelineLayout:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkPipelineLayout
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkSType:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkSet:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkStride:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> CSize
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: [$sel:vkTemplateType:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: data VkDescriptorUpdateTemplateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: data VkDescriptorUpdateTemplateEntry
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateEntry
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateEntry
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateEntry
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: newtype VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: newtype VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: type VkDescriptorUpdateTemplate = Ptr VkDescriptorUpdateTemplate_T
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: vkCreateDescriptorUpdateTemplate :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorUpdateTemplateCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorUpdateTemplate" ::: Ptr VkDescriptorUpdateTemplate) -> IO VkResult
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: vkDestroyDescriptorUpdateTemplate :: ("device" ::: VkDevice) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template: vkUpdateDescriptorSetWithTemplate :: ("device" ::: VkDevice) -> ("descriptorSet" ::: VkDescriptorSet) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pData" ::: Ptr ()) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: VkDeviceGroupBindSparseInfo :: VkStructureType -> Ptr () -> Word32 -> Word32 -> VkDeviceGroupBindSparseInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: VkDeviceGroupCommandBufferBeginInfo :: VkStructureType -> Ptr () -> Word32 -> VkDeviceGroupCommandBufferBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: VkDeviceGroupRenderPassBeginInfo :: VkStructureType -> Ptr () -> Word32 -> Word32 -> Ptr VkRect2D -> VkDeviceGroupRenderPassBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: VkDeviceGroupSubmitInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> Word32 -> Ptr Word32 -> Word32 -> Ptr Word32 -> VkDeviceGroupSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: VkMemoryAllocateFlagBits :: VkFlags -> VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: VkMemoryAllocateFlagsInfo :: VkStructureType -> Ptr () -> VkMemoryAllocateFlags -> Word32 -> VkMemoryAllocateFlagsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: VkPeerMemoryFeatureFlagBits :: VkFlags -> VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkCommandBufferCount:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkDeviceMask:VkDeviceGroupCommandBufferBeginInfo] :: VkDeviceGroupCommandBufferBeginInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkDeviceMask:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkDeviceMask:VkMemoryAllocateFlagsInfo] :: VkMemoryAllocateFlagsInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkDeviceRenderAreaCount:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkFlags:VkMemoryAllocateFlagsInfo] :: VkMemoryAllocateFlagsInfo -> VkMemoryAllocateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkMemoryDeviceIndex:VkDeviceGroupBindSparseInfo] :: VkDeviceGroupBindSparseInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPCommandBufferDeviceMasks:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Ptr Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPDeviceRenderAreas:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> Ptr VkRect2D
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPNext:VkDeviceGroupBindSparseInfo] :: VkDeviceGroupBindSparseInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPNext:VkDeviceGroupCommandBufferBeginInfo] :: VkDeviceGroupCommandBufferBeginInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPNext:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPNext:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPNext:VkMemoryAllocateFlagsInfo] :: VkMemoryAllocateFlagsInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPSignalSemaphoreDeviceIndices:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Ptr Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkPWaitSemaphoreDeviceIndices:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Ptr Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkResourceDeviceIndex:VkDeviceGroupBindSparseInfo] :: VkDeviceGroupBindSparseInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkSType:VkDeviceGroupBindSparseInfo] :: VkDeviceGroupBindSparseInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkSType:VkDeviceGroupCommandBufferBeginInfo] :: VkDeviceGroupCommandBufferBeginInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkSType:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkSType:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkSType:VkMemoryAllocateFlagsInfo] :: VkMemoryAllocateFlagsInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkSignalSemaphoreCount:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: [$sel:vkWaitSemaphoreCount:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: data VkDeviceGroupBindSparseInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: data VkDeviceGroupCommandBufferBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: data VkDeviceGroupRenderPassBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: data VkDeviceGroupSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: data VkMemoryAllocateFlagsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupBindSparseInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupCommandBufferBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupBindSparseInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupCommandBufferBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupBindSparseInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupCommandBufferBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupSubmitInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: newtype VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: newtype VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: type VkMemoryAllocateFlags = VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: type VkPeerMemoryFeatureFlags = VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: vkCmdDispatchBase :: ("commandBuffer" ::: VkCommandBuffer) -> ("baseGroupX" ::: Word32) -> ("baseGroupY" ::: Word32) -> ("baseGroupZ" ::: Word32) -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: vkCmdSetDeviceMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("deviceMask" ::: Word32) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group: vkGetDeviceGroupPeerMemoryFeatures :: ("device" ::: VkDevice) -> ("heapIndex" ::: Word32) -> ("localDeviceIndex" ::: Word32) -> ("remoteDeviceIndex" ::: Word32) -> ("pPeerMemoryFeatures" ::: Ptr VkPeerMemoryFeatureFlags) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: VkBindBufferMemoryDeviceGroupInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> VkBindBufferMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: VkBindImageMemoryDeviceGroupInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> Word32 -> Ptr VkRect2D -> VkBindImageMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkDeviceIndexCount:VkBindBufferMemoryDeviceGroupInfo] :: VkBindBufferMemoryDeviceGroupInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkDeviceIndexCount:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkPDeviceIndices:VkBindBufferMemoryDeviceGroupInfo] :: VkBindBufferMemoryDeviceGroupInfo -> Ptr Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkPDeviceIndices:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Ptr Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkPNext:VkBindBufferMemoryDeviceGroupInfo] :: VkBindBufferMemoryDeviceGroupInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkPNext:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkPSplitInstanceBindRegions:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Ptr VkRect2D
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkSType:VkBindBufferMemoryDeviceGroupInfo] :: VkBindBufferMemoryDeviceGroupInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkSType:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: [$sel:vkSplitInstanceBindRegionCount:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: data VkBindBufferMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: data VkBindImageMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindBufferMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindBufferMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindBufferMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: VkDeviceGroupDeviceCreateInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr VkPhysicalDevice -> VkDeviceGroupDeviceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: VkPhysicalDeviceGroupProperties :: VkStructureType -> Ptr () -> Word32 -> Vector VK_MAX_DEVICE_GROUP_SIZE VkPhysicalDevice -> VkBool32 -> VkPhysicalDeviceGroupProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkPNext:VkDeviceGroupDeviceCreateInfo] :: VkDeviceGroupDeviceCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkPNext:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkPPhysicalDevices:VkDeviceGroupDeviceCreateInfo] :: VkDeviceGroupDeviceCreateInfo -> Ptr VkPhysicalDevice
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkPhysicalDeviceCount:VkDeviceGroupDeviceCreateInfo] :: VkDeviceGroupDeviceCreateInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkPhysicalDeviceCount:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkPhysicalDevices:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> Vector VK_MAX_DEVICE_GROUP_SIZE VkPhysicalDevice
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkSType:VkDeviceGroupDeviceCreateInfo] :: VkDeviceGroupDeviceCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkSType:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: [$sel:vkSubsetAllocation:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: data VkDeviceGroupDeviceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: data VkPhysicalDeviceGroupProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: type VK_MAX_DEVICE_GROUP_SIZE = 32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation: vkEnumeratePhysicalDeviceGroups :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceGroupCount" ::: Ptr Word32) -> ("pPhysicalDeviceGroupProperties" ::: Ptr VkPhysicalDeviceGroupProperties) -> IO VkResult
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: VkExportFenceCreateInfo :: VkStructureType -> Ptr () -> VkExternalFenceHandleTypeFlags -> VkExportFenceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: VkFenceImportFlagBits :: VkFlags -> VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: [$sel:vkHandleTypes:VkExportFenceCreateInfo] :: VkExportFenceCreateInfo -> VkExternalFenceHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: [$sel:vkPNext:VkExportFenceCreateInfo] :: VkExportFenceCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: [$sel:vkSType:VkExportFenceCreateInfo] :: VkExportFenceCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: data VkExportFenceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: newtype VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence: type VkFenceImportFlags = VkFenceImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: VkExternalFenceFeatureFlagBits :: VkFlags -> VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: VkExternalFenceHandleTypeFlagBits :: VkFlags -> VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: VkExternalFenceProperties :: VkStructureType -> Ptr () -> VkExternalFenceHandleTypeFlags -> VkExternalFenceHandleTypeFlags -> VkExternalFenceFeatureFlags -> VkExternalFenceProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: VkPhysicalDeviceExternalFenceInfo :: VkStructureType -> Ptr () -> VkExternalFenceHandleTypeFlagBits -> VkPhysicalDeviceExternalFenceInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: [$sel:vkCompatibleHandleTypes:VkExternalFenceProperties] :: VkExternalFenceProperties -> VkExternalFenceHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: [$sel:vkExportFromImportedHandleTypes:VkExternalFenceProperties] :: VkExternalFenceProperties -> VkExternalFenceHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: [$sel:vkExternalFenceFeatures:VkExternalFenceProperties] :: VkExternalFenceProperties -> VkExternalFenceFeatureFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: [$sel:vkHandleType:VkPhysicalDeviceExternalFenceInfo] :: VkPhysicalDeviceExternalFenceInfo -> VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: [$sel:vkPNext:VkExternalFenceProperties] :: VkExternalFenceProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: [$sel:vkPNext:VkPhysicalDeviceExternalFenceInfo] :: VkPhysicalDeviceExternalFenceInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: [$sel:vkSType:VkExternalFenceProperties] :: VkExternalFenceProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: [$sel:vkSType:VkPhysicalDeviceExternalFenceInfo] :: VkPhysicalDeviceExternalFenceInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: data VkExternalFenceProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: data VkPhysicalDeviceExternalFenceInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkPhysicalDeviceExternalFenceInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkPhysicalDeviceExternalFenceInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkPhysicalDeviceExternalFenceInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: newtype VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: newtype VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: type VkExternalFenceFeatureFlags = VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: type VkExternalFenceHandleTypeFlags = VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities: vkGetPhysicalDeviceExternalFenceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalFenceInfo" ::: Ptr VkPhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr VkExternalFenceProperties) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: VkExportMemoryAllocateInfo :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlags -> VkExportMemoryAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: VkExternalMemoryBufferCreateInfo :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlags -> VkExternalMemoryBufferCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: VkExternalMemoryImageCreateInfo :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlags -> VkExternalMemoryImageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkHandleTypes:VkExportMemoryAllocateInfo] :: VkExportMemoryAllocateInfo -> VkExternalMemoryHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkHandleTypes:VkExternalMemoryBufferCreateInfo] :: VkExternalMemoryBufferCreateInfo -> VkExternalMemoryHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkHandleTypes:VkExternalMemoryImageCreateInfo] :: VkExternalMemoryImageCreateInfo -> VkExternalMemoryHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkPNext:VkExportMemoryAllocateInfo] :: VkExportMemoryAllocateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkPNext:VkExternalMemoryBufferCreateInfo] :: VkExternalMemoryBufferCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkPNext:VkExternalMemoryImageCreateInfo] :: VkExternalMemoryImageCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkSType:VkExportMemoryAllocateInfo] :: VkExportMemoryAllocateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkSType:VkExternalMemoryBufferCreateInfo] :: VkExternalMemoryBufferCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: [$sel:vkSType:VkExternalMemoryImageCreateInfo] :: VkExternalMemoryImageCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: data VkExportMemoryAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: data VkExternalMemoryBufferCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: data VkExternalMemoryImageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryBufferCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryImageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryBufferCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryImageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryBufferCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryImageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: VkExternalBufferProperties :: VkStructureType -> Ptr () -> VkExternalMemoryProperties -> VkExternalBufferProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: VkExternalImageFormatProperties :: VkStructureType -> Ptr () -> VkExternalMemoryProperties -> VkExternalImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: VkExternalMemoryFeatureFlagBits :: VkFlags -> VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: VkExternalMemoryHandleTypeFlagBits :: VkFlags -> VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: VkExternalMemoryProperties :: VkExternalMemoryFeatureFlags -> VkExternalMemoryHandleTypeFlags -> VkExternalMemoryHandleTypeFlags -> VkExternalMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: VkPhysicalDeviceExternalBufferInfo :: VkStructureType -> Ptr () -> VkBufferCreateFlags -> VkBufferUsageFlags -> VkExternalMemoryHandleTypeFlagBits -> VkPhysicalDeviceExternalBufferInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: VkPhysicalDeviceExternalImageFormatInfo :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagBits -> VkPhysicalDeviceExternalImageFormatInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: VkPhysicalDeviceIDProperties :: VkStructureType -> Ptr () -> Vector VK_UUID_SIZE Word8 -> Vector VK_UUID_SIZE Word8 -> Vector VK_LUID_SIZE Word8 -> Word32 -> VkBool32 -> VkPhysicalDeviceIDProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkCompatibleHandleTypes:VkExternalMemoryProperties] :: VkExternalMemoryProperties -> VkExternalMemoryHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkDeviceLUID:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Vector VK_LUID_SIZE Word8
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkDeviceLUIDValid:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkDeviceNodeMask:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkDeviceUUID:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Vector VK_UUID_SIZE Word8
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkDriverUUID:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Vector VK_UUID_SIZE Word8
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkExportFromImportedHandleTypes:VkExternalMemoryProperties] :: VkExternalMemoryProperties -> VkExternalMemoryHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkExternalMemoryFeatures:VkExternalMemoryProperties] :: VkExternalMemoryProperties -> VkExternalMemoryFeatureFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkExternalMemoryProperties:VkExternalBufferProperties] :: VkExternalBufferProperties -> VkExternalMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkExternalMemoryProperties:VkExternalImageFormatProperties] :: VkExternalImageFormatProperties -> VkExternalMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkFlags:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> VkBufferCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkHandleType:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkHandleType:VkPhysicalDeviceExternalImageFormatInfo] :: VkPhysicalDeviceExternalImageFormatInfo -> VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkPNext:VkExternalBufferProperties] :: VkExternalBufferProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkPNext:VkExternalImageFormatProperties] :: VkExternalImageFormatProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkPNext:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkPNext:VkPhysicalDeviceExternalImageFormatInfo] :: VkPhysicalDeviceExternalImageFormatInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkPNext:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkSType:VkExternalBufferProperties] :: VkExternalBufferProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkSType:VkExternalImageFormatProperties] :: VkExternalImageFormatProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkSType:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkSType:VkPhysicalDeviceExternalImageFormatInfo] :: VkPhysicalDeviceExternalImageFormatInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkSType:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: [$sel:vkUsage:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> VkBufferUsageFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: data VkExternalBufferProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: data VkExternalImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: data VkExternalMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: data VkPhysicalDeviceExternalBufferInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: data VkPhysicalDeviceExternalImageFormatInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: data VkPhysicalDeviceIDProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: newtype VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: newtype VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: type VK_LUID_SIZE = 8
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: type VkExternalMemoryFeatureFlags = VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: type VkExternalMemoryHandleTypeFlags = VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities: vkGetPhysicalDeviceExternalBufferProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalBufferInfo" ::: Ptr VkPhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr VkExternalBufferProperties) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: VkExportSemaphoreCreateInfo :: VkStructureType -> Ptr () -> VkExternalSemaphoreHandleTypeFlags -> VkExportSemaphoreCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: VkSemaphoreImportFlagBits :: VkFlags -> VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: [$sel:vkHandleTypes:VkExportSemaphoreCreateInfo] :: VkExportSemaphoreCreateInfo -> VkExternalSemaphoreHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: [$sel:vkPNext:VkExportSemaphoreCreateInfo] :: VkExportSemaphoreCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: [$sel:vkSType:VkExportSemaphoreCreateInfo] :: VkExportSemaphoreCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: data VkExportSemaphoreCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: newtype VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore: type VkSemaphoreImportFlags = VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: VkExternalSemaphoreFeatureFlagBits :: VkFlags -> VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: VkExternalSemaphoreHandleTypeFlagBits :: VkFlags -> VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: VkExternalSemaphoreProperties :: VkStructureType -> Ptr () -> VkExternalSemaphoreHandleTypeFlags -> VkExternalSemaphoreHandleTypeFlags -> VkExternalSemaphoreFeatureFlags -> VkExternalSemaphoreProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: VkPhysicalDeviceExternalSemaphoreInfo :: VkStructureType -> Ptr () -> VkExternalSemaphoreHandleTypeFlagBits -> VkPhysicalDeviceExternalSemaphoreInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: [$sel:vkCompatibleHandleTypes:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> VkExternalSemaphoreHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: [$sel:vkExportFromImportedHandleTypes:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> VkExternalSemaphoreHandleTypeFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: [$sel:vkExternalSemaphoreFeatures:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> VkExternalSemaphoreFeatureFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: [$sel:vkHandleType:VkPhysicalDeviceExternalSemaphoreInfo] :: VkPhysicalDeviceExternalSemaphoreInfo -> VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: [$sel:vkPNext:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: [$sel:vkPNext:VkPhysicalDeviceExternalSemaphoreInfo] :: VkPhysicalDeviceExternalSemaphoreInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: [$sel:vkSType:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: [$sel:vkSType:VkPhysicalDeviceExternalSemaphoreInfo] :: VkPhysicalDeviceExternalSemaphoreInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: data VkExternalSemaphoreProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: data VkPhysicalDeviceExternalSemaphoreInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkPhysicalDeviceExternalSemaphoreInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkPhysicalDeviceExternalSemaphoreInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkPhysicalDeviceExternalSemaphoreInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: newtype VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: newtype VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: type VkExternalSemaphoreFeatureFlags = VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: type VkExternalSemaphoreHandleTypeFlags = VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities: vkGetPhysicalDeviceExternalSemaphoreProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalSemaphoreInfo" ::: Ptr VkPhysicalDeviceExternalSemaphoreInfo) -> ("pExternalSemaphoreProperties" ::: Ptr VkExternalSemaphoreProperties) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: VkBufferMemoryRequirementsInfo2 :: VkStructureType -> Ptr () -> VkBuffer -> VkBufferMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: VkImageMemoryRequirementsInfo2 :: VkStructureType -> Ptr () -> VkImage -> VkImageMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: VkImageSparseMemoryRequirementsInfo2 :: VkStructureType -> Ptr () -> VkImage -> VkImageSparseMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: VkMemoryRequirements2 :: VkStructureType -> Ptr () -> VkMemoryRequirements -> VkMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: VkSparseImageMemoryRequirements2 :: VkStructureType -> Ptr () -> VkSparseImageMemoryRequirements -> VkSparseImageMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkBuffer:VkBufferMemoryRequirementsInfo2] :: VkBufferMemoryRequirementsInfo2 -> VkBuffer
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkImage:VkImageMemoryRequirementsInfo2] :: VkImageMemoryRequirementsInfo2 -> VkImage
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkImage:VkImageSparseMemoryRequirementsInfo2] :: VkImageSparseMemoryRequirementsInfo2 -> VkImage
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkMemoryRequirements:VkMemoryRequirements2] :: VkMemoryRequirements2 -> VkMemoryRequirements
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkMemoryRequirements:VkSparseImageMemoryRequirements2] :: VkSparseImageMemoryRequirements2 -> VkSparseImageMemoryRequirements
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkPNext:VkBufferMemoryRequirementsInfo2] :: VkBufferMemoryRequirementsInfo2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkPNext:VkImageMemoryRequirementsInfo2] :: VkImageMemoryRequirementsInfo2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkPNext:VkImageSparseMemoryRequirementsInfo2] :: VkImageSparseMemoryRequirementsInfo2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkPNext:VkMemoryRequirements2] :: VkMemoryRequirements2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkPNext:VkSparseImageMemoryRequirements2] :: VkSparseImageMemoryRequirements2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkSType:VkBufferMemoryRequirementsInfo2] :: VkBufferMemoryRequirementsInfo2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkSType:VkImageMemoryRequirementsInfo2] :: VkImageMemoryRequirementsInfo2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkSType:VkImageSparseMemoryRequirementsInfo2] :: VkImageSparseMemoryRequirementsInfo2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkSType:VkMemoryRequirements2] :: VkMemoryRequirements2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: [$sel:vkSType:VkSparseImageMemoryRequirements2] :: VkSparseImageMemoryRequirements2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: data VkBufferMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: data VkImageMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: data VkImageSparseMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: data VkMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: data VkSparseImageMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkBufferMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageSparseMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkSparseImageMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkBufferMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageSparseMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkSparseImageMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkBufferMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageSparseMemoryRequirementsInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkSparseImageMemoryRequirements2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: vkGetBufferMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkBufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: vkGetImageMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2: vkGetImageSparseMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkFormatProperties2 :: VkStructureType -> Ptr () -> VkFormatProperties -> VkFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkImageFormatProperties2 :: VkStructureType -> Ptr () -> VkImageFormatProperties -> VkImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkPhysicalDeviceFeatures2 :: VkStructureType -> Ptr () -> VkPhysicalDeviceFeatures -> VkPhysicalDeviceFeatures2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkPhysicalDeviceImageFormatInfo2 :: VkStructureType -> Ptr () -> VkFormat -> VkImageType -> VkImageTiling -> VkImageUsageFlags -> VkImageCreateFlags -> VkPhysicalDeviceImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkPhysicalDeviceMemoryProperties2 :: VkStructureType -> Ptr () -> VkPhysicalDeviceMemoryProperties -> VkPhysicalDeviceMemoryProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkPhysicalDeviceProperties2 :: VkStructureType -> Ptr () -> VkPhysicalDeviceProperties -> VkPhysicalDeviceProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkPhysicalDeviceSparseImageFormatInfo2 :: VkStructureType -> Ptr () -> VkFormat -> VkImageType -> VkSampleCountFlagBits -> VkImageUsageFlags -> VkImageTiling -> VkPhysicalDeviceSparseImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkQueueFamilyProperties2 :: VkStructureType -> Ptr () -> VkQueueFamilyProperties -> VkQueueFamilyProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: VkSparseImageFormatProperties2 :: VkStructureType -> Ptr () -> VkSparseImageFormatProperties -> VkSparseImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkFeatures:VkPhysicalDeviceFeatures2] :: VkPhysicalDeviceFeatures2 -> VkPhysicalDeviceFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkFlags:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkImageCreateFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkFormat:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkFormat
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkFormat:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkFormat
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkFormatProperties:VkFormatProperties2] :: VkFormatProperties2 -> VkFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkImageFormatProperties:VkImageFormatProperties2] :: VkImageFormatProperties2 -> VkImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkMemoryProperties:VkPhysicalDeviceMemoryProperties2] :: VkPhysicalDeviceMemoryProperties2 -> VkPhysicalDeviceMemoryProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkFormatProperties2] :: VkFormatProperties2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkImageFormatProperties2] :: VkImageFormatProperties2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkPhysicalDeviceFeatures2] :: VkPhysicalDeviceFeatures2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkPhysicalDeviceMemoryProperties2] :: VkPhysicalDeviceMemoryProperties2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkPhysicalDeviceProperties2] :: VkPhysicalDeviceProperties2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkQueueFamilyProperties2] :: VkQueueFamilyProperties2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkPNext:VkSparseImageFormatProperties2] :: VkSparseImageFormatProperties2 -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkProperties:VkPhysicalDeviceProperties2] :: VkPhysicalDeviceProperties2 -> VkPhysicalDeviceProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkProperties:VkSparseImageFormatProperties2] :: VkSparseImageFormatProperties2 -> VkSparseImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkQueueFamilyProperties:VkQueueFamilyProperties2] :: VkQueueFamilyProperties2 -> VkQueueFamilyProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkFormatProperties2] :: VkFormatProperties2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkImageFormatProperties2] :: VkImageFormatProperties2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkPhysicalDeviceFeatures2] :: VkPhysicalDeviceFeatures2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkPhysicalDeviceMemoryProperties2] :: VkPhysicalDeviceMemoryProperties2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkPhysicalDeviceProperties2] :: VkPhysicalDeviceProperties2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkQueueFamilyProperties2] :: VkQueueFamilyProperties2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSType:VkSparseImageFormatProperties2] :: VkSparseImageFormatProperties2 -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkSamples:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkSampleCountFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkTiling:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkImageTiling
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkTiling:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkImageTiling
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkType:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkImageType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkType:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkImageType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkUsage:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkImageUsageFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: [$sel:vkUsage:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkImageUsageFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkPhysicalDeviceFeatures2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkPhysicalDeviceImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkPhysicalDeviceMemoryProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkPhysicalDeviceProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkPhysicalDeviceSparseImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkQueueFamilyProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: data VkSparseImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceMemoryProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkQueueFamilyProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkSparseImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceMemoryProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkQueueFamilyProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkSparseImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceMemoryProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkQueueFamilyProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkSparseImageFormatProperties2
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceFeatures2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceImageFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pImageFormatInfo" ::: Ptr VkPhysicalDeviceImageFormatInfo2) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties2) -> IO VkResult
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceMemoryProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceQueueFamilyProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceSparseImageFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFormatInfo" ::: Ptr VkPhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties2) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: VkCommandPoolTrimFlags :: VkFlags -> VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: newtype VkCommandPoolTrimFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1: vkTrimCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolTrimFlags) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: VkImageViewUsageCreateInfo :: VkStructureType -> Ptr () -> VkImageUsageFlags -> VkImageViewUsageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: VkInputAttachmentAspectReference :: Word32 -> Word32 -> VkImageAspectFlags -> VkInputAttachmentAspectReference
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: VkPhysicalDevicePointClippingProperties :: VkStructureType -> Ptr () -> VkPointClippingBehavior -> VkPhysicalDevicePointClippingProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: VkPipelineTessellationDomainOriginStateCreateInfo :: VkStructureType -> Ptr () -> VkTessellationDomainOrigin -> VkPipelineTessellationDomainOriginStateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: VkPointClippingBehavior :: Int32 -> VkPointClippingBehavior
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: VkRenderPassInputAttachmentAspectCreateInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr VkInputAttachmentAspectReference -> VkRenderPassInputAttachmentAspectCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: VkTessellationDomainOrigin :: Int32 -> VkTessellationDomainOrigin
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkAspectMask:VkInputAttachmentAspectReference] :: VkInputAttachmentAspectReference -> VkImageAspectFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkAspectReferenceCount:VkRenderPassInputAttachmentAspectCreateInfo] :: VkRenderPassInputAttachmentAspectCreateInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkDomainOrigin:VkPipelineTessellationDomainOriginStateCreateInfo] :: VkPipelineTessellationDomainOriginStateCreateInfo -> VkTessellationDomainOrigin
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkInputAttachmentIndex:VkInputAttachmentAspectReference] :: VkInputAttachmentAspectReference -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkPAspectReferences:VkRenderPassInputAttachmentAspectCreateInfo] :: VkRenderPassInputAttachmentAspectCreateInfo -> Ptr VkInputAttachmentAspectReference
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkPNext:VkImageViewUsageCreateInfo] :: VkImageViewUsageCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkPNext:VkPhysicalDevicePointClippingProperties] :: VkPhysicalDevicePointClippingProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkPNext:VkPipelineTessellationDomainOriginStateCreateInfo] :: VkPipelineTessellationDomainOriginStateCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkPNext:VkRenderPassInputAttachmentAspectCreateInfo] :: VkRenderPassInputAttachmentAspectCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkPointClippingBehavior:VkPhysicalDevicePointClippingProperties] :: VkPhysicalDevicePointClippingProperties -> VkPointClippingBehavior
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkSType:VkImageViewUsageCreateInfo] :: VkImageViewUsageCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkSType:VkPhysicalDevicePointClippingProperties] :: VkPhysicalDevicePointClippingProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkSType:VkPipelineTessellationDomainOriginStateCreateInfo] :: VkPipelineTessellationDomainOriginStateCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkSType:VkRenderPassInputAttachmentAspectCreateInfo] :: VkRenderPassInputAttachmentAspectCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkSubpass:VkInputAttachmentAspectReference] :: VkInputAttachmentAspectReference -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: [$sel:vkUsage:VkImageViewUsageCreateInfo] :: VkImageViewUsageCreateInfo -> VkImageUsageFlags
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: data VkImageViewUsageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: data VkInputAttachmentAspectReference
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: data VkPhysicalDevicePointClippingProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: data VkPipelineTessellationDomainOriginStateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: data VkRenderPassInputAttachmentAspectCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkInputAttachmentAspectReference
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPhysicalDevicePointClippingProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPipelineTessellationDomainOriginStateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkRenderPassInputAttachmentAspectCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkInputAttachmentAspectReference
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPhysicalDevicePointClippingProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPipelineTessellationDomainOriginStateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkRenderPassInputAttachmentAspectCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkInputAttachmentAspectReference
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPhysicalDevicePointClippingProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPipelineTessellationDomainOriginStateCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkRenderPassInputAttachmentAspectCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: newtype VkPointClippingBehavior
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2: newtype VkTessellationDomainOrigin
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: VkDescriptorSetLayoutSupport :: VkStructureType -> Ptr () -> VkBool32 -> VkDescriptorSetLayoutSupport
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: VkPhysicalDeviceMaintenance3Properties :: VkStructureType -> Ptr () -> Word32 -> VkDeviceSize -> VkPhysicalDeviceMaintenance3Properties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: [$sel:vkMaxMemoryAllocationSize:VkPhysicalDeviceMaintenance3Properties] :: VkPhysicalDeviceMaintenance3Properties -> VkDeviceSize
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: [$sel:vkMaxPerSetDescriptors:VkPhysicalDeviceMaintenance3Properties] :: VkPhysicalDeviceMaintenance3Properties -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: [$sel:vkPNext:VkDescriptorSetLayoutSupport] :: VkDescriptorSetLayoutSupport -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: [$sel:vkPNext:VkPhysicalDeviceMaintenance3Properties] :: VkPhysicalDeviceMaintenance3Properties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: [$sel:vkSType:VkDescriptorSetLayoutSupport] :: VkDescriptorSetLayoutSupport -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: [$sel:vkSType:VkPhysicalDeviceMaintenance3Properties] :: VkPhysicalDeviceMaintenance3Properties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: [$sel:vkSupported:VkDescriptorSetLayoutSupport] :: VkDescriptorSetLayoutSupport -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: data VkDescriptorSetLayoutSupport
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: data VkPhysicalDeviceMaintenance3Properties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkDescriptorSetLayoutSupport
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkDescriptorSetLayoutSupport
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkDescriptorSetLayoutSupport
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3: vkGetDescriptorSetLayoutSupport :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pSupport" ::: Ptr VkDescriptorSetLayoutSupport) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: VkPhysicalDeviceMultiviewFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceMultiviewFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: VkPhysicalDeviceMultiviewProperties :: VkStructureType -> Ptr () -> Word32 -> Word32 -> VkPhysicalDeviceMultiviewProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: VkRenderPassMultiviewCreateInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> Word32 -> Ptr Int32 -> Word32 -> Ptr Word32 -> VkRenderPassMultiviewCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkCorrelationMaskCount:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkDependencyCount:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkMaxMultiviewInstanceIndex:VkPhysicalDeviceMultiviewProperties] :: VkPhysicalDeviceMultiviewProperties -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkMaxMultiviewViewCount:VkPhysicalDeviceMultiviewProperties] :: VkPhysicalDeviceMultiviewProperties -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkMultiview:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkMultiviewGeometryShader:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkMultiviewTessellationShader:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkPCorrelationMasks:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Ptr Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkPNext:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkPNext:VkPhysicalDeviceMultiviewProperties] :: VkPhysicalDeviceMultiviewProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkPNext:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkPViewMasks:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Ptr Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkPViewOffsets:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Ptr Int32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkSType:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkSType:VkPhysicalDeviceMultiviewProperties] :: VkPhysicalDeviceMultiviewProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkSType:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: [$sel:vkSubpassCount:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: data VkPhysicalDeviceMultiviewFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: data VkPhysicalDeviceMultiviewProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: data VkRenderPassMultiviewCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkRenderPassMultiviewCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkRenderPassMultiviewCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkRenderPassMultiviewCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkBindImagePlaneMemoryInfo :: VkStructureType -> Ptr () -> VkImageAspectFlagBits -> VkBindImagePlaneMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkChromaLocation :: Int32 -> VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkImagePlaneMemoryRequirementsInfo :: VkStructureType -> Ptr () -> VkImageAspectFlagBits -> VkImagePlaneMemoryRequirementsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkPhysicalDeviceSamplerYcbcrConversionFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceSamplerYcbcrConversionFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkSamplerYcbcrConversionCreateInfo :: VkStructureType -> Ptr () -> VkFormat -> VkSamplerYcbcrModelConversion -> VkSamplerYcbcrRange -> VkComponentMapping -> VkChromaLocation -> VkChromaLocation -> VkFilter -> VkBool32 -> VkSamplerYcbcrConversionCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkSamplerYcbcrConversionImageFormatProperties :: VkStructureType -> Ptr () -> Word32 -> VkSamplerYcbcrConversionImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkSamplerYcbcrConversionInfo :: VkStructureType -> Ptr () -> VkSamplerYcbcrConversion -> VkSamplerYcbcrConversionInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkSamplerYcbcrModelConversion :: Int32 -> VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: VkSamplerYcbcrRange :: Int32 -> VkSamplerYcbcrRange
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkChromaFilter:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkFilter
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkCombinedImageSamplerDescriptorCount:VkSamplerYcbcrConversionImageFormatProperties] :: VkSamplerYcbcrConversionImageFormatProperties -> Word32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkComponents:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkComponentMapping
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkConversion:VkSamplerYcbcrConversionInfo] :: VkSamplerYcbcrConversionInfo -> VkSamplerYcbcrConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkForceExplicitReconstruction:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkFormat:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkFormat
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkPNext:VkBindImagePlaneMemoryInfo] :: VkBindImagePlaneMemoryInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkPNext:VkImagePlaneMemoryRequirementsInfo] :: VkImagePlaneMemoryRequirementsInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkPNext:VkPhysicalDeviceSamplerYcbcrConversionFeatures] :: VkPhysicalDeviceSamplerYcbcrConversionFeatures -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkPNext:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkPNext:VkSamplerYcbcrConversionImageFormatProperties] :: VkSamplerYcbcrConversionImageFormatProperties -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkPNext:VkSamplerYcbcrConversionInfo] :: VkSamplerYcbcrConversionInfo -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkPlaneAspect:VkBindImagePlaneMemoryInfo] :: VkBindImagePlaneMemoryInfo -> VkImageAspectFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkPlaneAspect:VkImagePlaneMemoryRequirementsInfo] :: VkImagePlaneMemoryRequirementsInfo -> VkImageAspectFlagBits
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkSType:VkBindImagePlaneMemoryInfo] :: VkBindImagePlaneMemoryInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkSType:VkImagePlaneMemoryRequirementsInfo] :: VkImagePlaneMemoryRequirementsInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkSType:VkPhysicalDeviceSamplerYcbcrConversionFeatures] :: VkPhysicalDeviceSamplerYcbcrConversionFeatures -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkSType:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkSType:VkSamplerYcbcrConversionImageFormatProperties] :: VkSamplerYcbcrConversionImageFormatProperties -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkSType:VkSamplerYcbcrConversionInfo] :: VkSamplerYcbcrConversionInfo -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkSamplerYcbcrConversion:VkPhysicalDeviceSamplerYcbcrConversionFeatures] :: VkPhysicalDeviceSamplerYcbcrConversionFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkXChromaOffset:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkYChromaOffset:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkYcbcrModel:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: [$sel:vkYcbcrRange:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkSamplerYcbcrRange
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: data VkBindImagePlaneMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: data VkImagePlaneMemoryRequirementsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: data VkPhysicalDeviceSamplerYcbcrConversionFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: data VkSamplerYcbcrConversionCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: data VkSamplerYcbcrConversionImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: data VkSamplerYcbcrConversionInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkBindImagePlaneMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkImagePlaneMemoryRequirementsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkBindImagePlaneMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkImagePlaneMemoryRequirementsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkBindImagePlaneMemoryInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkImagePlaneMemoryRequirementsInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionImageFormatProperties
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: newtype VkChromaLocation
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: newtype VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: newtype VkSamplerYcbcrRange
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: type VkSamplerYcbcrConversion = Ptr VkSamplerYcbcrConversion_T
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: vkCreateSamplerYcbcrConversion :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerYcbcrConversionCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr VkSamplerYcbcrConversion) -> IO VkResult
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion: vkDestroySamplerYcbcrConversion :: ("device" ::: VkDevice) -> ("ycbcrConversion" ::: VkSamplerYcbcrConversion) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters: VkPhysicalDeviceShaderDrawParameterFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceShaderDrawParameterFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters: [$sel:vkPNext:VkPhysicalDeviceShaderDrawParameterFeatures] :: VkPhysicalDeviceShaderDrawParameterFeatures -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters: [$sel:vkSType:VkPhysicalDeviceShaderDrawParameterFeatures] :: VkPhysicalDeviceShaderDrawParameterFeatures -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters: [$sel:vkShaderDrawParameters:VkPhysicalDeviceShaderDrawParameterFeatures] :: VkPhysicalDeviceShaderDrawParameterFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters: data VkPhysicalDeviceShaderDrawParameterFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters.VkPhysicalDeviceShaderDrawParameterFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters.VkPhysicalDeviceShaderDrawParameterFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters.VkPhysicalDeviceShaderDrawParameterFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: VkPhysicalDeviceVariablePointerFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkPhysicalDeviceVariablePointerFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: [$sel:vkPNext:VkPhysicalDeviceVariablePointerFeatures] :: VkPhysicalDeviceVariablePointerFeatures -> Ptr ()
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: [$sel:vkSType:VkPhysicalDeviceVariablePointerFeatures] :: VkPhysicalDeviceVariablePointerFeatures -> VkStructureType
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: [$sel:vkVariablePointers:VkPhysicalDeviceVariablePointerFeatures] :: VkPhysicalDeviceVariablePointerFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: [$sel:vkVariablePointersStorageBuffer:VkPhysicalDeviceVariablePointerFeatures] :: VkPhysicalDeviceVariablePointerFeatures -> VkBool32
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: data VkPhysicalDeviceVariablePointerFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures
+ Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers: instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures
+ Graphics.Vulkan.Extensions.VK_AMD_buffer_marker: vkCmdWriteBufferMarkerAMD :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineStage" ::: VkPipelineStageFlagBits) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("marker" ::: Word32) -> IO ()
+ Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count: vkCmdDrawIndexedIndirectCountAMD :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("countBuffer" ::: VkBuffer) -> ("countBufferOffset" ::: VkDeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()
+ Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count: vkCmdDrawIndirectCountAMD :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("countBuffer" ::: VkBuffer) -> ("countBufferOffset" ::: VkDeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: VkPipelineRasterizationStateRasterizationOrderAMD :: VkStructureType -> Ptr () -> VkRasterizationOrderAMD -> VkPipelineRasterizationStateRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: VkRasterizationOrderAMD :: Int32 -> VkRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: [$sel:vkPNext:VkPipelineRasterizationStateRasterizationOrderAMD] :: VkPipelineRasterizationStateRasterizationOrderAMD -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: [$sel:vkRasterizationOrder:VkPipelineRasterizationStateRasterizationOrderAMD] :: VkPipelineRasterizationStateRasterizationOrderAMD -> VkRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: [$sel:vkSType:VkPipelineRasterizationStateRasterizationOrderAMD] :: VkPipelineRasterizationStateRasterizationOrderAMD -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: data VkPipelineRasterizationStateRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkPipelineRasterizationStateRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkPipelineRasterizationStateRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkPipelineRasterizationStateRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_rasterization_order: newtype VkRasterizationOrderAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: VkPhysicalDeviceShaderCorePropertiesAMD :: VkStructureType -> Ptr () -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkPhysicalDeviceShaderCorePropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkComputeUnitsPerShaderArray:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkMaxSgprAllocation:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkMaxVgprAllocation:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkMinSgprAllocation:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkMinVgprAllocation:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkPNext:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkSType:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkSgprAllocationGranularity:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkSgprsPerSimd:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkShaderArraysPerEngineCount:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkShaderEngineCount:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkSimdPerComputeUnit:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkVgprAllocationGranularity:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkVgprsPerSimd:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkWavefrontSize:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: [$sel:vkWavefrontsPerSimd:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: data VkPhysicalDeviceShaderCorePropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties.VkPhysicalDeviceShaderCorePropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties.VkPhysicalDeviceShaderCorePropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties.VkPhysicalDeviceShaderCorePropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: VkShaderInfoTypeAMD :: Int32 -> VkShaderInfoTypeAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: VkShaderResourceUsageAMD :: Word32 -> Word32 -> Word32 -> CSize -> CSize -> VkShaderResourceUsageAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: VkShaderStatisticsInfoAMD :: VkShaderStageFlags -> VkShaderResourceUsageAMD -> Word32 -> Word32 -> Word32 -> Word32 -> Vector 3 Word32 -> VkShaderStatisticsInfoAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkComputeWorkGroupSize:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Vector 3 Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkLdsSizePerLocalWorkGroup:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkLdsUsageSizeInBytes:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> CSize
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkNumAvailableSgprs:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkNumAvailableVgprs:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkNumPhysicalSgprs:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkNumPhysicalVgprs:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkNumUsedSgprs:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkNumUsedVgprs:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> Word32
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkResourceUsage:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> VkShaderResourceUsageAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkScratchMemUsageInBytes:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> CSize
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: [$sel:vkShaderStageMask:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> VkShaderStageFlags
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: data VkShaderResourceUsageAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: data VkShaderStatisticsInfoAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderResourceUsageAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderStatisticsInfoAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderResourceUsageAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderStatisticsInfoAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderResourceUsageAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderStatisticsInfoAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: newtype VkShaderInfoTypeAMD
+ Graphics.Vulkan.Extensions.VK_AMD_shader_info: vkGetShaderInfoAMD :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("shaderStage" ::: VkShaderStageFlagBits) -> ("infoType" ::: VkShaderInfoTypeAMD) -> ("pInfoSize" ::: Ptr CSize) -> ("pInfo" ::: Ptr ()) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod: VkTextureLODGatherFormatPropertiesAMD :: VkStructureType -> Ptr () -> VkBool32 -> VkTextureLODGatherFormatPropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod: [$sel:vkPNext:VkTextureLODGatherFormatPropertiesAMD] :: VkTextureLODGatherFormatPropertiesAMD -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod: [$sel:vkSType:VkTextureLODGatherFormatPropertiesAMD] :: VkTextureLODGatherFormatPropertiesAMD -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod: [$sel:vkSupportsTextureGatherLODBiasAMD:VkTextureLODGatherFormatPropertiesAMD] :: VkTextureLODGatherFormatPropertiesAMD -> VkBool32
+ Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod: data VkTextureLODGatherFormatPropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD
+ Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: VkBlendOverlapEXT :: Int32 -> VkBlendOverlapEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: VkPipelineColorBlendAdvancedStateCreateInfoEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkBlendOverlapEXT -> VkPipelineColorBlendAdvancedStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkAdvancedBlendAllOperations:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkAdvancedBlendCoherentOperations:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT] :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkAdvancedBlendCorrelatedOverlap:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkAdvancedBlendIndependentBlend:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkAdvancedBlendMaxColorAttachments:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkAdvancedBlendNonPremultipliedDstColor:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkAdvancedBlendNonPremultipliedSrcColor:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkBlendOverlap:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> VkBlendOverlapEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkDstPremultiplied:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkPNext:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT] :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkPNext:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkPNext:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkSType:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT] :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkSType:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkSType:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: [$sel:vkSrcPremultiplied:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: data VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: data VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: data VkPipelineColorBlendAdvancedStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced: newtype VkBlendOverlapEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: VkConservativeRasterizationModeEXT :: Int32 -> VkConservativeRasterizationModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: VkPhysicalDeviceConservativeRasterizationPropertiesEXT :: VkStructureType -> Ptr () -> CFloat -> CFloat -> CFloat -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: VkPipelineRasterizationConservativeStateCreateFlagsEXT :: VkFlags -> VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: VkPipelineRasterizationConservativeStateCreateInfoEXT :: VkStructureType -> Ptr () -> VkPipelineRasterizationConservativeStateCreateFlagsEXT -> VkConservativeRasterizationModeEXT -> CFloat -> VkPipelineRasterizationConservativeStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkConservativePointAndLineRasterization:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkConservativeRasterizationMode:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> VkConservativeRasterizationModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkConservativeRasterizationPostDepthCoverage:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkDegenerateLinesRasterized:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkDegenerateTrianglesRasterized:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkExtraPrimitiveOverestimationSize:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkExtraPrimitiveOverestimationSizeGranularity:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkFlags:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkFullyCoveredFragmentShaderInputVariable:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkMaxExtraPrimitiveOverestimationSize:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkPNext:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkPNext:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkPrimitiveOverestimationSize:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkPrimitiveUnderestimation:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkSType:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: [$sel:vkSType:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: data VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: data VkPipelineRasterizationConservativeStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: newtype VkConservativeRasterizationModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization: newtype VkPipelineRasterizationConservativeStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: VkDebugMarkerMarkerInfoEXT :: VkStructureType -> Ptr () -> Ptr CChar -> Vector 4 CFloat -> VkDebugMarkerMarkerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: VkDebugMarkerObjectNameInfoEXT :: VkStructureType -> Ptr () -> VkDebugReportObjectTypeEXT -> Word64 -> Ptr CChar -> VkDebugMarkerObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: VkDebugMarkerObjectTagInfoEXT :: VkStructureType -> Ptr () -> VkDebugReportObjectTypeEXT -> Word64 -> Word64 -> CSize -> Ptr () -> VkDebugMarkerObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkColor:VkDebugMarkerMarkerInfoEXT] :: VkDebugMarkerMarkerInfoEXT -> Vector 4 CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkObject:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> Word64
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkObject:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> Word64
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkObjectType:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkObjectType:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkPMarkerName:VkDebugMarkerMarkerInfoEXT] :: VkDebugMarkerMarkerInfoEXT -> Ptr CChar
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkPNext:VkDebugMarkerMarkerInfoEXT] :: VkDebugMarkerMarkerInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkPNext:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkPNext:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkPObjectName:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> Ptr CChar
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkPTag:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkSType:VkDebugMarkerMarkerInfoEXT] :: VkDebugMarkerMarkerInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkSType:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkSType:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkTagName:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> Word64
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: [$sel:vkTagSize:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> CSize
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: data VkDebugMarkerMarkerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: data VkDebugMarkerObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: data VkDebugMarkerObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerMarkerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerMarkerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerMarkerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: vkCmdDebugMarkerBeginEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pMarkerInfo" ::: Ptr VkDebugMarkerMarkerInfoEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: vkCmdDebugMarkerEndEXT :: ("commandBuffer" ::: VkCommandBuffer) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: vkCmdDebugMarkerInsertEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pMarkerInfo" ::: Ptr VkDebugMarkerMarkerInfoEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: vkDebugMarkerSetObjectNameEXT :: ("device" ::: VkDevice) -> ("pNameInfo" ::: Ptr VkDebugMarkerObjectNameInfoEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_debug_marker: vkDebugMarkerSetObjectTagEXT :: ("device" ::: VkDevice) -> ("pTagInfo" ::: Ptr VkDebugMarkerObjectTagInfoEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: VkDebugReportCallbackCreateInfoEXT :: VkStructureType -> Ptr () -> VkDebugReportFlagsEXT -> PFN_vkDebugReportCallbackEXT -> Ptr () -> VkDebugReportCallbackCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: VkDebugReportFlagBitsEXT :: VkFlags -> VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: VkDebugReportObjectTypeEXT :: Int32 -> VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: [$sel:vkFlags:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> VkDebugReportFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: [$sel:vkPNext:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: [$sel:vkPUserData:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: [$sel:vkPfnCallback:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> PFN_vkDebugReportCallbackEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: [$sel:vkSType:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: data VkDebugReportCallbackCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportCallbackCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportCallbackCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportCallbackCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: newtype VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: newtype VkDebugReportObjectTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: type PFN_vkDebugReportCallbackEXT = Ptr (("flags" ::: VkDebugReportFlagsEXT) -> ("objectType" ::: VkDebugReportObjectTypeEXT) -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> ("pUserData" ::: Ptr ()) -> IO VkBool32)
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: type VkDebugReportCallbackEXT = Ptr VkDebugReportCallbackEXT_T
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: type VkDebugReportFlagsEXT = VkDebugReportFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: vkCreateDebugReportCallbackEXT :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pCallback" ::: Ptr VkDebugReportCallbackEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: vkDebugReportMessageEXT :: ("instance" ::: VkInstance) -> ("flags" ::: VkDebugReportFlagsEXT) -> ("objectType" ::: VkDebugReportObjectTypeEXT) -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_report: vkDestroyDebugReportCallbackEXT :: ("instance" ::: VkInstance) -> ("callback" ::: VkDebugReportCallbackEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsLabelEXT :: VkStructureType -> Ptr () -> Ptr CChar -> Vector 4 CFloat -> VkDebugUtilsLabelEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsMessageSeverityFlagBitsEXT :: VkFlags -> VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsMessageTypeFlagBitsEXT :: VkFlags -> VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsMessengerCallbackDataEXT :: VkStructureType -> Ptr () -> VkDebugUtilsMessengerCallbackDataFlagsEXT -> Ptr CChar -> Int32 -> Ptr CChar -> Word32 -> Ptr VkDebugUtilsLabelEXT -> Word32 -> Ptr VkDebugUtilsLabelEXT -> Word32 -> Ptr VkDebugUtilsObjectNameInfoEXT -> VkDebugUtilsMessengerCallbackDataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsMessengerCallbackDataFlagsEXT :: VkFlags -> VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsMessengerCreateFlagsEXT :: VkFlags -> VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsMessengerCreateInfoEXT :: VkStructureType -> Ptr () -> VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessageSeverityFlagsEXT -> VkDebugUtilsMessageTypeFlagsEXT -> PFN_vkDebugUtilsMessengerCallbackEXT -> Ptr () -> VkDebugUtilsMessengerCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsObjectNameInfoEXT :: VkStructureType -> Ptr () -> VkObjectType -> Word64 -> Ptr CChar -> VkDebugUtilsObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: VkDebugUtilsObjectTagInfoEXT :: VkStructureType -> Ptr () -> VkObjectType -> Word64 -> Word64 -> CSize -> Ptr () -> VkDebugUtilsObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkCmdBufLabelCount:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkColor:VkDebugUtilsLabelEXT] :: VkDebugUtilsLabelEXT -> Vector 4 CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkFlags:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkFlags:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkMessageIdNumber:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Int32
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkMessageSeverity:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> VkDebugUtilsMessageSeverityFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkMessageType:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> VkDebugUtilsMessageTypeFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkObjectCount:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkObjectHandle:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> Word64
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkObjectHandle:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> Word64
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkObjectType:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> VkObjectType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkObjectType:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> VkObjectType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPCmdBufLabels:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr VkDebugUtilsLabelEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPLabelName:VkDebugUtilsLabelEXT] :: VkDebugUtilsLabelEXT -> Ptr CChar
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPMessage:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr CChar
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPMessageIdName:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr CChar
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPNext:VkDebugUtilsLabelEXT] :: VkDebugUtilsLabelEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPNext:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPNext:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPNext:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPNext:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPObjectName:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> Ptr CChar
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPObjects:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr VkDebugUtilsObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPQueueLabels:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr VkDebugUtilsLabelEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPTag:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPUserData:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkPfnUserCallback:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> PFN_vkDebugUtilsMessengerCallbackEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkQueueLabelCount:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkSType:VkDebugUtilsLabelEXT] :: VkDebugUtilsLabelEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkSType:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkSType:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkSType:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkSType:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkTagName:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> Word64
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: [$sel:vkTagSize:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> CSize
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: data VkDebugUtilsLabelEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: data VkDebugUtilsMessengerCallbackDataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: data VkDebugUtilsMessengerCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: data VkDebugUtilsObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: data VkDebugUtilsObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsLabelEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsLabelEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsLabelEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectNameInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectTagInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: newtype VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: newtype VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: newtype VkDebugUtilsMessengerCallbackDataFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: newtype VkDebugUtilsMessengerCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: type PFN_vkDebugUtilsMessengerCallbackEXT = Ptr (("messageSeverity" ::: VkDebugUtilsMessageSeverityFlagBitsEXT) -> ("messageType" ::: VkDebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr VkDebugUtilsMessengerCallbackDataEXT) -> ("pUserData" ::: Ptr ()) -> IO VkBool32)
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: type VkDebugUtilsMessageSeverityFlagsEXT = VkDebugUtilsMessageSeverityFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: type VkDebugUtilsMessageTypeFlagsEXT = VkDebugUtilsMessageTypeFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: type VkDebugUtilsMessengerEXT = Ptr VkDebugUtilsMessengerEXT_T
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkCmdBeginDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkCmdEndDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkCmdInsertDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkCreateDebugUtilsMessengerEXT :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMessenger" ::: Ptr VkDebugUtilsMessengerEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkDestroyDebugUtilsMessengerEXT :: ("instance" ::: VkInstance) -> ("messenger" ::: VkDebugUtilsMessengerEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkQueueBeginDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkQueueEndDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkQueueInsertDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkSetDebugUtilsObjectNameEXT :: ("device" ::: VkDevice) -> ("pNameInfo" ::: Ptr VkDebugUtilsObjectNameInfoEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkSetDebugUtilsObjectTagEXT :: ("device" ::: VkDevice) -> ("pTagInfo" ::: Ptr VkDebugUtilsObjectTagInfoEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_debug_utils: vkSubmitDebugUtilsMessageEXT :: ("instance" ::: VkInstance) -> ("messageSeverity" ::: VkDebugUtilsMessageSeverityFlagBitsEXT) -> ("messageTypes" ::: VkDebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr VkDebugUtilsMessengerCallbackDataEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: VkDescriptorBindingFlagBitsEXT :: VkFlags -> VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr VkDescriptorBindingFlagsEXT -> VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT :: VkStructureType -> Ptr () -> Word32 -> VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: VkPhysicalDeviceDescriptorIndexingFeaturesEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: VkPhysicalDeviceDescriptorIndexingPropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkBindingCount:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT] :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingPartiallyBound:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingSampledImageUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingStorageBufferUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingStorageImageUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingStorageTexelBufferUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingUniformBufferUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingUniformTexelBufferUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingUpdateUnusedWhilePending:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorBindingVariableDescriptorCount:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkDescriptorSetCount:VkDescriptorSetVariableDescriptorCountAllocateInfoEXT] :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxDescriptorSetUpdateAfterBindInputAttachments:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxDescriptorSetUpdateAfterBindSampledImages:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxDescriptorSetUpdateAfterBindSamplers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxDescriptorSetUpdateAfterBindStorageBuffers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxDescriptorSetUpdateAfterBindStorageImages:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxDescriptorSetUpdateAfterBindUniformBuffers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxPerStageDescriptorUpdateAfterBindInputAttachments:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxPerStageDescriptorUpdateAfterBindSampledImages:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxPerStageDescriptorUpdateAfterBindSamplers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxPerStageDescriptorUpdateAfterBindStorageBuffers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxPerStageDescriptorUpdateAfterBindStorageImages:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxPerStageDescriptorUpdateAfterBindUniformBuffers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxPerStageUpdateAfterBindResources:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxUpdateAfterBindDescriptorsInAllPools:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkMaxVariableDescriptorCount:VkDescriptorSetVariableDescriptorCountLayoutSupportEXT] :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkPBindingFlags:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT] :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -> Ptr VkDescriptorBindingFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkPDescriptorCounts:VkDescriptorSetVariableDescriptorCountAllocateInfoEXT] :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -> Ptr Word32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkPNext:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT] :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkPNext:VkDescriptorSetVariableDescriptorCountAllocateInfoEXT] :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkPNext:VkDescriptorSetVariableDescriptorCountLayoutSupportEXT] :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkPNext:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkPNext:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkQuadDivergentImplicitLod:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkRobustBufferAccessUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkRuntimeDescriptorArray:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkSType:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT] :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkSType:VkDescriptorSetVariableDescriptorCountAllocateInfoEXT] :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkSType:VkDescriptorSetVariableDescriptorCountLayoutSupportEXT] :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkSType:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkSType:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderInputAttachmentArrayDynamicIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderInputAttachmentArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderInputAttachmentArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderSampledImageArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderSampledImageArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderStorageBufferArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderStorageBufferArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderStorageImageArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderStorageImageArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderStorageTexelBufferArrayDynamicIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderStorageTexelBufferArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderUniformBufferArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderUniformBufferArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderUniformTexelBufferArrayDynamicIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: [$sel:vkShaderUniformTexelBufferArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: data VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: data VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: data VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: data VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: data VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: newtype VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing: type VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_direct_mode_display: vkReleaseDisplayEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("display" ::: VkDisplayKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: VkDiscardRectangleModeEXT :: Int32 -> VkDiscardRectangleModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: VkPhysicalDeviceDiscardRectanglePropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkPhysicalDeviceDiscardRectanglePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: VkPipelineDiscardRectangleStateCreateFlagsEXT :: VkFlags -> VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: VkPipelineDiscardRectangleStateCreateInfoEXT :: VkStructureType -> Ptr () -> VkPipelineDiscardRectangleStateCreateFlagsEXT -> VkDiscardRectangleModeEXT -> Word32 -> Ptr VkRect2D -> VkPipelineDiscardRectangleStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkDiscardRectangleCount:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkDiscardRectangleMode:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> VkDiscardRectangleModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkFlags:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkMaxDiscardRectangles:VkPhysicalDeviceDiscardRectanglePropertiesEXT] :: VkPhysicalDeviceDiscardRectanglePropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkPDiscardRectangles:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> Ptr VkRect2D
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkPNext:VkPhysicalDeviceDiscardRectanglePropertiesEXT] :: VkPhysicalDeviceDiscardRectanglePropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkPNext:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkSType:VkPhysicalDeviceDiscardRectanglePropertiesEXT] :: VkPhysicalDeviceDiscardRectanglePropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: [$sel:vkSType:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: data VkPhysicalDeviceDiscardRectanglePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: data VkPipelineDiscardRectangleStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPhysicalDeviceDiscardRectanglePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPhysicalDeviceDiscardRectanglePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPhysicalDeviceDiscardRectanglePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: newtype VkDiscardRectangleModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: newtype VkPipelineDiscardRectangleStateCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles: vkCmdSetDiscardRectangleEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstDiscardRectangle" ::: Word32) -> ("discardRectangleCount" ::: Word32) -> ("pDiscardRectangles" ::: Ptr VkRect2D) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: VkDeviceEventInfoEXT :: VkStructureType -> Ptr () -> VkDeviceEventTypeEXT -> VkDeviceEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: VkDeviceEventTypeEXT :: Int32 -> VkDeviceEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: VkDisplayEventInfoEXT :: VkStructureType -> Ptr () -> VkDisplayEventTypeEXT -> VkDisplayEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: VkDisplayEventTypeEXT :: Int32 -> VkDisplayEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: VkDisplayPowerInfoEXT :: VkStructureType -> Ptr () -> VkDisplayPowerStateEXT -> VkDisplayPowerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: VkDisplayPowerStateEXT :: Int32 -> VkDisplayPowerStateEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: VkSwapchainCounterCreateInfoEXT :: VkStructureType -> Ptr () -> VkSurfaceCounterFlagsEXT -> VkSwapchainCounterCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkDeviceEvent:VkDeviceEventInfoEXT] :: VkDeviceEventInfoEXT -> VkDeviceEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkDisplayEvent:VkDisplayEventInfoEXT] :: VkDisplayEventInfoEXT -> VkDisplayEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkPNext:VkDeviceEventInfoEXT] :: VkDeviceEventInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkPNext:VkDisplayEventInfoEXT] :: VkDisplayEventInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkPNext:VkDisplayPowerInfoEXT] :: VkDisplayPowerInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkPNext:VkSwapchainCounterCreateInfoEXT] :: VkSwapchainCounterCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkPowerState:VkDisplayPowerInfoEXT] :: VkDisplayPowerInfoEXT -> VkDisplayPowerStateEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkSType:VkDeviceEventInfoEXT] :: VkDeviceEventInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkSType:VkDisplayEventInfoEXT] :: VkDisplayEventInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkSType:VkDisplayPowerInfoEXT] :: VkDisplayPowerInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkSType:VkSwapchainCounterCreateInfoEXT] :: VkSwapchainCounterCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: [$sel:vkSurfaceCounters:VkSwapchainCounterCreateInfoEXT] :: VkSwapchainCounterCreateInfoEXT -> VkSurfaceCounterFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: data VkDeviceEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: data VkDisplayEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: data VkDisplayPowerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: data VkSwapchainCounterCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: newtype VkDeviceEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: newtype VkDisplayEventTypeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: newtype VkDisplayPowerStateEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: vkDisplayPowerControlEXT :: ("device" ::: VkDevice) -> ("display" ::: VkDisplayKHR) -> ("pDisplayPowerInfo" ::: Ptr VkDisplayPowerInfoEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: vkGetSwapchainCounterEXT :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("counter" ::: VkSurfaceCounterFlagBitsEXT) -> ("pCounterValue" ::: Ptr Word64) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: vkRegisterDeviceEventEXT :: ("device" ::: VkDevice) -> ("pDeviceEventInfo" ::: Ptr VkDeviceEventInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFence" ::: Ptr VkFence) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_display_control: vkRegisterDisplayEventEXT :: ("device" ::: VkDevice) -> ("display" ::: VkDisplayKHR) -> ("pDisplayEventInfo" ::: Ptr VkDisplayEventInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFence" ::: Ptr VkFence) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: VkSurfaceCapabilities2EXT :: VkStructureType -> Ptr () -> Word32 -> Word32 -> VkExtent2D -> VkExtent2D -> VkExtent2D -> Word32 -> VkSurfaceTransformFlagsKHR -> VkSurfaceTransformFlagBitsKHR -> VkCompositeAlphaFlagsKHR -> VkImageUsageFlags -> VkSurfaceCounterFlagsEXT -> VkSurfaceCapabilities2EXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: VkSurfaceCounterFlagBitsEXT :: VkFlags -> VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkCurrentExtent:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkCurrentTransform:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkMaxImageArrayLayers:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkMaxImageCount:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkMaxImageExtent:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkMinImageCount:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkMinImageExtent:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkPNext:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkSType:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkSupportedCompositeAlpha:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkCompositeAlphaFlagsKHR
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkSupportedSurfaceCounters:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkSurfaceCounterFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkSupportedTransforms:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkSurfaceTransformFlagsKHR
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: [$sel:vkSupportedUsageFlags:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkImageUsageFlags
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: data VkSurfaceCapabilities2EXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: newtype VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: type VkSurfaceCounterFlagsEXT = VkSurfaceCounterFlagBitsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter: vkGetPhysicalDeviceSurfaceCapabilities2EXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilities2EXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: VkImportMemoryHostPointerInfoEXT :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagBits -> Ptr () -> VkImportMemoryHostPointerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: VkMemoryHostPointerPropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkMemoryHostPointerPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: VkPhysicalDeviceExternalMemoryHostPropertiesEXT :: VkStructureType -> Ptr () -> VkDeviceSize -> VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkHandleType:VkImportMemoryHostPointerInfoEXT] :: VkImportMemoryHostPointerInfoEXT -> VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkMemoryTypeBits:VkMemoryHostPointerPropertiesEXT] :: VkMemoryHostPointerPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkMinImportedHostPointerAlignment:VkPhysicalDeviceExternalMemoryHostPropertiesEXT] :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT -> VkDeviceSize
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkPHostPointer:VkImportMemoryHostPointerInfoEXT] :: VkImportMemoryHostPointerInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkPNext:VkImportMemoryHostPointerInfoEXT] :: VkImportMemoryHostPointerInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkPNext:VkMemoryHostPointerPropertiesEXT] :: VkMemoryHostPointerPropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkPNext:VkPhysicalDeviceExternalMemoryHostPropertiesEXT] :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkSType:VkImportMemoryHostPointerInfoEXT] :: VkImportMemoryHostPointerInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkSType:VkMemoryHostPointerPropertiesEXT] :: VkMemoryHostPointerPropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: [$sel:vkSType:VkPhysicalDeviceExternalMemoryHostPropertiesEXT] :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: data VkImportMemoryHostPointerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: data VkMemoryHostPointerPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: data VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkImportMemoryHostPointerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkMemoryHostPointerPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkImportMemoryHostPointerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkMemoryHostPointerPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkImportMemoryHostPointerInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkMemoryHostPointerPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_external_memory_host: vkGetMemoryHostPointerPropertiesEXT :: ("device" ::: VkDevice) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> ("pHostPointer" ::: Ptr ()) -> ("pMemoryHostPointerProperties" ::: Ptr VkMemoryHostPointerPropertiesEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: VkDeviceQueueGlobalPriorityCreateInfoEXT :: VkStructureType -> Ptr () -> VkQueueGlobalPriorityEXT -> VkDeviceQueueGlobalPriorityCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: VkQueueGlobalPriorityEXT :: Int32 -> VkQueueGlobalPriorityEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: [$sel:vkGlobalPriority:VkDeviceQueueGlobalPriorityCreateInfoEXT] :: VkDeviceQueueGlobalPriorityCreateInfoEXT -> VkQueueGlobalPriorityEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: [$sel:vkPNext:VkDeviceQueueGlobalPriorityCreateInfoEXT] :: VkDeviceQueueGlobalPriorityCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: [$sel:vkSType:VkDeviceQueueGlobalPriorityCreateInfoEXT] :: VkDeviceQueueGlobalPriorityCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: data VkDeviceQueueGlobalPriorityCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkDeviceQueueGlobalPriorityCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkDeviceQueueGlobalPriorityCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkDeviceQueueGlobalPriorityCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT
+ Graphics.Vulkan.Extensions.VK_EXT_global_priority: newtype VkQueueGlobalPriorityEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: VkHdrMetadataEXT :: VkStructureType -> Ptr () -> VkXYColorEXT -> VkXYColorEXT -> VkXYColorEXT -> VkXYColorEXT -> CFloat -> CFloat -> CFloat -> CFloat -> VkHdrMetadataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: VkXYColorEXT :: CFloat -> CFloat -> VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkDisplayPrimaryBlue:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkDisplayPrimaryGreen:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkDisplayPrimaryRed:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkMaxContentLightLevel:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkMaxFrameAverageLightLevel:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkMaxLuminance:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkMinLuminance:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkPNext:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkSType:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkWhitePoint:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkX:VkXYColorEXT] :: VkXYColorEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: [$sel:vkY:VkXYColorEXT] :: VkXYColorEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: data VkHdrMetadataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: data VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkHdrMetadataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkHdrMetadataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkHdrMetadataEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkXYColorEXT
+ Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata: vkSetHdrMetadataEXT :: ("device" ::: VkDevice) -> ("swapchainCount" ::: Word32) -> ("pSwapchains" ::: Ptr VkSwapchainKHR) -> ("pMetadata" ::: Ptr VkHdrMetadataEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: VkAttachmentSampleLocationsEXT :: Word32 -> VkSampleLocationsInfoEXT -> VkAttachmentSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: VkMultisamplePropertiesEXT :: VkStructureType -> Ptr () -> VkExtent2D -> VkMultisamplePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: VkPhysicalDeviceSampleLocationsPropertiesEXT :: VkStructureType -> Ptr () -> VkSampleCountFlags -> VkExtent2D -> Vector 2 CFloat -> Word32 -> VkBool32 -> VkPhysicalDeviceSampleLocationsPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: VkPipelineSampleLocationsStateCreateInfoEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkSampleLocationsInfoEXT -> VkPipelineSampleLocationsStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: VkRenderPassSampleLocationsBeginInfoEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr VkAttachmentSampleLocationsEXT -> Word32 -> Ptr VkSubpassSampleLocationsEXT -> VkRenderPassSampleLocationsBeginInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: VkSampleLocationEXT :: CFloat -> CFloat -> VkSampleLocationEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: VkSampleLocationsInfoEXT :: VkStructureType -> Ptr () -> VkSampleCountFlagBits -> VkExtent2D -> Word32 -> Ptr VkSampleLocationEXT -> VkSampleLocationsInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: VkSubpassSampleLocationsEXT :: Word32 -> VkSampleLocationsInfoEXT -> VkSubpassSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkAttachmentIndex:VkAttachmentSampleLocationsEXT] :: VkAttachmentSampleLocationsEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkAttachmentInitialSampleLocationsCount:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkMaxSampleLocationGridSize:VkMultisamplePropertiesEXT] :: VkMultisamplePropertiesEXT -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkMaxSampleLocationGridSize:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPAttachmentInitialSampleLocations:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Ptr VkAttachmentSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPNext:VkMultisamplePropertiesEXT] :: VkMultisamplePropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPNext:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPNext:VkPipelineSampleLocationsStateCreateInfoEXT] :: VkPipelineSampleLocationsStateCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPNext:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPNext:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPPostSubpassSampleLocations:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Ptr VkSubpassSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPSampleLocations:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> Ptr VkSampleLocationEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkPostSubpassSampleLocationsCount:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSType:VkMultisamplePropertiesEXT] :: VkMultisamplePropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSType:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSType:VkPipelineSampleLocationsStateCreateInfoEXT] :: VkPipelineSampleLocationsStateCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSType:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSType:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationCoordinateRange:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> Vector 2 CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationGridSize:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationSampleCounts:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> VkSampleCountFlags
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationSubPixelBits:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationsCount:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationsEnable:VkPipelineSampleLocationsStateCreateInfoEXT] :: VkPipelineSampleLocationsStateCreateInfoEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationsInfo:VkAttachmentSampleLocationsEXT] :: VkAttachmentSampleLocationsEXT -> VkSampleLocationsInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationsInfo:VkPipelineSampleLocationsStateCreateInfoEXT] :: VkPipelineSampleLocationsStateCreateInfoEXT -> VkSampleLocationsInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationsInfo:VkSubpassSampleLocationsEXT] :: VkSubpassSampleLocationsEXT -> VkSampleLocationsInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSampleLocationsPerPixel:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> VkSampleCountFlagBits
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkSubpassIndex:VkSubpassSampleLocationsEXT] :: VkSubpassSampleLocationsEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkVariableSampleLocations:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkX:VkSampleLocationEXT] :: VkSampleLocationEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: [$sel:vkY:VkSampleLocationEXT] :: VkSampleLocationEXT -> CFloat
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: data VkAttachmentSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: data VkMultisamplePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: data VkPhysicalDeviceSampleLocationsPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: data VkPipelineSampleLocationsStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: data VkRenderPassSampleLocationsBeginInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: data VkSampleLocationEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: data VkSampleLocationsInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: data VkSubpassSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkAttachmentSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkMultisamplePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkRenderPassSampleLocationsBeginInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSubpassSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkAttachmentSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkMultisamplePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkRenderPassSampleLocationsBeginInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSubpassSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkAttachmentSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkMultisamplePropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkRenderPassSampleLocationsBeginInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSubpassSampleLocationsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: vkCmdSetSampleLocationsEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pSampleLocationsInfo" ::: Ptr VkSampleLocationsInfoEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_sample_locations: vkGetPhysicalDeviceMultisamplePropertiesEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("samples" ::: VkSampleCountFlagBits) -> ("pMultisampleProperties" ::: Ptr VkMultisamplePropertiesEXT) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: VkSamplerReductionModeCreateInfoEXT :: VkStructureType -> Ptr () -> VkSamplerReductionModeEXT -> VkSamplerReductionModeCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: VkSamplerReductionModeEXT :: Int32 -> VkSamplerReductionModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: [$sel:vkFilterMinmaxImageComponentMapping:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT] :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: [$sel:vkFilterMinmaxSingleComponentFormats:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT] :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -> VkBool32
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: [$sel:vkPNext:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT] :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: [$sel:vkPNext:VkSamplerReductionModeCreateInfoEXT] :: VkSamplerReductionModeCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: [$sel:vkReductionMode:VkSamplerReductionModeCreateInfoEXT] :: VkSamplerReductionModeCreateInfoEXT -> VkSamplerReductionModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: [$sel:vkSType:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT] :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: [$sel:vkSType:VkSamplerReductionModeCreateInfoEXT] :: VkSamplerReductionModeCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: data VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: data VkSamplerReductionModeCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax: newtype VkSamplerReductionModeEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: VkShaderModuleValidationCacheCreateInfoEXT :: VkStructureType -> Ptr () -> VkValidationCacheEXT -> VkShaderModuleValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: VkValidationCacheCreateFlagsEXT :: VkFlags -> VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: VkValidationCacheCreateInfoEXT :: VkStructureType -> Ptr () -> VkValidationCacheCreateFlagsEXT -> CSize -> Ptr () -> VkValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: VkValidationCacheHeaderVersionEXT :: Int32 -> VkValidationCacheHeaderVersionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: [$sel:vkFlags:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: [$sel:vkInitialDataSize:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> CSize
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: [$sel:vkPInitialData:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: [$sel:vkPNext:VkShaderModuleValidationCacheCreateInfoEXT] :: VkShaderModuleValidationCacheCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: [$sel:vkPNext:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: [$sel:vkSType:VkShaderModuleValidationCacheCreateInfoEXT] :: VkShaderModuleValidationCacheCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: [$sel:vkSType:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: [$sel:vkValidationCache:VkShaderModuleValidationCacheCreateInfoEXT] :: VkShaderModuleValidationCacheCreateInfoEXT -> VkValidationCacheEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: data VkShaderModuleValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: data VkValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkShaderModuleValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkShaderModuleValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkShaderModuleValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: newtype VkValidationCacheCreateFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: newtype VkValidationCacheHeaderVersionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: type VkValidationCacheEXT = Ptr VkValidationCacheEXT_T
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: vkCreateValidationCacheEXT :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkValidationCacheCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pValidationCache" ::: Ptr VkValidationCacheEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: vkDestroyValidationCacheEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: vkGetValidationCacheDataEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_validation_cache: vkMergeValidationCachesEXT :: ("device" ::: VkDevice) -> ("dstCache" ::: VkValidationCacheEXT) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr VkValidationCacheEXT) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: VkValidationCheckEXT :: Int32 -> VkValidationCheckEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: VkValidationFlagsEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr VkValidationCheckEXT -> VkValidationFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: [$sel:vkDisabledValidationCheckCount:VkValidationFlagsEXT] :: VkValidationFlagsEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: [$sel:vkPDisabledValidationChecks:VkValidationFlagsEXT] :: VkValidationFlagsEXT -> Ptr VkValidationCheckEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: [$sel:vkPNext:VkValidationFlagsEXT] :: VkValidationFlagsEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: [$sel:vkSType:VkValidationFlagsEXT] :: VkValidationFlagsEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: data VkValidationFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationFlagsEXT
+ Graphics.Vulkan.Extensions.VK_EXT_validation_flags: newtype VkValidationCheckEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: VkPipelineVertexInputDivisorStateCreateInfoEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr VkVertexInputBindingDivisorDescriptionEXT -> VkPipelineVertexInputDivisorStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: VkVertexInputBindingDivisorDescriptionEXT :: Word32 -> Word32 -> VkVertexInputBindingDivisorDescriptionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkBinding:VkVertexInputBindingDivisorDescriptionEXT] :: VkVertexInputBindingDivisorDescriptionEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkDivisor:VkVertexInputBindingDivisorDescriptionEXT] :: VkVertexInputBindingDivisorDescriptionEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkMaxVertexAttribDivisor:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT] :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkPNext:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT] :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkPNext:VkPipelineVertexInputDivisorStateCreateInfoEXT] :: VkPipelineVertexInputDivisorStateCreateInfoEXT -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkPVertexBindingDivisors:VkPipelineVertexInputDivisorStateCreateInfoEXT] :: VkPipelineVertexInputDivisorStateCreateInfoEXT -> Ptr VkVertexInputBindingDivisorDescriptionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkSType:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT] :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkSType:VkPipelineVertexInputDivisorStateCreateInfoEXT] :: VkPipelineVertexInputDivisorStateCreateInfoEXT -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: [$sel:vkVertexBindingDivisorCount:VkPipelineVertexInputDivisorStateCreateInfoEXT] :: VkPipelineVertexInputDivisorStateCreateInfoEXT -> Word32
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: data VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: data VkPipelineVertexInputDivisorStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: data VkVertexInputBindingDivisorDescriptionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPipelineVertexInputDivisorStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkVertexInputBindingDivisorDescriptionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPipelineVertexInputDivisorStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkVertexInputBindingDivisorDescriptionEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPipelineVertexInputDivisorStateCreateInfoEXT
+ Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkVertexInputBindingDivisorDescriptionEXT
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: VkPastPresentationTimingGOOGLE :: Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> VkPastPresentationTimingGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: VkPresentTimeGOOGLE :: Word32 -> Word64 -> VkPresentTimeGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: VkPresentTimesInfoGOOGLE :: VkStructureType -> Ptr () -> Word32 -> Ptr VkPresentTimeGOOGLE -> VkPresentTimesInfoGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: VkRefreshCycleDurationGOOGLE :: Word64 -> VkRefreshCycleDurationGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkActualPresentTime:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word64
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkDesiredPresentTime:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word64
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkDesiredPresentTime:VkPresentTimeGOOGLE] :: VkPresentTimeGOOGLE -> Word64
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkEarliestPresentTime:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word64
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkPNext:VkPresentTimesInfoGOOGLE] :: VkPresentTimesInfoGOOGLE -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkPTimes:VkPresentTimesInfoGOOGLE] :: VkPresentTimesInfoGOOGLE -> Ptr VkPresentTimeGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkPresentID:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word32
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkPresentID:VkPresentTimeGOOGLE] :: VkPresentTimeGOOGLE -> Word32
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkPresentMargin:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word64
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkRefreshDuration:VkRefreshCycleDurationGOOGLE] :: VkRefreshCycleDurationGOOGLE -> Word64
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkSType:VkPresentTimesInfoGOOGLE] :: VkPresentTimesInfoGOOGLE -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: [$sel:vkSwapchainCount:VkPresentTimesInfoGOOGLE] :: VkPresentTimesInfoGOOGLE -> Word32
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: data VkPastPresentationTimingGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: data VkPresentTimeGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: data VkPresentTimesInfoGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: data VkRefreshCycleDurationGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPastPresentationTimingGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimeGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimesInfoGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkRefreshCycleDurationGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPastPresentationTimingGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimeGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimesInfoGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkRefreshCycleDurationGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPastPresentationTimingGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimeGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimesInfoGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkRefreshCycleDurationGOOGLE
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: vkGetPastPresentationTimingGOOGLE :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pPresentationTimingCount" ::: Ptr Word32) -> ("pPresentationTimings" ::: Ptr VkPastPresentationTimingGOOGLE) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing: vkGetRefreshCycleDurationGOOGLE :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pDisplayTimingProperties" ::: Ptr VkRefreshCycleDurationGOOGLE) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_16bit_storage: type VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures
+ Graphics.Vulkan.Extensions.VK_KHR_bind_memory2: type VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo
+ Graphics.Vulkan.Extensions.VK_KHR_bind_memory2: type VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo
+ Graphics.Vulkan.Extensions.VK_KHR_bind_memory2: vkBindBufferMemory2KHR :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindBufferMemoryInfo) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_bind_memory2: vkBindImageMemory2KHR :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindImageMemoryInfo) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_dedicated_allocation: type VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_dedicated_allocation: type VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements
+ Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template: type VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags
+ Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template: type VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template: type VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry
+ Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template: type VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate
+ Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template: type VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType
+ Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template: vkCreateDescriptorUpdateTemplateKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorUpdateTemplateCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorUpdateTemplate" ::: Ptr VkDescriptorUpdateTemplate) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template: vkDestroyDescriptorUpdateTemplateKHR :: ("device" ::: VkDevice) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template: vkUpdateDescriptorSetWithTemplateKHR :: ("device" ::: VkDevice) -> ("descriptorSet" ::: VkDescriptorSet) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pData" ::: Ptr ()) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: type VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: vkCmdDispatchBaseKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("baseGroupX" ::: Word32) -> ("baseGroupY" ::: Word32) -> ("baseGroupZ" ::: Word32) -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: vkCmdSetDeviceMaskKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("deviceMask" ::: Word32) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_device_group: vkGetDeviceGroupPeerMemoryFeaturesKHR :: ("device" ::: VkDevice) -> ("heapIndex" ::: Word32) -> ("localDeviceIndex" ::: Word32) -> ("remoteDeviceIndex" ::: Word32) -> ("pPeerMemoryFeatures" ::: Ptr VkPeerMemoryFeatureFlags) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_device_group_creation: type VK_MAX_DEVICE_GROUP_SIZE_KHR = VK_MAX_DEVICE_GROUP_SIZE
+ Graphics.Vulkan.Extensions.VK_KHR_device_group_creation: type VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_device_group_creation: type VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties
+ Graphics.Vulkan.Extensions.VK_KHR_device_group_creation: vkEnumeratePhysicalDeviceGroupsKHR :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceGroupCount" ::: Ptr Word32) -> ("pPhysicalDeviceGroupProperties" ::: Ptr VkPhysicalDeviceGroupProperties) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplayModeCreateFlagsKHR :: VkFlags -> VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplayModeCreateInfoKHR :: VkStructureType -> Ptr () -> VkDisplayModeCreateFlagsKHR -> VkDisplayModeParametersKHR -> VkDisplayModeCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplayModeParametersKHR :: VkExtent2D -> Word32 -> VkDisplayModeParametersKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplayModePropertiesKHR :: VkDisplayModeKHR -> VkDisplayModeParametersKHR -> VkDisplayModePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplayPlaneAlphaFlagBitsKHR :: VkFlags -> VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplayPlaneCapabilitiesKHR :: VkDisplayPlaneAlphaFlagsKHR -> VkOffset2D -> VkOffset2D -> VkExtent2D -> VkExtent2D -> VkOffset2D -> VkOffset2D -> VkExtent2D -> VkExtent2D -> VkDisplayPlaneCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplayPlanePropertiesKHR :: VkDisplayKHR -> Word32 -> VkDisplayPlanePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplayPropertiesKHR :: VkDisplayKHR -> Ptr CChar -> VkExtent2D -> VkExtent2D -> VkSurfaceTransformFlagsKHR -> VkBool32 -> VkBool32 -> VkDisplayPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplaySurfaceCreateFlagsKHR :: VkFlags -> VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: VkDisplaySurfaceCreateInfoKHR :: VkStructureType -> Ptr () -> VkDisplaySurfaceCreateFlagsKHR -> VkDisplayModeKHR -> Word32 -> Word32 -> VkSurfaceTransformFlagBitsKHR -> CFloat -> VkDisplayPlaneAlphaFlagBitsKHR -> VkExtent2D -> VkDisplaySurfaceCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkAlphaMode:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkCurrentDisplay:VkDisplayPlanePropertiesKHR] :: VkDisplayPlanePropertiesKHR -> VkDisplayKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkCurrentStackIndex:VkDisplayPlanePropertiesKHR] :: VkDisplayPlanePropertiesKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkDisplay:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkDisplayKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkDisplayMode:VkDisplayModePropertiesKHR] :: VkDisplayModePropertiesKHR -> VkDisplayModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkDisplayMode:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplayModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkDisplayName:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> Ptr CChar
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkFlags:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkFlags:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkGlobalAlpha:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> CFloat
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkImageExtent:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkMaxDstExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkMaxDstPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkMaxSrcExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkMaxSrcPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkMinDstExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkMinDstPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkMinSrcExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkMinSrcPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkPNext:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkPNext:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkParameters:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkDisplayModeParametersKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkParameters:VkDisplayModePropertiesKHR] :: VkDisplayModePropertiesKHR -> VkDisplayModeParametersKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkPersistentContent:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkBool32
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkPhysicalDimensions:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkPhysicalResolution:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkPlaneIndex:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkPlaneReorderPossible:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkBool32
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkPlaneStackIndex:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkRefreshRate:VkDisplayModeParametersKHR] :: VkDisplayModeParametersKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkSType:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkSType:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkSupportedAlpha:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkDisplayPlaneAlphaFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkSupportedTransforms:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkSurfaceTransformFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkTransform:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: [$sel:vkVisibleRegion:VkDisplayModeParametersKHR] :: VkDisplayModeParametersKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_display: data VkDisplayModeCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: data VkDisplayModeParametersKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: data VkDisplayModePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: data VkDisplayPlaneCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: data VkDisplayPlanePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: data VkDisplayPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: data VkDisplaySurfaceCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeParametersKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlanePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeParametersKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlanePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeParametersKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlanePropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: newtype VkDisplayModeCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: newtype VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: newtype VkDisplaySurfaceCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: type VkDisplayKHR = Ptr VkDisplayKHR_T
+ Graphics.Vulkan.Extensions.VK_KHR_display: type VkDisplayModeKHR = Ptr VkDisplayModeKHR_T
+ Graphics.Vulkan.Extensions.VK_KHR_display: type VkDisplayPlaneAlphaFlagsKHR = VkDisplayPlaneAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display: vkCreateDisplayModeKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("display" ::: VkDisplayKHR) -> ("pCreateInfo" ::: Ptr VkDisplayModeCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMode" ::: Ptr VkDisplayModeKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_display: vkCreateDisplayPlaneSurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDisplaySurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_display: vkGetDisplayModePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("display" ::: VkDisplayKHR) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayModePropertiesKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_display: vkGetDisplayPlaneCapabilitiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("mode" ::: VkDisplayModeKHR) -> ("planeIndex" ::: Word32) -> ("pCapabilities" ::: Ptr VkDisplayPlaneCapabilitiesKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_display: vkGetDisplayPlaneSupportedDisplaysKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("planeIndex" ::: Word32) -> ("pDisplayCount" ::: Ptr Word32) -> ("pDisplays" ::: Ptr VkDisplayKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_display: vkGetPhysicalDeviceDisplayPlanePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayPlanePropertiesKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_display: vkGetPhysicalDeviceDisplayPropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayPropertiesKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: VkDisplayPresentInfoKHR :: VkStructureType -> Ptr () -> VkRect2D -> VkRect2D -> VkBool32 -> VkDisplayPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: [$sel:vkDstRect:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkRect2D
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: [$sel:vkPNext:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: [$sel:vkPersistent:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkBool32
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: [$sel:vkSType:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: [$sel:vkSrcRect:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkRect2D
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: data VkDisplayPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_display_swapchain: vkCreateSharedSwapchainsKHR :: ("device" ::: VkDevice) -> ("swapchainCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkSwapchainCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSwapchains" ::: Ptr VkSwapchainKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence: type VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence: type VkFenceImportFlagBitsKHR = VkFenceImportFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence: type VkFenceImportFlagsKHR = VkFenceImportFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities: type VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities: type VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities: type VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities: type VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities: type VkExternalFencePropertiesKHR = VkExternalFenceProperties
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities: type VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities: vkGetPhysicalDeviceExternalFencePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalFenceInfo" ::: Ptr VkPhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr VkExternalFenceProperties) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: VkFenceGetFdInfoKHR :: VkStructureType -> Ptr () -> VkFence -> VkExternalFenceHandleTypeFlagBits -> VkFenceGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: VkImportFenceFdInfoKHR :: VkStructureType -> Ptr () -> VkFence -> VkFenceImportFlags -> VkExternalFenceHandleTypeFlagBits -> CInt -> VkImportFenceFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkFd:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> CInt
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkFence:VkFenceGetFdInfoKHR] :: VkFenceGetFdInfoKHR -> VkFence
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkFence:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> VkFence
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkFlags:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> VkFenceImportFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkHandleType:VkFenceGetFdInfoKHR] :: VkFenceGetFdInfoKHR -> VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkHandleType:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> VkExternalFenceHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkPNext:VkFenceGetFdInfoKHR] :: VkFenceGetFdInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkPNext:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkSType:VkFenceGetFdInfoKHR] :: VkFenceGetFdInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: [$sel:vkSType:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: data VkFenceGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: data VkImportFenceFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkFenceGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkImportFenceFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkFenceGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkImportFenceFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkFenceGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkImportFenceFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: vkGetFenceFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkFenceGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd: vkImportFenceFdKHR :: ("device" ::: VkDevice) -> ("pImportFenceFdInfo" ::: Ptr VkImportFenceFdInfoKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory: type VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory: type VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory: type VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VK_LUID_SIZE_KHR = VK_LUID_SIZE
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkExternalBufferPropertiesKHR = VkExternalBufferProperties
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: type VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities: vkGetPhysicalDeviceExternalBufferPropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalBufferInfo" ::: Ptr VkPhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr VkExternalBufferProperties) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: VkImportMemoryFdInfoKHR :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagBits -> CInt -> VkImportMemoryFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: VkMemoryFdPropertiesKHR :: VkStructureType -> Ptr () -> Word32 -> VkMemoryFdPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: VkMemoryGetFdInfoKHR :: VkStructureType -> Ptr () -> VkDeviceMemory -> VkExternalMemoryHandleTypeFlagBits -> VkMemoryGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkFd:VkImportMemoryFdInfoKHR] :: VkImportMemoryFdInfoKHR -> CInt
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkHandleType:VkImportMemoryFdInfoKHR] :: VkImportMemoryFdInfoKHR -> VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkHandleType:VkMemoryGetFdInfoKHR] :: VkMemoryGetFdInfoKHR -> VkExternalMemoryHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkMemory:VkMemoryGetFdInfoKHR] :: VkMemoryGetFdInfoKHR -> VkDeviceMemory
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkMemoryTypeBits:VkMemoryFdPropertiesKHR] :: VkMemoryFdPropertiesKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkPNext:VkImportMemoryFdInfoKHR] :: VkImportMemoryFdInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkPNext:VkMemoryFdPropertiesKHR] :: VkMemoryFdPropertiesKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkPNext:VkMemoryGetFdInfoKHR] :: VkMemoryGetFdInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkSType:VkImportMemoryFdInfoKHR] :: VkImportMemoryFdInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkSType:VkMemoryFdPropertiesKHR] :: VkMemoryFdPropertiesKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: [$sel:vkSType:VkMemoryGetFdInfoKHR] :: VkMemoryGetFdInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: data VkImportMemoryFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: data VkMemoryFdPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: data VkMemoryGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkImportMemoryFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryFdPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkImportMemoryFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryFdPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkImportMemoryFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryFdPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: vkGetMemoryFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkMemoryGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd: vkGetMemoryFdPropertiesKHR :: ("device" ::: VkDevice) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr VkMemoryFdPropertiesKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore: type VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore: type VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore: type VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities: type VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities: type VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities: type VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities: type VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities: type VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities: type VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities: vkGetPhysicalDeviceExternalSemaphorePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalSemaphoreInfo" ::: Ptr VkPhysicalDeviceExternalSemaphoreInfo) -> ("pExternalSemaphoreProperties" ::: Ptr VkExternalSemaphoreProperties) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: VkImportSemaphoreFdInfoKHR :: VkStructureType -> Ptr () -> VkSemaphore -> VkSemaphoreImportFlags -> VkExternalSemaphoreHandleTypeFlagBits -> CInt -> VkImportSemaphoreFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: VkSemaphoreGetFdInfoKHR :: VkStructureType -> Ptr () -> VkSemaphore -> VkExternalSemaphoreHandleTypeFlagBits -> VkSemaphoreGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkFd:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> CInt
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkFlags:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> VkSemaphoreImportFlags
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkHandleType:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkHandleType:VkSemaphoreGetFdInfoKHR] :: VkSemaphoreGetFdInfoKHR -> VkExternalSemaphoreHandleTypeFlagBits
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkPNext:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkPNext:VkSemaphoreGetFdInfoKHR] :: VkSemaphoreGetFdInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkSType:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkSType:VkSemaphoreGetFdInfoKHR] :: VkSemaphoreGetFdInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkSemaphore:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> VkSemaphore
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: [$sel:vkSemaphore:VkSemaphoreGetFdInfoKHR] :: VkSemaphoreGetFdInfoKHR -> VkSemaphore
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: data VkImportSemaphoreFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: data VkSemaphoreGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkImportSemaphoreFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkSemaphoreGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkImportSemaphoreFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkSemaphoreGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkImportSemaphoreFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkSemaphoreGetFdInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: vkGetSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkSemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd: vkImportSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreFdInfo" ::: Ptr VkImportSemaphoreFdInfoKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2: type VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2
+ Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2: type VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2
+ Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2: type VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2
+ Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2: type VkMemoryRequirements2KHR = VkMemoryRequirements2
+ Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2: type VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2
+ Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2: vkGetBufferMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkBufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2: vkGetImageMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2: vkGetImageSparseMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkFormatProperties2KHR = VkFormatProperties2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkImageFormatProperties2KHR = VkImageFormatProperties2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: type VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceFeatures2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceImageFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pImageFormatInfo" ::: Ptr VkPhysicalDeviceImageFormatInfo2) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties2) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceMemoryProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceQueueFamilyProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2: vkGetPhysicalDeviceSparseImageFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFormatInfo" ::: Ptr VkPhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties2) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: VkPhysicalDeviceSurfaceInfo2KHR :: VkStructureType -> Ptr () -> VkSurfaceKHR -> VkPhysicalDeviceSurfaceInfo2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: VkSurfaceCapabilities2KHR :: VkStructureType -> Ptr () -> VkSurfaceCapabilitiesKHR -> VkSurfaceCapabilities2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: VkSurfaceFormat2KHR :: VkStructureType -> Ptr () -> VkSurfaceFormatKHR -> VkSurfaceFormat2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkPNext:VkPhysicalDeviceSurfaceInfo2KHR] :: VkPhysicalDeviceSurfaceInfo2KHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkPNext:VkSurfaceCapabilities2KHR] :: VkSurfaceCapabilities2KHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkPNext:VkSurfaceFormat2KHR] :: VkSurfaceFormat2KHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkSType:VkPhysicalDeviceSurfaceInfo2KHR] :: VkPhysicalDeviceSurfaceInfo2KHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkSType:VkSurfaceCapabilities2KHR] :: VkSurfaceCapabilities2KHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkSType:VkSurfaceFormat2KHR] :: VkSurfaceFormat2KHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkSurface:VkPhysicalDeviceSurfaceInfo2KHR] :: VkPhysicalDeviceSurfaceInfo2KHR -> VkSurfaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkSurfaceCapabilities:VkSurfaceCapabilities2KHR] :: VkSurfaceCapabilities2KHR -> VkSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: [$sel:vkSurfaceFormat:VkSurfaceFormat2KHR] :: VkSurfaceFormat2KHR -> VkSurfaceFormatKHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: data VkPhysicalDeviceSurfaceInfo2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: data VkSurfaceCapabilities2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: data VkSurfaceFormat2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkPhysicalDeviceSurfaceInfo2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceCapabilities2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceFormat2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkPhysicalDeviceSurfaceInfo2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceCapabilities2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceFormat2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkPhysicalDeviceSurfaceInfo2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceCapabilities2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceFormat2KHR
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: vkGetPhysicalDeviceSurfaceCapabilities2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pSurfaceInfo" ::: Ptr VkPhysicalDeviceSurfaceInfo2KHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilities2KHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2: vkGetPhysicalDeviceSurfaceFormats2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pSurfaceInfo" ::: Ptr VkPhysicalDeviceSurfaceInfo2KHR) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr VkSurfaceFormat2KHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: VkImageFormatListCreateInfoKHR :: VkStructureType -> Ptr () -> Word32 -> Ptr VkFormat -> VkImageFormatListCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: [$sel:vkPNext:VkImageFormatListCreateInfoKHR] :: VkImageFormatListCreateInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: [$sel:vkPViewFormats:VkImageFormatListCreateInfoKHR] :: VkImageFormatListCreateInfoKHR -> Ptr VkFormat
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: [$sel:vkSType:VkImageFormatListCreateInfoKHR] :: VkImageFormatListCreateInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: [$sel:vkViewFormatCount:VkImageFormatListCreateInfoKHR] :: VkImageFormatListCreateInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: data VkImageFormatListCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_image_format_list: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: VkPresentRegionKHR :: Word32 -> Ptr VkRectLayerKHR -> VkPresentRegionKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: VkPresentRegionsKHR :: VkStructureType -> Ptr () -> Word32 -> Ptr VkPresentRegionKHR -> VkPresentRegionsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: VkRectLayerKHR :: VkOffset2D -> VkExtent2D -> Word32 -> VkRectLayerKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkExtent:VkRectLayerKHR] :: VkRectLayerKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkLayer:VkRectLayerKHR] :: VkRectLayerKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkOffset:VkRectLayerKHR] :: VkRectLayerKHR -> VkOffset2D
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkPNext:VkPresentRegionsKHR] :: VkPresentRegionsKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkPRectangles:VkPresentRegionKHR] :: VkPresentRegionKHR -> Ptr VkRectLayerKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkPRegions:VkPresentRegionsKHR] :: VkPresentRegionsKHR -> Ptr VkPresentRegionKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkRectangleCount:VkPresentRegionKHR] :: VkPresentRegionKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkSType:VkPresentRegionsKHR] :: VkPresentRegionsKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: [$sel:vkSwapchainCount:VkPresentRegionsKHR] :: VkPresentRegionsKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: data VkPresentRegionKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: data VkPresentRegionsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: data VkRectLayerKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkRectLayerKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkRectLayerKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_incremental_present: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkRectLayerKHR
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance1: type VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance1: vkTrimCommandPoolKHR :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolTrimFlags) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance2: type VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance2: type VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance2: type VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance2: type VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance2: type VkPointClippingBehaviorKHR = VkPointClippingBehavior
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance2: type VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance2: type VkTessellationDomainOriginKHR = VkTessellationDomainOrigin
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance3: type VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance3: type VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties
+ Graphics.Vulkan.Extensions.VK_KHR_maintenance3: vkGetDescriptorSetLayoutSupportKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pSupport" ::: Ptr VkDescriptorSetLayoutSupport) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_multiview: type VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures
+ Graphics.Vulkan.Extensions.VK_KHR_multiview: type VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties
+ Graphics.Vulkan.Extensions.VK_KHR_multiview: type VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: VkPhysicalDevicePushDescriptorPropertiesKHR :: VkStructureType -> Ptr () -> Word32 -> VkPhysicalDevicePushDescriptorPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: [$sel:vkMaxPushDescriptors:VkPhysicalDevicePushDescriptorPropertiesKHR] :: VkPhysicalDevicePushDescriptorPropertiesKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: [$sel:vkPNext:VkPhysicalDevicePushDescriptorPropertiesKHR] :: VkPhysicalDevicePushDescriptorPropertiesKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: [$sel:vkSType:VkPhysicalDevicePushDescriptorPropertiesKHR] :: VkPhysicalDevicePushDescriptorPropertiesKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: data VkPhysicalDevicePushDescriptorPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.VkPhysicalDevicePushDescriptorPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.VkPhysicalDevicePushDescriptorPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.VkPhysicalDevicePushDescriptorPropertiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: vkCmdPushDescriptorSetKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineBindPoint" ::: VkPipelineBindPoint) -> ("layout" ::: VkPipelineLayout) -> ("set" ::: Word32) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr VkWriteDescriptorSet) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_push_descriptor: vkCmdPushDescriptorSetWithTemplateKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("layout" ::: VkPipelineLayout) -> ("set" ::: Word32) -> ("pData" ::: Ptr ()) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkChromaLocationKHR = VkChromaLocation
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: type VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: vkCreateSamplerYcbcrConversionKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerYcbcrConversionCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr VkSamplerYcbcrConversion) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion: vkDestroySamplerYcbcrConversionKHR :: ("device" ::: VkDevice) -> ("ycbcrConversion" ::: VkSamplerYcbcrConversion) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: VkSharedPresentSurfaceCapabilitiesKHR :: VkStructureType -> Ptr () -> VkImageUsageFlags -> VkSharedPresentSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: [$sel:vkPNext:VkSharedPresentSurfaceCapabilitiesKHR] :: VkSharedPresentSurfaceCapabilitiesKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: [$sel:vkSType:VkSharedPresentSurfaceCapabilitiesKHR] :: VkSharedPresentSurfaceCapabilitiesKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: [$sel:vkSharedPresentSupportedUsageFlags:VkSharedPresentSurfaceCapabilitiesKHR] :: VkSharedPresentSurfaceCapabilitiesKHR -> VkImageUsageFlags
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: data VkSharedPresentSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image: vkGetSwapchainStatusKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_surface: VkColorSpaceKHR :: Int32 -> VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: VkCompositeAlphaFlagBitsKHR :: VkFlags -> VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: VkPresentModeKHR :: Int32 -> VkPresentModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: VkSurfaceCapabilitiesKHR :: Word32 -> Word32 -> VkExtent2D -> VkExtent2D -> VkExtent2D -> Word32 -> VkSurfaceTransformFlagsKHR -> VkSurfaceTransformFlagBitsKHR -> VkCompositeAlphaFlagsKHR -> VkImageUsageFlags -> VkSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: VkSurfaceFormatKHR :: VkFormat -> VkColorSpaceKHR -> VkSurfaceFormatKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: VkSurfaceTransformFlagBitsKHR :: VkFlags -> VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkColorSpace:VkSurfaceFormatKHR] :: VkSurfaceFormatKHR -> VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkCurrentExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkCurrentTransform:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkFormat:VkSurfaceFormatKHR] :: VkSurfaceFormatKHR -> VkFormat
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkMaxImageArrayLayers:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkMaxImageCount:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkMaxImageExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkMinImageCount:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkMinImageExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkSupportedCompositeAlpha:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkCompositeAlphaFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkSupportedTransforms:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkSurfaceTransformFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: [$sel:vkSupportedUsageFlags:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkImageUsageFlags
+ Graphics.Vulkan.Extensions.VK_KHR_surface: data VkSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: data VkSurfaceFormatKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceFormatKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceFormatKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceFormatKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: newtype VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: newtype VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: newtype VkPresentModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: newtype VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: type VkCompositeAlphaFlagsKHR = VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: type VkSurfaceKHR = Ptr VkSurfaceKHR_T
+ Graphics.Vulkan.Extensions.VK_KHR_surface: type VkSurfaceTransformFlagsKHR = VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_surface: vkDestroySurfaceKHR :: ("instance" ::: VkInstance) -> ("surface" ::: VkSurfaceKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_surface: vkGetPhysicalDeviceSurfaceCapabilitiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilitiesKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_surface: vkGetPhysicalDeviceSurfaceFormatsKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr VkSurfaceFormatKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_surface: vkGetPhysicalDeviceSurfacePresentModesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pPresentModeCount" ::: Ptr Word32) -> ("pPresentModes" ::: Ptr VkPresentModeKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_surface: vkGetPhysicalDeviceSurfaceSupportKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("queueFamilyIndex" ::: Word32) -> ("surface" ::: VkSurfaceKHR) -> ("pSupported" ::: Ptr VkBool32) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkAcquireNextImageInfoKHR :: VkStructureType -> Ptr () -> VkSwapchainKHR -> Word64 -> VkSemaphore -> VkFence -> Word32 -> VkAcquireNextImageInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkBindImageMemorySwapchainInfoKHR :: VkStructureType -> Ptr () -> VkSwapchainKHR -> Word32 -> VkBindImageMemorySwapchainInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkDeviceGroupPresentCapabilitiesKHR :: VkStructureType -> Ptr () -> Vector VK_MAX_DEVICE_GROUP_SIZE Word32 -> VkDeviceGroupPresentModeFlagsKHR -> VkDeviceGroupPresentCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkDeviceGroupPresentInfoKHR :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> VkDeviceGroupPresentModeFlagBitsKHR -> VkDeviceGroupPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkDeviceGroupPresentModeFlagBitsKHR :: VkFlags -> VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkDeviceGroupSwapchainCreateInfoKHR :: VkStructureType -> Ptr () -> VkDeviceGroupPresentModeFlagsKHR -> VkDeviceGroupSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkImageSwapchainCreateInfoKHR :: VkStructureType -> Ptr () -> VkSwapchainKHR -> VkImageSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkPresentInfoKHR :: VkStructureType -> Ptr () -> Word32 -> Ptr VkSemaphore -> Word32 -> Ptr VkSwapchainKHR -> Ptr Word32 -> Ptr VkResult -> VkPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkSwapchainCreateFlagBitsKHR :: VkFlags -> VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: VkSwapchainCreateInfoKHR :: VkStructureType -> Ptr () -> VkSwapchainCreateFlagsKHR -> VkSurfaceKHR -> Word32 -> VkFormat -> VkColorSpaceKHR -> VkExtent2D -> Word32 -> VkImageUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkSurfaceTransformFlagBitsKHR -> VkCompositeAlphaFlagBitsKHR -> VkPresentModeKHR -> VkBool32 -> VkSwapchainKHR -> VkSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkClipped:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkBool32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkCompositeAlpha:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkCompositeAlphaFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkDeviceMask:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkFence:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> VkFence
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkFlags:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSwapchainCreateFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkImageArrayLayers:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkImageColorSpace:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkColorSpaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkImageExtent:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkExtent2D
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkImageFormat:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkFormat
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkImageIndex:VkBindImageMemorySwapchainInfoKHR] :: VkBindImageMemorySwapchainInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkImageSharingMode:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSharingMode
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkImageUsage:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkImageUsageFlags
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkMinImageCount:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkMode:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkModes:VkDeviceGroupPresentCapabilitiesKHR] :: VkDeviceGroupPresentCapabilitiesKHR -> VkDeviceGroupPresentModeFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkModes:VkDeviceGroupSwapchainCreateInfoKHR] :: VkDeviceGroupSwapchainCreateInfoKHR -> VkDeviceGroupPresentModeFlagsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkOldSwapchain:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSwapchainKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPDeviceMasks:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> Ptr Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPImageIndices:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPNext:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPNext:VkBindImageMemorySwapchainInfoKHR] :: VkBindImageMemorySwapchainInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPNext:VkDeviceGroupPresentCapabilitiesKHR] :: VkDeviceGroupPresentCapabilitiesKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPNext:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPNext:VkDeviceGroupSwapchainCreateInfoKHR] :: VkDeviceGroupSwapchainCreateInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPNext:VkImageSwapchainCreateInfoKHR] :: VkImageSwapchainCreateInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPNext:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPNext:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPQueueFamilyIndices:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Ptr Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPResults:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPSwapchains:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkSwapchainKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPWaitSemaphores:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkSemaphore
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPreTransform:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSurfaceTransformFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPresentMask:VkDeviceGroupPresentCapabilitiesKHR] :: VkDeviceGroupPresentCapabilitiesKHR -> Vector VK_MAX_DEVICE_GROUP_SIZE Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkPresentMode:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkPresentModeKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkQueueFamilyIndexCount:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSType:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSType:VkBindImageMemorySwapchainInfoKHR] :: VkBindImageMemorySwapchainInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSType:VkDeviceGroupPresentCapabilitiesKHR] :: VkDeviceGroupPresentCapabilitiesKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSType:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSType:VkDeviceGroupSwapchainCreateInfoKHR] :: VkDeviceGroupSwapchainCreateInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSType:VkImageSwapchainCreateInfoKHR] :: VkImageSwapchainCreateInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSType:VkPresentInfoKHR] :: VkPresentInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSType:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSemaphore:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> VkSemaphore
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSurface:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSurfaceKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSwapchain:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> VkSwapchainKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSwapchain:VkBindImageMemorySwapchainInfoKHR] :: VkBindImageMemorySwapchainInfoKHR -> VkSwapchainKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSwapchain:VkImageSwapchainCreateInfoKHR] :: VkImageSwapchainCreateInfoKHR -> VkSwapchainKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSwapchainCount:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkSwapchainCount:VkPresentInfoKHR] :: VkPresentInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkTimeout:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> Word64
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: [$sel:vkWaitSemaphoreCount:VkPresentInfoKHR] :: VkPresentInfoKHR -> Word32
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: data VkAcquireNextImageInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: data VkBindImageMemorySwapchainInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: data VkDeviceGroupPresentCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: data VkDeviceGroupPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: data VkDeviceGroupSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: data VkImageSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: data VkPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: data VkSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkBindImageMemorySwapchainInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkImageSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkBindImageMemorySwapchainInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkImageSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkBindImageMemorySwapchainInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentCapabilitiesKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkImageSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: newtype VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: newtype VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: type VkDeviceGroupPresentModeFlagsKHR = VkDeviceGroupPresentModeFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: type VkSwapchainCreateFlagsKHR = VkSwapchainCreateFlagBitsKHR
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: type VkSwapchainKHR = Ptr VkSwapchainKHR_T
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkAcquireNextImage2KHR :: ("device" ::: VkDevice) -> ("pAcquireInfo" ::: Ptr VkAcquireNextImageInfoKHR) -> ("pImageIndex" ::: Ptr Word32) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkAcquireNextImageKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("timeout" ::: Word64) -> ("semaphore" ::: VkSemaphore) -> ("fence" ::: VkFence) -> ("pImageIndex" ::: Ptr Word32) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkCreateSwapchainKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSwapchainCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSwapchain" ::: Ptr VkSwapchainKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkDestroySwapchainKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkGetDeviceGroupPresentCapabilitiesKHR :: ("device" ::: VkDevice) -> ("pDeviceGroupPresentCapabilities" ::: Ptr VkDeviceGroupPresentCapabilitiesKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkGetDeviceGroupSurfacePresentModesKHR :: ("device" ::: VkDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pModes" ::: Ptr VkDeviceGroupPresentModeFlagsKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkGetPhysicalDevicePresentRectanglesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pRectCount" ::: Ptr Word32) -> ("pRects" ::: Ptr VkRect2D) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkGetSwapchainImagesKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pSwapchainImageCount" ::: Ptr Word32) -> ("pSwapchainImages" ::: Ptr VkImage) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_swapchain: vkQueuePresentKHR :: ("queue" ::: VkQueue) -> ("pPresentInfo" ::: Ptr VkPresentInfoKHR) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_KHR_variable_pointers: type VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointerFeatures
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkCmdProcessCommandsInfoNVX :: VkStructureType -> Ptr () -> VkObjectTableNVX -> VkIndirectCommandsLayoutNVX -> Word32 -> Ptr VkIndirectCommandsTokenNVX -> Word32 -> VkCommandBuffer -> VkBuffer -> VkDeviceSize -> VkBuffer -> VkDeviceSize -> VkCmdProcessCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkCmdReserveSpaceForCommandsInfoNVX :: VkStructureType -> Ptr () -> VkObjectTableNVX -> VkIndirectCommandsLayoutNVX -> Word32 -> VkCmdReserveSpaceForCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkDeviceGeneratedCommandsFeaturesNVX :: VkStructureType -> Ptr () -> VkBool32 -> VkDeviceGeneratedCommandsFeaturesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkDeviceGeneratedCommandsLimitsNVX :: VkStructureType -> Ptr () -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkDeviceGeneratedCommandsLimitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkIndirectCommandsLayoutCreateInfoNVX :: VkStructureType -> Ptr () -> VkPipelineBindPoint -> VkIndirectCommandsLayoutUsageFlagsNVX -> Word32 -> Ptr VkIndirectCommandsLayoutTokenNVX -> VkIndirectCommandsLayoutCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkIndirectCommandsLayoutTokenNVX :: VkIndirectCommandsTokenTypeNVX -> Word32 -> Word32 -> Word32 -> VkIndirectCommandsLayoutTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkIndirectCommandsLayoutUsageFlagBitsNVX :: VkFlags -> VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkIndirectCommandsTokenNVX :: VkIndirectCommandsTokenTypeNVX -> VkBuffer -> VkDeviceSize -> VkIndirectCommandsTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkIndirectCommandsTokenTypeNVX :: Int32 -> VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectEntryTypeNVX :: Int32 -> VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectEntryUsageFlagBitsNVX :: VkFlags -> VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectTableCreateInfoNVX :: VkStructureType -> Ptr () -> Word32 -> Ptr VkObjectEntryTypeNVX -> Ptr Word32 -> Ptr VkObjectEntryUsageFlagsNVX -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkObjectTableCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectTableDescriptorSetEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkPipelineLayout -> VkDescriptorSet -> VkObjectTableDescriptorSetEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectTableEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkObjectTableEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectTableIndexBufferEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkBuffer -> VkIndexType -> VkObjectTableIndexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectTablePipelineEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkPipeline -> VkObjectTablePipelineEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectTablePushConstantEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkPipelineLayout -> VkShaderStageFlags -> VkObjectTablePushConstantEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: VkObjectTableVertexBufferEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkBuffer -> VkObjectTableVertexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkBindingUnit:VkIndirectCommandsLayoutTokenNVX] :: VkIndirectCommandsLayoutTokenNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkBuffer:VkIndirectCommandsTokenNVX] :: VkIndirectCommandsTokenNVX -> VkBuffer
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkBuffer:VkObjectTableIndexBufferEntryNVX] :: VkObjectTableIndexBufferEntryNVX -> VkBuffer
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkBuffer:VkObjectTableVertexBufferEntryNVX] :: VkObjectTableVertexBufferEntryNVX -> VkBuffer
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkComputeBindingPointSupport:VkDeviceGeneratedCommandsFeaturesNVX] :: VkDeviceGeneratedCommandsFeaturesNVX -> VkBool32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkDescriptorSet:VkObjectTableDescriptorSetEntryNVX] :: VkObjectTableDescriptorSetEntryNVX -> VkDescriptorSet
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkDivisor:VkIndirectCommandsLayoutTokenNVX] :: VkIndirectCommandsLayoutTokenNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkDynamicCount:VkIndirectCommandsLayoutTokenNVX] :: VkIndirectCommandsLayoutTokenNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkFlags:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> VkIndirectCommandsLayoutUsageFlagsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkFlags:VkObjectTableDescriptorSetEntryNVX] :: VkObjectTableDescriptorSetEntryNVX -> VkObjectEntryUsageFlagsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkFlags:VkObjectTableEntryNVX] :: VkObjectTableEntryNVX -> VkObjectEntryUsageFlagsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkFlags:VkObjectTableIndexBufferEntryNVX] :: VkObjectTableIndexBufferEntryNVX -> VkObjectEntryUsageFlagsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkFlags:VkObjectTablePipelineEntryNVX] :: VkObjectTablePipelineEntryNVX -> VkObjectEntryUsageFlagsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkFlags:VkObjectTablePushConstantEntryNVX] :: VkObjectTablePushConstantEntryNVX -> VkObjectEntryUsageFlagsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkFlags:VkObjectTableVertexBufferEntryNVX] :: VkObjectTableVertexBufferEntryNVX -> VkObjectEntryUsageFlagsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkIndexType:VkObjectTableIndexBufferEntryNVX] :: VkObjectTableIndexBufferEntryNVX -> VkIndexType
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkIndirectCommandsLayout:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkIndirectCommandsLayoutNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkIndirectCommandsLayout:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> VkIndirectCommandsLayoutNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkIndirectCommandsTokenCount:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxIndirectCommandsLayoutTokenCount:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxObjectEntryCounts:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxPipelineLayouts:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxSampledImagesPerDescriptor:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxSequencesCount:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxSequencesCount:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxStorageBuffersPerDescriptor:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxStorageImagesPerDescriptor:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMaxUniformBuffersPerDescriptor:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMinCommandsTokenBufferOffsetAlignment:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMinSequenceCountBufferOffsetAlignment:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkMinSequenceIndexBufferOffsetAlignment:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkObjectCount:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkObjectTable:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkObjectTableNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkObjectTable:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> VkObjectTableNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkOffset:VkIndirectCommandsTokenNVX] :: VkIndirectCommandsTokenNVX -> VkDeviceSize
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPIndirectCommandsTokens:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> Ptr VkIndirectCommandsTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPNext:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPNext:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPNext:VkDeviceGeneratedCommandsFeaturesNVX] :: VkDeviceGeneratedCommandsFeaturesNVX -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPNext:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPNext:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPNext:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPObjectEntryCounts:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Ptr Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPObjectEntryTypes:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Ptr VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPObjectEntryUsageFlags:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Ptr VkObjectEntryUsageFlagsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPTokens:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> Ptr VkIndirectCommandsLayoutTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPipeline:VkObjectTablePipelineEntryNVX] :: VkObjectTablePipelineEntryNVX -> VkPipeline
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPipelineBindPoint:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> VkPipelineBindPoint
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPipelineLayout:VkObjectTableDescriptorSetEntryNVX] :: VkObjectTableDescriptorSetEntryNVX -> VkPipelineLayout
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkPipelineLayout:VkObjectTablePushConstantEntryNVX] :: VkObjectTablePushConstantEntryNVX -> VkPipelineLayout
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSType:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSType:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSType:VkDeviceGeneratedCommandsFeaturesNVX] :: VkDeviceGeneratedCommandsFeaturesNVX -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSType:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSType:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSType:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSequencesCountBuffer:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkBuffer
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSequencesCountOffset:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkDeviceSize
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSequencesIndexBuffer:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkBuffer
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkSequencesIndexOffset:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkDeviceSize
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkStageFlags:VkObjectTablePushConstantEntryNVX] :: VkObjectTablePushConstantEntryNVX -> VkShaderStageFlags
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkTargetCommandBuffer:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkCommandBuffer
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkTokenCount:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> Word32
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkTokenType:VkIndirectCommandsLayoutTokenNVX] :: VkIndirectCommandsLayoutTokenNVX -> VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkTokenType:VkIndirectCommandsTokenNVX] :: VkIndirectCommandsTokenNVX -> VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkType:VkObjectTableDescriptorSetEntryNVX] :: VkObjectTableDescriptorSetEntryNVX -> VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkType:VkObjectTableEntryNVX] :: VkObjectTableEntryNVX -> VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkType:VkObjectTableIndexBufferEntryNVX] :: VkObjectTableIndexBufferEntryNVX -> VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkType:VkObjectTablePipelineEntryNVX] :: VkObjectTablePipelineEntryNVX -> VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkType:VkObjectTablePushConstantEntryNVX] :: VkObjectTablePushConstantEntryNVX -> VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: [$sel:vkType:VkObjectTableVertexBufferEntryNVX] :: VkObjectTableVertexBufferEntryNVX -> VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkCmdProcessCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkCmdReserveSpaceForCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkDeviceGeneratedCommandsFeaturesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkDeviceGeneratedCommandsLimitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkIndirectCommandsLayoutCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkIndirectCommandsLayoutTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkIndirectCommandsTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkObjectTableCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkObjectTableDescriptorSetEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkObjectTableEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkObjectTableIndexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkObjectTablePipelineEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkObjectTablePushConstantEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: data VkObjectTableVertexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdReserveSpaceForCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsFeaturesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsLimitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableDescriptorSetEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableIndexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePipelineEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePushConstantEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableVertexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdReserveSpaceForCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsFeaturesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsLimitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableDescriptorSetEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableIndexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePipelineEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePushConstantEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableVertexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdReserveSpaceForCommandsInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsFeaturesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsLimitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableCreateInfoNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableDescriptorSetEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableIndexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePipelineEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePushConstantEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableVertexBufferEntryNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: newtype VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: newtype VkIndirectCommandsTokenTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: newtype VkObjectEntryTypeNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: newtype VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: type VkIndirectCommandsLayoutNVX = Ptr VkIndirectCommandsLayoutNVX_T
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: type VkIndirectCommandsLayoutUsageFlagsNVX = VkIndirectCommandsLayoutUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: type VkObjectEntryUsageFlagsNVX = VkObjectEntryUsageFlagBitsNVX
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: type VkObjectTableNVX = Ptr VkObjectTableNVX_T
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkCmdProcessCommandsNVX :: ("commandBuffer" ::: VkCommandBuffer) -> ("pProcessCommandsInfo" ::: Ptr VkCmdProcessCommandsInfoNVX) -> IO ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkCmdReserveSpaceForCommandsNVX :: ("commandBuffer" ::: VkCommandBuffer) -> ("pReserveSpaceInfo" ::: Ptr VkCmdReserveSpaceForCommandsInfoNVX) -> IO ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkCreateIndirectCommandsLayoutNVX :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkIndirectCommandsLayoutCreateInfoNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pIndirectCommandsLayout" ::: Ptr VkIndirectCommandsLayoutNVX) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkCreateObjectTableNVX :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkObjectTableCreateInfoNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pObjectTable" ::: Ptr VkObjectTableNVX) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkDestroyIndirectCommandsLayoutNVX :: ("device" ::: VkDevice) -> ("indirectCommandsLayout" ::: VkIndirectCommandsLayoutNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkDestroyObjectTableNVX :: ("device" ::: VkDevice) -> ("objectTable" ::: VkObjectTableNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkDeviceGeneratedCommandsFeaturesNVX) -> ("pLimits" ::: Ptr VkDeviceGeneratedCommandsLimitsNVX) -> IO ()
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkRegisterObjectsNVX :: ("device" ::: VkDevice) -> ("objectTable" ::: VkObjectTableNVX) -> ("objectCount" ::: Word32) -> ("ppObjectTableEntries" ::: Ptr (Ptr VkObjectTableEntryNVX)) -> ("pObjectIndices" ::: Ptr Word32) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands: vkUnregisterObjectsNVX :: ("device" ::: VkDevice) -> ("objectTable" ::: VkObjectTableNVX) -> ("objectCount" ::: Word32) -> ("pObjectEntryTypes" ::: Ptr VkObjectEntryTypeNVX) -> ("pObjectIndices" ::: Ptr Word32) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes: [$sel:vkPNext:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX] :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes: [$sel:vkPerViewPositionAllComponents:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX] :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -> VkBool32
+ Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes: [$sel:vkSType:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX] :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes: data VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+ Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: VkPipelineViewportWScalingStateCreateInfoNV :: VkStructureType -> Ptr () -> VkBool32 -> Word32 -> Ptr VkViewportWScalingNV -> VkPipelineViewportWScalingStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: VkViewportWScalingNV :: CFloat -> CFloat -> VkViewportWScalingNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: [$sel:vkPNext:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: [$sel:vkPViewportWScalings:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> Ptr VkViewportWScalingNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: [$sel:vkSType:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: [$sel:vkViewportCount:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> Word32
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: [$sel:vkViewportWScalingEnable:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> VkBool32
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: [$sel:vkXcoeff:VkViewportWScalingNV] :: VkViewportWScalingNV -> CFloat
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: [$sel:vkYcoeff:VkViewportWScalingNV] :: VkViewportWScalingNV -> CFloat
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: data VkPipelineViewportWScalingStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: data VkViewportWScalingNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkViewportWScalingNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkViewportWScalingNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkViewportWScalingNV
+ Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling: vkCmdSetViewportWScalingNV :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewportWScalings" ::: Ptr VkViewportWScalingNV) -> IO ()
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: VkDedicatedAllocationBufferCreateInfoNV :: VkStructureType -> Ptr () -> VkBool32 -> VkDedicatedAllocationBufferCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: VkDedicatedAllocationImageCreateInfoNV :: VkStructureType -> Ptr () -> VkBool32 -> VkDedicatedAllocationImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: VkDedicatedAllocationMemoryAllocateInfoNV :: VkStructureType -> Ptr () -> VkImage -> VkBuffer -> VkDedicatedAllocationMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkBuffer:VkDedicatedAllocationMemoryAllocateInfoNV] :: VkDedicatedAllocationMemoryAllocateInfoNV -> VkBuffer
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkDedicatedAllocation:VkDedicatedAllocationBufferCreateInfoNV] :: VkDedicatedAllocationBufferCreateInfoNV -> VkBool32
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkDedicatedAllocation:VkDedicatedAllocationImageCreateInfoNV] :: VkDedicatedAllocationImageCreateInfoNV -> VkBool32
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkImage:VkDedicatedAllocationMemoryAllocateInfoNV] :: VkDedicatedAllocationMemoryAllocateInfoNV -> VkImage
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkPNext:VkDedicatedAllocationBufferCreateInfoNV] :: VkDedicatedAllocationBufferCreateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkPNext:VkDedicatedAllocationImageCreateInfoNV] :: VkDedicatedAllocationImageCreateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkPNext:VkDedicatedAllocationMemoryAllocateInfoNV] :: VkDedicatedAllocationMemoryAllocateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkSType:VkDedicatedAllocationBufferCreateInfoNV] :: VkDedicatedAllocationBufferCreateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkSType:VkDedicatedAllocationImageCreateInfoNV] :: VkDedicatedAllocationImageCreateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: [$sel:vkSType:VkDedicatedAllocationMemoryAllocateInfoNV] :: VkDedicatedAllocationMemoryAllocateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: data VkDedicatedAllocationBufferCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: data VkDedicatedAllocationImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: data VkDedicatedAllocationMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: VkExportMemoryAllocateInfoNV :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagsNV -> VkExportMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: VkExternalMemoryImageCreateInfoNV :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagsNV -> VkExternalMemoryImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: [$sel:vkHandleTypes:VkExportMemoryAllocateInfoNV] :: VkExportMemoryAllocateInfoNV -> VkExternalMemoryHandleTypeFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: [$sel:vkHandleTypes:VkExternalMemoryImageCreateInfoNV] :: VkExternalMemoryImageCreateInfoNV -> VkExternalMemoryHandleTypeFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: [$sel:vkPNext:VkExportMemoryAllocateInfoNV] :: VkExportMemoryAllocateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: [$sel:vkPNext:VkExternalMemoryImageCreateInfoNV] :: VkExternalMemoryImageCreateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: [$sel:vkSType:VkExportMemoryAllocateInfoNV] :: VkExportMemoryAllocateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: [$sel:vkSType:VkExternalMemoryImageCreateInfoNV] :: VkExternalMemoryImageCreateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: data VkExportMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: data VkExternalMemoryImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: VkExternalImageFormatPropertiesNV :: VkImageFormatProperties -> VkExternalMemoryFeatureFlagsNV -> VkExternalMemoryHandleTypeFlagsNV -> VkExternalMemoryHandleTypeFlagsNV -> VkExternalImageFormatPropertiesNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: VkExternalMemoryFeatureFlagBitsNV :: VkFlags -> VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: VkExternalMemoryHandleTypeFlagBitsNV :: VkFlags -> VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: [$sel:vkCompatibleHandleTypes:VkExternalImageFormatPropertiesNV] :: VkExternalImageFormatPropertiesNV -> VkExternalMemoryHandleTypeFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: [$sel:vkExportFromImportedHandleTypes:VkExternalImageFormatPropertiesNV] :: VkExternalImageFormatPropertiesNV -> VkExternalMemoryHandleTypeFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: [$sel:vkExternalMemoryFeatures:VkExternalImageFormatPropertiesNV] :: VkExternalImageFormatPropertiesNV -> VkExternalMemoryFeatureFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: [$sel:vkImageFormatProperties:VkExternalImageFormatPropertiesNV] :: VkExternalImageFormatPropertiesNV -> VkImageFormatProperties
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: data VkExternalImageFormatPropertiesNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalImageFormatPropertiesNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalImageFormatPropertiesNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalImageFormatPropertiesNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: newtype VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: newtype VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: type VkExternalMemoryFeatureFlagsNV = VkExternalMemoryFeatureFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: type VkExternalMemoryHandleTypeFlagsNV = VkExternalMemoryHandleTypeFlagBitsNV
+ Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities: vkGetPhysicalDeviceExternalImageFormatPropertiesNV :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("tiling" ::: VkImageTiling) -> ("usage" ::: VkImageUsageFlags) -> ("flags" ::: VkImageCreateFlags) -> ("externalHandleType" ::: VkExternalMemoryHandleTypeFlagsNV) -> ("pExternalImageFormatProperties" ::: Ptr VkExternalImageFormatPropertiesNV) -> IO VkResult
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: VkPipelineCoverageToColorStateCreateFlagsNV :: VkFlags -> VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: VkPipelineCoverageToColorStateCreateInfoNV :: VkStructureType -> Ptr () -> VkPipelineCoverageToColorStateCreateFlagsNV -> VkBool32 -> Word32 -> VkPipelineCoverageToColorStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: [$sel:vkCoverageToColorEnable:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> VkBool32
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: [$sel:vkCoverageToColorLocation:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> Word32
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: [$sel:vkFlags:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: [$sel:vkPNext:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: [$sel:vkSType:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: data VkPipelineCoverageToColorStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color: newtype VkPipelineCoverageToColorStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: VkCoverageModulationModeNV :: Int32 -> VkCoverageModulationModeNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: VkPipelineCoverageModulationStateCreateFlagsNV :: VkFlags -> VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: VkPipelineCoverageModulationStateCreateInfoNV :: VkStructureType -> Ptr () -> VkPipelineCoverageModulationStateCreateFlagsNV -> VkCoverageModulationModeNV -> VkBool32 -> Word32 -> Ptr CFloat -> VkPipelineCoverageModulationStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: [$sel:vkCoverageModulationMode:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> VkCoverageModulationModeNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: [$sel:vkCoverageModulationTableCount:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> Word32
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: [$sel:vkCoverageModulationTableEnable:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> VkBool32
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: [$sel:vkFlags:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: [$sel:vkPCoverageModulationTable:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> Ptr CFloat
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: [$sel:vkPNext:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: [$sel:vkSType:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: data VkPipelineCoverageModulationStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: newtype VkCoverageModulationModeNV
+ Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples: newtype VkPipelineCoverageModulationStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: VkPipelineViewportSwizzleStateCreateFlagsNV :: VkFlags -> VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: VkPipelineViewportSwizzleStateCreateInfoNV :: VkStructureType -> Ptr () -> VkPipelineViewportSwizzleStateCreateFlagsNV -> Word32 -> Ptr VkViewportSwizzleNV -> VkPipelineViewportSwizzleStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: VkViewportCoordinateSwizzleNV :: Int32 -> VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: VkViewportSwizzleNV :: VkViewportCoordinateSwizzleNV -> VkViewportCoordinateSwizzleNV -> VkViewportCoordinateSwizzleNV -> VkViewportCoordinateSwizzleNV -> VkViewportSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkFlags:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkPNext:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> Ptr ()
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkPViewportSwizzles:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> Ptr VkViewportSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkSType:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> VkStructureType
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkViewportCount:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> Word32
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkW:VkViewportSwizzleNV] :: VkViewportSwizzleNV -> VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkX:VkViewportSwizzleNV] :: VkViewportSwizzleNV -> VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkY:VkViewportSwizzleNV] :: VkViewportSwizzleNV -> VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: [$sel:vkZ:VkViewportSwizzleNV] :: VkViewportSwizzleNV -> VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: data VkPipelineViewportSwizzleStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: data VkViewportSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateInfoNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportSwizzleNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: newtype VkPipelineViewportSwizzleStateCreateFlagsNV
+ Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle: newtype VkViewportCoordinateSwizzleNV
+ Graphics.Vulkan.NamedType: type (name :: k) ::: a = a

Files

changelog.md view
@@ -1,5 +1,11 @@ # Change Log +## [2.0.0.0] - 2018-04-20+  - Total rewrite of the generator+  - All extensions are in here+  - Split into core versions+  - Documentation on most things+ ## [1.7.0.0] - 2016-04-13   - Fix struct member names containing digits being erroneously truncated 
readme.md view
@@ -9,9 +9,26 @@  ## Current Status -All the core Vulkan functionality is here.+All the core Vulkan 1.0 and 1.1 functionality is here as well as all the extensions. -This is currently a 64 bit only library, 32 bit support is on the roadmap.+This is currently a 64 bit only library.  Examples can be found [here](https://github.com/expipiplus1/vulkan-examples)++## Differences from the vulkan API++Bools are strongly typed, this doesn't prevent any valid usage apart from+passing the numeric literals `0` and `1` to functions.++## Ideas++TODO: Move these to issues:++Wrappers for passing in size, pointer pair+Wrappers for passing in null terminated list++`withXXX` functions for `create`/`destroy` pairs.++Haddock tables soon:+https://github.com/haskell/haddock/pull/718 
src/Graphics/Vulkan.hs view
@@ -1,73 +1,19 @@+{-# language Strict #-}+{-# language CPP #-}++ module Graphics.Vulkan-  ( module Graphics.Vulkan.Buffer-  , module Graphics.Vulkan.BufferView-  , module Graphics.Vulkan.CommandBuffer-  , module Graphics.Vulkan.CommandBufferBuilding-  , module Graphics.Vulkan.CommandPool-  , module Graphics.Vulkan.Constants-  , module Graphics.Vulkan.Core-  , module Graphics.Vulkan.DescriptorSet-  , module Graphics.Vulkan.Device-  , module Graphics.Vulkan.DeviceInitialization-  , module Graphics.Vulkan.EXT.DebugReport-  , module Graphics.Vulkan.Event-  , module Graphics.Vulkan.ExtensionDiscovery-  , module Graphics.Vulkan.Fence-  , module Graphics.Vulkan.Image-  , module Graphics.Vulkan.ImageView-  , module Graphics.Vulkan.KHR.Display-  , module Graphics.Vulkan.KHR.DisplaySwapchain-  , module Graphics.Vulkan.KHR.Surface-  , module Graphics.Vulkan.KHR.Swapchain-  , module Graphics.Vulkan.LayerDiscovery-  , module Graphics.Vulkan.Memory-  , module Graphics.Vulkan.MemoryManagement-  , module Graphics.Vulkan.OtherTypes-  , module Graphics.Vulkan.Pass-  , module Graphics.Vulkan.Pipeline-  , module Graphics.Vulkan.PipelineCache-  , module Graphics.Vulkan.PipelineLayout-  , module Graphics.Vulkan.Query-  , module Graphics.Vulkan.Queue-  , module Graphics.Vulkan.QueueSemaphore-  , module Graphics.Vulkan.Sampler-  , module Graphics.Vulkan.Shader-  , module Graphics.Vulkan.SparseResourceMemoryManagement-  , module Graphics.Vulkan.Version+  (     module Graphics.Vulkan.NamedType+  , module Graphics.Vulkan.Core10+  , module Graphics.Vulkan.Core11+  , module Graphics.Vulkan.Extensions   ) where -import Graphics.Vulkan.Buffer-import Graphics.Vulkan.BufferView-import Graphics.Vulkan.CommandBuffer-import Graphics.Vulkan.CommandBufferBuilding-import Graphics.Vulkan.CommandPool-import Graphics.Vulkan.Constants-import Graphics.Vulkan.Core-import Graphics.Vulkan.DescriptorSet-import Graphics.Vulkan.Device-import Graphics.Vulkan.DeviceInitialization-import Graphics.Vulkan.EXT.DebugReport-import Graphics.Vulkan.Event-import Graphics.Vulkan.ExtensionDiscovery-import Graphics.Vulkan.Fence-import Graphics.Vulkan.Image-import Graphics.Vulkan.ImageView-import Graphics.Vulkan.KHR.Display-import Graphics.Vulkan.KHR.DisplaySwapchain-import Graphics.Vulkan.KHR.Surface-import Graphics.Vulkan.KHR.Swapchain-import Graphics.Vulkan.LayerDiscovery-import Graphics.Vulkan.Memory-import Graphics.Vulkan.MemoryManagement-import Graphics.Vulkan.OtherTypes-import Graphics.Vulkan.Pass-import Graphics.Vulkan.Pipeline-import Graphics.Vulkan.PipelineCache-import Graphics.Vulkan.PipelineLayout-import Graphics.Vulkan.Query-import Graphics.Vulkan.Queue-import Graphics.Vulkan.QueueSemaphore-import Graphics.Vulkan.Sampler-import Graphics.Vulkan.Shader-import Graphics.Vulkan.SparseResourceMemoryManagement-import Graphics.Vulkan.Version++import Graphics.Vulkan.NamedType+import Graphics.Vulkan.Core10+import Graphics.Vulkan.Core11+import Graphics.Vulkan.Extensions+++
− src/Graphics/Vulkan/Buffer.hs
@@ -1,192 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Buffer where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkDeviceSize(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           , VkSharingMode(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---- ** vkCreateBuffer-foreign import ccall "vkCreateBuffer" vkCreateBuffer ::-  VkDevice ->-  Ptr VkBufferCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkBuffer -> IO VkResult---- ** VkBufferCreateFlags--newtype VkBufferCreateFlagBits = VkBufferCreateFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkBufferCreateFlagBits-type VkBufferCreateFlags = VkBufferCreateFlagBits--instance Show VkBufferCreateFlagBits where-  showsPrec _ VK_BUFFER_CREATE_SPARSE_BINDING_BIT = showString "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"-  showsPrec _ VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = showString "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"-  showsPrec _ VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = showString "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"-  -  showsPrec p (VkBufferCreateFlagBits x) = showParen (p >= 11) (showString "VkBufferCreateFlagBits " . showsPrec 11 x)--instance Read VkBufferCreateFlagBits where-  readPrec = parens ( choose [ ("VK_BUFFER_CREATE_SPARSE_BINDING_BIT", pure VK_BUFFER_CREATE_SPARSE_BINDING_BIT)-                             , ("VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT", pure VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT)-                             , ("VK_BUFFER_CREATE_SPARSE_ALIASED_BIT", pure VK_BUFFER_CREATE_SPARSE_ALIASED_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkBufferCreateFlagBits")-                        v <- step readPrec-                        pure (VkBufferCreateFlagBits v)-                        )-                    )---- | Buffer should support sparse backing-pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT = VkBufferCreateFlagBits 0x1--- | Buffer should support sparse backing with partial residency-pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = VkBufferCreateFlagBits 0x2--- | Buffer should support constent data access to physical memory blocks mapped into multiple locations of sparse buffers-pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = VkBufferCreateFlagBits 0x4----- ** VkBufferUsageFlags--newtype VkBufferUsageFlagBits = VkBufferUsageFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkBufferUsageFlagBits-type VkBufferUsageFlags = VkBufferUsageFlagBits--instance Show VkBufferUsageFlagBits where-  showsPrec _ VK_BUFFER_USAGE_TRANSFER_SRC_BIT = showString "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"-  showsPrec _ VK_BUFFER_USAGE_TRANSFER_DST_BIT = showString "VK_BUFFER_USAGE_TRANSFER_DST_BIT"-  showsPrec _ VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = showString "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"-  showsPrec _ VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = showString "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"-  showsPrec _ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = showString "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"-  showsPrec _ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = showString "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"-  showsPrec _ VK_BUFFER_USAGE_INDEX_BUFFER_BIT = showString "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"-  showsPrec _ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = showString "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"-  showsPrec _ VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = showString "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"-  -  showsPrec p (VkBufferUsageFlagBits x) = showParen (p >= 11) (showString "VkBufferUsageFlagBits " . showsPrec 11 x)--instance Read VkBufferUsageFlagBits where-  readPrec = parens ( choose [ ("VK_BUFFER_USAGE_TRANSFER_SRC_BIT", pure VK_BUFFER_USAGE_TRANSFER_SRC_BIT)-                             , ("VK_BUFFER_USAGE_TRANSFER_DST_BIT", pure VK_BUFFER_USAGE_TRANSFER_DST_BIT)-                             , ("VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT", pure VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT)-                             , ("VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT", pure VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT)-                             , ("VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT", pure VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT)-                             , ("VK_BUFFER_USAGE_STORAGE_BUFFER_BIT", pure VK_BUFFER_USAGE_STORAGE_BUFFER_BIT)-                             , ("VK_BUFFER_USAGE_INDEX_BUFFER_BIT", pure VK_BUFFER_USAGE_INDEX_BUFFER_BIT)-                             , ("VK_BUFFER_USAGE_VERTEX_BUFFER_BIT", pure VK_BUFFER_USAGE_VERTEX_BUFFER_BIT)-                             , ("VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT", pure VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkBufferUsageFlagBits")-                        v <- step readPrec-                        pure (VkBufferUsageFlagBits v)-                        )-                    )---- | Can be used as a source of transfer operations-pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT = VkBufferUsageFlagBits 0x1--- | Can be used as a destination of transfer operations-pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT = VkBufferUsageFlagBits 0x2--- | Can be used as TBO-pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits 0x4--- | Can be used as IBO-pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits 0x8--- | Can be used as UBO-pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = VkBufferUsageFlagBits 0x10--- | Can be used as SSBO-pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = VkBufferUsageFlagBits 0x20--- | Can be used as source of fixed-function index fetch (index buffer)-pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT = VkBufferUsageFlagBits 0x40--- | Can be used as source of fixed-function vertex fetch (VBO)-pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = VkBufferUsageFlagBits 0x80--- | Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)-pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = VkBufferUsageFlagBits 0x100----- ** vkDestroyBuffer-foreign import ccall "vkDestroyBuffer" vkDestroyBuffer ::-  VkDevice -> VkBuffer -> Ptr VkAllocationCallbacks -> IO ()--newtype VkBuffer = VkBuffer Word64-  deriving (Eq, Storable)---data VkBufferCreateInfo =-  VkBufferCreateInfo{ vkSType :: VkStructureType -                    , vkPNext :: Ptr Void -                    , vkFlags :: VkBufferCreateFlags -                    , vkSize :: VkDeviceSize -                    , vkUsage :: VkBufferUsageFlags -                    , vkSharingMode :: VkSharingMode -                    , vkQueueFamilyIndexCount :: Word32 -                    , vkPQueueFamilyIndices :: Ptr Word32 -                    }-  deriving (Eq)--instance Storable VkBufferCreateInfo where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek ptr = VkBufferCreateInfo <$> peek (ptr `plusPtr` 0)-                                <*> peek (ptr `plusPtr` 8)-                                <*> peek (ptr `plusPtr` 16)-                                <*> peek (ptr `plusPtr` 24)-                                <*> peek (ptr `plusPtr` 32)-                                <*> peek (ptr `plusPtr` 36)-                                <*> peek (ptr `plusPtr` 40)-                                <*> peek (ptr `plusPtr` 48)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkBufferCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkSize (poked :: VkBufferCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkUsage (poked :: VkBufferCreateInfo))-                *> poke (ptr `plusPtr` 36) (vkSharingMode (poked :: VkBufferCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkQueueFamilyIndexCount (poked :: VkBufferCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkPQueueFamilyIndices (poked :: VkBufferCreateInfo))--
− src/Graphics/Vulkan/BufferView.hs
@@ -1,86 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.BufferView where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Graphics.Vulkan.Buffer( VkBuffer(..)-                             )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkDeviceSize(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---- ** vkCreateBufferView-foreign import ccall "vkCreateBufferView" vkCreateBufferView ::-  VkDevice ->-  Ptr VkBufferViewCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkBufferView -> IO VkResult--newtype VkBufferView = VkBufferView Word64-  deriving (Eq, Storable)---data VkBufferViewCreateInfo =-  VkBufferViewCreateInfo{ vkSType :: VkStructureType -                        , vkPNext :: Ptr Void -                        , vkFlags :: VkBufferViewCreateFlags -                        , vkBuffer :: VkBuffer -                        , vkFormat :: VkFormat -                        , vkOffset :: VkDeviceSize -                        , vkRange :: VkDeviceSize -                        }-  deriving (Eq)--instance Storable VkBufferViewCreateInfo where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek ptr = VkBufferViewCreateInfo <$> peek (ptr `plusPtr` 0)-                                    <*> peek (ptr `plusPtr` 8)-                                    <*> peek (ptr `plusPtr` 16)-                                    <*> peek (ptr `plusPtr` 24)-                                    <*> peek (ptr `plusPtr` 32)-                                    <*> peek (ptr `plusPtr` 40)-                                    <*> peek (ptr `plusPtr` 48)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferViewCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferViewCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkBufferViewCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkBuffer (poked :: VkBufferViewCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkFormat (poked :: VkBufferViewCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkOffset (poked :: VkBufferViewCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkRange (poked :: VkBufferViewCreateInfo))----- ** VkBufferViewCreateFlags--- | Opaque flag-newtype VkBufferViewCreateFlags = VkBufferViewCreateFlags VkFlags-  deriving (Eq, Storable)---- ** vkDestroyBufferView-foreign import ccall "vkDestroyBufferView" vkDestroyBufferView ::-  VkDevice -> VkBufferView -> Ptr VkAllocationCallbacks -> IO ()-
− src/Graphics/Vulkan/CommandBuffer.hs
@@ -1,245 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.CommandBuffer where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Graphics.Vulkan.Pass( VkFramebuffer(..)-                           , VkRenderPass(..)-                           )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Graphics.Vulkan.CommandPool( VkCommandPool(..)-                                  )-import Data.Void( Void-                )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Query( VkQueryPipelineStatisticFlags(..)-                            , VkQueryControlFlagBits(..)-                            , VkQueryControlFlags(..)-                            , VkQueryPipelineStatisticFlagBits(..)-                            )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )---- ** VkCommandBufferLevel--newtype VkCommandBufferLevel = VkCommandBufferLevel Int32-  deriving (Eq, Storable)--instance Show VkCommandBufferLevel where-  showsPrec _ VK_COMMAND_BUFFER_LEVEL_PRIMARY = showString "VK_COMMAND_BUFFER_LEVEL_PRIMARY"-  showsPrec _ VK_COMMAND_BUFFER_LEVEL_SECONDARY = showString "VK_COMMAND_BUFFER_LEVEL_SECONDARY"-  showsPrec p (VkCommandBufferLevel x) = showParen (p >= 11) (showString "VkCommandBufferLevel " . showsPrec 11 x)--instance Read VkCommandBufferLevel where-  readPrec = parens ( choose [ ("VK_COMMAND_BUFFER_LEVEL_PRIMARY", pure VK_COMMAND_BUFFER_LEVEL_PRIMARY)-                             , ("VK_COMMAND_BUFFER_LEVEL_SECONDARY", pure VK_COMMAND_BUFFER_LEVEL_SECONDARY)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkCommandBufferLevel")-                        v <- step readPrec-                        pure (VkCommandBufferLevel v)-                        )-                    )---pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY = VkCommandBufferLevel 0--pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY = VkCommandBufferLevel 1---- ** vkAllocateCommandBuffers-foreign import ccall "vkAllocateCommandBuffers" vkAllocateCommandBuffers ::-  VkDevice ->-  Ptr VkCommandBufferAllocateInfo ->-    Ptr VkCommandBuffer -> IO VkResult---- ** vkResetCommandBuffer-foreign import ccall "vkResetCommandBuffer" vkResetCommandBuffer ::-  VkCommandBuffer -> VkCommandBufferResetFlags -> IO VkResult---- ** vkFreeCommandBuffers-foreign import ccall "vkFreeCommandBuffers" vkFreeCommandBuffers ::-  VkDevice -> VkCommandPool -> Word32 -> Ptr VkCommandBuffer -> IO ()---- ** VkCommandBufferUsageFlags--newtype VkCommandBufferUsageFlagBits = VkCommandBufferUsageFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkCommandBufferUsageFlagBits-type VkCommandBufferUsageFlags = VkCommandBufferUsageFlagBits--instance Show VkCommandBufferUsageFlagBits where-  showsPrec _ VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = showString "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"-  showsPrec _ VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = showString "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"-  showsPrec _ VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = showString "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"-  -  showsPrec p (VkCommandBufferUsageFlagBits x) = showParen (p >= 11) (showString "VkCommandBufferUsageFlagBits " . showsPrec 11 x)--instance Read VkCommandBufferUsageFlagBits where-  readPrec = parens ( choose [ ("VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT", pure VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT)-                             , ("VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT", pure VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT)-                             , ("VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT", pure VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkCommandBufferUsageFlagBits")-                        v <- step readPrec-                        pure (VkCommandBufferUsageFlagBits v)-                        )-                    )---pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = VkCommandBufferUsageFlagBits 0x1--pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = VkCommandBufferUsageFlagBits 0x2--- | Command buffer may be submitted/executed more than once simultaneously-pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = VkCommandBufferUsageFlagBits 0x4----data VkCommandBufferBeginInfo =-  VkCommandBufferBeginInfo{ vkSType :: VkStructureType -                          , vkPNext :: Ptr Void -                          , vkFlags :: VkCommandBufferUsageFlags -                          , vkPInheritanceInfo :: Ptr VkCommandBufferInheritanceInfo -                          }-  deriving (Eq)--instance Storable VkCommandBufferBeginInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkCommandBufferBeginInfo <$> peek (ptr `plusPtr` 0)-                                      <*> peek (ptr `plusPtr` 8)-                                      <*> peek (ptr `plusPtr` 16)-                                      <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferBeginInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferBeginInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkCommandBufferBeginInfo))-                *> poke (ptr `plusPtr` 24) (vkPInheritanceInfo (poked :: VkCommandBufferBeginInfo))----data VkCommandBufferInheritanceInfo =-  VkCommandBufferInheritanceInfo{ vkSType :: VkStructureType -                                , vkPNext :: Ptr Void -                                , vkRenderPass :: VkRenderPass -                                , vkSubpass :: Word32 -                                , vkFramebuffer :: VkFramebuffer -                                , vkOcclusionQueryEnable :: VkBool32 -                                , vkQueryFlags :: VkQueryControlFlags -                                , vkPipelineStatistics :: VkQueryPipelineStatisticFlags -                                }-  deriving (Eq)--instance Storable VkCommandBufferInheritanceInfo where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek ptr = VkCommandBufferInheritanceInfo <$> peek (ptr `plusPtr` 0)-                                            <*> peek (ptr `plusPtr` 8)-                                            <*> peek (ptr `plusPtr` 16)-                                            <*> peek (ptr `plusPtr` 24)-                                            <*> peek (ptr `plusPtr` 32)-                                            <*> peek (ptr `plusPtr` 40)-                                            <*> peek (ptr `plusPtr` 44)-                                            <*> peek (ptr `plusPtr` 48)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferInheritanceInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferInheritanceInfo))-                *> poke (ptr `plusPtr` 16) (vkRenderPass (poked :: VkCommandBufferInheritanceInfo))-                *> poke (ptr `plusPtr` 24) (vkSubpass (poked :: VkCommandBufferInheritanceInfo))-                *> poke (ptr `plusPtr` 32) (vkFramebuffer (poked :: VkCommandBufferInheritanceInfo))-                *> poke (ptr `plusPtr` 40) (vkOcclusionQueryEnable (poked :: VkCommandBufferInheritanceInfo))-                *> poke (ptr `plusPtr` 44) (vkQueryFlags (poked :: VkCommandBufferInheritanceInfo))-                *> poke (ptr `plusPtr` 48) (vkPipelineStatistics (poked :: VkCommandBufferInheritanceInfo))---data VkCommandBuffer_T-type VkCommandBuffer = Ptr VkCommandBuffer_T---- ** VkCommandBufferResetFlags--newtype VkCommandBufferResetFlagBits = VkCommandBufferResetFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkCommandBufferResetFlagBits-type VkCommandBufferResetFlags = VkCommandBufferResetFlagBits--instance Show VkCommandBufferResetFlagBits where-  showsPrec _ VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = showString "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"-  -  showsPrec p (VkCommandBufferResetFlagBits x) = showParen (p >= 11) (showString "VkCommandBufferResetFlagBits " . showsPrec 11 x)--instance Read VkCommandBufferResetFlagBits where-  readPrec = parens ( choose [ ("VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT", pure VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkCommandBufferResetFlagBits")-                        v <- step readPrec-                        pure (VkCommandBufferResetFlagBits v)-                        )-                    )---- | Release resources owned by the buffer-pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = VkCommandBufferResetFlagBits 0x1----- ** vkEndCommandBuffer-foreign import ccall "vkEndCommandBuffer" vkEndCommandBuffer ::-  VkCommandBuffer -> IO VkResult---- ** vkBeginCommandBuffer-foreign import ccall "vkBeginCommandBuffer" vkBeginCommandBuffer ::-  VkCommandBuffer -> Ptr VkCommandBufferBeginInfo -> IO VkResult---data VkCommandBufferAllocateInfo =-  VkCommandBufferAllocateInfo{ vkSType :: VkStructureType -                             , vkPNext :: Ptr Void -                             , vkCommandPool :: VkCommandPool -                             , vkLevel :: VkCommandBufferLevel -                             , vkCommandBufferCount :: Word32 -                             }-  deriving (Eq)--instance Storable VkCommandBufferAllocateInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkCommandBufferAllocateInfo <$> peek (ptr `plusPtr` 0)-                                         <*> peek (ptr `plusPtr` 8)-                                         <*> peek (ptr `plusPtr` 16)-                                         <*> peek (ptr `plusPtr` 24)-                                         <*> peek (ptr `plusPtr` 28)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferAllocateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferAllocateInfo))-                *> poke (ptr `plusPtr` 16) (vkCommandPool (poked :: VkCommandBufferAllocateInfo))-                *> poke (ptr `plusPtr` 24) (vkLevel (poked :: VkCommandBufferAllocateInfo))-                *> poke (ptr `plusPtr` 28) (vkCommandBufferCount (poked :: VkCommandBufferAllocateInfo))--
− src/Graphics/Vulkan/CommandBufferBuilding.hs
@@ -1,677 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.CommandBufferBuilding where--import Data.Vector.Storable.Sized( Vector-                                 )-import Graphics.Vulkan.Buffer( VkBuffer(..)-                             )-import Graphics.Vulkan.Pass( VkDependencyFlagBits(..)-                           , VkFramebuffer(..)-                           , VkRenderPass(..)-                           , VkAccessFlags(..)-                           , VkDependencyFlags(..)-                           , VkAccessFlagBits(..)-                           )-import Text.Read.Lex( Lexeme(Ident)-                    )-import Graphics.Vulkan.Event( VkEvent(..)-                            )-import GHC.Read( expectP-               , choose-               )-import Graphics.Vulkan.Pipeline( VkPipelineStageFlagBits(..)-                               , VkPipelineStageFlags(..)-                               , VkPipeline(..)-                               , VkPipelineBindPoint(..)-                               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , castPtr-                  , plusPtr-                  )-import Graphics.Vulkan.DescriptorSet( VkDescriptorSet(..)-                                    )-import Graphics.Vulkan.CommandBuffer( VkCommandBuffer(..)-                                    )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.PipelineLayout( VkPipelineLayout(..)-                                     )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Shader( VkShaderStageFlagBits(..)-                             , VkShaderStageFlags(..)-                             )-import Graphics.Vulkan.Sampler( VkFilter(..)-                              )-import Graphics.Vulkan.Image( VkImage(..)-                            , VkImageLayout(..)-                            , VkImageAspectFlagBits(..)-                            , VkImageSubresourceRange(..)-                            , VkImageAspectFlags(..)-                            )-import Graphics.Vulkan.Query( VkQueryResultFlagBits(..)-                            , VkQueryControlFlagBits(..)-                            , VkQueryControlFlags(..)-                            , VkQueryPool(..)-                            , VkQueryResultFlags(..)-                            )-import Graphics.Vulkan.OtherTypes( VkImageMemoryBarrier(..)-                                 , VkMemoryBarrier(..)-                                 , VkBufferMemoryBarrier(..)-                                 )-import Graphics.Vulkan.Core( VkExtent3D(..)-                           , VkDeviceSize(..)-                           , VkExtent2D(..)-                           , VkFlags(..)-                           , VkOffset2D(..)-                           , VkOffset3D(..)-                           , VkRect2D(..)-                           , VkViewport(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CFloat-                      , CFloat(..)-                      )---- ** vkCmdPushConstants-foreign import ccall "vkCmdPushConstants" vkCmdPushConstants ::-  VkCommandBuffer ->-  VkPipelineLayout ->-    VkShaderStageFlags -> Word32 -> Word32 -> Ptr Void -> IO ()---- ** vkCmdSetStencilWriteMask-foreign import ccall "vkCmdSetStencilWriteMask" vkCmdSetStencilWriteMask ::-  VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()---- ** vkCmdBindIndexBuffer-foreign import ccall "vkCmdBindIndexBuffer" vkCmdBindIndexBuffer ::-  VkCommandBuffer -> VkBuffer -> VkDeviceSize -> VkIndexType -> IO ()---- ** vkCmdResetQueryPool-foreign import ccall "vkCmdResetQueryPool" vkCmdResetQueryPool ::-  VkCommandBuffer -> VkQueryPool -> Word32 -> Word32 -> IO ()---- ** vkCmdResolveImage-foreign import ccall "vkCmdResolveImage" vkCmdResolveImage ::-  VkCommandBuffer ->-  VkImage ->-    VkImageLayout ->-      VkImage -> VkImageLayout -> Word32 -> Ptr VkImageResolve -> IO ()---- ** vkCmdBindPipeline-foreign import ccall "vkCmdBindPipeline" vkCmdBindPipeline ::-  VkCommandBuffer -> VkPipelineBindPoint -> VkPipeline -> IO ()---- ** vkCmdBindVertexBuffers-foreign import ccall "vkCmdBindVertexBuffers" vkCmdBindVertexBuffers ::-  VkCommandBuffer ->-  Word32 -> Word32 -> Ptr VkBuffer -> Ptr VkDeviceSize -> IO ()---- ** vkCmdDraw-foreign import ccall "vkCmdDraw" vkCmdDraw ::-  VkCommandBuffer -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()---data VkImageCopy =-  VkImageCopy{ vkSrcSubresource :: VkImageSubresourceLayers -             , vkSrcOffset :: VkOffset3D -             , vkDstSubresource :: VkImageSubresourceLayers -             , vkDstOffset :: VkOffset3D -             , vkExtent :: VkExtent3D -             }-  deriving (Eq)--instance Storable VkImageCopy where-  sizeOf ~_ = 68-  alignment ~_ = 4-  peek ptr = VkImageCopy <$> peek (ptr `plusPtr` 0)-                         <*> peek (ptr `plusPtr` 16)-                         <*> peek (ptr `plusPtr` 28)-                         <*> peek (ptr `plusPtr` 44)-                         <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageCopy))-                *> poke (ptr `plusPtr` 16) (vkSrcOffset (poked :: VkImageCopy))-                *> poke (ptr `plusPtr` 28) (vkDstSubresource (poked :: VkImageCopy))-                *> poke (ptr `plusPtr` 44) (vkDstOffset (poked :: VkImageCopy))-                *> poke (ptr `plusPtr` 56) (vkExtent (poked :: VkImageCopy))----- ** vkCmdNextSubpass-foreign import ccall "vkCmdNextSubpass" vkCmdNextSubpass ::-  VkCommandBuffer -> VkSubpassContents -> IO ()---- ** vkCmdEndQuery-foreign import ccall "vkCmdEndQuery" vkCmdEndQuery ::-  VkCommandBuffer -> VkQueryPool -> Word32 -> IO ()---- ** vkCmdSetScissor-foreign import ccall "vkCmdSetScissor" vkCmdSetScissor ::-  VkCommandBuffer -> Word32 -> Word32 -> Ptr VkRect2D -> IO ()---- ** vkCmdSetEvent-foreign import ccall "vkCmdSetEvent" vkCmdSetEvent ::-  VkCommandBuffer -> VkEvent -> VkPipelineStageFlags -> IO ()---- ** vkCmdCopyImageToBuffer-foreign import ccall "vkCmdCopyImageToBuffer" vkCmdCopyImageToBuffer ::-  VkCommandBuffer ->-  VkImage ->-    VkImageLayout ->-      VkBuffer -> Word32 -> Ptr VkBufferImageCopy -> IO ()---- ** vkCmdDispatchIndirect-foreign import ccall "vkCmdDispatchIndirect" vkCmdDispatchIndirect ::-  VkCommandBuffer -> VkBuffer -> VkDeviceSize -> IO ()---- ** vkCmdBeginQuery-foreign import ccall "vkCmdBeginQuery" vkCmdBeginQuery ::-  VkCommandBuffer ->-  VkQueryPool -> Word32 -> VkQueryControlFlags -> IO ()---- ** vkCmdEndRenderPass-foreign import ccall "vkCmdEndRenderPass" vkCmdEndRenderPass ::-  VkCommandBuffer -> IO ()---- ** vkCmdFillBuffer-foreign import ccall "vkCmdFillBuffer" vkCmdFillBuffer ::-  VkCommandBuffer ->-  VkBuffer -> VkDeviceSize -> VkDeviceSize -> Word32 -> IO ()---data VkClearRect =-  VkClearRect{ vkRect :: VkRect2D -             , vkBaseArrayLayer :: Word32 -             , vkLayerCount :: Word32 -             }-  deriving (Eq)--instance Storable VkClearRect where-  sizeOf ~_ = 24-  alignment ~_ = 4-  peek ptr = VkClearRect <$> peek (ptr `plusPtr` 0)-                         <*> peek (ptr `plusPtr` 16)-                         <*> peek (ptr `plusPtr` 20)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkRect (poked :: VkClearRect))-                *> poke (ptr `plusPtr` 16) (vkBaseArrayLayer (poked :: VkClearRect))-                *> poke (ptr `plusPtr` 20) (vkLayerCount (poked :: VkClearRect))----- ** vkCmdWaitEvents-foreign import ccall "vkCmdWaitEvents" vkCmdWaitEvents ::-  VkCommandBuffer ->-  Word32 ->-    Ptr VkEvent ->-      VkPipelineStageFlags ->-        VkPipelineStageFlags ->-          Word32 ->-            Ptr VkMemoryBarrier ->-              Word32 ->-                Ptr VkBufferMemoryBarrier ->-                  Word32 -> Ptr VkImageMemoryBarrier -> IO ()---- ** vkCmdClearColorImage-foreign import ccall "vkCmdClearColorImage" vkCmdClearColorImage ::-  VkCommandBuffer ->-  VkImage ->-    VkImageLayout ->-      Ptr VkClearColorValue ->-        Word32 -> Ptr VkImageSubresourceRange -> IO ()---- ** VkIndexType--newtype VkIndexType = VkIndexType Int32-  deriving (Eq, Storable)--instance Show VkIndexType where-  showsPrec _ VK_INDEX_TYPE_UINT16 = showString "VK_INDEX_TYPE_UINT16"-  showsPrec _ VK_INDEX_TYPE_UINT32 = showString "VK_INDEX_TYPE_UINT32"-  showsPrec p (VkIndexType x) = showParen (p >= 11) (showString "VkIndexType " . showsPrec 11 x)--instance Read VkIndexType where-  readPrec = parens ( choose [ ("VK_INDEX_TYPE_UINT16", pure VK_INDEX_TYPE_UINT16)-                             , ("VK_INDEX_TYPE_UINT32", pure VK_INDEX_TYPE_UINT32)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkIndexType")-                        v <- step readPrec-                        pure (VkIndexType v)-                        )-                    )---pattern VK_INDEX_TYPE_UINT16 = VkIndexType 0--pattern VK_INDEX_TYPE_UINT32 = VkIndexType 1---data VkBufferImageCopy =-  VkBufferImageCopy{ vkBufferOffset :: VkDeviceSize -                   , vkBufferRowLength :: Word32 -                   , vkBufferImageHeight :: Word32 -                   , vkImageSubresource :: VkImageSubresourceLayers -                   , vkImageOffset :: VkOffset3D -                   , vkImageExtent :: VkExtent3D -                   }-  deriving (Eq)--instance Storable VkBufferImageCopy where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek ptr = VkBufferImageCopy <$> peek (ptr `plusPtr` 0)-                               <*> peek (ptr `plusPtr` 8)-                               <*> peek (ptr `plusPtr` 12)-                               <*> peek (ptr `plusPtr` 16)-                               <*> peek (ptr `plusPtr` 32)-                               <*> peek (ptr `plusPtr` 44)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkBufferOffset (poked :: VkBufferImageCopy))-                *> poke (ptr `plusPtr` 8) (vkBufferRowLength (poked :: VkBufferImageCopy))-                *> poke (ptr `plusPtr` 12) (vkBufferImageHeight (poked :: VkBufferImageCopy))-                *> poke (ptr `plusPtr` 16) (vkImageSubresource (poked :: VkBufferImageCopy))-                *> poke (ptr `plusPtr` 32) (vkImageOffset (poked :: VkBufferImageCopy))-                *> poke (ptr `plusPtr` 44) (vkImageExtent (poked :: VkBufferImageCopy))----- ** vkCmdSetDepthBounds-foreign import ccall "vkCmdSetDepthBounds" vkCmdSetDepthBounds ::-  VkCommandBuffer -> CFloat -> CFloat -> IO ()---- ** vkCmdCopyBufferToImage-foreign import ccall "vkCmdCopyBufferToImage" vkCmdCopyBufferToImage ::-  VkCommandBuffer ->-  VkBuffer ->-    VkImage ->-      VkImageLayout -> Word32 -> Ptr VkBufferImageCopy -> IO ()---- ** vkCmdDrawIndexedIndirect-foreign import ccall "vkCmdDrawIndexedIndirect" vkCmdDrawIndexedIndirect ::-  VkCommandBuffer ->-  VkBuffer -> VkDeviceSize -> Word32 -> Word32 -> IO ()---- ** vkCmdUpdateBuffer-foreign import ccall "vkCmdUpdateBuffer" vkCmdUpdateBuffer ::-  VkCommandBuffer ->-  VkBuffer -> VkDeviceSize -> VkDeviceSize -> Ptr Word32 -> IO ()---- ** vkCmdCopyImage-foreign import ccall "vkCmdCopyImage" vkCmdCopyImage ::-  VkCommandBuffer ->-  VkImage ->-    VkImageLayout ->-      VkImage -> VkImageLayout -> Word32 -> Ptr VkImageCopy -> IO ()---- ** vkCmdWriteTimestamp-foreign import ccall "vkCmdWriteTimestamp" vkCmdWriteTimestamp ::-  VkCommandBuffer ->-  VkPipelineStageFlagBits -> VkQueryPool -> Word32 -> IO ()---data VkImageSubresourceLayers =-  VkImageSubresourceLayers{ vkAspectMask :: VkImageAspectFlags -                          , vkMipLevel :: Word32 -                          , vkBaseArrayLayer :: Word32 -                          , vkLayerCount :: Word32 -                          }-  deriving (Eq)--instance Storable VkImageSubresourceLayers where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek ptr = VkImageSubresourceLayers <$> peek (ptr `plusPtr` 0)-                                      <*> peek (ptr `plusPtr` 4)-                                      <*> peek (ptr `plusPtr` 8)-                                      <*> peek (ptr `plusPtr` 12)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresourceLayers))-                *> poke (ptr `plusPtr` 4) (vkMipLevel (poked :: VkImageSubresourceLayers))-                *> poke (ptr `plusPtr` 8) (vkBaseArrayLayer (poked :: VkImageSubresourceLayers))-                *> poke (ptr `plusPtr` 12) (vkLayerCount (poked :: VkImageSubresourceLayers))----- ** vkCmdDrawIndexed-foreign import ccall "vkCmdDrawIndexed" vkCmdDrawIndexed ::-  VkCommandBuffer ->-  Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()---- ** vkCmdSetDepthBias-foreign import ccall "vkCmdSetDepthBias" vkCmdSetDepthBias ::-  VkCommandBuffer -> CFloat -> CFloat -> CFloat -> IO ()---- ** vkCmdDrawIndirect-foreign import ccall "vkCmdDrawIndirect" vkCmdDrawIndirect ::-  VkCommandBuffer ->-  VkBuffer -> VkDeviceSize -> Word32 -> Word32 -> IO ()---data VkClearDepthStencilValue =-  VkClearDepthStencilValue{ vkDepth :: CFloat -                          , vkStencil :: Word32 -                          }-  deriving (Eq)--instance Storable VkClearDepthStencilValue where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek ptr = VkClearDepthStencilValue <$> peek (ptr `plusPtr` 0)-                                      <*> peek (ptr `plusPtr` 4)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkDepth (poked :: VkClearDepthStencilValue))-                *> poke (ptr `plusPtr` 4) (vkStencil (poked :: VkClearDepthStencilValue))----data VkBufferCopy =-  VkBufferCopy{ vkSrcOffset :: VkDeviceSize -              , vkDstOffset :: VkDeviceSize -              , vkSize :: VkDeviceSize -              }-  deriving (Eq)--instance Storable VkBufferCopy where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkBufferCopy <$> peek (ptr `plusPtr` 0)-                          <*> peek (ptr `plusPtr` 8)-                          <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcOffset (poked :: VkBufferCopy))-                *> poke (ptr `plusPtr` 8) (vkDstOffset (poked :: VkBufferCopy))-                *> poke (ptr `plusPtr` 16) (vkSize (poked :: VkBufferCopy))----- ** vkCmdClearAttachments-foreign import ccall "vkCmdClearAttachments" vkCmdClearAttachments ::-  VkCommandBuffer ->-  Word32 ->-    Ptr VkClearAttachment -> Word32 -> Ptr VkClearRect -> IO ()---- ** vkCmdSetViewport-foreign import ccall "vkCmdSetViewport" vkCmdSetViewport ::-  VkCommandBuffer -> Word32 -> Word32 -> Ptr VkViewport -> IO ()---- ** vkCmdCopyBuffer-foreign import ccall "vkCmdCopyBuffer" vkCmdCopyBuffer ::-  VkCommandBuffer ->-  VkBuffer -> VkBuffer -> Word32 -> Ptr VkBufferCopy -> IO ()---- ** vkCmdBindDescriptorSets-foreign import ccall "vkCmdBindDescriptorSets" vkCmdBindDescriptorSets ::-  VkCommandBuffer ->-  VkPipelineBindPoint ->-    VkPipelineLayout ->-      Word32 ->-        Word32 -> Ptr VkDescriptorSet -> Word32 -> Ptr Word32 -> IO ()---- ** vkCmdSetLineWidth-foreign import ccall "vkCmdSetLineWidth" vkCmdSetLineWidth ::-  VkCommandBuffer -> CFloat -> IO ()---- ** vkCmdExecuteCommands-foreign import ccall "vkCmdExecuteCommands" vkCmdExecuteCommands ::-  VkCommandBuffer -> Word32 -> Ptr VkCommandBuffer -> IO ()---data VkRenderPassBeginInfo =-  VkRenderPassBeginInfo{ vkSType :: VkStructureType -                       , vkPNext :: Ptr Void -                       , vkRenderPass :: VkRenderPass -                       , vkFramebuffer :: VkFramebuffer -                       , vkRenderArea :: VkRect2D -                       , vkClearValueCount :: Word32 -                       , vkPClearValues :: Ptr VkClearValue -                       }-  deriving (Eq)--instance Storable VkRenderPassBeginInfo where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkRenderPassBeginInfo <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 8)-                                   <*> peek (ptr `plusPtr` 16)-                                   <*> peek (ptr `plusPtr` 24)-                                   <*> peek (ptr `plusPtr` 32)-                                   <*> peek (ptr `plusPtr` 48)-                                   <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassBeginInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassBeginInfo))-                *> poke (ptr `plusPtr` 16) (vkRenderPass (poked :: VkRenderPassBeginInfo))-                *> poke (ptr `plusPtr` 24) (vkFramebuffer (poked :: VkRenderPassBeginInfo))-                *> poke (ptr `plusPtr` 32) (vkRenderArea (poked :: VkRenderPassBeginInfo))-                *> poke (ptr `plusPtr` 48) (vkClearValueCount (poked :: VkRenderPassBeginInfo))-                *> poke (ptr `plusPtr` 56) (vkPClearValues (poked :: VkRenderPassBeginInfo))----- ** vkCmdSetStencilCompareMask-foreign import ccall "vkCmdSetStencilCompareMask" vkCmdSetStencilCompareMask ::-  VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()---data VkImageBlit =-  VkImageBlit{ vkSrcSubresource :: VkImageSubresourceLayers -             , vkSrcOffsets :: Vector 2 VkOffset3D -             , vkDstSubresource :: VkImageSubresourceLayers -             , vkDstOffsets :: Vector 2 VkOffset3D -             }-  deriving (Eq)--instance Storable VkImageBlit where-  sizeOf ~_ = 80-  alignment ~_ = 4-  peek ptr = VkImageBlit <$> peek (ptr `plusPtr` 0)-                         <*> peek (ptr `plusPtr` 16)-                         <*> peek (ptr `plusPtr` 40)-                         <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageBlit))-                *> poke (ptr `plusPtr` 16) (vkSrcOffsets (poked :: VkImageBlit))-                *> poke (ptr `plusPtr` 40) (vkDstSubresource (poked :: VkImageBlit))-                *> poke (ptr `plusPtr` 56) (vkDstOffsets (poked :: VkImageBlit))----data VkClearAttachment =-  VkClearAttachment{ vkAspectMask :: VkImageAspectFlags -                   , vkColorAttachment :: Word32 -                   , vkClearValue :: VkClearValue -                   }-  deriving (Eq)--instance Storable VkClearAttachment where-  sizeOf ~_ = 24-  alignment ~_ = 4-  peek ptr = VkClearAttachment <$> peek (ptr `plusPtr` 0)-                               <*> peek (ptr `plusPtr` 4)-                               <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkClearAttachment))-                *> poke (ptr `plusPtr` 4) (vkColorAttachment (poked :: VkClearAttachment))-                *> poke (ptr `plusPtr` 8) (vkClearValue (poked :: VkClearAttachment))----- | // Union allowing specification of color or depth and stencil values. Actual value selected is based on attachment being cleared.-data VkClearValue = VkColor VkClearColorValue -                  | VkDepthStencil VkClearDepthStencilValue -  deriving (Eq)---- | _Note_: peek is undefined as we wouldn't know which constructor to use-instance Storable VkClearValue where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek ~_ = error "peek@VkClearValue"-  poke ptr poked = case poked of-                     VkColor e -> poke (castPtr ptr) e-                     VkDepthStencil e -> poke (castPtr ptr) e----- ** VkStencilFaceFlags--newtype VkStencilFaceFlagBits = VkStencilFaceFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkStencilFaceFlagBits-type VkStencilFaceFlags = VkStencilFaceFlagBits--instance Show VkStencilFaceFlagBits where-  showsPrec _ VK_STENCIL_FACE_FRONT_BIT = showString "VK_STENCIL_FACE_FRONT_BIT"-  showsPrec _ VK_STENCIL_FACE_BACK_BIT = showString "VK_STENCIL_FACE_BACK_BIT"-  showsPrec _ VK_STENCIL_FRONT_AND_BACK = showString "VK_STENCIL_FRONT_AND_BACK"-  showsPrec p (VkStencilFaceFlagBits x) = showParen (p >= 11) (showString "VkStencilFaceFlagBits " . showsPrec 11 x)--instance Read VkStencilFaceFlagBits where-  readPrec = parens ( choose [ ("VK_STENCIL_FACE_FRONT_BIT", pure VK_STENCIL_FACE_FRONT_BIT)-                             , ("VK_STENCIL_FACE_BACK_BIT", pure VK_STENCIL_FACE_BACK_BIT)-                             , ("VK_STENCIL_FRONT_AND_BACK", pure VK_STENCIL_FRONT_AND_BACK)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkStencilFaceFlagBits")-                        v <- step readPrec-                        pure (VkStencilFaceFlagBits v)-                        )-                    )---- | Front face-pattern VK_STENCIL_FACE_FRONT_BIT = VkStencilFaceFlagBits 0x1--- | Back face-pattern VK_STENCIL_FACE_BACK_BIT = VkStencilFaceFlagBits 0x2--- | Front and back faces-pattern VK_STENCIL_FRONT_AND_BACK = VkStencilFaceFlagBits 0x3---- | // Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.-data VkClearColorValue = VkFloat32 (Vector 4 CFloat) -                       | VkInt32 (Vector 4 Int32) -                       | VkUint32 (Vector 4 Word32) -  deriving (Eq)---- | _Note_: peek is undefined as we wouldn't know which constructor to use-instance Storable VkClearColorValue where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek ~_ = error "peek@VkClearColorValue"-  poke ptr poked = case poked of-                     VkFloat32 e -> poke (castPtr ptr) e-                     VkInt32 e -> poke (castPtr ptr) e-                     VkUint32 e -> poke (castPtr ptr) e----- ** VkSubpassContents--newtype VkSubpassContents = VkSubpassContents Int32-  deriving (Eq, Storable)--instance Show VkSubpassContents where-  showsPrec _ VK_SUBPASS_CONTENTS_INLINE = showString "VK_SUBPASS_CONTENTS_INLINE"-  showsPrec _ VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = showString "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS"-  showsPrec p (VkSubpassContents x) = showParen (p >= 11) (showString "VkSubpassContents " . showsPrec 11 x)--instance Read VkSubpassContents where-  readPrec = parens ( choose [ ("VK_SUBPASS_CONTENTS_INLINE", pure VK_SUBPASS_CONTENTS_INLINE)-                             , ("VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS", pure VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSubpassContents")-                        v <- step readPrec-                        pure (VkSubpassContents v)-                        )-                    )---pattern VK_SUBPASS_CONTENTS_INLINE = VkSubpassContents 0--pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = VkSubpassContents 1---- ** vkCmdCopyQueryPoolResults-foreign import ccall "vkCmdCopyQueryPoolResults" vkCmdCopyQueryPoolResults ::-  VkCommandBuffer ->-  VkQueryPool ->-    Word32 ->-      Word32 ->-        VkBuffer ->-          VkDeviceSize -> VkDeviceSize -> VkQueryResultFlags -> IO ()---- ** vkCmdBlitImage-foreign import ccall "vkCmdBlitImage" vkCmdBlitImage ::-  VkCommandBuffer ->-  VkImage ->-    VkImageLayout ->-      VkImage ->-        VkImageLayout -> Word32 -> Ptr VkImageBlit -> VkFilter -> IO ()---- ** vkCmdSetBlendConstants-foreign import ccall "vkCmdSetBlendConstants" vkCmdSetBlendConstants ::-  VkCommandBuffer -> Ptr CFloat -> IO ()---- ** vkCmdClearDepthStencilImage-foreign import ccall "vkCmdClearDepthStencilImage" vkCmdClearDepthStencilImage ::-  VkCommandBuffer ->-  VkImage ->-    VkImageLayout ->-      Ptr VkClearDepthStencilValue ->-        Word32 -> Ptr VkImageSubresourceRange -> IO ()---data VkImageResolve =-  VkImageResolve{ vkSrcSubresource :: VkImageSubresourceLayers -                , vkSrcOffset :: VkOffset3D -                , vkDstSubresource :: VkImageSubresourceLayers -                , vkDstOffset :: VkOffset3D -                , vkExtent :: VkExtent3D -                }-  deriving (Eq)--instance Storable VkImageResolve where-  sizeOf ~_ = 68-  alignment ~_ = 4-  peek ptr = VkImageResolve <$> peek (ptr `plusPtr` 0)-                            <*> peek (ptr `plusPtr` 16)-                            <*> peek (ptr `plusPtr` 28)-                            <*> peek (ptr `plusPtr` 44)-                            <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageResolve))-                *> poke (ptr `plusPtr` 16) (vkSrcOffset (poked :: VkImageResolve))-                *> poke (ptr `plusPtr` 28) (vkDstSubresource (poked :: VkImageResolve))-                *> poke (ptr `plusPtr` 44) (vkDstOffset (poked :: VkImageResolve))-                *> poke (ptr `plusPtr` 56) (vkExtent (poked :: VkImageResolve))----- ** vkCmdDispatch-foreign import ccall "vkCmdDispatch" vkCmdDispatch ::-  VkCommandBuffer -> Word32 -> Word32 -> Word32 -> IO ()---- ** vkCmdSetStencilReference-foreign import ccall "vkCmdSetStencilReference" vkCmdSetStencilReference ::-  VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()---- ** vkCmdPipelineBarrier-foreign import ccall "vkCmdPipelineBarrier" vkCmdPipelineBarrier ::-  VkCommandBuffer ->-  VkPipelineStageFlags ->-    VkPipelineStageFlags ->-      VkDependencyFlags ->-        Word32 ->-          Ptr VkMemoryBarrier ->-            Word32 ->-              Ptr VkBufferMemoryBarrier ->-                Word32 -> Ptr VkImageMemoryBarrier -> IO ()---- ** vkCmdBeginRenderPass-foreign import ccall "vkCmdBeginRenderPass" vkCmdBeginRenderPass ::-  VkCommandBuffer ->-  Ptr VkRenderPassBeginInfo -> VkSubpassContents -> IO ()---- ** vkCmdResetEvent-foreign import ccall "vkCmdResetEvent" vkCmdResetEvent ::-  VkCommandBuffer -> VkEvent -> VkPipelineStageFlags -> IO ()-
− src/Graphics/Vulkan/CommandPool.hs
@@ -1,146 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.CommandPool where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---data VkCommandPoolCreateInfo =-  VkCommandPoolCreateInfo{ vkSType :: VkStructureType -                         , vkPNext :: Ptr Void -                         , vkFlags :: VkCommandPoolCreateFlags -                         , vkQueueFamilyIndex :: Word32 -                         }-  deriving (Eq)--instance Storable VkCommandPoolCreateInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkCommandPoolCreateInfo <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 8)-                                     <*> peek (ptr `plusPtr` 16)-                                     <*> peek (ptr `plusPtr` 20)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandPoolCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandPoolCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkCommandPoolCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkQueueFamilyIndex (poked :: VkCommandPoolCreateInfo))----- ** vkDestroyCommandPool-foreign import ccall "vkDestroyCommandPool" vkDestroyCommandPool ::-  VkDevice -> VkCommandPool -> Ptr VkAllocationCallbacks -> IO ()---- ** vkResetCommandPool-foreign import ccall "vkResetCommandPool" vkResetCommandPool ::-  VkDevice -> VkCommandPool -> VkCommandPoolResetFlags -> IO VkResult---- ** VkCommandPoolCreateFlags--newtype VkCommandPoolCreateFlagBits = VkCommandPoolCreateFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkCommandPoolCreateFlagBits-type VkCommandPoolCreateFlags = VkCommandPoolCreateFlagBits--instance Show VkCommandPoolCreateFlagBits where-  showsPrec _ VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = showString "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"-  showsPrec _ VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = showString "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"-  -  showsPrec p (VkCommandPoolCreateFlagBits x) = showParen (p >= 11) (showString "VkCommandPoolCreateFlagBits " . showsPrec 11 x)--instance Read VkCommandPoolCreateFlagBits where-  readPrec = parens ( choose [ ("VK_COMMAND_POOL_CREATE_TRANSIENT_BIT", pure VK_COMMAND_POOL_CREATE_TRANSIENT_BIT)-                             , ("VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT", pure VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkCommandPoolCreateFlagBits")-                        v <- step readPrec-                        pure (VkCommandPoolCreateFlagBits v)-                        )-                    )---- | Command buffers have a short lifetime-pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = VkCommandPoolCreateFlagBits 0x1--- | Command buffers may release their memory individually-pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = VkCommandPoolCreateFlagBits 0x2----- ** vkCreateCommandPool-foreign import ccall "vkCreateCommandPool" vkCreateCommandPool ::-  VkDevice ->-  Ptr VkCommandPoolCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkCommandPool -> IO VkResult---- ** VkCommandPoolResetFlags--newtype VkCommandPoolResetFlagBits = VkCommandPoolResetFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkCommandPoolResetFlagBits-type VkCommandPoolResetFlags = VkCommandPoolResetFlagBits--instance Show VkCommandPoolResetFlagBits where-  showsPrec _ VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = showString "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"-  -  showsPrec p (VkCommandPoolResetFlagBits x) = showParen (p >= 11) (showString "VkCommandPoolResetFlagBits " . showsPrec 11 x)--instance Read VkCommandPoolResetFlagBits where-  readPrec = parens ( choose [ ("VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT", pure VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkCommandPoolResetFlagBits")-                        v <- step readPrec-                        pure (VkCommandPoolResetFlagBits v)-                        )-                    )---- | Release resources owned by the pool-pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = VkCommandPoolResetFlagBits 0x1---newtype VkCommandPool = VkCommandPool Word64-  deriving (Eq, Storable)-
− src/Graphics/Vulkan/Constants.hs
@@ -1,85 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Constants where--import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Data.Int( Int32-               )-import Foreign.Storable( Storable(..)-                       )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )---pattern VK_SUBPASS_EXTERNAL = 0xffffffff :: Word32--pattern VK_UUID_SIZE = 16-type VK_UUID_SIZE = 16--pattern VK_REMAINING_MIP_LEVELS = 0xffffffff :: Word32--pattern VK_LOD_CLAMP_NONE = 1000.0--pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256-type VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256--pattern VK_ATTACHMENT_UNUSED = 0xffffffff :: Word32--pattern VK_MAX_MEMORY_TYPES = 32-type VK_MAX_MEMORY_TYPES = 32--pattern VK_WHOLE_SIZE = 0xffffffffffffffff :: Word64--pattern VK_REMAINING_ARRAY_LAYERS = 0xffffffff :: Word32--pattern VK_QUEUE_FAMILY_IGNORED = 0xffffffff :: Word32--pattern VK_MAX_MEMORY_HEAPS = 16-type VK_MAX_MEMORY_HEAPS = 16--pattern VK_FALSE = 0-type VK_FALSE = 0--- ** VkPipelineCacheHeaderVersion--newtype VkPipelineCacheHeaderVersion = VkPipelineCacheHeaderVersion Int32-  deriving (Eq, Storable)--instance Show VkPipelineCacheHeaderVersion where-  showsPrec _ VK_PIPELINE_CACHE_HEADER_VERSION_ONE = showString "VK_PIPELINE_CACHE_HEADER_VERSION_ONE"-  showsPrec p (VkPipelineCacheHeaderVersion x) = showParen (p >= 11) (showString "VkPipelineCacheHeaderVersion " . showsPrec 11 x)--instance Read VkPipelineCacheHeaderVersion where-  readPrec = parens ( choose [ ("VK_PIPELINE_CACHE_HEADER_VERSION_ONE", pure VK_PIPELINE_CACHE_HEADER_VERSION_ONE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkPipelineCacheHeaderVersion")-                        v <- step readPrec-                        pure (VkPipelineCacheHeaderVersion v)-                        )-                    )---pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE = VkPipelineCacheHeaderVersion 1---pattern VK_MAX_EXTENSION_NAME_SIZE = 256-type VK_MAX_EXTENSION_NAME_SIZE = 256--pattern VK_MAX_DESCRIPTION_SIZE = 256-type VK_MAX_DESCRIPTION_SIZE = 256--pattern VK_TRUE = 1-type VK_TRUE = 1
− src/Graphics/Vulkan/Core.hs
@@ -1,1253 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Core where--import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( plusPtr-                  )-import Data.Int( Int32-               )-import Foreign.Storable( Storable(..)-                       )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Foreign.C.Types( CFloat-                      , CFloat(..)-                      )--newtype VkDeviceSize = VkDeviceSize Word64-  deriving (Eq, Storable)---- ** VkFormat--- | Vulkan format definitions-newtype VkFormat = VkFormat Int32-  deriving (Eq, Storable)--instance Show VkFormat where-  showsPrec _ VK_FORMAT_UNDEFINED = showString "VK_FORMAT_UNDEFINED"-  showsPrec _ VK_FORMAT_R4G4_UNORM_PACK8 = showString "VK_FORMAT_R4G4_UNORM_PACK8"-  showsPrec _ VK_FORMAT_R4G4B4A4_UNORM_PACK16 = showString "VK_FORMAT_R4G4B4A4_UNORM_PACK16"-  showsPrec _ VK_FORMAT_B4G4R4A4_UNORM_PACK16 = showString "VK_FORMAT_B4G4R4A4_UNORM_PACK16"-  showsPrec _ VK_FORMAT_R5G6B5_UNORM_PACK16 = showString "VK_FORMAT_R5G6B5_UNORM_PACK16"-  showsPrec _ VK_FORMAT_B5G6R5_UNORM_PACK16 = showString "VK_FORMAT_B5G6R5_UNORM_PACK16"-  showsPrec _ VK_FORMAT_R5G5B5A1_UNORM_PACK16 = showString "VK_FORMAT_R5G5B5A1_UNORM_PACK16"-  showsPrec _ VK_FORMAT_B5G5R5A1_UNORM_PACK16 = showString "VK_FORMAT_B5G5R5A1_UNORM_PACK16"-  showsPrec _ VK_FORMAT_A1R5G5B5_UNORM_PACK16 = showString "VK_FORMAT_A1R5G5B5_UNORM_PACK16"-  showsPrec _ VK_FORMAT_R8_UNORM = showString "VK_FORMAT_R8_UNORM"-  showsPrec _ VK_FORMAT_R8_SNORM = showString "VK_FORMAT_R8_SNORM"-  showsPrec _ VK_FORMAT_R8_USCALED = showString "VK_FORMAT_R8_USCALED"-  showsPrec _ VK_FORMAT_R8_SSCALED = showString "VK_FORMAT_R8_SSCALED"-  showsPrec _ VK_FORMAT_R8_UINT = showString "VK_FORMAT_R8_UINT"-  showsPrec _ VK_FORMAT_R8_SINT = showString "VK_FORMAT_R8_SINT"-  showsPrec _ VK_FORMAT_R8_SRGB = showString "VK_FORMAT_R8_SRGB"-  showsPrec _ VK_FORMAT_R8G8_UNORM = showString "VK_FORMAT_R8G8_UNORM"-  showsPrec _ VK_FORMAT_R8G8_SNORM = showString "VK_FORMAT_R8G8_SNORM"-  showsPrec _ VK_FORMAT_R8G8_USCALED = showString "VK_FORMAT_R8G8_USCALED"-  showsPrec _ VK_FORMAT_R8G8_SSCALED = showString "VK_FORMAT_R8G8_SSCALED"-  showsPrec _ VK_FORMAT_R8G8_UINT = showString "VK_FORMAT_R8G8_UINT"-  showsPrec _ VK_FORMAT_R8G8_SINT = showString "VK_FORMAT_R8G8_SINT"-  showsPrec _ VK_FORMAT_R8G8_SRGB = showString "VK_FORMAT_R8G8_SRGB"-  showsPrec _ VK_FORMAT_R8G8B8_UNORM = showString "VK_FORMAT_R8G8B8_UNORM"-  showsPrec _ VK_FORMAT_R8G8B8_SNORM = showString "VK_FORMAT_R8G8B8_SNORM"-  showsPrec _ VK_FORMAT_R8G8B8_USCALED = showString "VK_FORMAT_R8G8B8_USCALED"-  showsPrec _ VK_FORMAT_R8G8B8_SSCALED = showString "VK_FORMAT_R8G8B8_SSCALED"-  showsPrec _ VK_FORMAT_R8G8B8_UINT = showString "VK_FORMAT_R8G8B8_UINT"-  showsPrec _ VK_FORMAT_R8G8B8_SINT = showString "VK_FORMAT_R8G8B8_SINT"-  showsPrec _ VK_FORMAT_R8G8B8_SRGB = showString "VK_FORMAT_R8G8B8_SRGB"-  showsPrec _ VK_FORMAT_B8G8R8_UNORM = showString "VK_FORMAT_B8G8R8_UNORM"-  showsPrec _ VK_FORMAT_B8G8R8_SNORM = showString "VK_FORMAT_B8G8R8_SNORM"-  showsPrec _ VK_FORMAT_B8G8R8_USCALED = showString "VK_FORMAT_B8G8R8_USCALED"-  showsPrec _ VK_FORMAT_B8G8R8_SSCALED = showString "VK_FORMAT_B8G8R8_SSCALED"-  showsPrec _ VK_FORMAT_B8G8R8_UINT = showString "VK_FORMAT_B8G8R8_UINT"-  showsPrec _ VK_FORMAT_B8G8R8_SINT = showString "VK_FORMAT_B8G8R8_SINT"-  showsPrec _ VK_FORMAT_B8G8R8_SRGB = showString "VK_FORMAT_B8G8R8_SRGB"-  showsPrec _ VK_FORMAT_R8G8B8A8_UNORM = showString "VK_FORMAT_R8G8B8A8_UNORM"-  showsPrec _ VK_FORMAT_R8G8B8A8_SNORM = showString "VK_FORMAT_R8G8B8A8_SNORM"-  showsPrec _ VK_FORMAT_R8G8B8A8_USCALED = showString "VK_FORMAT_R8G8B8A8_USCALED"-  showsPrec _ VK_FORMAT_R8G8B8A8_SSCALED = showString "VK_FORMAT_R8G8B8A8_SSCALED"-  showsPrec _ VK_FORMAT_R8G8B8A8_UINT = showString "VK_FORMAT_R8G8B8A8_UINT"-  showsPrec _ VK_FORMAT_R8G8B8A8_SINT = showString "VK_FORMAT_R8G8B8A8_SINT"-  showsPrec _ VK_FORMAT_R8G8B8A8_SRGB = showString "VK_FORMAT_R8G8B8A8_SRGB"-  showsPrec _ VK_FORMAT_B8G8R8A8_UNORM = showString "VK_FORMAT_B8G8R8A8_UNORM"-  showsPrec _ VK_FORMAT_B8G8R8A8_SNORM = showString "VK_FORMAT_B8G8R8A8_SNORM"-  showsPrec _ VK_FORMAT_B8G8R8A8_USCALED = showString "VK_FORMAT_B8G8R8A8_USCALED"-  showsPrec _ VK_FORMAT_B8G8R8A8_SSCALED = showString "VK_FORMAT_B8G8R8A8_SSCALED"-  showsPrec _ VK_FORMAT_B8G8R8A8_UINT = showString "VK_FORMAT_B8G8R8A8_UINT"-  showsPrec _ VK_FORMAT_B8G8R8A8_SINT = showString "VK_FORMAT_B8G8R8A8_SINT"-  showsPrec _ VK_FORMAT_B8G8R8A8_SRGB = showString "VK_FORMAT_B8G8R8A8_SRGB"-  showsPrec _ VK_FORMAT_A8B8G8R8_UNORM_PACK32 = showString "VK_FORMAT_A8B8G8R8_UNORM_PACK32"-  showsPrec _ VK_FORMAT_A8B8G8R8_SNORM_PACK32 = showString "VK_FORMAT_A8B8G8R8_SNORM_PACK32"-  showsPrec _ VK_FORMAT_A8B8G8R8_USCALED_PACK32 = showString "VK_FORMAT_A8B8G8R8_USCALED_PACK32"-  showsPrec _ VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = showString "VK_FORMAT_A8B8G8R8_SSCALED_PACK32"-  showsPrec _ VK_FORMAT_A8B8G8R8_UINT_PACK32 = showString "VK_FORMAT_A8B8G8R8_UINT_PACK32"-  showsPrec _ VK_FORMAT_A8B8G8R8_SINT_PACK32 = showString "VK_FORMAT_A8B8G8R8_SINT_PACK32"-  showsPrec _ VK_FORMAT_A8B8G8R8_SRGB_PACK32 = showString "VK_FORMAT_A8B8G8R8_SRGB_PACK32"-  showsPrec _ VK_FORMAT_A2R10G10B10_UNORM_PACK32 = showString "VK_FORMAT_A2R10G10B10_UNORM_PACK32"-  showsPrec _ VK_FORMAT_A2R10G10B10_SNORM_PACK32 = showString "VK_FORMAT_A2R10G10B10_SNORM_PACK32"-  showsPrec _ VK_FORMAT_A2R10G10B10_USCALED_PACK32 = showString "VK_FORMAT_A2R10G10B10_USCALED_PACK32"-  showsPrec _ VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = showString "VK_FORMAT_A2R10G10B10_SSCALED_PACK32"-  showsPrec _ VK_FORMAT_A2R10G10B10_UINT_PACK32 = showString "VK_FORMAT_A2R10G10B10_UINT_PACK32"-  showsPrec _ VK_FORMAT_A2R10G10B10_SINT_PACK32 = showString "VK_FORMAT_A2R10G10B10_SINT_PACK32"-  showsPrec _ VK_FORMAT_A2B10G10R10_UNORM_PACK32 = showString "VK_FORMAT_A2B10G10R10_UNORM_PACK32"-  showsPrec _ VK_FORMAT_A2B10G10R10_SNORM_PACK32 = showString "VK_FORMAT_A2B10G10R10_SNORM_PACK32"-  showsPrec _ VK_FORMAT_A2B10G10R10_USCALED_PACK32 = showString "VK_FORMAT_A2B10G10R10_USCALED_PACK32"-  showsPrec _ VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = showString "VK_FORMAT_A2B10G10R10_SSCALED_PACK32"-  showsPrec _ VK_FORMAT_A2B10G10R10_UINT_PACK32 = showString "VK_FORMAT_A2B10G10R10_UINT_PACK32"-  showsPrec _ VK_FORMAT_A2B10G10R10_SINT_PACK32 = showString "VK_FORMAT_A2B10G10R10_SINT_PACK32"-  showsPrec _ VK_FORMAT_R16_UNORM = showString "VK_FORMAT_R16_UNORM"-  showsPrec _ VK_FORMAT_R16_SNORM = showString "VK_FORMAT_R16_SNORM"-  showsPrec _ VK_FORMAT_R16_USCALED = showString "VK_FORMAT_R16_USCALED"-  showsPrec _ VK_FORMAT_R16_SSCALED = showString "VK_FORMAT_R16_SSCALED"-  showsPrec _ VK_FORMAT_R16_UINT = showString "VK_FORMAT_R16_UINT"-  showsPrec _ VK_FORMAT_R16_SINT = showString "VK_FORMAT_R16_SINT"-  showsPrec _ VK_FORMAT_R16_SFLOAT = showString "VK_FORMAT_R16_SFLOAT"-  showsPrec _ VK_FORMAT_R16G16_UNORM = showString "VK_FORMAT_R16G16_UNORM"-  showsPrec _ VK_FORMAT_R16G16_SNORM = showString "VK_FORMAT_R16G16_SNORM"-  showsPrec _ VK_FORMAT_R16G16_USCALED = showString "VK_FORMAT_R16G16_USCALED"-  showsPrec _ VK_FORMAT_R16G16_SSCALED = showString "VK_FORMAT_R16G16_SSCALED"-  showsPrec _ VK_FORMAT_R16G16_UINT = showString "VK_FORMAT_R16G16_UINT"-  showsPrec _ VK_FORMAT_R16G16_SINT = showString "VK_FORMAT_R16G16_SINT"-  showsPrec _ VK_FORMAT_R16G16_SFLOAT = showString "VK_FORMAT_R16G16_SFLOAT"-  showsPrec _ VK_FORMAT_R16G16B16_UNORM = showString "VK_FORMAT_R16G16B16_UNORM"-  showsPrec _ VK_FORMAT_R16G16B16_SNORM = showString "VK_FORMAT_R16G16B16_SNORM"-  showsPrec _ VK_FORMAT_R16G16B16_USCALED = showString "VK_FORMAT_R16G16B16_USCALED"-  showsPrec _ VK_FORMAT_R16G16B16_SSCALED = showString "VK_FORMAT_R16G16B16_SSCALED"-  showsPrec _ VK_FORMAT_R16G16B16_UINT = showString "VK_FORMAT_R16G16B16_UINT"-  showsPrec _ VK_FORMAT_R16G16B16_SINT = showString "VK_FORMAT_R16G16B16_SINT"-  showsPrec _ VK_FORMAT_R16G16B16_SFLOAT = showString "VK_FORMAT_R16G16B16_SFLOAT"-  showsPrec _ VK_FORMAT_R16G16B16A16_UNORM = showString "VK_FORMAT_R16G16B16A16_UNORM"-  showsPrec _ VK_FORMAT_R16G16B16A16_SNORM = showString "VK_FORMAT_R16G16B16A16_SNORM"-  showsPrec _ VK_FORMAT_R16G16B16A16_USCALED = showString "VK_FORMAT_R16G16B16A16_USCALED"-  showsPrec _ VK_FORMAT_R16G16B16A16_SSCALED = showString "VK_FORMAT_R16G16B16A16_SSCALED"-  showsPrec _ VK_FORMAT_R16G16B16A16_UINT = showString "VK_FORMAT_R16G16B16A16_UINT"-  showsPrec _ VK_FORMAT_R16G16B16A16_SINT = showString "VK_FORMAT_R16G16B16A16_SINT"-  showsPrec _ VK_FORMAT_R16G16B16A16_SFLOAT = showString "VK_FORMAT_R16G16B16A16_SFLOAT"-  showsPrec _ VK_FORMAT_R32_UINT = showString "VK_FORMAT_R32_UINT"-  showsPrec _ VK_FORMAT_R32_SINT = showString "VK_FORMAT_R32_SINT"-  showsPrec _ VK_FORMAT_R32_SFLOAT = showString "VK_FORMAT_R32_SFLOAT"-  showsPrec _ VK_FORMAT_R32G32_UINT = showString "VK_FORMAT_R32G32_UINT"-  showsPrec _ VK_FORMAT_R32G32_SINT = showString "VK_FORMAT_R32G32_SINT"-  showsPrec _ VK_FORMAT_R32G32_SFLOAT = showString "VK_FORMAT_R32G32_SFLOAT"-  showsPrec _ VK_FORMAT_R32G32B32_UINT = showString "VK_FORMAT_R32G32B32_UINT"-  showsPrec _ VK_FORMAT_R32G32B32_SINT = showString "VK_FORMAT_R32G32B32_SINT"-  showsPrec _ VK_FORMAT_R32G32B32_SFLOAT = showString "VK_FORMAT_R32G32B32_SFLOAT"-  showsPrec _ VK_FORMAT_R32G32B32A32_UINT = showString "VK_FORMAT_R32G32B32A32_UINT"-  showsPrec _ VK_FORMAT_R32G32B32A32_SINT = showString "VK_FORMAT_R32G32B32A32_SINT"-  showsPrec _ VK_FORMAT_R32G32B32A32_SFLOAT = showString "VK_FORMAT_R32G32B32A32_SFLOAT"-  showsPrec _ VK_FORMAT_R64_UINT = showString "VK_FORMAT_R64_UINT"-  showsPrec _ VK_FORMAT_R64_SINT = showString "VK_FORMAT_R64_SINT"-  showsPrec _ VK_FORMAT_R64_SFLOAT = showString "VK_FORMAT_R64_SFLOAT"-  showsPrec _ VK_FORMAT_R64G64_UINT = showString "VK_FORMAT_R64G64_UINT"-  showsPrec _ VK_FORMAT_R64G64_SINT = showString "VK_FORMAT_R64G64_SINT"-  showsPrec _ VK_FORMAT_R64G64_SFLOAT = showString "VK_FORMAT_R64G64_SFLOAT"-  showsPrec _ VK_FORMAT_R64G64B64_UINT = showString "VK_FORMAT_R64G64B64_UINT"-  showsPrec _ VK_FORMAT_R64G64B64_SINT = showString "VK_FORMAT_R64G64B64_SINT"-  showsPrec _ VK_FORMAT_R64G64B64_SFLOAT = showString "VK_FORMAT_R64G64B64_SFLOAT"-  showsPrec _ VK_FORMAT_R64G64B64A64_UINT = showString "VK_FORMAT_R64G64B64A64_UINT"-  showsPrec _ VK_FORMAT_R64G64B64A64_SINT = showString "VK_FORMAT_R64G64B64A64_SINT"-  showsPrec _ VK_FORMAT_R64G64B64A64_SFLOAT = showString "VK_FORMAT_R64G64B64A64_SFLOAT"-  showsPrec _ VK_FORMAT_B10G11R11_UFLOAT_PACK32 = showString "VK_FORMAT_B10G11R11_UFLOAT_PACK32"-  showsPrec _ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = showString "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32"-  showsPrec _ VK_FORMAT_D16_UNORM = showString "VK_FORMAT_D16_UNORM"-  showsPrec _ VK_FORMAT_X8_D24_UNORM_PACK32 = showString "VK_FORMAT_X8_D24_UNORM_PACK32"-  showsPrec _ VK_FORMAT_D32_SFLOAT = showString "VK_FORMAT_D32_SFLOAT"-  showsPrec _ VK_FORMAT_S8_UINT = showString "VK_FORMAT_S8_UINT"-  showsPrec _ VK_FORMAT_D16_UNORM_S8_UINT = showString "VK_FORMAT_D16_UNORM_S8_UINT"-  showsPrec _ VK_FORMAT_D24_UNORM_S8_UINT = showString "VK_FORMAT_D24_UNORM_S8_UINT"-  showsPrec _ VK_FORMAT_D32_SFLOAT_S8_UINT = showString "VK_FORMAT_D32_SFLOAT_S8_UINT"-  showsPrec _ VK_FORMAT_BC1_RGB_UNORM_BLOCK = showString "VK_FORMAT_BC1_RGB_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC1_RGB_SRGB_BLOCK = showString "VK_FORMAT_BC1_RGB_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_BC1_RGBA_UNORM_BLOCK = showString "VK_FORMAT_BC1_RGBA_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC1_RGBA_SRGB_BLOCK = showString "VK_FORMAT_BC1_RGBA_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_BC2_UNORM_BLOCK = showString "VK_FORMAT_BC2_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC2_SRGB_BLOCK = showString "VK_FORMAT_BC2_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_BC3_UNORM_BLOCK = showString "VK_FORMAT_BC3_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC3_SRGB_BLOCK = showString "VK_FORMAT_BC3_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_BC4_UNORM_BLOCK = showString "VK_FORMAT_BC4_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC4_SNORM_BLOCK = showString "VK_FORMAT_BC4_SNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC5_UNORM_BLOCK = showString "VK_FORMAT_BC5_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC5_SNORM_BLOCK = showString "VK_FORMAT_BC5_SNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC6H_UFLOAT_BLOCK = showString "VK_FORMAT_BC6H_UFLOAT_BLOCK"-  showsPrec _ VK_FORMAT_BC6H_SFLOAT_BLOCK = showString "VK_FORMAT_BC6H_SFLOAT_BLOCK"-  showsPrec _ VK_FORMAT_BC7_UNORM_BLOCK = showString "VK_FORMAT_BC7_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_BC7_SRGB_BLOCK = showString "VK_FORMAT_BC7_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_EAC_R11_UNORM_BLOCK = showString "VK_FORMAT_EAC_R11_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_EAC_R11_SNORM_BLOCK = showString "VK_FORMAT_EAC_R11_SNORM_BLOCK"-  showsPrec _ VK_FORMAT_EAC_R11G11_UNORM_BLOCK = showString "VK_FORMAT_EAC_R11G11_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_EAC_R11G11_SNORM_BLOCK = showString "VK_FORMAT_EAC_R11G11_SNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_4x4_UNORM_BLOCK = showString "VK_FORMAT_ASTC_4x4_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_4x4_SRGB_BLOCK = showString "VK_FORMAT_ASTC_4x4_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_5x4_UNORM_BLOCK = showString "VK_FORMAT_ASTC_5x4_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_5x4_SRGB_BLOCK = showString "VK_FORMAT_ASTC_5x4_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_5x5_UNORM_BLOCK = showString "VK_FORMAT_ASTC_5x5_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_5x5_SRGB_BLOCK = showString "VK_FORMAT_ASTC_5x5_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_6x5_UNORM_BLOCK = showString "VK_FORMAT_ASTC_6x5_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_6x5_SRGB_BLOCK = showString "VK_FORMAT_ASTC_6x5_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_6x6_UNORM_BLOCK = showString "VK_FORMAT_ASTC_6x6_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_6x6_SRGB_BLOCK = showString "VK_FORMAT_ASTC_6x6_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_8x5_UNORM_BLOCK = showString "VK_FORMAT_ASTC_8x5_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_8x5_SRGB_BLOCK = showString "VK_FORMAT_ASTC_8x5_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_8x6_UNORM_BLOCK = showString "VK_FORMAT_ASTC_8x6_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_8x6_SRGB_BLOCK = showString "VK_FORMAT_ASTC_8x6_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_8x8_UNORM_BLOCK = showString "VK_FORMAT_ASTC_8x8_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_8x8_SRGB_BLOCK = showString "VK_FORMAT_ASTC_8x8_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_10x5_UNORM_BLOCK = showString "VK_FORMAT_ASTC_10x5_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_10x5_SRGB_BLOCK = showString "VK_FORMAT_ASTC_10x5_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_10x6_UNORM_BLOCK = showString "VK_FORMAT_ASTC_10x6_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_10x6_SRGB_BLOCK = showString "VK_FORMAT_ASTC_10x6_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_10x8_UNORM_BLOCK = showString "VK_FORMAT_ASTC_10x8_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_10x8_SRGB_BLOCK = showString "VK_FORMAT_ASTC_10x8_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_10x10_UNORM_BLOCK = showString "VK_FORMAT_ASTC_10x10_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_10x10_SRGB_BLOCK = showString "VK_FORMAT_ASTC_10x10_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_12x10_UNORM_BLOCK = showString "VK_FORMAT_ASTC_12x10_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_12x10_SRGB_BLOCK = showString "VK_FORMAT_ASTC_12x10_SRGB_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_12x12_UNORM_BLOCK = showString "VK_FORMAT_ASTC_12x12_UNORM_BLOCK"-  showsPrec _ VK_FORMAT_ASTC_12x12_SRGB_BLOCK = showString "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"-  showsPrec p (VkFormat x) = showParen (p >= 11) (showString "VkFormat " . showsPrec 11 x)--instance Read VkFormat where-  readPrec = parens ( choose [ ("VK_FORMAT_UNDEFINED", pure VK_FORMAT_UNDEFINED)-                             , ("VK_FORMAT_R4G4_UNORM_PACK8", pure VK_FORMAT_R4G4_UNORM_PACK8)-                             , ("VK_FORMAT_R4G4B4A4_UNORM_PACK16", pure VK_FORMAT_R4G4B4A4_UNORM_PACK16)-                             , ("VK_FORMAT_B4G4R4A4_UNORM_PACK16", pure VK_FORMAT_B4G4R4A4_UNORM_PACK16)-                             , ("VK_FORMAT_R5G6B5_UNORM_PACK16", pure VK_FORMAT_R5G6B5_UNORM_PACK16)-                             , ("VK_FORMAT_B5G6R5_UNORM_PACK16", pure VK_FORMAT_B5G6R5_UNORM_PACK16)-                             , ("VK_FORMAT_R5G5B5A1_UNORM_PACK16", pure VK_FORMAT_R5G5B5A1_UNORM_PACK16)-                             , ("VK_FORMAT_B5G5R5A1_UNORM_PACK16", pure VK_FORMAT_B5G5R5A1_UNORM_PACK16)-                             , ("VK_FORMAT_A1R5G5B5_UNORM_PACK16", pure VK_FORMAT_A1R5G5B5_UNORM_PACK16)-                             , ("VK_FORMAT_R8_UNORM", pure VK_FORMAT_R8_UNORM)-                             , ("VK_FORMAT_R8_SNORM", pure VK_FORMAT_R8_SNORM)-                             , ("VK_FORMAT_R8_USCALED", pure VK_FORMAT_R8_USCALED)-                             , ("VK_FORMAT_R8_SSCALED", pure VK_FORMAT_R8_SSCALED)-                             , ("VK_FORMAT_R8_UINT", pure VK_FORMAT_R8_UINT)-                             , ("VK_FORMAT_R8_SINT", pure VK_FORMAT_R8_SINT)-                             , ("VK_FORMAT_R8_SRGB", pure VK_FORMAT_R8_SRGB)-                             , ("VK_FORMAT_R8G8_UNORM", pure VK_FORMAT_R8G8_UNORM)-                             , ("VK_FORMAT_R8G8_SNORM", pure VK_FORMAT_R8G8_SNORM)-                             , ("VK_FORMAT_R8G8_USCALED", pure VK_FORMAT_R8G8_USCALED)-                             , ("VK_FORMAT_R8G8_SSCALED", pure VK_FORMAT_R8G8_SSCALED)-                             , ("VK_FORMAT_R8G8_UINT", pure VK_FORMAT_R8G8_UINT)-                             , ("VK_FORMAT_R8G8_SINT", pure VK_FORMAT_R8G8_SINT)-                             , ("VK_FORMAT_R8G8_SRGB", pure VK_FORMAT_R8G8_SRGB)-                             , ("VK_FORMAT_R8G8B8_UNORM", pure VK_FORMAT_R8G8B8_UNORM)-                             , ("VK_FORMAT_R8G8B8_SNORM", pure VK_FORMAT_R8G8B8_SNORM)-                             , ("VK_FORMAT_R8G8B8_USCALED", pure VK_FORMAT_R8G8B8_USCALED)-                             , ("VK_FORMAT_R8G8B8_SSCALED", pure VK_FORMAT_R8G8B8_SSCALED)-                             , ("VK_FORMAT_R8G8B8_UINT", pure VK_FORMAT_R8G8B8_UINT)-                             , ("VK_FORMAT_R8G8B8_SINT", pure VK_FORMAT_R8G8B8_SINT)-                             , ("VK_FORMAT_R8G8B8_SRGB", pure VK_FORMAT_R8G8B8_SRGB)-                             , ("VK_FORMAT_B8G8R8_UNORM", pure VK_FORMAT_B8G8R8_UNORM)-                             , ("VK_FORMAT_B8G8R8_SNORM", pure VK_FORMAT_B8G8R8_SNORM)-                             , ("VK_FORMAT_B8G8R8_USCALED", pure VK_FORMAT_B8G8R8_USCALED)-                             , ("VK_FORMAT_B8G8R8_SSCALED", pure VK_FORMAT_B8G8R8_SSCALED)-                             , ("VK_FORMAT_B8G8R8_UINT", pure VK_FORMAT_B8G8R8_UINT)-                             , ("VK_FORMAT_B8G8R8_SINT", pure VK_FORMAT_B8G8R8_SINT)-                             , ("VK_FORMAT_B8G8R8_SRGB", pure VK_FORMAT_B8G8R8_SRGB)-                             , ("VK_FORMAT_R8G8B8A8_UNORM", pure VK_FORMAT_R8G8B8A8_UNORM)-                             , ("VK_FORMAT_R8G8B8A8_SNORM", pure VK_FORMAT_R8G8B8A8_SNORM)-                             , ("VK_FORMAT_R8G8B8A8_USCALED", pure VK_FORMAT_R8G8B8A8_USCALED)-                             , ("VK_FORMAT_R8G8B8A8_SSCALED", pure VK_FORMAT_R8G8B8A8_SSCALED)-                             , ("VK_FORMAT_R8G8B8A8_UINT", pure VK_FORMAT_R8G8B8A8_UINT)-                             , ("VK_FORMAT_R8G8B8A8_SINT", pure VK_FORMAT_R8G8B8A8_SINT)-                             , ("VK_FORMAT_R8G8B8A8_SRGB", pure VK_FORMAT_R8G8B8A8_SRGB)-                             , ("VK_FORMAT_B8G8R8A8_UNORM", pure VK_FORMAT_B8G8R8A8_UNORM)-                             , ("VK_FORMAT_B8G8R8A8_SNORM", pure VK_FORMAT_B8G8R8A8_SNORM)-                             , ("VK_FORMAT_B8G8R8A8_USCALED", pure VK_FORMAT_B8G8R8A8_USCALED)-                             , ("VK_FORMAT_B8G8R8A8_SSCALED", pure VK_FORMAT_B8G8R8A8_SSCALED)-                             , ("VK_FORMAT_B8G8R8A8_UINT", pure VK_FORMAT_B8G8R8A8_UINT)-                             , ("VK_FORMAT_B8G8R8A8_SINT", pure VK_FORMAT_B8G8R8A8_SINT)-                             , ("VK_FORMAT_B8G8R8A8_SRGB", pure VK_FORMAT_B8G8R8A8_SRGB)-                             , ("VK_FORMAT_A8B8G8R8_UNORM_PACK32", pure VK_FORMAT_A8B8G8R8_UNORM_PACK32)-                             , ("VK_FORMAT_A8B8G8R8_SNORM_PACK32", pure VK_FORMAT_A8B8G8R8_SNORM_PACK32)-                             , ("VK_FORMAT_A8B8G8R8_USCALED_PACK32", pure VK_FORMAT_A8B8G8R8_USCALED_PACK32)-                             , ("VK_FORMAT_A8B8G8R8_SSCALED_PACK32", pure VK_FORMAT_A8B8G8R8_SSCALED_PACK32)-                             , ("VK_FORMAT_A8B8G8R8_UINT_PACK32", pure VK_FORMAT_A8B8G8R8_UINT_PACK32)-                             , ("VK_FORMAT_A8B8G8R8_SINT_PACK32", pure VK_FORMAT_A8B8G8R8_SINT_PACK32)-                             , ("VK_FORMAT_A8B8G8R8_SRGB_PACK32", pure VK_FORMAT_A8B8G8R8_SRGB_PACK32)-                             , ("VK_FORMAT_A2R10G10B10_UNORM_PACK32", pure VK_FORMAT_A2R10G10B10_UNORM_PACK32)-                             , ("VK_FORMAT_A2R10G10B10_SNORM_PACK32", pure VK_FORMAT_A2R10G10B10_SNORM_PACK32)-                             , ("VK_FORMAT_A2R10G10B10_USCALED_PACK32", pure VK_FORMAT_A2R10G10B10_USCALED_PACK32)-                             , ("VK_FORMAT_A2R10G10B10_SSCALED_PACK32", pure VK_FORMAT_A2R10G10B10_SSCALED_PACK32)-                             , ("VK_FORMAT_A2R10G10B10_UINT_PACK32", pure VK_FORMAT_A2R10G10B10_UINT_PACK32)-                             , ("VK_FORMAT_A2R10G10B10_SINT_PACK32", pure VK_FORMAT_A2R10G10B10_SINT_PACK32)-                             , ("VK_FORMAT_A2B10G10R10_UNORM_PACK32", pure VK_FORMAT_A2B10G10R10_UNORM_PACK32)-                             , ("VK_FORMAT_A2B10G10R10_SNORM_PACK32", pure VK_FORMAT_A2B10G10R10_SNORM_PACK32)-                             , ("VK_FORMAT_A2B10G10R10_USCALED_PACK32", pure VK_FORMAT_A2B10G10R10_USCALED_PACK32)-                             , ("VK_FORMAT_A2B10G10R10_SSCALED_PACK32", pure VK_FORMAT_A2B10G10R10_SSCALED_PACK32)-                             , ("VK_FORMAT_A2B10G10R10_UINT_PACK32", pure VK_FORMAT_A2B10G10R10_UINT_PACK32)-                             , ("VK_FORMAT_A2B10G10R10_SINT_PACK32", pure VK_FORMAT_A2B10G10R10_SINT_PACK32)-                             , ("VK_FORMAT_R16_UNORM", pure VK_FORMAT_R16_UNORM)-                             , ("VK_FORMAT_R16_SNORM", pure VK_FORMAT_R16_SNORM)-                             , ("VK_FORMAT_R16_USCALED", pure VK_FORMAT_R16_USCALED)-                             , ("VK_FORMAT_R16_SSCALED", pure VK_FORMAT_R16_SSCALED)-                             , ("VK_FORMAT_R16_UINT", pure VK_FORMAT_R16_UINT)-                             , ("VK_FORMAT_R16_SINT", pure VK_FORMAT_R16_SINT)-                             , ("VK_FORMAT_R16_SFLOAT", pure VK_FORMAT_R16_SFLOAT)-                             , ("VK_FORMAT_R16G16_UNORM", pure VK_FORMAT_R16G16_UNORM)-                             , ("VK_FORMAT_R16G16_SNORM", pure VK_FORMAT_R16G16_SNORM)-                             , ("VK_FORMAT_R16G16_USCALED", pure VK_FORMAT_R16G16_USCALED)-                             , ("VK_FORMAT_R16G16_SSCALED", pure VK_FORMAT_R16G16_SSCALED)-                             , ("VK_FORMAT_R16G16_UINT", pure VK_FORMAT_R16G16_UINT)-                             , ("VK_FORMAT_R16G16_SINT", pure VK_FORMAT_R16G16_SINT)-                             , ("VK_FORMAT_R16G16_SFLOAT", pure VK_FORMAT_R16G16_SFLOAT)-                             , ("VK_FORMAT_R16G16B16_UNORM", pure VK_FORMAT_R16G16B16_UNORM)-                             , ("VK_FORMAT_R16G16B16_SNORM", pure VK_FORMAT_R16G16B16_SNORM)-                             , ("VK_FORMAT_R16G16B16_USCALED", pure VK_FORMAT_R16G16B16_USCALED)-                             , ("VK_FORMAT_R16G16B16_SSCALED", pure VK_FORMAT_R16G16B16_SSCALED)-                             , ("VK_FORMAT_R16G16B16_UINT", pure VK_FORMAT_R16G16B16_UINT)-                             , ("VK_FORMAT_R16G16B16_SINT", pure VK_FORMAT_R16G16B16_SINT)-                             , ("VK_FORMAT_R16G16B16_SFLOAT", pure VK_FORMAT_R16G16B16_SFLOAT)-                             , ("VK_FORMAT_R16G16B16A16_UNORM", pure VK_FORMAT_R16G16B16A16_UNORM)-                             , ("VK_FORMAT_R16G16B16A16_SNORM", pure VK_FORMAT_R16G16B16A16_SNORM)-                             , ("VK_FORMAT_R16G16B16A16_USCALED", pure VK_FORMAT_R16G16B16A16_USCALED)-                             , ("VK_FORMAT_R16G16B16A16_SSCALED", pure VK_FORMAT_R16G16B16A16_SSCALED)-                             , ("VK_FORMAT_R16G16B16A16_UINT", pure VK_FORMAT_R16G16B16A16_UINT)-                             , ("VK_FORMAT_R16G16B16A16_SINT", pure VK_FORMAT_R16G16B16A16_SINT)-                             , ("VK_FORMAT_R16G16B16A16_SFLOAT", pure VK_FORMAT_R16G16B16A16_SFLOAT)-                             , ("VK_FORMAT_R32_UINT", pure VK_FORMAT_R32_UINT)-                             , ("VK_FORMAT_R32_SINT", pure VK_FORMAT_R32_SINT)-                             , ("VK_FORMAT_R32_SFLOAT", pure VK_FORMAT_R32_SFLOAT)-                             , ("VK_FORMAT_R32G32_UINT", pure VK_FORMAT_R32G32_UINT)-                             , ("VK_FORMAT_R32G32_SINT", pure VK_FORMAT_R32G32_SINT)-                             , ("VK_FORMAT_R32G32_SFLOAT", pure VK_FORMAT_R32G32_SFLOAT)-                             , ("VK_FORMAT_R32G32B32_UINT", pure VK_FORMAT_R32G32B32_UINT)-                             , ("VK_FORMAT_R32G32B32_SINT", pure VK_FORMAT_R32G32B32_SINT)-                             , ("VK_FORMAT_R32G32B32_SFLOAT", pure VK_FORMAT_R32G32B32_SFLOAT)-                             , ("VK_FORMAT_R32G32B32A32_UINT", pure VK_FORMAT_R32G32B32A32_UINT)-                             , ("VK_FORMAT_R32G32B32A32_SINT", pure VK_FORMAT_R32G32B32A32_SINT)-                             , ("VK_FORMAT_R32G32B32A32_SFLOAT", pure VK_FORMAT_R32G32B32A32_SFLOAT)-                             , ("VK_FORMAT_R64_UINT", pure VK_FORMAT_R64_UINT)-                             , ("VK_FORMAT_R64_SINT", pure VK_FORMAT_R64_SINT)-                             , ("VK_FORMAT_R64_SFLOAT", pure VK_FORMAT_R64_SFLOAT)-                             , ("VK_FORMAT_R64G64_UINT", pure VK_FORMAT_R64G64_UINT)-                             , ("VK_FORMAT_R64G64_SINT", pure VK_FORMAT_R64G64_SINT)-                             , ("VK_FORMAT_R64G64_SFLOAT", pure VK_FORMAT_R64G64_SFLOAT)-                             , ("VK_FORMAT_R64G64B64_UINT", pure VK_FORMAT_R64G64B64_UINT)-                             , ("VK_FORMAT_R64G64B64_SINT", pure VK_FORMAT_R64G64B64_SINT)-                             , ("VK_FORMAT_R64G64B64_SFLOAT", pure VK_FORMAT_R64G64B64_SFLOAT)-                             , ("VK_FORMAT_R64G64B64A64_UINT", pure VK_FORMAT_R64G64B64A64_UINT)-                             , ("VK_FORMAT_R64G64B64A64_SINT", pure VK_FORMAT_R64G64B64A64_SINT)-                             , ("VK_FORMAT_R64G64B64A64_SFLOAT", pure VK_FORMAT_R64G64B64A64_SFLOAT)-                             , ("VK_FORMAT_B10G11R11_UFLOAT_PACK32", pure VK_FORMAT_B10G11R11_UFLOAT_PACK32)-                             , ("VK_FORMAT_E5B9G9R9_UFLOAT_PACK32", pure VK_FORMAT_E5B9G9R9_UFLOAT_PACK32)-                             , ("VK_FORMAT_D16_UNORM", pure VK_FORMAT_D16_UNORM)-                             , ("VK_FORMAT_X8_D24_UNORM_PACK32", pure VK_FORMAT_X8_D24_UNORM_PACK32)-                             , ("VK_FORMAT_D32_SFLOAT", pure VK_FORMAT_D32_SFLOAT)-                             , ("VK_FORMAT_S8_UINT", pure VK_FORMAT_S8_UINT)-                             , ("VK_FORMAT_D16_UNORM_S8_UINT", pure VK_FORMAT_D16_UNORM_S8_UINT)-                             , ("VK_FORMAT_D24_UNORM_S8_UINT", pure VK_FORMAT_D24_UNORM_S8_UINT)-                             , ("VK_FORMAT_D32_SFLOAT_S8_UINT", pure VK_FORMAT_D32_SFLOAT_S8_UINT)-                             , ("VK_FORMAT_BC1_RGB_UNORM_BLOCK", pure VK_FORMAT_BC1_RGB_UNORM_BLOCK)-                             , ("VK_FORMAT_BC1_RGB_SRGB_BLOCK", pure VK_FORMAT_BC1_RGB_SRGB_BLOCK)-                             , ("VK_FORMAT_BC1_RGBA_UNORM_BLOCK", pure VK_FORMAT_BC1_RGBA_UNORM_BLOCK)-                             , ("VK_FORMAT_BC1_RGBA_SRGB_BLOCK", pure VK_FORMAT_BC1_RGBA_SRGB_BLOCK)-                             , ("VK_FORMAT_BC2_UNORM_BLOCK", pure VK_FORMAT_BC2_UNORM_BLOCK)-                             , ("VK_FORMAT_BC2_SRGB_BLOCK", pure VK_FORMAT_BC2_SRGB_BLOCK)-                             , ("VK_FORMAT_BC3_UNORM_BLOCK", pure VK_FORMAT_BC3_UNORM_BLOCK)-                             , ("VK_FORMAT_BC3_SRGB_BLOCK", pure VK_FORMAT_BC3_SRGB_BLOCK)-                             , ("VK_FORMAT_BC4_UNORM_BLOCK", pure VK_FORMAT_BC4_UNORM_BLOCK)-                             , ("VK_FORMAT_BC4_SNORM_BLOCK", pure VK_FORMAT_BC4_SNORM_BLOCK)-                             , ("VK_FORMAT_BC5_UNORM_BLOCK", pure VK_FORMAT_BC5_UNORM_BLOCK)-                             , ("VK_FORMAT_BC5_SNORM_BLOCK", pure VK_FORMAT_BC5_SNORM_BLOCK)-                             , ("VK_FORMAT_BC6H_UFLOAT_BLOCK", pure VK_FORMAT_BC6H_UFLOAT_BLOCK)-                             , ("VK_FORMAT_BC6H_SFLOAT_BLOCK", pure VK_FORMAT_BC6H_SFLOAT_BLOCK)-                             , ("VK_FORMAT_BC7_UNORM_BLOCK", pure VK_FORMAT_BC7_UNORM_BLOCK)-                             , ("VK_FORMAT_BC7_SRGB_BLOCK", pure VK_FORMAT_BC7_SRGB_BLOCK)-                             , ("VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK", pure VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK)-                             , ("VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK", pure VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK)-                             , ("VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK", pure VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK)-                             , ("VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK", pure VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK)-                             , ("VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK", pure VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK)-                             , ("VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK", pure VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK)-                             , ("VK_FORMAT_EAC_R11_UNORM_BLOCK", pure VK_FORMAT_EAC_R11_UNORM_BLOCK)-                             , ("VK_FORMAT_EAC_R11_SNORM_BLOCK", pure VK_FORMAT_EAC_R11_SNORM_BLOCK)-                             , ("VK_FORMAT_EAC_R11G11_UNORM_BLOCK", pure VK_FORMAT_EAC_R11G11_UNORM_BLOCK)-                             , ("VK_FORMAT_EAC_R11G11_SNORM_BLOCK", pure VK_FORMAT_EAC_R11G11_SNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_4x4_UNORM_BLOCK", pure VK_FORMAT_ASTC_4x4_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_4x4_SRGB_BLOCK", pure VK_FORMAT_ASTC_4x4_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_5x4_UNORM_BLOCK", pure VK_FORMAT_ASTC_5x4_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_5x4_SRGB_BLOCK", pure VK_FORMAT_ASTC_5x4_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_5x5_UNORM_BLOCK", pure VK_FORMAT_ASTC_5x5_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_5x5_SRGB_BLOCK", pure VK_FORMAT_ASTC_5x5_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_6x5_UNORM_BLOCK", pure VK_FORMAT_ASTC_6x5_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_6x5_SRGB_BLOCK", pure VK_FORMAT_ASTC_6x5_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_6x6_UNORM_BLOCK", pure VK_FORMAT_ASTC_6x6_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_6x6_SRGB_BLOCK", pure VK_FORMAT_ASTC_6x6_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_8x5_UNORM_BLOCK", pure VK_FORMAT_ASTC_8x5_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_8x5_SRGB_BLOCK", pure VK_FORMAT_ASTC_8x5_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_8x6_UNORM_BLOCK", pure VK_FORMAT_ASTC_8x6_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_8x6_SRGB_BLOCK", pure VK_FORMAT_ASTC_8x6_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_8x8_UNORM_BLOCK", pure VK_FORMAT_ASTC_8x8_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_8x8_SRGB_BLOCK", pure VK_FORMAT_ASTC_8x8_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_10x5_UNORM_BLOCK", pure VK_FORMAT_ASTC_10x5_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_10x5_SRGB_BLOCK", pure VK_FORMAT_ASTC_10x5_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_10x6_UNORM_BLOCK", pure VK_FORMAT_ASTC_10x6_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_10x6_SRGB_BLOCK", pure VK_FORMAT_ASTC_10x6_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_10x8_UNORM_BLOCK", pure VK_FORMAT_ASTC_10x8_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_10x8_SRGB_BLOCK", pure VK_FORMAT_ASTC_10x8_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_10x10_UNORM_BLOCK", pure VK_FORMAT_ASTC_10x10_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_10x10_SRGB_BLOCK", pure VK_FORMAT_ASTC_10x10_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_12x10_UNORM_BLOCK", pure VK_FORMAT_ASTC_12x10_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_12x10_SRGB_BLOCK", pure VK_FORMAT_ASTC_12x10_SRGB_BLOCK)-                             , ("VK_FORMAT_ASTC_12x12_UNORM_BLOCK", pure VK_FORMAT_ASTC_12x12_UNORM_BLOCK)-                             , ("VK_FORMAT_ASTC_12x12_SRGB_BLOCK", pure VK_FORMAT_ASTC_12x12_SRGB_BLOCK)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkFormat")-                        v <- step readPrec-                        pure (VkFormat v)-                        )-                    )---pattern VK_FORMAT_UNDEFINED = VkFormat 0--pattern VK_FORMAT_R4G4_UNORM_PACK8 = VkFormat 1--pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 = VkFormat 2--pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 = VkFormat 3--pattern VK_FORMAT_R5G6B5_UNORM_PACK16 = VkFormat 4--pattern VK_FORMAT_B5G6R5_UNORM_PACK16 = VkFormat 5--pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 = VkFormat 6--pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 = VkFormat 7--pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 = VkFormat 8--pattern VK_FORMAT_R8_UNORM = VkFormat 9--pattern VK_FORMAT_R8_SNORM = VkFormat 10--pattern VK_FORMAT_R8_USCALED = VkFormat 11--pattern VK_FORMAT_R8_SSCALED = VkFormat 12--pattern VK_FORMAT_R8_UINT = VkFormat 13--pattern VK_FORMAT_R8_SINT = VkFormat 14--pattern VK_FORMAT_R8_SRGB = VkFormat 15--pattern VK_FORMAT_R8G8_UNORM = VkFormat 16--pattern VK_FORMAT_R8G8_SNORM = VkFormat 17--pattern VK_FORMAT_R8G8_USCALED = VkFormat 18--pattern VK_FORMAT_R8G8_SSCALED = VkFormat 19--pattern VK_FORMAT_R8G8_UINT = VkFormat 20--pattern VK_FORMAT_R8G8_SINT = VkFormat 21--pattern VK_FORMAT_R8G8_SRGB = VkFormat 22--pattern VK_FORMAT_R8G8B8_UNORM = VkFormat 23--pattern VK_FORMAT_R8G8B8_SNORM = VkFormat 24--pattern VK_FORMAT_R8G8B8_USCALED = VkFormat 25--pattern VK_FORMAT_R8G8B8_SSCALED = VkFormat 26--pattern VK_FORMAT_R8G8B8_UINT = VkFormat 27--pattern VK_FORMAT_R8G8B8_SINT = VkFormat 28--pattern VK_FORMAT_R8G8B8_SRGB = VkFormat 29--pattern VK_FORMAT_B8G8R8_UNORM = VkFormat 30--pattern VK_FORMAT_B8G8R8_SNORM = VkFormat 31--pattern VK_FORMAT_B8G8R8_USCALED = VkFormat 32--pattern VK_FORMAT_B8G8R8_SSCALED = VkFormat 33--pattern VK_FORMAT_B8G8R8_UINT = VkFormat 34--pattern VK_FORMAT_B8G8R8_SINT = VkFormat 35--pattern VK_FORMAT_B8G8R8_SRGB = VkFormat 36--pattern VK_FORMAT_R8G8B8A8_UNORM = VkFormat 37--pattern VK_FORMAT_R8G8B8A8_SNORM = VkFormat 38--pattern VK_FORMAT_R8G8B8A8_USCALED = VkFormat 39--pattern VK_FORMAT_R8G8B8A8_SSCALED = VkFormat 40--pattern VK_FORMAT_R8G8B8A8_UINT = VkFormat 41--pattern VK_FORMAT_R8G8B8A8_SINT = VkFormat 42--pattern VK_FORMAT_R8G8B8A8_SRGB = VkFormat 43--pattern VK_FORMAT_B8G8R8A8_UNORM = VkFormat 44--pattern VK_FORMAT_B8G8R8A8_SNORM = VkFormat 45--pattern VK_FORMAT_B8G8R8A8_USCALED = VkFormat 46--pattern VK_FORMAT_B8G8R8A8_SSCALED = VkFormat 47--pattern VK_FORMAT_B8G8R8A8_UINT = VkFormat 48--pattern VK_FORMAT_B8G8R8A8_SINT = VkFormat 49--pattern VK_FORMAT_B8G8R8A8_SRGB = VkFormat 50--pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 = VkFormat 51--pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 = VkFormat 52--pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 = VkFormat 53--pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = VkFormat 54--pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 = VkFormat 55--pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 = VkFormat 56--pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 = VkFormat 57--pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 = VkFormat 58--pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 = VkFormat 59--pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 = VkFormat 60--pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = VkFormat 61--pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 = VkFormat 62--pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 = VkFormat 63--pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 = VkFormat 64--pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 = VkFormat 65--pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 = VkFormat 66--pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = VkFormat 67--pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 = VkFormat 68--pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 = VkFormat 69--pattern VK_FORMAT_R16_UNORM = VkFormat 70--pattern VK_FORMAT_R16_SNORM = VkFormat 71--pattern VK_FORMAT_R16_USCALED = VkFormat 72--pattern VK_FORMAT_R16_SSCALED = VkFormat 73--pattern VK_FORMAT_R16_UINT = VkFormat 74--pattern VK_FORMAT_R16_SINT = VkFormat 75--pattern VK_FORMAT_R16_SFLOAT = VkFormat 76--pattern VK_FORMAT_R16G16_UNORM = VkFormat 77--pattern VK_FORMAT_R16G16_SNORM = VkFormat 78--pattern VK_FORMAT_R16G16_USCALED = VkFormat 79--pattern VK_FORMAT_R16G16_SSCALED = VkFormat 80--pattern VK_FORMAT_R16G16_UINT = VkFormat 81--pattern VK_FORMAT_R16G16_SINT = VkFormat 82--pattern VK_FORMAT_R16G16_SFLOAT = VkFormat 83--pattern VK_FORMAT_R16G16B16_UNORM = VkFormat 84--pattern VK_FORMAT_R16G16B16_SNORM = VkFormat 85--pattern VK_FORMAT_R16G16B16_USCALED = VkFormat 86--pattern VK_FORMAT_R16G16B16_SSCALED = VkFormat 87--pattern VK_FORMAT_R16G16B16_UINT = VkFormat 88--pattern VK_FORMAT_R16G16B16_SINT = VkFormat 89--pattern VK_FORMAT_R16G16B16_SFLOAT = VkFormat 90--pattern VK_FORMAT_R16G16B16A16_UNORM = VkFormat 91--pattern VK_FORMAT_R16G16B16A16_SNORM = VkFormat 92--pattern VK_FORMAT_R16G16B16A16_USCALED = VkFormat 93--pattern VK_FORMAT_R16G16B16A16_SSCALED = VkFormat 94--pattern VK_FORMAT_R16G16B16A16_UINT = VkFormat 95--pattern VK_FORMAT_R16G16B16A16_SINT = VkFormat 96--pattern VK_FORMAT_R16G16B16A16_SFLOAT = VkFormat 97--pattern VK_FORMAT_R32_UINT = VkFormat 98--pattern VK_FORMAT_R32_SINT = VkFormat 99--pattern VK_FORMAT_R32_SFLOAT = VkFormat 100--pattern VK_FORMAT_R32G32_UINT = VkFormat 101--pattern VK_FORMAT_R32G32_SINT = VkFormat 102--pattern VK_FORMAT_R32G32_SFLOAT = VkFormat 103--pattern VK_FORMAT_R32G32B32_UINT = VkFormat 104--pattern VK_FORMAT_R32G32B32_SINT = VkFormat 105--pattern VK_FORMAT_R32G32B32_SFLOAT = VkFormat 106--pattern VK_FORMAT_R32G32B32A32_UINT = VkFormat 107--pattern VK_FORMAT_R32G32B32A32_SINT = VkFormat 108--pattern VK_FORMAT_R32G32B32A32_SFLOAT = VkFormat 109--pattern VK_FORMAT_R64_UINT = VkFormat 110--pattern VK_FORMAT_R64_SINT = VkFormat 111--pattern VK_FORMAT_R64_SFLOAT = VkFormat 112--pattern VK_FORMAT_R64G64_UINT = VkFormat 113--pattern VK_FORMAT_R64G64_SINT = VkFormat 114--pattern VK_FORMAT_R64G64_SFLOAT = VkFormat 115--pattern VK_FORMAT_R64G64B64_UINT = VkFormat 116--pattern VK_FORMAT_R64G64B64_SINT = VkFormat 117--pattern VK_FORMAT_R64G64B64_SFLOAT = VkFormat 118--pattern VK_FORMAT_R64G64B64A64_UINT = VkFormat 119--pattern VK_FORMAT_R64G64B64A64_SINT = VkFormat 120--pattern VK_FORMAT_R64G64B64A64_SFLOAT = VkFormat 121--pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 = VkFormat 122--pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = VkFormat 123--pattern VK_FORMAT_D16_UNORM = VkFormat 124--pattern VK_FORMAT_X8_D24_UNORM_PACK32 = VkFormat 125--pattern VK_FORMAT_D32_SFLOAT = VkFormat 126--pattern VK_FORMAT_S8_UINT = VkFormat 127--pattern VK_FORMAT_D16_UNORM_S8_UINT = VkFormat 128--pattern VK_FORMAT_D24_UNORM_S8_UINT = VkFormat 129--pattern VK_FORMAT_D32_SFLOAT_S8_UINT = VkFormat 130--pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK = VkFormat 131--pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK = VkFormat 132--pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK = VkFormat 133--pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK = VkFormat 134--pattern VK_FORMAT_BC2_UNORM_BLOCK = VkFormat 135--pattern VK_FORMAT_BC2_SRGB_BLOCK = VkFormat 136--pattern VK_FORMAT_BC3_UNORM_BLOCK = VkFormat 137--pattern VK_FORMAT_BC3_SRGB_BLOCK = VkFormat 138--pattern VK_FORMAT_BC4_UNORM_BLOCK = VkFormat 139--pattern VK_FORMAT_BC4_SNORM_BLOCK = VkFormat 140--pattern VK_FORMAT_BC5_UNORM_BLOCK = VkFormat 141--pattern VK_FORMAT_BC5_SNORM_BLOCK = VkFormat 142--pattern VK_FORMAT_BC6H_UFLOAT_BLOCK = VkFormat 143--pattern VK_FORMAT_BC6H_SFLOAT_BLOCK = VkFormat 144--pattern VK_FORMAT_BC7_UNORM_BLOCK = VkFormat 145--pattern VK_FORMAT_BC7_SRGB_BLOCK = VkFormat 146--pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = VkFormat 147--pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = VkFormat 148--pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = VkFormat 149--pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = VkFormat 150--pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = VkFormat 151--pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = VkFormat 152--pattern VK_FORMAT_EAC_R11_UNORM_BLOCK = VkFormat 153--pattern VK_FORMAT_EAC_R11_SNORM_BLOCK = VkFormat 154--pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK = VkFormat 155--pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK = VkFormat 156--pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK = VkFormat 157--pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK = VkFormat 158--pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK = VkFormat 159--pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK = VkFormat 160--pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK = VkFormat 161--pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK = VkFormat 162--pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK = VkFormat 163--pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK = VkFormat 164--pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK = VkFormat 165--pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK = VkFormat 166--pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK = VkFormat 167--pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK = VkFormat 168--pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK = VkFormat 169--pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK = VkFormat 170--pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK = VkFormat 171--pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK = VkFormat 172--pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK = VkFormat 173--pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK = VkFormat 174--pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK = VkFormat 175--pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK = VkFormat 176--pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK = VkFormat 177--pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK = VkFormat 178--pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK = VkFormat 179--pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK = VkFormat 180--pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK = VkFormat 181--pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK = VkFormat 182--pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK = VkFormat 183--pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK = VkFormat 184--type VkFlags = Word32---data VkExtent2D =-  VkExtent2D{ vkWidth :: Word32 -            , vkHeight :: Word32 -            }-  deriving (Eq)--instance Storable VkExtent2D where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek ptr = VkExtent2D <$> peek (ptr `plusPtr` 0)-                        <*> peek (ptr `plusPtr` 4)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkWidth (poked :: VkExtent2D))-                *> poke (ptr `plusPtr` 4) (vkHeight (poked :: VkExtent2D))----- ** VkSharingMode--newtype VkSharingMode = VkSharingMode Int32-  deriving (Eq, Storable)--instance Show VkSharingMode where-  showsPrec _ VK_SHARING_MODE_EXCLUSIVE = showString "VK_SHARING_MODE_EXCLUSIVE"-  showsPrec _ VK_SHARING_MODE_CONCURRENT = showString "VK_SHARING_MODE_CONCURRENT"-  showsPrec p (VkSharingMode x) = showParen (p >= 11) (showString "VkSharingMode " . showsPrec 11 x)--instance Read VkSharingMode where-  readPrec = parens ( choose [ ("VK_SHARING_MODE_EXCLUSIVE", pure VK_SHARING_MODE_EXCLUSIVE)-                             , ("VK_SHARING_MODE_CONCURRENT", pure VK_SHARING_MODE_CONCURRENT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSharingMode")-                        v <- step readPrec-                        pure (VkSharingMode v)-                        )-                    )---pattern VK_SHARING_MODE_EXCLUSIVE = VkSharingMode 0--pattern VK_SHARING_MODE_CONCURRENT = VkSharingMode 1---- ** VkStructureType--- | Structure type enumerant-newtype VkStructureType = VkStructureType Int32-  deriving (Eq, Storable)--instance Show VkStructureType where-  showsPrec _ VK_STRUCTURE_TYPE_APPLICATION_INFO = showString "VK_STRUCTURE_TYPE_APPLICATION_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_SUBMIT_INFO = showString "VK_STRUCTURE_TYPE_SUBMIT_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = showString "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = showString "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"-  showsPrec _ VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = showString "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = showString "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = showString "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = showString "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = showString "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = showString "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = showString "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = showString "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"-  showsPrec _ VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = showString "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"-  showsPrec _ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = showString "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = showString "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = showString "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = showString "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = showString "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"-  showsPrec _ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = showString "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"-  showsPrec _ VK_STRUCTURE_TYPE_MEMORY_BARRIER = showString "VK_STRUCTURE_TYPE_MEMORY_BARRIER"-  showsPrec _ VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"-  showsPrec _ VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"-  showsPrec p (VkStructureType x) = showParen (p >= 11) (showString "VkStructureType " . showsPrec 11 x)--instance Read VkStructureType where-  readPrec = parens ( choose [ ("VK_STRUCTURE_TYPE_APPLICATION_INFO", pure VK_STRUCTURE_TYPE_APPLICATION_INFO)-                             , ("VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO", pure VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO", pure VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO", pure VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_SUBMIT_INFO", pure VK_STRUCTURE_TYPE_SUBMIT_INFO)-                             , ("VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO", pure VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)-                             , ("VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE", pure VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE)-                             , ("VK_STRUCTURE_TYPE_BIND_SPARSE_INFO", pure VK_STRUCTURE_TYPE_BIND_SPARSE_INFO)-                             , ("VK_STRUCTURE_TYPE_FENCE_CREATE_INFO", pure VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO", pure VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_EVENT_CREATE_INFO", pure VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO", pure VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO", pure VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO", pure VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO", pure VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO", pure VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO", pure VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO", pure VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO", pure VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO", pure VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO", pure VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO", pure VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO", pure VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO)-                             , ("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET", pure VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET)-                             , ("VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET", pure VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET)-                             , ("VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO", pure VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO", pure VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO", pure VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO", pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)-                             , ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO", pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO)-                             , ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO", pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)-                             , ("VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO", pure VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)-                             , ("VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER", pure VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER)-                             , ("VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER", pure VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER)-                             , ("VK_STRUCTURE_TYPE_MEMORY_BARRIER", pure VK_STRUCTURE_TYPE_MEMORY_BARRIER)-                             , ("VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO", pure VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO)-                             , ("VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO", pure VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkStructureType")-                        v <- step readPrec-                        pure (VkStructureType v)-                        )-                    )---pattern VK_STRUCTURE_TYPE_APPLICATION_INFO = VkStructureType 0--pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = VkStructureType 1--pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = VkStructureType 2--pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = VkStructureType 3--pattern VK_STRUCTURE_TYPE_SUBMIT_INFO = VkStructureType 4--pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = VkStructureType 5--pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = VkStructureType 6--pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = VkStructureType 7--pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = VkStructureType 8--pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = VkStructureType 9--pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = VkStructureType 10--pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = VkStructureType 11--pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = VkStructureType 12--pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = VkStructureType 13--pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = VkStructureType 14--pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = VkStructureType 15--pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = VkStructureType 16--pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = VkStructureType 17--pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = VkStructureType 18--pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = VkStructureType 19--pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = VkStructureType 20--pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = VkStructureType 21--pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = VkStructureType 22--pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = VkStructureType 23--pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = VkStructureType 24--pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = VkStructureType 25--pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = VkStructureType 26--pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = VkStructureType 27--pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = VkStructureType 28--pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = VkStructureType 29--pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = VkStructureType 30--pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = VkStructureType 31--pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = VkStructureType 32--pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = VkStructureType 33--pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = VkStructureType 34--pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = VkStructureType 35--pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = VkStructureType 36--pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = VkStructureType 37--pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = VkStructureType 38--pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = VkStructureType 39--pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = VkStructureType 40--pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = VkStructureType 41--pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = VkStructureType 42--pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = VkStructureType 43--pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = VkStructureType 44--pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = VkStructureType 45--pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER = VkStructureType 46--pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = VkStructureType 47--pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = VkStructureType 48--newtype VkBool32 = VkBool32 Word32-  deriving (Eq, Storable)---data VkOffset2D =-  VkOffset2D{ vkX :: Int32 -            , vkY :: Int32 -            }-  deriving (Eq)--instance Storable VkOffset2D where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek ptr = VkOffset2D <$> peek (ptr `plusPtr` 0)-                        <*> peek (ptr `plusPtr` 4)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkOffset2D))-                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkOffset2D))----data VkOffset3D =-  VkOffset3D{ vkX :: Int32 -            , vkY :: Int32 -            , vkZ :: Int32 -            }-  deriving (Eq)--instance Storable VkOffset3D where-  sizeOf ~_ = 12-  alignment ~_ = 4-  peek ptr = VkOffset3D <$> peek (ptr `plusPtr` 0)-                        <*> peek (ptr `plusPtr` 4)-                        <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkOffset3D))-                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkOffset3D))-                *> poke (ptr `plusPtr` 8) (vkZ (poked :: VkOffset3D))----data VkExtent3D =-  VkExtent3D{ vkWidth :: Word32 -            , vkHeight :: Word32 -            , vkDepth :: Word32 -            }-  deriving (Eq)--instance Storable VkExtent3D where-  sizeOf ~_ = 12-  alignment ~_ = 4-  peek ptr = VkExtent3D <$> peek (ptr `plusPtr` 0)-                        <*> peek (ptr `plusPtr` 4)-                        <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkWidth (poked :: VkExtent3D))-                *> poke (ptr `plusPtr` 4) (vkHeight (poked :: VkExtent3D))-                *> poke (ptr `plusPtr` 8) (vkDepth (poked :: VkExtent3D))----data VkRect3D =-  VkRect3D{ vkOffset :: VkOffset3D -          , vkExtent :: VkExtent3D -          }-  deriving (Eq)--instance Storable VkRect3D where-  sizeOf ~_ = 24-  alignment ~_ = 4-  peek ptr = VkRect3D <$> peek (ptr `plusPtr` 0)-                      <*> peek (ptr `plusPtr` 12)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkRect3D))-                *> poke (ptr `plusPtr` 12) (vkExtent (poked :: VkRect3D))----- ** VkResult--- | Error and return codes-newtype VkResult = VkResult Int32-  deriving (Eq, Storable)--instance Show VkResult where-  showsPrec _ VK_SUCCESS = showString "VK_SUCCESS"-  showsPrec _ VK_NOT_READY = showString "VK_NOT_READY"-  showsPrec _ VK_TIMEOUT = showString "VK_TIMEOUT"-  showsPrec _ VK_EVENT_SET = showString "VK_EVENT_SET"-  showsPrec _ VK_EVENT_RESET = showString "VK_EVENT_RESET"-  showsPrec _ VK_INCOMPLETE = showString "VK_INCOMPLETE"-  showsPrec _ VK_ERROR_OUT_OF_HOST_MEMORY = showString "VK_ERROR_OUT_OF_HOST_MEMORY"-  showsPrec _ VK_ERROR_OUT_OF_DEVICE_MEMORY = showString "VK_ERROR_OUT_OF_DEVICE_MEMORY"-  showsPrec _ VK_ERROR_INITIALIZATION_FAILED = showString "VK_ERROR_INITIALIZATION_FAILED"-  showsPrec _ VK_ERROR_DEVICE_LOST = showString "VK_ERROR_DEVICE_LOST"-  showsPrec _ VK_ERROR_MEMORY_MAP_FAILED = showString "VK_ERROR_MEMORY_MAP_FAILED"-  showsPrec _ VK_ERROR_LAYER_NOT_PRESENT = showString "VK_ERROR_LAYER_NOT_PRESENT"-  showsPrec _ VK_ERROR_EXTENSION_NOT_PRESENT = showString "VK_ERROR_EXTENSION_NOT_PRESENT"-  showsPrec _ VK_ERROR_FEATURE_NOT_PRESENT = showString "VK_ERROR_FEATURE_NOT_PRESENT"-  showsPrec _ VK_ERROR_INCOMPATIBLE_DRIVER = showString "VK_ERROR_INCOMPATIBLE_DRIVER"-  showsPrec _ VK_ERROR_TOO_MANY_OBJECTS = showString "VK_ERROR_TOO_MANY_OBJECTS"-  showsPrec _ VK_ERROR_FORMAT_NOT_SUPPORTED = showString "VK_ERROR_FORMAT_NOT_SUPPORTED"-  showsPrec p (VkResult x) = showParen (p >= 11) (showString "VkResult " . showsPrec 11 x)--instance Read VkResult where-  readPrec = parens ( choose [ ("VK_SUCCESS", pure VK_SUCCESS)-                             , ("VK_NOT_READY", pure VK_NOT_READY)-                             , ("VK_TIMEOUT", pure VK_TIMEOUT)-                             , ("VK_EVENT_SET", pure VK_EVENT_SET)-                             , ("VK_EVENT_RESET", pure VK_EVENT_RESET)-                             , ("VK_INCOMPLETE", pure VK_INCOMPLETE)-                             , ("VK_ERROR_OUT_OF_HOST_MEMORY", pure VK_ERROR_OUT_OF_HOST_MEMORY)-                             , ("VK_ERROR_OUT_OF_DEVICE_MEMORY", pure VK_ERROR_OUT_OF_DEVICE_MEMORY)-                             , ("VK_ERROR_INITIALIZATION_FAILED", pure VK_ERROR_INITIALIZATION_FAILED)-                             , ("VK_ERROR_DEVICE_LOST", pure VK_ERROR_DEVICE_LOST)-                             , ("VK_ERROR_MEMORY_MAP_FAILED", pure VK_ERROR_MEMORY_MAP_FAILED)-                             , ("VK_ERROR_LAYER_NOT_PRESENT", pure VK_ERROR_LAYER_NOT_PRESENT)-                             , ("VK_ERROR_EXTENSION_NOT_PRESENT", pure VK_ERROR_EXTENSION_NOT_PRESENT)-                             , ("VK_ERROR_FEATURE_NOT_PRESENT", pure VK_ERROR_FEATURE_NOT_PRESENT)-                             , ("VK_ERROR_INCOMPATIBLE_DRIVER", pure VK_ERROR_INCOMPATIBLE_DRIVER)-                             , ("VK_ERROR_TOO_MANY_OBJECTS", pure VK_ERROR_TOO_MANY_OBJECTS)-                             , ("VK_ERROR_FORMAT_NOT_SUPPORTED", pure VK_ERROR_FORMAT_NOT_SUPPORTED)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkResult")-                        v <- step readPrec-                        pure (VkResult v)-                        )-                    )---- | Command completed successfully-pattern VK_SUCCESS = VkResult 0--- | A fence or query has not yet completed-pattern VK_NOT_READY = VkResult 1--- | A wait operation has not completed in the specified time-pattern VK_TIMEOUT = VkResult 2--- | An event is signaled-pattern VK_EVENT_SET = VkResult 3--- | An event is unsignalled-pattern VK_EVENT_RESET = VkResult 4--- | A return array was too small for the resul-pattern VK_INCOMPLETE = VkResult 5--- | A host memory allocation has failed-pattern VK_ERROR_OUT_OF_HOST_MEMORY = VkResult (-1)--- | A device memory allocation has failed-pattern VK_ERROR_OUT_OF_DEVICE_MEMORY = VkResult (-2)--- | The logical device has been lost. See <<devsandqueues-lost-device>>-pattern VK_ERROR_INITIALIZATION_FAILED = VkResult (-3)--- | Initialization of a object has failed-pattern VK_ERROR_DEVICE_LOST = VkResult (-4)--- | Mapping of a memory object has failed-pattern VK_ERROR_MEMORY_MAP_FAILED = VkResult (-5)--- | Layer specified does not exist-pattern VK_ERROR_LAYER_NOT_PRESENT = VkResult (-6)--- | Extension specified does not exist-pattern VK_ERROR_EXTENSION_NOT_PRESENT = VkResult (-7)--- | Requested feature is not available on this device-pattern VK_ERROR_FEATURE_NOT_PRESENT = VkResult (-8)--- | Unable to find a Vulkan driver-pattern VK_ERROR_INCOMPATIBLE_DRIVER = VkResult (-9)--- | Too many objects of the type have already been created-pattern VK_ERROR_TOO_MANY_OBJECTS = VkResult (-10)--- | Requested format is not supported on this device-pattern VK_ERROR_FORMAT_NOT_SUPPORTED = VkResult (-11)---data VkViewport =-  VkViewport{ vkX :: CFloat -            , vkY :: CFloat -            , vkWidth :: CFloat -            , vkHeight :: CFloat -            , vkMinDepth :: CFloat -            , vkMaxDepth :: CFloat -            }-  deriving (Eq)--instance Storable VkViewport where-  sizeOf ~_ = 24-  alignment ~_ = 4-  peek ptr = VkViewport <$> peek (ptr `plusPtr` 0)-                        <*> peek (ptr `plusPtr` 4)-                        <*> peek (ptr `plusPtr` 8)-                        <*> peek (ptr `plusPtr` 12)-                        <*> peek (ptr `plusPtr` 16)-                        <*> peek (ptr `plusPtr` 20)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkViewport))-                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkViewport))-                *> poke (ptr `plusPtr` 8) (vkWidth (poked :: VkViewport))-                *> poke (ptr `plusPtr` 12) (vkHeight (poked :: VkViewport))-                *> poke (ptr `plusPtr` 16) (vkMinDepth (poked :: VkViewport))-                *> poke (ptr `plusPtr` 20) (vkMaxDepth (poked :: VkViewport))----data VkRect2D =-  VkRect2D{ vkOffset :: VkOffset2D -          , vkExtent :: VkExtent2D -          }-  deriving (Eq)--instance Storable VkRect2D where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek ptr = VkRect2D <$> peek (ptr `plusPtr` 0)-                      <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkRect2D))-                *> poke (ptr `plusPtr` 8) (vkExtent (poked :: VkRect2D))--
+ src/Graphics/Vulkan/Core10.hs view
@@ -0,0 +1,69 @@+{-# language Strict #-}+{-# language CPP #-}+++module Graphics.Vulkan.Core10+  (     module Graphics.Vulkan.Core10.Core+  , module Graphics.Vulkan.Core10.Version+  , module Graphics.Vulkan.Core10.Constants+  , module Graphics.Vulkan.Core10.DeviceInitialization+  , module Graphics.Vulkan.Core10.Device+  , module Graphics.Vulkan.Core10.ExtensionDiscovery+  , module Graphics.Vulkan.Core10.LayerDiscovery+  , module Graphics.Vulkan.Core10.Queue+  , module Graphics.Vulkan.Core10.Memory+  , module Graphics.Vulkan.Core10.MemoryManagement+  , module Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  , module Graphics.Vulkan.Core10.Fence+  , module Graphics.Vulkan.Core10.QueueSemaphore+  , module Graphics.Vulkan.Core10.Event+  , module Graphics.Vulkan.Core10.Query+  , module Graphics.Vulkan.Core10.Buffer+  , module Graphics.Vulkan.Core10.BufferView+  , module Graphics.Vulkan.Core10.Image+  , module Graphics.Vulkan.Core10.ImageView+  , module Graphics.Vulkan.Core10.Shader+  , module Graphics.Vulkan.Core10.PipelineCache+  , module Graphics.Vulkan.Core10.Pipeline+  , module Graphics.Vulkan.Core10.PipelineLayout+  , module Graphics.Vulkan.Core10.Sampler+  , module Graphics.Vulkan.Core10.DescriptorSet+  , module Graphics.Vulkan.Core10.Pass+  , module Graphics.Vulkan.Core10.CommandPool+  , module Graphics.Vulkan.Core10.CommandBuffer+  , module Graphics.Vulkan.Core10.CommandBufferBuilding+  ) where+++import Graphics.Vulkan.Core10.Core+import Graphics.Vulkan.Core10.Version+import Graphics.Vulkan.Core10.Constants+import Graphics.Vulkan.Core10.DeviceInitialization+import Graphics.Vulkan.Core10.Device+import Graphics.Vulkan.Core10.ExtensionDiscovery+import Graphics.Vulkan.Core10.LayerDiscovery+import Graphics.Vulkan.Core10.Queue+import Graphics.Vulkan.Core10.Memory+import Graphics.Vulkan.Core10.MemoryManagement+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+import Graphics.Vulkan.Core10.Fence+import Graphics.Vulkan.Core10.QueueSemaphore+import Graphics.Vulkan.Core10.Event+import Graphics.Vulkan.Core10.Query+import Graphics.Vulkan.Core10.Buffer+import Graphics.Vulkan.Core10.BufferView+import Graphics.Vulkan.Core10.Image+import Graphics.Vulkan.Core10.ImageView+import Graphics.Vulkan.Core10.Shader+import Graphics.Vulkan.Core10.PipelineCache+import Graphics.Vulkan.Core10.Pipeline+import Graphics.Vulkan.Core10.PipelineLayout+import Graphics.Vulkan.Core10.Sampler+import Graphics.Vulkan.Core10.DescriptorSet+import Graphics.Vulkan.Core10.Pass+import Graphics.Vulkan.Core10.CommandPool+import Graphics.Vulkan.Core10.CommandBuffer+import Graphics.Vulkan.Core10.CommandBufferBuilding+++
+ src/Graphics/Vulkan/Core10/Buffer.hs view
@@ -0,0 +1,580 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Buffer+  ( VkSharingMode(..)+  , pattern VK_SHARING_MODE_EXCLUSIVE+  , pattern VK_SHARING_MODE_CONCURRENT+  , VkBufferUsageFlagBits(..)+  , pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT+  , pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT+  , pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT+  , pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT+  , pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT+  , pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT+  , pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT+  , pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT+  , pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT+  , VkBufferCreateFlagBits(..)+  , pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT+  , pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT+  , pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT+  , vkCreateBuffer+  , vkDestroyBuffer+  , VkBufferCreateInfo(..)+  , VkBufferUsageFlags+  , VkBufferCreateFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  )+++-- ** VkSharingMode++-- | VkSharingMode - Buffer and image sharing modes+--+-- = Description+-- #_description#+--+-- -   @VK_SHARING_MODE_EXCLUSIVE@ specifies that access to any range or+--     image subresource of the object will be exclusive to a single queue+--     family at a time.+--+-- -   @VK_SHARING_MODE_CONCURRENT@ specifies that concurrent access to any+--     range or image subresource of the object from multiple queue+--     families is supported.+--+-- __Note__+--+-- @VK_SHARING_MODE_CONCURRENT@ /may/ result in lower performance access to+-- the buffer or image than @VK_SHARING_MODE_EXCLUSIVE@.+--+-- Ranges of buffers and image subresources of image objects created using+-- @VK_SHARING_MODE_EXCLUSIVE@ /must/ only be accessed by queues in the+-- queue family that has /ownership/ of the resource. Upon creation, such+-- resources are not owned by any queue family; ownership is implicitly+-- acquired upon first use within a queue. Once a resource using+-- @VK_SHARING_MODE_EXCLUSIVE@ is owned by some queue family, the+-- application /must/ perform a+-- <{html_spec_relative}#synchronization-queue-transfers queue family ownership transfer>+-- to make the memory contents of a range or image subresource accessible+-- to a different queue family.+--+-- __Note__+--+-- Images still require a+-- <{html_spec_relative}#resources-image-layouts layout transition> from+-- @VK_IMAGE_LAYOUT_UNDEFINED@ or @VK_IMAGE_LAYOUT_PREINITIALIZED@ before+-- being used on the first queue.+--+-- A queue family /can/ take ownership of an image subresource or buffer+-- range of a resource created with @VK_SHARING_MODE_EXCLUSIVE@, without an+-- ownership transfer, in the same way as for a resource that was just+-- created; however, taking ownership in this way has the effect that the+-- contents of the image subresource or buffer range are undefined.+--+-- Ranges of buffers and image subresources of image objects created using+-- @VK_SHARING_MODE_CONCURRENT@ /must/ only be accessed by queues from the+-- queue families specified through the @queueFamilyIndexCount@ and+-- @pQueueFamilyIndices@ members of the corresponding create info+-- structures.+--+-- = See Also+-- #_see_also#+--+-- 'VkBufferCreateInfo', 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR'+newtype VkSharingMode = VkSharingMode Int32+  deriving (Eq, Ord, Storable)++instance Show VkSharingMode where+  showsPrec _ VK_SHARING_MODE_EXCLUSIVE = showString "VK_SHARING_MODE_EXCLUSIVE"+  showsPrec _ VK_SHARING_MODE_CONCURRENT = showString "VK_SHARING_MODE_CONCURRENT"+  showsPrec p (VkSharingMode x) = showParen (p >= 11) (showString "VkSharingMode " . showsPrec 11 x)++instance Read VkSharingMode where+  readPrec = parens ( choose [ ("VK_SHARING_MODE_EXCLUSIVE",  pure VK_SHARING_MODE_EXCLUSIVE)+                             , ("VK_SHARING_MODE_CONCURRENT", pure VK_SHARING_MODE_CONCURRENT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSharingMode")+                        v <- step readPrec+                        pure (VkSharingMode v)+                        )+                    )++-- No documentation found for Nested "VkSharingMode" "VK_SHARING_MODE_EXCLUSIVE"+pattern VK_SHARING_MODE_EXCLUSIVE :: VkSharingMode+pattern VK_SHARING_MODE_EXCLUSIVE = VkSharingMode 0++-- No documentation found for Nested "VkSharingMode" "VK_SHARING_MODE_CONCURRENT"+pattern VK_SHARING_MODE_CONCURRENT :: VkSharingMode+pattern VK_SHARING_MODE_CONCURRENT = VkSharingMode 1+-- ** VkBufferUsageFlagBits++-- | VkBufferUsageFlagBits - Bitmask specifying allowed usage of a buffer+--+-- = See Also+-- #_see_also#+--+-- 'VkBufferUsageFlags'+newtype VkBufferUsageFlagBits = VkBufferUsageFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkBufferUsageFlagBits where+  showsPrec _ VK_BUFFER_USAGE_TRANSFER_SRC_BIT = showString "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"+  showsPrec _ VK_BUFFER_USAGE_TRANSFER_DST_BIT = showString "VK_BUFFER_USAGE_TRANSFER_DST_BIT"+  showsPrec _ VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = showString "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"+  showsPrec _ VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = showString "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"+  showsPrec _ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = showString "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"+  showsPrec _ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = showString "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"+  showsPrec _ VK_BUFFER_USAGE_INDEX_BUFFER_BIT = showString "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"+  showsPrec _ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = showString "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"+  showsPrec _ VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = showString "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"+  showsPrec p (VkBufferUsageFlagBits x) = showParen (p >= 11) (showString "VkBufferUsageFlagBits " . showsPrec 11 x)++instance Read VkBufferUsageFlagBits where+  readPrec = parens ( choose [ ("VK_BUFFER_USAGE_TRANSFER_SRC_BIT",         pure VK_BUFFER_USAGE_TRANSFER_SRC_BIT)+                             , ("VK_BUFFER_USAGE_TRANSFER_DST_BIT",         pure VK_BUFFER_USAGE_TRANSFER_DST_BIT)+                             , ("VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT", pure VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT)+                             , ("VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT", pure VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT)+                             , ("VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT",       pure VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT)+                             , ("VK_BUFFER_USAGE_STORAGE_BUFFER_BIT",       pure VK_BUFFER_USAGE_STORAGE_BUFFER_BIT)+                             , ("VK_BUFFER_USAGE_INDEX_BUFFER_BIT",         pure VK_BUFFER_USAGE_INDEX_BUFFER_BIT)+                             , ("VK_BUFFER_USAGE_VERTEX_BUFFER_BIT",        pure VK_BUFFER_USAGE_VERTEX_BUFFER_BIT)+                             , ("VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT",      pure VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkBufferUsageFlagBits")+                        v <- step readPrec+                        pure (VkBufferUsageFlagBits v)+                        )+                    )++-- | @VK_BUFFER_USAGE_TRANSFER_SRC_BIT@ specifies that the buffer /can/ be+-- used as the source of a /transfer command/ (see the definition of+-- <{html_spec_relative}#synchronization-pipeline-stages-transfer VK_PIPELINE_STAGE_TRANSFER_BIT>).+pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT = VkBufferUsageFlagBits 0x00000001++-- | @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ specifies that the buffer /can/ be+-- used as the destination of a transfer command.+pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT = VkBufferUsageFlagBits 0x00000002++-- | @VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT@ specifies that the buffer+-- /can/ be used to create a @VkBufferView@ suitable for occupying a+-- @VkDescriptorSet@ slot of type+-- @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@.+pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits 0x00000004++-- | @VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT@ specifies that the buffer+-- /can/ be used to create a @VkBufferView@ suitable for occupying a+-- @VkDescriptorSet@ slot of type+-- @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@.+pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits 0x00000008++-- | @VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT@ specifies that the buffer /can/ be+-- used in a @VkDescriptorBufferInfo@ suitable for occupying a+-- @VkDescriptorSet@ slot either of type+-- @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+-- @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@.+pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = VkBufferUsageFlagBits 0x00000010++-- | @VK_BUFFER_USAGE_STORAGE_BUFFER_BIT@ specifies that the buffer /can/ be+-- used in a @VkDescriptorBufferInfo@ suitable for occupying a+-- @VkDescriptorSet@ slot either of type+-- @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+-- @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@.+pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = VkBufferUsageFlagBits 0x00000020++-- | @VK_BUFFER_USAGE_INDEX_BUFFER_BIT@ specifies that the buffer is suitable+-- for passing as the @buffer@ parameter to @vkCmdBindIndexBuffer@.+pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT = VkBufferUsageFlagBits 0x00000040++-- | @VK_BUFFER_USAGE_VERTEX_BUFFER_BIT@ specifies that the buffer is+-- suitable for passing as an element of the @pBuffers@ array to+-- @vkCmdBindVertexBuffers@.+pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = VkBufferUsageFlagBits 0x00000080++-- | @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ specifies that the buffer is+-- suitable for passing as the @buffer@ parameter to @vkCmdDrawIndirect@,+-- @vkCmdDrawIndexedIndirect@, or @vkCmdDispatchIndirect@.+pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT :: VkBufferUsageFlagBits+pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = VkBufferUsageFlagBits 0x00000100+-- ** VkBufferCreateFlagBits++-- | VkBufferCreateFlagBits - Bitmask specifying additional parameters of a+-- buffer+--+-- = Description+-- #_description#+--+-- -   @VK_BUFFER_CREATE_SPARSE_BINDING_BIT@ specifies that the buffer will+--     be backed using sparse memory binding.+--+-- -   @VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT@ specifies that the buffer+--     /can/ be partially backed using sparse memory binding. Buffers+--     created with this flag /must/ also be created with the+--     @VK_BUFFER_CREATE_SPARSE_BINDING_BIT@ flag.+--+-- -   @VK_BUFFER_CREATE_SPARSE_ALIASED_BIT@ specifies that the buffer will+--     be backed using sparse memory binding with memory ranges that might+--     also simultaneously be backing another buffer (or another portion of+--     the same buffer). Buffers created with this flag /must/ also be+--     created with the @VK_BUFFER_CREATE_SPARSE_BINDING_BIT@ flag.+--+-- See+-- <{html_spec_relative}#sparsememory-sparseresourcefeatures Sparse Resource Features>+-- and <{html_spec_relative}#features-features Physical Device Features>+-- for details of the sparse memory features supported on a device.+--+-- = See Also+-- #_see_also#+--+-- 'VkBufferCreateFlags'+newtype VkBufferCreateFlagBits = VkBufferCreateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkBufferCreateFlagBits where+  showsPrec _ VK_BUFFER_CREATE_SPARSE_BINDING_BIT = showString "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"+  showsPrec _ VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = showString "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"+  showsPrec _ VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = showString "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkBufferCreateFlagBits 0x00000008) = showString "VK_BUFFER_CREATE_PROTECTED_BIT"+  showsPrec p (VkBufferCreateFlagBits x) = showParen (p >= 11) (showString "VkBufferCreateFlagBits " . showsPrec 11 x)++instance Read VkBufferCreateFlagBits where+  readPrec = parens ( choose [ ("VK_BUFFER_CREATE_SPARSE_BINDING_BIT",   pure VK_BUFFER_CREATE_SPARSE_BINDING_BIT)+                             , ("VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT", pure VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT)+                             , ("VK_BUFFER_CREATE_SPARSE_ALIASED_BIT",   pure VK_BUFFER_CREATE_SPARSE_ALIASED_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_BUFFER_CREATE_PROTECTED_BIT", pure (VkBufferCreateFlagBits 0x00000008))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkBufferCreateFlagBits")+                        v <- step readPrec+                        pure (VkBufferCreateFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"+pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT :: VkBufferCreateFlagBits+pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT = VkBufferCreateFlagBits 0x00000001++-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"+pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT :: VkBufferCreateFlagBits+pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = VkBufferCreateFlagBits 0x00000002++-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"+pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT :: VkBufferCreateFlagBits+pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = VkBufferCreateFlagBits 0x00000004+-- | vkCreateBuffer - Create a new buffer object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the buffer object.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkBufferCreateInfo@ structure containing parameters affecting+--     creation of the buffer.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pBuffer@ points to a @VkBuffer@ handle in which the resulting+--     buffer object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the @flags@ member of @pCreateInfo@ includes+--     @VK_BUFFER_CREATE_SPARSE_BINDING_BIT@, creating this @VkBuffer@+--     /must/ not cause the total required sparse memory for all currently+--     valid sparse resources on the device to exceed+--     @VkPhysicalDeviceLimits@::@sparseAddressSpaceSize@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkBufferCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pBuffer@ /must/ be a valid pointer to a @VkBuffer@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'VkBufferCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkCreateBuffer" vkCreateBuffer :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkBufferCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pBuffer" ::: Ptr VkBuffer) -> IO VkResult+-- | vkDestroyBuffer - Destroy a buffer object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the buffer.+--+-- -   @buffer@ is the buffer to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @buffer@, either directly or+--     via a @VkBufferView@, /must/ have completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @buffer@ was created,+--     a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @buffer@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @buffer@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @buffer@ /must/+--     be a valid @VkBuffer@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @buffer@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @buffer@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDestroyBuffer" vkDestroyBuffer :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkBufferCreateInfo - Structure specifying the parameters of a newly+-- created buffer object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @size@ /must/ be greater than @0@+--+-- -   If @sharingMode@ is @VK_SHARING_MODE_CONCURRENT@,+--     @pQueueFamilyIndices@ /must/ be a valid pointer to an array of+--     @queueFamilyIndexCount@ @uint32_t@ values+--+-- -   If @sharingMode@ is @VK_SHARING_MODE_CONCURRENT@,+--     @queueFamilyIndexCount@ /must/ be greater than @1@+--+-- -   If @sharingMode@ is @VK_SHARING_MODE_CONCURRENT@, each element of+--     @pQueueFamilyIndices@ /must/ be unique and /must/ be less than+--     @pQueueFamilyPropertyCount@ returned by+--     'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceQueueFamilyProperties'+--     for the @physicalDevice@ that was used to create @device@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseBinding sparse bindings>+--     feature is not enabled, @flags@ /must/ not contain+--     @VK_BUFFER_CREATE_SPARSE_BINDING_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidencyBuffer sparse buffer residency>+--     feature is not enabled, @flags@ /must/ not contain+--     @VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidencyAliased sparse aliased residency>+--     feature is not enabled, @flags@ /must/ not contain+--     @VK_BUFFER_CREATE_SPARSE_ALIASED_BIT@+--+-- -   If @flags@ contains @VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT@ or+--     @VK_BUFFER_CREATE_SPARSE_ALIASED_BIT@, it /must/ also contain+--     @VK_BUFFER_CREATE_SPARSE_BINDING_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV'+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryBufferCreateInfo'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be a valid combination of 'VkBufferCreateFlagBits'+--     values+--+-- -   @usage@ /must/ be a valid combination of 'VkBufferUsageFlagBits'+--     values+--+-- -   @usage@ /must/ not be @0@+--+-- -   @sharingMode@ /must/ be a valid 'VkSharingMode' value+--+-- = See Also+-- #_see_also#+--+-- 'VkBufferCreateFlags', 'VkBufferUsageFlags', @VkDeviceSize@,+-- 'VkSharingMode', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateBuffer'+data VkBufferCreateInfo = VkBufferCreateInfo+  { -- No documentation found for Nested "VkBufferCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBufferCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBufferCreateInfo" "vkFlags"+  vkFlags :: VkBufferCreateFlags+  , -- No documentation found for Nested "VkBufferCreateInfo" "vkSize"+  vkSize :: VkDeviceSize+  , -- No documentation found for Nested "VkBufferCreateInfo" "vkUsage"+  vkUsage :: VkBufferUsageFlags+  , -- No documentation found for Nested "VkBufferCreateInfo" "vkSharingMode"+  vkSharingMode :: VkSharingMode+  , -- No documentation found for Nested "VkBufferCreateInfo" "vkQueueFamilyIndexCount"+  vkQueueFamilyIndexCount :: Word32+  , -- No documentation found for Nested "VkBufferCreateInfo" "vkPQueueFamilyIndices"+  vkPQueueFamilyIndices :: Ptr Word32+  }+  deriving (Eq, Show)++instance Storable VkBufferCreateInfo where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkBufferCreateInfo <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 8)+                                <*> peek (ptr `plusPtr` 16)+                                <*> peek (ptr `plusPtr` 24)+                                <*> peek (ptr `plusPtr` 32)+                                <*> peek (ptr `plusPtr` 36)+                                <*> peek (ptr `plusPtr` 40)+                                <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkBufferCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkSize (poked :: VkBufferCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkUsage (poked :: VkBufferCreateInfo))+                *> poke (ptr `plusPtr` 36) (vkSharingMode (poked :: VkBufferCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkQueueFamilyIndexCount (poked :: VkBufferCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkPQueueFamilyIndices (poked :: VkBufferCreateInfo))+-- | VkBufferUsageFlags - Bitmask of VkBufferUsageFlagBits+--+-- = Description+-- #_description#+--+-- @VkBufferUsageFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkBufferUsageFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkBufferCreateInfo', 'VkBufferUsageFlagBits',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo'+type VkBufferUsageFlags = VkBufferUsageFlagBits+-- | VkBufferCreateFlags - Bitmask of VkBufferCreateFlagBits+--+-- = Description+-- #_description#+--+-- @VkBufferCreateFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkBufferCreateFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkBufferCreateFlagBits', 'VkBufferCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo'+type VkBufferCreateFlags = VkBufferCreateFlagBits
+ src/Graphics/Vulkan/Core10/BufferView.hs view
@@ -0,0 +1,311 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.BufferView+  ( VkBufferViewCreateFlags(..)+  , VkBufferView+  , vkCreateBufferView+  , vkDestroyBufferView+  , VkBufferViewCreateInfo(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkFormat(..)+  , VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  )+++-- ** VkBufferViewCreateFlags++-- | VkBufferViewCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkBufferViewCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkBufferViewCreateInfo'+newtype VkBufferViewCreateFlags = VkBufferViewCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkBufferViewCreateFlags where+  +  showsPrec p (VkBufferViewCreateFlags x) = showParen (p >= 11) (showString "VkBufferViewCreateFlags " . showsPrec 11 x)++instance Read VkBufferViewCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkBufferViewCreateFlags")+                        v <- step readPrec+                        pure (VkBufferViewCreateFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkBufferView_T+-- | VkBufferView - Opaque handle to a buffer view object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet',+-- 'vkCreateBufferView', 'vkDestroyBufferView'+type VkBufferView = Ptr VkBufferView_T+-- | vkCreateBufferView - Create a new buffer view object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the buffer view.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkBufferViewCreateInfo@ structure containing parameters to be used+--     to create the buffer.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pView@ points to a @VkBufferView@ handle in which the resulting+--     buffer view object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkBufferViewCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pView@ /must/ be a valid pointer to a @VkBufferView@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkBufferView', 'VkBufferViewCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkCreateBufferView" vkCreateBufferView :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkBufferViewCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pView" ::: Ptr VkBufferView) -> IO VkResult+-- | vkDestroyBufferView - Destroy a buffer view object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the buffer view.+--+-- -   @bufferView@ is the buffer view to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @bufferView@ /must/ have+--     completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @bufferView@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @bufferView@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @bufferView@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @bufferView@+--     /must/ be a valid @VkBufferView@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @bufferView@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @bufferView@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkBufferView', 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDestroyBufferView" vkDestroyBufferView :: ("device" ::: VkDevice) -> ("bufferView" ::: VkBufferView) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkBufferViewCreateInfo - Structure specifying parameters of a newly+-- created buffer view+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @offset@ /must/ be less than the size of @buffer@+--+-- -   @offset@ /must/ be a multiple of+--     @VkPhysicalDeviceLimits@::@minTexelBufferOffsetAlignment@+--+-- -   If @range@ is not equal to @VK_WHOLE_SIZE@, @range@ /must/ be+--     greater than @0@+--+-- -   If @range@ is not equal to @VK_WHOLE_SIZE@, @range@ /must/ be a+--     multiple of the element size of @format@+--+-- -   If @range@ is not equal to @VK_WHOLE_SIZE@, @range@ divided by the+--     element size of @format@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxTexelBufferElements@+--+-- -   If @range@ is not equal to @VK_WHOLE_SIZE@, the sum of @offset@ and+--     @range@ /must/ be less than or equal to the size of @buffer@+--+-- -   @buffer@ /must/ have been created with a @usage@ value containing at+--     least one of @VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT@ or+--     @VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT@+--+-- -   If @buffer@ was created with @usage@ containing+--     @VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT@, @format@ /must/ be+--     supported for uniform texel buffers, as specified by the+--     @VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT@ flag in+--     @VkFormatProperties@::@bufferFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@+--+-- -   If @buffer@ was created with @usage@ containing+--     @VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT@, @format@ /must/ be+--     supported for storage texel buffers, as specified by the+--     @VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT@ flag in+--     @VkFormatProperties@::@bufferFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@+--+-- -   If @buffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'VkBufferViewCreateFlags', @VkDeviceSize@,+-- 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateBufferView'+data VkBufferViewCreateInfo = VkBufferViewCreateInfo+  { -- No documentation found for Nested "VkBufferViewCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBufferViewCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBufferViewCreateInfo" "vkFlags"+  vkFlags :: VkBufferViewCreateFlags+  , -- No documentation found for Nested "VkBufferViewCreateInfo" "vkBuffer"+  vkBuffer :: VkBuffer+  , -- No documentation found for Nested "VkBufferViewCreateInfo" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkBufferViewCreateInfo" "vkOffset"+  vkOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkBufferViewCreateInfo" "vkRange"+  vkRange :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkBufferViewCreateInfo where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkBufferViewCreateInfo <$> peek (ptr `plusPtr` 0)+                                    <*> peek (ptr `plusPtr` 8)+                                    <*> peek (ptr `plusPtr` 16)+                                    <*> peek (ptr `plusPtr` 24)+                                    <*> peek (ptr `plusPtr` 32)+                                    <*> peek (ptr `plusPtr` 40)+                                    <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferViewCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferViewCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkBufferViewCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkBuffer (poked :: VkBufferViewCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkFormat (poked :: VkBufferViewCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkOffset (poked :: VkBufferViewCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkRange (poked :: VkBufferViewCreateInfo))
+ src/Graphics/Vulkan/Core10/CommandBuffer.hs view
@@ -0,0 +1,830 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.CommandBuffer+  ( VkCommandBufferLevel(..)+  , pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY+  , pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY+  , VkQueryControlFlagBits(..)+  , pattern VK_QUERY_CONTROL_PRECISE_BIT+  , VkCommandBufferResetFlagBits(..)+  , pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT+  , VkCommandBufferUsageFlagBits(..)+  , pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT+  , pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT+  , pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT+  , vkAllocateCommandBuffers+  , vkFreeCommandBuffers+  , vkBeginCommandBuffer+  , vkEndCommandBuffer+  , vkResetCommandBuffer+  , VkCommandBufferAllocateInfo(..)+  , VkCommandBufferInheritanceInfo(..)+  , VkCommandBufferBeginInfo(..)+  , VkQueryControlFlags+  , VkCommandBufferResetFlags+  , VkCommandBufferUsageFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.CommandPool+  ( VkCommandPool+  )+import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Pass+  ( VkFramebuffer+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkRenderPass+  )+import Graphics.Vulkan.Core10.Query+  ( VkQueryPipelineStatisticFlags+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+++-- ** VkCommandBufferLevel++-- | VkCommandBufferLevel - Enumerant specifying a command buffer level+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBufferAllocateInfo'+newtype VkCommandBufferLevel = VkCommandBufferLevel Int32+  deriving (Eq, Ord, Storable)++instance Show VkCommandBufferLevel where+  showsPrec _ VK_COMMAND_BUFFER_LEVEL_PRIMARY = showString "VK_COMMAND_BUFFER_LEVEL_PRIMARY"+  showsPrec _ VK_COMMAND_BUFFER_LEVEL_SECONDARY = showString "VK_COMMAND_BUFFER_LEVEL_SECONDARY"+  showsPrec p (VkCommandBufferLevel x) = showParen (p >= 11) (showString "VkCommandBufferLevel " . showsPrec 11 x)++instance Read VkCommandBufferLevel where+  readPrec = parens ( choose [ ("VK_COMMAND_BUFFER_LEVEL_PRIMARY",   pure VK_COMMAND_BUFFER_LEVEL_PRIMARY)+                             , ("VK_COMMAND_BUFFER_LEVEL_SECONDARY", pure VK_COMMAND_BUFFER_LEVEL_SECONDARY)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCommandBufferLevel")+                        v <- step readPrec+                        pure (VkCommandBufferLevel v)+                        )+                    )++-- | @VK_COMMAND_BUFFER_LEVEL_PRIMARY@ specifies a primary command buffer.+pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY :: VkCommandBufferLevel+pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY = VkCommandBufferLevel 0++-- | @VK_COMMAND_BUFFER_LEVEL_SECONDARY@ specifies a secondary command+-- buffer.+pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY :: VkCommandBufferLevel+pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY = VkCommandBufferLevel 1+-- ** VkQueryControlFlagBits++-- | VkQueryControlFlagBits - Bitmask specifying constraints on a query+--+-- = See Also+-- #_see_also#+--+-- 'VkQueryControlFlags'+newtype VkQueryControlFlagBits = VkQueryControlFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkQueryControlFlagBits where+  showsPrec _ VK_QUERY_CONTROL_PRECISE_BIT = showString "VK_QUERY_CONTROL_PRECISE_BIT"+  showsPrec p (VkQueryControlFlagBits x) = showParen (p >= 11) (showString "VkQueryControlFlagBits " . showsPrec 11 x)++instance Read VkQueryControlFlagBits where+  readPrec = parens ( choose [ ("VK_QUERY_CONTROL_PRECISE_BIT", pure VK_QUERY_CONTROL_PRECISE_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkQueryControlFlagBits")+                        v <- step readPrec+                        pure (VkQueryControlFlagBits v)+                        )+                    )++-- | @VK_QUERY_CONTROL_PRECISE_BIT@ specifies the precision of+-- <{html_spec_relative}#queries-occlusion occlusion queries>.+pattern VK_QUERY_CONTROL_PRECISE_BIT :: VkQueryControlFlagBits+pattern VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlFlagBits 0x00000001+-- ** VkCommandBufferResetFlagBits++-- | VkCommandBufferResetFlagBits - Bitmask controlling behavior of a command+-- buffer reset+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBufferResetFlags'+newtype VkCommandBufferResetFlagBits = VkCommandBufferResetFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkCommandBufferResetFlagBits where+  showsPrec _ VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = showString "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"+  showsPrec p (VkCommandBufferResetFlagBits x) = showParen (p >= 11) (showString "VkCommandBufferResetFlagBits " . showsPrec 11 x)++instance Read VkCommandBufferResetFlagBits where+  readPrec = parens ( choose [ ("VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT", pure VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCommandBufferResetFlagBits")+                        v <- step readPrec+                        pure (VkCommandBufferResetFlagBits v)+                        )+                    )++-- | @VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT@ specifies that most or+-- all memory resources currently owned by the command buffer /should/ be+-- returned to the parent command pool. If this flag is not set, then the+-- command buffer /may/ hold onto memory resources and reuse them when+-- recording commands. @commandBuffer@ is moved to the+-- <{html_spec_relative}#commandbuffers-lifecycle initial state>.+pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT :: VkCommandBufferResetFlagBits+pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = VkCommandBufferResetFlagBits 0x00000001+-- ** VkCommandBufferUsageFlagBits++-- | VkCommandBufferUsageFlagBits - Bitmask specifying usage behavior for+-- command buffer+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBufferUsageFlags'+newtype VkCommandBufferUsageFlagBits = VkCommandBufferUsageFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkCommandBufferUsageFlagBits where+  showsPrec _ VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = showString "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"+  showsPrec _ VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = showString "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"+  showsPrec _ VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = showString "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"+  showsPrec p (VkCommandBufferUsageFlagBits x) = showParen (p >= 11) (showString "VkCommandBufferUsageFlagBits " . showsPrec 11 x)++instance Read VkCommandBufferUsageFlagBits where+  readPrec = parens ( choose [ ("VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT",      pure VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT)+                             , ("VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT", pure VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT)+                             , ("VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT",     pure VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCommandBufferUsageFlagBits")+                        v <- step readPrec+                        pure (VkCommandBufferUsageFlagBits v)+                        )+                    )++-- | @VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT@ specifies that each+-- recording of the command buffer will only be submitted once, and the+-- command buffer will be reset and recorded again between each submission.+pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT :: VkCommandBufferUsageFlagBits+pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = VkCommandBufferUsageFlagBits 0x00000001++-- | @VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT@ specifies that a+-- secondary command buffer is considered to be entirely inside a render+-- pass. If this is a primary command buffer, then this bit is ignored.+pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT :: VkCommandBufferUsageFlagBits+pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = VkCommandBufferUsageFlagBits 0x00000002++-- | @VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT@ specifies that a command+-- buffer /can/ be resubmitted to a queue while it is in the /pending+-- state/, and recorded into multiple primary command buffers.+pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT :: VkCommandBufferUsageFlagBits+pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = VkCommandBufferUsageFlagBits 0x00000004+-- | vkAllocateCommandBuffers - Allocate command buffers from an existing+-- command pool+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the command pool.+--+-- -   @pAllocateInfo@ is a pointer to an instance of the+--     @VkCommandBufferAllocateInfo@ structure describing parameters of the+--     allocation.+--+-- -   @pCommandBuffers@ is a pointer to an array of @VkCommandBuffer@+--     handles in which the resulting command buffer objects are returned.+--     The array /must/ be at least the length specified by the+--     @commandBufferCount@ member of @pAllocateInfo@. Each allocated+--     command buffer begins in the initial state.+--+-- = Description+-- #_description#+--+-- When command buffers are first allocated, they are in the+-- <{html_spec_relative}#commandbuffers-lifecycle initial state>.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pAllocateInfo@ /must/ be a valid pointer to a valid+--     @VkCommandBufferAllocateInfo@ structure+--+-- -   @pCommandBuffers@ /must/ be a valid pointer to an array of+--     @pAllocateInfo@::commandBufferCount @VkCommandBuffer@ handles+--+-- == Host Synchronization+--+-- -   Host access to @pAllocateInfo@::commandPool /must/ be externally+--     synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'VkCommandBufferAllocateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkAllocateCommandBuffers" vkAllocateCommandBuffers :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkCommandBufferAllocateInfo) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO VkResult+-- | vkFreeCommandBuffers - Free command buffers+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the command pool.+--+-- -   @commandPool@ is the command pool from which the command buffers+--     were allocated.+--+-- -   @commandBufferCount@ is the length of the @pCommandBuffers@ array.+--+-- -   @pCommandBuffers@ is an array of handles of command buffers to free.+--+-- = Description+-- #_description#+--+-- Any primary command buffer that is in the+-- <{html_spec_relative}#commandbuffers-lifecycle recording or executable state>+-- and has any element of @pCommandBuffers@ recorded into it, becomes+-- <{html_spec_relative}#commandbuffers-lifecycle invalid>.+--+-- == Valid Usage+--+-- -   All elements of @pCommandBuffers@ /must/ not be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending state>+--+-- -   @pCommandBuffers@ /must/ be a valid pointer to an array of+--     @commandBufferCount@ @VkCommandBuffer@ handles, each element of+--     which /must/ either be a valid handle or @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @commandPool@ /must/ be a valid @VkCommandPool@ handle+--+-- -   @commandBufferCount@ /must/ be greater than @0@+--+-- -   @commandPool@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- -   Each element of @pCommandBuffers@ that is a valid handle /must/ have+--     been created, allocated, or retrieved from @commandPool@+--+-- == Host Synchronization+--+-- -   Host access to @commandPool@ /must/ be externally synchronized+--+-- -   Host access to each member of @pCommandBuffers@ /must/ be externally+--     synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.CommandPool.VkCommandPool',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkFreeCommandBuffers" vkFreeCommandBuffers :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO ()+-- | vkBeginCommandBuffer - Start recording a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the handle of the command buffer which is to be+--     put in the recording state.+--+-- -   @pBeginInfo@ is an instance of the @VkCommandBufferBeginInfo@+--     structure, which defines additional information about how the+--     command buffer begins recording.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @commandBuffer@ /must/ not be in the+--     <{html_spec_relative}#commandbuffers-lifecycle recording or pending state>.+--+-- -   If @commandBuffer@ was allocated from a+--     'Graphics.Vulkan.Core10.CommandPool.VkCommandPool' which did not+--     have the @VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT@ flag set,+--     @commandBuffer@ /must/ be in the+--     <{html_spec_relative}#commandbuffers-lifecycle initial state>.+--+-- -   If @commandBuffer@ is a secondary command buffer, the+--     @pInheritanceInfo@ member of @pBeginInfo@ /must/ be a valid+--     @VkCommandBufferInheritanceInfo@ structure+--+-- -   If @commandBuffer@ is a secondary command buffer and either the+--     @occlusionQueryEnable@ member of the @pInheritanceInfo@ member of+--     @pBeginInfo@ is @VK_FALSE@, or the precise occlusion queries feature+--     is not enabled, the @queryFlags@ member of the @pInheritanceInfo@+--     member @pBeginInfo@ /must/ not contain+--     @VK_QUERY_CONTROL_PRECISE_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pBeginInfo@ /must/ be a valid pointer to a valid+--     @VkCommandBufferBeginInfo@ structure+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'VkCommandBufferBeginInfo'+foreign import ccall "vkBeginCommandBuffer" vkBeginCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("pBeginInfo" ::: Ptr VkCommandBufferBeginInfo) -> IO VkResult+-- | vkEndCommandBuffer - Finish recording a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer to complete recording.+--+-- = Description+-- #_description#+--+-- If there was an error during recording, the application will be notified+-- by an unsuccessful return code returned by @vkEndCommandBuffer@. If the+-- application wishes to further use the command buffer, the command buffer+-- /must/ be reset. The command buffer /must/ have been in the+-- <{html_spec_relative}#commandbuffers-lifecycle recording state>, and is+-- moved to the+-- <{html_spec_relative}#commandbuffers-lifecycle executable state>.+--+-- == Valid Usage+--+-- -   @commandBuffer@ /must/ be in the+--     <{html_spec_relative}#commandbuffers-lifecycle recording state>.+--+-- -   If @commandBuffer@ is a primary command buffer, there /must/ not be+--     an active render pass instance+--+-- -   All queries made+--     <{html_spec_relative}#queries-operation-active active> during the+--     recording of @commandBuffer@ /must/ have been made inactive+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkEndCommandBuffer" vkEndCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> IO VkResult+-- | vkResetCommandBuffer - Reset a command buffer to the initial state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer to reset. The command buffer+--     /can/ be in any state other than+--     <{html_spec_relative}#commandbuffers-lifecycle pending>, and is+--     moved into the+--     <{html_spec_relative}#commandbuffers-lifecycle initial state>.+--+-- -   @flags@ is a bitmask of 'VkCommandBufferResetFlagBits' controlling+--     the reset operation.+--+-- = Description+-- #_description#+--+-- Any primary command buffer that is in the+-- <{html_spec_relative}#commandbuffers-lifecycle recording or executable state>+-- and has @commandBuffer@ recorded into it, becomes+-- <{html_spec_relative}#commandbuffers-lifecycle invalid>.+--+-- == Valid Usage+--+-- -   @commandBuffer@ /must/ not be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending state>+--+-- -   @commandBuffer@ /must/ have been allocated from a pool that was+--     created with the @VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'VkCommandBufferResetFlagBits' values+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'VkCommandBufferResetFlags'+foreign import ccall "vkResetCommandBuffer" vkResetCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("flags" ::: VkCommandBufferResetFlags) -> IO VkResult+-- | VkCommandBufferAllocateInfo - Structure specifying the allocation+-- parameters for command buffer object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @commandBufferCount@ /must/ be greater than @0@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @commandPool@ /must/ be a valid @VkCommandPool@ handle+--+-- -   @level@ /must/ be a valid 'VkCommandBufferLevel' value+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBufferLevel',+-- 'Graphics.Vulkan.Core10.CommandPool.VkCommandPool',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkAllocateCommandBuffers'+data VkCommandBufferAllocateInfo = VkCommandBufferAllocateInfo+  { -- No documentation found for Nested "VkCommandBufferAllocateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkCommandBufferAllocateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkCommandBufferAllocateInfo" "vkCommandPool"+  vkCommandPool :: VkCommandPool+  , -- No documentation found for Nested "VkCommandBufferAllocateInfo" "vkLevel"+  vkLevel :: VkCommandBufferLevel+  , -- No documentation found for Nested "VkCommandBufferAllocateInfo" "vkCommandBufferCount"+  vkCommandBufferCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkCommandBufferAllocateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkCommandBufferAllocateInfo <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+                                         <*> peek (ptr `plusPtr` 24)+                                         <*> peek (ptr `plusPtr` 28)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferAllocateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferAllocateInfo))+                *> poke (ptr `plusPtr` 16) (vkCommandPool (poked :: VkCommandBufferAllocateInfo))+                *> poke (ptr `plusPtr` 24) (vkLevel (poked :: VkCommandBufferAllocateInfo))+                *> poke (ptr `plusPtr` 28) (vkCommandBufferCount (poked :: VkCommandBufferAllocateInfo))+-- | VkCommandBufferInheritanceInfo - Structure specifying command buffer+-- inheritance info+--+-- = Members+-- #_members#+--+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to an extension-specific structure.+--+-- -   @renderPass@ is a @VkRenderPass@ object defining which render passes+--     the @VkCommandBuffer@ will be+--     <{html_spec_relative}#renderpass-compatibility compatible> with and+--     /can/ be executed within. If the @VkCommandBuffer@ will not be+--     executed within a render pass instance, @renderPass@ is ignored.+--+-- -   @subpass@ is the index of the subpass within the render pass+--     instance that the @VkCommandBuffer@ will be executed within. If the+--     @VkCommandBuffer@ will not be executed within a render pass+--     instance, @subpass@ is ignored.+--+-- -   @framebuffer@ optionally refers to the @VkFramebuffer@ object that+--     the @VkCommandBuffer@ will be rendering to if it is executed within+--     a render pass instance. It /can/ be+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE' if the framebuffer+--     is not known, or if the @VkCommandBuffer@ will not be executed+--     within a render pass instance.+--+--     __Note__+--+--     Specifying the exact framebuffer that the secondary command buffer+--     will be executed with /may/ result in better performance at command+--     buffer execution time.+--+-- -   @occlusionQueryEnable@ specifies whether the command buffer /can/ be+--     executed while an occlusion query is active in the primary command+--     buffer. If this is @VK_TRUE@, then this command buffer /can/ be+--     executed whether the primary command buffer has an occlusion query+--     active or not. If this is @VK_FALSE@, then the primary command+--     buffer /must/ not have an occlusion query active.+--+-- -   @queryFlags@ specifies the query flags that /can/ be used by an+--     active occlusion query in the primary command buffer when this+--     secondary command buffer is executed. If this value includes the+--     @VK_QUERY_CONTROL_PRECISE_BIT@ bit, then the active query /can/+--     return boolean results or actual sample counts. If this bit is not+--     set, then the active query /must/ not use the+--     @VK_QUERY_CONTROL_PRECISE_BIT@ bit.+--+-- -   @pipelineStatistics@ is a bitmask of+--     'Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits'+--     specifying the set of pipeline statistics that /can/ be counted by+--     an active query in the primary command buffer when this secondary+--     command buffer is executed. If this value includes a given bit, then+--     this command buffer /can/ be executed whether the primary command+--     buffer has a pipeline statistics query active that includes this bit+--     or not. If this value excludes a given bit, then the active pipeline+--     statistics query /must/ not be from a query pool that counts that+--     statistic.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-inheritedQueries inherited queries>+--     feature is not enabled, @occlusionQueryEnable@ /must/ be @VK_FALSE@+--+-- -   If the+--     <{html_spec_relative}#features-features-inheritedQueries inherited queries>+--     feature is enabled, @queryFlags@ /must/ be a valid combination of+--     'VkQueryControlFlagBits' values+--+-- -   If the+--     <{html_spec_relative}#features-features-pipelineStatisticsQuery pipeline statistics queries>+--     feature is not enabled, @pipelineStatistics@ /must/ be @0@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   Both of @framebuffer@, and @renderPass@ that are valid handles+--     /must/ have been created, allocated, or retrieved from the same+--     @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkCommandBufferBeginInfo',+-- 'Graphics.Vulkan.Core10.Pass.VkFramebuffer', 'VkQueryControlFlags',+-- 'Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlags',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRenderPass',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkCommandBufferInheritanceInfo = VkCommandBufferInheritanceInfo+  { -- No documentation found for Nested "VkCommandBufferInheritanceInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkCommandBufferInheritanceInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkCommandBufferInheritanceInfo" "vkRenderPass"+  vkRenderPass :: VkRenderPass+  , -- No documentation found for Nested "VkCommandBufferInheritanceInfo" "vkSubpass"+  vkSubpass :: Word32+  , -- No documentation found for Nested "VkCommandBufferInheritanceInfo" "vkFramebuffer"+  vkFramebuffer :: VkFramebuffer+  , -- No documentation found for Nested "VkCommandBufferInheritanceInfo" "vkOcclusionQueryEnable"+  vkOcclusionQueryEnable :: VkBool32+  , -- No documentation found for Nested "VkCommandBufferInheritanceInfo" "vkQueryFlags"+  vkQueryFlags :: VkQueryControlFlags+  , -- No documentation found for Nested "VkCommandBufferInheritanceInfo" "vkPipelineStatistics"+  vkPipelineStatistics :: VkQueryPipelineStatisticFlags+  }+  deriving (Eq, Show)++instance Storable VkCommandBufferInheritanceInfo where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkCommandBufferInheritanceInfo <$> peek (ptr `plusPtr` 0)+                                            <*> peek (ptr `plusPtr` 8)+                                            <*> peek (ptr `plusPtr` 16)+                                            <*> peek (ptr `plusPtr` 24)+                                            <*> peek (ptr `plusPtr` 32)+                                            <*> peek (ptr `plusPtr` 40)+                                            <*> peek (ptr `plusPtr` 44)+                                            <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferInheritanceInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferInheritanceInfo))+                *> poke (ptr `plusPtr` 16) (vkRenderPass (poked :: VkCommandBufferInheritanceInfo))+                *> poke (ptr `plusPtr` 24) (vkSubpass (poked :: VkCommandBufferInheritanceInfo))+                *> poke (ptr `plusPtr` 32) (vkFramebuffer (poked :: VkCommandBufferInheritanceInfo))+                *> poke (ptr `plusPtr` 40) (vkOcclusionQueryEnable (poked :: VkCommandBufferInheritanceInfo))+                *> poke (ptr `plusPtr` 44) (vkQueryFlags (poked :: VkCommandBufferInheritanceInfo))+                *> poke (ptr `plusPtr` 48) (vkPipelineStatistics (poked :: VkCommandBufferInheritanceInfo))+-- | VkCommandBufferBeginInfo - Structure specifying a command buffer begin+-- operation+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @flags@ contains+--     @VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT@, the @renderPass@+--     member of @pInheritanceInfo@ /must/ be a valid @VkRenderPass@+--+-- -   If @flags@ contains+--     @VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT@, the @subpass@+--     member of @pInheritanceInfo@ /must/ be a valid subpass index within+--     the @renderPass@ member of @pInheritanceInfo@+--+-- -   If @flags@ contains+--     @VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT@, the+--     @framebuffer@ member of @pInheritanceInfo@ /must/ be either+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', or a valid+--     @VkFramebuffer@ that is compatible with the @renderPass@ member of+--     @pInheritanceInfo@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupCommandBufferBeginInfo'+--+-- -   @flags@ /must/ be a valid combination of+--     'VkCommandBufferUsageFlagBits' values+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBufferInheritanceInfo', 'VkCommandBufferUsageFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkBeginCommandBuffer'+data VkCommandBufferBeginInfo = VkCommandBufferBeginInfo+  { -- No documentation found for Nested "VkCommandBufferBeginInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkCommandBufferBeginInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkCommandBufferBeginInfo" "vkFlags"+  vkFlags :: VkCommandBufferUsageFlags+  , -- No documentation found for Nested "VkCommandBufferBeginInfo" "vkPInheritanceInfo"+  vkPInheritanceInfo :: Ptr VkCommandBufferInheritanceInfo+  }+  deriving (Eq, Show)++instance Storable VkCommandBufferBeginInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkCommandBufferBeginInfo <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+                                      <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferBeginInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferBeginInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkCommandBufferBeginInfo))+                *> poke (ptr `plusPtr` 24) (vkPInheritanceInfo (poked :: VkCommandBufferBeginInfo))+-- | VkQueryControlFlags - Bitmask of VkQueryControlFlagBits+--+-- = Description+-- #_description#+--+-- @VkQueryControlFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkQueryControlFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBufferInheritanceInfo', 'VkQueryControlFlagBits',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBeginQuery'+type VkQueryControlFlags = VkQueryControlFlagBits+-- | VkCommandBufferResetFlags - Bitmask of VkCommandBufferResetFlagBits+--+-- = Description+-- #_description#+--+-- @VkCommandBufferResetFlags@ is a bitmask type for setting a mask of zero+-- or more 'VkCommandBufferResetFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBufferResetFlagBits', 'vkResetCommandBuffer'+type VkCommandBufferResetFlags = VkCommandBufferResetFlagBits+-- | VkCommandBufferUsageFlags - Bitmask of VkCommandBufferUsageFlagBits+--+-- = Description+-- #_description#+--+-- @VkCommandBufferUsageFlags@ is a bitmask type for setting a mask of zero+-- or more 'VkCommandBufferUsageFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBufferBeginInfo', 'VkCommandBufferUsageFlagBits'+type VkCommandBufferUsageFlags = VkCommandBufferUsageFlagBits
+ src/Graphics/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -0,0 +1,7331 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}+{-# language LambdaCase #-}++module Graphics.Vulkan.Core10.CommandBufferBuilding+  ( VkIndexType(..)+  , pattern VK_INDEX_TYPE_UINT16+  , pattern VK_INDEX_TYPE_UINT32+  , VkSubpassContents(..)+  , pattern VK_SUBPASS_CONTENTS_INLINE+  , pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS+  , VkStencilFaceFlagBits(..)+  , pattern VK_STENCIL_FACE_FRONT_BIT+  , pattern VK_STENCIL_FACE_BACK_BIT+  , pattern VK_STENCIL_FRONT_AND_BACK+  , 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+  , VkClearRect(..)+  , VkImageSubresourceLayers(..)+  , VkMemoryBarrier(..)+  , VkBufferMemoryBarrier(..)+  , VkImageMemoryBarrier(..)+  , VkBufferCopy(..)+  , VkImageCopy(..)+  , VkImageBlit(..)+  , VkBufferImageCopy(..)+  , VkImageResolve(..)+  , VkRenderPassBeginInfo(..)+  , VkClearDepthStencilValue(..)+  , VkClearAttachment(..)+  , VkDrawIndirectCommand(..)+  , VkDrawIndexedIndirectCommand(..)+  , VkDispatchIndirectCommand(..)+  , VkClearColorValue(..)+  , VkClearValue(..)+  , VkStencilFaceFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CFloat(..)+  )+import Foreign.Ptr+  ( castPtr+  , plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.CommandBuffer+  ( VkQueryControlFlagBits(..)+  , VkQueryControlFlags+  )+import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DescriptorSet+  ( VkDescriptorSet+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkExtent3D(..)+  , VkDeviceSize+  )+import Graphics.Vulkan.Core10.Event+  ( VkEvent+  )+import Graphics.Vulkan.Core10.Image+  ( VkImageLayout(..)+  )+import Graphics.Vulkan.Core10.ImageView+  ( VkImageSubresourceRange(..)+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkImage+  , VkBuffer+  )+import Graphics.Vulkan.Core10.Pass+  ( VkFramebuffer+  , VkAccessFlags+  , VkDependencyFlagBits(..)+  , VkDependencyFlags+  , VkPipelineBindPoint(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkRenderPass+  , VkShaderStageFlagBits(..)+  , VkPipelineLayout+  , VkRect2D(..)+  , VkViewport(..)+  , VkPipeline+  )+import Graphics.Vulkan.Core10.PipelineLayout+  ( VkShaderStageFlags+  )+import Graphics.Vulkan.Core10.Query+  ( VkQueryResultFlagBits(..)+  , VkQueryResultFlags+  , VkQueryPool+  )+import Graphics.Vulkan.Core10.Queue+  ( VkPipelineStageFlagBits(..)+  , VkPipelineStageFlags+  , VkCommandBuffer+  )+import Graphics.Vulkan.Core10.Sampler+  ( VkFilter(..)+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkOffset3D(..)+  , VkImageAspectFlags+  )+++-- ** VkIndexType++-- | VkIndexType - Type of index buffer indices+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableIndexBufferEntryNVX',+-- 'vkCmdBindIndexBuffer'+newtype VkIndexType = VkIndexType Int32+  deriving (Eq, Ord, Storable)++instance Show VkIndexType where+  showsPrec _ VK_INDEX_TYPE_UINT16 = showString "VK_INDEX_TYPE_UINT16"+  showsPrec _ VK_INDEX_TYPE_UINT32 = showString "VK_INDEX_TYPE_UINT32"+  showsPrec p (VkIndexType x) = showParen (p >= 11) (showString "VkIndexType " . showsPrec 11 x)++instance Read VkIndexType where+  readPrec = parens ( choose [ ("VK_INDEX_TYPE_UINT16", pure VK_INDEX_TYPE_UINT16)+                             , ("VK_INDEX_TYPE_UINT32", pure VK_INDEX_TYPE_UINT32)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkIndexType")+                        v <- step readPrec+                        pure (VkIndexType v)+                        )+                    )++-- | @VK_INDEX_TYPE_UINT16@ specifies that indices are 16-bit unsigned+-- integer values.+pattern VK_INDEX_TYPE_UINT16 :: VkIndexType+pattern VK_INDEX_TYPE_UINT16 = VkIndexType 0++-- | @VK_INDEX_TYPE_UINT32@ specifies that indices are 32-bit unsigned+-- integer values.+pattern VK_INDEX_TYPE_UINT32 :: VkIndexType+pattern VK_INDEX_TYPE_UINT32 = VkIndexType 1+-- ** VkSubpassContents++-- | VkSubpassContents - Specify how commands in the first subpass of a+-- render pass are provided+--+-- = See Also+-- #_see_also#+--+-- 'vkCmdBeginRenderPass', 'vkCmdNextSubpass'+newtype VkSubpassContents = VkSubpassContents Int32+  deriving (Eq, Ord, Storable)++instance Show VkSubpassContents where+  showsPrec _ VK_SUBPASS_CONTENTS_INLINE = showString "VK_SUBPASS_CONTENTS_INLINE"+  showsPrec _ VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = showString "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS"+  showsPrec p (VkSubpassContents x) = showParen (p >= 11) (showString "VkSubpassContents " . showsPrec 11 x)++instance Read VkSubpassContents where+  readPrec = parens ( choose [ ("VK_SUBPASS_CONTENTS_INLINE",                    pure VK_SUBPASS_CONTENTS_INLINE)+                             , ("VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS", pure VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSubpassContents")+                        v <- step readPrec+                        pure (VkSubpassContents v)+                        )+                    )++-- | @VK_SUBPASS_CONTENTS_INLINE@ specifies that the contents of the subpass+-- will be recorded inline in the primary command buffer, and secondary+-- command buffers /must/ not be executed within the subpass.+pattern VK_SUBPASS_CONTENTS_INLINE :: VkSubpassContents+pattern VK_SUBPASS_CONTENTS_INLINE = VkSubpassContents 0++-- | @VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS@ specifies that the+-- contents are recorded in secondary command buffers that will be called+-- from the primary command buffer, and 'vkCmdExecuteCommands' is the only+-- valid command on the command buffer until 'vkCmdNextSubpass' or+-- 'vkCmdEndRenderPass'.+pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS :: VkSubpassContents+pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = VkSubpassContents 1+-- ** VkStencilFaceFlagBits++-- | VkStencilFaceFlagBits - Bitmask specifying sets of stencil state for+-- which to update the compare mask+--+-- = See Also+-- #_see_also#+--+-- 'VkStencilFaceFlags'+newtype VkStencilFaceFlagBits = VkStencilFaceFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkStencilFaceFlagBits where+  showsPrec _ VK_STENCIL_FACE_FRONT_BIT = showString "VK_STENCIL_FACE_FRONT_BIT"+  showsPrec _ VK_STENCIL_FACE_BACK_BIT = showString "VK_STENCIL_FACE_BACK_BIT"+  showsPrec _ VK_STENCIL_FRONT_AND_BACK = showString "VK_STENCIL_FRONT_AND_BACK"+  showsPrec p (VkStencilFaceFlagBits x) = showParen (p >= 11) (showString "VkStencilFaceFlagBits " . showsPrec 11 x)++instance Read VkStencilFaceFlagBits where+  readPrec = parens ( choose [ ("VK_STENCIL_FACE_FRONT_BIT", pure VK_STENCIL_FACE_FRONT_BIT)+                             , ("VK_STENCIL_FACE_BACK_BIT",  pure VK_STENCIL_FACE_BACK_BIT)+                             , ("VK_STENCIL_FRONT_AND_BACK", pure VK_STENCIL_FRONT_AND_BACK)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkStencilFaceFlagBits")+                        v <- step readPrec+                        pure (VkStencilFaceFlagBits v)+                        )+                    )++-- | @VK_STENCIL_FACE_FRONT_BIT@ specifies that only the front set of stencil+-- state is updated.+pattern VK_STENCIL_FACE_FRONT_BIT :: VkStencilFaceFlagBits+pattern VK_STENCIL_FACE_FRONT_BIT = VkStencilFaceFlagBits 0x00000001++-- | @VK_STENCIL_FACE_BACK_BIT@ specifies that only the back set of stencil+-- state is updated.+pattern VK_STENCIL_FACE_BACK_BIT :: VkStencilFaceFlagBits+pattern VK_STENCIL_FACE_BACK_BIT = VkStencilFaceFlagBits 0x00000002++-- | @VK_STENCIL_FRONT_AND_BACK@ is the combination of+-- @VK_STENCIL_FACE_FRONT_BIT@ and @VK_STENCIL_FACE_BACK_BIT@, and+-- specifies that both sets of stencil state are updated.+pattern VK_STENCIL_FRONT_AND_BACK :: VkStencilFaceFlagBits+pattern VK_STENCIL_FRONT_AND_BACK = VkStencilFaceFlagBits 0x00000003+-- | vkCmdBindPipeline - Bind a pipeline object to a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer that the pipeline will be+--     bound to.+--+-- -   @pipelineBindPoint@ is a+--     'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint' value specifying+--     whether to bind to the compute or graphics bind point. Binding one+--     does not disturb the other.+--+-- -   @pipeline@ is the pipeline to be bound.+--+-- = Description+-- #_description#+--+-- Once bound, a pipeline binding affects subsequent graphics or compute+-- commands in the command buffer until a different pipeline is bound to+-- the bind point. The pipeline bound to @VK_PIPELINE_BIND_POINT_COMPUTE@+-- controls the behavior of 'vkCmdDispatch' and 'vkCmdDispatchIndirect'.+-- The pipeline bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ controls the+-- behavior of all <{html_spec_relative}#drawing drawing commands>. No+-- other commands are affected by the pipeline state.+--+-- == Valid Usage+--+-- -   If @pipelineBindPoint@ is @VK_PIPELINE_BIND_POINT_COMPUTE@, the+--     @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support compute operations+--+-- -   If @pipelineBindPoint@ is @VK_PIPELINE_BIND_POINT_GRAPHICS@, the+--     @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   If @pipelineBindPoint@ is @VK_PIPELINE_BIND_POINT_COMPUTE@,+--     @pipeline@ /must/ be a compute pipeline+--+-- -   If @pipelineBindPoint@ is @VK_PIPELINE_BIND_POINT_GRAPHICS@,+--     @pipeline@ /must/ be a graphics pipeline+--+-- -   If the+--     <{html_spec_relative}#features-features-variableMultisampleRate variable multisample rate>+--     feature is not supported, @pipeline@ is a graphics pipeline, the+--     current subpass has no attachments, and this is not the first call+--     to this function with a graphics pipeline after transitioning to the+--     current subpass, then the sample count specified by this pipeline+--     /must/ match that set in the previous pipeline+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pipelineBindPoint@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint' value+--+-- -   @pipeline@ /must/ be a valid @VkPipeline@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   Both of @commandBuffer@, and @pipeline@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipeline',+-- 'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint'+foreign import ccall "vkCmdBindPipeline" vkCmdBindPipeline :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineBindPoint" ::: VkPipelineBindPoint) -> ("pipeline" ::: VkPipeline) -> IO ()+-- | vkCmdSetViewport - Set the viewport on a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @firstViewport@ is the index of the first viewport whose parameters+--     are updated by the command.+--+-- -   @viewportCount@ is the number of viewports whose parameters are+--     updated by the command.+--+-- -   @pViewports@ is a pointer to an array of+--     'Graphics.Vulkan.Core10.Pipeline.VkViewport' structures specifying+--     viewport parameters.+--+-- = Description+-- #_description#+--+-- The viewport parameters taken from element i of @pViewports@ replace the+-- current state for the viewport index @firstViewport@ + i, for i in [0,+-- @viewportCount@).+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_VIEWPORT@ dynamic state enabled+--+-- -   @firstViewport@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxViewports@+--+-- -   The sum of @firstViewport@ and @viewportCount@ /must/ be between @1@+--     and @VkPhysicalDeviceLimits@::@maxViewports@, inclusive+--+-- -   If the+--     <{html_spec_relative}#features-features-multiViewport multiple viewports>+--     feature is not enabled, @firstViewport@ /must/ be @0@+--+-- -   If the+--     <{html_spec_relative}#features-features-multiViewport multiple viewports>+--     feature is not enabled, @viewportCount@ /must/ be @1@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pViewports@ /must/ be a valid pointer to an array of+--     @viewportCount@ @VkViewport@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   @viewportCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Pipeline.VkViewport'+foreign import ccall "vkCmdSetViewport" vkCmdSetViewport :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr VkViewport) -> IO ()+-- | vkCmdSetScissor - Set the dynamic scissor rectangles on a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @firstScissor@ is the index of the first scissor whose state is+--     updated by the command.+--+-- -   @scissorCount@ is the number of scissors whose rectangles are+--     updated by the command.+--+-- -   @pScissors@ is a pointer to an array of+--     'Graphics.Vulkan.Core10.Pipeline.VkRect2D' structures defining+--     scissor rectangles.+--+-- = Description+-- #_description#+--+-- The scissor rectangles taken from element i of @pScissors@ replace the+-- current state for the scissor index @firstScissor@ + i, for i in [0,+-- @scissorCount@).+--+-- Each scissor rectangle is described by a+-- 'Graphics.Vulkan.Core10.Pipeline.VkRect2D' structure, with the+-- @offset.x@ and @offset.y@ values determining the upper left corner of+-- the scissor rectangle, and the @extent.width@ and @extent.height@ values+-- determining the size in pixels.+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_SCISSOR@ dynamic state enabled+--+-- -   @firstScissor@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxViewports@+--+-- -   The sum of @firstScissor@ and @scissorCount@ /must/ be between @1@+--     and @VkPhysicalDeviceLimits@::@maxViewports@, inclusive+--+-- -   If the+--     <{html_spec_relative}#features-features-multiViewport multiple viewports>+--     feature is not enabled, @firstScissor@ /must/ be @0@+--+-- -   If the+--     <{html_spec_relative}#features-features-multiViewport multiple viewports>+--     feature is not enabled, @scissorCount@ /must/ be @1@+--+-- -   The @x@ and @y@ members of @offset@ /must/ be greater than or equal+--     to @0@+--+-- -   Evaluation of (@offset.x@ + @extent.width@) /must/ not cause a+--     signed integer addition overflow+--+-- -   Evaluation of (@offset.y@ + @extent.height@) /must/ not cause a+--     signed integer addition overflow+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pScissors@ /must/ be a valid pointer to an array of @scissorCount@+--     @VkRect2D@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   @scissorCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRect2D'+foreign import ccall "vkCmdSetScissor" vkCmdSetScissor :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstScissor" ::: Word32) -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr VkRect2D) -> IO ()+-- | vkCmdSetLineWidth - Set the dynamic line width state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @lineWidth@ is the width of rasterized line segments.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_LINE_WIDTH@ dynamic state enabled+--+-- -   If the <{html_spec_relative}#features-features-wideLines wide lines>+--     feature is not enabled, @lineWidth@ /must/ be @1.0@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdSetLineWidth" vkCmdSetLineWidth :: ("commandBuffer" ::: VkCommandBuffer) -> ("lineWidth" ::: CFloat) -> IO ()+-- | vkCmdSetDepthBias - Set the depth bias dynamic state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @depthBiasConstantFactor@ is a scalar factor controlling the+--     constant depth value added to each fragment.+--+-- -   @depthBiasClamp@ is the maximum (or minimum) depth bias of a+--     fragment.+--+-- -   @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s+--     slope in depth bias calculations.+--+-- = Description+-- #_description#+--+-- If @depthBiasEnable@ is @VK_FALSE@, no depth bias is applied and the+-- fragment’s depth values are unchanged.+--+-- @depthBiasSlopeFactor@ scales the maximum depth slope of the polygon,+-- and @depthBiasConstantFactor@ scales an implementation-dependent+-- constant that relates to the usable resolution of the depth buffer. The+-- resulting values are summed to produce the depth bias value which is+-- then clamped to a minimum or maximum value specified by+-- @depthBiasClamp@. @depthBiasSlopeFactor@, @depthBiasConstantFactor@, and+-- @depthBiasClamp@ /can/ each be positive, negative, or zero.+--+-- The maximum depth slope m of a triangle is+--+-- <<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAigAAACoCAYAAADKIhV0AAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO2dedgdRZm37+whJiABwhIghEU2QQREBEVAQEXAcd9wQRAdmVEcdPy+UQRGQAXX4RNFYcCFYVwQBAEHBNcRBzTgAigSSAib7FuAJJB3/nhOf6dPd3Wf3tfffV195XSdqq7nnJxfvbU89dQkRN85BDgc2BS4E7gEOBt4KpDvTOAwYHKl1gkhhOgby4H3T6rbClEbk4GvAEc63lsCvAX4zeB+DvBoNWYJIYQQ/Fqj4f5yPO7OCcBmwE+BAwb3jwFnAatLt0oIIUTfWQ6cUbcRoh52BZ4BJsZcjwE71GSjEEIIIXrGlYzvnHjXH4GZ9ZgphBBCiL6wG8k7J951bC2WCiGEEKI3nE36DsrjwIZ1GCuEEEKI7jMT62yk7aBMAJ+rwV4hhBBC9IBXk61z4s2irFm9yUIIIfqIthn3i1fnKPssYF5RhgghhBBxqIPSL/at2wAhhBAiCeqg9IeFwIK6jRBCCCGSoA5Kf3hJ3QYIIYQQSVEHpT/sWrcBQgghRFLUQekPu9RtgBBCCJEUdVD6wWRgp7qNEEIIIZKiDko/WAjMqtsIIYQQIilT6zZAVMI2dRsgRAHshMXy2R3YHlgXG2Q9BNwM/Br4JnBTXQYKIUaQZsVYjiF7BFn/tWXVhoveMx04HLiR0d/iYuBnwC+BewPvnQesU4OtQghpVqTkK6iDItrJexn9DX4f2CqQZxJwILDMl+/PwPrVmSmEGCDNilRchjooop28j+Hv79wxeTcF7vfl/3G5pgkhHEizIhXBqTZ1UERb8Bq7FcB6CfJ/iNHf7J7lmSaEcFCYZrWLpx9sGvPek8AJwG7APsBpwMoqjBIiBb8A7kuQ7/zA/cEl2CKEGI80K8ayNtEzIk9g3tVBXgI86MivGRRRNbsDnwVem6LMUwx/s98rwyghRCTSrEjMNkR3UP4xpty+wCrUQRHt4xGGv9mLa7ZFCDEep2a1xNN9NohIvw3b3RPFVcCnijdHiFKZCczx3f+1LkOEEImQZnvMm3DPnnw0QdkZ2I9FMyiiLbyQ0d/53rVaI4QYhzTbY/4Bdwdls4Tl34Y6KKI9nMzw93pdzbYIIcYjzfaYTxDunNyYovxkLAxxER2Ud2IxWb5G/M6iS4DfDK6Nc9YpmslbGf4fe9cROZ85i9EIlfvmfF4fkUZFFNKsKJwvEO6gxPmeuDiK/B2U4EzOXUQ3gA/48qnx6yYfJvy7PD7nMz/pe9bpOZ/VR6RREYc0KwrnHMI/qsNSPmMO8CjZOyjrAY877PhvYIoj/0pfnnUz1imaTdGN3QsZ7jq7BvOfEsmRRsU4KtesdvF0n7Udab9P+YzHgO/msOEw4FmO9D2A/xNImwdM890vz1Gv6AcbYcGepgJLsEBPK+o0qIVIo6JKEmlWHZTuM8eRdnOG53w7hw1vjnnvOGBn3/2OvtePYZFuhYhiLuYzMR+4E9gP+FutFrUTaVRURWLNTq3QKFEPwVHRPdhUblp+DszOUG4u8LyY96cB3wJ2xRq6V/req/sPzSzM9g2whngZ1rmbqNMo8f9ZG7gc+4N5O9bQLa7VonbSZo16SKvtQJoVI9zA6JrhNRXX/yrC65au6xLMS/wxX9pPK7bVY2PgbOwogKCdS7AR5ayabOsKedez5wKLGP6fLCzWvF7RRo16SKvVIc2KwlnC6A/qgorr/wjJGj/XVYdX9wsYPf476roJ2KEG+7pCnsZuXcyPagK4FVhQgn19om0a9ZBWq6VyzcoHpfsEl3jurbj+rX2vn8amh/+eZFOvaeK1FMFk4DxgHcd7f8BiQ1yKfY5tgJ+QPOCdKIZ52Kh9R2xq+KXA0lotaj9t0qiHtNoepFkRiX86dgI4qeL6L/PV/X1f+pcYP/LZqVJLYUOHDfcRPpVzb4bbLP/I6I4GkYwso7ENsD+IE8BfMCe7OLzRteJ0xNMmjXpIq9UjzYrCWcHoD+qYiuv/ra/u9/nSn0V4+cl/PUD1M3yTMB8dz4YrsO1wLvwB8D5YiXXdIm1jtxHWwE0Af8b+QI1DjV0y2qRRD2m1eqRZUTjBH9SRFde/xFf33oH3DiS68Usb7bYoZgKvAV4yJt8ujDbUcsRLR5rGbmOGh1beSPQJ3UHU2CVjCe3SqIe0Wi2Va1bbjLvNdEdali3GefA3BvcE3rsUWysOdpomgDPKNCqGp0jmSHw9FgVxGuadfhD5gtmBrdWWsW1za7LFvmkCC4CrgM0H93OBXyUs6wpSKMK0TaMe0mozkWZFImYT7vEG12jL5mFf3a6R7Azsx+u38cuVWZePJQxt/kEBz3sl0aPVrNcj2HR400g6GjvdkS/tpRmUeLqsUY8lSKt5qVyzmkHpNq7/36pDgN8ErDF47Yo4uQJ4BRavYHfM2/7EakzLjX82aq8CnreL7/V5wOoUZdcDDnCkn4gJvq1op2H5dFmjHtJqdUizIhFrE+6Z7l+rRd3iz4x+t1FOekm5YPCcZSnLzWUYY8B/HZfTnjIp42RUIaKQVvNTuWbV0+k2rv/fND19EU8w9P9zcz7PG5UtSlFmLYaho/18Bjghpz1CdAVptYWog9Jt1EEpl+BBjHmOnV8P2GTw+ncJy8zGYljsEkj/N8In0ArRZ6TVFiIflG6jDmh61sa2Lu6OBRWahB1qdRVwIRb0iUF6MErvmjnq9TdcSRq9NYAfAS8KpH8dODqHHUK0BWlViBazPvJBScoMbB34KaI9y2/BTnQFaxCD7384R/2zsVDcmzE+2uUMbKo4WP83aPYuAD/yQRFZkVbroXLNagal27g8whXqOcxa2PSrf4TzKHAq8EMseNAuwMnAlcAemLNbENcOiKQ8TrIYNdOwcOTBjuZ3gXfTjV0AQkQhrQrREdYj3OM9pFaLmsd0RkNmT2BnejzPkXdNLHTzNcC7CH+3h5Zs6xSswQvWeyHtG2xoBkWkRVqtF2lWFMo6hH9Qr6/VoubxWdJ14t4wyBNsKMvu/E0GznXUeRnuiMFNR42dSIu0Wi/SrCgUVxyUw2q1qFlsBTzD6PfzozFlZhI+gNG7XlySnZOAsxz1XTmwp0ymAG8EzseicT4BLAduxdbWjyZbTAk1diIN0moyytIrSLOiYNYk/IOS1/iQLxP+fvZJUO5PjnITuNe6i8Bl568I70womgXYLgWvzruBnwPXYmebeOnvyPBsNXYiDdLqeMrUK0izomBmEv5BHVerRc3ib4x+N3eTzLP+54S/19tLsvFzjrquId82ySTMBZYO6lsJHMHod7Mzw0Zv+wzPV2Mn0iCtxlO2XkG7eETBrHKklTVySMNRwLaBtOXARyu0YRvsRFI/V2CiG4crvszvc1sU5iTgnwJp1wMvx3YulMlngE0Hr08Bzgy8vwg7w2ULLIy46BZN0KiHtDoe6VW0ktWM9njPr9ccwITimnatYhrU4zWO+pMuf13nKJsnroKLYx113EC+CJhJWYfh2v1qLI6Ei00YNopp0QxKs2mCRj2k1Xiq0CvoLB5RAsHTi+s+en4ysDDivS0qtGMdR9rNCcuuHbifAL6Tz5wRjgH+NZD2V+BlWJyHstmf4W6DG4A7I/Ito7zpclEfTdGoh7QaT2f1qg5K9wkGJMrTgy6CTbDoii6qbPxmOdLuTlBuJsNzODyuJv2pplEchW2n9LME2Be4p6A6xrGn7/X/VFSnaA5N0aiHtBpPZ/UqH5Tu8ySjo4gNMD+UB+sxJ7aB27IyK+AhR1qS6JDbEe7Yn5XfHMAc204LpN2BNXh3JCj/QqxBXoVF1cxK2rNGRLdoikY9pNV4pFfRWm4hvG64d432HOmwx7vOqNCOPR31J5ld+migzJ+x2AN5OZRwnIe7geekeIYXkCqtE+AawNNE/78Er7enfL4L+aA0l6Zo1ENaHaUOvYJ28YgScI00dgZ+VrEdHnEjsCpHZ9dg381sX9rsiLx+/i5w/y9YY5WH1wPnMDraux/Yj+Rr7dOAHQevf5uy/q2wqWmwxs8L5LQauM2R/5qUzxftoika9ZBWR5FeRWf4JeFe73/VaM8PHPZ415KKbflqoP6Dx+TfLZD/8gJsOASLW+B/7oPATimfs5Ov/Ptz2HOY7zmLcjxnHJpBaS5N0qiHtOqmKr2CdvGIEnDtwX8p9WwXhPgR2CZUe1bFp7BQ0B77xuSdBHzad38X8M6c9b8cO9nUf8L0o8ArsBgKaShqHVrr2aJJGvWQVst/VuPQEk/3cXVQZmDTn+dWbAvA5jHvTR68X1UgoaXAe4FvDe4PwxrCex15P8IwtPaDwIEk20kQxUuBCwjvlrgVG1WlHVntPPj3afIFoup0gycS0SSNekirbqRX0Wq+gnuq9uoabNkwwhb/dVANdr2PodPZtYzuYlgTi8zo2XcztjsgLz9i/HeR5Uo7mvMzBRules96QY5njUNLPM2kqRr1kFaHVKlXkJOsKIEHItJ3x9Zpq3SgSuJgV0echa9iI5nPY9/LzVjAo6eBrbE4DI9h2wpPxkJ+52WX8VkykWcUtR3mdAf22f+Q3xzRMpqqUQ9pdUjn9aoOSveJ6qCACXi/qgwhWeNXxy4BsBmlF2Gi3w/bxjgLuBhzPruccNC7PGxY4LOKwt8Q/4lwFGLRfZqsUQ9p1ei8XtVB6T5x4ZZfBrwSuKwiW1wjr2cYjU1Qd+N34+DqI1rPFm3QqEeftQo90Kt28XSfcSGXT6O6HT3Bhm0l4WnJpjR+faTzDZ4YizTaHjqvV3VQus+4DsoW2HpuFQQbtiXYwVp+FlBMtEeRjinA83z3nWzwxFik0XbQC72qg9J97kqQ50gsCFHZBKePF2Nb9fxMwxpAUS3bMjyUrZMOdyIR0mg76IVe1UHpPg8wGuAoim8QH/8gL+sCzw6k3Yo1gEE0hVw9/uniG4Cn6jJE1IY02h56oVd1UPrB0gR5ng18n+hj1vPicr5zjc5AjV8ddH49W4xFGm0PvdCrOij9YEnCfM/HAh2VgatBW4x7dFZnnIW+0osGT8QijbaHXuhVHZR+EHRyi+MDWGjnonE1frcCy7CdAuPyivKYTA8c7sRYpNF20Bu9Kg5KP0h7bsbpmACeLtCGqMZvNbYEtdWYvKI8tmW41byzDnc18Gbf6yeBH9ZlSEKk0XbQG72qg9IP0gYz2g54N/C1Am0INmj3MHTeXcxo47c5diLpRIH1i1EOBT4+eO2PgzMJuM53fy+wV1VGdYzzfK//Rvs6KNJoc+ilXtVB6QdZTsw8FjiH8NRuVlzbF12vAWYC84E7CqpbhNkXO7skyJRAustBUnQTabS59FKv8kHpBw8Dt6UsszHwloLqXxNYL5B2a8RrD00hl8u7sdHXuOvAugwUlSKNNpte6lUdlP7wPxnKfLCguqN2B7hex5URQpSDNCoaR1lLPNOBPYAdsJ75o1gwmatJdsrk+sCewEIsauF92GmN16A1z6z8klGnvSQ8H9gJuD5n3VHOd67XcWWEEOUgjYrGMa6DMg9z7orjIuDVg9ezgY8ARwHrOPI+CHwa+BzmGR7k+cAJ2DSV66yHZcDRwA/G2CTC/DxjubdTTgdl3OhMcRaEqA5pVDSOcUs8uyZ4hrcHe1fMGfMTuDsnAHOxQGBnBtInAccDvwUOJvogqk2A87E/miIdN2AdvLS8voC6XQ2Zf0T2BOFDDTU6E6I6pFHROMZ1UDZlGElwMXC3I8/vgP2AnzE8y+Ux7I9h1HLOYQxnXaYA3wKOG9gzgS3p3EV0HI7/h83WiHRcmqHMptgyTx6CDdlywo1dcApZo7Nu41qq1fJtfUijYhyVa3bcEs9XB5fHewjHxpgALsBmQT6JHTrnTQdOAfYGvsLoHnqA92JxAf4NeBu2y+RfgQuxXScAc4B3Aqdi29o81gReC3xzjP15+UdGI/ZVyc+Abxf8zO9h33taDiTfMk+w8XOtZy/G/JY85mC+SOOWGEU7cQ0+igwMKNIhjYpxNF6zX8U6JN71KHAL9mMOdkD8bIl9EH/Zh4F3DF7/gNEOSJAPBcpOAJ/P8TmS8iNHvVVd/o5hUUwG7sxgyxU56lwD8zfyP+9CR77jHPXu4cgnusFRhP+/P1qrRcXj/2zB2YgmIY2KJFSu2bTbjHcJ3M8B1gb2If68l1uAawNpa2Eh1a8C3kD8cdHnOtI2jLVUuFgNnJWh3J7YbqosbInNrvlxOdxpl0C/aPxorEdIoyIJlWs2TQdlGrZtOMhR2DkN47jdkTaBLe88M6bsvcCKQJoas2ycAaxKWWYNsi91jXO+81CchX7h+g2m/V2KYpBGRRIq12yaOCjPBWYE0hYB30lYfroj7Qskn/oM2vpIwnJ5OIFyllqSkKTTl4U7sRD270lZ7gXYLqu0jNu+6KHRWb/QDEpzkEZFEirXbJoOSnB5B2w3TVIv3nmB+2ewJZ4kzCW89ThuSakogstSXeGT2MzVrBRlXP//SRgXAMrjHmzngP8grKJ2CRyPrZ+L6jgB+96jcI28mtpB+Wdg55zPWAv4zwzlriDbsmwapFEBDdRsng7KU8D3U5TfJnB/JclnT4JlAf6Som4xyjLgRODkFGW2z1hXsPFbDSyJyHsro8uIGp11lzbNoOwFvCrnM2YCb8pQ7mGq76BIo8JFo31Qgh2U32DxTpKwMTYL4ufyFHW7fF+uc6SJ5JyKHT2QlG0z1hMcYd1B9AnJwVHbXMwJW3SPNnVQuo40KpLQ2A7KNGDHQNovUtTjWh7IU/5OtPc+L09jpxU/PC7jgLWADVLWMR2L/uvHtbYd955GaN2kTUs8XUYaFUlp7BKPy0H2mhT1BDsYK7Gw+FnL/86ZS6RlKXAEyZfqFpIunsNCwr5DrrVtj6jzPrrqC9Rn2jSDktVZ/mLf64fJdkRHWc7yHtKoSEpjnWRdMyBpOgnB8n8kegoxyHSsg5S17jwcgx1gWAdXAmdXUM/5WHTgIxPk3Zx0y0JJdwd4lLVL4Hjinb9E9bSpg1LEH98VWODHpiGNiqS0poNyF+lG0nlmQHYgvEW5qg7KPuR3jsvK41TTQQGL1PtSYOsx+TZL+dykuwM8NH3cH7TE0wykUZGUyjWb1AclTwdjPnZeQ9byrtmbRSnKi/E8AbyV8bNaG6V8rmsLYtzobAnhoH1q/LqJq2FToLbqkUZFUirXbJIOylTCDrJ5Oxh5yt+F+1RlkY9F2M6eONJ2UNJOH6/CdhD40Ymp3UQzKM1AGhVJaaSTrMtBNk1EUZeD7B9zlK/SQfZjwBcrrM9PsBGogk8DhxO9WydvB+Vh4KExZRYDC3z3GwCzsSUv0R3a5IPSZaRRkZRG+qDU7SAbjIFSZQclzU6jLvA4cCzw9Yj3g9GA45hC2GclbmTmcSuwbyBtC/r3f9F11EGpH2lUpKGRcVDqdJB9LmEHWfmflMs3iF5CWzfFcxYQPgE5zvnOQ054/UBLPPUjjYo0NNJJNk8HYyPCywVV+q+I9KzCth27mE14uS+KtM53Hq4GUmvc3UMzKPUjjYo0NG4GJa+DrOuArTwdlHuwGRxRLmdg53G4WCfhM9JuX/TQ6KwfaAalfqRRkYbGzaBsjx1y5SdPB6NNDrJ95m6iHaHXSviMtLsD4vKo8esemkGpH2lUpKF2J9mDgdf57jd1lDkceP3g9UpGI5AeCezhu39xoOxKRpcPrgW+7Ls/HZjluw/O3mwOnOO7vwj4gcNGkZ/LgN0c6WsmLJ91dObtIvAfQKbGr3soDkr9SKMiDbVr9jxgIsUVnNG4LmX5E3xl56csO4EddifKYU/c3/kBCcvfECi3kvCZH1FcGyi7muS+L6IdrEP4t9W1P3L+z5ZmY0FVSKMiDZVrNrjE43JKjcO/DDADWxLKWj5t3cHyoliux+2HMidB2UnYIWR+lhKOQBlFcAp5EjZ7JrqDlnjqRRoVaal9iec5OZ61gvCW4DRchP3IRTNYjoW1DjY6s8JZQ8wH1gikJVnb9og6kOymFM8QzaYPHZQmt2fSqEhL43bxiH5zsyMt2Ki5yOp8F5e3a9P/fUe7eOpFGhVpadwuHtFvljrSksygZHW+i8urOAvdQh2UepFGRVoaeRaP6C/LHGlJZlCyBoCKy1vV6GwW8DwswOBj2HdwM+YQJorDc6z0D5LUQamONmsUpNM6kGZFoziCsNf2cQnKfc9RLrhlPI7JwFOB8rekKJ+FjYGzgScI274E+9xJZo9EclYw+j3PrtecXtFGjYJ0WjfSrGgMhxBuBE5MUM613TztD/kvgfKrKG/G7wXA/YRtDl43ET68UmRnOaPfr7apVkfbNArSaROoVLNa4hFxPOxIS7JTKzh9fC/pj2JfzOiusqnY4WZppqGTMBmL/+MK4f8H4DfYqO0AYBvgJ8ALsdGayMfHGW3gFKitOtqkUZBOm4I0KxrDjoRHJ18YU2Z9R5lfZ6j7NMdzXp7hOePY0FHPfcBrA/n2xgJZTWDHNQRPgRWiLbRNoyCd9hLt4hFxuEZU42bdXM53aXYHxJUpwwnvHiwqpsdPMOe74BEKP2N4LMNzgfeXYIsQVdA2jYJ02kvUQRFxLHekjfvN5I2vEFemjMZvAtgLG4ntBexP9InZ3/a9/gRyxhPtpG0aBem0l8gHRcSxwpGWpYPyVuClKet2HUpYVpyFp4ALEuS7HltznQbMBQ4Cvpuz7gOBS1LkPwS42Hd/JHBGgnKnA0elqEd0lzZqFOrVqcds4BGSD+7vwqL2ujgF+EiCZ+yMOTX3DnVQRBwrHWlZOihbRqSnpe5Ilc9gDc6Cwf2byd/w7Zoyf/CAzqTlg+VEf+myRqEcnXrsTLqVhzjdJdHuCuBPKerrFOqgiDiK6qAUxeaD+l2HGFaF3y9nrwKe9wBw7uD1c7CtlH6WAxcOXj9BeFp7ma/8DgxjWdwELPLl+3kBtopu0HWNQvE69ZjKUG/Pxfxg/PyK0QjcFxPNjQz1PBd45eD1fcDlg9fL0E4ZIZxMIew5/7UxZR5wlCny2rSoD5eRPzNqz0YFPnsj3AGoXpSg7I7AQwzjQKxboF2iW3Rdo1CuTj3eTPizfzzjs87yPeNthVgnRA8ICvArMXmf7chf9LVPkR8uA3cwas8BBT//VMKf+coxZRZiI7EJ4HZgk4JtEt2hDxqF8nUKNhMV/Ow/zPCc3bEZpwlsF5IYoF08Ig7X7yNu6narsgzxUfca95zAfdEzFZ8GHg2k7Ut0o78+cAUWJ+J+bHeD6wwlIaAfGoXydQoW2v+hQFpan7IpmAP7JOxcGzmy+5APiogjbQelioapjDrWBl6DjWTmY43F7cBVmP+H54szCXhWoKxrJ0MeHgA+B5wQSD8R2DOQthbwY2znxGPAK7Dw40JE0VaNQrN06rEIeJnvfiNssHB3wvLvB54/eP0l4IbiTBOi28wgPIX5xZj8xzryF32dX/DnO47woWf+6xaGo6L5jvc/XKA9HnMwR7lgXQf68szEHF8nBvbvXYIdonu0TaPQXJ2CzXgG6zo4Ydn1seNEJoA7Cc/69B4t8Yg4XAdBxR2vXWYMhKLrWAv4KXA8w8/5KNaA74iNhA7GnFavBLbHdigEebIge/w8BnzKkf5JbHQ4BfhPbHfCM8Cb0Nq1SEabNArN1im4txEHd+JFcSr2+QCOwXQvhEjIPMKjg5Ni8v/Kkb/oqwgRTweuCTz3PsJbBsGmhv8yyP8uhz2HFmCPi5mYL0mwvtcB/z54vXpgkxBJaYtGoR06Xeio69IE5V7iyz/OCV4I4WABYfF9Iib/PY78ZVwb5Pxcn3U885CY/G8Y5Ak2luPK5eU9jvr8x50fU2LdLqYAb8Sm8Jdgo9bl2JkslwNHU852TlEcbdEotEen9wfqundM/qnYCcwTmN/MtiXZ1Xq9yklWxOFyLHOFvwcLAb1+IO1B3EsVaXgj4SnTLbGGNgtbAR8KpF0CXBRT5mKsIXFN3T6Y0Y4knI2FwvbvvPDOFTkZc6atigXYwWw7D+69w9tmATthI8n9se/jmxXaJZLTFo1Cu3T6O0a3Ma+HxYK5PSL/B7CgimCnw99Ugk3Sq+g8exAeiRwdkXcnR95fFWDDSY7nvjPH877seF6SuA1/cpSbwCJAlslbHHU+wXDtugrmYtExvRHfEZgvjMfOWLTLCcwHQDSTtmgU2qVT1+d/XUTeDTEfmglsCTe426gIOqNXOcmKONZxpEXNoLgc424rwAbXM/JsY3x94P4ekjmYPuBIW0a5IzOwEWNwTX8Nql3e+QzD6KCnAGdijZvHImwU+AQWwVM0k7ZoFNql09860qLioXye4W6df8J9YnxeOqNXdVC6Td7e8XqOtMcdaeBukJrW+G2DOf76uYJR8Ubh0srvM9qRlKnYbh3X9sMP4f7/KZp1gHcMXk8QHUn4Vdha+jMV2CSy0QaNQvt0mrSDsg8WHh/gJ8D3SrClU3qVD0q3WYj5kVydsXxwvRra3UFxOaMtcqS5mO1IK/MAvkmYD8pBg/u7selhvz0fI3rJrSj2x3ZTgAWRujMiX9rotc8jfMbQb3E39qIY2qBRaJdOwX779zLaqdolkGcatmwFtuzyDyXZUpZeQZoVBXMQcFqO8qcTXlvdLyLvTx15985Rt8dULPaK/7lZp2uPIGzjgbElhiwJlFtNuWfefMlX1yeB3Qjb/hTlH8x2mq++Mwt87ocJf57jC3y+CNMGjUK7dOpxKWGb/Z20j/rSTy7RjrL0CjVoVks83eeNZJ8pW+BIi5pBca1v35qxXj9PE+7tr002p7dZjrQkIalnEm7krnbYVRTHYZ7+YJ3EY7GtkxcG8s2g/D/q/pGgKyiVaA9t0Ci0R6d+4pZ5NsY0DLaz58QS7eiUXtVB6T7zyB4DwHWwWPAgO7A/lPMDaauInl5MS1FTyMGDvSC6w+VnO8JaOStD/Uk4imGn4z8YnQr+GOGzkN6BrdkXxRqMjob9U7quGbW3F1i3KI+2aBTaodMgcR2ULzLcrfMhzPK9ecQAAAZrSURBVDm1KDqtV3VQ+sF7M5SZgfmwBHFN3W5B+Ld0O8U5YBXV+LlGi1G7kvzsH7j/C/CNDPWP4y0Ml+QuxbZq+h0DbwS+FSgzhWJHZFth0+SLgbt86asHacHrmgLrFuXRFo1C83Xq4lpH2q5YfBRvy/F/YbFJikR6Fa3lIIbrsGnPx9gFdzyB6Y68hzjyXZHNZCcfdzz/2NgSbqZhW3b9z9kuQbmrA2Vem6HucbwSc56bAH6BjYxcLMAa6+D3kfaY9yQc5nt+UifFpMgHpVraolFotk7juCtQ/6PAzQz9xVwz0kVSpl5BPiiiJCaRPm6GKxrj4wyPNPdT1u6AuGdlGZ2tAs4NpI3ruO2GHe/ucQXFj4L2AL6PNczXYYefRR1uthQ4w5FehuNdp9aze05bNArN1ek4gss8cxh2Sk4F/lpy/Z3Tqzoo/eEwwrEF4tjLkeYKggTlOd/FPStr4/cpRteA943JOwk7Tt3jLvJHyAyyAxbCexY22noF8MiYMicSXpPfn2SRNtPQuQavx7RJo9A8nSYharvtEsrduePROb2qg9IfZmJb3ZIwhfB6LsDfIvK3aXS2lFGfnLiO20cY/tF/ENvqmGQ3QRwHAOf4riuAZw/eW4ZFfjwH9/d/+uC9U3D7An3N99yziV4mSsIURk+N7USD12PapFGoX6dZiNLI0UTPiBaF9Cpah+eD4l0rSNZo7EN4rXECuCAi/2JH3t3yGO7gCUcdrqBMSXkfQ+/3axkdYa6JdQK8em4m2Rp4Er6O+7sNXsEOyvyE5bwr7+6MHXzPWoU5TReJfFCqpY0ahfp0moV5hD//JRXVXbZeQZoVBRPsoEwAlyUod66j3ATDSIh+pjI8eMp/FR2G/UZHHTvlfOaLGDrWPYMdgb4IOx/Dc3I7iWIP9FpEsg5GMIaEy8kx7vphTjvf5XvWdTmf5UKNXXW0WaNQj06zsozhZ3+S9JsTsvIuytUr1KBZhbrvH6/Aphy/GPH+VlhwNxeuadOFhH9HjwP3ZbIumtsIh8DeErg+xzOvxhq/7bAIuZtiviAXYw3g5RQ/Nbvz+CxOLmL0RNKy6dx6do9ps0ahHp1m5U9YYDawQ/sWV1RvJ/WqDko/OQW4A9s54mcaFh456ndxuyOtrBNSgxTthOfnxsElhnSywespXdAoNF+nWzD0hbmNUcfdsumkXuUk20+mAedhu0HWHKTNx3xMXLt3PFyNWtnOd3HPrGr6tG/I4a5bSKPV8EWGvh8fwGKfVEFn9aoOSn+ZioVOfwhzqLwdO4I7jqZ1UIocnYkh2zI8D+VpbM1ftBdptHwOZHjy+MXAjyqsu7N61RKPmAxslCDfSkZDKXuo8ese/uniG6huJCjKQRotl+kMffqeBD5Ycf2d1as6KCIpiwkfVAf1Nn7zsfgunRFkQ+jkenaPkUazsw2wGRZfJeocm39mGDH2U5Tz3cbRWb1qiUck5QZH2mRMvEGKjFDp8Qjh4GSTgM1LqKvvdLbB6yHSaD4+jYVmODXi/R2wc4jADic8pQqjAnRWr+qgiKS4Oiib4A4ItKQkG/o6hVwlk+mow11PkUbz4f3xX0B4m/884Hzs+30GOJxkpy4XSaf1qg6KSIqrg+JqeO4jfE5MUXSt8Wsi2zIMeNUph7ueIo1mZx7DmCYLsCjQL8ZiGf091hnwlnb+Bfjvqg2k43qVD4pIiuv47qrWtuOe3dbGr0kcynCa2h+NcxKjUSnvJX4bumge0mh2dgncHz64gnyeapd2eqNXdVBEEh7EHRGxqgBQcc9ua+PXJPYFtnakTwmkl+G3IMpFGs3OPMy5d2bE+0uxmZP/qMwiozd6rTJ0tqieg7A9+Xm5HHh5Ac8RQog2MQM7VHFz7Oyi6cD9WPj+a7HzaERJaAZFJOHXdRsghBA1sAL45eASFSMnWZGEq+o2QAghRL9QB0WMYznwm7qNEEII0S/UQek2fyT/vvyrgFUF2CKEEEIkRh2UbrMUOC3nM84vwhAhhBBCCD/PxvbDT2S4VgJrV2+yEEIIIfrAoWTroHynDmOFEEII0R9+TPoOSqujEAohhBCi+WyIncGRtHNSx7kSQgghhOghB2A7cpJ0UPaoyUYhhBBC9JAjgNXEd04+V5t1QgghhOgt78AOwXJ1Tn4ITKvPNCGEEEL0me2Bi4CnsY7JfcD/xU7EFEIIIWrlfwEOmR1Xp/LmdAAAAABJRU5ErkJggg== $$m = \\sqrt{ \\left({{\\partial z_f} \\over {\\partial x_f}}\\right)^2 + \\left({{\\partial z_f} \\over {\\partial y_f}}\\right)^2}$$>>+--+-- where (xf, yf, zf) is a point on the triangle. m /may/ be approximated+-- as+--+-- <<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjwAAAB+CAYAAAAgAMvUAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO2dd9gcVdXAf28q6RAgkAKhBCWRAAICIlKiUYxYQUFAEaQpikHg+/wQJAiGJkUpxkJTKaKGKipFUVCQQAgoVRICiRATCBCSkP5+f5wZ9+6du7Mzu9P3/J5nn8zcvXfu3ex5d87c00BRlKpwOPA74MfA5iH9fgs85L1GtTjXjUC38ZrS4nWUfCnD91iGNSrxiPqdHkLtt8p/HdXqpL1aHagoSqH4KnCpcb4/sDvwkqPv7sDQLBalKIrSBiOA3ay237d6sR7trUVRlAKwMXCu1TYcuAHo6eg/yDhekdaiFEVRioQqPIpSfo4ABjja9wC+abUNA3ob58vSWpSiKEqRUIVHUcrPwSHvnQHsZJxvbxy/BbydyooURVEKhvrwKEq5GQrsEPJ+b+DnwC6IcvMR473/pLiupOiPfL5NEQVtHvAc4uioKGmgMldRVOFRlHLzXprv1I4Dfg1cBxxjtM9Pa1EJMAo4CzgI6Ge99yJwNXABsDzjdSnVRWWu4qhJS1HKzbiI/SYhCs9Ao+3p5JeTCO8BZgFfJHjjARiNhLE+CozPbFVKlVGZ6wBU4VGUcvNO43gNYrL6MtG2359KZUXt0QOJLtvQ8d4TSI6hO5HPui1wD7BFVotTKonKXIegJi1FKTcjjeNbqeWoGAuc0GTsA6msqD02Aba22l4FjgWmG237AHchUWe3I47ZqzNYn1I9VOY6BN3hUZRys7FxfI9xfCrid9CIxcjTa9FYAMwwzu9BHEinW/3uAy73jrcDvpL6ypSqojLXIajCoyjlZiPj+BnjeBnhP8g3AetSWVF7dAN7AZ/2/p0IvNyg7y+M428j0TWKEheVuQ5BFR5FKTfmD+4C6707Ef8Dm27gR6mtqH1WADcD9zfpN4uaSWEoUk4jCYZRX+cnqdc7Elqfkjx5ypzKW0aowqMo5aaPcbzU8f4JwF+tth8iP9xlZy31T+JhCRjjsHNC1zFZAvwrhesq2ZKGzKm8ZYQ6LStKuXmaWhitK2vySmA/JOPy7oh/wtnZLC0TTCVvr4Suad6AbiCe6W9j4EOO9rPRxHVVIWmZU3nLCFV4FKXcvDdCn6XAKWkvJCfM37ANkerKjfwvouLfgOYDh8QYNxT4k6N9CpKwTqkGScucyltGqElLUZQyM9A63y6Ba/o3oJkxxgxBQpa3t9rPA85MYE1KcUha5lTeMkIVHkVRyswg63wjZ6/obAxs5h0/GnHMQOB3BH0xfkCwWr1SfpKUOZW3DFGTlqIoRWMD4FOIz9FIoAt4CfgjcAuwyuvXBQywxg5uc27zJhLlBtQPuIOgafEnwOQ216JkR14yp/KWIarwKIpSFPoiT6j/5x3bHAvMRiJjHkF8J3pafWxzQ1weALb0jv/dpG9fJLv13lb7z5C1qtNo8clb5lTeMkQVHkVRisAQZJvefHJdgjhf3oqk+t8ZmArcC+yBOG3auCLV4rAUd3i/TW+kAv1Eq/0m4Ej05lMGiiBzKm8ZogqPoih50we4G6lY7fMq8EHgcaPtDuAvSBmAq4ErHNd6M6U1mvREwoftpHO3AociuVqUYlMmmVN5Swh1WlYUJW+mUn/jAfgS9TcenyXAaV5/V+mMJckuLUAPxIRwgNX+e+CzSEXtNOjpXf83wFxgOVI+ZA4SrTMZMbco0SiLzOUlb6AypyiKAsCN1Kexn9LidbZBnlDNa93RZMx6SEJFVzr9PVtcRxS6gCsdc97rrSktRiMOrf58rwB/RnYdVhvtX2jh2kl9j2mS9BrLInN5yRukK3MQ/Ts9meDnb9S3KbrDoyhKnkwm+Dt0YZMxK2icNv+ptlfUmMsQfwmTvwIf99aUBkMRk8pOyI3maOSpem9kx2E3ak/5UcOaO52yyFwe8gYVljlVeBRFyZMDrfMFwH0Rxr3maJsHLG53QQ24kKA5YwYwCdnmT4vzgM294/OBn1LvoDoTKS+yHHgmxXVUiTLIXF7yBhWWOXVaVpTqcTww1mpbBvxvDmsJY1ukUrTJ3USLOHE9rLn8L5Lgu8A3rLZZwIdJ139jQ2omg26k6KuLjyLmD3VebU4ZZC4veYOKy5wqPIpSPb6K/LDbfIf0nw7jYCtlED29viv3yZ/bWEsjTgdOtdqeQsKDX09hPpOJSDQRwJM0ztMyL+V1VImiy1ye8gYVlzk1aSlKtehBLZGZzdZZLiQCGzranos4dgPrvBv4ZXvLCXASoiSa/Av4ABLCnDbvM47/nsF8nUCRZS5veYOKy5wqPIpSLTbDnTEWiqfw9He0vRJh3HrU6g/5PEiyT53HA9+z2uYCExCfjyyIW3ZAaU5RZa4I8gYVlzlVeBSlWoQpNWMyW0U0XFv0UbLOjiP423Vl+8v5L0cBl1pt85Gbz/wI43dDHGM/EXPefkj0ix9+a2YAvoJgeO7nY15fKabM5SVv0GEypz48ilItwpSaoik8cxxtKyOMs9PrPwtc2/5yADgM+BHikOmzADErvBDxGpci4btPINlwo7IN8lQPciPyk7qtazD3wzGurQhFk7k85Q06TOZU4VGUalEmhedh5OnadAaNUojxk9b5qSQTLXIgcA31T/J+uYGofh69ge2940dizv8Ete/oCOAq7/hxJCeK0j5Fkrm85Q06TObUpKUo1SJMqSmaD89q4DqrrdkadwV2N87vBqYnsJaPA9dTXwn7deTJ/skY13kXNR+qdnwgKu1LkSNFkbmiyRt0gMypwqMo1SJM4dmMWshpUTgHSWDmMyGkbxdwrnH+MnB4Amv4MFJ1urfRtgTYD8l/EoekbhqVv/nkSN4yV0R5S/pahURNWopSLbYKea+H936RsqO+CBwL/Nw7PwK5IS109D0F2Nc7XoxknY0SYRPG3sDNBCPb5iCZbl3FIsPwzQBraD0pXU9gB+O8kjefHMlT5ooob6AypyhKyRiOu7ih+do/obmSLuh4HLVokRnUmxkGIynu/bmeQ6JmkuAOmv+ftfKK+6RuMt64zmoapxlIgk4sHuqTh8wVUd4gW5mDnIqH6g6PolSHKE7JRfPj8ZmGPKFehPhLPIf4MqwB3onkT3kLiUiZSnIZo3du3qUlkjJn/ZNoUURKfPKQuSLKG3SIzKnCoyjVIYrCU7RILZMHkTwg45BIlc2Rm87tSPr/u4C3E55zeMLXS4LK+1IUiKxlrojyBh0ic6rwKEp1cO3erKU+EqTICo/PU96rU+mIm0/BUJmrUVmZ0ygtRakOtjKzCsmzEdZHKRbqPKpkTcfInCo8ilIdbGVmLlJ80GQ09Ts+SrEYS63e0xqCCquiJE3HyJwqPIpSHWyT1myCqfR7I0qPUkxM08KTwIq8FqJ0DB0jc6rwKEo12AhY32qbgyg9NmrWKi4d4UuhFIqOkTlVeBSlGrgcll07PKAKT5HpmJuPUhg6RuZU4VGUauBSYmbj3uEpai6eTqcHHeI8qhSGjpI5VXgUpRq4FJ45wDwkWqtZXyV/xgIDvONKO48qhaGjZE7z8ChKNWik8KxDagdt06Svkg+HAad5xwOM9i7gMeN8IbBXVotSKk3HypwqPIpSDWwlZgG1itCzqVd4tkJ+3LozWJcSzgSkjIFNT6vd5YulKK3QsTKnJi1FqQaukHTXMcB6wMh0l6NE5EhE+Wz2mpTXApXK0bEypwqPopSfwcDGVtucBsc+atZSFKWjUIVHUcpPowgt13HYGEVRlMqSlg9PH2APYDzy9LkEyeD4INEqz24CvA/YEskMuwgpWf8w6neQNUOAfZAbZB/gVWAWEr64LsL4bZBqxCOA1Ygj3EMESx60w4bAdt4ahwD9gDeB15GCgE8gRTSrSiOHZddx2BhFUZSOZRiiYIS9bjX6DwTORG6Krr6vAafQeGfp3cBtSHica/xLwKeT+nAdxo40/y6nGf0HAxcDyxr0nQscS+Pvcjfg/pC5ngA+0uJn6QL2Bi4BnonwuZYCvwR2jzHHURGua752scZPiTjuNNrnVMd19zDe7+94/1dtznmjdb0pbV5PyYcyfI9lWKMSj6jf6ckEf7sa9W1KM5OW/SPuwk9UtAvwOPBt5InbxVDgfOCnVnsX8iEeAT5G4+KGmwG/AT4fYV1K62yB7KZNplZUzmY0oiBNB/pa7x0P/BXYM2SO8cCdwP/GXNsk4HngPuDrBKMNVhKsBTMA+Cyyw3gN9aGYVcCVSNDc1VmORG2Z6A6PoigdRTOT1ubU2//7A8OtPo8CHwRuoXYjeQt4A6nv089x3SOQnaFbEeXmWuBQ771uZIdoNbLD5FrjZcDNyJO7Eo2VBH05tiCoXG4A3E3thuibodbDrch+Avk+jvbOP++d+ywDFnvXHegYfy5irvxthM8AsCsSVm0yHVGiH0LMWCCyugOyI3gMsmMFcDhi/trbW1sjngeu8477AJ9x9LkLMbeC7F6aPGGMHwB80jtegSjtPv8IWUNUbOVlGUEFZw6wqXGu2ZYVRSk6LheWlt1amik806g3cxwN/Ngx+c3ILs1ZiPLi31h7Iv4fP6Q+DwiIOeRW4AeIsvMC8B1EcXrD6zMIuUFdgNxwfQYjN7KfNVl/u3yN+rTbWXIf8IsEr/c0wRvjfILhyZd7/R5DzC13ISZGgFHAV5BdGXN38ChE4ViEfNcgcnAxsusHIh87A1OBidacPwB+RzSfIJO1iOz80vHecmRH50Hv+rciJlO8dVyN7Po04j7v5fN94ASrzzpEwXP9AU73XgBXGe2nUK8QJoH9vbp8dmZTb+YahPjK/SfhtSiKoiTFmohtqTCNelvaEuRJeA5BhcZkDEG/nDeAL3jH06lXaGxOJGjHu6iNzxGVOxzzZvUyFc20mG/N+Zj3722EK8NfI7jenwG/9o6PCxnbC9lBssdPiLjmKcaYqRHHgIRtv2bN+b4Y4/siztr2uic3GfcZo+9tMeaLSj9E8TLXdIuj3xkE176Ho19U1K+iGpTheyzDGpV4RP1Ojyf4uxXXDeK/xA1L39k6H4SYKvYlPOrmeWCG1TYEuAL4I3JTsP0uTK5ztNmmNaV9dkSe+A8lXIu+nKB57ABk1+16wpW1Ncguh83Hoi8TkJt8HKV3EbLTY3JyjPErgYOpZS/2OZfGu4CbU9sRfRlJ+JU0Y5DdMxNXGLpGaimKUjYS3eGJo/D0RhxNbY5HavU04yVHWzdyc20WMrwQueGYZLat1WGcj/hghbGO4G5Ff+TGe0aEOWYhUV4mUU2Hv0d2/I5CfL3icI91PoHGDvIuniG4o9MXUfJsX7WeiElyfWqmr7jrjUIzh2UfzcWjKErZWB2xLRJx8vBsRzAaZyZu/wkXfRxtFxN0rmyEvdY3I45rhzPJxrTkIooSmQY3Reznqqr7GLKbF4XHEadpn6g334e8Vyu8bJ0PRpT4WTGu8RPgQ8CBRts44ELEv8nnW8D7vePzkJ3MNGiWdNAn7x2eKURThpXkOJPONP9MQWUtb5KSvUR3eOIoPLY5C8T5MqrH9DDrfC1i0orCUIJP4kkmrmuEbYarOi8ifj1RcPX7W4y57B2/ITHGtorryWA48RQeEOf9XRGTlc+Xkd2n25BEi6d77X9HUjWkRbOkgz4LkOgtMyRfI7UURSkyrt/sXBSeFYiTalS2tc7vJfrujj0W4NkYcyvReCZGX1dIdzvjXSHrUeiF7NK8G7mBD0F8y1ymKldOoUY5o8J4AzHF3mfNcyWSe+g6b11LgM+RrvnVVnjWETQX+syh3iytJi1FUYpMYXZ4HqK5r4fPKGSXxuSuGHO7fIceizFeiYadSyYMl+YdZ7ztkxXXgX5zxJfnEIK7h3EIiw4M4wEkDcMUo20jxMzrK1bHIekW0sTepZkPrGrQ11Z4hiJBB6+7uyuKouRKLk7LvYHtrba/xJjHZQ5rZ/y/0fwhaRCWiC+L8VE5AamRNZn2lJ12ORspn2HiKzvXAjekPH8fJPu4ict/J+w93eVRFKWo5GLScjksPxxjHlthWUUtIV0r4x919lLaJW7iv6THR2Eq8H9W21okr8NNiD/OItxFakcB8xJci5/48HFkp8Tk9gTnacSWBE13Lv8dH5fCszXZ+KpNoTMdaJXsmYLKWlXIxaTl2qGJo3TY4/9B4213mz6IwtXq3O1wErXsvFlzL5INWKkxiaCy8zpShPTv2S8HEAXqEiQqweSHSD2xqH5qrRA1Qssn70gtRVGUOBRC4XmZeD/k7ezQjCcY0p6VwrMv8NGM5rJZiio8Nt9ztB1JfsoOwAgk87TNxsDPkRD2lmu/NCFqhJaPmrQURSkTiZq0ovrwtKOwjERq9rQ63rW7NDPGeKUajAfGWm2zcZdRyIoeiFKzkXf+ivX+B4H/SXF+V1h52A7PXIJJPlXhURSlqLiUm5YTD0ZReHoRdFhuV2FpZ/zLBG8sSvV5j6PNdhjOmm9SqwF2pXdsl544C8nZkwZxTVqrCeZP0lw8iqIUlcydll0Oy4/EmMPlsPyPNsZn6bD8LcQ/Iw+iJgDsFOxdQojvHxM39D2M3aj57TyDRI4t9/79qdGvNxKttSPR0zhExVZ43qB5iPlsYLRxvimSA2lpgutSFEVJgsx9ePJ2WLZz8GSp8MSJJFPSxeUHEyePFARzQbXKYKR+Vi8kn9BB1HZ2rgQmem0+WyElSg5NaH6Q6KwtrLaw3R2fOQQr02+NyrqiKMUj8zw8eTosb0fQYVn9dzoTV96luOaYnZJYCBKBtZV3fBLBumLHEsx2fAhweELzg+zS9LbawhyWfdRxWVGUspC5SasdhWUEsmXe6vh2d5eU6vCgo20CUkYiqqnosATWcTiivADcClzu6PMmUlLifur/xi5D6o0lUQcursOyj0spUj8eJS5fJig33yTdMipK5xFnh6cHUsD544gV6QakzM9/aabwtOuw7HqibkfhWUCw4rXSGTyDZFceZ7QNQQpznhJh/MFImoF22AZRWkB8rI4M6fsQUrH5u0bbQOSPcA+im3UbETck3Ud3eJQk+BzwfuN8OXByTmtRqkucHZ7LEEXc56NIctaz/YZmJq13Eaw11I7CUiaHZaV4nO5oOxl5suwKGXcwcFWbc/vOxwOpZVhe3GTMucAfrbadgXPaXAvEj9AK66MKjxKXAdb5S7msQqk6UXd4RiC1C22+DfTzT+wdno8BBxjnmzsu8CXgQO94FXCM8d4xyNOrz57W2FXAj43zGdSbBK6gvqK1vbu0FXCNcX4bMN2xRsXNNOoVWLscwr7U///eQi3PzQbAxcZ7rirjk6nJBkh697nGtU0flh0d46+xzo+lvsjodOQz2IJ9DvLEeTVS8mQxYuraAVFM9vH6XQ0cYY09gno5vYpanbfvI7tIIH8LvgK+ENndORJ5Ajnauqb5WV07OScCw433/oTU3opDqzs8fiSX+d2rwqPEZYR1rg+jShpEzcOzFe6H3t7Ib/ezrovfgETDRH3ZQv5YzPFmOv6RMcd2Izc5JTpLiff/O8UYOyrm2G5gF2P8cS2MH+j4DD2BC5C6XVGv8zbw9Yif4ShjrgUR+q9wrDHuZ53muEYznrSusYpgXa1GzLDGriOYeqIZN1rXmBJzvFIMWvke1ycow8emtD5QWasiUb/TDQnKmusBbRiiHNl9l2IEPtkmLZeTcBhmPp6+iAms1fFx57bHK53BWsRnZ0+kQKedOdhkCZIJeSyyW1MVuhDbtMmLhP9fmNhmrS5qUWeK0gzbF24NutOupENUk9ZCgq4C3cA3MHbZbZPWO9pY2EqCIeRxuI1wPwylfVw7JlGZT3vfzzRa28loxN8Qb/xBwHsRBWADZLtzEfAC4jhsbn/G/Qx2hGFUkv6sNiMx7NIeUfx3fBoVEX265RUpnYQd7fhr5G9OUZImTpTW6YiVaX/kd/9GxF3gv8RN3KYoReMt4K68F5ExrTosh/VVPx4lCtsBnzTOVwPfyWktSvWJm4dnOiG7jarwKEr5aNVhOaxv0XLx9EeczjdFlNp5wHPINrWSD72RTOKmK8RZlH9nUGWtuGSeeFBRlGLRatLBsL5F2eEZhdxEDyJotnsRibS7gGCRViVdeiBRlGYh3NuAqbmsJhlU1oqPH1RhKtmplpZQFKVYtLvDM5/6cP9G18ya9wCzgC8SvAGBlNOYgkSH2jX2lPToi6SnOMRo+wOS3yqqo3zRUFkrD7aCowqPonQQ7So865AnWJPR5Lvj2wNJi+HK7/QEkr/rTuTHblvgHoLFU5V0WImYeHymIY6hb+eznLZRWSsXtoLjMnNFQk1ailI+bJPWQiTfRBxmUx+V2QtReuKYxpJkE4Kf61Ukv4vphLgP4qQ+DElLsBNt/AAqkTkZkbGZiCmrzKislYvTqM8Tpt+BonQImxBMrvW3Fq5zqeM6H44xPulkcF1Ilmz/encTzObrc7HR7+ttztvplCGpn8pa9chF7tSkpSjlwuWwHMecFTYmTz+ebmAv4NPevxNpXCj4F8bxt6kvR6MozVBZ61BU4VGUctFuDp6wMXk7Lq8Abgbub9JvFrVt7aGIP0m7TCJeOZCPWeOPiTjucpQikKes+fiFiKPK3L9DrnV+xGu8O8H1lw714VGUcuFSSg4B9o55ncGOtqLl4mnEWuSJfLR3fjBwU5vX3KV5lzrsOoJRx2uRzXKRhqz57ES8TYcw2YkifyuBf8aYr3KowqMo5cKl8Ixp0J7EtYuK6aS9VwLXew24zjt+BxK2bLIMCc0Gyctim0DmGePHA9t7x08jjr4+f05grUq2JC1rPr2oycx2SPJDkweoj6a8PeRaT1GTyaHAR7zjRdQy0c9DHX4VRSkRprNl0q8VRH/izNvZ9Rlr/kZOp60wAlFq7P+f90YYuz3wutf/aWCjBNeVBnl/j1HIe41pyprPwQTl7bQWr3WlcY1DE1ld8qjTsqIoTUnT7NQXyT5bBuxCuNsleO2XcfvanN1k3JbA74H1kafpDyHhzkq5SVPWfB5xtNm7jFHYHTjCO/4ztR0kBVV4FKVMrI9sV6dJWfx4BlnnSe+knAsssdomAPs26L8JEt48HFFyJiJKj1J+0pY1gOeRnUGTuH5lPYErkLD7NcDxCayrUqgPj6KUh20ymGMM8KcM5nGxAfAp5Cl1JPLD/RLwR8R/ZpXXrwsYYI11OWG3w2vAhcCZVvvZwPustiHIzs7WSPHJ/YBnE16PkixFkjWfmcAHjPMRiAL9SsTxX6EWhfV94MnklqYoipItnyM9/x3/dV7EtSRpg+8LnIH4EDVa1/PUnnhHOt4/uY35GzEIcfq055pk9FkPMR34PlD7pLCONMnbPyYKnSBrILuK9lx2+oNGbAK8QS183d6VKhrqw6MoSihZRFFlHak1BNlRmkItffwS4HTEAXgE8qO/HLgXeBewleM6adR1egs4x9F+FvLk3xP54d4LCV8+CLgvhXUoyVBkWQN32HlUP54LkM8HcBIiu4qiKKXlGtLf4ZkVcS1JPKH1IRh1tohgeC6IGeFZr/8XHes+rIX5o7Ae4otjz3cAcJV3vM5bUxnplB2eMsjalo657oww7v1G/3tTWlvSlEHuFEXJkQdIX+GJ+mSYxA/W9xzzfzyk/2e8Pq7Q/LBx7XK0Y75lxvFJKc6dNmW48XSSrL1qzbWwSf9eSIX3bsTvaGyKa0sSNWkpihJKFuamgcCmGcyzDXCi1fZbwitx3478qLu2+RcntC4XVwP/str8mkpTEefmrOgJfBb4DTAXMb8sQ2qj3QVMJp08MWWmTLJmm7U2BjYP6X8CkugSpNDp02ksyqP0sqdRWopSDgYijokmi3H7mMThswR/1McAC9q8bjMmE3zgaqY4rEAUj3c53nsqiUU1YA3i6Hq91f42UsMoK0YD05GSBCDf0QxE+doRMYlMROTiZxmuq+iUSdYeQfI3mbwHiSCzGU5tZ2Q+8J30lqWypyhKduxIcGv9gQSu+13HdQ+PMK7dLen/WONfQRyBm+FHRJkv180gaQYgDq723GneZEyGImUGfNPFUdT/f+2ElA3oxn2TbkQnmLTKJGufcszZ6KHmBqPPZ1JcUxqypyYtRVEa4koI+EIC13VdI23T2bbAMKvtbuSHrxmu36zH215ROL2QH2hXqO+JiNkhbc6jZto4H/gp9f9fMxFzxnKkFIIilE3WXBmXXQkI90XKUQDcA/wqtRVVSPZU4VGUcuBSQsqq8LgcK2c62lzYaf4h3YKcXYgPz/7euZ0EbiDwrRTnB9gQ+IJ33A38sEG/jyL/t2tTXk+ZKJOsgUQE2o7KO1vnvamVPlkFfDXF9VRK9tSHR1HKQZUUng0dbc9FHLuBdd4N/LK95YRyCbUw5LMRZ9a/W32OAy4iPXPHRCSsGiR77r8b9NNSFkHKJGs+j1Krdu6vYwySEBHgG9QUuQtJN6t33rK3A8GivY/g3glriu7wKEo5SEvheYngU1na9bT6O9qipM9fD9jManuQ9H5sz0CiYEBqFJ2OhCnfYvXrS7o+CGYpC1vZUsIpi6yZhJm1RiFyCPK326ygbbvkLXsTkV0l87V/6IgQVOFRlHLgUkLmJHDdNQR/xDcg3SKldpFEgKURxo0j+Jt1ZfvLcXI8NSXmeurNBt9Ckg2afAHxF0kD06ThysarNKYMsmYTpvBcQq2214mI30yaVEr2VOFRlOLTF6npY7KaxtvLccnarOVS1FZGGDfROn8WuLb95QT4HHCpd3wnErVmOmk+BfzcGtOT5J62+yGKqB/BYm7pX0EwiufzCc1bRYouay5mONp2QcLVD/DO/4CEiSdNpWVPfXgUpfhsTfDhxGWKapUXkKgPkzGI+SYNHkaesk2nUJeDqM0nrfNTSd5J8iPIja0LuB84ELkB2JyBKEZ9jLYDkBtTS/4FBtsgid1AbkB+Mrd1uJXTtL6nKlBkWWvEK95ruNG2E3CZd7wS+FpKc1da9nSHR1GKT1r+O2HXStOPZzVwXcz5dgV2N87vJvkn3D2AX8iijFYAAAQJSURBVCNRMI8hhSQbFYp8EfiRo31qAut4AvnOxwCnGe2PG+3mK02n1bJTVFlrhq00D0KUEZBCoXbm76SotOypwqMoxScPhSftSK1zqPc/mBDStws41zh/mWjJEeMwHik30B+J4tkPeLPJmLMJ+oNMJLhb1g6V8qHIiaLJWhQa7RLOJRmlOgqVkz01aSlK8UnLYTnsWmkrPC8Cx1LzhTkCuTG5iiWeQk2JWAxMIlqkTRgfAg4xzvcD1veO51ErGXEd8oRvcgW16J/FBE0kPwb+6h13A1+h8U5RMyp308mBvGWtFRp915NpXZbiorKnKErm/IGgs+BBCV5/U8f1/9NkTFKp4Y+j5iQ5g3rlbjCiePhzPIdEzyTBTwh+ZtfLdl4dGXGc/2rHsbwnsjPhX8tVyLJdOqG0hE9estYKwwjK0m8znD9t2Yv6nZ5M8P+hUd+m6A6PohSftE1aC5Cnxn5G2zBk5yJKCG87TEP8Ay5C/CaeQxKcrQHeieykvIVETU1FqjMngZ29thH2k23UcT7tODCPo/adrEH8K5TWyUvWWmEhUhB0lHe+glpOqCyopOypwqMoxaYXtTo2JkkqPCC+AXYa/jHArITncfEgEv46Dvgg8nn7I1mNZwJ3kfw2/k7Nuzi5jWiFJ5PAVK7+SbRwaiWcPGStVf5JTeE5D5id4dyVlD1VeBSl2GxJ8O90KbAo4XleID+Fx+cp76UI6kORHkWXta2p+RK9QL0jdRZUUvY0SktRik1aVdJt8nBcVsKp5E1HicQlSMJREFPWioznr6TsqcKjKMUmbf+dsGumXVNLaUxPpHCiT2VuOkpTJlGrF3U7cEfG81dW9lThUZRik6fCozs8+TGWWuh7ZZxGlab0QXZ3QHyJvp7DGiore+rDoyjFRhWezsQ0KTxJ9iYNJXm2BbZA8vs0KsnwP9QyKp9DOn/rzais7OkOj6IUmzwVnpHAeinMpTSnkj4UHc65wO+Q0hAuxlMr5/AsteSXWVNZ2VOFR1GKSw/kidAmySzLPm8iT54mXcBWKcylNKeyN50Oxv9ORxNMbTAM+A3iqLwW+BL5hYJXVvZU4VGU4rIZtUgNk7kpzadmrWLQg4o6jXYww6jl1BmNZPreE8kH9WXkO/ZNWadSK02SNZWWPfXhUZTi4lI2FpFe9uMXCGYSVoUne8YCA7zjSjmNdjD239WXvJfNReRnyoKKy54qPIpSXLLy3wm7tio82XAYNf+NAUZ7F/CYcb4Q2CurRSmJMQxx/m3kE/cisrNzfWYrqtExsqcKj6IUl6ySDoZdu5HC8xD1vx9FzlpbBiYg9ZxselrtSftvleF7LMMam3EtUjBzV8QvbmMkBP1VJJv5DKQwZh7kIXu5fKf/D+Woq8HLbv+YAAAAAElFTkSuQmCC $$m = \\max\\left( \\left| { {\\partial z_f} \\over {\\partial x_f} } \\right|, \\left| { {\\partial z_f} \\over {\\partial y_f} } \\right| \\right).$$>>+--+-- The minimum resolvable difference r is an implementation-dependent+-- parameter that depends on the depth buffer representation. It is the+-- smallest difference in framebuffer coordinate z values that is+-- guaranteed to remain distinct throughout polygon rasterization and in+-- the depth buffer. All pairs of fragments generated by the rasterization+-- of two polygons with otherwise identical vertices, but @z@f values that+-- differ by $r$, will have distinct depth values.+--+-- For fixed-point depth buffer representations, r is constant throughout+-- the range of the entire depth buffer. For floating-point depth buffers,+-- there is no single minimum resolvable difference. In this case, the+-- minimum resolvable difference for a given polygon is dependent on the+-- maximum exponent, e, in the range of z values spanned by the primitive.+-- If n is the number of bits in the floating-point mantissa, the minimum+-- resolvable difference, r, for the given primitive is defined as+--+-- []+--     r = 2e-n+--+-- If no depth buffer is present, r is undefined.+--+-- The bias value o for a polygon is+--+-- <<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADgkAAADkCAYAAAAYPSVKAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd/wlVX34/9dnWXpHAanuIsUoqBQbiYFgiQVLsLe4Bo2aRE1ixEQNiiURe0yiWBL9xh41iiKaYGRNogaCIgSDCohIl97LLvv5/XE+97dz555bpp/53Nfz8ZgH3NnPnDl37sw55z1n5pwF1FdHA2synz8JnNxNViRJkiRJkiRJkiRJkiRJkiRJkiRJUhHvBhYzy4u6zY4kSZIkSZIkSZIkSZIkSZIkSZIkqW0rus6ASts79/nyTnIhSZIkSZIkSZIkSZIkSZIkSZIkSeqMLwn2ly8JSpIkSZIkSZIkSZIkSZIkSZIkSZLUU1cAi5ll226zI0mSJEmSJEmSJEmSJEmSJEmSJEmSZrEpcA8bXxC8udvsSJIkSZIkSZIkSZIkSZIkSZIkSZK6sKLrDKiUvRj+7S7vKiOSJEmSJEmSJEmSJEmSJEmSJEmSpO74kmA/7Z37fFknuZAkSZIkSZIkSZIkSZIkSZIkSZIkdcqXBPsp/5KgMwlKkiRJkiRJkiRJkiRJkiRJkiRJ0hzyJcF+8iVBSZIkSZIkSZIkSZIkSZIkSZIkSZIvCfaULwlKkiRJkiRJkiRJkiRJkiRJkiRJknxJsKfyLwle1kkuJEmSJEmSJEmSJEmSJEmSJEmSJEmd8iXBfnImQUmSJEmSJEmSJEmSJEmSJEmSJEmSeuoWYDGz3Kfb7EiSJEmSJEmSJEmSJEmSJEmSJEmSpFnsxPALgutwRkhJkiRJkiRJkiRJkiRJkiRJkiRJmku+XNY/e+Y+Xw1s6CIjkiRJkiRJkiRJkiRJkiRJkiRJkqRurew6Aypsj9znqzvJhVTOXwO7Tfj3m4BXt5QXpeGZwJOm/M07gJ+0kBdpufsbYPsJ/24ZLEnSfDJOU4yxmiRJkiRJkiQpBfZjKM8+DKl7PocmSVKiFrrOgAo7FvhY5vOpTA94pBRsBtwKbDrhb04HjmonO0rEycBTpvzNrsCvWsjLcrY98DvA1sCXgKu6zc7c2gQ4AHgAsCPhd9kcuAW4GbgM+OnSfxdr3veOwPVT/sYyWJKk+WOcpnGM1dphrJauzYEHAvsQHkDamnAv/UbgBuBy4BxCLCdJkiRJkiSpGfZjKMY+jHbYh5GurvswfA5N6t5WwMOA+wM7AeuBa4DzgB8C93SXNUlSUX9JeHFgsPxjt9mRZnYow+dubHlnZ7lTVy5l8jlxaXdZG3Id08/fWZa7CQ3xCwg3rN5IeGmsSQ8GrmT4mG7T8D610Q6EF/y/BdzBbOfJbcBa4O3AEwkBXVWPnmG/lsEaqKvMK7Jc3so3kyTlGadpHGM1Y7V5tBp4HfBfwJ1MP282ABcCnwGeR4j/JGkcY21JkiRJkoqzH0Mx9mHYhzGPUurD8Dk0qTsHAZ8Gbmf89Xct8F4mz8Ss9h3FbPX+X9Swr6JtkJ/WsM8UeIzVWycxfML8VbfZkUrbn9EC8Nmd5kgpOJPhc+LL3WYHCCPuNPWgzmA5FdizgbyvIAT7+f09vYF9adiWwBsIIzJVPT/uAL4OPLfG/MXOa8tgQTtlXmz5ahtfTpI0lXGaxjFWq5exWloeCXyNMKJmlfNlHfDvwPMJo/hK0oCxtiRJkiRJ9bAfQzH2YdTLPoy09KEPw+fQpOatAN5KuJZj13esjLiRcM0rDccxW3l9E3DvCvsp0wb5TIX9pcRjvGRlmztTLXbPfXYKb/XVoZF1P2g9F4pZA6zKfL4E+HgL+10JPCi3LoVzYjvCyBtZjwN2zq37BnB9ZPsVwLbArsCBhJfH8p4AnA08CvhJlczmHATcL7L+uhr3oVEPIDyElT/25y+tPxu4jPAC4aaE82Nf4DDgmcC9ctttQZhR8FbgszXl0TJY48xa5tXN869Za+imbpfUP7YR0rWG7spyYzVjteVqN+ADwDNy628kPFzxXcKIftcD64HtCZ0FBxPOiSOBhcx2KwmjEx4FvB/4BGHwmLsbyr/StAbb3n2yhnZ+L2Pt5WkNXu+SJEmS1Db7MdK1Bp83y7IPQ1X1qQ/Dsllq1krg88AxmXW3AicS6pqLCfXGg4BXAC9Z+rw98ClC/fz29rKrMW5ktG3wJEZnet0OOB54Vcn9xNogDya0JwDOAc7L/fsXSu4rNR5j9dZZONqClod3MzpiwcLELdSWKxn+bT7W0n4fwuib809oad9FXcVoXvONiJiVhIb6+ZHtFwk3blbUmM/VwIbcPs6oeR8adgSjsweeQ7jBMovNgBOIj+xyXI35fAeWwZpdrMzbA9im4vLNTHpHt/Zt5lNXdbuk/jFOS1eXZbmxmrHacvQMQsd59je4GPg9Zh9Bdz/gK8TPmcEIhJah88e2d790+XsZa/ef17skSZIktc9+jHT5vNl09mFoVn3rw/A5NKlZH2X4GrscuP+Ev38y4QXg7DbHNpxHFbfA6LPGg+VuwsQjdflcJu15evfIY6zeuILhE/SIbrMjlbaW4XP5253mRgN7MFoRvqKlfR8b2fcuLe27iNgxurBgGtsAP46k00S5fjyhMbMe+BJpHtPlYh/gWoZ/z5OJj+Y1zRsYPTceXU82ATgNy2DNJlbmXVRT2tl27W41palRXdbtkvpnLbYRUtR1WW6sZqy2nCwAf8Xo7/t3wFYl03xrJL1F4PSqmVXvdF1eq5gufy9j7f7zepckSZKkbqzFfowU+bzZdPZhaBZ97cPwOTSpOc9i+PpaDzx8hu3+KLfd7cABDeVR5RxAvHweLHXOPHdBJt06X4xLncdYvbAJozMLTXoTXErVAmEkkuy5/K5Oc6SBpzBaCT60pX1/MLffS1vab1GxY/T5EukcE0lnEXhbPdkcsjmwRQPpath3Gf4tf0z5GzSbAlfn0tuxhjwOXIdlsGZTV5mXt1smvctrSE/jdVm3q17PySxP7TgvWp6M09LVdVlurGastlysAP6R4d/1HuAlNaT9NUbPmXfXkK76pevyWsV0+XsZa/ef17skSZIktc9+jHT5vNl09mFomj73YfgcmtSMzQiziGavrw/NuO0CYabZ7LZfbCCPKu95jH95bbA8oob97MDGGYLnbabXuT3GTv/cL/dh9De7qouMSBXtB2yXW/eDLjKiEYfmPq8Dzm1p34flPqd6TuTzCXBWiXS+M2b9ziXSmuYu4M4G0tVGRwOH59b9BWEEljLWAd/IfL4IuKFkWnn7ADvl1qV6val7sTKvjvMlm67nX7O6rNtVr89mlg93nBctT8Zp6eq6LDdWC4zV+u8k4MW5dX8EfKyGtN8YWVfm/FO/dV1eq5iU7oOCsXbfeL1LkiRJUvvsx0hXSvdZUj0n7MPQNH3tw/A5NKk5LwNWZT4XeQl3EXhnbt3TcbC7lGTbBteM+Zs6Xro+hI0vrf2QcG7Mi7k9xr4k2C+75z7fRXjbVOl6FXDvBtJdDRzbQLptyd8YAAODVORvSPyYUNY0bSXwoNy6VM+Jus7fW8ast27up1fmPl8LnFIxzYsy/1/n9WAZrCKaOl+y6Xr+Naurul1KmXFanG2EdHVZlhurbWSs1m9/Abw0t+6TzD7a5jTnEEbjzEr1WlFzbHv3S5e/l7F2/3m9S5IkSVL77MdIl8+bTWcfhibpcx+GZbPUjAXgdbl13wV+XiCNLwO35tb9eZVMqVbZ8vMPib8T9BvA02rcz7wNcusxVi88jeHpLS/pNjua4kTC73Qu9T6Auprw2y8Cf1Jjum16D8PnchJTqwoIs5Nmf5uPtrTfhzA6he8TW9p3UfljtEiYKriovSLpLAJ/WU821aKtCSNn1T01++sz6R1XQ3oD78AyWLOLlXk71pDu4cALlpbVNaSn8bqq21W/7O/ojPLlGaeNZ5yWri7LcmM1Y7Xl4AhgPcO/5/nAVjXv528z6d+EZeg8su3dL13+Xsba/ef1LkmSJEntsx8jXT5vNp19GBqn730YPocmNeNwRsv6Mi/4fTmXxu3UX76ouAXgZsJvsoHQJngt8Tr+J4SBEcr6XCatZ1dIp288xuqNP2D4hDyj2+xogncy/FvV9QBq9sHTwfLaGtJt21qGv8O3O82NBvZgtOJ7eUv7Pjay711b2ncRsWN0Ycm0HhdJaxF4VvVsqmWPZfR3fG8N6T4KeOPSsn8N6Q2chmWwZhMr8y6auIVS02Xdrvplf0dfEizHOG2ytdhGSFHXZbmxmrFa323NaBm9CDy5gX29OpP+6Q2kr7R1XV6rmC5/L2Pt/vN6lyRJkqRurMV+jBT5vNl09mFonOXQh+FzaFIz3s1o2fDrJdL500g6T68pjyrvADb+Hhcsrdsc+AXxev4VFfZ1YSadfSuk0zdzfYyrvPGo9u2e+3x1J7lozmaEN98PArYjvL37Y+D7wB0zbL8roQJcDWwKXAOcB5xJuOjasgK4T27dQYTG71HAtSXTXU242bF3bv1uJdOr09aE324vwu+wDriCMGXqz3J/uwAcnFvX1vTiWwEPJ1xLu7LxPLmGcJ6kdE1tT8jrvoS3128nHNOz2VhZ1a3Lqd/z+76c0d9jBfBQ4MGEh7nvAH4FfA+4uOkMLqnzGD0msm4D/Q6UtwF+jdC42gnYlnDuXk9oWJ3JbOV5XRYIZeeDCWXldoT64AbCDZazCedQVftF1tUx2sp/Li11OyT3ua3rfFPCNbw3sDPhfLmOcK2fDfyypXzMoosyOKbreitW5qU+HXpq5VBW/hoYtHdvJLSXzgNuq3mfXdbtMX0oB/YjHLc9gC2AWwm/0SWEB3cvo93YYrlr83gbp6Ubp0H3dd6s5i1Oi+3fWK2fUmsjtRWrARzPaBn9PeBrNaWfdWPm/5tsN6fepuq6TGjz/MrqurweSO16n6TLcyWl+6BgrF2FsXb69cKA8bYkSZKkvL70Y/SlDwPmrx/DPozAPox62YdRTNvPoaV2vkyzXJ6LnySV5+yWm/zLwovAOSXSOXtM2l8qkVZR3rseL9s2GJSbdwGvBz4d+fs3AZ9cylsROwD7LP3/TTQ/aGVKZfRyPcZahv6B4TdWP9Ztdsbahfgbttnl5MzfbwOcQHgoM/a31xFmYVgxZn8HA19ldMrtwfJL4Ji6vtyMVhAKinxeys5UEZuZYhF4Xx2ZreDXga8QCvBxv/UPCLNsDewf+ZvnNJjHTYAXEEYsuXNCPjcQGh2vWNqmLsdN2OdgeW7m7x8HfJPx5/MiYRbRx7eUt2lLXTOknJFLN1tGbA28gRA4TDomD68pL5OcENl3mWOwKRsbjtnlqxXyVrTsrcMC8BvAiYRrfcOU/d8NnEqYIa9J+xLKx8un5GeREIi+l3KjrAy8OZLuTxlfb3VpNe2WwQuEOvgU4JbIvrPLj4BXUe8gFimXweN0XW9lxcq84wqmkS2bmugcSbUcyubvdwg3cKddA/csfYcqs4emVLcPdFEOFK0TNyVcS+dP2eYuwg3crmTzktJMgn063sZpG5eu4zTots5LuY2QWllurBYWY7V6tB2r7U7oZMin/egKaU6yFbBqadm25rT70Kbqukxo+/xKpbxO4Xrvw7mSyu8Fxtp15c9Yu5t7bn2K/yRJkiSlqw/9GF3329uPMRv7MMJiH0Y97MMoro3n0FI5X+bhufiU6555sxWj5/olJdPaldHf5Uc15HEc713P5j2ZfWTbBAvA/4zJywkl9nNUZvsmBhRIpYyOWS7HWHPg6wyfiO/oNjtjPZHpBe3xS397GOGN2Wl/vwj8Y24/C4QXM+6ZcfsX1vw9p1kBfCqSj6IPoI578PS9dWa2oF2AL0TyNG7ZALxyadvnRf49NgtXHY4hvKgTy9PtjK+MzgXuV1Me/nnMPrLL/oQ3yb84w99mj+mJLeRt2nJUxTxAaODlA95sGXEhs+XlDkJjo0n5crjsMfjDSDrrCaNmlFWk7K3D7xFG1Bq3r9sIDbpx//4+6n+JbvOldGP7vYcQdEyqM85l+CbzrN44Jr3Xl/8qjXkm7ZXBTyaMXBQ7Nncx/rc4lzB6Uh1SLoNjUqi3smJlXtGbkU/IbHtqrblLsxzKOprJ18CkvG0gPOz4sIL7TKVuH+iqHChSJz6QMNLWLMemy5khyOUlpZcE+3a8jdOGy5ou4jTovs5LuY2QUllurBYWY7XquorV/iaS1sWEe4p90oc2VZdlQlfnVwrldSrXex/OlRR+rwFj7WqMtbu959a3+E+SJElSWvrSj9F1HwbYjzEL+zDCYh9GdfZhlNf0c2gpnS/z8Fx8ynXPvDmM0eP4nQrp5QdmuINmJiXw3vXsvpPZR75NcMSYvNxKmOG2iNdmtn9XhfzGpFRGxyyHY6w5kX9r9c+6zc5YLycEWYMlNhrLkwhTn9+aWXczYXSDSaMEPXVpH5sw/GDnBsIU3pcD68ZsexNhdIY2bQJ8JpKXWR9AXUWYXjW/fZcPnj5oTJ6uAz4O/Cnwu8CfEKZjHfzGGwgjp7yH0d+l7sBmC+BDuf3cDXwYOJIwygKEkQAespSn/HlzCaNTuZfx14RzdbBckNvPzcCewP8tfV4P/Adh2tqXAL+/lMa4GxevqjFv+QbYj3P/Hlu2r7D/gYcw+r2eRAieb8usu4NQRlwf+ftsnpt0VWSfOxRM41CGv9dgeUvFvD2R4d/mtMg+nlRxH1ln59K+iRDMPQLYMvN3Oy3l7SuR/LyzxvzsCPx3Lv3/IpRHq9jYmFwgjPz0GkK9kc/T75fYd+xm9GD5BGE0llS8g+bL4M2Bv2X0WHyFcDP9Xkt/t5JwY+h4htsDi4RR8A+oIS8pl8FZKdVbWbEyb8eCaWRfon1rrblLrxwaGHcNfBV4BrAzG6+7nQg3SP4t8vdl2nyp1O1dlwOzxiNHEM6bwbp7CHXDpcRvTH2kZH7qks1LSi8J9vF4G6d1E6dBOnVeym2EVMpyMFYbLMZq1XQVq23NcL0zWMqM/teVvrSpuiwTurwXkEJ5ncr13odzJYXfa8BYuxxj7e7rBehn/CdJkiQpDX3ox0ilDwPsx5iFfRhhsQ+jGvswqmn6ObSUzpd5eC4+5bpn3ryI0eP3uQrpXRxJr84Xer13XcwC4Xqa1CY4OZKXMvn5XGbbZ5fM7zgpldF5y+UYa078kuGTcE2nuZndSxm9gJ5IGGHjNkKgkh1FZxPCyLk/i2w3GBX375c+/5xwHLIX77bAHxGfivt3a/5us9gE+GwkL9MeQF1Feg+eHsbo9L93EYKTLcZssyfwfTYGUGtz259ecx63ZTRw+wnwgCnbHcXoG+vfrDlvAN/K7eOHwP8u/f+/T8jnAuGBj/z5sI56Gmt7RtJ+WQ3pzuLYyL6fRGgE3k1oPB6c22YV4SZcrIJ+eEP53COyrwsLpvEC4gH+B+rL5v/vJZH93KemtDdn+Hr5NmHEt2n+IJef9dQzY9xKwvWTTfu1E7cI9iIE0dntDi2x/90ZH4gvEoL8kxg9j7uQv5lXdxm8DfDd3D6uYfqIWQ9i9Nq4gPqnak+xDE613oqVeReVSOfLme2fVlvu0iuHBrYBvsfoNfC4GbZ9O6PH/PkV8tJV3Z5iORCLRx7PxpsB3yS0PbI3KHZmtA3fVttonGxeUnpJMK8vx9s4rd04DdKt8yDNNgJ0G6eBsdoixmpVdRmrrSF+Hu5bMJ2u9KVNNa1MWA18NLJdHWVC1/cCsroor1O73rNSO1fyuqxfjbXLMdZOs16A/sR/kiRJkrrVh36MlPswwH6MGPsw7MOoyj6M6pp8Di218yVvHp6LT7XuGeeVwMc6Wl5Q83c5gdHj93cV0jsjkt5vV8zjgPeuizsgk/64NsEBxJ9JXs/09mlW9qXdOuuY1Mvo5XCMNUfylfvR3WZnZicxnO+bCRfEz5lc4e9LuNCy295IaNAsAv/C+BsFEEYWyl+4XT24uQnDbwoPlnEPoK4i/uDpe5rP6lh7A1fm8nM7odKcZhc2jqByVy6Nd9eYxy0YvSl0PuEt9Fm8i9Fj/qga8wfjRyU6idmmb45N6f3hGvL11Ei6h9WQ7iw+mNvvoIy4AjhkyrZfZTTfL20on0+J7OvzE/5+S8JNkiOB17MxQMoul9HcyAH50c0urzHth2bSPZPhhvI0p+by9dc15OfluTSLjJryosx2d1M+yPgIo79vbPk/wug5TTRsZ3FdLj91l8HfzqX/K8L07LPIBwCLhNEC65RaGZxyvRUr86oue9WUN0ivHGIpD2tzaV/N7EHjCuC83Pb3r5CfLur2VMuBfDxyE6GtcTvwrAnbbUmIP9puG42T/Q4pvyTYp+NtnNZOnAZp13mQXhthoMs4DYzVjNWq6zJW+xqjv+sFBdPoSl/aVEXKhFMieapaJqRwL2Cgi/I6tes9K7VzJa/L+tVYuzhj7XTrBehX/CdJkiSpG33ox0i9DwPsx4ixD6MZ9mHMpuo95j73YWQ1+RxaaudL3jw8F59q3TNOrH+hreWkmr/L+yL7+KsK6eVf+FwEnlkxj+C967Kel0l/Ut2Tb+sMlq/NuJ8dCDOSDsqZOmd6Tb2MXg7HWHNiO0ZPwEd0mqPZ/Q+jeb8OuO8M2w5GBMoutxJGIZjWyNglsu1ni2e/NpsQArx8nvIPoK4ivQdPNwHOiuSpyIi7b4tsvwg8t8Z8fjKX9u0Ueys7++b4YPlgjfm7XyT9ReDrbJyafpqDItvfQfWHmd6SS/Nuwpv+bYiNUnEzsz2s8dzItm9oJpvR0TnKLNcTpil+IfXPkpZ1Zm6/X60x7cFNkg3AgQW3fVkuX2dUzMsCcEkuzd8ssH12VLMfVMjH1oyOKjdtuYAwvfZDK+y3iNWRPNRZBv9TLu0NzHZjf2BrQrmdTeOKGvOXYhmccr1VV5k3WK6uKV8DKZVDA5/OpbuB2WY1yHp9ZvtbmP3cjOmibk+1HIjFI+sII3tOM4hH2mwbjZPNf8ovCfbteBunxcvtOtsIkHadl2IbYaDLOA2M1ZpirDabKrHalsRHUv1YwXS60qc21S3MViZkO2LqKBNSuRcw0EV5ndL1npfSuRLTZf1qrF2csXa69QL0L/6TJEmS1K6+9GOk3IcB9mOMYx9GM+zDmM0892EMNP0cWkrnS8xyfy4+5bpnnOX0kuBHI/uoUk+dHEnv9yrmEbx3XdZ7MnmaNIPtzsRnEl4EjphhP0dl/v7bFfIbk3oZvRyOsebEfoyefH2YknJT4E5G8/6cGbePPax5C7NPYZ7f9ydnzXhDVgJfYPQ7DR5AXUV6D54CvJrRPBUZOQXgkZE0FoH9a8pjbNSdPy+YxgKjhf25NeUPwugD+TzeRHyWkkl+GUnnYRXz9vVcenU8IDWLlcSD3jUzbv+bkW2Pqz2XQf4YlVkuJQQELyRMAd+UWNn7phrTfxTwxxS7cTuQvw7GTeU8q0MYPc6zjuYGcK/Mdh+pmJdtgI9H8jPLcj6hMbpNxTxM8ozIfpssg/+hRDr/HkmnrlkXUyuDU6+36ijzssupNeVrIKVyCOBpjH7nj5ZI58mZ7f+jYp7arttTLQfGxSOvm3H7twCfAt5ZIQ91yeY/1ZcE+3q8jdOaayNA+nVeam2ErK7iNDBWa4qx2uyqxGpHRva9CLygYDpd6Fub6sUzbn9EZNsqZUJK9wKgm/I6pes9K7VzJabL+tVYuxhj7XTrBehv/CdJkiSpPX3ox0i9DwPsx4ixD6MZ9mHMbl77MLKafA4N0jpf8ubhufiU655xltNLgp+L7GPW+64xX4qk96qKefTedXnfyeRp2kuL2UEQs8uZTJ+17rWZv39XhfzGpFxGw/I4xpWs7DoDmtkukXXXtp6L4g5k9C3qHzJ5yvSs2IgB72P2h2Lz5/hNM27XlPVsHC3jGZn1BwGnE4K4++a2eQ/wZ81nbax7Eyq8rHuANxZMJ1aI30w906RvxWgj61rgAwXTGTRkt8usm3Xa41kcGll3IsWv5YuBvXLrDiFUSGXl89bWTZsDGZ0e/VzCCBOzWIysu6FSjsY7JLLvSfnchHAu7QI8mDAK0J6EURBeRrhZ9RHCzZS6y6YHMlr2nlVj+v+5tJSxW+5z/vcvKhY07kUYQWsWNwMHL/3/lRXzcivhobdPEEaz+40C296fEFQcB7wZ+PuKeYnJT33eZBm8DnhribQujax7FPC/JdLKS6kM7kO9FSvzBiOnzOoNhPMZ6q9XUiqHtgI+lFt3N+WugezxrXrM2qzbUy4HYvHIhYSYYhbHl9zvvOrr8TZOG1ZXGwH6Ueel1EbI6ypOA2M1Y7V+x2qPHLO+7LFpS9/aVP8L/L8Zt6+7TEjpXgB0U16ndL1npXauxHRZvxprz85YO+16Afob/0mSJElqRx/6MfrQhwH2Y8TYh2Efhn0Y3WvqObSBlM6XvHl4Lj7lumecE6j/Zb1ZXVJzeltG1t1TIb31kXVbVUjPe9flLbCx/oBQdkzyPuAVhLZA1kOBZzN5AI5sOV1nfQ5pl9HL5RhX4kuC/bFr7vN64MYuMlJQrKHwd8QDrZj8y5H3AB+ccdudGJ16uc5GaFmDB1BXAMdk1semW+36wVOAlzB8EwPgixR/c3tdZN0Pmf1cmGQNo5XGSYRpiKtaQWiU311DWvnr4W7KjVZ+XWRdldnH9mS0jGnrpk2sjPhbwhTEs9g5sq6J63wPRkdquZDZR6BaCTyO0Hh8+NK6LQmjpj2VMFLBxZVzuVE+CId2H3ia5EG5z1WnB4+NkPU+wkglt86w/TrgRxXzkPcdQqByMOGlwecQP1dj7k2oJ38beCZwV435yl9vTZbBXyLMuFRU7KbFvUqkE5NSGbyGtOutWJl3EfHvPkk22EqlDIL6y6EXM3q8vkgYDauo8wmj/wH8T4U8tV23ryHdciDW1ng/9bTtyjqO0c6goran+EirAKdRbuSuWaV4vGdlnLZRXW0ESL/Og7TaCFldxmlgrGas1u9YLVZ230a59lmb1tCvNtUH6K5MSOleQNfldRl1X+9ZqZ0reV3+XsbaxRhrp10vQL/jP0mSJEnN60M/xhrS76QbG/AAACAASURBVMMA+zFi7MOwD8M+jO419RxaHZq8Bw7z8Vx8qnXPJFXu/abmjsi6/O9eRGzb2D5mtQbvXZe1PxvroIuY/i7QHYRBNj4R+be3A//C+O+VPQ6p1OfQfBntMcaXBPsk3ygo2nHclXxBeych4J/V/XOf/53ZR0vIbwvw0wL7btJ6wksjnwd+Z8zfpPDg6Qrg5ZH1nyqRVuxN7zoKxAVC4Jv36ZJpxabs3px6Ggf5h8FPpdyMoLERHGKji8wq1iDq6qbNXcA/F9j+fpF1PymfnbGqHqP1hN/7NMID/dkHz1cB/0qYqaauF8Ly+b2C2cvOMvYnjF71a8COhBu9+ZE4Bh6T+1x1FJXYza7fAv6PMJvfJ6kW0FRx9tLyJ4RZBY8BngbsPcO2TyaMsv+cGvOTL4OaLIPL1BMQvwlQ142BVMrgPtRbddULbQZBXZVDK6jv9wS4hvLXT1abdXvq5UDsxuVnKqRXh98EnlQxjS0IoxUVdSPtviSYwvEuwjgtqKu86EOdB+m0EfK6jNNi+zdWq4exWjuxWuye4M9Ip3M6pm9tqq7LhJTuBXRdXg90eb1npXau5KV0H7Tsvo21izPWbuaeW9/jP0mSJEnN6UM/Rl/6MMB+jFn2ndo9qAH7MCazD2Oj1PswYpp4Dm2SVO6Bw3w8F59q3TMvbomsq/LOT2zb2D5m4b3rasr08XyScMwPzq3fB/gDwguQeTss/TuEFzEvKpDHMlIto5fTMS7ElwT7I/+SYJnKtgv5gva/mb1i2ZMw6kHWvxXY90GRdWcX2L5p64C/AI4GNs39268IwUbXHgXcN7fuJkKAWdTqyLo6AoPDCZVL1l3An5dIa1NGf4v1hJFaqrofoeLLKnMcYXSkLag2ilX+Ol0HnFshvSr7/m/C1POzekDu81U0c3Oirhtb6wg3Qh/PcAC0H/BHhIfO65DPbxNB+O7AHxIepN9nyt9OUmVacIBvAlczOjrZXsCHgXcRRin5AiGg7mI0kHsIswt+h9CQPAx4HmG2otiN4oFnE77D6TXkYTWjdWod58UjGS2Dy9YTEGbGyqvjN0upDO5DvVVHmbcLG6dg/xVwaaUcxaVQDj2SUIZn3USxNmsT2qzbUy8H8sfiDOCGCulpsuVwvI3T6ms79qHOS6mNkNdlnBbbv7FaPYzV2onVdo+s+1mN6Tehb22q71OsTHhg7nPVMiGlewFdltepXO9ZqZ0reSndBwVj7XGMtdOvF2B5xH+SJEmSmtGHfow+9GGA/Riz7ts+jHrYh2Efxqyaeg4tL5XzJW+5Pxefct0zL2Izmm5dIb3YS3dlXxL03nU1ZV5g2wC8FvhW5N/eCHyc0RkZDyG80AnNzfTahzK678dYc+DvCSfPYFnbaW5msylhhIRsvk8osP1Tc9suAg8tsP1HctteVmDbNqwmvP2c/46D5X8Ibxl36W2M5uuUkmm9KJJWvqFQxgmRdOtcfl5DHgGeFUk7NqrHLH4VSespFfL29VxabY3qtJIw4k7ZMgJCXus4P6c5hdFj/lsV0js1kt4ZFfM4ECt731RT2hB+t7cQbmbWcY1VnUkJ4EhCYDRtXzcSRiw5mjQGStgUeCFwAePz/LGa9vWMSNpNlcFVrsNzI+kdWzGPkFYZ3Id6K1bmHVUwjSdktj21hjxlpVQO1X0N1KXNuj3lcqBqPNKU2DXW1nJSg98r1eNdlHFaPW0E6Eedl1IbIa+rOA2M1fLpGauVdyTdxGp3RfZxYg3pNqlvbaqi5+7Z1PfdBo4kjXsBXZTXKV7vkO65ktVl/WqsPTtj7bTrBVg+8Z8kSZKkZvShH6MPfRhgP0aMfRjDi30Y5R2JfRhlNfUc2kCK58vAPDwXn3LdMy9i7ZS/rZDeGZH0Hl9j3rx3Pbu1bMxX0T6iWDtgXB1yXObf31Uyr+OkXEbD8jjGmiNfYPhk+0K32ZnJwVS7kN+S2/Yuik0znA/mTi6wbdOmPXg6WM5idESGNn0/kqfjSqb1vlw6N7PxDeoqvhfJY53L6TXkEUIFkU33Rsp9/x0jeVwEDqyQt6tyaX2kQlpFPITR71GkjNiM0aC5qcbclbn9bCA+gsWs8i9+D66JOsSO69E1pX0vwjWRT/8K4O2Emye7Mr6s/oPItpNm0itif+C0SPrjlssJs/rlR3PrwhbAPxLPZ10j/byD0fOtqTK4bD2xgtEbuYvAo6tnM6kyuA/1Vr7MW6T4CzF7EqaGfwxwQA15GkitHKrzGqhTm3V7yuVA1XikKQ8l1M1Fl+z3uKFkGrFR5eqS6vEuwjitvjYC9KPOS6mNkNdVnAbGavnvbqxWTRex2vpIum+ukF4b+tamekKB7TcnjPjZRJmQwr2AtsvrlK/3lM+VgS7rV2Pt2Rlrp10vwPKI/yRJkiQ1pw/9GH3owwD7MWLswxi9JupgH8Zsy7z2YeQ19RwapH2+wHw8F59y3TMvXsTocftshfR+Hkmv7Iu93rsub4EwG90gX0X7iB5IvA65A9g797efz/z7c8pneUTqZfRyOMaaM99h+GT7ULfZmclLqHYh50ebOavAtrFg7vgC2zdpFfALRo/N+wgjjuTX/4BuHkBdYPRt+kWKv1U98B+5dNZWzyILxBsIR9SQdt2+xXAe/71kOo9l9PveQvnAc89Iei8rmVZRx0b2XaSMODSyfROjjOwR2c8FFdN8fyTNDdQTLFc9ruNsBvxnJO2PMPtU5v+Q2/byGvKV9/ClPN3AaF5jy1mE37hrC4wG8YvAhTWln7+htbaGNMeVwWWDtAMjad0D7FQ5p+mUwX2ot2JlXl3nYVWplUN1XwN1abNuT70cqBqPpCb7Pa7qOC8xfT/eqzBOq6uNAP2o8yCdNkJel3EaGKvl0zRWq0ebsdrtkfT+vELem9bHNtUuBbZ/aGT7usuEru4FtF1ep369p36udFm/GmvPzlg7/XoB+h//SZIkSWpOH/ox+tKHAfZjxNiHMbzYh1EP+zCKaeI5NOjH+TIPz8WnWvdM8xrCsx1dLC+u+bscxuix+06F9PLlzp3AJiXS8d51NQewMU9l+4jys4kOln/K/d2FmX/bt+S+8vpQRvf9GGsOnc/wifa2brMzkw9R7ULOjzbz4QLbxoK5FN4EX0X8wdP3Lv37Jox/ALWOlySK2CuSj0Vg9xJprSQ07rLpvKeGPO4+Jo+pVOhZ1xP/zYt6G6Pf92sV8hWbvvzQCukV8cHcfouWEb/PaN6beNnrKZH9fK5iml+MpHl1xTQHqh7XcfIjxCwSZr8r4ke57Zuc4XVz4BjgS4wGx/nlPIqNyNOU7PTT2fK/Dtfl0m2yDC57Hf5hJK0zqmcTSKcM7kO9FSvzPt9pjjZKrRyq+xqoS5t1e+rlQNV4JDXZ75LiS4J9Pt6rME6rs40A/ajzIJ02Ql6XcRoYq+XTNFarVxux2kWRtF5bNeMN6lub6tKC2788kp+m2sxt3wtou7xO/XpP/Vzpsn411p6dsXb69QL0O/6TJEmS1Kw+9GP0pQ8D7MeIsQ9jeLEPo172YcymiefQoB/nyzw8F59q3TPNKZH9tbWcVPN32ZrwEnh2H5eUTGtXRvN7Tsm0vHddzfPYmK+yfUT3AW5l9LjdQ5gVGMLseYPzp+xMoDF9KKP7foxrs6LrDGhmO+c+39hJLorJB35FXnTYg1Axld0+FnT+sMD2TVhFGDHjvrn17wX+dOn/7yFME/zp3N8cQhidoc0HUPeJrLudMCVsUYcB2+TW1fHiS/5YQiiYU3to+n6MzjLys5JpxUZcOK1kWjB6rdwN/G+F9Krsu+g5kd/+appp0MXKk6rnb2yq7rpGD696XGP2AF6VW3dtZN0kWxCmYs6q6wW4mLuAfwGeTmi0vZLxI3I9EHh+wfTvAxy9tJSdej3vysi6i2tIdzWj9UdTZfAdlL8Ofyuy7l9LppWVUhnch3orVuYVGbWqKSmWQ7Hf8za6v7nQZt2eejnQRJ2o8fp6vFdhnJZV1+/WhzovpTZCXpdxWmz/xmr1MFYLmo7VIP6bdf1yySTLvU3VVpkA7ZxfWW2W13243lM/V1K6DwrG2uMYa6dfL0B/4z9JkiRJzetDP0Yf+jDAfoxZ953aPahx+wH7MKD7e0/T2IcxXVPPofXlfFnuz8WnXPfMk9sYLSv2YvbZ2rIeEFn3oxLpgPeuq8rmrWy+rgLeFVm/Anjn0v8fwsaX1n5IeJGtqj6W0X07xrXyJcF+WCC8cZqV+kuCK4EH5dZVbcxU2f4K4i9ftOW+wOnEHzx9TW7dPcDvMvoA6sGEaZvbegB1q8i6m0um9djIujoegtg8si7FayN2PpcZ1WEVYWr7rLupNup0Pm/nLaXZtKplBISbgVW2n1XdN23uTZgmO+9bFdIcqOO4xryY0EDL+gjhJumsHkzIX1ZbDfAbgL8jBDx/BqyP/M0RBdN8IWFkm68Bj6+Uu43uFVn3nzWk29SDaLEy+KaSaW0LPDG3bgOjU3SXkVIZ3Id6q4kb1XVIsRxK9fdss25PuRxoqk5UXF+Pt3HaqLoeVk+1jMxKqY2Q11WcBsZqxmpBn2M1gO9G1sUeTqrqOEInwWA5j3Kdc8u9TdVVZ1xT51dWm+V16td7H86VLutXY+3ZpdqONNbeqK/xnyRJkqR29KEfI9XYM89+jFH2YYyyD6M59mHENfUcWh/Ol3l4Lj7lumfe5GddXCCc40UdPEPas/LedTV1vMAG8G7i1/5jgd9muK1T1/fvQxkN/T7GtcofaKVpB2CT3LoUA9OsAxmtDIo0BKuONpPSm+D3JcxMsSq3/j2E4CFmA+EBVBgebeQhhAdQH0OYsrtJ6yLr7iyZ1gtzn29h/AgrRcQql7J5hDD6SzaYPot6rrVYw7lMPl/I6JS0XySMaFRWV9fKAxltMBQpIzZj9MZHmzdtqozA8kTiUwufWiHNgQMZPa51HJfYtPSnFEzjoZF1bZfN6wll7zbAm3P/lh99bprseVHlGsw6JLLuGzWkmz+HmyyDbyuZ1jHAlrl1J1PPiGcplcF9qLdSnI0Z0iyH6rwG6tRm3Z5yOVA1HlExfTzexmnNxWnQ3zpv3uM0MFYzVgv6HKtBOAYn5NbFHp6oYnfgeIY71I+nXFuob22qIudHm2XCOHWfX1ltltepX+99OFe6rF+NtWdnrJ12vQD9jP8kSZIktacP/Rh96MMA+zFi7MMYZR9G8+a9DyOvqefQ+nC+zMNz8SnXPdO8AXh/g+lPclkDaf4L8Ke5dY8Cvlcwnd/Ifb6D8s+keu+6vAWGX9is0ia4jVCmfzTybycyXCbXVU70oYzu+zHWHLofYRrK7BKbhjclxzKa5/sU2P6U3LZFg7m7ctu/qcD2dbovcDGjxyI2DWnMCuCTke1/RHzGqTo9PLLfMm/8Py6Sztp6ssiqSNrXVEjvy5l0fkl81IMyvsVoPn+7YBpbE75bNo0NjI5uVMQekXz9foX0iqhaRhwa2f6pNecR4seo6ktLZ0TSPJf4jZyiYsd1t4ppLhACvXy6sdHfJjk5t33ZKcYHXgN8gjDTT1EPZvT7FA0QL8hs++ISecjblNFrvOy07nmn5dJdW1O6qxk9jmXK4AXCNZAv3/KjCZWVUhm8KpKXlOqtJsq8OqRaDsWugStKpnUCcO3ScilhFMAy2q7bUy4HqrY1UpT9Lld1nJe8vh3v+2Kc1mScBunXeZBWGyGryzgNjNXyaRqrFdd1rDbwo0hadcUYK4B/y6X9/aX1ZfStTbVrge0Pi2xfpUxI5fyCdsvrVK/3rNTOlbwu61dj7WKMtdOuF6B/8Z8kSZKkdvWhH2NVJO3U+jDAfowY+zCGF/swikvlHnOf+jDymngOLdXzJW8enotPte6ZRysI53D2OH6nYBqbE2Z0zqbxLxXy5L3r8g6gvjYBhPMjfwwHy/rM/+9Xw776Ukb3+RhrTj2M0ZMr9rZ+Sj5ItQv5ytz2Hy6w7SGMHq8nF9x/HfYGfh7Jy6wPng6MewD1HMp3as9iK8LoTvn9FtnnCsKb2Pk03lNjPn8ZSX+7Eun8JqGRMUjjJXVlELie0Tz+YcE03hxJ4yMV8/X4SJoPG/O39wOOXloeW3G/UL2M+H1G875XDfnKe0pkP1WmPH9GJL3FpfV1qHpcY3ZmNL93FUxjT8LIN9k0Tq6Yr8G1f16JbR/J6HcqctNve4bLi7eWyEPeKyJ5quu8uC6Xbp1l8GWM5rto4//ZkTQ+UGMeUyuDU6636i7z6pJqOQSj18B6wku/RexM6BgbpPE3FfLTRd2eajnQRJ3Ytez3Se0lwT4db+O0duI0SLvOg/TaCANdxmlgrNZUm9xYbTZVY7Ws2G/6oZJp5b01l+41VD/P+9KmKjoS6ssieapyrFI5v6Dd8jrV6z0rtXMlr8v61Vi7OGPtdOsF6Ff8J0mSJKl9fenHSL0PA+zHiLEPY3ixD6O4VO4x960PI6uJ59BSPV/y5uG5+FTrnnn1aoaP4wbCi3qzit0jHldnz8p71+U8j3raBFmxNll2uZF6BhPoSxnd52OsORU7we7XaY6my49c8tUC2+7O6PctMtrMSyPb715g+zqMe/D0nSXT6+oB1B9E9vmiAtufENl+kVAQ1+UfIuk/p2AaOxLeGh9sfzr1FdqxmUAXga8XSONhjN5AuxrYqWLeXhnJ17Zj/vZTmb85teJ+oVoZASFAym7/qxryFBM7h48rmda+hHzm0zuN+s63qsc1Znvi5/AuBdL4TGT74yvkKdvoLDNV+/G5vFxHsUDlt3Lbn0e133A/RgPsMyqmORAbvaXOMvjjkfSfUmD7+zB6XVxAGFGoDimWwSnXW3WWeXVKsRwaiF0DjymYxqcz215JtVnIuqjbUy0HmqgTu5b9Pqm9JNiX422cFrQRp0HadV6KbYSBLuM0MFbLLsZqxXUdq2UtEMqMbHp3AweVTG/gz3Np3gU8umKa0J82VdHOmo/ktq9SJqR0fkG75XWK13teSudKTJf1q7F2cbEy0Vg7jXoB+hP/SZIkSepOH/oxUu7DAPsxxrEPY+NiH0ZxKd1j7lsfxkBTz6GleL7ELPfn4lOue+bV5sAvGD6efz/jtguMtsmqzCI44L3rct5D9TZBTH7m2Ozy7Zr20Zcyus/HWHPq+YyeVClXmCuBOxjO75sKbH80o9+3yMyJJ+W2vbLAtnUYN73oiTWk+0+RdE+vmO4kfxDZ3/8Rpq6e5qUMj5SUXQ6oMY8PZHja1kXC9OibzLj9toQpmAfb/orw8HBdnsXo979rKc8PnWH7AwkPgWe3vwM4vIa8vSmX7i1j/m5bhqecfn7F/VYtIyBMtZ7d/hsV8zROfor3RcoFzoczOvX3IqEBX+UBlaw6jus4sRFiXj3jtq+NbLsIPKlCfvIvzz+gwLa7MDqd/Z8W3P+fMfp9XlUwjYEDGX1Z4VrgviXTy4uNPFVnGXwQcE8u/Vmvx22B/8pteyXhBmddUiyDU6636irzmpBaOTQQuwa+WGD712S220BoB1fRRd2eYjnQZJ3Ypez3Seklwb4cb+O0oK04DdKu81JsIwx0UZYPGKttXH6BsVoZXcdqeXszOqLtRZQbMXdrRsv7O4AnVMzjwHJtU+U7H6uUCamdX22X16ld71mpnSsxXdavxtrFGWunWS9Af+I/SZIkSd3qQz9Gyn0YYD9GjH0YG5dfYB9GGandY+5TH8ZAk8+hpXa+5M3Dc/Ep1z3z7LkMH9N1zPZ7vILR3+L+NeTHe9flrKVam2CcBzP6ewyWd9W4n9TLaOj/MdYcio2+MmtA2oUHM5rfIp2w+UDyLma7STDwP7ntTymwbV0eRQiAB3l4R03p5h9A/RXwoJrSjtmS0UbbIvAlxr+1vzMbR925HvhabtubqX9q1fwUwYvA+wnHa5KDgf/NbHMTYVruOp3I6Pf/26X/vwQ4bMx2C4QbXzfktl9PmGq5Dq/PpX078WOWfbv+IkJjqoqqZcRmhHIhu/3bKuZpnPwU74uEkcBmsZIw49ynid/APAdYVWNeqx7XSf4xkvZNwCMmbLMV8HeR7QbLfSrk5w25tL7L+FHJsvYi/tBZ0Tr1s4x+n3sI9deWM6axPWHksNty6VxPqEPq8te59Jsog/Oj/S8y/aXJfYEzc9v8inAjvk6plsGp1ltVyrympVYOZcWugZdO2WZzRs/PqjeQobu6PbVyoMk6sUvZ75PSS4J9Ot7GaRvbG23EaZBunZdqGwG6K8vBWG2wGKuV13WsFnM4cGsu7SuBZzJbubclYSTX/IMYVwJH1JC/rOXWpqq7TEjt/Gq7vE7tes9K7VyJ6bJ+NdYux1g7vXoB+hX/SZIkSepOX/oxUu3DAPsxYvpwD2rAPowgtXtPqd1jhn71YUCzz6Gldr7kzcNz8SnXPfMuf31cxuQXdJ/EaJ1XZObKabx3XcwCoTwr2iaY1ccZ/e6LFJ8le5LUy+jlcIxr1cQDYKrfm4A3Zz7fAmzXTVaingw8PfN5b0KgkvUVwsUHYVrsbGXz+wyPFPAbhGmLB24l3CQY+B+Gp8v9IMPTdj+X4cbT+YSKZeCr1DNl7jSHE4KBDxGm8a7LCuATwGMJbzr/X41pxxxFmCo1H9RcC3yOcHxvA3YFHgk8jvB73Aj8NvBOhgOOGxiewncDoYF4T4U8bk5o9D4mt/77hEbqt9k4kssuhErp+cAxme/186XP51TIR8y3GH4j/TuESuF8YAfC9z6NMNPI1cA2wP7A7zA6KswtS9ueWlPenkq4NrPeALyPMKLC3oSHKAZv+y8SjnHR6XGrlhH3Bt6d+bxNLj0IQfuFmc/vBs4rmM/XE479wCbAC3J/czfhBbFxVhLK590II6NsEfmbdcA/EGaju61gHrNeQxiVY2DacQX4G+DsEvtaTZh5Z5vc+nWEB+K/ShilagPhvD0S+D3Cb/czQnmRLefvAT6V+Xw18LoC+fky8LTcuosJ3+80wvTj65bW3xt4yNLfv5jh+uJUwjU1blSzcX4G7Dfm364jjGx+BuGcvIlw3mxDuKl9IOEFhccRyq6snxKuy58WzM/A9oRjkHUEwzcH82Vw/norY0vCsTwyt/7zhPr6bEJdvh0hGHs28BKGv/9/As8jBLB1SrUMTqHeqlLm/TdhhKo2pVYOZY27Bj5N6Mj6EeH82ZQwItNvE0Zr2mfp79YTyvQPlNx/Vlt1e17X5UDRtsbAO2m+LV2nxcz/X029N0uK6PvxNk5rL06DNOq8mFTbCNBuWW6sNsxYrf+x2jiHAScDu+fW/4xwz/FMQufm7Uv52InQIfUIQudR/iGBUwjH8Zqa8jfQtzZV22VCaudX223vlK731M+VmLZ+L2NtY21YPrE29D/+kyRJktSdPvRjpNqHAfZjQH/uQdmHMV5q955Su8c8kGofRtvPoaV2vszjc/Ep1z3zbiXhmdSnZtbdQhgY+zOEa2MFoXx/OeH8y77A/ybgLTXmx3vX48XKzi3Y+MJsrE3wY6rNSLcHoRzcKrd+f0LdVoeUyujleow1hz7A8Funv+w2OyNiMypNWn6Q2/7sgtufkNl2j4LbLhIaS23Zu6F0VwB7NpR2zIsYnYZ32m+8H6NvZseWsi/D5G1FeEBg3H7WLy359esIDwjvUFM+8vJT7L5naf1jCYHbrMf0uxSb4n4WmxFGasrvawOjo0isB44tuZ+qZcSTCm6/yGjQMYvrSuynyHIlIXhbXSJvMZeWyMO4F9tm8QSGZ96ZtmwgBCDbER7amfS3JxfMy8sJNz8mpXkH8Wt+kXCD4jWUHyzhgYQG4xVT8jDrci3wxxQbHSjm0SX2nb/eytqGEOSN28/dY9ZfS2jcNzVDcsplcNf1VpUy7y8r7ruslMqhvGnXQL5eHSw/Bn6z4r6z2qrbY7osB4q2NQbLbhX22YVs3rucSXA5HG/jtPbiNOi+zotJuY3QZllurBYWY7XxS99itUl2IoxwOG7fsyzfY/SBobr1qU3VdpmQ2vnVRds7les99XMlpq3fy1i7/HkVY6zd/T235RD/SZIkSerOi0i/HyPFPgywHwP6cw/KPozJUrr3lNo95qwU+zC6eA4tpfNlHp+LT7nuUbjX+9fEy4m7x6y/CfjdhvLjveu4MmVn/oW3Mt6WS/NG6q+vUimjl/Mx1pz5FMMnVd0jz1T1M4pdaB/ObLs54yuCccuTM9s/peC2i1QLWubZgYQ3/ycFIj8kjJwyGIFg/wl/O1g+XXM+j1zK551T9nsp4SWf/aOp1ON+kf1mG+MHAf9KqAhjebwH+A/C9PFNWU0Y8WNSJX0a46cKn0WVMgLg+ILbX10ij/sU3Me45XbCFNg/B/4L+Bjh5sAjqLcxsEuJvNXRIDmA0LCfVA7cDPwzYTQlCOX8uil5K/MQ1CaE0ZD+gfCixCzH4EzCiFp13aTdhDDKz5sII5vcNmM+FgmjNf0zYTSTLWvKz3EF9j/ueqvqMYRybdxDWouE8+cMwm+RH1mkTn0og6GbeqtqmfeEGvJQVkrlUMws18AGwrn1IsJIT3Vro26fpItyoGhbYxG4vIb9ti2b/y5fEpyX490XfYnTIJ1YrQ9thLbKcmM1Y7XlGqtNcgDwXqY/CDC41n4CnAgc2kLesvrQpuqiTEjt/Oqi7Z3C9d6HcyWm6d/LWLvaeTWJsXZ399yM/yRJkiRV1Zd+jCNJow8D7McY6MM9KPswZpPSvafU7jHnpdSH0dVzaKmcL/P2XHwf6h4FDyK8IDdpIIbrgPczOkNpE7x3PaxM2fnCGva7LcP1WtEZnGeVQhm93I9xLXx7sR++ATw+8/k/CNM2S124D/BIwmgVOxCmBP4FYbrrlDp/tyZMTbs7IcDdhDAqwpWEUTouaSEPzyJUhlkHEBonWbsTjul9CS8LXUeYoez7VJ/2fVb7Ag8HdiWMknUL4RidQThmUta2wK8TbvrtSAg4riHcrDqT0ABs256EYHRPwsgT7G4ToQAAIABJREFUWxJe2rsJuJDwgn1+6vC6LRBmJjqAcF1vu7QsEq6pmwmNxP9l+V9X2xLK4N2AnQnH4BrC9z+TMLpW0/pUBkMa9VafpFgOZeWvgRWEm+cXAWct/X/Tuq7bUygHpHnSlzgNuq/z+tRG6LosV/+k2EZKIVYbZ9VS3u5LOHYLhLjtJuDipbzd0lHeBmxTTZbK+dVFeZ3i9d4X1q/jpX5eGWtbL0iSJEnqr770Y3TdhwH2Y2j5SvHeUyr3mGNWkX4fRpNSPF+Wsz7VPQq2IrxMfgDhGtlA+A3OI9wvv6fl/HjvunuPJZSbEM6BUxrc17yW0W0eY82BMxh+m7XotMeSunEiw9fuTfhytiS1xTJYkiTF2EaQJEmSJEmSJEmpsh9DktQ26x5JWkZWTP8TJWCn3Oc2RkOVVF1+GvezCQ1oSVLzLIMlSVKMbQRJkiRJkiRJkpQq+zEkSW2z7pGkZcSXBPthx9znWzvJhaSiDsl9PquTXEjSfLIMliRJMbYRJEmSJEmSJElSquzHkCS1zbpHkpYRXxLsh+1yn2/pJBeSirgfoy/4/qCLjEjSHLIMliRJMbYRJEmSJEmSJElSquzHkCS1zbpHkpYZXxJM35bAprl1ziQopS8//TbYcJaktlgGS5KkGNsIkiRJkiRJkiQpVfZjSJLaZt0jScuMLwmmLz+LIDiToNQH+YbzzcAFXWREkuaQZbAkSYqxjSBJkiRJkiRJklJlP4YkqW3WPZK0zPiSYPq2j6xzJkEpffmG8w+BxS4yIklzyDJYkiTF2EaQJEmSJEmSJEmpsh9DktQ26x5JWmZWdp0BTeVMglL6DgZek1v3iNznvYBPZT7/FHhrk5mSpDlhGSxJkmJsI0iSJEmSJEmSpFTZjyFJapt1jyRJCTiK8EZ+dnlCpzmSlPc6Rq/TacuHO8mpJC0/lsGSJCnGNoIkSZIkSZIkSUqV/RiSpLZZ90jSHFjRdQY01faRdbe2ngtJk+Sn257FWbXnQpLmk2WwJEmKsY0gSZIkSZIkSZJSZT+GJKlt1j2SJCXgRYy+lf+QTnMkSZIkSZIkSZIkSZIkSZIkSZIkSUqCMwmmb7vIOmcSlCRJkiRJkiRJkiRJkiRJkiRJkiT5kmAPbB9Zd0vruZAkSZIkSZIkSZIkSZIkSZIkSZIkJceXBNPnTIKSJEmSJEmSJEmSJEmSJEmSJEmSpChfEkxf/iXBDcDtXWREkiRJkiRJkiRJkiRJkiRJkiRJkpQWXxJMX/4lwduAxS4yIkmSJEmSJEmSJEmSJEmSJEmSJElKiy8Jpm/b3Oc7OsmFJEmSJEmSJEmSJEmSJEmSJEmSJCk5viSYvq1zn31JUJIkSZIkSZIkSZIkSZIkSZIkSZIE+JJgH2yV++xLgpIkSZIkSZIkSZIkSZIkSZIkSZIkwJcE+8CZBCVJkiRJkiRJkiRJkiRJkiRJkiRJUb4kmL78TIJ3dpILSZIkSZIkSZIkSZIkSZIkSZIkSVJyfEkwffmXBJ1JUJIkSZIkSZIkSZIkSZIkSZIkSZIE+JJgH/iSoCRJkiRJkiRJkiRJkiRJkiRJkiQpypcE0+dLgpIkSZIkSZIkSZIkSZIkSZIkSZKkKF8STNvKpSXLlwQlSZIkSZIkSZIkSZIkSZIkSZIkScDoC2hKy9aRdb4kqGk2Bf4A+AJwBfBU4Frgu11mSsvKXwO7Tfj3m4BXt5QXpeOZwJOm/M07gJ+0kBdpufsbYPsJ/245LEnSfDJWU55xmiRJktQcYzDFGIdJ3bMfTU15E7DljH/7MeDCBvMyb2x3Kc82l9Q921ySJCVqoesMaKLdgctz6/4G+OMO8jIvDgGOBC4AvtZtVkp7GXAS8N/ArwP/D/gO4QaUVNVmwK2El1HHOR04qp3sKCEnA0+Z8je7Ar9qIS/L2fbA7xAGEvgScFW32ZlbmwAHAA8AdiT8LpsDtwA3A5cBP13672LN+94RuH7K31gOS5I0f4zVFGOc1g7jtLRtDjwQ2IfwMNnWhH6RG4EbCPffzyHEcpIkSbMyBtM4xmHtMA5LV9cxmP1oatKNTH4ZIuuxwLcazMs8sd2lGNtc7bDNlS7bXFJ/bAU8DLg/sBOwHrgGOA/4IXBPd1mTJHVhX8KD5dnlHZ3maHl7KaGyHRzrT3WbndK+yMbvcCLwC+CYLjOkZeVQRsul/PLOznKnLl3K5PPi0u6yNuQ6pp/Dsyx3E4K1Cwg3H99IeGmsSQ8GrmT4mG7T8D610Q7AsYTOnDuY7Ty5DVgLvB14IiHor+rRM+zXclhQX3lXZMkPcCJJao+xmmL6EqdBf2M147Q0rQZeB/wXcCfTz5sNhNH9PwM8jxD/SdI4xtuSwBhM4/UlDutrDAbGYSlKKQazH01NupHZy8fHdJTH5ch2l2Jsc9nmmke2uaR+OQj4NHA746+Ta4H3MnnGZEnSMvMgRiuEN3Wao+VrJWH2n/zxPrzLTJX0E8LLgVez8Xvs12mOtJztz+h18+xOc6RUnMnwefHlbrMDhNGT6rj5Nmk5FdizgbyvINy4ye/v6Q3sS8O2BN5AGF2r6vlxB/B14Lk15i92XlsOq43yLrZ8tY0vJ0maibGaYlKM06C/sZpxWnoeCXyN4YHgyizrgH8Hnk8YkVmSBoy3JY1jDKZxUozD+hqDgXFYavoQg9mPpjr5kmAabHcpxjZXvWxzpcU2l9QvK4C3Eq652HUYu5ZvJFybklSLlV1nQBPFZpu5o/VczIediI90cl/gey3npaqdgA8Spgv/NHAZIWiTmnBoZN0PWs+FYtYAqzKfLwE+3tK+VxJedM9K4bzYjlAuZj0O2Dm37hvA9ZHtVwDbArsCBxJeHst7AnA28CjCS9t1OQi4X2T9dTXuQ6MeQHgIK3/sz19afzahnr0Z2JRwfuwLHAY8E7hXbrstCDMK3gp8tqY8Wg4rZtbyrm6ee81bQ3f1u6R+sY2QrjV0U5anGqdBf2M147R07AZ8AHhGbv2NhAdlvgv8lHD+rAe2B+4NHEw4J44EFjLbrQSOWlreD3yCMHjM3Q3lX2lag23vvlhDe7+V8fbytAavd1VnDJauNdhfltfXGAyMw1LRpxjM8llafryu07UG731n2eZSVba5pP5ZCXweOCaz7lbCxD+fBi4mlO8PAl4BvGTp8/bApwj16Nvby64kqQu/xejb4n/caY6Wt/MYPtZ3El4S7JuTgK2X/v+VODqVmvVuRke0WJi4hdpyJcO/zcda3PdDGK2/ntDi/ou4itG87jDDdisJwdz5ke0XCTfhVtSYz9XAhtw+zqh5Hxp2BKOzB55DuFk2i82AE4iP/nNcjfl8B5bDmk2svNuDMFBGleWbmfSObu3bzK8u63dJ/WKslq6uyvI+xWnQj1jNOC0NzyA8BJH9HS4Gfo/ZR0PeD/gK8XNmEbgJy9B5ZNu7P7r+rYy3+6/rc0jLgzFYuuwvm00fYjAwDktB32Iw+9FUJ2cSTIPtrnR573s621yalW0uqZ8+yvC1cDlw/wl//2TCi7rZbY5tOI+SpI49ntGG2R92mqPl7QGEgGkRuAanR5dmsZbhMurbneZGA3swWn+8osX9HxvZ/y4t7n9WseNUdObVbYAfR9JZJLxkVqfjCUHheuBLpHlMl4t9gGsZ/j1PJj4y2zRvYPTceHQ92QTgNCyHNV2svLuoprSvyKS5W01pKq7r+l1Sv6zFNkKKuizL+xKnQb9iNeO07iwAf8Xo7/t3wFYl03xrJL1F4PSqmVXv2Pbuj65/K+Pt/uv6HNLysRZjsBR1fY33JQ7rUwwGxmFd6WsMZj+a6uRLgmlYi9d1irz3PZ1tLs3CNpfUX89i+DpYDzx8hu3+KLfd7cABDeVRkpSApzDaMHtppzmaD9vjKBbSLBYII8pky6h3dZojDcTqj4e2uP8P5vZ9aYv7LiJ2nD5fIp1jIuksAm+rJ5tDNge2aCBdDfsuw7/ljyl/s21T4OpcejvWkMeB67Ac1nR1lXd5u2XSu7yG9DRZ1/W76vOczPLUjvOi5clYLV1dluV9idOgf7GacVr7VgD/yPDveg/wkhrS/hqj58y7a0hX/WLbuz+6/q2Mt/uv63NIy4MxWLq6vsb7Eof1LQYD47C29TkGsx9NdfIlwe7Z7kqX976ns82laWxzSf21GWG2z+x18KEZt11g4wRHg+WLDeRR0hxx+ue0bRZZt671XMyfwc0ESZPtB2yXW/eDLjKiEYfmPq8Dzm1x/4flPqd6XuTzCXBWiXS+M2b9ziXSmuYu4M4G0tVGRwOH59b9BWGUnjLWAd/IfL4IuKFkWnn7ADvl1qV6valbsfKujnMlm67nXvO6rt9Vn89mlg93nBctT8Zq6eqyLO9LnAb9i9WM09p3EvDi3Lo/Aj5WQ9pvjKwrc/6p32x790fXv5Xxdv91fQ5peTAGS1fX13hf4rC+xWBgHNa2vsZg9qNJy4/trnR573s621yaxjaX1F8vA1ZlPhd5WXYReGdu3dNxIDNJFfiSYNo2j6zzJUHNYjvgSODAjvOxXLwKuHcD6a4Gjm0g3bbkb/CAAV4q8jeWfky4cdOGlcCDcutSPS/qOodvGbPedlY/vTL3+VrglIppXpT5/zqvB8thzaqpcyWbrude87qs36VUGavF2UZIV1dleZ/iNDBW02R/Abw0t+6TzD4i6zTnEEZszUr5elEzbHv3R9e/lfF2/3V9Dml5MAZLl/1lszEG0yR9jsEsn6Xlx+s6Xd77ns42lyaxzSVNdziwSdeZiFgAXpdb913g5wXS+DJwa27dn1fJlCQpXS9mdIrnZ3aaI/XFYHr673adkWXgRMKxPJd6Hz5dDVyylPaf1Jhum97DcPl0I6HBq+5dxfBv89EW9/0QRuuuJ7a4/yLyx2kR2KFEOntF0lkE/rKebKpFWxNGQcv+jl+sId3XZ9I7rob0Bt6B5bBmEyvvdqwh3cOBFywtq2tIT5N1Wb+rXtnf8aqO89JnxmrjGaulq6uyvE9xGhirabwjgPUM/57nA1vVvJ+/zaR/E5ah88i2d390/VsZb/df1+eQlgdjsHTZXzYbYzCN0/cYzH401e1G4uVcbHlMR3lc7mx3pct739PZ5tI4trmk6TYjvHx+KfBmYO9OczPscEbL5DIv+H05l8bt1F8OSJIS8DJGK46ndZoj9cUfE86XK7vOSM+9k+Hrr66HT7MPnQ6W19aQbtvWMvwdvt1pbjSwB6N1x8tb3P+xkf3v2uL+ZxU7TheWTOtxkbQWgWdVz6Za9lhGf8f31pDuo4A3Li3715DewGlYDmu6WHl30cQtlKKu63fVK/s7+pJgOcZqk63FNkKKuizL+xKngbGaxtua0TJ6EXhyA/t6dSb90xtIX2mz7d0fXf9Wxtv91/U5pOVjLcZgKer6Gu9LHGYMpnGWQwxmP5rq5kuC3VuL13WKvPc9nW0ujWObS5rNoQyfZ/cAXye8U7Gyw3wBvJvRa/jXS6Tzp5F0nl5THiXNma4LRk22WWTdutZz0YztgSOBfQnf81rgR4RppjfMsP1+wCOB3QnH5FfAfwMXNJDXum0J/Abwa8C2hJtIlwP/RTgOddhn6b/3IYwkcHtN6c5iM8LICAcB2wE3Az8Gvg/cMcP2uxIaSKuBTYFrgPOAMwmNnrasIBy/rIMIQcxRlP+tVhNuWuVHstitZHp12prw2+1F+B3WAVcAZwE/y/3tAnBwbl2b08RvBTycUAbsysZz5RrCuXJ1i3mZZHtCPvcljP50O+GYnk1z5dWhkXVt/jb5/V/O6O+xAngo8GDCw9x3EMrx7wEXN53BJXUep9gN/g30+6bHNoR66gBgJ0J9dTtwPfALwnU2S5lelwVC+flgQnm5HaFOuIFws+xswjlU1X6RdXWMyPOfS0vdDsl9buta35RwDe8N7Ew4X64jXOtnA79sKR+z6KIcjumy3oqVd2c1uL86pFYGZeXP/0F790ZCe+k84LYG9tt1/Z7VlzJgP8Jx2wPYAriV8DtdQnhw9zLajS+WuzaPt7FaurFaX+I0mL9YrS9xGhirTZNSO6mtOG3geEbL6O8BX6txHwM3Zv6/qbZzH9pUXZcLbZ9jA6m0vVO63qfp6lzp+rcy3q5XF/F21+dQXh/qhnmJtfsSg0F/4rB5i8Fi+081DjMGmyy1urPNNvJyiMHa7kdL7XyZZrk82zNJKv2EGq8v7a6+tLlg/tpdtrkC21z1ss1VjG2uyWxz1SNfjq4gzBz7RMJkOh8HPka7fZoD+Zd6F4FzSqRz9pi0v1QiLUlSwl7D6Fvhj+00R6NiU7bnl5Myf78d8D5CR17sb39BmEFxxZj9PZzwkP24fZ0LPKGhvFfdfhvC1No3jfnbDcA3ltKt6pRMug8smcYukTzml5Mzf78NcALhgczY315HmIFh3G97MPBVRqdOHyy/BI4p+V3KWgF8MpKXsrNUxGalWCRcE136deArhMb5uN/6BwyXP/tH/uY5DedzE+AFhNFn7pyQ1w2EBvMrlrapw3ET9jdYnpv5+8cB32T8+bwInAE8vqW8TVvqnB3ljFza2XJia+ANhCBw0nF5eI35GeeEyL7LHIdN2fjgQ3b5aoW8FS1/67BAeIH9RDa+sD9p/3cDpxJmyGvSvoQy8vIp+Vkk3FR4L+VG4hl4cyTdnzK+7urSatothxcI9fApwC2RfWeXHwGvot4BSVIuh8fpst7KipV3xxVM4/9j77zDLSmqvf1OgIEhCUgOzgCCV5IIguEimAMgylXAyJgx32vAe9EPMIsKxquICRVUFBUQMSCKGBBECaIoQUByGJghDRPP98fa+57e1bX37lDdXXXO732efuD07Kpau3f1qvWr7lqV9UtNPOSK1Qdl7XsBNhE/rv+v7H2HujuHxja+d+UDyo6Jq2H30pVjyizFn5SnLbK2xLSTYErXW1pt8uhaq3U93sUcI8Tky1PRaRCvVutCp0GccVLbOg3sBawlnvqfVrPeYcwF5vWOdQLWm0pM1bVfaLuPxeKvY7jfY+8rsfxWfaS3w9jXpt6OrQ9BN2NDStqvbVLQYKDnZXVsa/MeT0WHxarBQM/LsrQdI08FDdbGc7RY+st0eLcnlvFHOwmGI4W4S3Pf9Wwbd0y3uW/FXIPEMoa6KOYqj2Ku4feKYq6wY8+xBWxbBfwMeCHmL9tgLvk+eUPFujYh/50uDWCjEEKIyDiSvMPft0uDPJRZKDcP+HuBz09gEwFznLbexOhgInu8O7DtdcvPZ/zDs/6xFAtS6vA3JhdiVt16/LkFbD2q99k9sAyhRb7fV512ZmCLMlYWLP/yit+nKjOBkz12lH35dNhLp8eHNLYkGwPf89g0Koh+S6/sSzz/7tuBKxQHYQt1fHY9yHDxdzmwbYD2vzuk/uyxPZYJ5bQCn81e02NbsG3c8dSaNvSZTX7yIusnrilozxJM3DfJjz3tVrkOb/LUswLLQlaVMv43BK/CsugMa+sBbAJl2L9/kvCL6Ob06vW1uxJ7YWbUuHE51RIrvHdIfUdW/yqN8SLa88MHYFmofNdmKcN/i8uxTFghiNkP++h63Mri83dlJ5Wfkyl7dlDr4vRBWfZndP8fZdsq7EXHPSu0G9P43qUPKDMm7ohlYytybbrcGQLHlpgWCaZ2vaXVBv1NF1othvEu5hghFl+ekk6DeLVa2zoN4ouTutJpAJ/21HcdNq+YCqnEVF36ha76WAz+Opb7Pfa+EsNvlUV6ux5d6O3Y+lBXY0Nq2q8NUtFg0L0OkwYrRko6LFYNBnpeBt3FyFNBgzX9HC2m/jId3u2JZfzRIsH6pBJ3dR1zQTz9vqpt447pNvetmGuSmMbQPoq5qqOYa7gPUsw1eYR6N2sf4BRGL97vH7f32twuQLuj2MPT9q9r1OcmUFhCMwnnhRBCdMgx5AePulmXQ/NvmKDKHu5CvhOA9bHsGf1zy7CsJsOyJEwAX8q083Ln3+7HMiGMyqq53xjbt8ZeKMwe7g6HoxYJFv3uGzAoOldiAcgtwPIhti8FHj3G/mHMwAKFn/fqelvFeg5n8Lv5sursh01s3Z85dy/224zK9nRgr41ZDL7UuQrbiv1mhl+bxViWjTaZBXzLY0vRl0/nYbtkuuW7fOl0lyE2LcS23n478Argv7DAuv8br8L80HHkf5cmBOoawBectpYBX8QWTc/tfW41bOHuceT7zg3Y/V6HjzDoK7L+rN/vt8QW6E5gvuB84GjgNcDrenUMm4B6a0DbXIH4V/K+zj3Wq9F+Ft/i6f2wiZCsf12C+Ym7PZ/P2t0kt3nafFjJOnbHvzPu+2va9lwGf59zPG2MG+PKcIlT92JMJD8eWDPzuQ16tp3usedjAe1ZH/iDU/9vMZ80j8nJmxmYkH8HNna4Nr2uQtu+Bwv94yQsY08sfJTm/fAc4LPkr8Xp2IORDXufm41N8h3FYEwwgcU8OwSwJWY/nCWWcSuLz9+tX7KO7ALaDwS0DeLzQX2G9f8zsYQeGzF5z22Avdj3c8/nq8Z8MYzvMfiAoppkHwZ3bF+JjQ034p88P7GGTSHI2hLTIsEUr7e0WjdaLabxLuYYIQZfDmnpNIhXq7Wt0yCuOKlLnbYWg+NO/3hfpW/SPinFVF36hS77WAz+Opb7Pfa+EsNvlUV6uxpd6u1Y+lDXY0OK2q9JUtBgEI8OkwYrRko6LFYNBnpe1lWMnLoG69P0c7SY+st0eLcnlvFHiwTrkULcFUvMBfH0+yK2ae57PIq5JolpDAXFXHVRzKWYq4t3szbA4oUiG/esAn6J7XC5eqD2sxzmafM7Neq7zlNfk8mohBBCdMCHyTv7KrtQtM1NDNp8ApMv7f0ZC8ZmZz6/JfZdfQ+U9gK2YTJoOgnYNVN2BrYS3/eA8FrKZ4Hw2V63/Ld7/38NttXyWpnPz8WyafzTY/9PSrbdZ7Ne+fdgQdinKtbj8lryNj4XW6j5ACY4s9mQZmFZc6/ylOtnxP3f3t//BBYwKH7XAd6Mf0v1VwT6TmWYxeRvmT3GvXw6j/heOt2D/ALbpZjIXGNImS2BC5gUwuc55X/VgJ3rkBfhf2f8Atqnks8Q89PAtv3Cqf/PwF96/3/uCBtnYC97uP1hOWGC+S09db8+QL1FebWn/f0wH74Me/FhN6fMPGxC1SfS9mrIzi08bV1Tso6X4Z+s+Uw4M/+P13ja2TRQ3XMYvF9+iWXvG8cbHXtWEGbHuNnYPZSt+10Fym2FTYhky+1eof3NGT6pMoFN2JxAvh93gTsxG9oPrw38zmnjTsZnP9uF/L1xNeEnWmL0wzGOWz5/d22Fen6YKf/8QLZBfD6oz9rA78n3/2cWKPsh8tf8pTXt6WJ8j9UH+DTJs7HJ6P69sx+DDwQ2Ih/Htxkf+cjaEtMiQZdUrre0WrtaLcbxLkuMMQJ0q9VS0WmQllZrUqdBXHFS1zptAf6+uF2FutompZhqnF+YjyX1a8IvdN3HsnThr2O6311i6ytZup4Hld6uRkx6u6s+FOPYkIr2a4IUNBjErcOkwfykosNS0mCg52VtxcgL8PfDFDRYliafo8XWX1ymw7s9XY0/WiRYnRTirphjLlDc5UMxl2Kuuijmqo9iLsVcPpoee7I8GVvQ6Lsu7nEntsD/UQHbf5+nnc/VqO9CT33PqmmjEEKIyPgEeWf/mE4tKoa7UK6fzeFMBhcHuryF/Pf9BpPbEh8+ouxs/FlMym7LHnqRYP+7n89kNiEfmwO3OmVXYiKxLE/qlT8Ee+HxzAp1+DjBse9eTLD+k9GB23bkd1hchAWmE8APGD7hA5bxwf1du3ppcxaW5cG1Z9jLp/Pwv3R6XPOmDmVr8n3tQeyB7zg2ZjITzlKnjk8EtnMN8hN8V2JZQIrwcfLXfe+A9g3LLnUCxbb39m3N/sUAdh3oqXePAPUW5fNO230/cQvw2DFlzyRv+2sbsvN5nrZOHfH5NbEJr32BI5kUu9njJszvNoGbqe7mgHU/LlPvRQy+6DGOsx27PhLAnsOdOstk1jksU24Z1V+QOZH87+s7/oZlQmpiIqkICx17QvrhNbDJtWz9dwA7FizvTrhNYJkfQxKbH4513PL5u7rHVgHs6hObD6Jnw3lO3bdTfJfvmcAVTvm6E4xtj+8x+wBXkyzGYo0HgYNHlFuTwYf3bcZHPrLfIeZFgildb2m1drRarONdlthihD5darVUdBqkpdWa1GkQV5zUtU77Efnf9eoK9bRNSjFVGb9wlseuun6h6z6WpQt/HdP97hJbX8nS9Tyo9HZ5YtPbXfShWMeGlLRfSFLQYBC/DpMG85OKDktJg4GelxWlboycqgZzafI5Wmz9xWU6vNvT1fijRYLVSCHuij3mAsVdPhRzNYNirmIo5jIUcynmGkVTY4+P/u6C/V0Oxx3nYwuwR13rInzSU/eHa9TnLsycwDYiEkIIMYX4DHlnX/RBUZe4C+UmsBcf1xlTbib5bYYfwLb7PaVAu74t5D9Z0/a6iwQnsEBp1O4Ffd7pKfvKku0DvLxXdk8sM8cVFerw8UePfQuBRxQo28/slD3ux7JJjAsWN/aU/XZ584MxCxPqrk3uy6fziO+l01nAxR6bymTb/aCn/AS2S2ZIvunU/yDlMuXs4LHx84Fs29ZT9wTwY4rvXrqzp/wS6r/I9H6nzmVYVp228GUyuZdiL2u82FP2Pc2Y6c3gUuW4GzgD87tNbEff5yKn3VCLv2FywmsVsFPJsq937Lqwpi0zgBucOp9conw2Q92fatixFvkMgeOOq4FjsQmqNpjvsSGkH/6GU/cqij2k6bMW5rezddwS0L4Y/XCs41Yof9c/bg9gU5aYfFCfU5x6V1FsR4MsR2bK30f53c1d2h7fY/YBPk2ynGLJYfqapO34yEfW/pgXCaZ2vaXV/L47ZIwQ63jXJ8YYoU+XWi0VnQZpabUmdRrEEyd1rdPWxJ/99csV6mqb1GKq+ygKgxjmAAAgAElEQVTmF17iKVvHL3Tdx1y68Nex3O8+YuorLl3Pg0pvlyc2vd1FH4p1bEhN+4UgFQ0GceswabDhpKLDUtJgoOdlRakTI6eswbI0/Rwtpv7iY6q/29Pl+KNFguVJJe6KOeYCxV3DUMzVDIq5iqGYSzGXYq7xNDX2jGNviu8ueDfwaaqvzfiSp84648kZnvpeVaM+IYQQEeJmGpgg7Da3TeFbKFc0k+XxnrITFBfe1znlflnYaqOJRYJFB/ztPWU/VbJ9sF2NJoCNgK9iCy3rshrwkMe+QwuW972oeR/Ft6J32/5mUcMbYjbwPfLfqf/y6Tzie+kU4G3kbSqTAQfgCZ46JrD+GwpfBqX/LlnHDCzbrfv7hOBgj32LKbYYOMu/PPXsWdO2Hzv1hXg5qiiz8QurBQXLP9lT9ojgVhrudapy3IiNES9n/CL4Ovj879EB698b+E/KTcL3ce+Fa2ra8ljy17loZj6ADTPlTqxpy9rA1zz2FDmuBN7Vq6MpXuhpN5Qf9vngr1So51xPPaF2XYzND8c8boXwd9nj7AA2ZYnJBwE8n/x3/lKFeg7IlD8/gF1tju8x+4BhmuTdBcu/H5sI/lhNO0KQtT/WRYKpXm9ptXZjhFjGuz6xxQhZutJqKek0SEerNa3TIJ44qWudtq+n/Qksu2vMpBhTFU1Wt4+nbB2/0HUfc+nCX8dyv7vE1ldcupwH9bVf95DeLkZIvd12H4p1bEhV+9UlBQ0G8eswaTA/KemwVDQY6HlZWzHyvp62J4hfg7k0+RwN4uovLtPh3Z4uxx8tEixPCnFX7DEXKO7yoZirGRRzFUcxl2IuxVzFaGLsKcoGWB/6q8cG3/F7bByZW6KN73jqKTqv5uP7nvreWqM+IYQQEeJbYR4yiGoK30K5LQuWXeAp++cSbZ/ulP1XibLQzCLB+SXK3+uU/VHJ9gG+jmWVAPh/vXqKBo/D2I389/oTNslRhB96yr+/RPvu9tqfK1G2KYa9fPoX/C+dhtxKvQoPJz8htYJyma/AFp/6gv+ifWEcc7HMt9n676Rc4N3HFRgrA9l4LPlrcGSFen7tqefwmrbd5tQX4uWoovh2c72M4plj9vaUf214MwG41WlnFXDSiOObWJaWC8hnap7onfsUsF4Dtvqu634NtFMFd0L/ppr19TNAZY9dS5RfDbtejwE2qWlLn32A33jsKnLcCbwpkB0uH3XaCuWHfT54Gbagoiwnkb8mbwxgI8Tlh2Mft3z+bkMsjil6HJ0p/4EANoUitA+aS/56LQW2rlBX9qFS2Z3NfbQ1vsfuA3ya5GqazzLXBNnvEOsiwZSvt7RaOzFCTONdn5hiBJeutFpKOg3S0Wox6zQIGyd1rdP+x9P+BMUy8XZFijHV5RT3C74XqOr4ha77mEuXc2tVCK2LssTWV1y6/q2kt4sTq95usw/FPDakrP2qkoIGgzR0mDSYn5R0WCoaDOLWYVPpeVmKGsxHU8/RQtBkDA/T492eLscf30vuw462Xn6PmRTirhRiLlDc5UMxl2IuxVzdo5hLMVcRmhh7qrA35l+L7C64CPhf7P4eh2/nv3fWsNO3gLRs8gIhhGB21waIkfhEy6rWrajPDRQPsnyf+32JttxFgU2IoTLcjO1uWJQbGNwae90KbW6TafO6zLk6L5/u7jn3OSwAKcLGzt8rgc8XLLsB+S20ry5YtklWYNujzwQOypz3bW1+HPUCvxC8hnx/Oo3yWVKWe879meJ9YRwLgM2ccydgExx1mYk92F5Wsx73flhGtUmuhZ5zdXYe25L8pEObmVF9fuKzFB+3NvKca+Je34L8wulrKJ5NbDbwTOAoYK/euTWxyYUDgadSzu+PYw/PubYzow9jF+fvW2rW58t29kksc9/9nn9zWQ5cWtMGl19jkwS7YZnyD8XfV308HBsrnwW8CHv5KRTu/RbKDy8g74O/jy2oKMtiz7kNK9TjIyY/vIB4xy2fv7sW//cexW6Z/4/F/0B4H/RK8tfrNMonHQHbUfTlvf//Yx2jaHd8X0DcPsAXa3yK+rFdHY7AskzWYT3KZ80FOIdqu04UJcbrXRRptUmajBFiGe+yxBQjZOlSq6Wi0yAtrRazToOwcVLXOs3nux+gWozWFgtIL6b6DN35ha77WJau59aqEFoXZYmtr2Tp+reS3i5HjHq77T60gHjHhpS1X1VS0GCQhg6TBvOTig5LSYNB3DpsKj0vS1GD+WjqOVoImozhYXq829Pl+HMzsFXB+kP/timSQty1gPhjLlDc5UMxl2IuxVzdo5hrEMVcfkKPPVX5Te94K/AK4HXAo4d8dj0sKdcbsfHirhH1LvGcc3+fMvjK+toQQoiRhFgkuBrwOCzj40aY814I3A5cQnqBS0xMlUWCfy/x2QcCl+8imMjyt5Kfv8f5u4r92zApzrKLBMsstnRxA76HsImbojzK+ftcii9adMsC/KNE202yAlswcirwgiGfieGl05n4s2+cXKGuNTznQk0GzMAmMVxOqViXbwfNOdSfgHNfBD+b0UJgGL7MY3Wy8/rEZ5cPPZcC3y1RflvPuTL+vyh1r9MK7Dc/B3uhP/vi+TzgZ8DOhFsQ5tp7C83uOLQ9lhnr34D1sUn7OUM++3Tn7xtqtu2buHwKNpZ+kMlsPl1wSe/4L+Dfsd/9+RTLeH4AtsvvoQHtcf1QiHt9mA+uMlaAP4YJFZfF4odjH7dCjQvZepoeV7ryQTMJ91uCZRiteu+4tDW+p+ADfJPQ36pZZ12eTP3smWsAh1Qot4h2FwnGcL3LIK1mNBkjxDLeZYklRnDpUqulotMgLa3Wtk6D7uKkrnWab17wKuJ50cAlxZiqa7/QdR/L0vXcWp8u52ayxNZXsnT9W0lvFydWvd1mH4p9bEhd+5UlBQ0G6egwabBi7cc0hmZJSYOBnpe1FSOnpsGG0cRztFHEEsPD9Hi3p8vxp2iC/FU0P1cUOynEXanEXKC4q0jbirnCoJhLMVcZFHNNophrOKHHnrrcA3y6d/w7tljwRfjjjZsY/53v85yrszbHV9bXhhBCjKSqI5qBvWT1KmAfRj98uAz4KrbKfUXF9qYrvkWCqQWCUC57qi/7T5nyruApuoV8U5QNilxhUTajwBpYhqPre3/3/7tNyXpc3KD2DxQPPLbEsldk+XmJtnf2nLukRPmmWY5tAb8/tmg6yx2YaOyavclvR78Ymygoy3zPuVAC74mYmMuylGrbZa9G/vdYgX8hchm2xURmlirXEfw7hdbJRubep8uBy2vUV7f9PwD3lijvZma5jWYmmkJNUi7HJrWfzaCYfSTwZuyl8xC49jYxobI58CbsRfo648VfatrxUyzJhJtpbivgi8DHsQzb38MmR7rIZr0S213w19gDgz2Al2C7Ffkm/fscgn2HXwWwYT75cTVEv3gCeR9cdawA/27OIX6zmPxw7ONWCH+3MRbLgcU1N9awZxgx+KAnYP47y2LKxaxN0db4noIPcK/FheSTrIhwTIXrLa0WJkaIfbzrE1OM4NKlVktFp0FaWq0NnQZxxEld67TNPeeuCtxGSFKMqS6gnF/Y0fm7rl/ouo9l6dJfx3C/u8TWV7LENg8K0tvDiFVvt9mHYh8bpoL2K0MKGgzS0GHSYMXbj1WHpaTBQM/LoJ0YOTUN5qOp52gusfQXl6n+bk/X40/RRYK3o3ckU4i7Uoi5oPt+PwrNfY9HMVeeWMZQxVz1UMw1iGKu4YQee0LyN+B8bOHl4zz/XqRP+3YeXauGTb71OFokKIQoTZVFggcAHyH/gA8sEJrN4MKsXbEV168BXkr4wXYqM1V2EqwreEMI5q4osvV4Ft8iyTLMxxbx9jOd3IJNYNQJkFcjv/32+SXK+8RunfI3YwItFuZjQbo72QP2oP8c4BnYTh9d8QzPud9Srb+5E2QQTuA903NuDnBYoPpvpL4P9fXn8yrWtZ3n3D8r1gV52/5Ce4uoZpP3E78uWYdbvqmXLENmMrsT+57Pcc4fTJgJOJ//DXldZgNHAe/An7WnLHVtux+b1DkLv1heF3hl71jc+9x3sIm7rh6yXNw73o3ZfhT+exssDg6xSLCpbHzP8pz7LdWvrW+8uL5iXVli8sOxj1sh+kqTuxrE5IN8v2Wd/h+Stsb32H2Ab0wM4VOFn6lyvaXVwvju2Me7PjHFCC5dabWUdBqko9Wa1mkQV5zUtU5zH5RD+Iy/IUkxpjqvZB2h+3/XfSxLF/46pvs9S4x9JUuX86C+9kF6exix6u02+1DMY8NU0X5lSEGDQRo6TBrMT0o6LBUNBnpe5tJkjJyaBvPR9K5WsfWXLNPh3Z6ux5+bC9Zd9HNTmRTirhRiLui+349Cc9/jUcw1SWxjqGKueijmGkQx13BCjz11WRc4ELv/n4H/XYI+RfqNb4H6OhXsGlVWiwSFEI0yB/gstpNd9jgd28Z6w97nZmMZKo7CAqnsZ28HdmjV6rQ5hfz13qpTi4pxE4M2n1Ci7B7kv/P+Jcof4ylfhjq2hyh/llP+0pLl9+uVe37m3D8oF0S67Eb+mu5Xovz7nbJLKbdd9J+c8meUKNs08zGB5l4f97iYfGaNNrnAY9MRFev6pFPPvdjC1BD8nvHXss4R4uH2sU6di6j2/dcfYuNONWy7zanrxBp1leUx5L9LGT+xOuYbsuXfF9jGPrc67azCn325KP9L/ruXyU42Ct91LTMmjmJD7J5w678F+BCwL5Yta5i/fqOn7Kid9MqwPfbSftF7+2ZsV79Ror0t1sB20PbZGSpr00fJ97cQftjng6uOFTOx3ZHd+p5W38yo/HDs45br7yaAh5WsY0vg6b0jpI6LzQeF7P+haWt8j90H1NUkTfE4bGwue2S/xz0V6/BlCAxFrNe7DNJqzcYIMY13fWKKEVy60mop6TRIR6s1qdMgvjipT1c6bYWn7mNq1tkkKcZU7ktFo5iDvejVhF+IYS6gbX8d6/0OcfcV6HYeFKS3yxCr3m6zD8U8NkwF7VeWFDQYpKHDpMH8pKTDUtFgoOdlRe/tEDFyahrMR1PP0SDu/gLT492ersefQ4eUc4+Y3mvqihTirhRiLui+349Cc9/jUcxlxDyGKuaqhmIuxVxFaGLsqcJcbEH1D/DPrbnHJdjOwhsXqPswT/lv17D1n576fAkThBBiJEV3Elwb2yr2iZlzdwEvwQKkLCuAq7GB7HTgN0xuF7sxtghqR5rLGvIWbPfCLjgPODlgfVNlJ0HRHv0dA6/LnLuOekFV3awfdbIGrU7e9iaz1pdhHiZGtnbOfwrYCNsxqs/uwC+wB/73tGFchhmYMHG5uGJ97u/5ZywQrcswO/elfLanJnG/f190lWUPz7n7sUW9VdgSE79Z2rxX6vqJncmL3Sbs34K86L8Wy/hUFV+mu7WxPl333vBd16r3bpbVsRjt353zXwL+i2I7+Lq23YJNAIfgKixTz17Aq4EXMfpFq80x3/tyLNNPl5kZH8Js3hV4rPNvdbIEZWnCDw/zwVXvw0djCyazrCLMQslY/HDs49Ywf1d2t6ybekdIYvNBoft/SNoa31PwAU1nIqzKHwPUsRSbJ4mJWK93UeYhrQbNxgj7Esd4lyWWGMGlS62Wik6DtLRaUzoN4ouTsnSl05YBazrnHqpYV9NMh5hqF/Ivv4TyC13PBbTtr2O+3311Qzx9pet5UOnt4sSqt9vsQ7GPDalrv7KkoMEgHR0mDeYnFR2WkgYDPS9rM0ZOSYMNoyn/HHt/8dUPU+/dnq7Hn6Ix/HTfSTCFuCuVmAu67/fD0Nz3eBRzGbGPoYq5qqGYaxDFXH5Cjz1lmIMlvjsEOAD/jqFZrgROxRb4XVWinb96zm1eoryLO24sxcYOIYQIzhrALxlclXwHttCvCL5V+W8Pb+b/4e7E1uZRdte4cZzqaaPO4NEW2kmwevm6Own2syetmzn3Bewh4ZySdWXLZ20qK2zcrEFfLFF2d/K/ZwxZTOcB15O37fjev8/CFgy7//4n/NvFN8lWHjuq+pLZ2NbV2XqOC2Mmm3tsnCBsFpcQ3I3/Ny/LB8l/1x/VsOtAT30+QdoUn3faLusnXkfe/i1CGtjjeZ52vlOzztM8dd5es84+da/rMNxsPxPY7ndluNQp32Q2xDnYrtXfJ5/NzT2uoFx2paY4Av8YEIKFTr0h/PAwH1z1PnyTp64L65sJxOOHYx+3fP7u1E4tmiQ2HxS6/4ekrfE9BR9QV5PERva7hHwgEYqUr/c8pNXaiBFiGe+yxBIjuHSp1VLRaZCWVmtKp0F8cdIo2tJp13rqe1cdwxskxZjqxpLlD/fY1JRfaHsuoG1/Hfv9HnNf6XoeVHq7OLHq7Tb7UOxjQ8rarwopaDBIR4dJg/lJRYelpMFAz8v6tBEjp6TBhtHEczRIo79Mh3d7uh5/5nnK+Y73VLRrqpBC3JVKzAXd9/thaO57PIq5jBTG0CyKuYqhmEsxVxFCjz3jmI0tDDwJS+o2Lma7Btudcpcaba6FvZ+frfeGinVt4rHxshq2CSGmMb6d6lxOBJ6S+XsCeAX+1c8+vo5tz5rlnQXLTne0k6AoyzZYgJbdRv46LFvM/Ip1+rJCFGUL6mUN8k0e/LlE+SaYh+0a+gjn/PFMLoBeiW0jfYrzmcdiu1S0+fLpNp5zD2IZUsqyB5Z9KEuoRS/u9QTLGhLTS9PbYlugZymTNSTL0zzn3J15y+DeK8uwLDNtUcdP+MrfTjMvJDSRGdm3nfs1NevsU/e6+tgCeKtz7i7PuVGsQT5ZRJMZ4ZYCPwD+A5uUfwu2a7WPHRncHagIm2IJCfbH/3tW4VbPuesC1Duf/BgS4tr7fPASqt+HT/Gc+1nFurLE5IdjH7ea3OGmDjH6IN9v+QBxvBjX1viegg9oYkwUw0n1es9DWi1LUzFCTONdn5hiBJcutVoqOs3XFsSr1ZrykTHGSaNoWqf18f1mXS8uGcZ0iKna9Att9bE+bfrrFO73mPtKbPOgIL09jFj1dpt9KPaxIVXtV5UUNBikocOkwYq3H9MYOqodiFeDgZ6X9WkjRk5Jg/lo6jlaKv1lqr/bE8P4czP23uQ4qsQXU4kU4q4UYi6Io98PQ3Pf5dsBxVwQ5xiaRTHXeBRzVa9fMVe9scfHTOCp2GLL24CzsfcB1hvy+RuxRa17AtthyR0ur9H+A+Tv6a0Yv3Ohj0d7zpXdaEgIIYDxiwSfh22LnOVrwE9LtPEAcIFzbjNs224xGi0SFGXZBts1Icv1mX8ry2zyWRLqBqV1yt+Cf+FFWzwC+BX+l07f4ZxbiS2odl8+3Q04l/ZePp3rOXev51wRnuE5F+oFCN9Ol4sC1R0KX3+ukvVjHrCXc24Z9TJOu7ZdQfFt6OtS109Afmv5piZzQk/APRzYyXP+FzXq7BPiuvp4JTYhkuVEbMK7KLti9mVp6wWSe4DPYaL4ncAKz2f2KVnny7EsRT8Cnl3Lukk29Jz7TYB6m3oRzeeDF1esax3guc65VcA3KtaXJSY/HPu41cQDhxDE6INi/i3bGt9j9wFNjYnCT6rXW1otT1MxQiw+MktMMYJLV1otJZ0G6Wi1Jn1kjHFSUZrQaX1+5zlXZY5zHEdgD4/7xxWUf4A7HWKqrhaTNNnH+rTpr2O/32PvK13Og/rahzji5Rj7VayxZJt9KOaxIVXtV4cUNBjEe+9kkQbzk5IOS0WDgZ6XDaOpGDklDeajqedoKfSX6fBuTwzjz3LgzgKf6zoxRtekEHelEHNBHP1+GJr7Ho9irjTG0FEo5vKjmKt6/Yq56o09fWYATwI+g8Vd52K7xPre1wPr/58D9sbeJ3gn8McAdvRxd0ecgfXFsuxWoG4hhCiEOxhmmQuc4JxbDnygQjs3es7tTTPZQ95H3u62qLpF7DC0SFCUZT75RbzXZf6tLDuRnxgpE9DXzRoUUxbTR2C7Usxzzh/H8N1RV2Evn8Jg1pjHYIHp07Gt15tkuefcQxXrcheN38fwTDll8Ym5qnaCZfLJToxcTP0JPZ8AqmLjyzEhkOU0LDNVVbq8V3YkL9DL+InVyU9itTkBVyebznPJ/5ZgGWnqshP56xriuuznOXdWyToe5znXtn9egfnftYFjnH9zMwmOI9sv6tyHWR7rOfeTAPW6fTiUH/b54Acq1nUQsKZz7gya2bUFuvPDsY9bMe7GDHH6oJD9PzRtje+x+4C6mkSUI8XrLa3WnFaLfbzrE1OM4NKVVktJp0E6Wq0pnQZxxkllCanT+pyFzfdn8b0IU4fNgaMYfDniKMrHQynGVGX6R9t+wUcTfaxPm/469vs99r7S9TMD6e3ixKq32+xDMY8NKWq/uqSgwSANHSYN5iclHZaKBgM9LxtH6Bg5JQ3mo6nnaCn0l+nwbk8s489J+Hehy/KPkjZNNVKIu1KIuSCefu9Dc9/jUcyVxhhaBMVcgyjmGkQxl58mxp49gEOBg7Hd+kaxENsV9FQs2XCTay9+ALzdObc38PuS9fy78/cSwrxvKIQQA7wRmHCOb1es69Oeuv5fABunOmeQv27DVrrHxE0M2lxm0eYe5L/z/iXKH+MpX4Y6tocof5ZTvsxWwRv3yhyHLQDuH5tmzpfl1eSv56Ylyrvfp6woX+qUP7pE+ZA8Alts6V6LjxcsPxP4pqf8pTR/T+/labdKptpneuo5L4yJgL3Q69ZfJAPbMH6Yqedf+LOAleUX5G18Vsk61sK+V7aOVeSzVJVhC49dr6tRX1nq+ondPeUPDGwj+K9T3UVLF3rqvBz/pFxZfNd1s5p1zsBEu1uvL5PfKNz4pG4mxHdgD1OOr1B2V/Lf51Ml67g6U/aVFWxwWY38fV5mPB/FOU695wWqdz7561jFB8/A7gHXx7mZoaoSkx+e57EllnGrCX8Xglh9kK//31KxrvcBd/WOG7FsjlVpc3yP3QfUjTViJPtdbuvYFpfUrvcjkFZrUqvN89Qdy3iXJaYYIUuXWi0VnQZpabUmdBrEGSd1rdOyXOqpL5TGmAn83Kn7AvzJ+8aRYky1SYnyvnn7On4hpj7Wpr+O8X53ia2vZOl6HlR6uxwx6u22+1DMY0Nq2i8EKWgwSEOHSYP5SUWHpaTBQM/LihIyRk5Fg/lo4jlarP3FZTq82xPr+CPypBB3zfPUHVvMBfH2e819j0cxV7xjqGKu+ijmUsw1jpBjz87AhzAf6trlHouArwPPYfQmWqGZifW1rC2/LlnHHGzn5WwdPwhooxBCADbg/oO8A/Wt1C/CVzx1HVvfzCnPj8hft/U7tagYWiRYvXydRYKPJ//ds8cPS9oC8HmnjrJB861O+S+WKPtY8t/hgJLth2Br4J8eW4q+dNpn2Munl1HvBfJxzMWydLntlmlzJpbJyK2jysLTUfzL08a6Fep5MiYq+nW8JpB9d3vse1PJOo7x1HFiTbue7alzzyGf3RbzqfsDz6jZbp+6fuJ15O0fl+mlCs/ztFNn+/oXeuqb6J0PQd3r6mMj8vYuLVnHllgWo2wdZ9S0q3/vX1Gh7BPIf6cyE7jrMegvquyY7fIGj02h+sVCp96QftiNYSYoP9l2iKeOzwS0MTY/HOu4FdrfhSJWHwT5/r8CW/Bbho2wB5z9Oj5d06a2x/eYfUATY2LXZL9PbIsEU7re0mrtaLVYx7ssscUIfbrUaqnoNEhLqzXlI2OMk7rUaS6+3/QLNerL8gGn3jup19dTiqluKln+9R676lyrmPpYm/46xvvdJba+kqXreVDp7fLEpre76EOxjg0pab9QpKLBIH4dJg3mJxUdlpIGAz0vK0rIGDklDebSxHO0WPuLy3R4tyfW8UfkSSXuij3mgnj7vea+x6OYK94xVDFXfRRzKeYaxzGeOsqOPU8D/uapxz3uB74DPJ9wi/Sr8DbHrlVYArGi+Ob/ho2tQghRmSeSdzaLqL6y+jRPfSFewp7q+BYJPqxTi4qhRYLVy9dZJPgS8t89e1xW0hbIZ6A5s0TZzT02lMka9FpP+c1LlA/BsJdOP1axvq5ePv2Tp83DSpR/n6f8BNbnQuJbUH5oyTrWZzBryK8IkzFpW49tE8CPS9SxJ/mJ0NuBDWra9haPXesM+ezJmc+cXbPdPnX8BJjYzZa/I5BdLr5+fETFurbD7HTrO4cw/Q3qX1cf6+HvxxuXqONbnvJH1bApO8lT9qUzem1nbVlIuZdsnuKUv4J6v+EjyU+WXFizzj6+zOMh/fDXPPU/r0T5TcnfF1dj2aFCEKMfjnXcCunvQhKjD+rj6/9PL1nHKZmyt1J/B7K2x/eYfUATY2LXZL9PbIsEU7ne0mpGG1ot1vGuT4wxQp8utVoqOg3S0mpN+cjY4qSudZrLDMxvZOtchmWPrcN/O3UuxR461yGlmKrsyxEnOuXr+IXY+lib/jq2+91HTH3Fpet5UOnt8vj8Ypd6u4s+FOvY0LX2ewPwCedoI8N7ChoM4tZh0mDDSUWHpaTBQM/LihIyRk5Jg2Vp6jlajP3Fx1R/tyfm8Uf4SSHuijnmgrj7vea+x6OYK84xVDFXfRRzKeYaR6ixx/XX2eMhbNOcQ6j3bCAkc4DrGbTzfwuWnUE+dtIugkKIRvAFqWfVqO9yT32vrmnjdOBM8tdNOwmO5hhP+TKkvEjwveS/e/a4r6Qts4ElTh1Hlyi/v8eG3UuUP8Epe2uJsiGYid931d0FdSbwDU+9v6pZ7yje6Gnvb9gW5ON4LYMZr7LHDoHt3BHLJJxt4wJgVsHy62DbdPfL3oG9PByCg8l//6U9ex9XoPxO2Avg2fJLsEX5dTnaqXfYvb4Og1uSvzRA23X9BMDFTvmfBLDLh+tfJ6g2CfJE8tvDT2Air+6CkD4hruswfNl+3law7Ls8ZSeovtM05DPMPbpE2Y2xbFfZ8m8v2f47yX+ft5aso89O5Bcr3AU8omJ9Lr4sYiH98M7ASqf+ovfjOueZtHEAACAASURBVMBvnbK3YpPVoYjRD8c6boXyd00Qmw/q4+v/p5Uo/45MuVWU0y/DaHt8j9UHNDkmdkn2+8S0SDCV6y2tZrSl1WId7/rEGCP0aduX90lJp0E6Wq1pHxlTnNS1TvOxNfnsxNdSLfvxWuT9/RLgOQHsnMoxlfuAuo5fiK2Pte2vY7rfXWLrKy5dja19pLfLE5ve7qIPxTg2xKD9znfaf6CldlPQYBC3DpMG85OSDktFg4GelxWliRg5FQ2WpcnnaLH1F5fp8G5PzOOP8JNC3BVzzAVx9/uu4i7FXIq5FHMNRzGXYq4QxDT2uPPMy7DF5q+g2s6/bfBiBm1eTrHr9gby1+xRDdkohJjm/J68o6+ayWIm+YGxatA73Tid/HULFdw3iRYJVi9fZ5HgV3tl7vccS3v/tlGJ+nal3m/hTggspdhkT58/OuXrLFSuyt7YREbfho8Gqtd9+fQOYJdAdftYk3zwPQF8n+HZZjdiMhvH3eR3Nr2XcNmIsrhbsk8An8Ku2Sh2A/6SKbMY22I9FMeS//6f7f3/DZjv8jEDm8C8xym/AstkEoIjnbofxH+9jst85lrCZOWt6ydWZ9I/9Y8PBrDLx63kbS268H42tuPcKfgnoy8D5gW0te51HUV/rMgei4HHjygzF/icp1z/2LSGPe9x6vodwzPMZdkK/0tnRSfs+3yb/PdZiY1haxasYz0swcYDTj13Y+NIKD7i1N+EH3az/U8wftHkdsBFTpk7sIcqIYnVD8c4btXxd00Tmw/K4uv/rx1TZg75vhniJXjoZnyP0Qc0OSZ2Sfb7xLRIMKXrLa02GW+0odViHO/6xBojQHdaLSWdBulotaZ9ZExxUtc6bRhPxOY5s/XfCryIYn5vTSwrr/tSza3APoFshKkZU4X2C7H1sbb9dUz3u0tsfcWly3lQkN6uSkx6u6s+FNvYEIP2c/35lS21m4oGg3h1mDSYn9jH0CypaDDQ87KudVgqGqxPk8/RYusvLtPh3Z6Yxx/hJ5W4K9aYC+Lu95r7Ho9iLiO2MVQxV30Ucynm8hF67On76xXAub26U9n92e3HNzF6Ie1+5MemMjtMCiGEF9/gPAML3Ndwzj8dc7Zl2QkTRVlWYcLu7gr1jeMdmBDrgnOBrwWs7wfAC5xz/YwUMXECg/3lRQxu4XsVlmmnz+m9A0z8fDLzbxuSD5zOZXB772OwbChgguiwzL89BgvGsnzd+fv12KC6NfB+59/G2X4r8D+Zv+t8d3q2PyXz99OALTN/38PgltT/YvgW2Odh2U18W2y/DZvEeDy25bWPA4D/yPy9tWMbmO2Le/+/jMFg5HUMZnz4d2z76T73Y5M9ff7I4HbKn2fw2r2YwSD4SuyBaJ8zaWdL5Sdiou4L2HbsoZgJnAQ8A/vd/xawbh9PBX5OXpzeBXwHu74PAJsATwCeif0ei4BnAR9jUDi6fXMVFoyvrGnnHEzAPN05fwEmOH7JZFaejbE+/VLgICa/2z97f19W05Ysv2BwcfuvgUOx6/Yw7Hufg+0ycjuwNrA95sPd7D739cqeHci2Axn0K2CTGp/EFulvjb1A0c+sM4Fd319WaKuun3g48InM32s79YFNwFyT+fsTwBUl7TwSu/59ZgEvcz6zDFsgNozZWNaZzbBYxo2LwLK9fAXbja5OpuN3YBml+4y7rgCfBi6p0NZ8bOedtZ3zy7EX4s/ExthVWN/dF3gV9ttdhfmMrK9fCZyc+ft24N0l7Pkh8Hzn3HXY9zsHuLpnGz0bHtP7/CsZHDPOxu6rsrvmXgU8csi/LcQym1+I9cnFWL9ZG4tjd8IWKDwT811Z/oHdm/8oaU+f9bBrkGUfBid6XT/s3m9VWBO7lvs650/FxuxLsPF8XSzeOgR4DYPf/zfASxiM3UIQqx/uetyq4+/+QPmEFnWJzQdlGdb/T8EeSF6K9Z3VsIxdz8KyeW3T+9wKzJ9/pmL7Lm2O731i8AFlY40+H6P5eDokE5n/v52wDyfKkPr1llZrT6t1Pd6NItYYAdrz5anoNEhLq7Wp0yCuOKlrnTaKPYAzgM2d81dh844XYQ+qH+zZsgG2mOLx2Jyz+8LHWdh1DDnfnmJM1bZfiK2PtR17x3S/x95XXNr8raS3p6be7kJrQ/djQ4za71YGtfAp5O+xpkhBg0G8OkwazEhlDE1Jg4Gel8UUI/eJVYO1/Rwttv4yHd/tiXn8EcNJIe6KNeaCuPu95r4HUcw1nNjGUMVc5VDMpZirq7Fnc2xs/V6vnZSYjb1veGDm3H1Y0uNvYX14JuaHD8f6SXah/dHk1zUIIUQQNse/on6LivW9yVPXsEVKIfBt1d3WEfqh32meNnwLwLrGzWQx7jgmU3bLkmUnGMxGcHiF8v0g8jEVyv494HeH/BbQ445ROwv+CwsUfRzYK//iEeV9uymNOv7klL+kZPn3ZcpuUbLsuO8Smq0bqncmg4tCm+Yw/Du7jvqNH4ktHl885rNVF8L4mIs9EB7W1ore4Z5fjr0g/LCAtvRxt7M/rnf+GZgAL3pNf4ct5g3J6ljGLbetVeSzjKwAXl2jrbp+Yr+S5SfIC8giLKzQTpnjVkyIz69gm48bK9gwbGFbEZ7D4M47445VmEhdFxuHRn32jJK2HI5NZI2qcwn+e34Cm2x6B9WzUu0IfBy4ZYwNRY+7gP+kXKYnH0+r0LZ7v1VlbewFpWHtLBty/i5sMi3ULiEuMfvhLsetOv7u/9Votw4x+SCXcf3fHVf7x1+BJ9ds26XN8T1L1z6gbKzRPzar2W7bZG3vcifBqXC9pdXa02ox6jSIO0Zoy5enotMgLa3Wtk6DeOKkrnXaODbAMrEOa7/I8XvyL3+FJLWYqm2/EFsf6yL2juV+j72vuLT5W0lvV+9XPmLR211pbeh2bIhN+z3M09brG2prGIcRvwaDOHWYNJiRyhiakgYDPS+LKUbOEqMG6+I5Wkz9ZTq+2xPL+PMxbLeiIseoHWOmE4cRf9wVY8wF8fR7H5r7HkQx12hiGkMVc5VDMVe9766Ya/oyC9t103c/LxtyfjHwii6MFUJMH55A3vk8WKM+30K3Jlc5T6VFgt/1tNHVDgOj0CLBat8dwi0SXB3L0vC9If/e3+r6PUP+HSybRhlbvpgpO4fhDzCHHQdkyj+vZNkJ6r94NV3ZCcvOMUpQ/hnLgNPPULH9iM/2j1MasHXfnq0PjWn7RmyRz/beWuqzrafNrKjaGfgZJjp99q0Ezsd2Gm2K+VjmlmHXaBWWxWXYlu9FqeMnwHZCLVO+SiaYbUq2Mex4ELgDy/r2W+DL2ETP4wk72bNxBdsWBbBhB+yllFG+4F4sFnlMr8wcbKJ7lG1VXoKahWW2+gq2UKLINbgIy44WasJ9Fpax6WgsK/cDBe2YwDJvfRfLHrVmIHuOKNH+sPutLk/HfNuwl7QmsP5zIfZbuJm8QpKCH4b2x626/u45NduvQ0w+yEeR/r8K61eHYZnAmqCt8d1HVz6gbKwxAdwcqO02ydrf5SLB6XK9UyEVrbYvceg0SCNGaMOXp6DTIC2t1pVOg3jipBh02jh2AI5n/Esd/Xvt78CxwO4t2QfpxFRd+IXY+lgXsXcM93sKfcWljd9KertevxpFDHq7S60N3YwNsWm/FzhtLQc2arC9YaSiwSAeHSYNNkkKY2hKGgz0vAzii5FdYtJgXT1Hi6W/TLd3e2IafxYNacN3NJmcKDVSibv2JY6YC+Lq98PQ3LehmKsYsYyhoJirDIq5qn93xVwCYBdssemohAkLgU+R30lUCCFq4Qve9sW2gs1yG9WyBa6DBc/ZF6ZXYYP4Nd4S9TkLywLSBV/EFq2F4jvAIc65LbDdboTIsj2WIek4TJC4rIcJtq8SNvOpSJdNsUXhW2AC9n5sK+s/Et+Lv2thW69vjk1WzMIyZ9yKZVy5oeH2D8aEZ5YdMCGYZXPsmj4CG/cWYv76AmwRURtsB+wFbIJlO7sPuz4XYtdLCJd1gCdhE7jrY6L0Tmzi8SJswqVttsQmFrbEMj2tiS3aW4zFj5f1/r9JZmA7E+2A3dvr9I4J7L66F4uP/8LUv7fWwXzwZtjLOhNYH7kN6yP3tGBDSn4Yuh+3UiJGH5TF7f8zsZj6WuDi3v+3QZfjeww+QIjpRipaLYbxLqUYQVpNlCW2OCkGnTaKeZh9j8Cu3QxMty0GrsPsu68r41BMVYRY+lgX/jq2+z0VNLaOJvZ+FYPe7roPTeex4fvAQZm/v0OYbPdVSUWDQfc6TBpMTGViHDtjiZF9zCNuDdY0MfaXqUxM488i7P2rIjwD+EWgdqcKqcRdXcdcEFe/H4fiLlGGGMdQxVzxEmN/mcqkNPakxlxs0fcOWF9ehV2rK7C50JXdmSaEmKr4FgnugYmvLNdiAX1ZDgNOcs79kMGJ/9DsSjfZBgFuIr/TXB2+Rf6hyFa9doTI8mzgJ8BbgM8N+cwibLLiKW0ZJcQU4VgsM06fe7EJy4luzBFCiGmH/LAQQgghfChGEEIIIYQQIi12wl5i7O8Qsxx7tn9lZxaJMkiDCSGE6IKYxh8tEhRtEVO/F0IIMT3Q2COEEFOI2Z5zCz3nigrcLDOwLa+zTGADSZNc1nD9bbLKcy7k9uFi6rBN77+jshVdn/mcEKI4uzt/X4LEjxBCtIn8sBBCCCF8KEYQQgghhBAiHVYDvsLkAkGAD6AFgikhDSaEEKILNP6I6Yj6vRBCiLbR2COEEFOImZ5z15Hfwv3h2HanZTgY2+o4y+ewrcRFMXyLBH2/mRBFFwluiT2EE0IU57HO3xd3YoUQQkxf5IeFEEII4UMxghBCCCGEEGkwEzgJ2DNz7kzgw51YI6oiDSaEEKILNP6I6Yj6vRBCiLbR2COEEFOIYQvOzvGce3qJejcFPuucuwb4nxJ1CC0SFMXpLxK8fsRnrsf6z7yGbRFiKrEtsL5z7k9dGCKEENMU+WEhhBBC+FCMIIQQQgghRBrMAU4HXpI59zPgUGBlJxaJKkiDCSGE6AKNP2I6on4vhBCibTT2CCHEFGPYgrPjyS9Qe0PBOtcBTgM2ypy7DXgO8EAp64RvkeCM1q0QKTAfWATcO+Iz1/f+u82IzwghBnG3UQcJICGEaBP5YSGEEEL4UIwghBBCCCFEGiwFrsr8fQKwP7CkG3NERaTBhBBCdIHGHzEdUb8XQgjRNhp7hBBiGnEiMOEcbx1TZjvgIqfMHcCOzZk5pfky+d9gu04tEkKI6cWxDPrgxWixthBCtIn8sBBCCCF8KEYQQgghhBAiLY4Bnte1EaIy0mBCCCG6QOOPmI6o3wshhGgbjT1CCDGNWBP4FflFat8B9gbW7n1u3d7fnwMecj57PrBlq1ZPLXwLNbfv1CIhhJhe/IJBH/yrbs0RQohph/ywEEIIIXwoRhBCCCGEEEKI9pAGE0II0QUaf8R0RP1eCCFE22jsEUKIKcbsEf+2BDgA+ApwcOb8Ib0DYDmwmqfsQuDjwCeAlfXNnLas8Jyb2boVQggxPdgNeIdz7vHO31sBJ2f+/gfwgSaNEkKIaYT8sBBCCCF8KEYQQgghhBBCiPaQBhNCCNEFGn/EdET9XgghRNto7BFCCPF/PB34GbCU/M52/WMFcCHwTiZ3GRT1+DT567xjpxYJIcTU5d0MH+OGHV/sxFIhhJiayA8LIYQQwodiBCGEEEIIIYRoD2kwIYQQXaDxR0xH1O+FEEK0jcYeIYSYBozaSTDLL3rHOsATgc2AjTDnfydwG3ARcE8DNk5nlnnOrd66FUIIMT3YvUKZi4NbIYQQ0xf5YSGEEEL4UIwghBBCCCGEEO0hDSaEEKILNP6I6Yj6vRBCiLbR2COEEEJ0zIfIr8jfs1OLhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCRMPMrg0QI9FOgkIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYaiRYJx41skuFrrVgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhIgSLRKMm6Wec1okKIQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQAtAiwdjx7SS4eutWCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEiBItEowb3yJB7SQohBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBAC0CLB2NEiQSGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEPRIsG48S0SXL11K4QQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQkSJFgnGjXYSFEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIMRQtEoybpZ5zWiQohBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBAC0CLB2PHtJLh661YIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYSIEi0SjBvtJCiEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEGIoWiQYN0s85+a0boUQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQogo0SLBuHnQc26N1q0QQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQggRJVokGDe+RYJrtm6FEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEKIKJndtQFiJFokKJpmNeCNwPeAW4ADgbuA33VplJhSfATYbMS/Lwbe1pItIg5eBOw35jMfBf7egi1CTHU+Daw34t/lg4UQQojpi7SacJFWE0IIIYQQojmkwYSLNJgQ3aPnaKJJjqb4O35fBq5p0JapgGIp4aJYSojuUSwlhBBCRMqMrg0QI1kXC5SyfBl4bQe2iKnJ64ETgD8ATwK+Dvwa62dC1GV14H5sMeowfgU8tR1zRCScATxvzGc2Ae5owZapzHrAC4C1gO8Dt3VrzrRlFrAD8Ghgfex3mQPcB9wL3AT8o/fficBtrw/cPeYz8sFCCCHE9ERaTfiQVmsHabV4mQPsCGyDvXS2Fvb8ZBFwD3AzcBmm5YQQQgghyiANJnxIg7WDNFjcdKnD9BxNNM0iRi+cyPIM4BcN2pI6iqWED8VS7aBYKl66ns9WLCVEceYCewKPAjYAVgB3AlcAfwZWdmeaEEKILpiFvTCePU7u1CIx1TiNyb51LHA9cFCXBokpxe7kfZh7fKwz60RX3MjoPnFjd6blWMj4PlzkWIYJu6uxicr3YgvHmmJX4FYGr+naDbYnBnkY8GrsQc4SivWRB4DzgA8Bz8UmB+rytALtygeLPqH8XZnj5la+mRBCCB/SasJHKlotVZ0G0moxMh94N/Bb4CHG95tVWGb/bwEvwfSfEEIMQ1pbCNFHGkz4kAaTBpuuxKLD9BxNNM0iivvIp3dkYyoolhI+FEsplpqOxBJHgWIpIYqwM3AK8CDD75O7gOMZvWOyEEKIKcgyBgeE73drjphi/B1bHHg7k33skZ1aJKYy25MPcg/p1CIRAxcx2Cd+2K05/8c2hJmoG3WcDWwZ2O6Z2ASP29Z/BG5H5FkTeA+Whatu31gC/Bh4cUD7fH1aPlhAO/7Od5zZxpcTQghRCGk14SNGrZaqTgNptdh4AvAjLDtrnf6yHDgXeCmWuVkIIfpIawshRiENJnxIg4VFGiw+Ytdheo4mQqNFgs2hWEr4UCwVFsVScRF7HAWKpYTIMhP4AHbP+e5D3728CLs3hRAiCLO7NkCM5UFs2+4+a3RliJiSbAB8Htta/BTgJkzgCdEEu3vO/al1K4SPBcC8zN83AF9rod3ZwC7OuVj6xLqYX8zyTGAj59xPgLs95WcC6wCbADthC8hcngNcAuyNLdoOwc7Atp7zCwPVL/w8GnsJy732V/bOX4KNsfcCq2F9YztgD+BFwIZOuTWwHQXvB74dyEb5YDGMov4uNOp/zbKAbsZ2IUSaKE6IlwVIq2VJVaeBtFosbAZ8Bnihc34R9kLN74B/YP1nBTYv/3BgN6xP7AvMyJSbDTy1d3wKOAlLHrOsIftFnCxAsXdKLKCd30tae+qyAN3zoj7SYPGyAGmwLNJgIgSp6DD5ZiHSQfdrvCxAsVQWxVKiLqnEUSDfLESf2cCpwEGZc/djm/mcAlyH+fddgDcAr+n9vR5wMjaOfqg9c4UQQnTFzQyuFv9lt+aIKcYJwFq9/38Lyk4lmuUT5LNfzBhZQrTFrQz+Nl9uqd3HkM+K8pyW2q7CbeTtfViBcrMx4Xelp/wENmE3M5CN84FVTv0XBqxf5NmH/O6Bl2GTakVYHXgf/ixBRwS086PIB4vi+PzdFsDaNY+fZurbv7VvMz3pamwXQqSJtFq8SKuNJwWdBtJqMfBC7GWJ7G9wHfAqimdNfiRwOv4+MwEsRv5zOqLYOy26/L2ktacGuudFCKTB4kUabDzSYKIMKekwPUcTodFOgs2hWCpeFEuNR7GUKEpKcRQolhKiz5cYvBduBh414vMHYAt1s2Ve3bCNQgghIuBqBp3/Bd2aI4QQlTmPQX+mRc9xsAX5SYA3tNT2qz1tb9xS22XxXaeyO6+uDfzVU88EttAsFEdh4nEF8H3ivaZTgW2Auxj8Lc/An8FtHO8h3y+eFsZMAM5BPlgUw+fvrg1U9y2ZOjcLVKfI0+XYLoRIk/NQnBAj0mrjSUmngbRaV8wAPkz+9/0cMLdinR/w1DcB/KqusSI5FHunRZe/l7T21ED3vAjFeUiDxYg02HikwURRUtRheo4mQqNFgs1xHrpfY0Sx1HgUS4kipBhHgWIpIQAOZvA+WAHsVaDcm51yDwI7NGSjEEKISLiMQed/abfmCCFEJWZg2Wey/uzjnVok+jyP/CTA41pq+/NOuze21G4VfNfp1Ar1HOSpZwL4YBgz/485wBqB6xR5fsfg7/hXqk/KrQbc7tS3fgAb+yxEPlgUI5S/c9ksU9/NAeoTw+lybBdhOTRzHNixLWLqIq0WL9Jq40lNp4G0WtvMBL7K4O+6EnhNgLp/RL7PfCJAvSItFHunRZe/l7T21ED3vAiBNFi8SIONRxpMFCFVHabnaCI0WiTYDIql4kWx1HgUS4lxpBpHgWIpIVbHdvvM3gdfKFh2BrYjbLbsaQ3YKISYRmj75/h50Pm7ys40QgjRNY8E1nXO/akLQ0SO3Z2/lwOXt9T2Hs7fMfcJ11aAiyvU8+sh5zeqUNcolgIPBa5TDLI/8ETn3P+Qj92Kshz4Sebva4F7Ktblsg2wgXMu5vtNdIvP34XoL9l61f+apcuxXYTl25njix3bIqYu0mrxIq02ntR0Gkirtc0JwCudc28Gvhyg7vd6zlXpfyJtFHunRUxjK0hrp4jueRECabB4iWmciLVPSIOJIqSow/QcTYh0UCwVL4qlxqNYSowjxTgKFEsJAfB6YF7m7zKLZSeAjznn/gMlJxNC1ECLBOPnAedvLRIUoVkX2BfYqWM7pgpvBR7eQL3zgVc3UG9buJNBIDEYC+4k1F+xSZ6mmQ3s4pyLuU+E6sP3DTmvmCw93uL8fRdwVs06r838f8j7QT5YlKGp/pKtV/2vWboa24WIHWk1P4oT4kVabTzSaWIU/wO81jn3TYpnbh3HZVhm1yyx3iuiORR7p0WXv5e09tRA97wIgTRYvEiDjUcaTIwjVR0m3yxEOuh+jRfFUuNRLCVGkWocBfLNYuqzKZaoYBgzgHc7534H/LNEGz8E7nfO/XeJ8kIIIRLjDAa3kL2zW3PEFKS/lf3vujZkCnAsdi0vJ+zLp/OBG3p1/1fAetvkOAZ92SIsOBbdcxuDv82XWmr3MU67E8BzW2q7Cu51mgAeVqGerTz1TAD/L4yZoiXWwrKlZX/D0wLUe2SmviMC1Nfno8gHi+L4/N36Aep9IvCy3jE/QH1iOF2N7SI82d/xto5tSR1pteFIq8WLtNp4pNPEMPYBVjD4e14JzA3czmcz9S9G/nM6otg7Lbr8vaS1pwa650UIpMHiRRpsPNJgYhQp6zA9RxNNsAi/r/MdT+/IxhRRLBUviqXGo1hKDCPlOAoUS4mpyYbA64BzgZXA/iM++0TyPrnKAr8fOnU8SHg/IIQQIhJOYdDpuyvFhajLf2J969auDUmcjzF4r4Z6+TT70mn/eFeAetvmPAa/wy87tUb02YK8QDm8pbZf7Wl7k5baLovvOl1Tsa5neuqaAA6ub6ZokWeQ/w2PD1Dv3sB7e8f2Aerrcw7ywaIYPn937cgSIja6HNtFeLK/oxYJVkdabTTnoTghRqTVxiOdJoaxFnn/PAEc0EBbb8vU/6sG6hdxo9g7Lbr8vaS1pwa650UozkMaLEakwcYjDSZGkboO03M00QRaJNgM56H7NUYUS41HsZQYRupxFCiWElOH9YDDgJ8Ayxns15uOKPcJ8vfwkyq0/3ZPPf9RoR4hhGB21waIsSx2/p6LbQ2+qgNbQrIesC+wHbA6cBdwKbbNdJHv9kjgCcDm2GB8B/AH4OqANm4I7NSzcT1gTez3uAf4G/Zi4cqA7XXFNr3/bor1rwdbbHt1LIvCzsC6wL3AX4ELgCUFym+CBVPzgdWwnTavAC7CAqS2mEk+CNwZEzxPxfp3FeZjE1xbO+c3q1hfSNbCfrutsN9hOXALcDFwlfPZGcBuzrm2tpSfC+yF+YpNmOwnd2L95PaW7CjCepit22GZoh7EruklhPVtWXb3nGvrt3Hbvpn87zETeBywK/Yi9xLM3/8euK5pAzOEvE6+Cf5VpD1Bsjbwb8AOwAbAOlj/vRu4HrvXivj0EMzAfOeumK9cFxsP7sEm1S7B+lBdHuk5FyJzz296R2ge6/zd1n0O5ncfh41lG2H9ZSF2v18C/KtFW8bRhR/20eXY5fN3FzfYXghi8kEubv/vx7uLtBI5wAAAIABJREFUsHjpCuCBwG12Obb7SMUHPBK7dlsAa2DJeRZhY8e1wE20qy+mOm1eb2k1abUQSKvFqdWk00YTW4zUllYDOIq8f/498KNA9WdZlPn/JuPmFGKqrv1Cm32sTyyxd2z3+zi66isxja0grV2HLrQ2xHPPQxrjAkwfrS0NFh5pMGmwVIlp/Gw7Pk5dh3XxHC2m/jKOqfJezzhieU443VAsFR7FUoqlUiS2cVHz2eVoO5aKrb+MYzrEUinHUWthi3IPBZ4NzPF85hZGJ3V2F/VOAJdVsOWSIXV/v0JdQgghIsfdinkCC2piwbdlu3uckPn8usAnsQd0vs9eD7weE2c+9sJenh/W1uXAcyp+lxnY1t2fAv5e4HvdD5wKPL5EG68pUG/22MMpf0zBcu8tYdNZmXI7liiXZeMCNp2R+fzawPuwFzJ9n12I7cAwrB/sBpxJfpv1/vEv4KCK36UqM4FvemypukuFb1eKCez+6ZInAadjgfyw3/pP2C5bfbb3fObQBm2cBbwMy1Lz0Ag7V2GB9Rt6ZUJxxIg2+8eLM59/JvBThvfnCeBCTIS0Ydu4I9TuKBc69WZ9xFrAezCBNeqa7BXIlnG8z9N+leuwGpMvPmSPMyvaVdb3hmIG8O/AsUwu7h9lwzLgbGyXvKbYDvOPN4+xZQKbfDieahl7+hzjqfcfDB+3umQ+7fpgsD5yEBZj3OdpP3tcCryVsMlLYvbDw+h67Orj83dHlKwj65uaeCAWow9y7XsBNmk/rv+v7H2HOruHxjS29+nKB5QdF1fD7qUrx5RZik3cd0HWjth2EkzpekurTR7SavHGCDH581S0Wqw6DbrRarHGSG1rtc2xh+pu3U+rUeco5gLzekfoOftUYqqu/UKbfSwWXx3L/R57X4nl9wJp7VD2tam1Ia4+BOmMCylo7VBIg41HGqwY0mB2pKbBIM7xs20NBunrsLaeo8XQX6bLez2xjD/aSXA0iqXGE0tfrmrbuEOx1PSOpWIYF31oPrs8bcRSsfSX6RBLxTz2hGQN7NqdyvC1DNnj6yPqmku+T95Q0a5NPG1fWrEuIYQQkXMkeacfQ2b6PmUWCc6j2OK7CWwiwF2R/yZGBxPZ490lv8dzsayVw+p7CH9A3j9OwoTlOGJcJPg3JgOdqtuUP7eATUf1PrsHo6919viq084M7BqsLFj+5RW/T1VmAid77Cj78umwl06PD2lsSTYGvuexadixCnhLr+xLPP/u24UrBAdhC3V8Nj3IcJF4ObBtIBu+O6SN7LE9ljXltAKfzV7TY1uwbdzx1Jo2gL2c4PrUrI+4pqAtS7BJgKb5saftKtfhTZ56VmAZy6pQxveG4lVYJrVh7T2ATbYM+/dPEnYh3Zxenb42V2IvzIwaMy5n8MFCUd47pL4jq3+VxngR7flgsFjiCk+bE9jLP8N+j8uxrFkhiNkP+4hh7Orj83dlJ6Cfkyl7dlDr4vNBLvszuv+Psm0V9rLjniXbjGVs79OlDygzLu6IZW4rcn263Ikxa0dsiwRTu97SaoP+Rlpt+CGtlo5Wi1WnQftaLcYYqSut9mlPXddhc4opkUpM1aVf6KKPxeCrY7rfY+8rMfxefaS169GF1oa4+lAq40IM2q8NpMGKIw02HmkwO1LTYBDf+NmVBoP0dVgbz9Fi6S/T5b2eWMYfLRL0o1iqOLH05aq2jTsUS03fWCqWcTGL5rOr03QsFVN/mQ6xVMxjT11WA/YDvoHt5jjO5muADzF+bm0PT9lf17DTTaCwhGaSyAshhOiYN+MfZGPh37DBMHu4C/lOANbHsmf0zy3DspoMy5IwAXwp087LnX+7H8uEMCpb5n4lvscxnvLfxx68rp/53FzgCcDHgcXO5y9m/ELBfbEXE09meED1s8xn5jvlD8r82w8zZZZkzp8MHFjwe8/Agoqf9+p5W8FyLocz2Ad8GXj2wya27s+cuxf7HUdlhup/l1kMvtS5Ctu2/WZg+ZCyi7GMHG0yC/iWx5aiL5/Ow3bUdMt3+dLpLkNsWgh8DXg78Argv4BTmPyNV2HZco4j/7uEFrNrAF9w2lkGfBG77+b2Prcatrj5OPL95gZg6wC2fITB+zHr+/r9fktsge4E5jPPB47GFhK/rlfHsMmqtwa0zRWTf3X+3XesV6P9Pr4F5vthEybZ7CxLMB9xt+fzWZub5jZPuw8rWcfu+DPPvL+GXc9l8Lc5x1N/mbGwCJc49S/GRPzjgTUzn9ugZ9/pHps+FsiW9YE/OHX/FvNH85ic5JmBZft6BzZuuPa8rkLbvgcQ/eMkLLNPLLi7Ujfhg8EmTT9L/nqcjsUvG/Y+NxubEDyKwZhgAsuEv0MAW2L2w1liGrv6+Pzd+iNL5Mkuov1AQNsgLh+UZVj/PxN4IbARk/fdBtjLfT/3fL5KzBfL2B6DDyiqSfZhUMutxMaHG/FPtJ9Yw6a6ZO2IbZFgitdbWk1aLeYYIRZ/npJWi1WnQftaLbYYqSutthb5+doJLFNvKqQUU3XpF7rqYzH46pju99j7Sgy/Vx9p7Wp0qbUhjj6U0riwD/FovyaRBiuHNNh4pMHsSE2DQVzjZ5fPy6aCDmvjOVos/WW6vNcTy/ijRYJ5FEuVI5a+XMQ2xVLjUSw1SSzjYh/NZ9ej6Vgqpv4yHWKpmMeeKszCfo8vM3oM6B83YvOIZRKOHeap5zs1bL7OU1+TmwEIIYToCHdx3AQW8MfMTQzaewKTL+L9GQvGZmc+vyXwYfwPifYCtmEyaDoJ2DVTdga2Et/34O9aimeBOCZTbgVwSIEyW/W+T7bN7xZsr48vG8hPKBYofzVT5s0l2+2zWa/8e7Dv/amK9bi8lvz3ei62qPMBTJxmMyfNwjLnXuUp18+K+7+9v/8JLGBQKK+DXQPfbo+vCPSdyjAL+LbHlnEvn84jvpdO9yC/GHcpJkjXGFJmS+ACJkXzeU75XwW2cR3yYv3vwKPHlHsq+UwyPw1sG8AvnDb+DPyl9//njrBzBvbCh9sflhMm8N/SU/frA9RbhFd72t4P8/XLsBcfdnPKzMMmXn0Cba8Gbd3C0941Jet4Gf6Jnc+EMxPw71a7acD65zB4z/wSy/Q3jjc6Nq2gfgbr2dj9k633XQXKbYVNnNSNqzZn+OTLBDaxcwL5ftwF7gRuaB8MNtn0O6edOxmfKW0X8vfG1cDqge2L0Q/HOHb5/N21FerJJrJ4fiDbIC4flGVt4Pfk+/8zC5T9EPlr/tIatnQ1tsfqA3ya5NlMZoX7KRZ/ZB8ebEQ+jm8rPvKRtSO2RYIuqVxvaTVptSwxxgggrVaElHQaNKvVYouRutRqC/D3w+1K1tMVKcVU4/zCfCwBYBN+oev5gD5d+OrY7neX2PpKli7HVmntasSktaGbPpTSuBCj9msCabD6SIPlkQZLT4NBXONn1/HxAvx9MRUdBs0/R4upv7hMl/d6uhp/tEhwEMVS9VEslUexVHqxVGzjouaz69NkLBVbf3GZDrFUrGPPKGYAe2PX8naPDe5xB/B54MlUW+D6Pk+dn6th/4We+p5Voz4hhBCRciB5h79PpxaNx10k2M/mcCaDiwNd3kL+u36DyW2JDx9Rdjb+LCZFt2U/JlPmwwXLgD3YWui0+aQS5ecAl5K3+z/HlMtu031mifZcntSr4xDshcc6dWU5gcHvcy8mbv/J6CBvO/I7US7CgtgJ4AcMnxwCyyblXsuuXtqchWWEcO0Z9vLpPPwvnR7XvKlD2Rq41bHnQeyB7zg2ZjJrzlKnjk8EtHEN8hOBV2LZYYrwcfLXfO+A9sHwLCQnUGwrcN+uo18MYJdvfNkjQL1F+LzTbt9H3AI8dkzZM8nb/drGLIXnedo7dcTn18Qmx/YFjmRSGGePmyi2GL0sbka7mwPX/7hM3Rcx+KLHOM52bPtITVsOd+ork4HnsEy5ZVR/QeZE8r+t7/gbljGpiQmnIrhxSkgfDOaHf+m0cQewY8Hy7uTcBJYlMiSx+eFYxy6fv6t7bBXArj4x+aA+a5L/LW9n/MPCPjOBK5zyj6phTxdje8w+wNUki7F440Hg4BHl1mTw4X1b8ZGPrP2xLxJM6XpLq0mr9YktRugjrTaelHQaNKvVYouRutRqPyL/u15dso6uSCmmKuMXzvLYVdcvxDAfAN346tjud5fY+kqWLsdWae3yxKa1of0+lNK4ELP2C4k0WBikwfJIgzWDnpcVI0R8nLIO69P0c7SY+ovLdHmvp6vxR4sEJ1EsFQbFUnkUSzWD5rOLUTeWmgpxFDQbS8XWX1ymQywV69jjY0/sOrjrF3zHPdguxs+i2PcYxSc99ZdZg+DiLsycwNYLCCGEmGI8hbzD379Ti8bjG2RvwzIZjGIm+W2GH8C2TD6lQLu+LeQ/WdDmY3qfX8no3QN8HO20+cOS5R9Ffiv4hxjcMTHL1liQ0hdhZe3N0t+pck8si8cVNerK8kfyv8VC4BEFyvazQGWP+7HME+MCso09Zb9d3vxgzMJEvWuT+/LpPOJ76XQWcLHHpjIZdz/oKT8BvDignd906n6Qchl1dvDY9/mA9m3rqX8C+DHFdzrd2VN+CfUz/77fqXMZtnC5DXwZT+6l2MsaL/aUfU8zZgL+bC9VjruBMzC/G3qXtD4XOW2GWvjdpz85tgrYqWTZ1zNo24U17JgB3ODU9+QS5bOZ7P5Uw461yGcSHHdcDRyLTWS1wXyPDSF9MFhCh2z9qyj2QKfPWpjvztZxS0D7YvTDsY5dofxd/7g9gE1ZYvFBWU5x6l1FsV0NshyZKX8fxfuljy7G9ph9gE+TLKdYIpm+JmkzPvKRtT32RYKpXW9pNb/vllaTVktFq6Wk06BZrRZTjNSlVlsTf/bcL5espytSi6nuo5hfeImnbB2/EMt8AHTjq2O6333E1FdcuhxbpbXLE5vWhvb7UGrjQszaLwTSYGGQBvMjDdYMel5WjLrxceo6DNp5jhZLf/ExHd7r6XL80SJBQ7FUGBRL+VEs1Qyazy7GdJ7P7tN0LBVTf/Ex1WOpmMeePo/BFoD+c4it7vX9Nra4PaQP/ZKnrTrjyRme+l5V00YhhBAR8ljyDv/QTi0aj2+RYNEMlcd7yk5QXHhf55T7ZcFyj8d273tlwc9n6e/G1z8WUz67gG/r6b+Sz34xCzi/9+8rKb5T4jCO7tW1EfBVbLFiXVbDFjlW7be+FzXvo/i29W7b3yxqeEPMBr5H/jv1Xz6dR3wvnQK8jbxNZbLlADzBU8cEsH0gG32Zlv67ZB0zsHvW/W1CcbDHxsWUX9z7L089e9a07cdOfXVfjirKbPwTHQsKln+yp+wRwa2cxL1OVY4bsQw6L2f8gvmq+Hzv0YHb2BsbK8tM2Pdx74Vratjhi42KZvAD2DBT7sQadgCsjWUWqtIvrgTe1aujKV7oaTeUDwa/H/5KhXrO9dQTaufF2PxwzGNXCH+XPc4OYFOWWHxQn+eT/85fqlDPAZny59e0qe2xPWYfMEyTvLtg+fcDJwMfq2lHXbK2x7xIMNXrLa3WXJwQ83jXJ7YYIYu02nhS0WnQvFaLKUbqUqvt62l7AnhZyXq6IMWYqugc+j6esnX8QkzzAV346pjud5fY+opLV2Orr+26h7R2MUJqbWi3D6U4LsSu/eoiDRYGabA80mDNoOdlxakbH+/raX+CNHRYn6afo0E8/cVlurzX0+X4o0WChmKpMCiWyqNYqhk0n12c6TqfnaXpWCqm/uLy/9u783BLivrg498ZdmRxYRNGGUBAIy6Iivq6YMQt4pqoaGJwX7KYN+JLfGMiIL6JGI0mMXF5g5pEEk00ghKiQQWjEYkooiYIqCACI/smyzDLff+oe97pW6fOuaf36nu+n+fpB07P7eq6faur6tenq2oe+lK5tj0PIiwK9INEuvF2F3Aa4e+yY41zTvOJxHlnfVaW8ulEem+smUdJUoYewHiF39bS5k1JDRJcM+OxL08c++0S5z4tOvaKEsdWlZoR4+EV0km9nBjPKvS2wr/VWZJ45G8IMyQA/OFiurN2NCc5lPHf41uEByKz+Ezi+LeXOH+8FPf7Sxzblkkvn36P9EunTS67XsVujD+82ki5WbIgDD5NBQqzloVpdiTMfFtM+zqqdebjQGRTA/kbOZnxa/D7FdL5SiKd19fM28+i9Oq+HDWr1KqvFzL7DDNPSBzfZru4LjrXZuBjU7a/I8zoci7jszUvLO57H7Brw/lMXddnNXyOOuKH/1fWSGs0U1Rxm7T6bso2hOv1cGDPGvkoehLw1US+ZtmuA36zoXzE3hmdq6k6GNL18N2EARVlfYzx6/IbTWSSvOrh3NuuVH13H0I/Ztbt+MLxJzWQp6Y0WQdB+JvF12s9YcXvsopfQM26CvokXbbtudcBqZjkUtqdVbMNxfznPEhwyNfbWK35fkLu7d1ITn2EmLHa8oYSp0HesVrTfaQ+Y7X/nTj3ArPN2NunIfapvsvs9ULqZas69UJOzwP6qquravp+j+VWVmJ9/r2MtWeXa6wN3ZWhIbYLQ4n9qjIGa44x2DhjsPmLwWBlfV821DisqM3v0ZrQZj9+Xt7r6bP9Sb0QP2mrO0grV/almmNfapx9qfnrS/k8Oz8596X6eB660vpSObU9Byye+8JEWvG2Afg8YSxCG/VkLLXy35trpJcaQFp28gJJYuu+M6Bl3ZrY1+ZsIG34CbN3slI/9/US54oHBXbRyG9I7Lsv8J2S6byG8OCn+IXnGwgdls8SZkb6w8X95xEGDNa1P2H1RQr/3Z96L6Aeltj3fkJnZRZ7RJ83MT5YcpJ7M76K46UzHtumjYSl1FcDLyjsTy2D/h7qdRKb8Gpgl2jfpyg/o0rq3vg2s5eFaV5OuM+KPkh4EFLXasKX2nc3kFZ8P9xNtQdiNyT21Vl9bA3jDyi6ms0rVUf8BeEh2Cx2T+xr6z7fh/GB0z9k9pnHtgaeRqivD1/ctwPhQcRzCavBXpY+tLRHJvZ1OSv6ch4afb66RlqpftB7CTP8/Tzxb7ENlG+jl/MVwkPkQwmz5B9Nuqym7EZoJ58OvJDw8lNT4vutqToY0vXwpwkDKsq6JbHvPhXSScmpHn45+bZdqfruR6R/72kOLfz/Sq2DINzn8fX6FNUmKLmIMOMjwDdr5Knrtv3l5F0HpPob76OZ/l0VxxFmo6xjV8rPrgtwFtVWnSgjt+tdhrHaFsZqxmpDidWGFKdB3rFa032kPmO1VL19O91MIFfHyxlen+rP6a9eyOV5QJ91dVVN3++x3MpKUZ9/L2PtcnKMtaHbMvRyhtcuDCX2q8oYzBisTcZg8xeDwcr6vmyocVhRm9+jNaHNfvy8vNfTZ/tzFXC/GdNvOkbLhX0p+1Jtsi81f30pn2fnJ+e+VB/PQ1daXyqXtucw4PxlfmYz8DXC+xT/BFxfIv267kzsi/8+ZaSOTZ1DkqZykGD+Ul/i1AnO+vCDEj97e8PHV71WWwMPIXz5egDhhcydSTfAqdmDqnzRdjNhaexzovOcAjweOHUxX7cSXmLcWOEcsf3ZEsgVBwmWGZgZizuHdxEe8szqgdHnLzH7oMX4WICLS5y7TRsJg0Y+CTx/ws/k8NLpatIzdXy8QlrbJ/Y18eBgFeFhR+zUimmlVs/cjmYe1MUvg59JtSAkVc/UmZ03Faj29aBuPfCPJY4/ILGvTDtRRt3rtJHwNz+LEIQWXzxfC3yB0NY0MSgszuvVtL/i0EGEWbQeBNyL8IB/uwk/e2T0+Sc1zpt6wPlk4L+BdxBmVesrOL5gcftdQtv9AuB5zDbj+bMJK/we3WB+4jqoqft8Uj1cpa2AdH+tqf5uLvVw7m1XU+1CMZ2225W+6qDVNPe3hDAbadV7p6jLtn0IdUDqgfXf10yzjidSf5bN7YEXVzjuZrofJNj39S7LWC0wVjNWG0qsNqQ4DbqP1frqI0G/sVrqmeAl5PNCQsoQ+1R91wu5PA/os64u6vN+j+VWVopyalurnttYu7ymYm3orgwNsV0YWuxXljFYYAzWnpzbzyJjsOXN6/dlQ4zDYm19jzZNLv34eXmvp8/2Z9bJ9DfTfj3VB/tSgX2p9tiXWhl9KZ9nbzG0fhR035fKpR8F89GXyqXtedSUf/tPQt34SfqbdOG2xL46Y3NSx6bOIUlTOUgwf+sJwWKxURzaSoJlZkVNzf5T5vg44Jl1CfmR+xNe7H8p47M1lJF6QDGLrwEnAScU9u1GmGVj1Fl6Pc3MALM9YTakyxc/j/67f8104w7wN5i9k7KGMNNF0b+VOPdDEvsuKHF82zYQlos/irDkfNG1hACzb09gfOn6WwgPFcraL7GviWDwcYSgr2g91ZbV3obxv8VG0gOWyzqAEJAWVbmOMD67GtSbuSy+TzcA362RXp1zf4P0qrmT/EL0+We090CqqQeaGwh19zNYGvgeCPwW4aXzuuK8tvXgZW/gNwkv0tdpL75X49jPA9cwPiPd/YAPAX9CmGH7nwgPUfqYyXoTYXXBrxC+WHgkoW/xEtJfDoy8mPA7nN1AHvZjvE1tqlw8lvF6uGpbAemVn5v4u+VUD+fedjVR3+1B6MtB6Nf8tEZ+JsmhDnosof4uuoVyfdY2dNm2D6EOiK/HecBNNdPUZCvhehurGasZqw0nVhtSnAbdxGo59JGg31ht78S+SxpMvw1D7FOdS7l64cHR57r1Qi7PA/qsq3O532O5lZWinNpWMNaeJNdYG7orQ0NsF4YY+5VhDGYM1jZjsGCIMRjk0X723T8eYhxW1Ob3aLEcyktsHt7r6bv9mXWQ4DU0M0l8buxL2Zdqm32pYIh9qVzaRZ9n19NVXyqX8hJb6X2pnNqeVD0KYeDn3xAG96cWY+pKauXRe9RILzXJl4MEJWmFupYwS8Ro+0C/2VnWlSzNb5klhh8ZHbtAWMJ7Vickjp/VGwkNdnx8le3VJc4b2wr49wnpfqxGurEHLab5u4ufVxFmtKhzjm0W0yjm+cQSxz+X8d952kwQsQ9Hx8760K0r+xE6p5PKzTeBe/aWu+AdjOfrjIppHZNIK37AVsWJiXSb3H7cQB4BXpRIOzWTyyzidqBs3Rj7lyitrmby2powy1LVOgJCXpson7M4g/Hr/uQa6Z2ZSO+8mnmEdN17fAPpFm0NvJ3wELuJ+6zuakpHMFubfTNhNsKjyGNyjG2AlwGXMjnPf93QuX4lkXYTdTCk6+E69+J3E+m9qmYeIa96OPe2K1Xf/WLJNJ5ZOPbMmvmJ5VQHNV3+m9Jl2557HVA3JmlD6h7ravtgy79bjte7CmM1YzVjteHEakOJ06D9WC2nPtLIEfQTq61PnOPkBtJt0xD7VGXL7wU09/uNHEH/zwP6qKtzvN9Hci0rI321rWCsXUausTZ0V4aG2C4MMfYrwxjMGKxNxmBLt6HEYJBX+wn99o+HGIcVtfk92khu5WVkXt7r6bv9eXPimNT2zYp5yp19KftSbbIvtXQbSl8qx3bxCHyeXVXbfakcy8vIPPSlcmp7vp04vrjdDnyUMAFXH1L9ib+okd55ifSeUTOPkqRMjZaSHm0f7zc7y4oHCZZ5KTE1SPCoEsefkDh+Fn+UOG4j4Vo/h7DC4A4Tjl2TOLbOIEEIM5LcmEj3l2umW/SsxTSfV9h3MWGAYlWHUq+D/fbo2PWUW1o6DuBPL3Fs25Z76XS0nc/4LBxdOjeRp+MqpvXeKJ1bCYNR6/p6Io9Nbmc3kEcIwXsx3Zup9vvfK5HHBeCQGnn7WZRWmcHcdTyc8d+jTB2xLeMPStp8EWFddK7NpGdgntVfMv77l5nJbJLUdS3Tdi7nPoT7Ij7H1cD/ITw025PJ9fVvJI6dtprerA4CzkqkPWm7irCqXzyDXx+2Bz5COp9Nze70TsbLWhN1MKTr4aptxWrGH+AvAE+pn82s6uHc2664vlug/GCYNcCRi9vBNfNTlFsd1GT5b1KXbXvudUDdmKQNjyK0zWW34u9wU8U0UjMJNinH612WsZqxmrHasGK1ocRp0G6sllsfqaiPWG1jIt0TaqTXhSH2qZ5Z4vjtCLNrt1Ev9P08oOu6Ouf7HfIuK9Bf2wrG2mXkGmtDd2VoiO3C0GK/sozBjMHaZAw2fk80we/LZtua6h8PMQ4ravN7NMi3vMD8vNfTd/tz9ITj4i2n95qaZF/KvlSb7EsNry+Vc7vo8+xq2uxL5VxeYD76Ujm1PS8EvkyoP5e7P79HWCyoy+/0j0nk4x9qpPfjRHpNT2YiScrEN1ha4X+u3+wsa2iDBH8pccyNwOEznrONQYIAb0ukey3NdVh/ezHNhxX2fZ56M0u8mnod7HiGofNLHJsK4N9W4vg2rQUuZ/zavJcwEDXe/y36efl0tJpknJ+ysxuPxCtinlM/i6wi/eX2kxpIu2lfZGkev1Qxnacy/vveRvWHDak663UV0yrrVYlzl6kjDkscX2dWs2n2SZzr0pppvi+R5mbqPySpe12n2Rb4aiL9DwP3mDGNU6Jjr2oobyOHL+bnpkQ+U9v5hL9v31Yx/uBmAfhhQ+nHDzHPaSjdSfVw1ZeMDkmktQm4d+2c5lMP5952peq7psphXbnVQU2X/6Z02bYPoQ6oG5PkpPg7/KznvEwy9Ou9FmO1pvoJubd3Rbn0EWLGassbUpwG7cVqufWRJukyVrsjkd5bauS9bUPtU+1R4vhHJY5vul7o43lA13X1EO73nMtKn22rsfbsco21obsyNNR2YUixX1nGYM0yBhtnDLZ0yz0Gg/zaz5Su+8dDi8NibX2PBvmXl3l5r6fv9ufxieNS219VzFfO7Es1q++yPIl9qeXZlwpybxdHfJ5dTlt9qSGUl3noS+XY9hxIGLx4TSLNeLsT+DvgiRXzXUZqzMNXaqQX1w93AVvVzKOkObS67wxoJjdEn8vONKrp3p3Y90qaW4q9ir0Jg/hiuxM6L00Edvsv/vfWgmBLAAAgAElEQVSywr7LFs+9XcU0D4s+X025l1nj479V4tiHMD6jRpnj27KWEATtG+1/L/C7hJkkTo3+7RGEjnYTAyTKWEP6b/+DCmltTZg1paiJv8d9CStwxS5uIO2mPSL6fGHFdFIPIc8BNlRML77PoFywWUfTdQS0d5+3ca41iX3XEQK6Oupe12lOInyBUfRR4LXA7TOmEeev6fJ2HiE/exFW3P1nwgz00/LzBcrNwtSGBeCTif23NJR+XAc1da9MqoertBWQruPOJ0zYUFcu9XDubVeXdWtZudVBTZf/pnTZtg+hDmizXdS4IV/vtRirjRirVWOsNvl4aKc/MaQ4DdqrI3PrI03SZay2LrFvU4V0ujLEPtWVhAnsqh4PzdcLfTwP6LquHsL9nnNZyaltBWPtSXKNtaG7MjTEdmFIsV8VxmDNMgZb/tzGYHnHYJBf+5nSdf94aHFYrK3v0SD/8jIv7/X03f7MOkF7GwNd+mZfqll9l+VJ7Ev1c54h9qVybxdHfJ5dTlt9qSGUl3noS+XY9lwK/B6hHnwhWwaqpmwP/BphsN4PgGOB3SqccxYXJfKxtmJaewI7RPsuZnj1g6QMOEhwGOIvbfqYtX6legjwoGjfj4DTesjLyGrCQMBRpyQOCo4EjmvgPPsTylZxyfnLCAMQ96uYZp0O7D6ETk7V41OB9bdLHN+GtaRfOv1T4E2L/7+JfF4+3T+x7w5CIFPWI4Gdon1NBCTxtQT4Ofl9GX0A43X1JRXTSs0WfFbFtGD8XrmbsNR6F+rUEanjr6G9h+ZtPKxLLf3exAzida/rJPsAb4z2XZ/YN832wIOjfW190bOe8JDulwkP7X6bybOwPRj41ZLp70VY3fgo0n/LKlIP/i5L7CtrP8bbj6aue6oevpPq9+KTE/u+UDGtopzq4dzbrj6/wJkmxzoo9be8nf6/wO2ybR9CHdBWu6i0oV7vtRirFRmrVWOsNvn4tmK1IcVp0E4dmWMfaTltx2qQ/pvlsIL8JPPQp+ryGU4XZWyky7p6KPd7zmUlp7YVjLUnyTXWhu7K0Dy0C0NjDNYcY7DZzp1T+zntPDB/MRjk2X5O01X/eGhxWFGb36MNobzMw3s9ObQ/VzHboJ0q/Yvc2ZdqTg5leRL7UuXPA/PXlxpCuxjzefby2upLDaW8rPS+VM5tD4QBhp8CnkbI6x+Rfv9u5GDCQkJXAZ8grGzcxCI9I7czfk/fj9lXviz6hcS+71RIR5IcJDgQ8SBBVxJszqMS+77aeS6WeguhIwJh6etfJDwsKToJeHTN8+wPXB7tu7zwb2VtDTw02le3A1vn+KuZ3vlr277A2aRfOj022rcJ+HXGXz49lLBUd1cvn+6Y2HdrYt8snprY18RLEKnZxm5uIN2mpcrzTyqksxY4PNp3N+nVx2YV5+37TJ/5qCl16wgID4DrHF9G0w/rdgMOSez/Yo00oZnrOskrGJ8978OEh+Ozehghj0VdvEByE/B+QvD8ZmBj4mdSsxVN8zLgc4vbM2rlbov7JPY10Q9p80W0VD1cdfXDnYFfivZtBv62YnpFOdXDubddua5ukGMdlOvfssu2Pfc6oM12UeOGer2N1cYZq5W3FmO1oq5itaHEadBeHZljH6mMNmI1gP9I7KvyfHM5xxFeFhtt36faF73z0KfqazBJW2VspMu6egj3e+5lpa+2NXVuyKOvnGO5yrkf2VUZmod2YWiMwZpjDDbOGGxczjEY5Nl+zqrN/vHQ4rCiNr9Hy728zMt7PTm0PxsIq3stJ4fJMZpmX6o5OZTlSexLLc++VP7t4nJ8np3WVl9qCOVlHvpSObc9scuAtwL3B54PnEl4DpayLfBiwnf8lxBWJYwHbFb1uejzKkJZLCtePTmVtiTNJG4Mlacbos8OEmxOqpEvOytQk4NtDwdOXPz/HxBmwbhj8b9/Xfi5bYB/AB4O3FbxXPsBn4/2XVb4t7IOYfwhSpnOf90ZhnKaxXRfwqoUa6P97yEEjCmbCS+fwtIZZh5O6JgeyXhd0LTUMt53VUzrZdHn25g8q04ZqaCvah4hzPhTfIByPs08+EsFS1Xy+TLGZy75FGEWq6r6ulcezHggX6aO2Jbxh11dDxKsM/POL5GehebMGmlCuCbxdW3qujwrse+MkmmkBuN3WT9vJNS9OwEnRP8Wzzi4nGKZqHMPFj0ise9fG0g3Lr9N1cGQrodvr5jWC4Adon2n084Km9BfPZx725XjasyQZx3UZPlvUpdte+51QN2YROUM8Xobqxmr5dRHiBmrLW8ocRq0F6vl2EeqoslYDcI1ODHal3phpo69gbex9CWKt1GtLzTEPlWZMtL1M5yUpsvYSJd19RDu99zLSp/fGRhrzy7XWBu6K0NDbBdyj/3qMgYzBmuTMdi4nGMwyLP9LKuN/vHQ4rCiNr9Hy728zMt7Pbm0Px8jvWJd0cUl8zQE9qXsS7XJvtS4nPtSubeLs5r359mxtvpSQygv89CXyrntmWQjcNridj/gVcArF/8/5QHAOwmL9XwW+L/AvzHbKtAp/wy8Kdr3BODrJdN5fPT5Tpp5j1CSlKnfIjQ+xS3nAZ5XsjSvHyxx7CMZ/12PKnH8CYnjp3lL4uf/pMT5ILwYGKfx6pJpAOwC/Gjx+LsYn3HiE4nzxKsZzGqPxePfQyhLo22vwv6yXpXI314ljj8jOrZsAL8+Ov74Esc3aV/CYMuq5Wo18HeJ479DesWpJh2eOG+V2WqflkjnnGayyNpE2rPMvjbJZwrpXEF6trAqvsh4Pp9eMo17EH63YhqbGZ/Rqox9Evl6bY30yqhbRxyWOP65DedxJHWd6g5aOi+R5nepv3x96rret2aaEPJ1VyLt1Kx/05weHV9nJsRjCV+k/GmFYx/G+O/yvpJpXFo49hUV8hDbhvF7/DsNpAtwVpTuOQ2lC2EigSbq4VWEeyCu4+JZpKrKqR5em8hLLm1XG/VdE3KsgyBd/q+umNaJwPWL208JMz9W0XXbnnsdULe/kZvi71F2MpsuDO1674uxmrFaXn2EImO15Q0pToN2YrVc+0h9x2oj30mk1VR8sZotXxCPtnOpPnncEPtUZWbUTT3jr1Mv5FLGuqyrc73fY7mVlaI+21Zj7XJyjLWh2zI0xHYh59ivCcZgxmBtMgZbuuUcg0Ge7Wcu/WMYVhxW1Nb3aDmWl9i8vNeTa/szL+xL2Zdqk32p4fSlcm0Xc+lLDbUfBe30pXItL7F56Evl2vaUtRVh4OnphEGE8e8Ub5cBf0AYYFvWakJZK6b3lZJpbEdYebmYxj9XyIskaUBewniDVOeLrbYNaZDgKxI/X7ZhfWUijSqDBE8tHP+biX/flfQLjcdUONdjEukUt89USPOvojTKdrDXRcd/qMSxj2D8d3h2yfM34f7AjxN5KTvwdNLLpxfS7r2/I2FGrzr1zWrCrEdxGlUGnk5yRSL9XSqk80RC8FHnvp3kRsbzmLqvpzkhkcaHa+brGYk0Hz3hZw8g1L9HAU+teV6oX0e8lvG8T5rtpa7nJM5VZ6n7X0mkt7C4v66613WS3RnP7/qSaawhzHhUTOP0Gnka3fvfr3DsYxn/fco86N2VpfXFSRXyEHtDIk9NlAkIqxm1VQfDeF9vgfIP5l6cSOPPG8xjbvVwrm1X0/VdU3Ksg0bi8r+RMOi3jN0JX4aO0vizGvnpo23PuQ5oq13sS/F3yXGQ4JCut7GasdpIbn2EEWO15Q0pToN26shc+0h9xmpFqb/pByqmFTspSvc66pfzIfWprix5/OsS+apzvXIpY13W1bne77HcykpRn22rsXZ5ucXa0H0ZGlK7kHPs1xRjsOYYg40zBlu65RyDQZ7tZy79YxheHDbS1vdoOZaX2Ly815Nr+zMv7Es1J9eybF9qefal8m0Xc+lLDbUfBe30pXItL7F56Evl2vbUsTdhAOBliXzF2wbglArn+J0onc2EicFmlXquN6ltlSStEE9nvPI/sNccTTekQYIPTPz8zcDOJc755UQaZQP+YwrHnjbl5x7D+IOU2yhfHl7KeJ6L24Ul04Px2Wo+W+LYvRN5KDPD0GsSx1eZ0aGOSS+dvqtien29fPqtxDmPKXH8iYnjFwhlrimnJNI/umQa9yLM0DQ6/myamVkJwgOu1DX4lxJpPJrxe/0a4N418/bbiXxNqu8+XviZM2ueF+rVERCC4uLx1zaQp0lS5fi4imk9gJDXOL2zaKbM1b2uk+xKuhzvUSKNv08c/7aK+Sk+DCr7whmL5y3m4wbKvWTz5Oj471Pv73cg4w9VzquZ5khq5vEm62CAjybO8ZwSx+/F+H1xKWEmqSbkWA/n2nY1Wd81Kbc6qChV/o8smUZxcpB11FuBrI+2Pec6oK12sS/F3yXHQYJDud7GaoGxWp59hBFjteUNKU6DdurIHPtIfcdqRasIdUYxvbuBh1RMb+QtUZrrgafUTBOG1acq+yLFh6Pj69QLOZWxLuvqHO/3lJzKSqzPttVYu7xUndhnrA3dl6EhtQtdx35vAN4dbVt3cF5jsPqMwdKMwbZsucdgkF/7mVP/GIYXh0G736PlVl5S5uG9npzbn3liX6q+nMuyfanl2ZfKs13MqS81xH4UtNeXyrG8pKz0vlTObU8TVhPGY3ya8QGldevA7YDLo3T+csZjVzHed3IVQUmaA6mBc4/qNUfTDWmQIMB/JY6ZdTWBoxPHLlBukOCBhIF+C8BPWb4z9PuJ851PWE56Vn8wId+j7bYSaUH4Mu7OKI3jSxx/VCIPh5U4/oPRsetKHNuE1cB3Gf8dTm4g3b9NpHt2zXSn+Y3E+f6b2crXa1g6O1ZxO7jBPD6Y8SXAzyUsET6LnQnLeY+OvZbw4nBTXsT4779+Mc+z1N2HEF4CLx5/J/C4BvJ2fJTupHt9Z5YuX/6rNc9bt46AUM8Vj//Xmnma5gzG/4ZVHpg8jvGl5BcIAWHdl1Sgmes6TWpmoN+Z8dj/lTh2AXhWxbzEM9H9Qolj9yDMilU8/k0lz/9mxn+XN5ZMY+QQxgcqXA/sWzG9WGq2sSbrYAgPJTdF55j1ntwZ+Fp07DrCg+2m5FgP59p2NVXftSGnOqgoVf4/VeL4YwvHbaZcrJPSR9ueax3QdrvYh+LvktsgwaFcb2O1wFgtyLGPMNJHfQ7DitWGEqdBu3Vkbn2kvmO12P0Zn8X4R1SbJfkejNf1dwLPrJnHkZXcp4q/zK5TL+RUxrquq3O732O5lZVYX20rGGtXkVusDd2XoZXcLtT179H5b+/ovMZg9RmDjTMG27JdzjBiMMir/cypfzwypDgM2v8eLafyEpuX93pybn/miX2p+nIuy/allmdfKsitXcytLzW0fhS025fKrbzE5qEvlXPb07Q9CYNqi4P969aBL4nS2cBs1+0NjF+zB1bMgyRpQPZnvBFqYvn1tgxtkOALEscsEDoA02ZbORq4Y8Kxsw4S3IYtwedG4IkzHLMa+FLinGWW7f7I4jE/T2zrF/9t9xLpPSyRnzJ/t/jhwXrKDXr8ZnT8GSWObcoT2DLYcwF4Z0Ppxi+fXgs8tKG0U3ZgvKO+QJg9Y9KMs7uzZaalG4HPRcfeSnMzF43ES7cvAO8jXK9pDgW+VzjmFsJS7E06mfHf/y8W//8nhHouZRXhYedN0fEbCcuJNyEeZHwH6Wv2nsLP/Ij6s/LWrSO2ZUvdNNreUTNP06xjPL/3mvHYrQmrzp1K+sH1hcDahvJZ97ouZ9RWFLdbCKvaTrIj8P7EcaNtr4p5eWuUzn8w26q/9yP9wtmsD/ZH/oHx32UTof3aYcY0diXMFnd7lM6NhDakKX8cpd9GHQzjs/0vsPzAyQcA/xkdcy3hC5gm5VoP59h21anv2pZTHRRLlf/XLHPMdoyXzSZewOirbc+xDmi7XexD8XfJbZDgkK63sdqWPoexWp59BDBWm8VQ4jRot47MrY/Ud6yW8jjCM85i2uuAFzJbnbcDYfbe+OWbdcCTGshf0UrsUzVdL+RUxrquq3O732O5lZVYX20rGGtXlVOsDf2UoZXYLjQhrs8v6ui8xmD1GYONy739LDIG2yKn9jOn/nHRkOKwtr9Hy6m8xOblvZ6c2595Yl+qvpzLsn2p5dmXCnJrF3PsSw2pHwXt9qVyKy+xeehL5dz2tGUVYRD3J9jSRtQZXBqX4yuZPpD2WYy3TWVWmJSkpDZeGFbz7kloPIteBPxTD3lJ+SCwfeHzC1m6jPYlhJl2Rk5b3CAEP+8t/Nt9GO84fYmly3ufQJgNBUJAdEzh3x5O6IwV/U30+XWERrXoA8DrGfdd4KOEL9huJAQFDyPMbHPE4s98FHhFdNzXgUsLnz9CmOkS4M8IAwUgzAby5MX/Xwf82+L/b2D8y8/i77onYWaTogVCR+Xuxc9nM/67j5xDmAkltRz37xAeeDyGsDx2yrOBXy58Lv4eI6cROuks5qnYcXktS2eHeDxhqeqRnxMeDI18k6VLL/8VS8vYS1jaYb6I8Dcb+SzdLL/8OEIA+AHCINOmrAY+Rhgc/BTC7Fpt+kVCWYwD2esJZewiwiCXPYHHAk8j/D1uJizH/S6WBpk3sXQJ7s2E8r2pRh63IwQ6R0b7zyUEJl9my+w9exDK868SBgWPfq8fL36+sEY+Ur7I0tmfvkIYVHwRoT7fBJxFuEevAXYCDgKez/hMQLctHntmQ3l7Llvq35G3EurhOwn38pvYMgvPAuEaf7nkeerWEbsB7y583ilKD8KDmh8WPr8b+H7JfEJ4eHlQ4fNWwK9FP3M3YZDYJFsDuwD3JcyIs33iZzYApxBWpKs60/GxhBmlR5a7rhDanAsqnm8/Qju4U7R/A+GF+M8S2uPNhLJ7BPBKwt/vEkKdUazrNwEfL3y+Bvi9GfPyGeB50b7LCL/fWYQ2d8Pi/t0I/YHnEdrnYntxJuGeKrti7iWElX9TbiDMbH4eoUzeQigzOxG+yDiEMDjhaYS6q+hiwn15ccn8jOxKuAZFT2LpA+G4Do7vt6p2IFzPI6L9nyS02RcQ2vNdCH2nFxMmUSheg68CL2VpP68JudbDfbdddeq7b1Bu4o8m5FQHxSaV/1MJX15+h1B2tiHM7vV0wsxf+y/+3EZCnf7nFc9f1FXbHsuhDijb3xh5F+33p5uyUPj/a2j2S4yyhn69jdWM1SDfPgIYq8WGFKdBt7Fabn2kvmO1SR4JnA7sHe2/hPDM8T8JX2jfsZiPexMGUzyG8Gw6fjHkDMJ1vK6h/I0MsU/Vdb2QUxnruu+d2/2ee1mJdfX3MtZembE29BNvD7FdGGkz9lvH0nj4VMbvs7YYg9VjDDac9tMYbLqc2s+c+sexHOOwPr5Hy6m8zOt7PTm3P/PGvlQ9OZdl+1JL2ZeaLKd2EfLtS+XYj4Lu+1K5lZd57Evl3PZ0YTfCO/p/S/X7Z2vCe4TPLey7jTCR8d8TyvBqQj38ekI5KQ60Px54e8VzS5IGZhXjy9svN3tml+KZLJbbTigcu6bksQssnY3g9RWOjzuREIKzPyE9+8qk7U5CMDvL71BcWTA1U1K83ZXIY9nfddqXy1cQOpUpz108/iVTjk+tqDRt+1Z0/AUljz+xcOw+JY9d7ndp2v1bSnc1oax15RjGl0df7m98IKG+umWZn606GCa2I+HL4Enn2ch43blACBw/QAhc2nBjdL7RKp9PZfLqo6ntPwiDeZu0LWF2rvhcmxmfkWQj8KqK56lbRzyr5PELjAeas7qhwrnKbOsIQft+FfNX9NMK5580sG1Wz2TpyjvLbZsJAe0uhBd3pv3s6SXy8XrCA69p6d1J+p5fIDyUOpbqE2Q8mNBPuHqZPMy6XQ/8T8rNCJXylArnju+3OnYivKQ06Vx3T9h/PeHBW1Mz1MZyrof7bLvq1Hd/WOO8deRSB6UsV/7jdnW0/RezrR4+q67a9pS+64Cy/Y3Rdt+a5+1SMd99ryS4Eq63sZqxWs59BGO1pYYUp0H3sVpOfaS+Y7Vp7k2YuG3SuWfZvs74S2JNG1qfqut6Iacy1kffO6f7PfeyEuvq72WsXa9cxXKJtaG/eHto7cJoayv2u2fiXK9r6VyTHIMxWFXGYMNpP43BlpdL+5lT/zgltzisr+/Rcikv8/peTy7tz7sIKxvNsk1bXWbojsG+VFW5lOUU+1JL2ZeaLpd2EfLuS+XWj4J++lI5lZd57Evl3PYMyVaEVTdT9/PdE/bfAvx6H5mVJPVrNCvNaDuu3+wssRIGCY48jjCjwrTO9i2EmQLWlvgdchokuC1hRodJK1GOlsV+64R/hzDzRpm8fKhw7HZM/hJz0vbswvHPKXnsAvUf+s+rQwgzeUy7H75NmC1nNJvFQVN+drSd2nA+j1jM513LnPenhEE+ByVTacYBifMWA7CHAF9g8oDkTYRVR1/YYh73I8zyMuk6bSbM+DJpefhZ1KkjAN5W8vhrKuZz/5LnmbTdAVxLmCHua8BfEx4KPYbmHgztUSFfNzd0/oMJL6ZMqwtuBf6RMIsWhLp+wzL5K/si1FaEGbBOYba2dIEwY9Kbae7B/FaEmZ2OJ8zKffuM+Vgg9OX+kTDL1A4N5ee4EuefdL814UhC3TbpRa0FQvk5j/D3mNYXq2sI9TB033bVre+eWfP8deRSB00yS/nfTChXxxBmDWtaF237NH3VAWX7GwvAVQ2duyvFvPc9SHAerveQGKuVN4Q+grFaMKQ4DfqL1XLqI+UQq01zMPCnLP/yx+g++wFwMnBYB3krGkqfqo96Iacy1kffO5f7fQhlJdb238tYu365miSHWBv6jbeH0i4s0G7s9/zoXBuA3Vs83yTGYOUZgwVDaD+NwWaXS/uZU/94klzisD6/R8uhvMzjez05tT83TzhHamt7gqK+2ZcqL6eyPIl9qcC+1GxyaBdHcu9L5dKPgv76UrmUl3nrSw2h7RmahxIGm06bMOEG4H2MryQqSbW0NTuUmncR8MDC5z8mLFWuduwMPJYQ0N6L0IG8jrC8+DfYsqz4EB1EmE3pPYTgJbYrIbj7CM2uNKLh2otwP+xDCHZ/Tlj2+pvk9eLvPQgDffcmPNTYijCodx1hZpafdJCHFxGC1KKDCUFj0d6Ea7ovYbDQDYQVys6l+lLlZT0AOBzYkzAz2m2Ea3Qe4ZpJsZ2B/8GWtvFOQnn9MeGB2MaO87OG8ABiDWFGqB0Ig/ZuAX4IXLj4/21aRViV6GDCfb3z4rZAuKduJTxU/B7zcV/tTKiH70t4WWeBUEZ+RigjN3WQhyHVw5BH2zUUudVBsbj8ryb0qX8EnL/4/23ru23PoQ6Q5o2x2uyG1Efouz7XsOTYR8ohVptk7WLe9iVcu1WEuO0WwnPfCwn3XJ/sUy0vhzLWR12d4/0+FLatk+VernKItaHfMjTv7cKngRcUPn+C5lYZqsIYbHbGYFrJcms/c+gfT7OW/OOwNuVWXla6nNqfmwnvX83iqcAXGzpvzuxLzS6nsrwc+1IqI8d2Mee+1FrsR+VWXlayIbU9Q7MjYdD3wYSyvJlwrb5PeMa5qb+sSZL6Fs+8MmmVOGk5zyCUod+a8jM3A2d3kx1pRTmZpXX1LTggX5K6ZD0sSZJS7CNIkiRJw3II4SWpUR/+buBBveZIZRiDSZL6kFP740qCqiOnsixJmg+2PZK0gqxe/keUiWujz7v1kgutBPsv/nfazEaXF35O0uwOiz5fQAiaJEndsB6WJEkp9hEkSZKk4dgGOIWl7zKcBFzUT3ZUgTGYJKkPtj9aKSzLkqSu2fZI0griIMHhuCb67CBBVTXrIME1hC/hJM3uEdHn83vJhSTNL+thSZKUYh9BkiRJGobVwMeARxf2fRb4o15yo6qMwSRJfbD90UphWZYkdc22R5JWEAcJDocrCaopo0GCl0/5mcsJ9cPalvMirSQHAPeK9n2rj4xI0pyyHpYkSSn2ESRJkqRh2A44DXhpYd8XgKOBTb3kSFUYg0mS+mD7o5XCsixJ6pptjyStMA4SHA4HCaop+wE3A7dO+ZnLF/+7/5SfkbRUvOQ6GCxJUpeshyVJUop9BEmSJGkY1gOXFD5/EDgKuLOf7KgiYzBJUh9sf7RSWJYlSV2z7ZEkqSfPBxYK24Z+syNJipzM0nr6FmBVrzmSpPliPSxJklLsI0iSJEnDcgLwnL4zocqMwSRJfbD90UphWZYkdc22R5JWmK37zoBmFq8kuDVwT8KKcJKk/sUzqnybEDRJkrphPSxJklLsI0iSJEnDckLfGVAtxmCSpD7Y/milsCxLkrpm2yNJK4yDBIcjHiQIsBsOEpSkPhwKHBvte0z0+X7AxwufLwZOajNTkjRHrIclSVKKfQRJkiRJ6o4xmCSpD7Y/Wiksy5Kkrtn2SJKUkV1YupzvAnB4rzmSpPn1e4zXycttH+olp5K0MlkPS5KkFPsIkiRJktQdYzBJUh9sf7RSWJYlSV2z7ZGkObC67wxoZrcCd0X7dusjI5KksSXWZ3F+47mQpPllPSxJklLsI0iSJElSd4zBJEl9sP3RSmFZliR1zbZHkqTMXMHS0fnH9JsdSZIkSZIkSZIkSZIkSZIkSZIkSVKfXElwWK6JPruSoCRJkiRJkiRJkiRJkiRJkiRJkiTNMQcJDsu10WcHCUqSJEmSJEmSJEmSJEmSJEmSJEnSHHOQ4LC4kqAkSZIkSZIkSZIkSZIkSZIkSZIk6f9zkOCwrIs+795LLiRJkiRJkiRJkiRJkiRJkiRJkiRJWXCQ4LBcHX3es5dcSJIkSZIkSZIkSZIkSZIkSZIkSZKy4CDBYYkHCe7VSy4kSZIkSZIkSZIkSZIkSZIkSZIkSVlwkOCwuJKgJEmSJEmSJEmSJEmSJEmSJEmSJEkDtQZYiLZdes2RJEmSJEmSJEmSJEmSJEmSJEmSJEmaydbAJpYOEjyw1xxJkiRJkiRJkiRJkiRJkiRJkiRJklgSYrkAAAKiSURBVHqzuu8MqJSNwHXRvr36yIgkSZIkSZIkSZIkSZIkSZIkSZIkqX8OEhyeq6PPDhKUJEmSJEmSJEmSJEmSJEmSJEmSpDnlIMHhiQcJ7tlLLiRJkiRJkiRJkiRJkiRJkiRJkiRJvXOQ4PC4kqAkSZIkSZIkSZIkSZIkSZIkSZIkCXCQ4BBdFX12JUFJkiRJkiRJkiRJkiRJkiRJkiRJmlMOEhweVxKUJEmSJEmSJEmSJEmSJEmSJEmSJAEOEhyieJCgKwlKkiRJkiRJkiRJkiRJkiRJkiRJ0pxykODwuJKgJEmSJEmSJEmSJEmSJEmSJEmSJEkDtTuwUNjW95sdSZIkSZIkSZIkSZIkSZIkSZIkSZJUxh0sHSi4W7/ZkSRJkiRJkiRJkiRJkiRJkiRJkiT1YXXfGVAlV0af9+klF5IkSZIkSZIkSZIkSZIkSZIkSZKkXjlIcJiuiD6v6SUXkiRJkiRJkiRJkiRJkiRJkiRJkqReOUhwmOJBgq4kKEmSJEmSJEmSJEmSJEmSJEmSJElzyEGCw+QgQUmSJEmSJEmSJEmSJEmSJEmSJEmSgwQHykGCkiRJkiRJkiRJkiRJkiRJkiRJkiQHCQ5UPEhwTS+5kCRJkiRJkiRJkiRJkiRJkiRJkiT1ykGCw+RKgpIkSZIkSZIkSZIkSZIkSZIkSZIkDdT2wEJhu7Hf7EiSJEmSJEmSJEmSJEmSJEmSJEmSpDKuZelAwR37zY4kSZIkSZIkSZIkSZIkSZIkSZIkqWur+86AKrsi+rx3L7mQJEmSJEmSJEmSJEmSJEmSJEmSJPXGQYLDFQ8SXNNLLiRJkiRJkiRJkiRJkiRJkiRJkiRJvXGQ4HDFgwT36SUXkiRJkiRJkiRJkiRJkiRJkiRJkqTe/D/SkJdV5hoUkwAAAABJRU5ErkJggg== $$o = \\begin{cases} m \\times depthBiasSlopeFactor + r \\times depthBiasConstantFactor & depthBiasClamp = 0\\ or\\ NaN \\\\ \\min(m \\times depthBiasSlopeFactor + r \\times depthBiasConstantFactor, depthBiasClamp) & depthBiasClamp > 0 \\\\ \\max(m \\times depthBiasSlopeFactor + r \\times depthBiasConstantFactor, depthBiasClamp) & depthBiasClamp \< 0 \\\\ \\end{cases}$$>>+--+-- m is computed as described above. If the depth buffer uses a fixed-point+-- representation, m is a function of depth values in the range [0,1], and+-- o is applied to depth values in the same range.+--+-- For fixed-point depth buffers, fragment depth values are always limited+-- to the range [0,1] by clamping after depth bias addition is performed.+-- Fragment depth values are clamped even when the depth buffer uses a+-- floating-point representation.+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_DEPTH_BIAS@ dynamic state enabled+--+-- -   If the+--     <{html_spec_relative}#features-features-depthBiasClamp depth bias clamping>+--     feature is not enabled, @depthBiasClamp@ /must/ be @0.0@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdSetDepthBias" vkCmdSetDepthBias :: ("commandBuffer" ::: VkCommandBuffer) -> ("depthBiasConstantFactor" ::: CFloat) -> ("depthBiasClamp" ::: CFloat) -> ("depthBiasSlopeFactor" ::: CFloat) -> IO ()+-- | vkCmdSetBlendConstants - Set the values of blend constants+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @blendConstants@ is an array of four values specifying the R, G, B,+--     and A components of the blend constant color used in blending,+--     depending on the+--     <{html_spec_relative}#framebuffer-blendfactors blend factor>.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_BLEND_CONSTANTS@ dynamic state enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdSetBlendConstants" vkCmdSetBlendConstants :: ("commandBuffer" ::: VkCommandBuffer) -> ("blendConstants" ::: Ptr CFloat) -> IO ()+-- | vkCmdSetDepthBounds - Set the depth bounds test values for a command+-- buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @minDepthBounds@ is the lower bound of the range of depth values+--     used in the depth bounds test.+--+-- -   @maxDepthBounds@ is the upper bound of the range.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_DEPTH_BOUNDS@ dynamic state enabled+--+-- -   @minDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- -   @maxDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdSetDepthBounds" vkCmdSetDepthBounds :: ("commandBuffer" ::: VkCommandBuffer) -> ("minDepthBounds" ::: CFloat) -> ("maxDepthBounds" ::: CFloat) -> IO ()+-- | vkCmdSetStencilCompareMask - Set the stencil compare mask dynamic state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @faceMask@ is a bitmask of 'VkStencilFaceFlagBits' specifying the+--     set of stencil state for which to update the compare mask.+--+-- -   @compareMask@ is the new value to use as the stencil compare mask.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK@ dynamic state enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @faceMask@ /must/ be a valid combination of 'VkStencilFaceFlagBits'+--     values+--+-- -   @faceMask@ /must/ not be @0@+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', 'VkStencilFaceFlags'+foreign import ccall "vkCmdSetStencilCompareMask" vkCmdSetStencilCompareMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("compareMask" ::: Word32) -> IO ()+-- | vkCmdSetStencilWriteMask - Set the stencil write mask dynamic state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @faceMask@ is a bitmask of 'VkStencilFaceFlagBits' specifying the+--     set of stencil state for which to update the write mask, as+--     described above for 'vkCmdSetStencilCompareMask'.+--+-- -   @writeMask@ is the new value to use as the stencil write mask.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_STENCIL_WRITE_MASK@ dynamic state enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @faceMask@ /must/ be a valid combination of 'VkStencilFaceFlagBits'+--     values+--+-- -   @faceMask@ /must/ not be @0@+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', 'VkStencilFaceFlags'+foreign import ccall "vkCmdSetStencilWriteMask" vkCmdSetStencilWriteMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("writeMask" ::: Word32) -> IO ()+-- | vkCmdSetStencilReference - Set the stencil reference dynamic state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @faceMask@ is a bitmask of 'VkStencilFaceFlagBits' specifying the+--     set of stencil state for which to update the reference value, as+--     described above for 'vkCmdSetStencilCompareMask'.+--+-- -   @reference@ is the new value to use as the stencil reference value.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_STENCIL_REFERENCE@ dynamic state enabled+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @faceMask@ /must/ be a valid combination of 'VkStencilFaceFlagBits'+--     values+--+-- -   @faceMask@ /must/ not be @0@+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', 'VkStencilFaceFlags'+foreign import ccall "vkCmdSetStencilReference" vkCmdSetStencilReference :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("reference" ::: Word32) -> IO ()+-- | vkCmdBindDescriptorSets - Binds descriptor sets to a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer that the descriptor sets will+--     be bound to.+--+-- -   @pipelineBindPoint@ is a+--     'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint' indicating whether+--     the descriptors will be used by graphics pipelines or compute+--     pipelines. There is a separate set of bind points for each of+--     graphics and compute, so binding one does not disturb the other.+--+-- -   @layout@ is a @VkPipelineLayout@ object used to program the+--     bindings.+--+-- -   @firstSet@ is the set number of the first descriptor set to be+--     bound.+--+-- -   @descriptorSetCount@ is the number of elements in the+--     @pDescriptorSets@ array.+--+-- -   @pDescriptorSets@ is an array of handles to @VkDescriptorSet@+--     objects describing the descriptor sets to write to.+--+-- -   @dynamicOffsetCount@ is the number of dynamic offsets in the+--     @pDynamicOffsets@ array.+--+-- -   @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values+--     specifying dynamic offsets.+--+-- = Description+-- #_description#+--+-- @vkCmdBindDescriptorSets@ causes the sets numbered [@firstSet@..+-- @firstSet@+@descriptorSetCount@-1] to use the bindings stored in+-- @pDescriptorSets@[0..@descriptorSetCount@-1] for subsequent rendering+-- commands (either compute or graphics, according to the+-- @pipelineBindPoint@). Any bindings that were previously applied via+-- these sets are no longer valid.+--+-- Once bound, a descriptor set affects rendering of subsequent graphics or+-- compute commands in the command buffer until a different set is bound to+-- the same set number, or else until the set is disturbed as described in+-- <{html_spec_relative}#descriptorsets-compatibility Pipeline Layout Compatibility>.+--+-- A compatible descriptor set /must/ be bound for all set numbers that any+-- shaders in a pipeline access, at the time that a draw or dispatch+-- command is recorded to execute using that pipeline. However, if none of+-- the shaders in a pipeline statically use any bindings with a particular+-- set number, then no descriptor set need be bound for that set number,+-- even if the pipeline layout includes a non-trivial descriptor set layout+-- for that set number.+--+-- If any of the sets being bound include dynamic uniform or storage+-- buffers, then @pDynamicOffsets@ includes one element for each array+-- element in each dynamic descriptor type binding in each set. Values are+-- taken from @pDynamicOffsets@ in an order such that all entries for set N+-- come before set N+1; within a set, entries are ordered by the binding+-- numbers in the descriptor set layouts; and within a binding array,+-- elements are in order. @dynamicOffsetCount@ /must/ equal the total+-- number of dynamic descriptors in the sets being bound.+--+-- The effective offset used for dynamic uniform and storage buffer+-- bindings is the sum of the relative offset taken from @pDynamicOffsets@,+-- and the base address of the buffer plus base offset in the descriptor+-- set. The length of the dynamic uniform and storage buffer bindings is+-- the buffer range as specified in the descriptor set.+--+-- Each of the @pDescriptorSets@ /must/ be compatible with the pipeline+-- layout specified by @layout@. The layout used to program the bindings+-- /must/ also be compatible with the pipeline used in subsequent graphics+-- or compute commands, as defined in the+-- <{html_spec_relative}#descriptorsets-compatibility Pipeline Layout Compatibility>+-- section.+--+-- The descriptor set contents bound by a call to @vkCmdBindDescriptorSets@+-- /may/ be consumed at the following times:+--+-- -   during host execution of the command, or during shader execution of+--     the resulting draws and dispatches, or any time in between.+--+-- Thus, the contents of a descriptor set binding /must/ not be altered+-- (overwritten by an update command, or freed) between the first point in+-- time that it /may/ be consumed, and and when the command completes+-- executing on the queue.+--+-- The contents of @pDynamicOffsets@ are consumed immediately during+-- execution of @vkCmdBindDescriptorSets@. Once all pending uses have+-- completed, it is legal to update and reuse a descriptor set.+--+-- == Valid Usage+--+-- -   Each element of @pDescriptorSets@ /must/ have been allocated with a+--     @VkDescriptorSetLayout@ that matches (is the same as, or identically+--     defined as) the @VkDescriptorSetLayout@ at set /n/ in @layout@,+--     where /n/ is the sum of @firstSet@ and the index into+--     @pDescriptorSets@+--+-- -   @dynamicOffsetCount@ /must/ be equal to the total number of dynamic+--     descriptors in @pDescriptorSets@+--+-- -   The sum of @firstSet@ and @descriptorSetCount@ /must/ be less than+--     or equal to @VkPipelineLayoutCreateInfo@::@setLayoutCount@ provided+--     when @layout@ was created+--+-- -   @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s+--     parent @VkCommandPool@’s queue family+--+-- -   Each element of @pDynamicOffsets@ /must/ satisfy the required+--     alignment for the corresponding descriptor binding’s descriptor type+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pipelineBindPoint@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint' value+--+-- -   @layout@ /must/ be a valid @VkPipelineLayout@ handle+--+-- -   @pDescriptorSets@ /must/ be a valid pointer to an array of+--     @descriptorSetCount@ valid @VkDescriptorSet@ handles+--+-- -   If @dynamicOffsetCount@ is not @0@, @pDynamicOffsets@ /must/ be a+--     valid pointer to an array of @dynamicOffsetCount@ @uint32_t@ values+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   @descriptorSetCount@ /must/ be greater than @0@+--+-- -   Each of @commandBuffer@, @layout@, and the elements of+--     @pDescriptorSets@ /must/ have been created, allocated, or retrieved+--     from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSet',+-- 'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineLayout'+foreign import ccall "vkCmdBindDescriptorSets" vkCmdBindDescriptorSets :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineBindPoint" ::: VkPipelineBindPoint) -> ("layout" ::: VkPipelineLayout) -> ("firstSet" ::: Word32) -> ("descriptorSetCount" ::: Word32) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> ("dynamicOffsetCount" ::: Word32) -> ("pDynamicOffsets" ::: Ptr Word32) -> IO ()+-- | vkCmdBindIndexBuffer - Bind an index buffer to a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @buffer@ is the buffer being bound.+--+-- -   @offset@ is the starting offset in bytes within @buffer@ used in+--     index buffer address calculations.+--+-- -   @indexType@ is a 'VkIndexType' value specifying whether indices are+--     treated as 16 bits or 32 bits.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @offset@ /must/ be less than the size of @buffer@+--+-- -   The sum of @offset@ and the address of the range of @VkDeviceMemory@+--     object that is backing @buffer@, /must/ be a multiple of the type+--     indicated by @indexType@+--+-- -   @buffer@ /must/ have been created with the+--     @VK_BUFFER_USAGE_INDEX_BUFFER_BIT@ flag+--+-- -   If @buffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @indexType@ /must/ be a valid 'VkIndexType' value+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   Both of @buffer@, and @commandBuffer@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@,+-- 'VkIndexType'+foreign import ccall "vkCmdBindIndexBuffer" vkCmdBindIndexBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("indexType" ::: VkIndexType) -> IO ()+-- | vkCmdBindVertexBuffers - Bind vertex buffers to a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @firstBinding@ is the index of the first vertex input binding whose+--     state is updated by the command.+--+-- -   @bindingCount@ is the number of vertex input bindings whose state is+--     updated by the command.+--+-- -   @pBuffers@ is a pointer to an array of buffer handles.+--+-- -   @pOffsets@ is a pointer to an array of buffer offsets.+--+-- = Description+-- #_description#+--+-- The values taken from elements i of @pBuffers@ and @pOffsets@ replace+-- the current state for the vertex input binding @firstBinding@ + i, for i+-- in [0, @bindingCount@). The vertex input binding is updated to start at+-- the offset indicated by @pOffsets@[i] from the start of the buffer+-- @pBuffers@[i]. All vertex input attributes that use each of these+-- bindings will use these updated addresses in their address calculations+-- for subsequent draw commands.+--+-- == Valid Usage+--+-- -   @firstBinding@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxVertexInputBindings@+--+-- -   The sum of @firstBinding@ and @bindingCount@ /must/ be less than or+--     equal to @VkPhysicalDeviceLimits@::@maxVertexInputBindings@+--+-- -   All elements of @pOffsets@ /must/ be less than the size of the+--     corresponding element in @pBuffers@+--+-- -   All elements of @pBuffers@ /must/ have been created with the+--     @VK_BUFFER_USAGE_VERTEX_BUFFER_BIT@ flag+--+-- -   Each element of @pBuffers@ that is non-sparse /must/ be bound+--     completely and contiguously to a single @VkDeviceMemory@ object+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pBuffers@ /must/ be a valid pointer to an array of @bindingCount@+--     valid @VkBuffer@ handles+--+-- -   @pOffsets@ /must/ be a valid pointer to an array of @bindingCount@+--     @VkDeviceSize@ values+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   @bindingCount@ /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and the elements of @pBuffers@ /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@+foreign import ccall "vkCmdBindVertexBuffers" vkCmdBindVertexBuffers :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr VkBuffer) -> ("pOffsets" ::: Ptr VkDeviceSize) -> IO ()+-- | vkCmdDraw - Draw primitives+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @vertexCount@ is the number of vertices to draw.+--+-- -   @instanceCount@ is the number of instances to draw.+--+-- -   @firstVertex@ is the index of the first vertex to draw.+--+-- -   @firstInstance@ is the instance ID of the first instance to draw.+--+-- = Description+-- #_description#+--+-- When the command is executed, primitives are assembled using the current+-- primitive topology and @vertexCount@ consecutive vertex indices with the+-- first @vertexIndex@ value equal to @firstVertex@. The primitives are+-- drawn @instanceCount@ times with @instanceIndex@ starting with+-- @firstInstance@ and increasing sequentially for each instance. The+-- assembled primitives execute the bound graphics pipeline.+--+-- == Valid Usage+--+-- -   The current render pass /must/ be+--     <{html_spec_relative}#renderpass-compatibility compatible> with the+--     @renderPass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   The subpass index of the current render pass /must/ be equal to the+--     @subpass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   For each set /n/ that is statically used by the @VkPipeline@ bound+--     to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a descriptor set /must/ have+--     been bound to /n/ at @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for set /n/, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   For each push constant that is statically used by the @VkPipeline@+--     bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a push constant value+--     /must/ have been set for @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for push constants, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   Descriptors in each bound descriptor set, specified via+--     @vkCmdBindDescriptorSets@, /must/ be valid if they are statically+--     used by the bound @VkPipeline@ object, specified via+--     @vkCmdBindPipeline@+--+-- -   All vertex input bindings accessed via vertex input variables+--     declared in the vertex shader entry point’s interface /must/ have+--     valid buffers bound+--+-- -   For a given vertex buffer binding, any attribute data fetched /must/+--     be entirely contained within the corresponding vertex buffer+--     binding, as described in+--     <{html_spec_relative}#fxvertex-input {html_spec_relative}#fxvertex-input>+--+-- -   A valid graphics pipeline /must/ be bound to the current command+--     buffer with @VK_PIPELINE_BIND_POINT_GRAPHICS@+--+-- -   If the @VkPipeline@ object bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@ requires any dynamic state, that+--     state /must/ have been set on the current command buffer+--+-- -   Every input attachment used by the current subpass /must/ be bound+--     to the pipeline via a descriptor set+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used to sample from any+--     @VkImage@ with a @VkImageView@ of the type @VK_IMAGE_VIEW_TYPE_3D@,+--     @VK_IMAGE_VIEW_TYPE_CUBE@, @VK_IMAGE_VIEW_TYPE_1D_ARRAY@,+--     @VK_IMAGE_VIEW_TYPE_2D_ARRAY@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@, in+--     any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a uniform+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a storage+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   Any @VkImageView@ being sampled with @VK_FILTER_LINEAR@ as a result+--     of this command /must/ be of a format which supports linear+--     filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- -   Image subresources used as attachments in the current render pass+--     /must/ not be accessed in any way other than as an attachment by+--     this command.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdDraw" vkCmdDraw :: ("commandBuffer" ::: VkCommandBuffer) -> ("vertexCount" ::: Word32) -> ("instanceCount" ::: Word32) -> ("firstVertex" ::: Word32) -> ("firstInstance" ::: Word32) -> IO ()+-- | vkCmdDrawIndexed - Issue an indexed draw into a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @indexCount@ is the number of vertices to draw.+--+-- -   @instanceCount@ is the number of instances to draw.+--+-- -   @firstIndex@ is the base index within the index buffer.+--+-- -   @vertexOffset@ is the value added to the vertex index before+--     indexing into the vertex buffer.+--+-- -   @firstInstance@ is the instance ID of the first instance to draw.+--+-- = Description+-- #_description#+--+-- When the command is executed, primitives are assembled using the current+-- primitive topology and @indexCount@ vertices whose indices are retrieved+-- from the index buffer. The index buffer is treated as an array of+-- tightly packed unsigned integers of size defined by the+-- 'vkCmdBindIndexBuffer'::@indexType@ parameter with which the buffer was+-- bound.+--+-- The first vertex index is at an offset of @firstIndex@ * @indexSize@ ++-- @offset@ within the bound index buffer, where @offset@ is the offset+-- specified by @vkCmdBindIndexBuffer@ and @indexSize@ is the byte size of+-- the type specified by @indexType@. Subsequent index values are retrieved+-- from consecutive locations in the index buffer. Indices are first+-- compared to the primitive restart value, then zero extended to 32 bits+-- (if the @indexType@ is @VK_INDEX_TYPE_UINT16@) and have @vertexOffset@+-- added to them, before being supplied as the @vertexIndex@ value.+--+-- The primitives are drawn @instanceCount@ times with @instanceIndex@+-- starting with @firstInstance@ and increasing sequentially for each+-- instance. The assembled primitives execute the bound graphics pipeline.+--+-- == Valid Usage+--+-- -   The current render pass /must/ be+--     <{html_spec_relative}#renderpass-compatibility compatible> with the+--     @renderPass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   The subpass index of the current render pass /must/ be equal to the+--     @subpass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   For each set /n/ that is statically used by the @VkPipeline@ bound+--     to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a descriptor set /must/ have+--     been bound to /n/ at @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for set /n/, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   For each push constant that is statically used by the @VkPipeline@+--     bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a push constant value+--     /must/ have been set for @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for push constants, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   Descriptors in each bound descriptor set, specified via+--     @vkCmdBindDescriptorSets@, /must/ be valid if they are statically+--     used by the bound @VkPipeline@ object, specified via+--     @vkCmdBindPipeline@+--+-- -   All vertex input bindings accessed via vertex input variables+--     declared in the vertex shader entry point’s interface /must/ have+--     valid buffers bound+--+-- -   For a given vertex buffer binding, any attribute data fetched /must/+--     be entirely contained within the corresponding vertex buffer+--     binding, as described in+--     <{html_spec_relative}#fxvertex-input {html_spec_relative}#fxvertex-input>+--+-- -   A valid graphics pipeline /must/ be bound to the current command+--     buffer with @VK_PIPELINE_BIND_POINT_GRAPHICS@+--+-- -   If the @VkPipeline@ object bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@ requires any dynamic state, that+--     state /must/ have been set on the current command buffer+--+-- -   (@indexSize@ * (@firstIndex@ + @indexCount@) + @offset@) /must/ be+--     less than or equal to the size of the bound index buffer, with+--     indexSize being based on the type specified by @indexType@, where+--     the index buffer, @indexType@, and @offset@ are specified via+--     @vkCmdBindIndexBuffer@+--+-- -   Every input attachment used by the current subpass /must/ be bound+--     to the pipeline via a descriptor set+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used to sample from any+--     @VkImage@ with a @VkImageView@ of the type @VK_IMAGE_VIEW_TYPE_3D@,+--     @VK_IMAGE_VIEW_TYPE_CUBE@, @VK_IMAGE_VIEW_TYPE_1D_ARRAY@,+--     @VK_IMAGE_VIEW_TYPE_2D_ARRAY@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@, in+--     any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a uniform+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a storage+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   Any @VkImageView@ being sampled with @VK_FILTER_LINEAR@ as a result+--     of this command /must/ be of a format which supports linear+--     filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- -   Image subresources used as attachments in the current render pass+--     /must/ not be accessed in any way other than as an attachment by+--     this command.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdDrawIndexed" vkCmdDrawIndexed :: ("commandBuffer" ::: VkCommandBuffer) -> ("indexCount" ::: Word32) -> ("instanceCount" ::: Word32) -> ("firstIndex" ::: Word32) -> ("vertexOffset" ::: Int32) -> ("firstInstance" ::: Word32) -> IO ()+-- | vkCmdDrawIndirect - Issue an indirect draw into a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @buffer@ is the buffer containing draw parameters.+--+-- -   @offset@ is the byte offset into @buffer@ where parameters begin.+--+-- -   @drawCount@ is the number of draws to execute, and /can/ be zero.+--+-- -   @stride@ is the byte stride between successive sets of draw+--     parameters.+--+-- = Description+-- #_description#+--+-- @vkCmdDrawIndirect@ behaves similarly to 'vkCmdDraw' except that the+-- parameters are read by the device from a buffer during execution.+-- @drawCount@ draws are executed by the command, with parameters taken+-- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for+-- each successive draw. The parameters of each draw are encoded in an+-- array of 'VkDrawIndirectCommand' structures. If @drawCount@ is less than+-- or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- -   If @buffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @buffer@ /must/ have been created with the+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set+--+-- -   @offset@ /must/ be a multiple of @4@+--+-- -   If @drawCount@ is greater than @1@, @stride@ /must/ be a multiple of+--     @4@ and /must/ be greater than or equal to+--     @sizeof@(@VkDrawIndirectCommand@)+--+-- -   If the+--     <{html_spec_relative}#features-features-multiDrawIndirect multi-draw indirect>+--     feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- -   If the+--     <{html_spec_relative}#features-features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     feature is not enabled, all the @firstInstance@ members of the+--     @VkDrawIndirectCommand@ structures accessed by this command /must/+--     be @0@+--+-- -   The current render pass /must/ be+--     <{html_spec_relative}#renderpass-compatibility compatible> with the+--     @renderPass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   The subpass index of the current render pass /must/ be equal to the+--     @subpass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   For each set /n/ that is statically used by the @VkPipeline@ bound+--     to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a descriptor set /must/ have+--     been bound to /n/ at @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for set /n/, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   For each push constant that is statically used by the @VkPipeline@+--     bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a push constant value+--     /must/ have been set for @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for push constants, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   Descriptors in each bound descriptor set, specified via+--     @vkCmdBindDescriptorSets@, /must/ be valid if they are statically+--     used by the bound @VkPipeline@ object, specified via+--     @vkCmdBindPipeline@+--+-- -   All vertex input bindings accessed via vertex input variables+--     declared in the vertex shader entry point’s interface /must/ have+--     valid buffers bound+--+-- -   A valid graphics pipeline /must/ be bound to the current command+--     buffer with @VK_PIPELINE_BIND_POINT_GRAPHICS@+--+-- -   If the @VkPipeline@ object bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@ requires any dynamic state, that+--     state /must/ have been set on the current command buffer+--+-- -   If @drawCount@ is equal to @1@, (@offset@ ++--     @sizeof@('VkDrawIndirectCommand')) /must/ be less than or equal to+--     the size of @buffer@+--+-- -   If @drawCount@ is greater than @1@, (@stride@ × (@drawCount@ - 1) ++--     @offset@ + @sizeof@('VkDrawIndirectCommand')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   @drawCount@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDrawIndirectCount@+--+-- -   Every input attachment used by the current subpass /must/ be bound+--     to the pipeline via a descriptor set+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used to sample from any+--     @VkImage@ with a @VkImageView@ of the type @VK_IMAGE_VIEW_TYPE_3D@,+--     @VK_IMAGE_VIEW_TYPE_CUBE@, @VK_IMAGE_VIEW_TYPE_1D_ARRAY@,+--     @VK_IMAGE_VIEW_TYPE_2D_ARRAY@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@, in+--     any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a uniform+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a storage+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   Any @VkImageView@ being sampled with @VK_FILTER_LINEAR@ as a result+--     of this command /must/ be of a format which supports linear+--     filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- -   Image subresources used as attachments in the current render pass+--     /must/ not be accessed in any way other than as an attachment by+--     this command.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- -   Both of @buffer@, and @commandBuffer@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@+foreign import ccall "vkCmdDrawIndirect" vkCmdDrawIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()+-- | vkCmdDrawIndexedIndirect - Perform an indexed indirect draw+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @buffer@ is the buffer containing draw parameters.+--+-- -   @offset@ is the byte offset into @buffer@ where parameters begin.+--+-- -   @drawCount@ is the number of draws to execute, and /can/ be zero.+--+-- -   @stride@ is the byte stride between successive sets of draw+--     parameters.+--+-- = Description+-- #_description#+--+-- @vkCmdDrawIndexedIndirect@ behaves similarly to 'vkCmdDrawIndexed'+-- except that the parameters are read by the device from a buffer during+-- execution. @drawCount@ draws are executed by the command, with+-- parameters taken from @buffer@ starting at @offset@ and increasing by+-- @stride@ bytes for each successive draw. The parameters of each draw are+-- encoded in an array of 'VkDrawIndexedIndirectCommand' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- -   If @buffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @buffer@ /must/ have been created with the+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set+--+-- -   @offset@ /must/ be a multiple of @4@+--+-- -   If @drawCount@ is greater than @1@, @stride@ /must/ be a multiple of+--     @4@ and /must/ be greater than or equal to+--     @sizeof@(@VkDrawIndexedIndirectCommand@)+--+-- -   If the+--     <{html_spec_relative}#features-features-multiDrawIndirect multi-draw indirect>+--     feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- -   If the+--     <{html_spec_relative}#features-features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     feature is not enabled, all the @firstInstance@ members of the+--     @VkDrawIndexedIndirectCommand@ structures accessed by this command+--     /must/ be @0@+--+-- -   The current render pass /must/ be+--     <{html_spec_relative}#renderpass-compatibility compatible> with the+--     @renderPass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   The subpass index of the current render pass /must/ be equal to the+--     @subpass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   For each set /n/ that is statically used by the @VkPipeline@ bound+--     to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a descriptor set /must/ have+--     been bound to /n/ at @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for set /n/, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   For each push constant that is statically used by the @VkPipeline@+--     bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a push constant value+--     /must/ have been set for @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for push constants, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   Descriptors in each bound descriptor set, specified via+--     @vkCmdBindDescriptorSets@, /must/ be valid if they are statically+--     used by the bound @VkPipeline@ object, specified via+--     @vkCmdBindPipeline@+--+-- -   All vertex input bindings accessed via vertex input variables+--     declared in the vertex shader entry point’s interface /must/ have+--     valid buffers bound+--+-- -   A valid graphics pipeline /must/ be bound to the current command+--     buffer with @VK_PIPELINE_BIND_POINT_GRAPHICS@+--+-- -   If the @VkPipeline@ object bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@ requires any dynamic state, that+--     state /must/ have been set on the current command buffer+--+-- -   If @drawCount@ is equal to @1@, (@offset@ ++--     @sizeof@(@VkDrawIndexedIndirectCommand@)) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   If @drawCount@ is greater than @1@, (@stride@ × (@drawCount@ - 1) ++--     @offset@ + @sizeof@(@VkDrawIndexedIndirectCommand@)) /must/ be less+--     than or equal to the size of @buffer@+--+-- -   @drawCount@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDrawIndirectCount@+--+-- -   Every input attachment used by the current subpass /must/ be bound+--     to the pipeline via a descriptor set+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used to sample from any+--     @VkImage@ with a @VkImageView@ of the type @VK_IMAGE_VIEW_TYPE_3D@,+--     @VK_IMAGE_VIEW_TYPE_CUBE@, @VK_IMAGE_VIEW_TYPE_1D_ARRAY@,+--     @VK_IMAGE_VIEW_TYPE_2D_ARRAY@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@, in+--     any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a uniform+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a storage+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   Any @VkImageView@ being sampled with @VK_FILTER_LINEAR@ as a result+--     of this command /must/ be of a format which supports linear+--     filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- -   Image subresources used as attachments in the current render pass+--     /must/ not be accessed in any way other than as an attachment by+--     this command.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- -   Both of @buffer@, and @commandBuffer@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@+foreign import ccall "vkCmdDrawIndexedIndirect" vkCmdDrawIndexedIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()+-- | vkCmdDispatch - Dispatch compute work items+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @groupCountX@ is the number of local workgroups to dispatch in the X+--     dimension.+--+-- -   @groupCountY@ is the number of local workgroups to dispatch in the Y+--     dimension.+--+-- -   @groupCountZ@ is the number of local workgroups to dispatch in the Z+--     dimension.+--+-- = Description+-- #_description#+--+-- When the command is executed, a global workgroup consisting of+-- groupCountX × groupCountY × groupCountZ local workgroups is assembled.+--+-- == Valid Usage+--+-- -   @groupCountX@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxComputeWorkGroupCount@[0]+--+-- -   @groupCountY@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxComputeWorkGroupCount@[1]+--+-- -   @groupCountZ@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxComputeWorkGroupCount@[2]+--+-- -   For each set /n/ that is statically used by the @VkPipeline@ bound+--     to @VK_PIPELINE_BIND_POINT_COMPUTE@, a descriptor set /must/ have+--     been bound to /n/ at @VK_PIPELINE_BIND_POINT_COMPUTE@, with a+--     @VkPipelineLayout@ that is compatible for set /n/, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   Descriptors in each bound descriptor set, specified via+--     @vkCmdBindDescriptorSets@, /must/ be valid if they are statically+--     used by the bound @VkPipeline@ object, specified via+--     @vkCmdBindPipeline@+--+-- -   A valid compute pipeline /must/ be bound to the current command+--     buffer with @VK_PIPELINE_BIND_POINT_COMPUTE@+--+-- -   For each push constant that is statically used by the @VkPipeline@+--     bound to @VK_PIPELINE_BIND_POINT_COMPUTE@, a push constant value+--     /must/ have been set for @VK_PIPELINE_BIND_POINT_COMPUTE@, with a+--     @VkPipelineLayout@ that is compatible for push constants with the+--     one used to create the current @VkPipeline@, as described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ uses+--     unnormalized coordinates, it /must/ not be used to sample from any+--     @VkImage@ with a @VkImageView@ of the type @VK_IMAGE_VIEW_TYPE_3D@,+--     @VK_IMAGE_VIEW_TYPE_CUBE@, @VK_IMAGE_VIEW_TYPE_1D_ARRAY@,+--     @VK_IMAGE_VIEW_TYPE_2D_ARRAY@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@, in+--     any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ accesses a uniform+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ accesses a storage+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   Any @VkImageView@ being sampled with @VK_FILTER_LINEAR@ as a result+--     of this command /must/ be of a format which supports linear+--     filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Compute         | Compute         |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdDispatch" vkCmdDispatch :: ("commandBuffer" ::: VkCommandBuffer) -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()+-- | vkCmdDispatchIndirect - Dispatch compute work items using indirect+-- parameters+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @buffer@ is the buffer containing dispatch parameters.+--+-- -   @offset@ is the byte offset into @buffer@ where parameters begin.+--+-- = Description+-- #_description#+--+-- @vkCmdDispatchIndirect@ behaves similarly to 'vkCmdDispatch' except that+-- the parameters are read by the device from a buffer during execution.+-- The parameters of the dispatch are encoded in a+-- 'VkDispatchIndirectCommand' structure taken from @buffer@ starting at+-- @offset@.+--+-- == Valid Usage+--+-- -   If @buffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   For each set /n/ that is statically used by the @VkPipeline@ bound+--     to @VK_PIPELINE_BIND_POINT_COMPUTE@, a descriptor set /must/ have+--     been bound to /n/ at @VK_PIPELINE_BIND_POINT_COMPUTE@, with a+--     @VkPipelineLayout@ that is compatible for set /n/, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   Descriptors in each bound descriptor set, specified via+--     @vkCmdBindDescriptorSets@, /must/ be valid if they are statically+--     used by the bound @VkPipeline@ object, specified via+--     @vkCmdBindPipeline@+--+-- -   A valid compute pipeline /must/ be bound to the current command+--     buffer with @VK_PIPELINE_BIND_POINT_COMPUTE@+--+-- -   @buffer@ /must/ have been created with the+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set+--+-- -   @offset@ /must/ be a multiple of @4@+--+-- -   The sum of @offset@ and the size of @VkDispatchIndirectCommand@+--     /must/ be less than or equal to the size of @buffer@+--+-- -   For each push constant that is statically used by the @VkPipeline@+--     bound to @VK_PIPELINE_BIND_POINT_COMPUTE@, a push constant value+--     /must/ have been set for @VK_PIPELINE_BIND_POINT_COMPUTE@, with a+--     @VkPipelineLayout@ that is compatible for push constants with the+--     one used to create the current @VkPipeline@, as described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ uses+--     unnormalized coordinates, it /must/ not be used to sample from any+--     @VkImage@ with a @VkImageView@ of the type @VK_IMAGE_VIEW_TYPE_3D@,+--     @VK_IMAGE_VIEW_TYPE_CUBE@, @VK_IMAGE_VIEW_TYPE_1D_ARRAY@,+--     @VK_IMAGE_VIEW_TYPE_2D_ARRAY@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@, in+--     any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ accesses a uniform+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_COMPUTE@ accesses a storage+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   Any @VkImageView@ being sampled with @VK_FILTER_LINEAR@ as a result+--     of this command /must/ be of a format which supports linear+--     filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   Both of @buffer@, and @commandBuffer@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Compute         | Compute         |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@+foreign import ccall "vkCmdDispatchIndirect" vkCmdDispatchIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> IO ()+-- | vkCmdCopyBuffer - Copy data between buffer regions+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @srcBuffer@ is the source buffer.+--+-- -   @dstBuffer@ is the destination buffer.+--+-- -   @regionCount@ is the number of regions to copy.+--+-- -   @pRegions@ is a pointer to an array of 'VkBufferCopy' structures+--     specifying the regions to copy.+--+-- = Description+-- #_description#+--+-- Each region in @pRegions@ is copied from the source buffer to the same+-- region of the destination buffer. @srcBuffer@ and @dstBuffer@ /can/ be+-- the same buffer or alias the same memory, but the result is undefined if+-- the copy regions overlap in memory.+--+-- == Valid Usage+--+-- -   The @size@ member of each element of @pRegions@ /must/ be greater+--     than @0@+--+-- -   The @srcOffset@ member of each element of @pRegions@ /must/ be less+--     than the size of @srcBuffer@+--+-- -   The @dstOffset@ member of each element of @pRegions@ /must/ be less+--     than the size of @dstBuffer@+--+-- -   The @size@ member of each element of @pRegions@ /must/ be less than+--     or equal to the size of @srcBuffer@ minus @srcOffset@+--+-- -   The @size@ member of each element of @pRegions@ /must/ be less than+--     or equal to the size of @dstBuffer@ minus @dstOffset@+--+-- -   The union of the source regions, and the union of the destination+--     regions, specified by the elements of @pRegions@, /must/ not overlap+--     in memory+--+-- -   @srcBuffer@ /must/ have been created with+--     @VK_BUFFER_USAGE_TRANSFER_SRC_BIT@ usage flag+--+-- -   If @srcBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @dstBuffer@ /must/ have been created with+--     @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @dstBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @srcBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @dstBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @pRegions@ /must/ be a valid pointer to an array of @regionCount@+--     @VkBufferCopy@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @regionCount@ /must/ be greater than @0@+--+-- -   Each of @commandBuffer@, @dstBuffer@, and @srcBuffer@ /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Transfer        | Transfer        |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer', 'VkBufferCopy',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdCopyBuffer" vkCmdCopyBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcBuffer" ::: VkBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkBufferCopy) -> IO ()+-- | vkCmdCopyImage - Copy data between images+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @srcImage@ is the source image.+--+-- -   @srcImageLayout@ is the current layout of the source image+--     subresource.+--+-- -   @dstImage@ is the destination image.+--+-- -   @dstImageLayout@ is the current layout of the destination image+--     subresource.+--+-- -   @regionCount@ is the number of regions to copy.+--+-- -   @pRegions@ is a pointer to an array of 'VkImageCopy' structures+--     specifying the regions to copy.+--+-- = Description+-- #_description#+--+-- Each region in @pRegions@ is copied from the source image to the same+-- region of the destination image. @srcImage@ and @dstImage@ /can/ be the+-- same image or alias the same memory.+--+-- The formats of @srcImage@ and @dstImage@ /must/ be compatible. Formats+-- are considered compatible if their element size is the same between both+-- formats. For example, @VK_FORMAT_R8G8B8A8_UNORM@ is compatible with+-- @VK_FORMAT_R32_UINT@ because both texels are 4 bytes in size.+-- Depth\/stencil formats /must/ match exactly.+--+-- @vkCmdCopyImage@ allows copying between /size-compatible/ compressed and+-- uncompressed internal formats. Formats are size-compatible if the+-- element size of the uncompressed format is equal to the element size+-- (compressed texel block size) of the compressed format. Such a copy does+-- not perform on-the-fly compression or decompression. When copying from+-- an uncompressed format to a compressed format, each texel of+-- uncompressed data of the source image is copied as a raw value to the+-- corresponding compressed texel block of the destination image. When+-- copying from a compressed format to an uncompressed format, each+-- compressed texel block of the source image is copied as a raw value to+-- the corresponding texel of uncompressed data in the destination image.+-- Thus, for example, it is legal to copy between a 128-bit uncompressed+-- format and a compressed format which has a 128-bit sized compressed+-- texel block representing 4×4 texels (using 8 bits per texel), or between+-- a 64-bit uncompressed format and a compressed format which has a 64-bit+-- sized compressed texel block representing 4×4 texels (using 4 bits per+-- texel).+--+-- When copying between compressed and uncompressed formats the @extent@+-- members represent the texel dimensions of the source image and not the+-- destination. When copying from a compressed image to an uncompressed+-- image the image texel dimensions written to the uncompressed image will+-- be source extent divided by the compressed texel block dimensions. When+-- copying from an uncompressed image to a compressed image the image texel+-- dimensions written to the compressed image will be the source extent+-- multiplied by the compressed texel block dimensions. In both cases the+-- number of bytes read and the number of bytes written will be identical.+--+-- Copying to or from block-compressed images is typically done in+-- multiples of the compressed texel block size. For this reason the+-- @extent@ /must/ be a multiple of the compressed texel block dimension.+-- There is one exception to this rule which is /required/ to handle+-- compressed images created with dimensions that are not a multiple of the+-- compressed texel block dimensions: if the @srcImage@ is compressed,+-- then:+--+-- -   If @extent.width@ is not a multiple of the compressed texel block+--     width, then (@extent.width@ + @srcOffset.x@) /must/ equal the image+--     subresource width.+--+-- -   If @extent.height@ is not a multiple of the compressed texel block+--     height, then (@extent.height@ + @srcOffset.y@) /must/ equal the+--     image subresource height.+--+-- -   If @extent.depth@ is not a multiple of the compressed texel block+--     depth, then (@extent.depth@ + @srcOffset.z@) /must/ equal the image+--     subresource depth.+--+-- Similarly, if the @dstImage@ is compressed, then:+--+-- -   If @extent.width@ is not a multiple of the compressed texel block+--     width, then (@extent.width@ + @dstOffset.x@) /must/ equal the image+--     subresource width.+--+-- -   If @extent.height@ is not a multiple of the compressed texel block+--     height, then (@extent.height@ + @dstOffset.y@) /must/ equal the+--     image subresource height.+--+-- -   If @extent.depth@ is not a multiple of the compressed texel block+--     depth, then (@extent.depth@ + @dstOffset.z@) /must/ equal the image+--     subresource depth.+--+-- This allows the last compressed texel block of the image in each+-- non-multiple dimension to be included as a source or destination of the+-- copy.+--+-- @vkCmdCopyImage@ /can/ be used to copy image data between multisample+-- images, but both images /must/ have the same number of samples.+--+-- == Valid Usage+--+-- -   The source region specified by each element of @pRegions@ /must/ be+--     a region that is contained within @srcImage@+--+-- -   The destination region specified by each element of @pRegions@+--     /must/ be a region that is contained within @dstImage@+--+-- -   The union of all source regions, and the union of all destination+--     regions, specified by the elements of @pRegions@, /must/ not overlap+--     in memory+--+-- -   @srcImage@ /must/ have been created with+--     @VK_IMAGE_USAGE_TRANSFER_SRC_BIT@ usage flag+--+-- -   If @srcImage@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @srcImageLayout@ /must/ specify the layout of the image subresources+--     of @srcImage@ specified in @pRegions@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @srcImageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   @dstImage@ /must/ have been created with+--     @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @dstImage@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @dstImageLayout@ /must/ specify the layout of the image subresources+--     of @dstImage@ specified in @pRegions@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @dstImageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   The 'Graphics.Vulkan.Core10.Core.VkFormat' of each of @srcImage@ and+--     @dstImage@ /must/ be compatible, as defined+--     <{html_spec_relative}#copies-images-format-compatibility below>+--+-- -   The sample count of @srcImage@ and @dstImage@ /must/ match+--+-- -   The @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @srcImage@ was+--     created+--+-- -   The @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @dstImage@ was+--     created+--+-- -   The @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @srcImage@ was+--     created+--+-- -   The @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @dstImage@ was+--     created+--+-- -   The @srcOffset@ and and @extent@ members of each element of+--     @pRegions@ /must/ respect the image transfer granularity+--     requirements of @commandBuffer@’s command pool’s queue family, as+--     described in+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties'+--+-- -   The @dstOffset@ and and @extent@ members of each element of+--     @pRegions@ /must/ respect the image transfer granularity+--     requirements of @commandBuffer@’s command pool’s queue family, as+--     described in+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties'+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @srcImage@ /must/ be a valid @VkImage@ handle+--+-- -   @srcImageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @dstImage@ /must/ be a valid @VkImage@ handle+--+-- -   @dstImageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @pRegions@ /must/ be a valid pointer to an array of @regionCount@+--     valid @VkImageCopy@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @regionCount@ /must/ be greater than @0@+--+-- -   Each of @commandBuffer@, @dstImage@, and @srcImage@ /must/ have been+--     created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Transfer        | Transfer        |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage', 'VkImageCopy',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout'+foreign import ccall "vkCmdCopyImage" vkCmdCopyImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcImage" ::: VkImage) -> ("srcImageLayout" ::: VkImageLayout) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkImageCopy) -> IO ()+-- | vkCmdBlitImage - Copy regions of an image, potentially performing format+-- conversion,+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @srcImage@ is the source image.+--+-- -   @srcImageLayout@ is the layout of the source image subresources for+--     the blit.+--+-- -   @dstImage@ is the destination image.+--+-- -   @dstImageLayout@ is the layout of the destination image subresources+--     for the blit.+--+-- -   @regionCount@ is the number of regions to blit.+--+-- -   @pRegions@ is a pointer to an array of 'VkImageBlit' structures+--     specifying the regions to blit.+--+-- -   @filter@ is a 'Graphics.Vulkan.Core10.Sampler.VkFilter' specifying+--     the filter to apply if the blits require scaling.+--+-- = Description+-- #_description#+--+-- @vkCmdBlitImage@ /must/ not be used for multisampled source or+-- destination images. Use 'vkCmdResolveImage' for this purpose.+--+-- As the sizes of the source and destination extents /can/ differ in any+-- dimension, texels in the source extent are scaled and filtered to the+-- destination extent. Scaling occurs via the following operations:+--+-- -   For each destination texel, the integer coordinate of that texel is+--     converted to an unnormalized texture coordinate, using the effective+--     inverse of the equations described in+--     <{html_spec_relative}#textures-unnormalized-to-integer unnormalized to integer conversion>:+--+--     []+--         ubase = i + ½+--+--     []+--         vbase = j + ½+--+--     []+--         wbase = k + ½+--+-- -   These base coordinates are then offset by the first destination+--     offset:+--+--     []+--         uoffset = ubase - xdst0+--+--     []+--         voffset = vbase - ydst0+--+--     []+--         woffset = wbase - zdst0+--+--     []+--         aoffset = a - @baseArrayCount@dst+--+-- -   The scale is determined from the source and destination regions, and+--     applied to the offset coordinates:+--+--     []+--         scale_u = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)+--+--     []+--         scale_v = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)+--+--     []+--         scale_w = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)+--+--     []+--         uscaled = uoffset * scaleu+--+--     []+--         vscaled = voffset * scalev+--+--     []+--         wscaled = woffset * scalew+--+-- -   Finally the source offset is added to the scaled coordinates, to+--     determine the final unnormalized coordinates used to sample from+--     @srcImage@:+--+--     []+--         u = uscaled + xsrc0+--+--     []+--         v = vscaled + ysrc0+--+--     []+--         w = wscaled + zsrc0+--+--     []+--         q = @mipLevel@+--+--     []+--         a = aoffset + @baseArrayCount@src+--+-- These coordinates are used to sample from the source image, as described+-- in <{html_spec_relative}#textures Image Operations chapter>, with the+-- filter mode equal to that of @filter@, a mipmap mode of+-- @VK_SAMPLER_MIPMAP_MODE_NEAREST@ and an address mode of+-- @VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE@. Implementations /must/ clamp at+-- the edge of the source image, and /may/ additionally clamp to the edge+-- of the source region.+--+-- __Note__+--+-- Due to allowable rounding errors in the generation of the source texture+-- coordinates, it is not always possible to guarantee exactly which source+-- texels will be sampled for a given blit. As rounding errors are+-- implementation dependent, the exact results of a blitting operation are+-- also implementation dependent.+--+-- Blits are done layer by layer starting with the @baseArrayLayer@ member+-- of @srcSubresource@ for the source and @dstSubresource@ for the+-- destination. @layerCount@ layers are blitted to the destination image.+--+-- 3D textures are blitted slice by slice. Slices in the source region+-- bounded by @srcOffsets@[0].@z@ and @srcOffsets@[1].@z@ are copied to+-- slices in the destination region bounded by @dstOffsets@[0].@z@ and+-- @dstOffsets@[1].@z@. For each destination slice, a source __z__+-- coordinate is linearly interpolated between @srcOffsets@[0].@z@ and+-- @srcOffsets@[1].@z@. If the @filter@ parameter is @VK_FILTER_LINEAR@+-- then the value sampled from the source image is taken by doing linear+-- filtering using the interpolated __z__ coordinate. If @filter@ parameter+-- is @VK_FILTER_NEAREST@ then value sampled from the source image is taken+-- from the single nearest slice (with undefined rounding mode).+--+-- The following filtering and conversion rules apply:+--+-- -   Integer formats /can/ only be converted to other integer formats+--     with the same signedness.+--+-- -   No format conversion is supported between depth\/stencil images. The+--     formats /must/ match.+--+-- -   Format conversions on unorm, snorm, unscaled and packed float+--     formats of the copied aspect of the image are performed by first+--     converting the pixels to float values.+--+-- -   For sRGB source formats, nonlinear RGB values are converted to+--     linear representation prior to filtering.+--+-- -   After filtering, the float values are first clamped and then cast to+--     the destination image format. In case of sRGB destination format,+--     linear RGB values are converted to nonlinear representation before+--     writing the pixel to the image.+--+-- Signed and unsigned integers are converted by first clamping to the+-- representable range of the destination format, then casting the value.+--+-- == Valid Usage+--+-- -   The source region specified by each element of @pRegions@ /must/ be+--     a region that is contained within @srcImage@+--+-- -   The destination region specified by each element of @pRegions@+--     /must/ be a region that is contained within @dstImage@+--+-- -   The union of all destination regions, specified by the elements of+--     @pRegions@, /must/ not overlap in memory with any texel that /may/+--     be sampled during the blit operation+--+-- -   @srcImage@ /must/ use a format that supports+--     @VK_FORMAT_FEATURE_BLIT_SRC_BIT@, which is indicated by+--     @VkFormatProperties@::@linearTilingFeatures@ (for linearly tiled+--     images) or @VkFormatProperties@::@optimalTilingFeatures@ (for+--     optimally tiled images) - as returned by+--     @vkGetPhysicalDeviceFormatProperties@+--+-- -   @srcImage@ /must/ have been created with+--     @VK_IMAGE_USAGE_TRANSFER_SRC_BIT@ usage flag+--+-- -   If @srcImage@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @srcImageLayout@ /must/ specify the layout of the image subresources+--     of @srcImage@ specified in @pRegions@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @srcImageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   @dstImage@ /must/ use a format that supports+--     @VK_FORMAT_FEATURE_BLIT_DST_BIT@, which is indicated by+--     @VkFormatProperties@::@linearTilingFeatures@ (for linearly tiled+--     images) or @VkFormatProperties@::@optimalTilingFeatures@ (for+--     optimally tiled images) - as returned by+--     @vkGetPhysicalDeviceFormatProperties@+--+-- -   @dstImage@ /must/ have been created with+--     @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @dstImage@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @dstImageLayout@ /must/ specify the layout of the image subresources+--     of @dstImage@ specified in @pRegions@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @dstImageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   The sample count of @srcImage@ and @dstImage@ /must/ both be equal+--     to @VK_SAMPLE_COUNT_1_BIT@+--+-- -   If either of @srcImage@ or @dstImage@ was created with a signed+--     integer 'Graphics.Vulkan.Core10.Core.VkFormat', the other /must/+--     also have been created with a signed integer+--     'Graphics.Vulkan.Core10.Core.VkFormat'+--+-- -   If either of @srcImage@ or @dstImage@ was created with an unsigned+--     integer 'Graphics.Vulkan.Core10.Core.VkFormat', the other /must/+--     also have been created with an unsigned integer+--     'Graphics.Vulkan.Core10.Core.VkFormat'+--+-- -   If either of @srcImage@ or @dstImage@ was created with a+--     depth\/stencil format, the other /must/ have exactly the same format+--+-- -   If @srcImage@ was created with a depth\/stencil format, @filter@+--     /must/ be @VK_FILTER_NEAREST@+--+-- -   @srcImage@ /must/ have been created with a @samples@ value of+--     @VK_SAMPLE_COUNT_1_BIT@+--+-- -   @dstImage@ /must/ have been created with a @samples@ value of+--     @VK_SAMPLE_COUNT_1_BIT@+--+-- -   If @filter@ is @VK_FILTER_LINEAR@, @srcImage@ /must/ be of a format+--     which supports linear filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- -   The @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @srcImage@ was+--     created+--+-- -   The @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @dstImage@ was+--     created+--+-- -   The @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @srcImage@ was+--     created+--+-- -   The @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @dstImage@ was+--     created+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @srcImage@ /must/ be a valid @VkImage@ handle+--+-- -   @srcImageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @dstImage@ /must/ be a valid @VkImage@ handle+--+-- -   @dstImageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @pRegions@ /must/ be a valid pointer to an array of @regionCount@+--     valid @VkImageBlit@ structures+--+-- -   @filter@ /must/ be a valid 'Graphics.Vulkan.Core10.Sampler.VkFilter'+--     value+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @regionCount@ /must/ be greater than @0@+--+-- -   Each of @commandBuffer@, @dstImage@, and @srcImage@ /must/ have been+--     created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        | Transfer        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Sampler.VkFilter',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage', 'VkImageBlit',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout'+foreign import ccall "vkCmdBlitImage" vkCmdBlitImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcImage" ::: VkImage) -> ("srcImageLayout" ::: VkImageLayout) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkImageBlit) -> ("filter" ::: VkFilter) -> IO ()+-- | vkCmdCopyBufferToImage - Copy data from a buffer into an image+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @srcBuffer@ is the source buffer.+--+-- -   @dstImage@ is the destination image.+--+-- -   @dstImageLayout@ is the layout of the destination image subresources+--     for the copy.+--+-- -   @regionCount@ is the number of regions to copy.+--+-- -   @pRegions@ is a pointer to an array of 'VkBufferImageCopy'+--     structures specifying the regions to copy.+--+-- = Description+-- #_description#+--+-- Each region in @pRegions@ is copied from the specified region of the+-- source buffer to the specified region of the destination image.+--+-- == Valid Usage+--+-- -   The buffer region specified by each element of @pRegions@ /must/ be+--     a region that is contained within @srcBuffer@+--+-- -   The image region specified by each element of @pRegions@ /must/ be a+--     region that is contained within @dstImage@+--+-- -   The union of all source regions, and the union of all destination+--     regions, specified by the elements of @pRegions@, /must/ not overlap+--     in memory+--+-- -   @srcBuffer@ /must/ have been created with+--     @VK_BUFFER_USAGE_TRANSFER_SRC_BIT@ usage flag+--+-- -   If @srcBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @dstImage@ /must/ have been created with+--     @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @dstImage@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @dstImage@ /must/ have a sample count equal to+--     @VK_SAMPLE_COUNT_1_BIT@+--+-- -   @dstImageLayout@ /must/ specify the layout of the image subresources+--     of @dstImage@ specified in @pRegions@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @dstImageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   The @imageSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @dstImage@ was+--     created+--+-- -   The @imageSubresource.baseArrayLayer@ ++--     @imageSubresource.layerCount@ of each element of @pRegions@ /must/+--     be less than or equal to the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @dstImage@ was+--     created+--+-- -   The @imageOffset@ and and @imageExtent@ members of each element of+--     @pRegions@ /must/ respect the image transfer granularity+--     requirements of @commandBuffer@’s command pool’s queue family, as+--     described in+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties'+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @srcBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @dstImage@ /must/ be a valid @VkImage@ handle+--+-- -   @dstImageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @pRegions@ /must/ be a valid pointer to an array of @regionCount@+--     valid @VkBufferImageCopy@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @regionCount@ /must/ be greater than @0@+--+-- -   Each of @commandBuffer@, @dstImage@, and @srcBuffer@ /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Transfer        | Transfer        |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer', 'VkBufferImageCopy',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout'+foreign import ccall "vkCmdCopyBufferToImage" vkCmdCopyBufferToImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcBuffer" ::: VkBuffer) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkBufferImageCopy) -> IO ()+-- | vkCmdCopyImageToBuffer - Copy image data into a buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @srcImage@ is the source image.+--+-- -   @srcImageLayout@ is the layout of the source image subresources for+--     the copy.+--+-- -   @dstBuffer@ is the destination buffer.+--+-- -   @regionCount@ is the number of regions to copy.+--+-- -   @pRegions@ is a pointer to an array of 'VkBufferImageCopy'+--     structures specifying the regions to copy.+--+-- = Description+-- #_description#+--+-- Each region in @pRegions@ is copied from the specified region of the+-- source image to the specified region of the destination buffer.+--+-- == Valid Usage+--+-- -   The image region specified by each element of @pRegions@ /must/ be a+--     region that is contained within @srcImage@+--+-- -   The buffer region specified by each element of @pRegions@ /must/ be+--     a region that is contained within @dstBuffer@+--+-- -   The union of all source regions, and the union of all destination+--     regions, specified by the elements of @pRegions@, /must/ not overlap+--     in memory+--+-- -   @srcImage@ /must/ have been created with+--     @VK_IMAGE_USAGE_TRANSFER_SRC_BIT@ usage flag+--+-- -   If @srcImage@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @srcImage@ /must/ have a sample count equal to+--     @VK_SAMPLE_COUNT_1_BIT@+--+-- -   @srcImageLayout@ /must/ specify the layout of the image subresources+--     of @srcImage@ specified in @pRegions@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @srcImageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   @dstBuffer@ /must/ have been created with+--     @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @dstBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   The @imageSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @srcImage@ was+--     created+--+-- -   The @imageSubresource.baseArrayLayer@ ++--     @imageSubresource.layerCount@ of each element of @pRegions@ /must/+--     be less than or equal to the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @srcImage@ was+--     created+--+-- -   The @imageOffset@ and and @imageExtent@ members of each element of+--     @pRegions@ /must/ respect the image transfer granularity+--     requirements of @commandBuffer@’s command pool’s queue family, as+--     described in+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties'+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @srcImage@ /must/ be a valid @VkImage@ handle+--+-- -   @srcImageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @dstBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @pRegions@ /must/ be a valid pointer to an array of @regionCount@+--     valid @VkBufferImageCopy@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @regionCount@ /must/ be greater than @0@+--+-- -   Each of @commandBuffer@, @dstBuffer@, and @srcImage@ /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Transfer        | Transfer        |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer', 'VkBufferImageCopy',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout'+foreign import ccall "vkCmdCopyImageToBuffer" vkCmdCopyImageToBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcImage" ::: VkImage) -> ("srcImageLayout" ::: VkImageLayout) -> ("dstBuffer" ::: VkBuffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkBufferImageCopy) -> IO ()+-- | vkCmdUpdateBuffer - Update a buffer’s contents from host memory+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @dstBuffer@ is a handle to the buffer to be updated.+--+-- -   @dstOffset@ is the byte offset into the buffer to start updating,+--     and /must/ be a multiple of 4.+--+-- -   @dataSize@ is the number of bytes to update, and /must/ be a+--     multiple of 4.+--+-- -   @pData@ is a pointer to the source data for the buffer update, and+--     /must/ be at least @dataSize@ bytes in size.+--+-- = Description+-- #_description#+--+-- @dataSize@ /must/ be less than or equal to 65536 bytes. For larger+-- updates, applications /can/ use buffer to buffer+-- <{html_spec_relative}#copies-buffers copies>.+--+-- __Note__+--+-- Buffer updates performed with @vkCmdUpdateBuffer@ first copy the data+-- into command buffer memory when the command is recorded (which requires+-- additional storage and may incur an additional allocation), and then+-- copy the data from the command buffer into @dstBuffer@ when the command+-- is executed on a device.+--+-- The additional cost of this functionality compared to+-- <{html_spec_relative}#copies-buffers buffer to buffer copies> means it+-- is only recommended for very small amounts of data, and is why it is+-- limited to only 65536 bytes.+--+-- Applications /can/ work around this by issuing multiple+-- @vkCmdUpdateBuffer@ commands to different ranges of the same buffer, but+-- it is strongly recommended that they /should/ not.+--+-- The source data is copied from the user pointer to the command buffer+-- when the command is called.+--+-- @vkCmdUpdateBuffer@ is only allowed outside of a render pass. This+-- command is treated as “transfer” operation, for the purposes of+-- synchronization barriers. The @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ /must/+-- be specified in @usage@ of+-- 'Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo' in order for the+-- buffer to be compatible with @vkCmdUpdateBuffer@.+--+-- == Valid Usage+--+-- -   @dstOffset@ /must/ be less than the size of @dstBuffer@+--+-- -   @dataSize@ /must/ be less than or equal to the size of @dstBuffer@+--     minus @dstOffset@+--+-- -   @dstBuffer@ /must/ have been created with+--     @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @dstBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @dstOffset@ /must/ be a multiple of @4@+--+-- -   @dataSize@ /must/ be less than or equal to @65536@+--+-- -   @dataSize@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @dstBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @pData@ /must/ be a valid pointer to an array of @dataSize@ bytes+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @dataSize@ /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and @dstBuffer@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Transfer        | Transfer        |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@+foreign import ccall "vkCmdUpdateBuffer" vkCmdUpdateBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("dataSize" ::: VkDeviceSize) -> ("pData" ::: Ptr ()) -> IO ()+-- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @dstBuffer@ is the buffer to be filled.+--+-- -   @dstOffset@ is the byte offset into the buffer at which to start+--     filling, and /must/ be a multiple of 4.+--+-- -   @size@ is the number of bytes to fill, and /must/ be either a+--     multiple of 4, or @VK_WHOLE_SIZE@ to fill the range from @offset@ to+--     the end of the buffer. If @VK_WHOLE_SIZE@ is used and the remaining+--     size of the buffer is not a multiple of 4, then the nearest smaller+--     multiple is used.+--+-- -   @data@ is the 4-byte word written repeatedly to the buffer to fill+--     @size@ bytes of data. The data word is written to memory according+--     to the host endianness.+--+-- = Description+-- #_description#+--+-- @vkCmdFillBuffer@ is treated as “transfer” operation for the purposes of+-- synchronization barriers. The @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ /must/+-- be specified in @usage@ of @VkBufferCreateInfo@ in order for the buffer+-- to be compatible with @vkCmdFillBuffer@.+--+-- == Valid Usage+--+-- -   @dstOffset@ /must/ be less than the size of @dstBuffer@+--+-- -   @dstOffset@ /must/ be a multiple of @4@+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @size@ /must/ be greater+--     than @0@+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @size@ /must/ be less+--     than or equal to the size of @dstBuffer@ minus @dstOffset@+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @size@ /must/ be a+--     multiple of @4@+--+-- -   @dstBuffer@ /must/ have been created with+--     @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics or compute operations+--+-- -   If @dstBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @dstBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   Both of @commandBuffer@, and @dstBuffer@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Transfer        | Transfer        |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@+foreign import ccall "vkCmdFillBuffer" vkCmdFillBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("size" ::: VkDeviceSize) -> ("data" ::: Word32) -> IO ()+-- | vkCmdClearColorImage - Clear regions of a color image+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @image@ is the image to be cleared.+--+-- -   @imageLayout@ specifies the current layout of the image subresource+--     ranges to be cleared, and /must/ be @VK_IMAGE_LAYOUT_GENERAL@ or+--     @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@.+--+-- -   @pColor@ is a pointer to a 'VkClearColorValue' structure that+--     contains the values the image subresource ranges will be cleared to+--     (see+--     <{html_spec_relative}#clears-values {html_spec_relative}#clears-values>+--     below).+--+-- -   @rangeCount@ is the number of image subresource range structures in+--     @pRanges@.+--+-- -   @pRanges@ points to an array of+--     'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'+--     structures that describe a range of mipmap levels, array layers, and+--     aspects to be cleared, as described in+--     <{html_spec_relative}#resources-image-views Image Views>. The+--     @aspectMask@ of all image subresource ranges /must/ only include+--     @VK_IMAGE_ASPECT_COLOR_BIT@.+--+-- = Description+-- #_description#+--+-- Each specified range in @pRanges@ is cleared to the value specified by+-- @pColor@.+--+-- == Valid Usage+--+-- -   @image@ /must/ have been created with+--     @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @image@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @imageLayout@ /must/ specify the layout of the image subresource+--     ranges of @image@ specified in @pRanges@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @imageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   The+--     'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'::@baseMipLevel@+--     members of the elements of the @pRanges@ array /must/ each be less+--     than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   For each 'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'+--     element of @pRanges@, if the @levelCount@ member is not+--     @VK_REMAINING_MIP_LEVELS@, then @baseMipLevel@ + @levelCount@ /must/+--     be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   The+--     'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'::@baseArrayLayer@+--     members of the elements of the @pRanges@ array /must/ each be less+--     than the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   For each 'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'+--     element of @pRanges@, if the @layerCount@ member is not+--     @VK_REMAINING_ARRAY_LAYERS@, then @baseArrayLayer@ + @layerCount@+--     /must/ be less than the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   @image@ /must/ not have a compressed or depth\/stencil format+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @imageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @pColor@ /must/ be a valid pointer to a valid @VkClearColorValue@+--     union+--+-- -   @pRanges@ /must/ be a valid pointer to an array of @rangeCount@+--     valid @VkImageSubresourceRange@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @rangeCount@ /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and @image@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        | Transfer        |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkClearColorValue', 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'+foreign import ccall "vkCmdClearColorImage" vkCmdClearColorImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("image" ::: VkImage) -> ("imageLayout" ::: VkImageLayout) -> ("pColor" ::: Ptr VkClearColorValue) -> ("rangeCount" ::: Word32) -> ("pRanges" ::: Ptr VkImageSubresourceRange) -> IO ()+-- | vkCmdClearDepthStencilImage - Fill regions of a combined depth\/stencil+-- image+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @image@ is the image to be cleared.+--+-- -   @imageLayout@ specifies the current layout of the image subresource+--     ranges to be cleared, and /must/ be @VK_IMAGE_LAYOUT_GENERAL@ or+--     @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@.+--+-- -   @pDepthStencil@ is a pointer to a 'VkClearDepthStencilValue'+--     structure that contains the values the depth and stencil image+--     subresource ranges will be cleared to (see+--     <{html_spec_relative}#clears-values {html_spec_relative}#clears-values>+--     below).+--+-- -   @rangeCount@ is the number of image subresource range structures in+--     @pRanges@.+--+-- -   @pRanges@ points to an array of+--     'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'+--     structures that describe a range of mipmap levels, array layers, and+--     aspects to be cleared, as described in+--     <{html_spec_relative}#resources-image-views Image Views>. The+--     @aspectMask@ of each image subresource range in @pRanges@ /can/+--     include @VK_IMAGE_ASPECT_DEPTH_BIT@ if the image format has a depth+--     component, and @VK_IMAGE_ASPECT_STENCIL_BIT@ if the image format has+--     a stencil component. @pDepthStencil@ is a pointer to a+--     @VkClearDepthStencilValue@ structure that contains the values the+--     image subresource ranges will be cleared to (see+--     <{html_spec_relative}#clears-values {html_spec_relative}#clears-values>+--     below).+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @image@ /must/ have been created with+--     @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @image@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @imageLayout@ /must/ specify the layout of the image subresource+--     ranges of @image@ specified in @pRanges@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @imageLayout@ /must/ be either of+--     @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ or @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   The+--     'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'::@baseMipLevel@+--     members of the elements of the @pRanges@ array /must/ each be less+--     than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   For each 'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'+--     element of @pRanges@, if the @levelCount@ member is not+--     @VK_REMAINING_MIP_LEVELS@, then @baseMipLevel@ + @levelCount@ /must/+--     be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   The+--     'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'::@baseArrayLayer@+--     members of the elements of the @pRanges@ array /must/ each be less+--     than the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   For each 'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'+--     element of @pRanges@, if the @layerCount@ member is not+--     @VK_REMAINING_ARRAY_LAYERS@, then @baseArrayLayer@ + @layerCount@+--     /must/ be less than the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   @image@ /must/ have a depth\/stencil format+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @imageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @pDepthStencil@ /must/ be a valid pointer to a valid+--     @VkClearDepthStencilValue@ structure+--+-- -   @pRanges@ /must/ be a valid pointer to an array of @rangeCount@+--     valid @VkImageSubresourceRange@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @rangeCount@ /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and @image@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        | Transfer        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkClearDepthStencilValue',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange'+foreign import ccall "vkCmdClearDepthStencilImage" vkCmdClearDepthStencilImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("image" ::: VkImage) -> ("imageLayout" ::: VkImageLayout) -> ("pDepthStencil" ::: Ptr VkClearDepthStencilValue) -> ("rangeCount" ::: Word32) -> ("pRanges" ::: Ptr VkImageSubresourceRange) -> IO ()+-- | vkCmdClearAttachments - Clear regions within bound framebuffer+-- attachments+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @attachmentCount@ is the number of entries in the @pAttachments@+--     array.+--+-- -   @pAttachments@ is a pointer to an array of 'VkClearAttachment'+--     structures defining the attachments to clear and the clear values to+--     use.+--+-- -   @rectCount@ is the number of entries in the @pRects@ array.+--+-- -   @pRects@ points to an array of 'VkClearRect' structures defining+--     regions within each selected attachment to clear.+--+-- = Description+-- #_description#+--+-- @vkCmdClearAttachments@ /can/ clear multiple regions of each attachment+-- used in the current subpass of a render pass instance. This command+-- /must/ be called only inside a render pass instance, and implicitly+-- selects the images to clear based on the current framebuffer attachments+-- and the command parameters.+--+-- == Valid Usage+--+-- -   If the @aspectMask@ member of any element of @pAttachments@ contains+--     @VK_IMAGE_ASPECT_COLOR_BIT@, the @colorAttachment@ member of that+--     element /must/ refer to a valid color attachment in the current+--     subpass+--+-- -   The rectangular region specified by each element of @pRects@ /must/+--     be contained within the render area of the current render pass+--     instance+--+-- -   The layers specified by each element of @pRects@ /must/ be contained+--     within every attachment that @pAttachments@ refers to+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pAttachments@ /must/ be a valid pointer to an array of+--     @attachmentCount@ valid @VkClearAttachment@ structures+--+-- -   @pRects@ /must/ be a valid pointer to an array of @rectCount@+--     @VkClearRect@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- -   @attachmentCount@ /must/ be greater than @0@+--+-- -   @rectCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkClearAttachment', 'VkClearRect',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdClearAttachments" vkCmdClearAttachments :: ("commandBuffer" ::: VkCommandBuffer) -> ("attachmentCount" ::: Word32) -> ("pAttachments" ::: Ptr VkClearAttachment) -> ("rectCount" ::: Word32) -> ("pRects" ::: Ptr VkClearRect) -> IO ()+-- | vkCmdResolveImage - Resolve regions of an image+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @srcImage@ is the source image.+--+-- -   @srcImageLayout@ is the layout of the source image subresources for+--     the resolve.+--+-- -   @dstImage@ is the destination image.+--+-- -   @dstImageLayout@ is the layout of the destination image subresources+--     for the resolve.+--+-- -   @regionCount@ is the number of regions to resolve.+--+-- -   @pRegions@ is a pointer to an array of 'VkImageResolve' structures+--     specifying the regions to resolve.+--+-- = Description+-- #_description#+--+-- During the resolve the samples corresponding to each pixel location in+-- the source are converted to a single sample before being written to the+-- destination. If the source formats are floating-point or normalized+-- types, the sample values for each pixel are resolved in an+-- implementation-dependent manner. If the source formats are integer+-- types, a single sample’s value is selected for each pixel.+--+-- @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+-- in texels of the sub-regions of the source and destination image data.+-- @extent@ is the size in texels of the source image to resolve in+-- @width@, @height@ and @depth@.+--+-- Resolves are done layer by layer starting with @baseArrayLayer@ member+-- of @srcSubresource@ for the source and @dstSubresource@ for the+-- destination. @layerCount@ layers are resolved to the destination image.+--+-- == Valid Usage+--+-- -   The source region specified by each element of @pRegions@ /must/ be+--     a region that is contained within @srcImage@+--+-- -   The destination region specified by each element of @pRegions@+--     /must/ be a region that is contained within @dstImage@+--+-- -   The union of all source regions, and the union of all destination+--     regions, specified by the elements of @pRegions@, /must/ not overlap+--     in memory+--+-- -   If @srcImage@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @srcImage@ /must/ have a sample count equal to any valid sample+--     count value other than @VK_SAMPLE_COUNT_1_BIT@+--+-- -   If @dstImage@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @dstImage@ /must/ have a sample count equal to+--     @VK_SAMPLE_COUNT_1_BIT@+--+-- -   @srcImageLayout@ /must/ specify the layout of the image subresources+--     of @srcImage@ specified in @pRegions@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @srcImageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   @dstImageLayout@ /must/ specify the layout of the image subresources+--     of @dstImage@ specified in @pRegions@ at the time this command is+--     executed on a @VkDevice@+--+-- -   @dstImageLayout@ /must/ be @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   If @dstImage@ was created with @tiling@ equal to+--     @VK_IMAGE_TILING_LINEAR@, @dstImage@ /must/ have been created with a+--     @format@ that supports being a color attachment, as specified by the+--     @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@+--+-- -   If @dstImage@ was created with @tiling@ equal to+--     @VK_IMAGE_TILING_OPTIMAL@, @dstImage@ /must/ have been created with+--     a @format@ that supports being a color attachment, as specified by+--     the @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT@ flag in+--     @VkFormatProperties@::@optimalTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@+--+-- -   @srcImage@ and @dstImage@ /must/ have been created with the same+--     image format+--+-- -   The @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @srcImage@ was+--     created+--+-- -   The @dstSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @dstImage@ was+--     created+--+-- -   The @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @srcImage@ was+--     created+--+-- -   The @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @dstImage@ was+--     created+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @srcImage@ /must/ be a valid @VkImage@ handle+--+-- -   @srcImageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @dstImage@ /must/ be a valid @VkImage@ handle+--+-- -   @dstImageLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @pRegions@ /must/ be a valid pointer to an array of @regionCount@+--     valid @VkImageResolve@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @regionCount@ /must/ be greater than @0@+--+-- -   Each of @commandBuffer@, @dstImage@, and @srcImage@ /must/ have been+--     created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        | Transfer        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout', 'VkImageResolve'+foreign import ccall "vkCmdResolveImage" vkCmdResolveImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcImage" ::: VkImage) -> ("srcImageLayout" ::: VkImageLayout) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkImageResolve) -> IO ()+-- | vkCmdSetEvent - Set an event object to signaled state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @event@ is the event that will be signaled.+--+-- -   @stageMask@ specifies the+--     <{html_spec_relative}#synchronization-pipeline-stages source stage mask>+--     used to determine when the @event@ is signaled.+--+-- = Description+-- #_description#+--+-- When 'vkCmdSetEvent' is submitted to a queue, it defines an execution+-- dependency on commands that were submitted before it, and defines an+-- event signal operation which sets the event to the signaled state.+--+-- The first+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <{html_spec_relative}#synchronization-submission-order submission order>.+-- The synchronization scope is limited to operations on the pipeline+-- stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks source stage mask>+-- specified by @stageMask@.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes only the event signal operation.+--+-- If @event@ is already in the signaled state when 'vkCmdSetEvent' is+-- executed on the device, then 'vkCmdSetEvent' has no effect, no event+-- signal operation occurs, and no execution dependency is generated.+--+-- == Valid Usage+--+-- -   @stageMask@ /must/ not include @VK_PIPELINE_STAGE_HOST_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @event@ /must/ be a valid @VkEvent@ handle+--+-- -   @stageMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values+--+-- -   @stageMask@ /must/ not be @0@+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   Both of @commandBuffer@, and @event@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Event.VkEvent',+-- 'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlags'+foreign import ccall "vkCmdSetEvent" vkCmdSetEvent :: ("commandBuffer" ::: VkCommandBuffer) -> ("event" ::: VkEvent) -> ("stageMask" ::: VkPipelineStageFlags) -> IO ()+-- | vkCmdResetEvent - Reset an event object to non-signaled state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @event@ is the event that will be unsignaled.+--+-- -   @stageMask@ is a bitmask of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' specifying+--     the+--     <{html_spec_relative}#synchronization-pipeline-stages source stage mask>+--     used to determine when the @event@ is unsignaled.+--+-- = Description+-- #_description#+--+-- When 'vkCmdResetEvent' is submitted to a queue, it defines an execution+-- dependency on commands that were submitted before it, and defines an+-- event unsignal operation which resets the event to the unsignaled state.+--+-- The first+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <{html_spec_relative}#synchronization-submission-order submission order>.+-- The synchronization scope is limited to operations on the pipeline+-- stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks source stage mask>+-- specified by @stageMask@.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes only the event unsignal operation.+--+-- If @event@ is already in the unsignaled state when 'vkCmdResetEvent' is+-- executed on the device, then 'vkCmdResetEvent' has no effect, no event+-- unsignal operation occurs, and no execution dependency is generated.+--+-- == Valid Usage+--+-- -   @stageMask@ /must/ not include @VK_PIPELINE_STAGE_HOST_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @stageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- -   When this command executes, @event@ /must/ not be waited on by a+--     @vkCmdWaitEvents@ command that is currently executing+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @event@ /must/ be a valid @VkEvent@ handle+--+-- -   @stageMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values+--+-- -   @stageMask@ /must/ not be @0@+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   Both of @commandBuffer@, and @event@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Event.VkEvent',+-- 'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlags'+foreign import ccall "vkCmdResetEvent" vkCmdResetEvent :: ("commandBuffer" ::: VkCommandBuffer) -> ("event" ::: VkEvent) -> ("stageMask" ::: VkPipelineStageFlags) -> IO ()+-- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @eventCount@ is the length of the @pEvents@ array.+--+-- -   @pEvents@ is an array of event object handles to wait on.+--+-- -   @srcStageMask@ is a bitmask of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' specifying+--     the+--     <{html_spec_relative}#synchronization-pipeline-stages source stage mask>.+--+-- -   @dstStageMask@ is a bitmask of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' specifying+--     the+--     <{html_spec_relative}#synchronization-pipeline-stages destination stage mask>.+--+-- -   @memoryBarrierCount@ is the length of the @pMemoryBarriers@ array.+--+-- -   @pMemoryBarriers@ is a pointer to an array of 'VkMemoryBarrier'+--     structures.+--+-- -   @bufferMemoryBarrierCount@ is the length of the+--     @pBufferMemoryBarriers@ array.+--+-- -   @pBufferMemoryBarriers@ is a pointer to an array of+--     'VkBufferMemoryBarrier' structures.+--+-- -   @imageMemoryBarrierCount@ is the length of the+--     @pImageMemoryBarriers@ array.+--+-- -   @pImageMemoryBarriers@ is a pointer to an array of+--     'VkImageMemoryBarrier' structures.+--+-- = Description+-- #_description#+--+-- When @vkCmdWaitEvents@ is submitted to a queue, it defines a memory+-- dependency between prior event signal operations on the same queue or+-- the host, and subsequent commands. @vkCmdWaitEvents@ /must/ not be used+-- to wait on event signal operations occuring on other queues.+--+-- The first synchronization scope only includes event signal operations+-- that operate on members of @pEvents@, and the operations that+-- happened-before the event signal operations. Event signal operations+-- performed by 'vkCmdSetEvent' that occur earlier in+-- <{html_spec_relative}#synchronization-submission-order submission order>+-- are included in the first synchronization scope, if the+-- <{html_spec_relative}#synchronization-pipeline-stages-order logically latest>+-- pipeline stage in their @stageMask@ parameter is+-- <{html_spec_relative}#synchronization-pipeline-stages-order logically earlier>+-- than or equal to the+-- <{html_spec_relative}#synchronization-pipeline-stages-order logically latest>+-- pipeline stage in @srcStageMask@. Event signal operations performed by+-- 'Graphics.Vulkan.Core10.Event.vkSetEvent' are only included in the first+-- synchronization scope if @VK_PIPELINE_STAGE_HOST_BIT@ is included in+-- @srcStageMask@.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur later in+-- <{html_spec_relative}#synchronization-submission-order submission order>.+-- The second synchronization scope is limited to operations on the+-- pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access in the pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@. Within that, the first access scope only+-- includes the first access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <{html_spec_relative}#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the first access scope+-- includes no accesses.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access in the pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@. Within that, the second access scope only+-- includes the second access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <{html_spec_relative}#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the second access scope+-- includes no accesses.+--+-- __Note__+--+-- 'vkCmdWaitEvents' is used with 'vkCmdSetEvent' to define a memory+-- dependency between two sets of action commands, roughly in the same way+-- as pipeline barriers, but split into two commands such that work between+-- the two /may/ execute unhindered.+--+-- __Note__+--+-- Applications /should/ be careful to avoid race conditions when using+-- events. There is no direct ordering guarantee between a+-- 'vkCmdResetEvent' command and a 'vkCmdWaitEvents' command submitted+-- after it, so some other execution dependency /must/ be included between+-- these commands (e.g. a semaphore).+--+-- == Valid Usage+--+-- -   @srcStageMask@ /must/ be the bitwise OR of the @stageMask@ parameter+--     used in previous calls to @vkCmdSetEvent@ with any of the members of+--     @pEvents@ and @VK_PIPELINE_STAGE_HOST_BIT@ if any of the members of+--     @pEvents@ was set using @vkSetEvent@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- -   If @pEvents@ includes one or more events that will be signaled by+--     @vkSetEvent@ after @commandBuffer@ has been submitted to a queue,+--     then @vkCmdWaitEvents@ /must/ not be called inside a render pass+--     instance+--+-- -   Any pipeline stage included in @srcStageMask@ or @dstStageMask@+--     /must/ be supported by the capabilities of the queue family+--     specified by the @queueFamilyIndex@ member of the+--     'Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo'+--     structure that was used to create the @VkCommandPool@ that+--     @commandBuffer@ was allocated from, as specified in the+--     <{html_spec_relative}#synchronization-pipeline-stages-supported table of supported pipeline stages>.+--+-- -   Each element of @pMemoryBarriers@, @pBufferMemoryBarriers@ or+--     @pImageMemoryBarriers@ /must/ not have any access flag included in+--     its @srcAccessMask@ member if that bit is not supported by any of+--     the pipeline stages in @srcStageMask@, as specified in the+--     <{html_spec_relative}#synchronization-access-types-supported table of supported access types>.+--+-- -   Each element of @pMemoryBarriers@, @pBufferMemoryBarriers@ or+--     @pImageMemoryBarriers@ /must/ not have any access flag included in+--     its @dstAccessMask@ member if that bit is not supported by any of+--     the pipeline stages in @dstStageMask@, as specified in the+--     <{html_spec_relative}#synchronization-access-types-supported table of supported access types>.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pEvents@ /must/ be a valid pointer to an array of @eventCount@+--     valid @VkEvent@ handles+--+-- -   @srcStageMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values+--+-- -   @srcStageMask@ /must/ not be @0@+--+-- -   @dstStageMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values+--+-- -   @dstStageMask@ /must/ not be @0@+--+-- -   If @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a+--     valid pointer to an array of @memoryBarrierCount@ valid+--     @VkMemoryBarrier@ structures+--+-- -   If @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+--     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+--     valid @VkBufferMemoryBarrier@ structures+--+-- -   If @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@+--     /must/ be a valid pointer to an array of @imageMemoryBarrierCount@+--     valid @VkImageMemoryBarrier@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   @eventCount@ /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and the elements of @pEvents@ /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkBufferMemoryBarrier', 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Event.VkEvent', 'VkImageMemoryBarrier',+-- 'VkMemoryBarrier', 'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlags'+foreign import ccall "vkCmdWaitEvents" vkCmdWaitEvents :: ("commandBuffer" ::: VkCommandBuffer) -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr VkEvent) -> ("srcStageMask" ::: VkPipelineStageFlags) -> ("dstStageMask" ::: VkPipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr VkMemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr VkBufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr VkImageMemoryBarrier) -> IO ()+-- | vkCmdPipelineBarrier - Insert a memory dependency+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @srcStageMask@ is a bitmask of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' specifying+--     the+--     <{html_spec_relative}#synchronization-pipeline-stages-masks source stage mask>.+--+-- -   @dstStageMask@ is a bitmask of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' specifying+--     the+--     <{html_spec_relative}#synchronization-pipeline-stages-masks destination stage mask>.+--+-- -   @dependencyFlags@ is a bitmask of+--     'Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits' specifying how+--     execution and memory dependencies are formed.+--+-- -   @memoryBarrierCount@ is the length of the @pMemoryBarriers@ array.+--+-- -   @pMemoryBarriers@ is a pointer to an array of 'VkMemoryBarrier'+--     structures.+--+-- -   @bufferMemoryBarrierCount@ is the length of the+--     @pBufferMemoryBarriers@ array.+--+-- -   @pBufferMemoryBarriers@ is a pointer to an array of+--     'VkBufferMemoryBarrier' structures.+--+-- -   @imageMemoryBarrierCount@ is the length of the+--     @pImageMemoryBarriers@ array.+--+-- -   @pImageMemoryBarriers@ is a pointer to an array of+--     'VkImageMemoryBarrier' structures.+--+-- = Description+-- #_description#+--+-- When 'vkCmdPipelineBarrier' is submitted to a queue, it defines a memory+-- dependency between commands that were submitted before it, and those+-- submitted after it.+--+-- If 'vkCmdPipelineBarrier' was recorded outside a render pass instance,+-- the first+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <{html_spec_relative}#synchronization-submission-order submission order>.+-- If 'vkCmdPipelineBarrier' was recorded inside a render pass instance,+-- the first synchronization scope includes only commands that occur+-- earlier in+-- <{html_spec_relative}#synchronization-submission-order submission order>+-- within the same subpass. In either case, the first synchronization scope+-- is limited to operations on the pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@.+--+-- If 'vkCmdPipelineBarrier' was recorded outside a render pass instance,+-- the second+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur later in+-- <{html_spec_relative}#synchronization-submission-order submission order>.+-- If 'vkCmdPipelineBarrier' was recorded inside a render pass instance,+-- the second synchronization scope includes only commands that occur later+-- in+-- <{html_spec_relative}#synchronization-submission-order submission order>+-- within the same subpass. In either case, the second synchronization+-- scope is limited to operations on the pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access in the pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@. Within that, the first access scope only+-- includes the first access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <{html_spec_relative}#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the first access scope+-- includes no accesses.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access in the pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@. Within that, the second access scope only+-- includes the second access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <{html_spec_relative}#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the second access scope+-- includes no accesses.+--+-- If @dependencyFlags@ includes @VK_DEPENDENCY_BY_REGION_BIT@, then any+-- dependency between+-- <{html_spec_relative}#synchronization-framebuffer-regions framebuffer-space>+-- pipeline stages is+-- <{html_spec_relative}#synchronization-framebuffer-regions framebuffer-local>+-- - otherwise it is+-- <{html_spec_relative}#synchronization-framebuffer-regions framebuffer-global>.+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     the render pass /must/ have been created with a+--     @VkSubpassDependency@ instance in @pDependencies@ that expresses a+--     dependency from the current subpass to itself.+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     @srcStageMask@ /must/ contain a subset of the bit values in the+--     @srcStageMask@ member of that instance of @VkSubpassDependency@+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     @dstStageMask@ /must/ contain a subset of the bit values in the+--     @dstStageMask@ member of that instance of @VkSubpassDependency@+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     the @srcAccessMask@ of any element of @pMemoryBarriers@ or+--     @pImageMemoryBarriers@ /must/ contain a subset of the bit values the+--     @srcAccessMask@ member of that instance of @VkSubpassDependency@+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     the @dstAccessMask@ of any element of @pMemoryBarriers@ or+--     @pImageMemoryBarriers@ /must/ contain a subset of the bit values the+--     @dstAccessMask@ member of that instance of @VkSubpassDependency@+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     @dependencyFlags@ /must/ be equal to the @dependencyFlags@ member of+--     that instance of @VkSubpassDependency@+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     @bufferMemoryBarrierCount@ /must/ be @0@+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     the @image@ member of any element of @pImageMemoryBarriers@ /must/+--     be equal to one of the elements of @pAttachments@ that the current+--     @framebuffer@ was created with, that is also referred to by one of+--     the elements of the @pColorAttachments@, @pResolveAttachments@ or+--     @pDepthStencilAttachment@ members of the @VkSubpassDescription@+--     instance that the current subpass was created with+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     the @oldLayout@ and @newLayout@ members of any element of+--     @pImageMemoryBarriers@ /must/ be equal to the @layout@ member of an+--     element of the @pColorAttachments@, @pResolveAttachments@ or+--     @pDepthStencilAttachment@ members of the @VkSubpassDescription@+--     instance that the current subpass was created with, that refers to+--     the same @image@+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     the @oldLayout@ and @newLayout@ members of an element of+--     @pImageMemoryBarriers@ /must/ be equal+--+-- -   If @vkCmdPipelineBarrier@ is called within a render pass instance,+--     the @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any+--     element of @pImageMemoryBarriers@ /must/ be+--     @VK_QUEUE_FAMILY_IGNORED@+--+-- -   Any pipeline stage included in @srcStageMask@ or @dstStageMask@+--     /must/ be supported by the capabilities of the queue family+--     specified by the @queueFamilyIndex@ member of the+--     'Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo'+--     structure that was used to create the @VkCommandPool@ that+--     @commandBuffer@ was allocated from, as specified in the+--     <{html_spec_relative}#synchronization-pipeline-stages-supported table of supported pipeline stages>.+--+-- -   Each element of @pMemoryBarriers@, @pBufferMemoryBarriers@ and+--     @pImageMemoryBarriers@ /must/ not have any access flag included in+--     its @srcAccessMask@ member if that bit is not supported by any of+--     the pipeline stages in @srcStageMask@, as specified in the+--     <{html_spec_relative}#synchronization-access-types-supported table of supported access types>.+--+-- -   Each element of @pMemoryBarriers@, @pBufferMemoryBarriers@ and+--     @pImageMemoryBarriers@ /must/ not have any access flag included in+--     its @dstAccessMask@ member if that bit is not supported by any of+--     the pipeline stages in @dstStageMask@, as specified in the+--     <{html_spec_relative}#synchronization-access-types-supported table of supported access types>.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @srcStageMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values+--+-- -   @srcStageMask@ /must/ not be @0@+--+-- -   @dstStageMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values+--+-- -   @dstStageMask@ /must/ not be @0@+--+-- -   @dependencyFlags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits' values+--+-- -   If @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a+--     valid pointer to an array of @memoryBarrierCount@ valid+--     @VkMemoryBarrier@ structures+--+-- -   If @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+--     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+--     valid @VkBufferMemoryBarrier@ structures+--+-- -   If @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@+--     /must/ be a valid pointer to an array of @imageMemoryBarrierCount@+--     valid @VkImageMemoryBarrier@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Transfer        |                 |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkBufferMemoryBarrier', 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Pass.VkDependencyFlags', 'VkImageMemoryBarrier',+-- 'VkMemoryBarrier', 'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlags'+foreign import ccall "vkCmdPipelineBarrier" vkCmdPipelineBarrier :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcStageMask" ::: VkPipelineStageFlags) -> ("dstStageMask" ::: VkPipelineStageFlags) -> ("dependencyFlags" ::: VkDependencyFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr VkMemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr VkBufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr VkImageMemoryBarrier) -> IO ()+-- | vkCmdBeginQuery - Begin a query+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which this command will+--     be recorded.+--+-- -   @queryPool@ is the query pool that will manage the results of the+--     query.+--+-- -   @query@ is the query index within the query pool that will contain+--     the results.+--+-- -   @flags@ is a bitmask of+--     'Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits'+--     specifying constraints on the types of queries that /can/ be+--     performed.+--+-- = Description+-- #_description#+--+-- If the @queryType@ of the pool is @VK_QUERY_TYPE_OCCLUSION@ and @flags@+-- contains @VK_QUERY_CONTROL_PRECISE_BIT@, an implementation /must/ return+-- a result that matches the actual number of samples passed. This is+-- described in more detail in+-- <{html_spec_relative}#queries-occlusion Occlusion Queries>.+--+-- After beginning a query, that query is considered /active/ within the+-- command buffer it was called in until that same query is ended. Queries+-- active in a primary command buffer when secondary command buffers are+-- executed are considered active for those secondary command buffers.+--+-- == Valid Usage+--+-- -   @queryPool@ /must/ have been created with a @queryType@ that differs+--     from that of any queries that are+--     <{html_spec_relative}#queries-operation-active active> within+--     @commandBuffer@+--+-- -   All queries used by the command /must/ be unavailable+--+-- -   If the+--     <{html_spec_relative}#features-features-occlusionQueryPrecise precise occlusion queries>+--     feature is not enabled, or the @queryType@ used to create+--     @queryPool@ was not @VK_QUERY_TYPE_OCCLUSION@, @flags@ /must/ not+--     contain @VK_QUERY_CONTROL_PRECISE_BIT@+--+-- -   @query@ /must/ be less than the number of queries in @queryPool@+--+-- -   If the @queryType@ used to create @queryPool@ was+--     @VK_QUERY_TYPE_OCCLUSION@, the @VkCommandPool@ that @commandBuffer@+--     was allocated from /must/ support graphics operations+--+-- -   If the @queryType@ used to create @queryPool@ was+--     @VK_QUERY_TYPE_PIPELINE_STATISTICS@ and any of the+--     @pipelineStatistics@ indicate graphics operations, the+--     @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   If the @queryType@ used to create @queryPool@ was+--     @VK_QUERY_TYPE_PIPELINE_STATISTICS@ and any of the+--     @pipelineStatistics@ indicate compute operations, the+--     @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support compute operations+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @queryPool@ /must/ be a valid @VkQueryPool@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits' values+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   Both of @commandBuffer@, and @queryPool@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlags',+-- 'Graphics.Vulkan.Core10.Query.VkQueryPool'+foreign import ccall "vkCmdBeginQuery" vkCmdBeginQuery :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("query" ::: Word32) -> ("flags" ::: VkQueryControlFlags) -> IO ()+-- | vkCmdEndQuery - Ends a query+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which this command will+--     be recorded.+--+-- -   @queryPool@ is the query pool that is managing the results of the+--     query.+--+-- -   @query@ is the query index within the query pool where the result is+--     stored.+--+-- = Description+-- #_description#+--+-- As queries operate asynchronously, ending a query does not immediately+-- set the query’s status to available. A query is considered /finished/+-- when the final results of the query are ready to be retrieved by+-- 'Graphics.Vulkan.Core10.Query.vkGetQueryPoolResults' and+-- 'vkCmdCopyQueryPoolResults', and this is when the query’s status is set+-- to available.+--+-- Once a query is ended the query /must/ finish in finite time, unless the+-- state of the query is changed using other commands, e.g. by issuing a+-- reset of the query.+--+-- == Valid Usage+--+-- -   All queries used by the command /must/ be+--     <{html_spec_relative}#queries-operation-active active>+--+-- -   @query@ /must/ be less than the number of queries in @queryPool@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @queryPool@ /must/ be a valid @VkQueryPool@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   Both of @commandBuffer@, and @queryPool@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Query.VkQueryPool'+foreign import ccall "vkCmdEndQuery" vkCmdEndQuery :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("query" ::: Word32) -> IO ()+-- | vkCmdResetQueryPool - Reset queries in a query pool+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which this command will+--     be recorded.+--+-- -   @queryPool@ is the handle of the query pool managing the queries+--     being reset.+--+-- -   @firstQuery@ is the initial query index to reset.+--+-- -   @queryCount@ is the number of queries to reset.+--+-- = Description+-- #_description#+--+-- When executed on a queue, this command sets the status of query indices+-- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.+--+-- == Valid Usage+--+-- -   @firstQuery@ /must/ be less than the number of queries in+--     @queryPool@+--+-- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or+--     equal to the number of queries in @queryPool@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @queryPool@ /must/ be a valid @VkQueryPool@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   Both of @commandBuffer@, and @queryPool@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Query.VkQueryPool'+foreign import ccall "vkCmdResetQueryPool" vkCmdResetQueryPool :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> IO ()+-- | vkCmdWriteTimestamp - Write a device timestamp into a query object+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @pipelineStage@ is one of the+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits', specifying a+--     stage of the pipeline.+--+-- -   @queryPool@ is the query pool that will manage the timestamp.+--+-- -   @query@ is the query within the query pool that will contain the+--     timestamp.+--+-- = Description+-- #_description#+--+-- @vkCmdWriteTimestamp@ latches the value of the timer when all previous+-- commands have completed executing as far as the specified pipeline+-- stage, and writes the timestamp value to memory. When the timestamp+-- value is written, the availability status of the query is set to+-- available.+--+-- __Note__+--+-- If an implementation is unable to detect completion and latch the timer+-- at any specific stage of the pipeline, it /may/ instead do so at any+-- logically later stage.+--+-- 'vkCmdCopyQueryPoolResults' /can/ then be called to copy the timestamp+-- value from the query pool into buffer memory, with ordering and+-- synchronization behavior equivalent to how other queries operate.+-- Timestamp values /can/ also be retrieved from the query pool using+-- 'Graphics.Vulkan.Core10.Query.vkGetQueryPoolResults'. As with other+-- queries, the query /must/ be reset using 'vkCmdResetQueryPool' before+-- requesting the timestamp value be written to it.+--+-- While @vkCmdWriteTimestamp@ /can/ be called inside or outside of a+-- render pass instance, 'vkCmdCopyQueryPoolResults' /must/ only be called+-- outside of a render pass instance.+--+-- Timestamps /may/ only be meaningfully compared if they are written by+-- commands submitted to the same queue.+--+-- __Note__+--+-- An example of such a comparison is determining the execution time of a+-- sequence of commands.+--+-- == Valid Usage+--+-- -   @queryPool@ /must/ have been created with a @queryType@ of+--     @VK_QUERY_TYPE_TIMESTAMP@+--+-- -   The query identified by @queryPool@ and @query@ /must/ be+--     /unavailable/+--+-- -   The command pool’s queue family /must/ support a non-zero+--     @timestampValidBits@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pipelineStage@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' value+--+-- -   @queryPool@ /must/ be a valid @VkQueryPool@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- -   Both of @commandBuffer@, and @queryPool@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Transfer        | Transfer        |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits',+-- 'Graphics.Vulkan.Core10.Query.VkQueryPool'+foreign import ccall "vkCmdWriteTimestamp" vkCmdWriteTimestamp :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineStage" ::: VkPipelineStageFlagBits) -> ("queryPool" ::: VkQueryPool) -> ("query" ::: Word32) -> IO ()+-- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool+-- to a buffer object+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which this command will+--     be recorded.+--+-- -   @queryPool@ is the query pool managing the queries containing the+--     desired results.+--+-- -   @firstQuery@ is the initial query index.+--+-- -   @queryCount@ is the number of queries. @firstQuery@ and @queryCount@+--     together define a range of queries.+--+-- -   @dstBuffer@ is a @VkBuffer@ object that will receive the results of+--     the copy command.+--+-- -   @dstOffset@ is an offset into @dstBuffer@.+--+-- -   @stride@ is the stride in bytes between results for individual+--     queries within @dstBuffer@. The required size of the backing memory+--     for @dstBuffer@ is determined as described above for+--     'Graphics.Vulkan.Core10.Query.vkGetQueryPoolResults'.+--+-- -   @flags@ is a bitmask of+--     'Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits' specifying how+--     and when results are returned.+--+-- = Description+-- #_description#+--+-- @vkCmdCopyQueryPoolResults@ is guaranteed to see the effect of previous+-- uses of @vkCmdResetQueryPool@ in the same queue, without any additional+-- synchronization. Thus, the results will always reflect the most recent+-- use of the query.+--+-- @flags@ has the same possible values described above for the @flags@+-- parameter of 'Graphics.Vulkan.Core10.Query.vkGetQueryPoolResults', but+-- the different style of execution causes some subtle behavioral+-- differences. Because @vkCmdCopyQueryPoolResults@ executes in order with+-- respect to other query commands, there is less ambiguity about which use+-- of a query is being requested.+--+-- If no bits are set in @flags@, results for all requested queries in the+-- available state are written as 32-bit unsigned integer values, and+-- nothing is written for queries in the unavailable state.+--+-- If @VK_QUERY_RESULT_64_BIT@ is set, the results are written as an array+-- of 64-bit unsigned integer values as described for+-- 'Graphics.Vulkan.Core10.Query.vkGetQueryPoolResults'.+--+-- If @VK_QUERY_RESULT_WAIT_BIT@ is set, the implementation will wait for+-- each query’s status to be in the available state before retrieving the+-- numerical results for that query. This is guaranteed to reflect the most+-- recent use of the query on the same queue, assuming that the query is+-- not being simultaneously used by other queues. If the query does not+-- become available in a finite amount of time (e.g. due to not issuing a+-- query since the last reset), a @VK_ERROR_DEVICE_LOST@ error /may/ occur.+--+-- Similarly, if @VK_QUERY_RESULT_WITH_AVAILABILITY_BIT@ is set and+-- @VK_QUERY_RESULT_WAIT_BIT@ is not set, the availability is guaranteed to+-- reflect the most recent use of the query on the same queue, assuming+-- that the query is not being simultaneously used by other queues. As with+-- @vkGetQueryPoolResults@, implementations /must/ guarantee that if they+-- return a non-zero availability value, then the numerical results are+-- valid.+--+-- If @VK_QUERY_RESULT_PARTIAL_BIT@ is set, @VK_QUERY_RESULT_WAIT_BIT@ is+-- not set, and the query’s status is unavailable, an intermediate result+-- value between zero and the final result value is written for that query.+--+-- @VK_QUERY_RESULT_PARTIAL_BIT@ /must/ not be used if the pool’s+-- @queryType@ is @VK_QUERY_TYPE_TIMESTAMP@.+--+-- @vkCmdCopyQueryPoolResults@ is considered to be a transfer operation,+-- and its writes to buffer memory /must/ be synchronized using+-- @VK_PIPELINE_STAGE_TRANSFER_BIT@ and @VK_ACCESS_TRANSFER_WRITE_BIT@+-- before using the results.+--+-- == Valid Usage+--+-- -   @dstOffset@ /must/ be less than the size of @dstBuffer@+--+-- -   @firstQuery@ /must/ be less than the number of queries in+--     @queryPool@+--+-- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or+--     equal to the number of queries in @queryPool@+--+-- -   If @VK_QUERY_RESULT_64_BIT@ is not set in @flags@ then @dstOffset@+--     and @stride@ /must/ be multiples of @4@+--+-- -   If @VK_QUERY_RESULT_64_BIT@ is set in @flags@ then @dstOffset@ and+--     @stride@ /must/ be multiples of @8@+--+-- -   @dstBuffer@ /must/ have enough storage, from @dstOffset@, to contain+--     the result of each query, as described+--     <{html_spec_relative}#queries-operation-memorylayout here>+--+-- -   @dstBuffer@ /must/ have been created with+--     @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @dstBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   If the @queryType@ used to create @queryPool@ was+--     @VK_QUERY_TYPE_TIMESTAMP@, @flags@ /must/ not contain+--     @VK_QUERY_RESULT_PARTIAL_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @queryPool@ /must/ be a valid @VkQueryPool@ handle+--+-- -   @dstBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits' values+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   Each of @commandBuffer@, @dstBuffer@, and @queryPool@ /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        | Transfer        |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@,+-- 'Graphics.Vulkan.Core10.Query.VkQueryPool',+-- 'Graphics.Vulkan.Core10.Query.VkQueryResultFlags'+foreign import ccall "vkCmdCopyQueryPoolResults" vkCmdCopyQueryPoolResults :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("stride" ::: VkDeviceSize) -> ("flags" ::: VkQueryResultFlags) -> IO ()+-- | vkCmdPushConstants - Update the values of push constants+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer in which the push constant+--     update will be recorded.+--+-- -   @layout@ is the pipeline layout used to program the push constant+--     updates.+--+-- -   @stageFlags@ is a bitmask of+--     'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits' specifying+--     the shader stages that will use the push constants in the updated+--     range.+--+-- -   @offset@ is the start offset of the push constant range to update,+--     in units of bytes.+--+-- -   @size@ is the size of the push constant range to update, in units of+--     bytes.+--+-- -   @pValues@ is an array of @size@ bytes containing the new push+--     constant values.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   For each byte in the range specified by @offset@ and @size@ and for+--     each shader stage in @stageFlags@, there /must/ be a push constant+--     range in @layout@ that includes that byte and that stage+--+-- -   For each byte in the range specified by @offset@ and @size@ and for+--     each push constant range that overlaps that byte, @stageFlags@+--     /must/ include all stages in that push constant range’s+--     'Graphics.Vulkan.Core10.PipelineLayout.VkPushConstantRange'::@stageFlags@+--+-- -   @offset@ /must/ be a multiple of @4@+--+-- -   @size@ /must/ be a multiple of @4@+--+-- -   @offset@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxPushConstantsSize@+--+-- -   @size@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxPushConstantsSize@ minus @offset@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @layout@ /must/ be a valid @VkPipelineLayout@ handle+--+-- -   @stageFlags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits' values+--+-- -   @stageFlags@ /must/ not be @0@+--+-- -   @pValues@ /must/ be a valid pointer to an array of @size@ bytes+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   @size@ /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and @layout@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineLayout',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkShaderStageFlags'+foreign import ccall "vkCmdPushConstants" vkCmdPushConstants :: ("commandBuffer" ::: VkCommandBuffer) -> ("layout" ::: VkPipelineLayout) -> ("stageFlags" ::: VkShaderStageFlags) -> ("offset" ::: Word32) -> ("size" ::: Word32) -> ("pValues" ::: Ptr ()) -> IO ()+-- | vkCmdBeginRenderPass - Begin a new render pass+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer in which to record the+--     command.+--+-- -   @pRenderPassBegin@ is a pointer to a 'VkRenderPassBeginInfo'+--     structure (defined below) which specifies the render pass to begin+--     an instance of, and the framebuffer the instance uses.+--+-- -   @contents@ is a 'VkSubpassContents' value specifying how the+--     commands in the first subpass will be provided.+--+-- = Description+-- #_description#+--+-- After beginning a render pass instance, the command buffer is ready to+-- record the commands for the first subpass of that render pass.+--+-- == Valid Usage+--+-- -   If any of the @initialLayout@ or @finalLayout@ member of the+--     @VkAttachmentDescription@ structures or the @layout@ member of the+--     @VkAttachmentReference@ structures specified when creating the+--     render pass specified in the @renderPass@ member of+--     @pRenderPassBegin@ is @VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL@+--     then the corresponding attachment image subresource of the+--     framebuffer specified in the @framebuffer@ member of+--     @pRenderPassBegin@ /must/ have been created with+--     @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@ set+--+-- -   If any of the @initialLayout@ or @finalLayout@ member of the+--     @VkAttachmentDescription@ structures or the @layout@ member of the+--     @VkAttachmentReference@ structures specified when creating the+--     render pass specified in the @renderPass@ member of+--     @pRenderPassBegin@ is+--     @VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL@, or+--     @VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL@ then the+--     corresponding attachment image subresource of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@+--     set+--+-- -   If any of the @initialLayout@ or @finalLayout@ member of the+--     @VkAttachmentDescription@ structures or the @layout@ member of the+--     @VkAttachmentReference@ structures specified when creating the+--     render pass specified in the @renderPass@ member of+--     @pRenderPassBegin@ is @VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL@+--     then the corresponding attachment image subresource of the+--     framebuffer specified in the @framebuffer@ member of+--     @pRenderPassBegin@ /must/ have been created with+--     @VK_IMAGE_USAGE_SAMPLED_BIT@ or+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@ set+--+-- -   If any of the @initialLayout@ or @finalLayout@ member of the+--     @VkAttachmentDescription@ structures or the @layout@ member of the+--     @VkAttachmentReference@ structures specified when creating the+--     render pass specified in the @renderPass@ member of+--     @pRenderPassBegin@ is @VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL@ then+--     the corresponding attachment image subresource of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with @VK_IMAGE_USAGE_TRANSFER_SRC_BIT@ set+--+-- -   If any of the @initialLayout@ or @finalLayout@ member of the+--     @VkAttachmentDescription@ structures or the @layout@ member of the+--     @VkAttachmentReference@ structures specified when creating the+--     render pass specified in the @renderPass@ member of+--     @pRenderPassBegin@ is @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ then+--     the corresponding attachment image subresource of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ set+--+-- -   If any of the @initialLayout@ members of the+--     @VkAttachmentDescription@ structures specified when creating the+--     render pass specified in the @renderPass@ member of+--     @pRenderPassBegin@ is not @VK_IMAGE_LAYOUT_UNDEFINED@, then each+--     such @initialLayout@ /must/ be equal to the current layout of the+--     corresponding attachment image subresource of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@+--+-- -   The @srcStageMask@ and @dstStageMask@ members of any element of the+--     @pDependencies@ member of+--     'Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo' used to create+--     @renderPass@ /must/ be supported by the capabilities of the queue+--     family identified by the @queueFamilyIndex@ member of the+--     'Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo' used to+--     create the command pool which @commandBuffer@ was allocated from.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pRenderPassBegin@ /must/ be a valid pointer to a valid+--     @VkRenderPassBeginInfo@ structure+--+-- -   @contents@ /must/ be a valid 'VkSubpassContents' value+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called outside of a render pass instance+--+-- -   @commandBuffer@ /must/ be a primary @VkCommandBuffer@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Outside         | Graphics        | Graphics        |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', 'VkRenderPassBeginInfo',+-- 'VkSubpassContents'+foreign import ccall "vkCmdBeginRenderPass" vkCmdBeginRenderPass :: ("commandBuffer" ::: VkCommandBuffer) -> ("pRenderPassBegin" ::: Ptr VkRenderPassBeginInfo) -> ("contents" ::: VkSubpassContents) -> IO ()+-- | vkCmdNextSubpass - Transition to the next subpass of a render pass+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer in which to record the+--     command.+--+-- -   @contents@ specifies how the commands in the next subpass will be+--     provided, in the same fashion as the corresponding parameter of+--     'vkCmdBeginRenderPass'.+--+-- = Description+-- #_description#+--+-- The subpass index for a render pass begins at zero when+-- @vkCmdBeginRenderPass@ is recorded, and increments each time+-- @vkCmdNextSubpass@ is recorded.+--+-- Moving to the next subpass automatically performs any multisample+-- resolve operations in the subpass being ended. End-of-subpass+-- multisample resolves are treated as color attachment writes for the+-- purposes of synchronization. That is, they are considered to execute in+-- the @VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT@ pipeline stage and+-- their writes are synchronized with+-- @VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT@. Synchronization between+-- rendering within a subpass and any resolve operations at the end of the+-- subpass occurs automatically, without need for explicit dependencies or+-- pipeline barriers. However, if the resolve attachment is also used in a+-- different subpass, an explicit dependency is needed.+--+-- After transitioning to the next subpass, the application /can/ record+-- the commands for that subpass.+--+-- == Valid Usage+--+-- -   The current subpass index /must/ be less than the number of+--     subpasses in the render pass minus one+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @contents@ /must/ be a valid 'VkSubpassContents' value+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- -   @commandBuffer@ /must/ be a primary @VkCommandBuffer@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', 'VkSubpassContents'+foreign import ccall "vkCmdNextSubpass" vkCmdNextSubpass :: ("commandBuffer" ::: VkCommandBuffer) -> ("contents" ::: VkSubpassContents) -> IO ()+-- | vkCmdEndRenderPass - End the current render pass+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer in which to end the current+--     render pass instance.+--+-- = Description+-- #_description#+--+-- Ending a render pass instance performs any multisample resolve+-- operations on the final subpass.+--+-- == Valid Usage+--+-- -   The current subpass index /must/ be equal to the number of subpasses+--     in the render pass minus one+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- -   @commandBuffer@ /must/ be a primary @VkCommandBuffer@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdEndRenderPass" vkCmdEndRenderPass :: ("commandBuffer" ::: VkCommandBuffer) -> IO ()+-- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary+-- command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is a handle to a primary command buffer that the+--     secondary command buffers are executed in.+--+-- -   @commandBufferCount@ is the length of the @pCommandBuffers@ array.+--+-- -   @pCommandBuffers@ is an array of secondary command buffer handles,+--     which are recorded to execute in the primary command buffer in the+--     order they are listed in the array.+--+-- = Description+-- #_description#+--+-- If any element of @pCommandBuffers@ was not recorded with the+-- @VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT@ flag, and it was recorded+-- into any other primary command buffer which is currently in the+-- <{html_spec_relative}#commandbuffers-lifecycle executable or recording state>,+-- that primary command buffer becomes+-- <{html_spec_relative}#commandbuffers-lifecycle invalid>.+--+-- == Valid Usage+--+-- -   @commandBuffer@ /must/ have been allocated with a @level@ of+--     @VK_COMMAND_BUFFER_LEVEL_PRIMARY@+--+-- -   Each element of @pCommandBuffers@ /must/ have been allocated with a+--     @level@ of @VK_COMMAND_BUFFER_LEVEL_SECONDARY@+--+-- -   Each element of @pCommandBuffers@ /must/ be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending or executable state>.+--+-- -   If any element of @pCommandBuffers@ was not recorded with the+--     @VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT@ flag, and it was+--     recorded into any other primary command buffer, that primary command+--     buffer /must/ not be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending state>+--+-- -   If any element of @pCommandBuffers@ was not recorded with the+--     @VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT@ flag, it /must/ not+--     be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending state>.+--+-- -   If any element of @pCommandBuffers@ was not recorded with the+--     @VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT@ flag, it /must/ not+--     have already been recorded to @commandBuffer@.+--+-- -   If any element of @pCommandBuffers@ was not recorded with the+--     @VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT@ flag, it /must/ not+--     appear more than once in @pCommandBuffers@.+--+-- -   Each element of @pCommandBuffers@ /must/ have been allocated from a+--     @VkCommandPool@ that was created for the same queue family as the+--     @VkCommandPool@ from which @commandBuffer@ was allocated+--+-- -   If @vkCmdExecuteCommands@ is being called within a render pass+--     instance, that render pass instance /must/ have been begun with the+--     @contents@ parameter of @vkCmdBeginRenderPass@ set to+--     @VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS@+--+-- -   If @vkCmdExecuteCommands@ is being called within a render pass+--     instance, each element of @pCommandBuffers@ /must/ have been+--     recorded with the @VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT@+--+-- -   If @vkCmdExecuteCommands@ is being called within a render pass+--     instance, each element of @pCommandBuffers@ /must/ have been+--     recorded with @VkCommandBufferInheritanceInfo@::@subpass@ set to the+--     index of the subpass which the given command buffer will be executed+--     in+--+-- -   If @vkCmdExecuteCommands@ is being called within a render pass+--     instance, the render passes specified in the+--     pname::pBeginInfo::@pInheritanceInfo@::@renderPass@ members of the+--     'Graphics.Vulkan.Core10.CommandBuffer.vkBeginCommandBuffer' commands+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     <{html_spec_relative}#renderpass-compatibility compatible> with the+--     current render pass.+--+-- -   If @vkCmdExecuteCommands@ is being called within a render pass+--     instance, and any element of @pCommandBuffers@ was recorded with+--     @VkCommandBufferInheritanceInfo@::@framebuffer@ not equal to+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', that+--     @VkFramebuffer@ /must/ match the @VkFramebuffer@ used in the current+--     render pass instance+--+-- -   If @vkCmdExecuteCommands@ is not being called within a render pass+--     instance, each element of @pCommandBuffers@ /must/ not have been+--     recorded with the @VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-inheritedQueries inherited queries>+--     feature is not enabled, @commandBuffer@ /must/ not have any queries+--     <{html_spec_relative}#queries-operation-active active>+--+-- -   If @commandBuffer@ has a @VK_QUERY_TYPE_OCCLUSION@ query+--     <{html_spec_relative}#queries-operation-active active>, then each+--     element of @pCommandBuffers@ /must/ have been recorded with+--     @VkCommandBufferInheritanceInfo@::@occlusionQueryEnable@ set to+--     @VK_TRUE@+--+-- -   If @commandBuffer@ has a @VK_QUERY_TYPE_OCCLUSION@ query+--     <{html_spec_relative}#queries-operation-active active>, then each+--     element of @pCommandBuffers@ /must/ have been recorded with+--     @VkCommandBufferInheritanceInfo@::@queryFlags@ having all bits set+--     that are set for the query+--+-- -   If @commandBuffer@ has a @VK_QUERY_TYPE_PIPELINE_STATISTICS@ query+--     <{html_spec_relative}#queries-operation-active active>, then each+--     element of @pCommandBuffers@ /must/ have been recorded with+--     @VkCommandBufferInheritanceInfo@::@pipelineStatistics@ having all+--     bits set that are set in the @VkQueryPool@ the query uses+--+-- -   Each element of @pCommandBuffers@ /must/ not begin any query types+--     that are <{html_spec_relative}#queries-operation-active active> in+--     @commandBuffer@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pCommandBuffers@ /must/ be a valid pointer to an array of+--     @commandBufferCount@ valid @VkCommandBuffer@ handles+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- -   @commandBuffer@ /must/ be a primary @VkCommandBuffer@+--+-- -   @commandBufferCount@ /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and the elements of @pCommandBuffers@+--     /must/ have been created, allocated, or retrieved from the same+--     @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Transfer        |                 |+-- > |                 |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdExecuteCommands" vkCmdExecuteCommands :: ("commandBuffer" ::: VkCommandBuffer) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO ()+-- | VkClearRect - Structure specifying a clear rectangle+--+-- = Description+-- #_description#+--+-- The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting+-- from the base layer of the attachment image view are cleared.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pipeline.VkRect2D', 'vkCmdClearAttachments'+data VkClearRect = VkClearRect+  { -- No documentation found for Nested "VkClearRect" "vkRect"+  vkRect :: VkRect2D+  , -- No documentation found for Nested "VkClearRect" "vkBaseArrayLayer"+  vkBaseArrayLayer :: Word32+  , -- No documentation found for Nested "VkClearRect" "vkLayerCount"+  vkLayerCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkClearRect where+  sizeOf ~_ = 24+  alignment ~_ = 4+  peek ptr = VkClearRect <$> peek (ptr `plusPtr` 0)+                         <*> peek (ptr `plusPtr` 16)+                         <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkRect (poked :: VkClearRect))+                *> poke (ptr `plusPtr` 16) (vkBaseArrayLayer (poked :: VkClearRect))+                *> poke (ptr `plusPtr` 20) (vkLayerCount (poked :: VkClearRect))+-- | VkImageSubresourceLayers - Structure specifying a image subresource+-- layers+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @aspectMask@ contains @VK_IMAGE_ASPECT_COLOR_BIT@, it /must/ not+--     contain either of @VK_IMAGE_ASPECT_DEPTH_BIT@ or+--     @VK_IMAGE_ASPECT_STENCIL_BIT@+--+-- -   @aspectMask@ /must/ not contain @VK_IMAGE_ASPECT_METADATA_BIT@+--+-- -   @layerCount@ /must/ be greater than 0+--+-- == Valid Usage (Implicit)+--+-- -   @aspectMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits'+--     values+--+-- -   @aspectMask@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkBufferImageCopy',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlags',+-- 'VkImageBlit', 'VkImageCopy', 'VkImageResolve'+data VkImageSubresourceLayers = VkImageSubresourceLayers+  { -- No documentation found for Nested "VkImageSubresourceLayers" "vkAspectMask"+  vkAspectMask :: VkImageAspectFlags+  , -- No documentation found for Nested "VkImageSubresourceLayers" "vkMipLevel"+  vkMipLevel :: Word32+  , -- No documentation found for Nested "VkImageSubresourceLayers" "vkBaseArrayLayer"+  vkBaseArrayLayer :: Word32+  , -- No documentation found for Nested "VkImageSubresourceLayers" "vkLayerCount"+  vkLayerCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkImageSubresourceLayers where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek ptr = VkImageSubresourceLayers <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 4)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 12)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresourceLayers))+                *> poke (ptr `plusPtr` 4) (vkMipLevel (poked :: VkImageSubresourceLayers))+                *> poke (ptr `plusPtr` 8) (vkBaseArrayLayer (poked :: VkImageSubresourceLayers))+                *> poke (ptr `plusPtr` 12) (vkLayerCount (poked :: VkImageSubresourceLayers))+-- | VkMemoryBarrier - Structure specifying a global memory barrier+--+-- = Description+-- #_description#+--+-- The first+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access types in the+-- <{html_spec_relative}#synchronization-access-masks source access mask>+-- specified by @srcAccessMask@.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access types in the+-- <{html_spec_relative}#synchronization-access-masks destination access mask>+-- specified by @dstAccessMask@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_MEMORY_BARRIER@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @srcAccessMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pass.VkAccessFlagBits' values+--+-- -   @dstAccessMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pass.VkAccessFlagBits' values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pass.VkAccessFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCmdPipelineBarrier',+-- 'vkCmdWaitEvents'+data VkMemoryBarrier = VkMemoryBarrier+  { -- No documentation found for Nested "VkMemoryBarrier" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryBarrier" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryBarrier" "vkSrcAccessMask"+  vkSrcAccessMask :: VkAccessFlags+  , -- No documentation found for Nested "VkMemoryBarrier" "vkDstAccessMask"+  vkDstAccessMask :: VkAccessFlags+  }+  deriving (Eq, Show)++instance Storable VkMemoryBarrier where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMemoryBarrier <$> peek (ptr `plusPtr` 0)+                             <*> peek (ptr `plusPtr` 8)+                             <*> peek (ptr `plusPtr` 16)+                             <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryBarrier))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryBarrier))+                *> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkMemoryBarrier))+                *> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkMemoryBarrier))+-- | VkBufferMemoryBarrier - Structure specifying a buffer memory barrier+--+-- = Description+-- #_description#+--+-- The first+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access to memory through the specified buffer range, via+-- access types in the+-- <{html_spec_relative}#synchronization-access-masks source access mask>+-- specified by @srcAccessMask@. If @srcAccessMask@ includes+-- @VK_ACCESS_HOST_WRITE_BIT@, memory writes performed by that access type+-- are also made visible, as that access type is not performed through a+-- resource.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access to memory through the specified buffer range, via+-- access types in the+-- <{html_spec_relative}#synchronization-access-masks destination access mask>.+-- specified by @dstAccessMask@. If @dstAccessMask@ includes+-- @VK_ACCESS_HOST_WRITE_BIT@ or @VK_ACCESS_HOST_READ_BIT@, available+-- memory writes are also made visible to accesses of those types, as those+-- access types are not performed through a resource.+--+-- If @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, and+-- @srcQueueFamilyIndex@ is equal to the current queue family, then the+-- memory barrier defines a+-- <{html_spec_relative}#synchronization-queue-transfers-release queue family release operation>+-- for the specified buffer range, and the second access scope includes no+-- access, as if @dstAccessMask@ was @0@.+--+-- If @dstQueueFamilyIndex@ is not equal to @srcQueueFamilyIndex@, and+-- @dstQueueFamilyIndex@ is equal to the current queue family, then the+-- memory barrier defines a+-- <{html_spec_relative}#synchronization-queue-transfers-acquire queue family acquire operation>+-- for the specified buffer range, and the first access scope includes no+-- access, as if @srcAccessMask@ was @0@.+--+-- == Valid Usage+--+-- -   @offset@ /must/ be less than the size of @buffer@+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @size@ /must/ be greater+--     than @0@+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @size@ /must/ be less+--     than or equal to than the size of @buffer@ minus @offset@+--+-- -   If @buffer@ was created with a sharing mode of+--     @VK_SHARING_MODE_CONCURRENT@, @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ /must/ both be @VK_QUEUE_FAMILY_IGNORED@+--+-- -   If @buffer@ was created with a sharing mode of+--     @VK_SHARING_MODE_EXCLUSIVE@, @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ /must/ either both be+--     @VK_QUEUE_FAMILY_IGNORED@, or both be a valid queue family (see+--     <{html_spec_relative}#devsandqueues-queueprops {html_spec_relative}#devsandqueues-queueprops>)+--+-- -   If @buffer@ was created with a sharing mode of+--     @VK_SHARING_MODE_EXCLUSIVE@, and @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ are not @VK_QUEUE_FAMILY_IGNORED@, at least+--     one of them /must/ be the same as the family of the queue that will+--     execute this barrier+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @srcAccessMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pass.VkAccessFlagBits' values+--+-- -   @dstAccessMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pass.VkAccessFlagBits' values+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pass.VkAccessFlags',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer', @VkDeviceSize@,+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCmdPipelineBarrier',+-- 'vkCmdWaitEvents'+data VkBufferMemoryBarrier = VkBufferMemoryBarrier+  { -- No documentation found for Nested "VkBufferMemoryBarrier" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBufferMemoryBarrier" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBufferMemoryBarrier" "vkSrcAccessMask"+  vkSrcAccessMask :: VkAccessFlags+  , -- No documentation found for Nested "VkBufferMemoryBarrier" "vkDstAccessMask"+  vkDstAccessMask :: VkAccessFlags+  , -- No documentation found for Nested "VkBufferMemoryBarrier" "vkSrcQueueFamilyIndex"+  vkSrcQueueFamilyIndex :: Word32+  , -- No documentation found for Nested "VkBufferMemoryBarrier" "vkDstQueueFamilyIndex"+  vkDstQueueFamilyIndex :: Word32+  , -- No documentation found for Nested "VkBufferMemoryBarrier" "vkBuffer"+  vkBuffer :: VkBuffer+  , -- No documentation found for Nested "VkBufferMemoryBarrier" "vkOffset"+  vkOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkBufferMemoryBarrier" "vkSize"+  vkSize :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkBufferMemoryBarrier where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkBufferMemoryBarrier <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+                                   <*> peek (ptr `plusPtr` 20)+                                   <*> peek (ptr `plusPtr` 24)+                                   <*> peek (ptr `plusPtr` 28)+                                   <*> peek (ptr `plusPtr` 32)+                                   <*> peek (ptr `plusPtr` 40)+                                   <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferMemoryBarrier))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferMemoryBarrier))+                *> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkBufferMemoryBarrier))+                *> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkBufferMemoryBarrier))+                *> poke (ptr `plusPtr` 24) (vkSrcQueueFamilyIndex (poked :: VkBufferMemoryBarrier))+                *> poke (ptr `plusPtr` 28) (vkDstQueueFamilyIndex (poked :: VkBufferMemoryBarrier))+                *> poke (ptr `plusPtr` 32) (vkBuffer (poked :: VkBufferMemoryBarrier))+                *> poke (ptr `plusPtr` 40) (vkOffset (poked :: VkBufferMemoryBarrier))+                *> poke (ptr `plusPtr` 48) (vkSize (poked :: VkBufferMemoryBarrier))+-- | VkImageMemoryBarrier - Structure specifying the parameters of an image+-- memory barrier+--+-- = Description+-- #_description#+--+-- The first+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access to memory through the specified image subresource+-- range, via access types in the+-- <{html_spec_relative}#synchronization-access-masks source access mask>+-- specified by @srcAccessMask@. If @srcAccessMask@ includes+-- @VK_ACCESS_HOST_WRITE_BIT@, memory writes performed by that access type+-- are also made visible, as that access type is not performed through a+-- resource.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access to memory through the specified image subresource+-- range, via access types in the+-- <{html_spec_relative}#synchronization-access-masks destination access mask>+-- specified by @dstAccessMask@. If @dstAccessMask@ includes+-- @VK_ACCESS_HOST_WRITE_BIT@ or @VK_ACCESS_HOST_READ_BIT@, available+-- memory writes are also made visible to accesses of those types, as those+-- access types are not performed through a resource.+--+-- If @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, and+-- @srcQueueFamilyIndex@ is equal to the current queue family, then the+-- memory barrier defines a+-- <{html_spec_relative}#synchronization-queue-transfers-release queue family release operation>+-- for the specified image subresource range, and the second access scope+-- includes no access, as if @dstAccessMask@ was @0@.+--+-- If @dstQueueFamilyIndex@ is not equal to @srcQueueFamilyIndex@, and+-- @dstQueueFamilyIndex@ is equal to the current queue family, then the+-- memory barrier defines a+-- <{html_spec_relative}#synchronization-queue-transfers-acquire queue family acquire operation>+-- for the specified image subresource range, and the first access scope+-- includes no access, as if @srcAccessMask@ was @0@.+--+-- If @oldLayout@ is not equal to @newLayout@, then the memory barrier+-- defines an+-- <{html_spec_relative}#synchronization-image-layout-transitions image layout transition>+-- for the specified image subresource range.+--+-- Layout transitions that are performed via image memory barriers execute+-- in their entirety in+-- <{html_spec_relative}#synchronization-submission-order submission order>,+-- relative to other image layout transitions submitted to the same queue,+-- including those performed by+-- <{html_spec_relative}#renderpass render passes>. In effect there is an+-- implicit execution dependency from each such layout transition to all+-- layout transitions previously submitted to the same queue.+--+-- == Valid Usage+--+-- -   @oldLayout@ /must/ be @VK_IMAGE_LAYOUT_UNDEFINED@ or the current+--     layout of the image subresources affected by the barrier+--+-- -   @newLayout@ /must/ not be @VK_IMAGE_LAYOUT_UNDEFINED@ or+--     @VK_IMAGE_LAYOUT_PREINITIALIZED@+--+-- -   If @image@ was created with a sharing mode of+--     @VK_SHARING_MODE_CONCURRENT@, @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ /must/ both be @VK_QUEUE_FAMILY_IGNORED@+--+-- -   If @image@ was created with a sharing mode of+--     @VK_SHARING_MODE_EXCLUSIVE@, @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ /must/ either both be+--     @VK_QUEUE_FAMILY_IGNORED@, or both be a valid queue family (see+--     <{html_spec_relative}#devsandqueues-queueprops {html_spec_relative}#devsandqueues-queueprops>).+--+-- -   If @image@ was created with a sharing mode of+--     @VK_SHARING_MODE_EXCLUSIVE@, and @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ are not @VK_QUEUE_FAMILY_IGNORED@, at least+--     one of them /must/ be the same as the family of the queue that will+--     execute this barrier+--+-- -   @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@+--     specified in 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when+--     @image@ was created+--+-- -   If @subresourceRange.levelCount@ is not @VK_REMAINING_MIP_LEVELS@,+--     @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@+--     /must/ be less than or equal to the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   @subresourceRange.baseArrayLayer@ /must/ be less than the+--     @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   If @subresourceRange.layerCount@ is not @VK_REMAINING_ARRAY_LAYERS@,+--     @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@+--     /must/ be less than or equal to the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   If @image@ has a depth\/stencil format with both depth and stencil+--     components, then the @aspectMask@ member of @subresourceRange@+--     /must/ include both @VK_IMAGE_ASPECT_DEPTH_BIT@ and+--     @VK_IMAGE_ASPECT_STENCIL_BIT@+--+-- -   If either @oldLayout@ or @newLayout@ is+--     @VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL@ then @image@ /must/ have+--     been created with @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@ set+--+-- -   If either @oldLayout@ or @newLayout@ is+--     @VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL@ then @image@+--     /must/ have been created with+--     @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@ set+--+-- -   If either @oldLayout@ or @newLayout@ is+--     @VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL@ then @image@+--     /must/ have been created with+--     @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@ set+--+-- -   If either @oldLayout@ or @newLayout@ is+--     @VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL@ then @image@ /must/ have+--     been created with @VK_IMAGE_USAGE_SAMPLED_BIT@ or+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@ set+--+-- -   If either @oldLayout@ or @newLayout@ is+--     @VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL@ then @image@ /must/ have been+--     created with @VK_IMAGE_USAGE_TRANSFER_SRC_BIT@ set+--+-- -   If either @oldLayout@ or @newLayout@ is+--     @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ then @image@ /must/ have been+--     created with @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ set+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT'+--+-- -   @srcAccessMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pass.VkAccessFlagBits' values+--+-- -   @dstAccessMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pass.VkAccessFlagBits' values+--+-- -   @oldLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @newLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @subresourceRange@ /must/ be a valid @VkImageSubresourceRange@+--     structure+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pass.VkAccessFlags',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCmdPipelineBarrier',+-- 'vkCmdWaitEvents'+data VkImageMemoryBarrier = VkImageMemoryBarrier+  { -- No documentation found for Nested "VkImageMemoryBarrier" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkSrcAccessMask"+  vkSrcAccessMask :: VkAccessFlags+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkDstAccessMask"+  vkDstAccessMask :: VkAccessFlags+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkOldLayout"+  vkOldLayout :: VkImageLayout+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkNewLayout"+  vkNewLayout :: VkImageLayout+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkSrcQueueFamilyIndex"+  vkSrcQueueFamilyIndex :: Word32+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkDstQueueFamilyIndex"+  vkDstQueueFamilyIndex :: Word32+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkImage"+  vkImage :: VkImage+  , -- No documentation found for Nested "VkImageMemoryBarrier" "vkSubresourceRange"+  vkSubresourceRange :: VkImageSubresourceRange+  }+  deriving (Eq, Show)++instance Storable VkImageMemoryBarrier where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkImageMemoryBarrier <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 20)+                                  <*> peek (ptr `plusPtr` 24)+                                  <*> peek (ptr `plusPtr` 28)+                                  <*> peek (ptr `plusPtr` 32)+                                  <*> peek (ptr `plusPtr` 36)+                                  <*> peek (ptr `plusPtr` 40)+                                  <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 24) (vkOldLayout (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 28) (vkNewLayout (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 32) (vkSrcQueueFamilyIndex (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 36) (vkDstQueueFamilyIndex (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 40) (vkImage (poked :: VkImageMemoryBarrier))+                *> poke (ptr `plusPtr` 48) (vkSubresourceRange (poked :: VkImageMemoryBarrier))+-- | VkBufferCopy - Structure specifying a buffer copy operation+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@, 'vkCmdCopyBuffer'+data VkBufferCopy = VkBufferCopy+  { -- No documentation found for Nested "VkBufferCopy" "vkSrcOffset"+  vkSrcOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkBufferCopy" "vkDstOffset"+  vkDstOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkBufferCopy" "vkSize"+  vkSize :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkBufferCopy where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkBufferCopy <$> peek (ptr `plusPtr` 0)+                          <*> peek (ptr `plusPtr` 8)+                          <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcOffset (poked :: VkBufferCopy))+                *> poke (ptr `plusPtr` 8) (vkDstOffset (poked :: VkBufferCopy))+                *> poke (ptr `plusPtr` 16) (vkSize (poked :: VkBufferCopy))+-- | VkImageCopy - Structure specifying an image copy operation+--+-- = Description+-- #_description#+--+-- Copies are done layer by layer starting with @baseArrayLayer@ member of+-- @srcSubresource@ for the source and @dstSubresource@ for the+-- destination. @layerCount@ layers are copied to the destination image.+--+-- == Valid Usage+--+-- -   The @aspectMask@ member of @srcSubresource@ and @dstSubresource@+--     /must/ match+--+-- -   The @layerCount@ member of @srcSubresource@ and @dstSubresource@+--     /must/ match+--+-- -   If either of the calling command’s @srcImage@ or @dstImage@+--     parameters are of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType'+--     @VK_IMAGE_TYPE_3D@, the @baseArrayLayer@ and @layerCount@ members of+--     both @srcSubresource@ and @dstSubresource@ /must/ be @0@ and @1@,+--     respectively+--+-- -   The @aspectMask@ member of @srcSubresource@ /must/ specify aspects+--     present in the calling command’s @srcImage@+--+-- -   The @aspectMask@ member of @dstSubresource@ /must/ specify aspects+--     present in the calling command’s @dstImage@+--+-- -   @srcOffset.x@ and (@extent.width@ + @srcOffset.x@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the source+--     image subresource width+--+-- -   @srcOffset.y@ and (@extent.height@ + @srcOffset.y@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the source+--     image subresource height+--+-- -   If the calling command’s @srcImage@ is of type @VK_IMAGE_TYPE_1D@,+--     then @srcOffset.y@ /must/ be @0@ and @extent.height@ /must/ be @1@.+--+-- -   @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the source+--     image subresource depth+--+-- -   If the calling command’s @srcImage@ is of type @VK_IMAGE_TYPE_1D@,+--     then @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/ be @1@.+--+-- -   If the calling command’s @dstImage@ is of type @VK_IMAGE_TYPE_1D@,+--     then @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/ be @1@.+--+-- -   If the calling command’s @srcImage@ is of type @VK_IMAGE_TYPE_2D@,+--     then @srcOffset.z@ /must/ be @0@.+--+-- -   If the calling command’s @dstImage@ is of type @VK_IMAGE_TYPE_2D@,+--     then @dstOffset.z@ /must/ be @0@.+--+-- -   If the calling command’s @srcImage@ or @dstImage@ is of type+--     @VK_IMAGE_TYPE_2D@, then @extent.depth@ /must/ be @1@.+--+-- -   @dstOffset.x@ and (@extent.width@ + @dstOffset.x@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the+--     destination image subresource width+--+-- -   @dstOffset.y@ and (@extent.height@ + @dstOffset.y@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the+--     destination image subresource height+--+-- -   If the calling command’s @dstImage@ is of type @VK_IMAGE_TYPE_1D@,+--     then @dstOffset.y@ /must/ be @0@ and @extent.height@ /must/ be @1@.+--+-- -   @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the+--     destination image subresource depth+--+-- -   If the calling command’s @srcImage@ is a compressed image, all+--     members of @srcOffset@ /must/ be a multiple of the corresponding+--     dimensions of the compressed texel block+--+-- -   If the calling command’s @srcImage@ is a compressed image,+--     @extent.width@ /must/ be a multiple of the compressed texel block+--     width or (@extent.width@ + @srcOffset.x@) /must/ equal the source+--     image subresource width+--+-- -   If the calling command’s @srcImage@ is a compressed image,+--     @extent.height@ /must/ be a multiple of the compressed texel block+--     height or (@extent.height@ + @srcOffset.y@) /must/ equal the source+--     image subresource height+--+-- -   If the calling command’s @srcImage@ is a compressed image,+--     @extent.depth@ /must/ be a multiple of the compressed texel block+--     depth or (@extent.depth@ + @srcOffset.z@) /must/ equal the source+--     image subresource depth+--+-- -   If the calling command’s @dstImage@ is a compressed format image,+--     all members of @dstOffset@ /must/ be a multiple of the corresponding+--     dimensions of the compressed texel block+--+-- -   If the calling command’s @dstImage@ is a compressed format image,+--     @extent.width@ /must/ be a multiple of the compressed texel block+--     width or (@extent.width@ + @dstOffset.x@) /must/ equal the+--     destination image subresource width+--+-- -   If the calling command’s @dstImage@ is a compressed format image,+--     @extent.height@ /must/ be a multiple of the compressed texel block+--     height or (@extent.height@ + @dstOffset.y@) /must/ equal the+--     destination image subresource height+--+-- -   If the calling command’s @dstImage@ is a compressed format image,+--     @extent.depth@ /must/ be a multiple of the compressed texel block+--     depth or (@extent.depth@ + @dstOffset.z@) /must/ equal the+--     destination image subresource depth+--+-- == Valid Usage (Implicit)+--+-- -   @srcSubresource@ /must/ be a valid @VkImageSubresourceLayers@+--     structure+--+-- -   @dstSubresource@ /must/ be a valid @VkImageSubresourceLayers@+--     structure+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D',+-- 'VkImageSubresourceLayers',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D',+-- 'vkCmdCopyImage'+data VkImageCopy = VkImageCopy+  { -- No documentation found for Nested "VkImageCopy" "vkSrcSubresource"+  vkSrcSubresource :: VkImageSubresourceLayers+  , -- No documentation found for Nested "VkImageCopy" "vkSrcOffset"+  vkSrcOffset :: VkOffset3D+  , -- No documentation found for Nested "VkImageCopy" "vkDstSubresource"+  vkDstSubresource :: VkImageSubresourceLayers+  , -- No documentation found for Nested "VkImageCopy" "vkDstOffset"+  vkDstOffset :: VkOffset3D+  , -- No documentation found for Nested "VkImageCopy" "vkExtent"+  vkExtent :: VkExtent3D+  }+  deriving (Eq, Show)++instance Storable VkImageCopy where+  sizeOf ~_ = 68+  alignment ~_ = 4+  peek ptr = VkImageCopy <$> peek (ptr `plusPtr` 0)+                         <*> peek (ptr `plusPtr` 16)+                         <*> peek (ptr `plusPtr` 28)+                         <*> peek (ptr `plusPtr` 44)+                         <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageCopy))+                *> poke (ptr `plusPtr` 16) (vkSrcOffset (poked :: VkImageCopy))+                *> poke (ptr `plusPtr` 28) (vkDstSubresource (poked :: VkImageCopy))+                *> poke (ptr `plusPtr` 44) (vkDstOffset (poked :: VkImageCopy))+                *> poke (ptr `plusPtr` 56) (vkExtent (poked :: VkImageCopy))+-- | VkImageBlit - Structure specifying an image blit operation+--+-- = Description+-- #_description#+--+-- For each element of the @pRegions@ array, a blit operation is performed+-- the specified source and destination regions.+--+-- == Valid Usage+--+-- -   The @aspectMask@ member of @srcSubresource@ and @dstSubresource@+--     /must/ match+--+-- -   The @layerCount@ member of @srcSubresource@ and @dstSubresource@+--     /must/ match+--+-- -   If either of the calling command’s @srcImage@ or @dstImage@+--     parameters are of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType'+--     @VK_IMAGE_TYPE_3D@, the @baseArrayLayer@ and @layerCount@ members of+--     both @srcSubresource@ and @dstSubresource@ /must/ be @0@ and @1@,+--     respectively+--+-- -   The @aspectMask@ member of @srcSubresource@ /must/ specify aspects+--     present in the calling command’s @srcImage@+--+-- -   The @aspectMask@ member of @dstSubresource@ /must/ specify aspects+--     present in the calling command’s @dstImage@+--+-- -   @srcOffset@[0].@x@ and @srcOffset@[1].@x@ /must/ both be greater+--     than or equal to @0@ and less than or equal to the source image+--     subresource width+--+-- -   @srcOffset@[0].@y@ and @srcOffset@[1].@y@ /must/ both be greater+--     than or equal to @0@ and less than or equal to the source image+--     subresource height+--+-- -   If the calling command’s @srcImage@ is of type @VK_IMAGE_TYPE_1D@,+--     then @srcOffset@[0].y /must/ be @0@ and @srcOffset@[1].y /must/ be+--     @1@.+--+-- -   @srcOffset@[0].@z@ and @srcOffset@[1].@z@ /must/ both be greater+--     than or equal to @0@ and less than or equal to the source image+--     subresource depth+--+-- -   If the calling command’s @srcImage@ is of type @VK_IMAGE_TYPE_1D@ or+--     @VK_IMAGE_TYPE_2D@, then @srcOffset@[0].z /must/ be @0@ and+--     @srcOffset@[1].z /must/ be @1@.+--+-- -   @dstOffset@[0].@x@ and @dstOffset@[1].@x@ /must/ both be greater+--     than or equal to @0@ and less than or equal to the destination image+--     subresource width+--+-- -   @dstOffset@[0].@y@ and @dstOffset@[1].@y@ /must/ both be greater+--     than or equal to @0@ and less than or equal to the destination image+--     subresource height+--+-- -   If the calling command’s @dstImage@ is of type @VK_IMAGE_TYPE_1D@,+--     then @dstOffset@[0].y /must/ be @0@ and @dstOffset@[1].y /must/ be+--     @1@.+--+-- -   @dstOffset@[0].@z@ and @dstOffset@[1].@z@ /must/ both be greater+--     than or equal to @0@ and less than or equal to the destination image+--     subresource depth+--+-- -   If the calling command’s @dstImage@ is of type @VK_IMAGE_TYPE_1D@ or+--     @VK_IMAGE_TYPE_2D@, then @dstOffset@[0].z /must/ be @0@ and+--     @dstOffset@[1].z /must/ be @1@.+--+-- == Valid Usage (Implicit)+--+-- -   @srcSubresource@ /must/ be a valid @VkImageSubresourceLayers@+--     structure+--+-- -   @dstSubresource@ /must/ be a valid @VkImageSubresourceLayers@+--     structure+--+-- = See Also+-- #_see_also#+--+-- 'VkImageSubresourceLayers',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D',+-- 'vkCmdBlitImage'+data VkImageBlit = VkImageBlit+  { -- No documentation found for Nested "VkImageBlit" "vkSrcSubresource"+  vkSrcSubresource :: VkImageSubresourceLayers+  , -- No documentation found for Nested "VkImageBlit" "vkSrcOffsets"+  vkSrcOffsets :: Vector 2 VkOffset3D+  , -- No documentation found for Nested "VkImageBlit" "vkDstSubresource"+  vkDstSubresource :: VkImageSubresourceLayers+  , -- No documentation found for Nested "VkImageBlit" "vkDstOffsets"+  vkDstOffsets :: Vector 2 VkOffset3D+  }+  deriving (Eq, Show)++instance Storable VkImageBlit where+  sizeOf ~_ = 80+  alignment ~_ = 4+  peek ptr = VkImageBlit <$> peek (ptr `plusPtr` 0)+                         <*> peek (ptr `plusPtr` 16)+                         <*> peek (ptr `plusPtr` 40)+                         <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageBlit))+                *> poke (ptr `plusPtr` 16) (vkSrcOffsets (poked :: VkImageBlit))+                *> poke (ptr `plusPtr` 40) (vkDstSubresource (poked :: VkImageBlit))+                *> poke (ptr `plusPtr` 56) (vkDstOffsets (poked :: VkImageBlit))+-- | VkBufferImageCopy - Structure specifying a buffer image copy operation+--+-- = Description+-- #_description#+--+-- When copying to or from a depth or stencil aspect, the data in buffer+-- memory uses a layout that is a (mostly) tightly packed representation of+-- the depth or stencil data. Specifically:+--+-- -   data copied to or from the stencil aspect of any depth\/stencil+--     format is tightly packed with one @VK_FORMAT_S8_UINT@ value per+--     texel.+--+-- -   data copied to or from the depth aspect of a @VK_FORMAT_D16_UNORM@+--     or @VK_FORMAT_D16_UNORM_S8_UINT@ format is tightly packed with one+--     @VK_FORMAT_D16_UNORM@ value per texel.+--+-- -   data copied to or from the depth aspect of a @VK_FORMAT_D32_SFLOAT@+--     or @VK_FORMAT_D32_SFLOAT_S8_UINT@ format is tightly packed with one+--     @VK_FORMAT_D32_SFLOAT@ value per texel.+--+-- -   data copied to or from the depth aspect of a+--     @VK_FORMAT_X8_D24_UNORM_PACK32@ or @VK_FORMAT_D24_UNORM_S8_UINT@+--     format is packed with one 32-bit word per texel with the D24 value+--     in the LSBs of the word, and undefined values in the eight MSBs.+--+-- __Note__+--+-- To copy both the depth and stencil aspects of a depth\/stencil format,+-- two entries in @pRegions@ /can/ be used, where one specifies the depth+-- aspect in @imageSubresource@, and the other specifies the stencil+-- aspect.+--+-- Because depth or stencil aspect buffer to image copies /may/ require+-- format conversions on some implementations, they are not supported on+-- queues that do not support graphics. When copying to a depth aspect, the+-- data in buffer memory /must/ be in the the range [0,1] or undefined+-- results occur.+--+-- Copies are done layer by layer starting with image layer+-- @baseArrayLayer@ member of @imageSubresource@. @layerCount@ layers are+-- copied from the source image or to the destination image.+--+-- == Valid Usage+--+-- -   If the calling command’s @VkImage@ parameter’s format is not a+--     depth\/stencil format, then @bufferOffset@ /must/ be a multiple of+--     the format’s element size+--+-- -   @bufferOffset@ /must/ be a multiple of @4@+--+-- -   @bufferRowLength@ /must/ be @0@, or greater than or equal to the+--     @width@ member of @imageExtent@+--+-- -   @bufferImageHeight@ /must/ be @0@, or greater than or equal to the+--     @height@ member of @imageExtent@+--+-- -   @imageOffset.x@ and (@imageExtent.width@ + @imageOffset.x@) /must/+--     both be greater than or equal to @0@ and less than or equal to the+--     image subresource width+--+-- -   @imageOffset.y@ and (imageExtent.height + @imageOffset.y@) /must/+--     both be greater than or equal to @0@ and less than or equal to the+--     image subresource height+--+-- -   If the calling command’s @srcImage@ ('vkCmdCopyImageToBuffer') or+--     @dstImage@ ('vkCmdCopyBufferToImage') is of type @VK_IMAGE_TYPE_1D@,+--     then @imageOffset.y@ /must/ be @0@ and @imageExtent.height@ /must/+--     be @1@.+--+-- -   @imageOffset.z@ and (imageExtent.depth + @imageOffset.z@) /must/+--     both be greater than or equal to @0@ and less than or equal to the+--     image subresource depth+--+-- -   If the calling command’s @srcImage@ ('vkCmdCopyImageToBuffer') or+--     @dstImage@ ('vkCmdCopyBufferToImage') is of type @VK_IMAGE_TYPE_1D@+--     or @VK_IMAGE_TYPE_2D@, then @imageOffset.z@ /must/ be @0@ and+--     @imageExtent.depth@ /must/ be @1@+--+-- -   If the calling command’s @VkImage@ parameter is a compressed image,+--     @bufferRowLength@ /must/ be a multiple of the compressed texel block+--     width+--+-- -   If the calling command’s @VkImage@ parameter is a compressed image,+--     @bufferImageHeight@ /must/ be a multiple of the compressed texel+--     block height+--+-- -   If the calling command’s @VkImage@ parameter is a compressed image,+--     all members of @imageOffset@ /must/ be a multiple of the+--     corresponding dimensions of the compressed texel block+--+-- -   If the calling command’s @VkImage@ parameter is a compressed image,+--     @bufferOffset@ /must/ be a multiple of the compressed texel block+--     size in bytes+--+-- -   If the calling command’s @VkImage@ parameter is a compressed image,+--     @imageExtent.width@ /must/ be a multiple of the compressed texel+--     block width or (@imageExtent.width@ + @imageOffset.x@) /must/ equal+--     the image subresource width+--+-- -   If the calling command’s @VkImage@ parameter is a compressed image,+--     @imageExtent.height@ /must/ be a multiple of the compressed texel+--     block height or (@imageExtent.height@ + @imageOffset.y@) /must/+--     equal the image subresource height+--+-- -   If the calling command’s @VkImage@ parameter is a compressed image,+--     @imageExtent.depth@ /must/ be a multiple of the compressed texel+--     block depth or (@imageExtent.depth@ + @imageOffset.z@) /must/ equal+--     the image subresource depth+--+-- -   The @aspectMask@ member of @imageSubresource@ /must/ specify aspects+--     present in the calling command’s @VkImage@ parameter+--+-- -   The @aspectMask@ member of @imageSubresource@ /must/ only have a+--     single bit set+--+-- -   If the calling command’s @VkImage@ parameter is of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType'+--     @VK_IMAGE_TYPE_3D@, the @baseArrayLayer@ and @layerCount@ members of+--     @imageSubresource@ /must/ be @0@ and @1@, respectively+--+-- -   When copying to the depth aspect of an image subresource, the data+--     in the source buffer /must/ be in the range [0,1]+--+-- == Valid Usage (Implicit)+--+-- -   @imageSubresource@ /must/ be a valid @VkImageSubresourceLayers@+--     structure+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@,+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D',+-- 'VkImageSubresourceLayers',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D',+-- 'vkCmdCopyBufferToImage', 'vkCmdCopyImageToBuffer'+data VkBufferImageCopy = VkBufferImageCopy+  { -- No documentation found for Nested "VkBufferImageCopy" "vkBufferOffset"+  vkBufferOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkBufferImageCopy" "vkBufferRowLength"+  vkBufferRowLength :: Word32+  , -- No documentation found for Nested "VkBufferImageCopy" "vkBufferImageHeight"+  vkBufferImageHeight :: Word32+  , -- No documentation found for Nested "VkBufferImageCopy" "vkImageSubresource"+  vkImageSubresource :: VkImageSubresourceLayers+  , -- No documentation found for Nested "VkBufferImageCopy" "vkImageOffset"+  vkImageOffset :: VkOffset3D+  , -- No documentation found for Nested "VkBufferImageCopy" "vkImageExtent"+  vkImageExtent :: VkExtent3D+  }+  deriving (Eq, Show)++instance Storable VkBufferImageCopy where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkBufferImageCopy <$> peek (ptr `plusPtr` 0)+                               <*> peek (ptr `plusPtr` 8)+                               <*> peek (ptr `plusPtr` 12)+                               <*> peek (ptr `plusPtr` 16)+                               <*> peek (ptr `plusPtr` 32)+                               <*> peek (ptr `plusPtr` 44)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkBufferOffset (poked :: VkBufferImageCopy))+                *> poke (ptr `plusPtr` 8) (vkBufferRowLength (poked :: VkBufferImageCopy))+                *> poke (ptr `plusPtr` 12) (vkBufferImageHeight (poked :: VkBufferImageCopy))+                *> poke (ptr `plusPtr` 16) (vkImageSubresource (poked :: VkBufferImageCopy))+                *> poke (ptr `plusPtr` 32) (vkImageOffset (poked :: VkBufferImageCopy))+                *> poke (ptr `plusPtr` 44) (vkImageExtent (poked :: VkBufferImageCopy))+-- | VkImageResolve - Structure specifying an image resolve operation+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The @aspectMask@ member of @srcSubresource@ and @dstSubresource@+--     /must/ only contain @VK_IMAGE_ASPECT_COLOR_BIT@+--+-- -   The @layerCount@ member of @srcSubresource@ and @dstSubresource@+--     /must/ match+--+-- -   If either of the calling command’s @srcImage@ or @dstImage@+--     parameters are of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType'+--     @VK_IMAGE_TYPE_3D@, the @baseArrayLayer@ and @layerCount@ members of+--     both @srcSubresource@ and @dstSubresource@ /must/ be @0@ and @1@,+--     respectively+--+-- -   @srcOffset.x@ and (@extent.width@ + @srcOffset.x@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the source+--     image subresource width+--+-- -   @srcOffset.y@ and (@extent.height@ + @srcOffset.y@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the source+--     image subresource height+--+-- -   If the calling command’s @srcImage@ is of type @VK_IMAGE_TYPE_1D@,+--     then @srcOffset.y@ /must/ be @0@ and @extent.height@ /must/ be @1@.+--+-- -   @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the source+--     image subresource depth+--+-- -   If the calling command’s @srcImage@ is of type @VK_IMAGE_TYPE_1D@ or+--     @VK_IMAGE_TYPE_2D@, then @srcOffset.z@ /must/ be @0@ and+--     @extent.depth@ /must/ be @1@.+--+-- -   @dstOffset.x@ and (@extent.width@ + @dstOffset.x@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the+--     destination image subresource width+--+-- -   @dstOffset.y@ and (@extent.height@ + @dstOffset.y@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the+--     destination image subresource height+--+-- -   If the calling command’s @dstImage@ is of type @VK_IMAGE_TYPE_1D@,+--     then @dstOffset.y@ /must/ be @0@ and @extent.height@ /must/ be @1@.+--+-- -   @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@) /must/ both be+--     greater than or equal to @0@ and less than or equal to the+--     destination image subresource depth+--+-- -   If the calling command’s @dstImage@ is of type @VK_IMAGE_TYPE_1D@ or+--     @VK_IMAGE_TYPE_2D@, then @dstOffset.z@ /must/ be @0@ and+--     @extent.depth@ /must/ be @1@.+--+-- == Valid Usage (Implicit)+--+-- -   @srcSubresource@ /must/ be a valid @VkImageSubresourceLayers@+--     structure+--+-- -   @dstSubresource@ /must/ be a valid @VkImageSubresourceLayers@+--     structure+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D',+-- 'VkImageSubresourceLayers',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D',+-- 'vkCmdResolveImage'+data VkImageResolve = VkImageResolve+  { -- No documentation found for Nested "VkImageResolve" "vkSrcSubresource"+  vkSrcSubresource :: VkImageSubresourceLayers+  , -- No documentation found for Nested "VkImageResolve" "vkSrcOffset"+  vkSrcOffset :: VkOffset3D+  , -- No documentation found for Nested "VkImageResolve" "vkDstSubresource"+  vkDstSubresource :: VkImageSubresourceLayers+  , -- No documentation found for Nested "VkImageResolve" "vkDstOffset"+  vkDstOffset :: VkOffset3D+  , -- No documentation found for Nested "VkImageResolve" "vkExtent"+  vkExtent :: VkExtent3D+  }+  deriving (Eq, Show)++instance Storable VkImageResolve where+  sizeOf ~_ = 68+  alignment ~_ = 4+  peek ptr = VkImageResolve <$> peek (ptr `plusPtr` 0)+                            <*> peek (ptr `plusPtr` 16)+                            <*> peek (ptr `plusPtr` 28)+                            <*> peek (ptr `plusPtr` 44)+                            <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageResolve))+                *> poke (ptr `plusPtr` 16) (vkSrcOffset (poked :: VkImageResolve))+                *> poke (ptr `plusPtr` 28) (vkDstSubresource (poked :: VkImageResolve))+                *> poke (ptr `plusPtr` 44) (vkDstOffset (poked :: VkImageResolve))+                *> poke (ptr `plusPtr` 56) (vkExtent (poked :: VkImageResolve))+-- | VkRenderPassBeginInfo - Structure specifying render pass begin info+--+-- = Description+-- #_description#+--+-- @renderArea@ is the render area that is affected by the render pass+-- instance. The effects of attachment load, store and multisample resolve+-- operations are restricted to the pixels whose x and y coordinates fall+-- within the render area on all attachments. The render area extends to+-- all layers of @framebuffer@. The application /must/ ensure (using+-- scissor if necessary) that all rendering is contained within the render+-- area, otherwise the pixels outside of the render area become undefined+-- and shader side effects /may/ occur for fragments outside the render+-- area. The render area /must/ be contained within the framebuffer+-- dimensions.+--+-- __Note__+--+-- There /may/ be a performance cost for using a render area smaller than+-- the framebuffer, unless it matches the render area granularity for the+-- render pass.+--+-- == Valid Usage+--+-- -   @clearValueCount@ /must/ be greater than the largest attachment+--     index in @renderPass@ that specifies a @loadOp@ (or @stencilLoadOp@,+--     if the attachment has a depth\/stencil format) of+--     @VK_ATTACHMENT_LOAD_OP_CLEAR@+--+-- -   If @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid+--     pointer to an array of @clearValueCount@ valid @VkClearValue@ unions+--+-- -   @renderPass@ /must/ be+--     <{html_spec_relative}#renderpass-compatibility compatible> with the+--     @renderPass@ member of the @VkFramebufferCreateInfo@ structure+--     specified when creating @framebuffer@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo'+--     or+--     'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkRenderPassSampleLocationsBeginInfoEXT'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @renderPass@ /must/ be a valid @VkRenderPass@ handle+--+-- -   @framebuffer@ /must/ be a valid @VkFramebuffer@ handle+--+-- -   Both of @framebuffer@, and @renderPass@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'VkClearValue', 'Graphics.Vulkan.Core10.Pass.VkFramebuffer',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRect2D',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRenderPass',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCmdBeginRenderPass'+data VkRenderPassBeginInfo = VkRenderPassBeginInfo+  { -- No documentation found for Nested "VkRenderPassBeginInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkRenderPassBeginInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkRenderPassBeginInfo" "vkRenderPass"+  vkRenderPass :: VkRenderPass+  , -- No documentation found for Nested "VkRenderPassBeginInfo" "vkFramebuffer"+  vkFramebuffer :: VkFramebuffer+  , -- No documentation found for Nested "VkRenderPassBeginInfo" "vkRenderArea"+  vkRenderArea :: VkRect2D+  , -- No documentation found for Nested "VkRenderPassBeginInfo" "vkClearValueCount"+  vkClearValueCount :: Word32+  , -- No documentation found for Nested "VkRenderPassBeginInfo" "vkPClearValues"+  vkPClearValues :: Ptr VkClearValue+  }+  deriving (Eq, Show)++instance Storable VkRenderPassBeginInfo where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkRenderPassBeginInfo <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+                                   <*> peek (ptr `plusPtr` 24)+                                   <*> peek (ptr `plusPtr` 32)+                                   <*> peek (ptr `plusPtr` 48)+                                   <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 16) (vkRenderPass (poked :: VkRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 24) (vkFramebuffer (poked :: VkRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 32) (vkRenderArea (poked :: VkRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 48) (vkClearValueCount (poked :: VkRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 56) (vkPClearValues (poked :: VkRenderPassBeginInfo))+-- | VkClearDepthStencilValue - Structure specifying a clear depth stencil+-- value+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @depth@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- = See Also+-- #_see_also#+--+-- 'VkClearValue', 'vkCmdClearDepthStencilImage'+data VkClearDepthStencilValue = VkClearDepthStencilValue+  { -- No documentation found for Nested "VkClearDepthStencilValue" "vkDepth"+  vkDepth :: CFloat+  , -- No documentation found for Nested "VkClearDepthStencilValue" "vkStencil"+  vkStencil :: Word32+  }+  deriving (Eq, Show)++instance Storable VkClearDepthStencilValue where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkClearDepthStencilValue <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkDepth (poked :: VkClearDepthStencilValue))+                *> poke (ptr `plusPtr` 4) (vkStencil (poked :: VkClearDepthStencilValue))+-- | VkClearAttachment - Structure specifying a clear attachment+--+-- = Description+-- #_description#+--+-- No memory barriers are needed between @vkCmdClearAttachments@ and+-- preceding or subsequent draw or attachment clear commands in the same+-- subpass.+--+-- The @vkCmdClearAttachments@ command is not affected by the bound+-- pipeline state.+--+-- Attachments /can/ also be cleared at the beginning of a render pass+-- instance by setting @loadOp@ (or @stencilLoadOp@) of+-- 'Graphics.Vulkan.Core10.Pass.VkAttachmentDescription' to+-- @VK_ATTACHMENT_LOAD_OP_CLEAR@, as described for+-- 'Graphics.Vulkan.Core10.Pass.vkCreateRenderPass'.+--+-- == Valid Usage+--+-- -   If @aspectMask@ includes @VK_IMAGE_ASPECT_COLOR_BIT@, it /must/ not+--     include @VK_IMAGE_ASPECT_DEPTH_BIT@ or @VK_IMAGE_ASPECT_STENCIL_BIT@+--+-- -   @aspectMask@ /must/ not include @VK_IMAGE_ASPECT_METADATA_BIT@+--+-- -   @clearValue@ /must/ be a valid @VkClearValue@ union+--+-- == Valid Usage (Implicit)+--+-- -   @aspectMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits'+--     values+--+-- -   @aspectMask@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkClearValue',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlags',+-- 'vkCmdClearAttachments'+data VkClearAttachment = VkClearAttachment+  { -- No documentation found for Nested "VkClearAttachment" "vkAspectMask"+  vkAspectMask :: VkImageAspectFlags+  , -- No documentation found for Nested "VkClearAttachment" "vkColorAttachment"+  vkColorAttachment :: Word32+  , -- No documentation found for Nested "VkClearAttachment" "vkClearValue"+  vkClearValue :: VkClearValue+  }+  deriving (Eq, Show)++instance Storable VkClearAttachment where+  sizeOf ~_ = 24+  alignment ~_ = 4+  peek ptr = VkClearAttachment <$> peek (ptr `plusPtr` 0)+                               <*> peek (ptr `plusPtr` 4)+                               <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkClearAttachment))+                *> poke (ptr `plusPtr` 4) (vkColorAttachment (poked :: VkClearAttachment))+                *> poke (ptr `plusPtr` 8) (vkClearValue (poked :: VkClearAttachment))+-- | VkDrawIndirectCommand - Structure specifying a draw indirect command+--+-- = Description+-- #_description#+--+-- The members of @VkDrawIndirectCommand@ have the same meaning as the+-- similarly named parameters of 'vkCmdDraw'.+--+-- == Valid Usage+--+-- -   For a given vertex buffer binding, any attribute data fetched /must/+--     be entirely contained within the corresponding vertex buffer+--     binding, as described in+--     <{html_spec_relative}#fxvertex-input {html_spec_relative}#fxvertex-input>+--+-- -   If the+--     <{html_spec_relative}#features-features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     feature is not enabled, @firstInstance@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'vkCmdDrawIndirect'+data VkDrawIndirectCommand = VkDrawIndirectCommand+  { -- No documentation found for Nested "VkDrawIndirectCommand" "vkVertexCount"+  vkVertexCount :: Word32+  , -- No documentation found for Nested "VkDrawIndirectCommand" "vkInstanceCount"+  vkInstanceCount :: Word32+  , -- No documentation found for Nested "VkDrawIndirectCommand" "vkFirstVertex"+  vkFirstVertex :: Word32+  , -- No documentation found for Nested "VkDrawIndirectCommand" "vkFirstInstance"+  vkFirstInstance :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDrawIndirectCommand where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek ptr = VkDrawIndirectCommand <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 4)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 12)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkVertexCount (poked :: VkDrawIndirectCommand))+                *> poke (ptr `plusPtr` 4) (vkInstanceCount (poked :: VkDrawIndirectCommand))+                *> poke (ptr `plusPtr` 8) (vkFirstVertex (poked :: VkDrawIndirectCommand))+                *> poke (ptr `plusPtr` 12) (vkFirstInstance (poked :: VkDrawIndirectCommand))+-- | VkDrawIndexedIndirectCommand - Structure specifying a draw indexed+-- indirect command+--+-- = Description+-- #_description#+--+-- The members of @VkDrawIndexedIndirectCommand@ have the same meaning as+-- the similarly named parameters of 'vkCmdDrawIndexed'.+--+-- == Valid Usage+--+-- -   For a given vertex buffer binding, any attribute data fetched /must/+--     be entirely contained within the corresponding vertex buffer+--     binding, as described in+--     <{html_spec_relative}#fxvertex-input {html_spec_relative}#fxvertex-input>+--+-- -   (@indexSize@ * (@firstIndex@ + @indexCount@) + @offset@) /must/ be+--     less than or equal to the size of the bound index buffer, with+--     @indexSize@ being based on the type specified by @indexType@, where+--     the index buffer, @indexType@, and @offset@ are specified via+--     @vkCmdBindIndexBuffer@+--+-- -   If the+--     <{html_spec_relative}#features-features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     feature is not enabled, @firstInstance@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'vkCmdDrawIndexedIndirect'+data VkDrawIndexedIndirectCommand = VkDrawIndexedIndirectCommand+  { -- No documentation found for Nested "VkDrawIndexedIndirectCommand" "vkIndexCount"+  vkIndexCount :: Word32+  , -- No documentation found for Nested "VkDrawIndexedIndirectCommand" "vkInstanceCount"+  vkInstanceCount :: Word32+  , -- No documentation found for Nested "VkDrawIndexedIndirectCommand" "vkFirstIndex"+  vkFirstIndex :: Word32+  , -- No documentation found for Nested "VkDrawIndexedIndirectCommand" "vkVertexOffset"+  vkVertexOffset :: Int32+  , -- No documentation found for Nested "VkDrawIndexedIndirectCommand" "vkFirstInstance"+  vkFirstInstance :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDrawIndexedIndirectCommand where+  sizeOf ~_ = 20+  alignment ~_ = 4+  peek ptr = VkDrawIndexedIndirectCommand <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 4)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 12)+                                          <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkIndexCount (poked :: VkDrawIndexedIndirectCommand))+                *> poke (ptr `plusPtr` 4) (vkInstanceCount (poked :: VkDrawIndexedIndirectCommand))+                *> poke (ptr `plusPtr` 8) (vkFirstIndex (poked :: VkDrawIndexedIndirectCommand))+                *> poke (ptr `plusPtr` 12) (vkVertexOffset (poked :: VkDrawIndexedIndirectCommand))+                *> poke (ptr `plusPtr` 16) (vkFirstInstance (poked :: VkDrawIndexedIndirectCommand))+-- | VkDispatchIndirectCommand - Structure specifying a dispatch indirect+-- command+--+-- = Description+-- #_description#+--+-- The members of @VkDispatchIndirectCommand@ have the same meaning as the+-- corresponding parameters of 'vkCmdDispatch'.+--+-- == Valid Usage+--+-- -   @x@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxComputeWorkGroupCount@[0]+--+-- -   @y@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxComputeWorkGroupCount@[1]+--+-- -   @z@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxComputeWorkGroupCount@[2]+--+-- = See Also+-- #_see_also#+--+-- 'vkCmdDispatchIndirect'+data VkDispatchIndirectCommand = VkDispatchIndirectCommand+  { -- No documentation found for Nested "VkDispatchIndirectCommand" "vkX"+  vkX :: Word32+  , -- No documentation found for Nested "VkDispatchIndirectCommand" "vkY"+  vkY :: Word32+  , -- No documentation found for Nested "VkDispatchIndirectCommand" "vkZ"+  vkZ :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDispatchIndirectCommand where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkDispatchIndirectCommand <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 4)+                                       <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkDispatchIndirectCommand))+                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkDispatchIndirectCommand))+                *> poke (ptr `plusPtr` 8) (vkZ (poked :: VkDispatchIndirectCommand))+-- | VkClearColorValue - Structure specifying a clear color value+--+-- = Description+-- #_description#+--+-- The four array elements of the clear color map to R, G, B, and A+-- components of image formats, in order.+--+-- If the image has more than one sample, the same value is written to all+-- samples for any pixels being cleared.+--+-- = See Also+-- #_see_also#+--+-- 'VkClearValue', 'vkCmdClearColorImage'+data VkClearColorValue+  = -- No documentation found for Nested "VkClearColorValue" "VkFloat32"+  VkFloat32 (Vector 4 CFloat)+  | -- No documentation found for Nested "VkClearColorValue" "VkInt32"+  VkInt32 (Vector 4 Int32)+  | -- No documentation found for Nested "VkClearColorValue" "VkUint32"+  VkUint32 (Vector 4 Word32)+  deriving (Eq, Show)++-- | _Note_: peek is undefined as we wouldn't know which constructor to use+instance Storable VkClearColorValue where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek _   = error "peek @VkClearColorValue"+  poke ptr = \case+    VkFloat32 e -> poke (castPtr ptr) e+    VkInt32 e -> poke (castPtr ptr) e+    VkUint32 e -> poke (castPtr ptr) e+-- | VkClearValue - Structure specifying a clear value+--+-- = Description+-- #_description#+--+-- This union is used where part of the API requires either color or+-- depth\/stencil clear values, depending on the attachment, and defines+-- the initial clear values in the 'VkRenderPassBeginInfo' structure.+--+-- == Valid Usage+--+-- -   @depthStencil@ /must/ be a valid @VkClearDepthStencilValue@+--     structure+--+-- = See Also+-- #_see_also#+--+-- 'VkClearAttachment', 'VkClearColorValue', 'VkClearDepthStencilValue',+-- 'VkRenderPassBeginInfo'+data VkClearValue+  = -- No documentation found for Nested "VkClearValue" "VkColor"+  VkColor VkClearColorValue+  | -- No documentation found for Nested "VkClearValue" "VkDepthStencil"+  VkDepthStencil VkClearDepthStencilValue+  deriving (Eq, Show)++-- | _Note_: peek is undefined as we wouldn't know which constructor to use+instance Storable VkClearValue where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek _   = error "peek @VkClearValue"+  poke ptr = \case+    VkColor e -> poke (castPtr ptr) e+    VkDepthStencil e -> poke (castPtr ptr) e+-- | VkStencilFaceFlags - Bitmask of VkStencilFaceFlagBits+--+-- = Description+-- #_description#+--+-- @VkStencilFaceFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkStencilFaceFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkStencilFaceFlagBits', 'vkCmdSetStencilCompareMask',+-- 'vkCmdSetStencilReference', 'vkCmdSetStencilWriteMask'+type VkStencilFaceFlags = VkStencilFaceFlagBits
+ src/Graphics/Vulkan/Core10/CommandPool.hs view
@@ -0,0 +1,416 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.CommandPool+  ( VkCommandPoolCreateFlagBits(..)+  , pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT+  , pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT+  , VkCommandPoolResetFlagBits(..)+  , pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT+  , VkCommandPool+  , vkCreateCommandPool+  , vkDestroyCommandPool+  , vkResetCommandPool+  , VkCommandPoolCreateInfo(..)+  , VkCommandPoolCreateFlags+  , VkCommandPoolResetFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+++-- ** VkCommandPoolCreateFlagBits++-- | VkCommandPoolCreateFlagBits - Bitmask specifying usage behavior for a+-- command pool+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandPoolCreateFlags'+newtype VkCommandPoolCreateFlagBits = VkCommandPoolCreateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkCommandPoolCreateFlagBits where+  showsPrec _ VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = showString "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"+  showsPrec _ VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = showString "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkCommandPoolCreateFlagBits 0x00000004) = showString "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"+  showsPrec p (VkCommandPoolCreateFlagBits x) = showParen (p >= 11) (showString "VkCommandPoolCreateFlagBits " . showsPrec 11 x)++instance Read VkCommandPoolCreateFlagBits where+  readPrec = parens ( choose [ ("VK_COMMAND_POOL_CREATE_TRANSIENT_BIT",            pure VK_COMMAND_POOL_CREATE_TRANSIENT_BIT)+                             , ("VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT", pure VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_COMMAND_POOL_CREATE_PROTECTED_BIT", pure (VkCommandPoolCreateFlagBits 0x00000004))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCommandPoolCreateFlagBits")+                        v <- step readPrec+                        pure (VkCommandPoolCreateFlagBits v)+                        )+                    )++-- | @VK_COMMAND_POOL_CREATE_TRANSIENT_BIT@ specifies that command buffers+-- allocated from the pool will be short-lived, meaning that they will be+-- reset or freed in a relatively short timeframe. This flag /may/ be used+-- by the implementation to control memory allocation behavior within the+-- pool.+pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT :: VkCommandPoolCreateFlagBits+pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = VkCommandPoolCreateFlagBits 0x00000001++-- | @VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT@ allows any command+-- buffer allocated from a pool to be individually reset to the+-- <{html_spec_relative}#commandbuffers-lifecycle initial state>; either by+-- calling 'Graphics.Vulkan.Core10.CommandBuffer.vkResetCommandBuffer', or+-- via the implicit reset when calling+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkBeginCommandBuffer'. If this+-- flag is not set on a pool, then @vkResetCommandBuffer@ /must/ not be+-- called for any command buffer allocated from that pool.+pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT :: VkCommandPoolCreateFlagBits+pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = VkCommandPoolCreateFlagBits 0x00000002+-- ** VkCommandPoolResetFlagBits++-- | VkCommandPoolResetFlagBits - Bitmask controlling behavior of a command+-- pool reset+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandPoolResetFlags'+newtype VkCommandPoolResetFlagBits = VkCommandPoolResetFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkCommandPoolResetFlagBits where+  showsPrec _ VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = showString "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"+  showsPrec p (VkCommandPoolResetFlagBits x) = showParen (p >= 11) (showString "VkCommandPoolResetFlagBits " . showsPrec 11 x)++instance Read VkCommandPoolResetFlagBits where+  readPrec = parens ( choose [ ("VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT", pure VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCommandPoolResetFlagBits")+                        v <- step readPrec+                        pure (VkCommandPoolResetFlagBits v)+                        )+                    )++-- | @VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT@ specifies that resetting a+-- command pool recycles all of the resources from the command pool back to+-- the system.+pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT :: VkCommandPoolResetFlagBits+pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = VkCommandPoolResetFlagBits 0x00000001+-- | Dummy data to tag the 'Ptr' with+data VkCommandPool_T+-- | VkCommandPool - Opaque handle to a command pool object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferAllocateInfo',+-- 'vkCreateCommandPool', 'vkDestroyCommandPool',+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkFreeCommandBuffers',+-- 'vkResetCommandPool',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.vkTrimCommandPool',+-- 'Graphics.Vulkan.Extensions.VK_KHR_maintenance1.vkTrimCommandPoolKHR'+type VkCommandPool = Ptr VkCommandPool_T+-- | vkCreateCommandPool - Create a new command pool object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the command pool.+--+-- -   @pCreateInfo@ contains information used to create the command pool.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pCommandPool@ points to a @VkCommandPool@ handle in which the+--     created pool is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkCommandPoolCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pCommandPool@ /must/ be a valid pointer to a @VkCommandPool@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkCommandPool', 'VkCommandPoolCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkCreateCommandPool" vkCreateCommandPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkCommandPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pCommandPool" ::: Ptr VkCommandPool) -> IO VkResult+-- | vkDestroyCommandPool - Destroy a command pool object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the command pool.+--+-- -   @commandPool@ is the handle of the command pool to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- When a pool is destroyed, all command buffers allocated from the pool+-- are <{html_spec_relative}#vkFreeCommandBuffers freed>.+--+-- Any primary command buffer allocated from another 'VkCommandPool' that+-- is in the+-- <{html_spec_relative}#commandbuffers-lifecycle recording or executable state>+-- and has a secondary command buffer allocated from @commandPool@ recorded+-- into it, becomes+-- <{html_spec_relative}#commandbuffers-lifecycle invalid>.+--+-- == Valid Usage+--+-- -   All @VkCommandBuffer@ objects allocated from @commandPool@ /must/+--     not be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending state>.+--+-- -   If @VkAllocationCallbacks@ were provided when @commandPool@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @commandPool@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @commandPool@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @commandPool@+--     /must/ be a valid @VkCommandPool@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @commandPool@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @commandPool@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkCommandPool', 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDestroyCommandPool" vkDestroyCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkResetCommandPool - Reset a command pool+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the command pool.+--+-- -   @commandPool@ is the command pool to reset.+--+-- -   @flags@ is a bitmask of 'VkCommandPoolResetFlagBits' controlling the+--     reset operation.+--+-- = Description+-- #_description#+--+-- Resetting a command pool recycles all of the resources from all of the+-- command buffers allocated from the command pool back to the command+-- pool. All command buffers that have been allocated from the command pool+-- are put in the+-- <{html_spec_relative}#commandbuffers-lifecycle initial state>.+--+-- Any primary command buffer allocated from another 'VkCommandPool' that+-- is in the+-- <{html_spec_relative}#commandbuffers-lifecycle recording or executable state>+-- and has a secondary command buffer allocated from @commandPool@ recorded+-- into it, becomes+-- <{html_spec_relative}#commandbuffers-lifecycle invalid>.+--+-- == Valid Usage+--+-- -   All @VkCommandBuffer@ objects allocated from @commandPool@ /must/+--     not be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending state>+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @commandPool@ /must/ be a valid @VkCommandPool@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'VkCommandPoolResetFlagBits' values+--+-- -   @commandPool@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @commandPool@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandPool', 'VkCommandPoolResetFlags',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkResetCommandPool" vkResetCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolResetFlags) -> IO VkResult+-- | VkCommandPoolCreateInfo - Structure specifying parameters of a newly+-- created command pool+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be the index of a queue family available+--     in the calling command’s @device@ parameter+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be a valid combination of+--     'VkCommandPoolCreateFlagBits' values+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandPoolCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateCommandPool'+data VkCommandPoolCreateInfo = VkCommandPoolCreateInfo+  { -- No documentation found for Nested "VkCommandPoolCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkCommandPoolCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkCommandPoolCreateInfo" "vkFlags"+  vkFlags :: VkCommandPoolCreateFlags+  , -- No documentation found for Nested "VkCommandPoolCreateInfo" "vkQueueFamilyIndex"+  vkQueueFamilyIndex :: Word32+  }+  deriving (Eq, Show)++instance Storable VkCommandPoolCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkCommandPoolCreateInfo <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandPoolCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandPoolCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkCommandPoolCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkQueueFamilyIndex (poked :: VkCommandPoolCreateInfo))+-- | VkCommandPoolCreateFlags - Bitmask of VkCommandPoolCreateFlagBits+--+-- = Description+-- #_description#+--+-- @VkCommandPoolCreateFlags@ is a bitmask type for setting a mask of zero+-- or more 'VkCommandPoolCreateFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandPoolCreateFlagBits', 'VkCommandPoolCreateInfo'+type VkCommandPoolCreateFlags = VkCommandPoolCreateFlagBits+-- | VkCommandPoolResetFlags - Bitmask of VkCommandPoolResetFlagBits+--+-- = Description+-- #_description#+--+-- @VkCommandPoolResetFlags@ is a bitmask type for setting a mask of zero+-- or more 'VkCommandPoolResetFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandPoolResetFlagBits', 'vkResetCommandPool'+type VkCommandPoolResetFlags = VkCommandPoolResetFlagBits
+ src/Graphics/Vulkan/Core10/Constants.hs view
@@ -0,0 +1,120 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language ViewPatterns #-}+{-# language GeneralizedNewtypeDeriving #-}++module Graphics.Vulkan.Core10.Constants+  ( pattern VK_NULL_HANDLE+  , VkPipelineCacheHeaderVersion(..)+  , pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE+  , pattern VK_LOD_CLAMP_NONE+  , pattern VK_REMAINING_MIP_LEVELS+  , pattern VK_REMAINING_ARRAY_LAYERS+  , pattern VK_WHOLE_SIZE+  , pattern VK_ATTACHMENT_UNUSED+  , pattern VK_QUEUE_FAMILY_IGNORED+  , pattern VK_SUBPASS_EXTERNAL+  ) where++import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  , Word64+  )+import Foreign.C.Types+  ( CFloat+  )+import Foreign.Ptr+  ( Ptr+  , nullPtr+  )+import Foreign.Storable+  ( Storable(..)+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )++++++-- | VK_NULL_HANDLE - Reserved non-valid object handle+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- No cross-references are available+pattern VK_NULL_HANDLE :: Ptr a+pattern VK_NULL_HANDLE <- ((== nullPtr) -> True)+  where VK_NULL_HANDLE = nullPtr+-- ** VkPipelineCacheHeaderVersion++-- | VkPipelineCacheHeaderVersion - Encode pipeline cache version+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.PipelineCache.vkCreatePipelineCache',+-- 'Graphics.Vulkan.Core10.PipelineCache.vkGetPipelineCacheData'+newtype VkPipelineCacheHeaderVersion = VkPipelineCacheHeaderVersion Int32+  deriving (Eq, Ord, Storable)++instance Show VkPipelineCacheHeaderVersion where+  showsPrec _ VK_PIPELINE_CACHE_HEADER_VERSION_ONE = showString "VK_PIPELINE_CACHE_HEADER_VERSION_ONE"+  showsPrec p (VkPipelineCacheHeaderVersion x) = showParen (p >= 11) (showString "VkPipelineCacheHeaderVersion " . showsPrec 11 x)++instance Read VkPipelineCacheHeaderVersion where+  readPrec = parens ( choose [ ("VK_PIPELINE_CACHE_HEADER_VERSION_ONE", pure VK_PIPELINE_CACHE_HEADER_VERSION_ONE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineCacheHeaderVersion")+                        v <- step readPrec+                        pure (VkPipelineCacheHeaderVersion v)+                        )+                    )++-- | @VK_PIPELINE_CACHE_HEADER_VERSION_ONE@ specifies version one of the+-- pipeline cache.+pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE :: VkPipelineCacheHeaderVersion+pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE = VkPipelineCacheHeaderVersion 1+-- No documentation found for Nested "CFloat" "VK_LOD_CLAMP_NONE"+pattern VK_LOD_CLAMP_NONE :: CFloat+pattern VK_LOD_CLAMP_NONE = 1000.0+-- No documentation found for Nested "Word32" "VK_REMAINING_MIP_LEVELS"+pattern VK_REMAINING_MIP_LEVELS :: Word32+pattern VK_REMAINING_MIP_LEVELS = 0xffffffff+-- No documentation found for Nested "Word32" "VK_REMAINING_ARRAY_LAYERS"+pattern VK_REMAINING_ARRAY_LAYERS :: Word32+pattern VK_REMAINING_ARRAY_LAYERS = 0xffffffff+-- No documentation found for Nested "Word64" "VK_WHOLE_SIZE"+pattern VK_WHOLE_SIZE :: Word64+pattern VK_WHOLE_SIZE = 0xffffffffffffffff+-- No documentation found for Nested "Word32" "VK_ATTACHMENT_UNUSED"+pattern VK_ATTACHMENT_UNUSED :: Word32+pattern VK_ATTACHMENT_UNUSED = 0xffffffff+-- No documentation found for Nested "Word32" "VK_QUEUE_FAMILY_IGNORED"+pattern VK_QUEUE_FAMILY_IGNORED :: Word32+pattern VK_QUEUE_FAMILY_IGNORED = 0xffffffff+-- No documentation found for Nested "Word32" "VK_SUBPASS_EXTERNAL"+pattern VK_SUBPASS_EXTERNAL :: Word32+pattern VK_SUBPASS_EXTERNAL = 0xffffffff
+ src/Graphics/Vulkan/Core10/Core.hs view
@@ -0,0 +1,3581 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}++module Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , pattern VK_FALSE+  , pattern VK_TRUE+  , VkFormat(..)+  , pattern VK_FORMAT_UNDEFINED+  , pattern VK_FORMAT_R4G4_UNORM_PACK8+  , pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16+  , pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16+  , pattern VK_FORMAT_R5G6B5_UNORM_PACK16+  , pattern VK_FORMAT_B5G6R5_UNORM_PACK16+  , pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16+  , pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16+  , pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16+  , pattern VK_FORMAT_R8_UNORM+  , pattern VK_FORMAT_R8_SNORM+  , pattern VK_FORMAT_R8_USCALED+  , pattern VK_FORMAT_R8_SSCALED+  , pattern VK_FORMAT_R8_UINT+  , pattern VK_FORMAT_R8_SINT+  , pattern VK_FORMAT_R8_SRGB+  , pattern VK_FORMAT_R8G8_UNORM+  , pattern VK_FORMAT_R8G8_SNORM+  , pattern VK_FORMAT_R8G8_USCALED+  , pattern VK_FORMAT_R8G8_SSCALED+  , pattern VK_FORMAT_R8G8_UINT+  , pattern VK_FORMAT_R8G8_SINT+  , pattern VK_FORMAT_R8G8_SRGB+  , pattern VK_FORMAT_R8G8B8_UNORM+  , pattern VK_FORMAT_R8G8B8_SNORM+  , pattern VK_FORMAT_R8G8B8_USCALED+  , pattern VK_FORMAT_R8G8B8_SSCALED+  , pattern VK_FORMAT_R8G8B8_UINT+  , pattern VK_FORMAT_R8G8B8_SINT+  , pattern VK_FORMAT_R8G8B8_SRGB+  , pattern VK_FORMAT_B8G8R8_UNORM+  , pattern VK_FORMAT_B8G8R8_SNORM+  , pattern VK_FORMAT_B8G8R8_USCALED+  , pattern VK_FORMAT_B8G8R8_SSCALED+  , pattern VK_FORMAT_B8G8R8_UINT+  , pattern VK_FORMAT_B8G8R8_SINT+  , pattern VK_FORMAT_B8G8R8_SRGB+  , pattern VK_FORMAT_R8G8B8A8_UNORM+  , pattern VK_FORMAT_R8G8B8A8_SNORM+  , pattern VK_FORMAT_R8G8B8A8_USCALED+  , pattern VK_FORMAT_R8G8B8A8_SSCALED+  , pattern VK_FORMAT_R8G8B8A8_UINT+  , pattern VK_FORMAT_R8G8B8A8_SINT+  , pattern VK_FORMAT_R8G8B8A8_SRGB+  , pattern VK_FORMAT_B8G8R8A8_UNORM+  , pattern VK_FORMAT_B8G8R8A8_SNORM+  , pattern VK_FORMAT_B8G8R8A8_USCALED+  , pattern VK_FORMAT_B8G8R8A8_SSCALED+  , pattern VK_FORMAT_B8G8R8A8_UINT+  , pattern VK_FORMAT_B8G8R8A8_SINT+  , pattern VK_FORMAT_B8G8R8A8_SRGB+  , pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32+  , pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32+  , pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32+  , pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32+  , pattern VK_FORMAT_A8B8G8R8_UINT_PACK32+  , pattern VK_FORMAT_A8B8G8R8_SINT_PACK32+  , pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32+  , pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32+  , pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32+  , pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32+  , pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32+  , pattern VK_FORMAT_A2R10G10B10_UINT_PACK32+  , pattern VK_FORMAT_A2R10G10B10_SINT_PACK32+  , pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32+  , pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32+  , pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32+  , pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32+  , pattern VK_FORMAT_A2B10G10R10_UINT_PACK32+  , pattern VK_FORMAT_A2B10G10R10_SINT_PACK32+  , pattern VK_FORMAT_R16_UNORM+  , pattern VK_FORMAT_R16_SNORM+  , pattern VK_FORMAT_R16_USCALED+  , pattern VK_FORMAT_R16_SSCALED+  , pattern VK_FORMAT_R16_UINT+  , pattern VK_FORMAT_R16_SINT+  , pattern VK_FORMAT_R16_SFLOAT+  , pattern VK_FORMAT_R16G16_UNORM+  , pattern VK_FORMAT_R16G16_SNORM+  , pattern VK_FORMAT_R16G16_USCALED+  , pattern VK_FORMAT_R16G16_SSCALED+  , pattern VK_FORMAT_R16G16_UINT+  , pattern VK_FORMAT_R16G16_SINT+  , pattern VK_FORMAT_R16G16_SFLOAT+  , pattern VK_FORMAT_R16G16B16_UNORM+  , pattern VK_FORMAT_R16G16B16_SNORM+  , pattern VK_FORMAT_R16G16B16_USCALED+  , pattern VK_FORMAT_R16G16B16_SSCALED+  , pattern VK_FORMAT_R16G16B16_UINT+  , pattern VK_FORMAT_R16G16B16_SINT+  , pattern VK_FORMAT_R16G16B16_SFLOAT+  , pattern VK_FORMAT_R16G16B16A16_UNORM+  , pattern VK_FORMAT_R16G16B16A16_SNORM+  , pattern VK_FORMAT_R16G16B16A16_USCALED+  , pattern VK_FORMAT_R16G16B16A16_SSCALED+  , pattern VK_FORMAT_R16G16B16A16_UINT+  , pattern VK_FORMAT_R16G16B16A16_SINT+  , pattern VK_FORMAT_R16G16B16A16_SFLOAT+  , pattern VK_FORMAT_R32_UINT+  , pattern VK_FORMAT_R32_SINT+  , pattern VK_FORMAT_R32_SFLOAT+  , pattern VK_FORMAT_R32G32_UINT+  , pattern VK_FORMAT_R32G32_SINT+  , pattern VK_FORMAT_R32G32_SFLOAT+  , pattern VK_FORMAT_R32G32B32_UINT+  , pattern VK_FORMAT_R32G32B32_SINT+  , pattern VK_FORMAT_R32G32B32_SFLOAT+  , pattern VK_FORMAT_R32G32B32A32_UINT+  , pattern VK_FORMAT_R32G32B32A32_SINT+  , pattern VK_FORMAT_R32G32B32A32_SFLOAT+  , pattern VK_FORMAT_R64_UINT+  , pattern VK_FORMAT_R64_SINT+  , pattern VK_FORMAT_R64_SFLOAT+  , pattern VK_FORMAT_R64G64_UINT+  , pattern VK_FORMAT_R64G64_SINT+  , pattern VK_FORMAT_R64G64_SFLOAT+  , pattern VK_FORMAT_R64G64B64_UINT+  , pattern VK_FORMAT_R64G64B64_SINT+  , pattern VK_FORMAT_R64G64B64_SFLOAT+  , pattern VK_FORMAT_R64G64B64A64_UINT+  , pattern VK_FORMAT_R64G64B64A64_SINT+  , pattern VK_FORMAT_R64G64B64A64_SFLOAT+  , pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32+  , pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32+  , pattern VK_FORMAT_D16_UNORM+  , pattern VK_FORMAT_X8_D24_UNORM_PACK32+  , pattern VK_FORMAT_D32_SFLOAT+  , pattern VK_FORMAT_S8_UINT+  , pattern VK_FORMAT_D16_UNORM_S8_UINT+  , pattern VK_FORMAT_D24_UNORM_S8_UINT+  , pattern VK_FORMAT_D32_SFLOAT_S8_UINT+  , pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK+  , pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK+  , pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK+  , pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK+  , pattern VK_FORMAT_BC2_UNORM_BLOCK+  , pattern VK_FORMAT_BC2_SRGB_BLOCK+  , pattern VK_FORMAT_BC3_UNORM_BLOCK+  , pattern VK_FORMAT_BC3_SRGB_BLOCK+  , pattern VK_FORMAT_BC4_UNORM_BLOCK+  , pattern VK_FORMAT_BC4_SNORM_BLOCK+  , pattern VK_FORMAT_BC5_UNORM_BLOCK+  , pattern VK_FORMAT_BC5_SNORM_BLOCK+  , pattern VK_FORMAT_BC6H_UFLOAT_BLOCK+  , pattern VK_FORMAT_BC6H_SFLOAT_BLOCK+  , pattern VK_FORMAT_BC7_UNORM_BLOCK+  , pattern VK_FORMAT_BC7_SRGB_BLOCK+  , pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK+  , pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK+  , pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK+  , pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK+  , pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK+  , pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK+  , pattern VK_FORMAT_EAC_R11_UNORM_BLOCK+  , pattern VK_FORMAT_EAC_R11_SNORM_BLOCK+  , pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK+  , pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK+  , pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK+  , pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK+  , pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK+  , VkResult(..)+  , pattern VK_SUCCESS+  , pattern VK_NOT_READY+  , pattern VK_TIMEOUT+  , pattern VK_EVENT_SET+  , pattern VK_EVENT_RESET+  , pattern VK_INCOMPLETE+  , pattern VK_ERROR_OUT_OF_HOST_MEMORY+  , pattern VK_ERROR_OUT_OF_DEVICE_MEMORY+  , pattern VK_ERROR_INITIALIZATION_FAILED+  , pattern VK_ERROR_DEVICE_LOST+  , pattern VK_ERROR_MEMORY_MAP_FAILED+  , pattern VK_ERROR_LAYER_NOT_PRESENT+  , pattern VK_ERROR_EXTENSION_NOT_PRESENT+  , pattern VK_ERROR_FEATURE_NOT_PRESENT+  , pattern VK_ERROR_INCOMPATIBLE_DRIVER+  , pattern VK_ERROR_TOO_MANY_OBJECTS+  , pattern VK_ERROR_FORMAT_NOT_SUPPORTED+  , pattern VK_ERROR_FRAGMENTED_POOL+  , VkStructureType(..)+  , pattern VK_STRUCTURE_TYPE_APPLICATION_INFO+  , pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_SUBMIT_INFO+  , pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO+  , pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE+  , pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO+  , pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO+  , pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET+  , pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET+  , pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO+  , pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO+  , pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO+  , pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO+  , pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER+  , pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER+  , pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER+  , pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+  , VkObjectType(..)+  , pattern VK_OBJECT_TYPE_UNKNOWN+  , pattern VK_OBJECT_TYPE_INSTANCE+  , pattern VK_OBJECT_TYPE_PHYSICAL_DEVICE+  , pattern VK_OBJECT_TYPE_DEVICE+  , pattern VK_OBJECT_TYPE_QUEUE+  , pattern VK_OBJECT_TYPE_SEMAPHORE+  , pattern VK_OBJECT_TYPE_COMMAND_BUFFER+  , pattern VK_OBJECT_TYPE_FENCE+  , pattern VK_OBJECT_TYPE_DEVICE_MEMORY+  , pattern VK_OBJECT_TYPE_BUFFER+  , pattern VK_OBJECT_TYPE_IMAGE+  , pattern VK_OBJECT_TYPE_EVENT+  , pattern VK_OBJECT_TYPE_QUERY_POOL+  , pattern VK_OBJECT_TYPE_BUFFER_VIEW+  , pattern VK_OBJECT_TYPE_IMAGE_VIEW+  , pattern VK_OBJECT_TYPE_SHADER_MODULE+  , pattern VK_OBJECT_TYPE_PIPELINE_CACHE+  , pattern VK_OBJECT_TYPE_PIPELINE_LAYOUT+  , pattern VK_OBJECT_TYPE_RENDER_PASS+  , pattern VK_OBJECT_TYPE_PIPELINE+  , pattern VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT+  , pattern VK_OBJECT_TYPE_SAMPLER+  , pattern VK_OBJECT_TYPE_DESCRIPTOR_POOL+  , pattern VK_OBJECT_TYPE_DESCRIPTOR_SET+  , pattern VK_OBJECT_TYPE_FRAMEBUFFER+  , pattern VK_OBJECT_TYPE_COMMAND_POOL+  , VkFlags+  ) where++import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Storable+  ( Storable(..)+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )++++++-- ** VkBool32++-- | VkBool32 - Vulkan boolean type+--+-- = Description+-- #_description#+--+-- @VK_TRUE@ represents a boolean __True__ (integer 1) value, and+-- @VK_FALSE@ a boolean __False__ (integer 0) value.+--+-- All values returned from a Vulkan implementation in a @VkBool32@ will be+-- either @VK_TRUE@ or @VK_FALSE@.+--+-- Applications /must/ not pass any other values than @VK_TRUE@ or+-- @VK_FALSE@ into a Vulkan implementation where a @VkBool32@ is expected.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo',+-- 'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkDescriptorSetLayoutSupport',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsFeaturesNVX',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedRequirements',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures',+-- 'Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingPropertiesEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures',+-- 'Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters.VkPhysicalDeviceShaderDrawParameterFeatures',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceSparseProperties',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures',+-- 'Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo',+-- 'Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkGetPhysicalDeviceSurfaceSupportKHR',+-- 'Graphics.Vulkan.Core10.Fence.vkWaitForFences'+newtype VkBool32 = VkBool32 Int32+  deriving (Eq, Ord, Storable)++instance Show VkBool32 where+  showsPrec _ VK_FALSE = showString "VK_FALSE"+  showsPrec _ VK_TRUE = showString "VK_TRUE"+  showsPrec p (VkBool32 x) = showParen (p >= 11) (showString "VkBool32 " . showsPrec 11 x)++instance Read VkBool32 where+  readPrec = parens ( choose [ ("VK_FALSE", pure VK_FALSE)+                             , ("VK_TRUE",  pure VK_TRUE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkBool32")+                        v <- step readPrec+                        pure (VkBool32 v)+                        )+                    )++-- No documentation found for Nested "VkBool32" "VK_FALSE"+pattern VK_FALSE :: VkBool32+pattern VK_FALSE = VkBool32 0++-- No documentation found for Nested "VkBool32" "VK_TRUE"+pattern VK_TRUE :: VkBool32+pattern VK_TRUE = VkBool32 1+-- ** VkFormat++-- | VkFormat - Available image formats+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferFormatPropertiesANDROID',+-- 'Graphics.Vulkan.Core10.Pass.VkAttachmentDescription',+-- 'Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo',+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceFormatKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.Pipeline.VkVertexInputAttributeDescription',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.vkGetPhysicalDeviceExternalImageFormatPropertiesNV',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceFormatProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceFormatProperties2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceFormatProperties2KHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceImageFormatProperties',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetPhysicalDeviceSparseImageFormatProperties'+newtype VkFormat = VkFormat Int32+  deriving (Eq, Ord, Storable)++instance Show VkFormat where+  showsPrec _ VK_FORMAT_UNDEFINED = showString "VK_FORMAT_UNDEFINED"+  showsPrec _ VK_FORMAT_R4G4_UNORM_PACK8 = showString "VK_FORMAT_R4G4_UNORM_PACK8"+  showsPrec _ VK_FORMAT_R4G4B4A4_UNORM_PACK16 = showString "VK_FORMAT_R4G4B4A4_UNORM_PACK16"+  showsPrec _ VK_FORMAT_B4G4R4A4_UNORM_PACK16 = showString "VK_FORMAT_B4G4R4A4_UNORM_PACK16"+  showsPrec _ VK_FORMAT_R5G6B5_UNORM_PACK16 = showString "VK_FORMAT_R5G6B5_UNORM_PACK16"+  showsPrec _ VK_FORMAT_B5G6R5_UNORM_PACK16 = showString "VK_FORMAT_B5G6R5_UNORM_PACK16"+  showsPrec _ VK_FORMAT_R5G5B5A1_UNORM_PACK16 = showString "VK_FORMAT_R5G5B5A1_UNORM_PACK16"+  showsPrec _ VK_FORMAT_B5G5R5A1_UNORM_PACK16 = showString "VK_FORMAT_B5G5R5A1_UNORM_PACK16"+  showsPrec _ VK_FORMAT_A1R5G5B5_UNORM_PACK16 = showString "VK_FORMAT_A1R5G5B5_UNORM_PACK16"+  showsPrec _ VK_FORMAT_R8_UNORM = showString "VK_FORMAT_R8_UNORM"+  showsPrec _ VK_FORMAT_R8_SNORM = showString "VK_FORMAT_R8_SNORM"+  showsPrec _ VK_FORMAT_R8_USCALED = showString "VK_FORMAT_R8_USCALED"+  showsPrec _ VK_FORMAT_R8_SSCALED = showString "VK_FORMAT_R8_SSCALED"+  showsPrec _ VK_FORMAT_R8_UINT = showString "VK_FORMAT_R8_UINT"+  showsPrec _ VK_FORMAT_R8_SINT = showString "VK_FORMAT_R8_SINT"+  showsPrec _ VK_FORMAT_R8_SRGB = showString "VK_FORMAT_R8_SRGB"+  showsPrec _ VK_FORMAT_R8G8_UNORM = showString "VK_FORMAT_R8G8_UNORM"+  showsPrec _ VK_FORMAT_R8G8_SNORM = showString "VK_FORMAT_R8G8_SNORM"+  showsPrec _ VK_FORMAT_R8G8_USCALED = showString "VK_FORMAT_R8G8_USCALED"+  showsPrec _ VK_FORMAT_R8G8_SSCALED = showString "VK_FORMAT_R8G8_SSCALED"+  showsPrec _ VK_FORMAT_R8G8_UINT = showString "VK_FORMAT_R8G8_UINT"+  showsPrec _ VK_FORMAT_R8G8_SINT = showString "VK_FORMAT_R8G8_SINT"+  showsPrec _ VK_FORMAT_R8G8_SRGB = showString "VK_FORMAT_R8G8_SRGB"+  showsPrec _ VK_FORMAT_R8G8B8_UNORM = showString "VK_FORMAT_R8G8B8_UNORM"+  showsPrec _ VK_FORMAT_R8G8B8_SNORM = showString "VK_FORMAT_R8G8B8_SNORM"+  showsPrec _ VK_FORMAT_R8G8B8_USCALED = showString "VK_FORMAT_R8G8B8_USCALED"+  showsPrec _ VK_FORMAT_R8G8B8_SSCALED = showString "VK_FORMAT_R8G8B8_SSCALED"+  showsPrec _ VK_FORMAT_R8G8B8_UINT = showString "VK_FORMAT_R8G8B8_UINT"+  showsPrec _ VK_FORMAT_R8G8B8_SINT = showString "VK_FORMAT_R8G8B8_SINT"+  showsPrec _ VK_FORMAT_R8G8B8_SRGB = showString "VK_FORMAT_R8G8B8_SRGB"+  showsPrec _ VK_FORMAT_B8G8R8_UNORM = showString "VK_FORMAT_B8G8R8_UNORM"+  showsPrec _ VK_FORMAT_B8G8R8_SNORM = showString "VK_FORMAT_B8G8R8_SNORM"+  showsPrec _ VK_FORMAT_B8G8R8_USCALED = showString "VK_FORMAT_B8G8R8_USCALED"+  showsPrec _ VK_FORMAT_B8G8R8_SSCALED = showString "VK_FORMAT_B8G8R8_SSCALED"+  showsPrec _ VK_FORMAT_B8G8R8_UINT = showString "VK_FORMAT_B8G8R8_UINT"+  showsPrec _ VK_FORMAT_B8G8R8_SINT = showString "VK_FORMAT_B8G8R8_SINT"+  showsPrec _ VK_FORMAT_B8G8R8_SRGB = showString "VK_FORMAT_B8G8R8_SRGB"+  showsPrec _ VK_FORMAT_R8G8B8A8_UNORM = showString "VK_FORMAT_R8G8B8A8_UNORM"+  showsPrec _ VK_FORMAT_R8G8B8A8_SNORM = showString "VK_FORMAT_R8G8B8A8_SNORM"+  showsPrec _ VK_FORMAT_R8G8B8A8_USCALED = showString "VK_FORMAT_R8G8B8A8_USCALED"+  showsPrec _ VK_FORMAT_R8G8B8A8_SSCALED = showString "VK_FORMAT_R8G8B8A8_SSCALED"+  showsPrec _ VK_FORMAT_R8G8B8A8_UINT = showString "VK_FORMAT_R8G8B8A8_UINT"+  showsPrec _ VK_FORMAT_R8G8B8A8_SINT = showString "VK_FORMAT_R8G8B8A8_SINT"+  showsPrec _ VK_FORMAT_R8G8B8A8_SRGB = showString "VK_FORMAT_R8G8B8A8_SRGB"+  showsPrec _ VK_FORMAT_B8G8R8A8_UNORM = showString "VK_FORMAT_B8G8R8A8_UNORM"+  showsPrec _ VK_FORMAT_B8G8R8A8_SNORM = showString "VK_FORMAT_B8G8R8A8_SNORM"+  showsPrec _ VK_FORMAT_B8G8R8A8_USCALED = showString "VK_FORMAT_B8G8R8A8_USCALED"+  showsPrec _ VK_FORMAT_B8G8R8A8_SSCALED = showString "VK_FORMAT_B8G8R8A8_SSCALED"+  showsPrec _ VK_FORMAT_B8G8R8A8_UINT = showString "VK_FORMAT_B8G8R8A8_UINT"+  showsPrec _ VK_FORMAT_B8G8R8A8_SINT = showString "VK_FORMAT_B8G8R8A8_SINT"+  showsPrec _ VK_FORMAT_B8G8R8A8_SRGB = showString "VK_FORMAT_B8G8R8A8_SRGB"+  showsPrec _ VK_FORMAT_A8B8G8R8_UNORM_PACK32 = showString "VK_FORMAT_A8B8G8R8_UNORM_PACK32"+  showsPrec _ VK_FORMAT_A8B8G8R8_SNORM_PACK32 = showString "VK_FORMAT_A8B8G8R8_SNORM_PACK32"+  showsPrec _ VK_FORMAT_A8B8G8R8_USCALED_PACK32 = showString "VK_FORMAT_A8B8G8R8_USCALED_PACK32"+  showsPrec _ VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = showString "VK_FORMAT_A8B8G8R8_SSCALED_PACK32"+  showsPrec _ VK_FORMAT_A8B8G8R8_UINT_PACK32 = showString "VK_FORMAT_A8B8G8R8_UINT_PACK32"+  showsPrec _ VK_FORMAT_A8B8G8R8_SINT_PACK32 = showString "VK_FORMAT_A8B8G8R8_SINT_PACK32"+  showsPrec _ VK_FORMAT_A8B8G8R8_SRGB_PACK32 = showString "VK_FORMAT_A8B8G8R8_SRGB_PACK32"+  showsPrec _ VK_FORMAT_A2R10G10B10_UNORM_PACK32 = showString "VK_FORMAT_A2R10G10B10_UNORM_PACK32"+  showsPrec _ VK_FORMAT_A2R10G10B10_SNORM_PACK32 = showString "VK_FORMAT_A2R10G10B10_SNORM_PACK32"+  showsPrec _ VK_FORMAT_A2R10G10B10_USCALED_PACK32 = showString "VK_FORMAT_A2R10G10B10_USCALED_PACK32"+  showsPrec _ VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = showString "VK_FORMAT_A2R10G10B10_SSCALED_PACK32"+  showsPrec _ VK_FORMAT_A2R10G10B10_UINT_PACK32 = showString "VK_FORMAT_A2R10G10B10_UINT_PACK32"+  showsPrec _ VK_FORMAT_A2R10G10B10_SINT_PACK32 = showString "VK_FORMAT_A2R10G10B10_SINT_PACK32"+  showsPrec _ VK_FORMAT_A2B10G10R10_UNORM_PACK32 = showString "VK_FORMAT_A2B10G10R10_UNORM_PACK32"+  showsPrec _ VK_FORMAT_A2B10G10R10_SNORM_PACK32 = showString "VK_FORMAT_A2B10G10R10_SNORM_PACK32"+  showsPrec _ VK_FORMAT_A2B10G10R10_USCALED_PACK32 = showString "VK_FORMAT_A2B10G10R10_USCALED_PACK32"+  showsPrec _ VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = showString "VK_FORMAT_A2B10G10R10_SSCALED_PACK32"+  showsPrec _ VK_FORMAT_A2B10G10R10_UINT_PACK32 = showString "VK_FORMAT_A2B10G10R10_UINT_PACK32"+  showsPrec _ VK_FORMAT_A2B10G10R10_SINT_PACK32 = showString "VK_FORMAT_A2B10G10R10_SINT_PACK32"+  showsPrec _ VK_FORMAT_R16_UNORM = showString "VK_FORMAT_R16_UNORM"+  showsPrec _ VK_FORMAT_R16_SNORM = showString "VK_FORMAT_R16_SNORM"+  showsPrec _ VK_FORMAT_R16_USCALED = showString "VK_FORMAT_R16_USCALED"+  showsPrec _ VK_FORMAT_R16_SSCALED = showString "VK_FORMAT_R16_SSCALED"+  showsPrec _ VK_FORMAT_R16_UINT = showString "VK_FORMAT_R16_UINT"+  showsPrec _ VK_FORMAT_R16_SINT = showString "VK_FORMAT_R16_SINT"+  showsPrec _ VK_FORMAT_R16_SFLOAT = showString "VK_FORMAT_R16_SFLOAT"+  showsPrec _ VK_FORMAT_R16G16_UNORM = showString "VK_FORMAT_R16G16_UNORM"+  showsPrec _ VK_FORMAT_R16G16_SNORM = showString "VK_FORMAT_R16G16_SNORM"+  showsPrec _ VK_FORMAT_R16G16_USCALED = showString "VK_FORMAT_R16G16_USCALED"+  showsPrec _ VK_FORMAT_R16G16_SSCALED = showString "VK_FORMAT_R16G16_SSCALED"+  showsPrec _ VK_FORMAT_R16G16_UINT = showString "VK_FORMAT_R16G16_UINT"+  showsPrec _ VK_FORMAT_R16G16_SINT = showString "VK_FORMAT_R16G16_SINT"+  showsPrec _ VK_FORMAT_R16G16_SFLOAT = showString "VK_FORMAT_R16G16_SFLOAT"+  showsPrec _ VK_FORMAT_R16G16B16_UNORM = showString "VK_FORMAT_R16G16B16_UNORM"+  showsPrec _ VK_FORMAT_R16G16B16_SNORM = showString "VK_FORMAT_R16G16B16_SNORM"+  showsPrec _ VK_FORMAT_R16G16B16_USCALED = showString "VK_FORMAT_R16G16B16_USCALED"+  showsPrec _ VK_FORMAT_R16G16B16_SSCALED = showString "VK_FORMAT_R16G16B16_SSCALED"+  showsPrec _ VK_FORMAT_R16G16B16_UINT = showString "VK_FORMAT_R16G16B16_UINT"+  showsPrec _ VK_FORMAT_R16G16B16_SINT = showString "VK_FORMAT_R16G16B16_SINT"+  showsPrec _ VK_FORMAT_R16G16B16_SFLOAT = showString "VK_FORMAT_R16G16B16_SFLOAT"+  showsPrec _ VK_FORMAT_R16G16B16A16_UNORM = showString "VK_FORMAT_R16G16B16A16_UNORM"+  showsPrec _ VK_FORMAT_R16G16B16A16_SNORM = showString "VK_FORMAT_R16G16B16A16_SNORM"+  showsPrec _ VK_FORMAT_R16G16B16A16_USCALED = showString "VK_FORMAT_R16G16B16A16_USCALED"+  showsPrec _ VK_FORMAT_R16G16B16A16_SSCALED = showString "VK_FORMAT_R16G16B16A16_SSCALED"+  showsPrec _ VK_FORMAT_R16G16B16A16_UINT = showString "VK_FORMAT_R16G16B16A16_UINT"+  showsPrec _ VK_FORMAT_R16G16B16A16_SINT = showString "VK_FORMAT_R16G16B16A16_SINT"+  showsPrec _ VK_FORMAT_R16G16B16A16_SFLOAT = showString "VK_FORMAT_R16G16B16A16_SFLOAT"+  showsPrec _ VK_FORMAT_R32_UINT = showString "VK_FORMAT_R32_UINT"+  showsPrec _ VK_FORMAT_R32_SINT = showString "VK_FORMAT_R32_SINT"+  showsPrec _ VK_FORMAT_R32_SFLOAT = showString "VK_FORMAT_R32_SFLOAT"+  showsPrec _ VK_FORMAT_R32G32_UINT = showString "VK_FORMAT_R32G32_UINT"+  showsPrec _ VK_FORMAT_R32G32_SINT = showString "VK_FORMAT_R32G32_SINT"+  showsPrec _ VK_FORMAT_R32G32_SFLOAT = showString "VK_FORMAT_R32G32_SFLOAT"+  showsPrec _ VK_FORMAT_R32G32B32_UINT = showString "VK_FORMAT_R32G32B32_UINT"+  showsPrec _ VK_FORMAT_R32G32B32_SINT = showString "VK_FORMAT_R32G32B32_SINT"+  showsPrec _ VK_FORMAT_R32G32B32_SFLOAT = showString "VK_FORMAT_R32G32B32_SFLOAT"+  showsPrec _ VK_FORMAT_R32G32B32A32_UINT = showString "VK_FORMAT_R32G32B32A32_UINT"+  showsPrec _ VK_FORMAT_R32G32B32A32_SINT = showString "VK_FORMAT_R32G32B32A32_SINT"+  showsPrec _ VK_FORMAT_R32G32B32A32_SFLOAT = showString "VK_FORMAT_R32G32B32A32_SFLOAT"+  showsPrec _ VK_FORMAT_R64_UINT = showString "VK_FORMAT_R64_UINT"+  showsPrec _ VK_FORMAT_R64_SINT = showString "VK_FORMAT_R64_SINT"+  showsPrec _ VK_FORMAT_R64_SFLOAT = showString "VK_FORMAT_R64_SFLOAT"+  showsPrec _ VK_FORMAT_R64G64_UINT = showString "VK_FORMAT_R64G64_UINT"+  showsPrec _ VK_FORMAT_R64G64_SINT = showString "VK_FORMAT_R64G64_SINT"+  showsPrec _ VK_FORMAT_R64G64_SFLOAT = showString "VK_FORMAT_R64G64_SFLOAT"+  showsPrec _ VK_FORMAT_R64G64B64_UINT = showString "VK_FORMAT_R64G64B64_UINT"+  showsPrec _ VK_FORMAT_R64G64B64_SINT = showString "VK_FORMAT_R64G64B64_SINT"+  showsPrec _ VK_FORMAT_R64G64B64_SFLOAT = showString "VK_FORMAT_R64G64B64_SFLOAT"+  showsPrec _ VK_FORMAT_R64G64B64A64_UINT = showString "VK_FORMAT_R64G64B64A64_UINT"+  showsPrec _ VK_FORMAT_R64G64B64A64_SINT = showString "VK_FORMAT_R64G64B64A64_SINT"+  showsPrec _ VK_FORMAT_R64G64B64A64_SFLOAT = showString "VK_FORMAT_R64G64B64A64_SFLOAT"+  showsPrec _ VK_FORMAT_B10G11R11_UFLOAT_PACK32 = showString "VK_FORMAT_B10G11R11_UFLOAT_PACK32"+  showsPrec _ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = showString "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32"+  showsPrec _ VK_FORMAT_D16_UNORM = showString "VK_FORMAT_D16_UNORM"+  showsPrec _ VK_FORMAT_X8_D24_UNORM_PACK32 = showString "VK_FORMAT_X8_D24_UNORM_PACK32"+  showsPrec _ VK_FORMAT_D32_SFLOAT = showString "VK_FORMAT_D32_SFLOAT"+  showsPrec _ VK_FORMAT_S8_UINT = showString "VK_FORMAT_S8_UINT"+  showsPrec _ VK_FORMAT_D16_UNORM_S8_UINT = showString "VK_FORMAT_D16_UNORM_S8_UINT"+  showsPrec _ VK_FORMAT_D24_UNORM_S8_UINT = showString "VK_FORMAT_D24_UNORM_S8_UINT"+  showsPrec _ VK_FORMAT_D32_SFLOAT_S8_UINT = showString "VK_FORMAT_D32_SFLOAT_S8_UINT"+  showsPrec _ VK_FORMAT_BC1_RGB_UNORM_BLOCK = showString "VK_FORMAT_BC1_RGB_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC1_RGB_SRGB_BLOCK = showString "VK_FORMAT_BC1_RGB_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_BC1_RGBA_UNORM_BLOCK = showString "VK_FORMAT_BC1_RGBA_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC1_RGBA_SRGB_BLOCK = showString "VK_FORMAT_BC1_RGBA_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_BC2_UNORM_BLOCK = showString "VK_FORMAT_BC2_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC2_SRGB_BLOCK = showString "VK_FORMAT_BC2_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_BC3_UNORM_BLOCK = showString "VK_FORMAT_BC3_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC3_SRGB_BLOCK = showString "VK_FORMAT_BC3_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_BC4_UNORM_BLOCK = showString "VK_FORMAT_BC4_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC4_SNORM_BLOCK = showString "VK_FORMAT_BC4_SNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC5_UNORM_BLOCK = showString "VK_FORMAT_BC5_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC5_SNORM_BLOCK = showString "VK_FORMAT_BC5_SNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC6H_UFLOAT_BLOCK = showString "VK_FORMAT_BC6H_UFLOAT_BLOCK"+  showsPrec _ VK_FORMAT_BC6H_SFLOAT_BLOCK = showString "VK_FORMAT_BC6H_SFLOAT_BLOCK"+  showsPrec _ VK_FORMAT_BC7_UNORM_BLOCK = showString "VK_FORMAT_BC7_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_BC7_SRGB_BLOCK = showString "VK_FORMAT_BC7_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = showString "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_EAC_R11_UNORM_BLOCK = showString "VK_FORMAT_EAC_R11_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_EAC_R11_SNORM_BLOCK = showString "VK_FORMAT_EAC_R11_SNORM_BLOCK"+  showsPrec _ VK_FORMAT_EAC_R11G11_UNORM_BLOCK = showString "VK_FORMAT_EAC_R11G11_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_EAC_R11G11_SNORM_BLOCK = showString "VK_FORMAT_EAC_R11G11_SNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_4x4_UNORM_BLOCK = showString "VK_FORMAT_ASTC_4x4_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_4x4_SRGB_BLOCK = showString "VK_FORMAT_ASTC_4x4_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_5x4_UNORM_BLOCK = showString "VK_FORMAT_ASTC_5x4_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_5x4_SRGB_BLOCK = showString "VK_FORMAT_ASTC_5x4_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_5x5_UNORM_BLOCK = showString "VK_FORMAT_ASTC_5x5_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_5x5_SRGB_BLOCK = showString "VK_FORMAT_ASTC_5x5_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_6x5_UNORM_BLOCK = showString "VK_FORMAT_ASTC_6x5_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_6x5_SRGB_BLOCK = showString "VK_FORMAT_ASTC_6x5_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_6x6_UNORM_BLOCK = showString "VK_FORMAT_ASTC_6x6_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_6x6_SRGB_BLOCK = showString "VK_FORMAT_ASTC_6x6_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_8x5_UNORM_BLOCK = showString "VK_FORMAT_ASTC_8x5_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_8x5_SRGB_BLOCK = showString "VK_FORMAT_ASTC_8x5_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_8x6_UNORM_BLOCK = showString "VK_FORMAT_ASTC_8x6_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_8x6_SRGB_BLOCK = showString "VK_FORMAT_ASTC_8x6_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_8x8_UNORM_BLOCK = showString "VK_FORMAT_ASTC_8x8_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_8x8_SRGB_BLOCK = showString "VK_FORMAT_ASTC_8x8_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_10x5_UNORM_BLOCK = showString "VK_FORMAT_ASTC_10x5_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_10x5_SRGB_BLOCK = showString "VK_FORMAT_ASTC_10x5_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_10x6_UNORM_BLOCK = showString "VK_FORMAT_ASTC_10x6_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_10x6_SRGB_BLOCK = showString "VK_FORMAT_ASTC_10x6_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_10x8_UNORM_BLOCK = showString "VK_FORMAT_ASTC_10x8_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_10x8_SRGB_BLOCK = showString "VK_FORMAT_ASTC_10x8_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_10x10_UNORM_BLOCK = showString "VK_FORMAT_ASTC_10x10_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_10x10_SRGB_BLOCK = showString "VK_FORMAT_ASTC_10x10_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_12x10_UNORM_BLOCK = showString "VK_FORMAT_ASTC_12x10_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_12x10_SRGB_BLOCK = showString "VK_FORMAT_ASTC_12x10_SRGB_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_12x12_UNORM_BLOCK = showString "VK_FORMAT_ASTC_12x12_UNORM_BLOCK"+  showsPrec _ VK_FORMAT_ASTC_12x12_SRGB_BLOCK = showString "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkFormat 1000156000) = showString "VK_FORMAT_G8B8G8R8_422_UNORM"+  showsPrec _ (VkFormat 1000156001) = showString "VK_FORMAT_B8G8R8G8_422_UNORM"+  showsPrec _ (VkFormat 1000156002) = showString "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM"+  showsPrec _ (VkFormat 1000156003) = showString "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM"+  showsPrec _ (VkFormat 1000156004) = showString "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM"+  showsPrec _ (VkFormat 1000156005) = showString "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM"+  showsPrec _ (VkFormat 1000156006) = showString "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM"+  showsPrec _ (VkFormat 1000156007) = showString "VK_FORMAT_R10X6_UNORM_PACK16"+  showsPrec _ (VkFormat 1000156008) = showString "VK_FORMAT_R10X6G10X6_UNORM_2PACK16"+  showsPrec _ (VkFormat 1000156009) = showString "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16"+  showsPrec _ (VkFormat 1000156010) = showString "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16"+  showsPrec _ (VkFormat 1000156011) = showString "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16"+  showsPrec _ (VkFormat 1000156012) = showString "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156013) = showString "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156014) = showString "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156015) = showString "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156016) = showString "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156017) = showString "VK_FORMAT_R12X4_UNORM_PACK16"+  showsPrec _ (VkFormat 1000156018) = showString "VK_FORMAT_R12X4G12X4_UNORM_2PACK16"+  showsPrec _ (VkFormat 1000156019) = showString "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16"+  showsPrec _ (VkFormat 1000156020) = showString "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16"+  showsPrec _ (VkFormat 1000156021) = showString "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16"+  showsPrec _ (VkFormat 1000156022) = showString "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156023) = showString "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156024) = showString "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156025) = showString "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156026) = showString "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16"+  showsPrec _ (VkFormat 1000156027) = showString "VK_FORMAT_G16B16G16R16_422_UNORM"+  showsPrec _ (VkFormat 1000156028) = showString "VK_FORMAT_B16G16R16G16_422_UNORM"+  showsPrec _ (VkFormat 1000156029) = showString "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM"+  showsPrec _ (VkFormat 1000156030) = showString "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM"+  showsPrec _ (VkFormat 1000156031) = showString "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM"+  showsPrec _ (VkFormat 1000156032) = showString "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM"+  showsPrec _ (VkFormat 1000156033) = showString "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM"+  showsPrec _ (VkFormat 1000054000) = showString "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG"+  showsPrec _ (VkFormat 1000054001) = showString "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG"+  showsPrec _ (VkFormat 1000054002) = showString "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG"+  showsPrec _ (VkFormat 1000054003) = showString "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG"+  showsPrec _ (VkFormat 1000054004) = showString "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG"+  showsPrec _ (VkFormat 1000054005) = showString "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG"+  showsPrec _ (VkFormat 1000054006) = showString "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG"+  showsPrec _ (VkFormat 1000054007) = showString "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG"+  showsPrec p (VkFormat x) = showParen (p >= 11) (showString "VkFormat " . showsPrec 11 x)++instance Read VkFormat where+  readPrec = parens ( choose [ ("VK_FORMAT_UNDEFINED",                  pure VK_FORMAT_UNDEFINED)+                             , ("VK_FORMAT_R4G4_UNORM_PACK8",           pure VK_FORMAT_R4G4_UNORM_PACK8)+                             , ("VK_FORMAT_R4G4B4A4_UNORM_PACK16",      pure VK_FORMAT_R4G4B4A4_UNORM_PACK16)+                             , ("VK_FORMAT_B4G4R4A4_UNORM_PACK16",      pure VK_FORMAT_B4G4R4A4_UNORM_PACK16)+                             , ("VK_FORMAT_R5G6B5_UNORM_PACK16",        pure VK_FORMAT_R5G6B5_UNORM_PACK16)+                             , ("VK_FORMAT_B5G6R5_UNORM_PACK16",        pure VK_FORMAT_B5G6R5_UNORM_PACK16)+                             , ("VK_FORMAT_R5G5B5A1_UNORM_PACK16",      pure VK_FORMAT_R5G5B5A1_UNORM_PACK16)+                             , ("VK_FORMAT_B5G5R5A1_UNORM_PACK16",      pure VK_FORMAT_B5G5R5A1_UNORM_PACK16)+                             , ("VK_FORMAT_A1R5G5B5_UNORM_PACK16",      pure VK_FORMAT_A1R5G5B5_UNORM_PACK16)+                             , ("VK_FORMAT_R8_UNORM",                   pure VK_FORMAT_R8_UNORM)+                             , ("VK_FORMAT_R8_SNORM",                   pure VK_FORMAT_R8_SNORM)+                             , ("VK_FORMAT_R8_USCALED",                 pure VK_FORMAT_R8_USCALED)+                             , ("VK_FORMAT_R8_SSCALED",                 pure VK_FORMAT_R8_SSCALED)+                             , ("VK_FORMAT_R8_UINT",                    pure VK_FORMAT_R8_UINT)+                             , ("VK_FORMAT_R8_SINT",                    pure VK_FORMAT_R8_SINT)+                             , ("VK_FORMAT_R8_SRGB",                    pure VK_FORMAT_R8_SRGB)+                             , ("VK_FORMAT_R8G8_UNORM",                 pure VK_FORMAT_R8G8_UNORM)+                             , ("VK_FORMAT_R8G8_SNORM",                 pure VK_FORMAT_R8G8_SNORM)+                             , ("VK_FORMAT_R8G8_USCALED",               pure VK_FORMAT_R8G8_USCALED)+                             , ("VK_FORMAT_R8G8_SSCALED",               pure VK_FORMAT_R8G8_SSCALED)+                             , ("VK_FORMAT_R8G8_UINT",                  pure VK_FORMAT_R8G8_UINT)+                             , ("VK_FORMAT_R8G8_SINT",                  pure VK_FORMAT_R8G8_SINT)+                             , ("VK_FORMAT_R8G8_SRGB",                  pure VK_FORMAT_R8G8_SRGB)+                             , ("VK_FORMAT_R8G8B8_UNORM",               pure VK_FORMAT_R8G8B8_UNORM)+                             , ("VK_FORMAT_R8G8B8_SNORM",               pure VK_FORMAT_R8G8B8_SNORM)+                             , ("VK_FORMAT_R8G8B8_USCALED",             pure VK_FORMAT_R8G8B8_USCALED)+                             , ("VK_FORMAT_R8G8B8_SSCALED",             pure VK_FORMAT_R8G8B8_SSCALED)+                             , ("VK_FORMAT_R8G8B8_UINT",                pure VK_FORMAT_R8G8B8_UINT)+                             , ("VK_FORMAT_R8G8B8_SINT",                pure VK_FORMAT_R8G8B8_SINT)+                             , ("VK_FORMAT_R8G8B8_SRGB",                pure VK_FORMAT_R8G8B8_SRGB)+                             , ("VK_FORMAT_B8G8R8_UNORM",               pure VK_FORMAT_B8G8R8_UNORM)+                             , ("VK_FORMAT_B8G8R8_SNORM",               pure VK_FORMAT_B8G8R8_SNORM)+                             , ("VK_FORMAT_B8G8R8_USCALED",             pure VK_FORMAT_B8G8R8_USCALED)+                             , ("VK_FORMAT_B8G8R8_SSCALED",             pure VK_FORMAT_B8G8R8_SSCALED)+                             , ("VK_FORMAT_B8G8R8_UINT",                pure VK_FORMAT_B8G8R8_UINT)+                             , ("VK_FORMAT_B8G8R8_SINT",                pure VK_FORMAT_B8G8R8_SINT)+                             , ("VK_FORMAT_B8G8R8_SRGB",                pure VK_FORMAT_B8G8R8_SRGB)+                             , ("VK_FORMAT_R8G8B8A8_UNORM",             pure VK_FORMAT_R8G8B8A8_UNORM)+                             , ("VK_FORMAT_R8G8B8A8_SNORM",             pure VK_FORMAT_R8G8B8A8_SNORM)+                             , ("VK_FORMAT_R8G8B8A8_USCALED",           pure VK_FORMAT_R8G8B8A8_USCALED)+                             , ("VK_FORMAT_R8G8B8A8_SSCALED",           pure VK_FORMAT_R8G8B8A8_SSCALED)+                             , ("VK_FORMAT_R8G8B8A8_UINT",              pure VK_FORMAT_R8G8B8A8_UINT)+                             , ("VK_FORMAT_R8G8B8A8_SINT",              pure VK_FORMAT_R8G8B8A8_SINT)+                             , ("VK_FORMAT_R8G8B8A8_SRGB",              pure VK_FORMAT_R8G8B8A8_SRGB)+                             , ("VK_FORMAT_B8G8R8A8_UNORM",             pure VK_FORMAT_B8G8R8A8_UNORM)+                             , ("VK_FORMAT_B8G8R8A8_SNORM",             pure VK_FORMAT_B8G8R8A8_SNORM)+                             , ("VK_FORMAT_B8G8R8A8_USCALED",           pure VK_FORMAT_B8G8R8A8_USCALED)+                             , ("VK_FORMAT_B8G8R8A8_SSCALED",           pure VK_FORMAT_B8G8R8A8_SSCALED)+                             , ("VK_FORMAT_B8G8R8A8_UINT",              pure VK_FORMAT_B8G8R8A8_UINT)+                             , ("VK_FORMAT_B8G8R8A8_SINT",              pure VK_FORMAT_B8G8R8A8_SINT)+                             , ("VK_FORMAT_B8G8R8A8_SRGB",              pure VK_FORMAT_B8G8R8A8_SRGB)+                             , ("VK_FORMAT_A8B8G8R8_UNORM_PACK32",      pure VK_FORMAT_A8B8G8R8_UNORM_PACK32)+                             , ("VK_FORMAT_A8B8G8R8_SNORM_PACK32",      pure VK_FORMAT_A8B8G8R8_SNORM_PACK32)+                             , ("VK_FORMAT_A8B8G8R8_USCALED_PACK32",    pure VK_FORMAT_A8B8G8R8_USCALED_PACK32)+                             , ("VK_FORMAT_A8B8G8R8_SSCALED_PACK32",    pure VK_FORMAT_A8B8G8R8_SSCALED_PACK32)+                             , ("VK_FORMAT_A8B8G8R8_UINT_PACK32",       pure VK_FORMAT_A8B8G8R8_UINT_PACK32)+                             , ("VK_FORMAT_A8B8G8R8_SINT_PACK32",       pure VK_FORMAT_A8B8G8R8_SINT_PACK32)+                             , ("VK_FORMAT_A8B8G8R8_SRGB_PACK32",       pure VK_FORMAT_A8B8G8R8_SRGB_PACK32)+                             , ("VK_FORMAT_A2R10G10B10_UNORM_PACK32",   pure VK_FORMAT_A2R10G10B10_UNORM_PACK32)+                             , ("VK_FORMAT_A2R10G10B10_SNORM_PACK32",   pure VK_FORMAT_A2R10G10B10_SNORM_PACK32)+                             , ("VK_FORMAT_A2R10G10B10_USCALED_PACK32", pure VK_FORMAT_A2R10G10B10_USCALED_PACK32)+                             , ("VK_FORMAT_A2R10G10B10_SSCALED_PACK32", pure VK_FORMAT_A2R10G10B10_SSCALED_PACK32)+                             , ("VK_FORMAT_A2R10G10B10_UINT_PACK32",    pure VK_FORMAT_A2R10G10B10_UINT_PACK32)+                             , ("VK_FORMAT_A2R10G10B10_SINT_PACK32",    pure VK_FORMAT_A2R10G10B10_SINT_PACK32)+                             , ("VK_FORMAT_A2B10G10R10_UNORM_PACK32",   pure VK_FORMAT_A2B10G10R10_UNORM_PACK32)+                             , ("VK_FORMAT_A2B10G10R10_SNORM_PACK32",   pure VK_FORMAT_A2B10G10R10_SNORM_PACK32)+                             , ("VK_FORMAT_A2B10G10R10_USCALED_PACK32", pure VK_FORMAT_A2B10G10R10_USCALED_PACK32)+                             , ("VK_FORMAT_A2B10G10R10_SSCALED_PACK32", pure VK_FORMAT_A2B10G10R10_SSCALED_PACK32)+                             , ("VK_FORMAT_A2B10G10R10_UINT_PACK32",    pure VK_FORMAT_A2B10G10R10_UINT_PACK32)+                             , ("VK_FORMAT_A2B10G10R10_SINT_PACK32",    pure VK_FORMAT_A2B10G10R10_SINT_PACK32)+                             , ("VK_FORMAT_R16_UNORM",                  pure VK_FORMAT_R16_UNORM)+                             , ("VK_FORMAT_R16_SNORM",                  pure VK_FORMAT_R16_SNORM)+                             , ("VK_FORMAT_R16_USCALED",                pure VK_FORMAT_R16_USCALED)+                             , ("VK_FORMAT_R16_SSCALED",                pure VK_FORMAT_R16_SSCALED)+                             , ("VK_FORMAT_R16_UINT",                   pure VK_FORMAT_R16_UINT)+                             , ("VK_FORMAT_R16_SINT",                   pure VK_FORMAT_R16_SINT)+                             , ("VK_FORMAT_R16_SFLOAT",                 pure VK_FORMAT_R16_SFLOAT)+                             , ("VK_FORMAT_R16G16_UNORM",               pure VK_FORMAT_R16G16_UNORM)+                             , ("VK_FORMAT_R16G16_SNORM",               pure VK_FORMAT_R16G16_SNORM)+                             , ("VK_FORMAT_R16G16_USCALED",             pure VK_FORMAT_R16G16_USCALED)+                             , ("VK_FORMAT_R16G16_SSCALED",             pure VK_FORMAT_R16G16_SSCALED)+                             , ("VK_FORMAT_R16G16_UINT",                pure VK_FORMAT_R16G16_UINT)+                             , ("VK_FORMAT_R16G16_SINT",                pure VK_FORMAT_R16G16_SINT)+                             , ("VK_FORMAT_R16G16_SFLOAT",              pure VK_FORMAT_R16G16_SFLOAT)+                             , ("VK_FORMAT_R16G16B16_UNORM",            pure VK_FORMAT_R16G16B16_UNORM)+                             , ("VK_FORMAT_R16G16B16_SNORM",            pure VK_FORMAT_R16G16B16_SNORM)+                             , ("VK_FORMAT_R16G16B16_USCALED",          pure VK_FORMAT_R16G16B16_USCALED)+                             , ("VK_FORMAT_R16G16B16_SSCALED",          pure VK_FORMAT_R16G16B16_SSCALED)+                             , ("VK_FORMAT_R16G16B16_UINT",             pure VK_FORMAT_R16G16B16_UINT)+                             , ("VK_FORMAT_R16G16B16_SINT",             pure VK_FORMAT_R16G16B16_SINT)+                             , ("VK_FORMAT_R16G16B16_SFLOAT",           pure VK_FORMAT_R16G16B16_SFLOAT)+                             , ("VK_FORMAT_R16G16B16A16_UNORM",         pure VK_FORMAT_R16G16B16A16_UNORM)+                             , ("VK_FORMAT_R16G16B16A16_SNORM",         pure VK_FORMAT_R16G16B16A16_SNORM)+                             , ("VK_FORMAT_R16G16B16A16_USCALED",       pure VK_FORMAT_R16G16B16A16_USCALED)+                             , ("VK_FORMAT_R16G16B16A16_SSCALED",       pure VK_FORMAT_R16G16B16A16_SSCALED)+                             , ("VK_FORMAT_R16G16B16A16_UINT",          pure VK_FORMAT_R16G16B16A16_UINT)+                             , ("VK_FORMAT_R16G16B16A16_SINT",          pure VK_FORMAT_R16G16B16A16_SINT)+                             , ("VK_FORMAT_R16G16B16A16_SFLOAT",        pure VK_FORMAT_R16G16B16A16_SFLOAT)+                             , ("VK_FORMAT_R32_UINT",                   pure VK_FORMAT_R32_UINT)+                             , ("VK_FORMAT_R32_SINT",                   pure VK_FORMAT_R32_SINT)+                             , ("VK_FORMAT_R32_SFLOAT",                 pure VK_FORMAT_R32_SFLOAT)+                             , ("VK_FORMAT_R32G32_UINT",                pure VK_FORMAT_R32G32_UINT)+                             , ("VK_FORMAT_R32G32_SINT",                pure VK_FORMAT_R32G32_SINT)+                             , ("VK_FORMAT_R32G32_SFLOAT",              pure VK_FORMAT_R32G32_SFLOAT)+                             , ("VK_FORMAT_R32G32B32_UINT",             pure VK_FORMAT_R32G32B32_UINT)+                             , ("VK_FORMAT_R32G32B32_SINT",             pure VK_FORMAT_R32G32B32_SINT)+                             , ("VK_FORMAT_R32G32B32_SFLOAT",           pure VK_FORMAT_R32G32B32_SFLOAT)+                             , ("VK_FORMAT_R32G32B32A32_UINT",          pure VK_FORMAT_R32G32B32A32_UINT)+                             , ("VK_FORMAT_R32G32B32A32_SINT",          pure VK_FORMAT_R32G32B32A32_SINT)+                             , ("VK_FORMAT_R32G32B32A32_SFLOAT",        pure VK_FORMAT_R32G32B32A32_SFLOAT)+                             , ("VK_FORMAT_R64_UINT",                   pure VK_FORMAT_R64_UINT)+                             , ("VK_FORMAT_R64_SINT",                   pure VK_FORMAT_R64_SINT)+                             , ("VK_FORMAT_R64_SFLOAT",                 pure VK_FORMAT_R64_SFLOAT)+                             , ("VK_FORMAT_R64G64_UINT",                pure VK_FORMAT_R64G64_UINT)+                             , ("VK_FORMAT_R64G64_SINT",                pure VK_FORMAT_R64G64_SINT)+                             , ("VK_FORMAT_R64G64_SFLOAT",              pure VK_FORMAT_R64G64_SFLOAT)+                             , ("VK_FORMAT_R64G64B64_UINT",             pure VK_FORMAT_R64G64B64_UINT)+                             , ("VK_FORMAT_R64G64B64_SINT",             pure VK_FORMAT_R64G64B64_SINT)+                             , ("VK_FORMAT_R64G64B64_SFLOAT",           pure VK_FORMAT_R64G64B64_SFLOAT)+                             , ("VK_FORMAT_R64G64B64A64_UINT",          pure VK_FORMAT_R64G64B64A64_UINT)+                             , ("VK_FORMAT_R64G64B64A64_SINT",          pure VK_FORMAT_R64G64B64A64_SINT)+                             , ("VK_FORMAT_R64G64B64A64_SFLOAT",        pure VK_FORMAT_R64G64B64A64_SFLOAT)+                             , ("VK_FORMAT_B10G11R11_UFLOAT_PACK32",    pure VK_FORMAT_B10G11R11_UFLOAT_PACK32)+                             , ("VK_FORMAT_E5B9G9R9_UFLOAT_PACK32",     pure VK_FORMAT_E5B9G9R9_UFLOAT_PACK32)+                             , ("VK_FORMAT_D16_UNORM",                  pure VK_FORMAT_D16_UNORM)+                             , ("VK_FORMAT_X8_D24_UNORM_PACK32",        pure VK_FORMAT_X8_D24_UNORM_PACK32)+                             , ("VK_FORMAT_D32_SFLOAT",                 pure VK_FORMAT_D32_SFLOAT)+                             , ("VK_FORMAT_S8_UINT",                    pure VK_FORMAT_S8_UINT)+                             , ("VK_FORMAT_D16_UNORM_S8_UINT",          pure VK_FORMAT_D16_UNORM_S8_UINT)+                             , ("VK_FORMAT_D24_UNORM_S8_UINT",          pure VK_FORMAT_D24_UNORM_S8_UINT)+                             , ("VK_FORMAT_D32_SFLOAT_S8_UINT",         pure VK_FORMAT_D32_SFLOAT_S8_UINT)+                             , ("VK_FORMAT_BC1_RGB_UNORM_BLOCK",        pure VK_FORMAT_BC1_RGB_UNORM_BLOCK)+                             , ("VK_FORMAT_BC1_RGB_SRGB_BLOCK",         pure VK_FORMAT_BC1_RGB_SRGB_BLOCK)+                             , ("VK_FORMAT_BC1_RGBA_UNORM_BLOCK",       pure VK_FORMAT_BC1_RGBA_UNORM_BLOCK)+                             , ("VK_FORMAT_BC1_RGBA_SRGB_BLOCK",        pure VK_FORMAT_BC1_RGBA_SRGB_BLOCK)+                             , ("VK_FORMAT_BC2_UNORM_BLOCK",            pure VK_FORMAT_BC2_UNORM_BLOCK)+                             , ("VK_FORMAT_BC2_SRGB_BLOCK",             pure VK_FORMAT_BC2_SRGB_BLOCK)+                             , ("VK_FORMAT_BC3_UNORM_BLOCK",            pure VK_FORMAT_BC3_UNORM_BLOCK)+                             , ("VK_FORMAT_BC3_SRGB_BLOCK",             pure VK_FORMAT_BC3_SRGB_BLOCK)+                             , ("VK_FORMAT_BC4_UNORM_BLOCK",            pure VK_FORMAT_BC4_UNORM_BLOCK)+                             , ("VK_FORMAT_BC4_SNORM_BLOCK",            pure VK_FORMAT_BC4_SNORM_BLOCK)+                             , ("VK_FORMAT_BC5_UNORM_BLOCK",            pure VK_FORMAT_BC5_UNORM_BLOCK)+                             , ("VK_FORMAT_BC5_SNORM_BLOCK",            pure VK_FORMAT_BC5_SNORM_BLOCK)+                             , ("VK_FORMAT_BC6H_UFLOAT_BLOCK",          pure VK_FORMAT_BC6H_UFLOAT_BLOCK)+                             , ("VK_FORMAT_BC6H_SFLOAT_BLOCK",          pure VK_FORMAT_BC6H_SFLOAT_BLOCK)+                             , ("VK_FORMAT_BC7_UNORM_BLOCK",            pure VK_FORMAT_BC7_UNORM_BLOCK)+                             , ("VK_FORMAT_BC7_SRGB_BLOCK",             pure VK_FORMAT_BC7_SRGB_BLOCK)+                             , ("VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK",    pure VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK)+                             , ("VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK",     pure VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK)+                             , ("VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK",  pure VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK)+                             , ("VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK",   pure VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK)+                             , ("VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK",  pure VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK)+                             , ("VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK",   pure VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK)+                             , ("VK_FORMAT_EAC_R11_UNORM_BLOCK",        pure VK_FORMAT_EAC_R11_UNORM_BLOCK)+                             , ("VK_FORMAT_EAC_R11_SNORM_BLOCK",        pure VK_FORMAT_EAC_R11_SNORM_BLOCK)+                             , ("VK_FORMAT_EAC_R11G11_UNORM_BLOCK",     pure VK_FORMAT_EAC_R11G11_UNORM_BLOCK)+                             , ("VK_FORMAT_EAC_R11G11_SNORM_BLOCK",     pure VK_FORMAT_EAC_R11G11_SNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_4x4_UNORM_BLOCK",       pure VK_FORMAT_ASTC_4x4_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_4x4_SRGB_BLOCK",        pure VK_FORMAT_ASTC_4x4_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_5x4_UNORM_BLOCK",       pure VK_FORMAT_ASTC_5x4_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_5x4_SRGB_BLOCK",        pure VK_FORMAT_ASTC_5x4_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_5x5_UNORM_BLOCK",       pure VK_FORMAT_ASTC_5x5_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_5x5_SRGB_BLOCK",        pure VK_FORMAT_ASTC_5x5_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_6x5_UNORM_BLOCK",       pure VK_FORMAT_ASTC_6x5_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_6x5_SRGB_BLOCK",        pure VK_FORMAT_ASTC_6x5_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_6x6_UNORM_BLOCK",       pure VK_FORMAT_ASTC_6x6_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_6x6_SRGB_BLOCK",        pure VK_FORMAT_ASTC_6x6_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_8x5_UNORM_BLOCK",       pure VK_FORMAT_ASTC_8x5_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_8x5_SRGB_BLOCK",        pure VK_FORMAT_ASTC_8x5_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_8x6_UNORM_BLOCK",       pure VK_FORMAT_ASTC_8x6_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_8x6_SRGB_BLOCK",        pure VK_FORMAT_ASTC_8x6_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_8x8_UNORM_BLOCK",       pure VK_FORMAT_ASTC_8x8_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_8x8_SRGB_BLOCK",        pure VK_FORMAT_ASTC_8x8_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_10x5_UNORM_BLOCK",      pure VK_FORMAT_ASTC_10x5_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_10x5_SRGB_BLOCK",       pure VK_FORMAT_ASTC_10x5_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_10x6_UNORM_BLOCK",      pure VK_FORMAT_ASTC_10x6_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_10x6_SRGB_BLOCK",       pure VK_FORMAT_ASTC_10x6_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_10x8_UNORM_BLOCK",      pure VK_FORMAT_ASTC_10x8_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_10x8_SRGB_BLOCK",       pure VK_FORMAT_ASTC_10x8_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_10x10_UNORM_BLOCK",     pure VK_FORMAT_ASTC_10x10_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_10x10_SRGB_BLOCK",      pure VK_FORMAT_ASTC_10x10_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_12x10_UNORM_BLOCK",     pure VK_FORMAT_ASTC_12x10_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_12x10_SRGB_BLOCK",      pure VK_FORMAT_ASTC_12x10_SRGB_BLOCK)+                             , ("VK_FORMAT_ASTC_12x12_UNORM_BLOCK",     pure VK_FORMAT_ASTC_12x12_UNORM_BLOCK)+                             , ("VK_FORMAT_ASTC_12x12_SRGB_BLOCK",      pure VK_FORMAT_ASTC_12x12_SRGB_BLOCK)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_FORMAT_G8B8G8R8_422_UNORM",                         pure (VkFormat 1000156000))+                             , ("VK_FORMAT_B8G8R8G8_422_UNORM",                         pure (VkFormat 1000156001))+                             , ("VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM",                  pure (VkFormat 1000156002))+                             , ("VK_FORMAT_G8_B8R8_2PLANE_420_UNORM",                   pure (VkFormat 1000156003))+                             , ("VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM",                  pure (VkFormat 1000156004))+                             , ("VK_FORMAT_G8_B8R8_2PLANE_422_UNORM",                   pure (VkFormat 1000156005))+                             , ("VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM",                  pure (VkFormat 1000156006))+                             , ("VK_FORMAT_R10X6_UNORM_PACK16",                         pure (VkFormat 1000156007))+                             , ("VK_FORMAT_R10X6G10X6_UNORM_2PACK16",                   pure (VkFormat 1000156008))+                             , ("VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16",         pure (VkFormat 1000156009))+                             , ("VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16",     pure (VkFormat 1000156010))+                             , ("VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16",     pure (VkFormat 1000156011))+                             , ("VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", pure (VkFormat 1000156012))+                             , ("VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16",  pure (VkFormat 1000156013))+                             , ("VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", pure (VkFormat 1000156014))+                             , ("VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16",  pure (VkFormat 1000156015))+                             , ("VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", pure (VkFormat 1000156016))+                             , ("VK_FORMAT_R12X4_UNORM_PACK16",                         pure (VkFormat 1000156017))+                             , ("VK_FORMAT_R12X4G12X4_UNORM_2PACK16",                   pure (VkFormat 1000156018))+                             , ("VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16",         pure (VkFormat 1000156019))+                             , ("VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16",     pure (VkFormat 1000156020))+                             , ("VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16",     pure (VkFormat 1000156021))+                             , ("VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", pure (VkFormat 1000156022))+                             , ("VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16",  pure (VkFormat 1000156023))+                             , ("VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", pure (VkFormat 1000156024))+                             , ("VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16",  pure (VkFormat 1000156025))+                             , ("VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", pure (VkFormat 1000156026))+                             , ("VK_FORMAT_G16B16G16R16_422_UNORM",                     pure (VkFormat 1000156027))+                             , ("VK_FORMAT_B16G16R16G16_422_UNORM",                     pure (VkFormat 1000156028))+                             , ("VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM",               pure (VkFormat 1000156029))+                             , ("VK_FORMAT_G16_B16R16_2PLANE_420_UNORM",                pure (VkFormat 1000156030))+                             , ("VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM",               pure (VkFormat 1000156031))+                             , ("VK_FORMAT_G16_B16R16_2PLANE_422_UNORM",                pure (VkFormat 1000156032))+                             , ("VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM",               pure (VkFormat 1000156033))+                             , ("VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG",                pure (VkFormat 1000054000))+                             , ("VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG",                pure (VkFormat 1000054001))+                             , ("VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG",                pure (VkFormat 1000054002))+                             , ("VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG",                pure (VkFormat 1000054003))+                             , ("VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG",                 pure (VkFormat 1000054004))+                             , ("VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG",                 pure (VkFormat 1000054005))+                             , ("VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG",                 pure (VkFormat 1000054006))+                             , ("VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG",                 pure (VkFormat 1000054007))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkFormat")+                        v <- step readPrec+                        pure (VkFormat v)+                        )+                    )++-- | @VK_FORMAT_UNDEFINED@ specifies that the format is not specified.+pattern VK_FORMAT_UNDEFINED :: VkFormat+pattern VK_FORMAT_UNDEFINED = VkFormat 0++-- | @VK_FORMAT_R4G4_UNORM_PACK8@ specifies a two-component, 8-bit packed+-- unsigned normalized format that has a 4-bit R component in bits 4..7,+-- and a 4-bit G component in bits 0..3.+pattern VK_FORMAT_R4G4_UNORM_PACK8 :: VkFormat+pattern VK_FORMAT_R4G4_UNORM_PACK8 = VkFormat 1++-- | @VK_FORMAT_R4G4B4A4_UNORM_PACK16@ specifies a four-component, 16-bit+-- packed unsigned normalized format that has a 4-bit R component in bits+-- 12..15, a 4-bit G component in bits 8..11, a 4-bit B component in bits+-- 4..7, and a 4-bit A component in bits 0..3.+pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 = VkFormat 2++-- | @VK_FORMAT_B4G4R4A4_UNORM_PACK16@ specifies a four-component, 16-bit+-- packed unsigned normalized format that has a 4-bit B component in bits+-- 12..15, a 4-bit G component in bits 8..11, a 4-bit R component in bits+-- 4..7, and a 4-bit A component in bits 0..3.+pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 = VkFormat 3++-- | @VK_FORMAT_R5G6B5_UNORM_PACK16@ specifies a three-component, 16-bit+-- packed unsigned normalized format that has a 5-bit R component in bits+-- 11..15, a 6-bit G component in bits 5..10, and a 5-bit B component in+-- bits 0..4.+pattern VK_FORMAT_R5G6B5_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_R5G6B5_UNORM_PACK16 = VkFormat 4++-- | @VK_FORMAT_B5G6R5_UNORM_PACK16@ specifies a three-component, 16-bit+-- packed unsigned normalized format that has a 5-bit B component in bits+-- 11..15, a 6-bit G component in bits 5..10, and a 5-bit R component in+-- bits 0..4.+pattern VK_FORMAT_B5G6R5_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_B5G6R5_UNORM_PACK16 = VkFormat 5++-- | @VK_FORMAT_R5G5B5A1_UNORM_PACK16@ specifies a four-component, 16-bit+-- packed unsigned normalized format that has a 5-bit R component in bits+-- 11..15, a 5-bit G component in bits 6..10, a 5-bit B component in bits+-- 1..5, and a 1-bit A component in bit 0.+pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 = VkFormat 6++-- | @VK_FORMAT_B5G5R5A1_UNORM_PACK16@ specifies a four-component, 16-bit+-- packed unsigned normalized format that has a 5-bit B component in bits+-- 11..15, a 5-bit G component in bits 6..10, a 5-bit R component in bits+-- 1..5, and a 1-bit A component in bit 0.+pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 = VkFormat 7++-- | @VK_FORMAT_A1R5G5B5_UNORM_PACK16@ specifies a four-component, 16-bit+-- packed unsigned normalized format that has a 1-bit A component in bit+-- 15, a 5-bit R component in bits 10..14, a 5-bit G component in bits+-- 5..9, and a 5-bit B component in bits 0..4.+pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 = VkFormat 8++-- | @VK_FORMAT_R8_UNORM@ specifies a one-component, 8-bit unsigned+-- normalized format that has a single 8-bit R component.+pattern VK_FORMAT_R8_UNORM :: VkFormat+pattern VK_FORMAT_R8_UNORM = VkFormat 9++-- | @VK_FORMAT_R8_SNORM@ specifies a one-component, 8-bit signed normalized+-- format that has a single 8-bit R component.+pattern VK_FORMAT_R8_SNORM :: VkFormat+pattern VK_FORMAT_R8_SNORM = VkFormat 10++-- | @VK_FORMAT_R8_USCALED@ specifies a one-component, 8-bit unsigned scaled+-- integer format that has a single 8-bit R component.+pattern VK_FORMAT_R8_USCALED :: VkFormat+pattern VK_FORMAT_R8_USCALED = VkFormat 11++-- | @VK_FORMAT_R8_SSCALED@ specifies a one-component, 8-bit signed scaled+-- integer format that has a single 8-bit R component.+pattern VK_FORMAT_R8_SSCALED :: VkFormat+pattern VK_FORMAT_R8_SSCALED = VkFormat 12++-- | @VK_FORMAT_R8_UINT@ specifies a one-component, 8-bit unsigned integer+-- format that has a single 8-bit R component.+pattern VK_FORMAT_R8_UINT :: VkFormat+pattern VK_FORMAT_R8_UINT = VkFormat 13++-- | @VK_FORMAT_R8_SINT@ specifies a one-component, 8-bit signed integer+-- format that has a single 8-bit R component.+pattern VK_FORMAT_R8_SINT :: VkFormat+pattern VK_FORMAT_R8_SINT = VkFormat 14++-- | @VK_FORMAT_R8_SRGB@ specifies a one-component, 8-bit unsigned normalized+-- format that has a single 8-bit R component stored with sRGB nonlinear+-- encoding.+pattern VK_FORMAT_R8_SRGB :: VkFormat+pattern VK_FORMAT_R8_SRGB = VkFormat 15++-- | @VK_FORMAT_R8G8_UNORM@ specifies a two-component, 16-bit unsigned+-- normalized format that has an 8-bit R component in byte 0, and an 8-bit+-- G component in byte 1.+pattern VK_FORMAT_R8G8_UNORM :: VkFormat+pattern VK_FORMAT_R8G8_UNORM = VkFormat 16++-- | @VK_FORMAT_R8G8_SNORM@ specifies a two-component, 16-bit signed+-- normalized format that has an 8-bit R component in byte 0, and an 8-bit+-- G component in byte 1.+pattern VK_FORMAT_R8G8_SNORM :: VkFormat+pattern VK_FORMAT_R8G8_SNORM = VkFormat 17++-- | @VK_FORMAT_R8G8_USCALED@ specifies a two-component, 16-bit unsigned+-- scaled integer format that has an 8-bit R component in byte 0, and an+-- 8-bit G component in byte 1.+pattern VK_FORMAT_R8G8_USCALED :: VkFormat+pattern VK_FORMAT_R8G8_USCALED = VkFormat 18++-- | @VK_FORMAT_R8G8_SSCALED@ specifies a two-component, 16-bit signed scaled+-- integer format that has an 8-bit R component in byte 0, and an 8-bit G+-- component in byte 1.+pattern VK_FORMAT_R8G8_SSCALED :: VkFormat+pattern VK_FORMAT_R8G8_SSCALED = VkFormat 19++-- | @VK_FORMAT_R8G8_UINT@ specifies a two-component, 16-bit unsigned integer+-- format that has an 8-bit R component in byte 0, and an 8-bit G component+-- in byte 1.+pattern VK_FORMAT_R8G8_UINT :: VkFormat+pattern VK_FORMAT_R8G8_UINT = VkFormat 20++-- | @VK_FORMAT_R8G8_SINT@ specifies a two-component, 16-bit signed integer+-- format that has an 8-bit R component in byte 0, and an 8-bit G component+-- in byte 1.+pattern VK_FORMAT_R8G8_SINT :: VkFormat+pattern VK_FORMAT_R8G8_SINT = VkFormat 21++-- | @VK_FORMAT_R8G8_SRGB@ specifies a two-component, 16-bit unsigned+-- normalized format that has an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 0, and an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1.+pattern VK_FORMAT_R8G8_SRGB :: VkFormat+pattern VK_FORMAT_R8G8_SRGB = VkFormat 22++-- | @VK_FORMAT_R8G8B8_UNORM@ specifies a three-component, 24-bit unsigned+-- normalized format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern VK_FORMAT_R8G8B8_UNORM :: VkFormat+pattern VK_FORMAT_R8G8B8_UNORM = VkFormat 23++-- | @VK_FORMAT_R8G8B8_SNORM@ specifies a three-component, 24-bit signed+-- normalized format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern VK_FORMAT_R8G8B8_SNORM :: VkFormat+pattern VK_FORMAT_R8G8B8_SNORM = VkFormat 24++-- | @VK_FORMAT_R8G8B8_USCALED@ specifies a three-component, 24-bit unsigned+-- scaled format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern VK_FORMAT_R8G8B8_USCALED :: VkFormat+pattern VK_FORMAT_R8G8B8_USCALED = VkFormat 25++-- | @VK_FORMAT_R8G8B8_SSCALED@ specifies a three-component, 24-bit signed+-- scaled format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern VK_FORMAT_R8G8B8_SSCALED :: VkFormat+pattern VK_FORMAT_R8G8B8_SSCALED = VkFormat 26++-- | @VK_FORMAT_R8G8B8_UINT@ specifies a three-component, 24-bit unsigned+-- integer format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern VK_FORMAT_R8G8B8_UINT :: VkFormat+pattern VK_FORMAT_R8G8B8_UINT = VkFormat 27++-- | @VK_FORMAT_R8G8B8_SINT@ specifies a three-component, 24-bit signed+-- integer format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern VK_FORMAT_R8G8B8_SINT :: VkFormat+pattern VK_FORMAT_R8G8B8_SINT = VkFormat 28++-- | @VK_FORMAT_R8G8B8_SRGB@ specifies a three-component, 24-bit unsigned+-- normalized format that has an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB+-- nonlinear encoding in byte 2.+pattern VK_FORMAT_R8G8B8_SRGB :: VkFormat+pattern VK_FORMAT_R8G8B8_SRGB = VkFormat 29++-- | @VK_FORMAT_B8G8R8_UNORM@ specifies a three-component, 24-bit unsigned+-- normalized format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern VK_FORMAT_B8G8R8_UNORM :: VkFormat+pattern VK_FORMAT_B8G8R8_UNORM = VkFormat 30++-- | @VK_FORMAT_B8G8R8_SNORM@ specifies a three-component, 24-bit signed+-- normalized format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern VK_FORMAT_B8G8R8_SNORM :: VkFormat+pattern VK_FORMAT_B8G8R8_SNORM = VkFormat 31++-- | @VK_FORMAT_B8G8R8_USCALED@ specifies a three-component, 24-bit unsigned+-- scaled format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern VK_FORMAT_B8G8R8_USCALED :: VkFormat+pattern VK_FORMAT_B8G8R8_USCALED = VkFormat 32++-- | @VK_FORMAT_B8G8R8_SSCALED@ specifies a three-component, 24-bit signed+-- scaled format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern VK_FORMAT_B8G8R8_SSCALED :: VkFormat+pattern VK_FORMAT_B8G8R8_SSCALED = VkFormat 33++-- | @VK_FORMAT_B8G8R8_UINT@ specifies a three-component, 24-bit unsigned+-- integer format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern VK_FORMAT_B8G8R8_UINT :: VkFormat+pattern VK_FORMAT_B8G8R8_UINT = VkFormat 34++-- | @VK_FORMAT_B8G8R8_SINT@ specifies a three-component, 24-bit signed+-- integer format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern VK_FORMAT_B8G8R8_SINT :: VkFormat+pattern VK_FORMAT_B8G8R8_SINT = VkFormat 35++-- | @VK_FORMAT_B8G8R8_SRGB@ specifies a three-component, 24-bit unsigned+-- normalized format that has an 8-bit B component stored with sRGB+-- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 2.+pattern VK_FORMAT_B8G8R8_SRGB :: VkFormat+pattern VK_FORMAT_B8G8R8_SRGB = VkFormat 36++-- | @VK_FORMAT_R8G8B8A8_UNORM@ specifies a four-component, 32-bit unsigned+-- normalized format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_R8G8B8A8_UNORM :: VkFormat+pattern VK_FORMAT_R8G8B8A8_UNORM = VkFormat 37++-- | @VK_FORMAT_R8G8B8A8_SNORM@ specifies a four-component, 32-bit signed+-- normalized format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_R8G8B8A8_SNORM :: VkFormat+pattern VK_FORMAT_R8G8B8A8_SNORM = VkFormat 38++-- | @VK_FORMAT_R8G8B8A8_USCALED@ specifies a four-component, 32-bit unsigned+-- scaled format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_R8G8B8A8_USCALED :: VkFormat+pattern VK_FORMAT_R8G8B8A8_USCALED = VkFormat 39++-- | @VK_FORMAT_R8G8B8A8_SSCALED@ specifies a four-component, 32-bit signed+-- scaled format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_R8G8B8A8_SSCALED :: VkFormat+pattern VK_FORMAT_R8G8B8A8_SSCALED = VkFormat 40++-- | @VK_FORMAT_R8G8B8A8_UINT@ specifies a four-component, 32-bit unsigned+-- integer format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_R8G8B8A8_UINT :: VkFormat+pattern VK_FORMAT_R8G8B8A8_UINT = VkFormat 41++-- | @VK_FORMAT_R8G8B8A8_SINT@ specifies a four-component, 32-bit signed+-- integer format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_R8G8B8A8_SINT :: VkFormat+pattern VK_FORMAT_R8G8B8A8_SINT = VkFormat 42++-- | @VK_FORMAT_R8G8B8A8_SRGB@ specifies a four-component, 32-bit unsigned+-- normalized format that has an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1, an 8-bit B component stored with sRGB+-- nonlinear encoding in byte 2, and an 8-bit A component in byte 3.+pattern VK_FORMAT_R8G8B8A8_SRGB :: VkFormat+pattern VK_FORMAT_R8G8B8A8_SRGB = VkFormat 43++-- | @VK_FORMAT_B8G8R8A8_UNORM@ specifies a four-component, 32-bit unsigned+-- normalized format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_B8G8R8A8_UNORM :: VkFormat+pattern VK_FORMAT_B8G8R8A8_UNORM = VkFormat 44++-- | @VK_FORMAT_B8G8R8A8_SNORM@ specifies a four-component, 32-bit signed+-- normalized format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_B8G8R8A8_SNORM :: VkFormat+pattern VK_FORMAT_B8G8R8A8_SNORM = VkFormat 45++-- | @VK_FORMAT_B8G8R8A8_USCALED@ specifies a four-component, 32-bit unsigned+-- scaled format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_B8G8R8A8_USCALED :: VkFormat+pattern VK_FORMAT_B8G8R8A8_USCALED = VkFormat 46++-- | @VK_FORMAT_B8G8R8A8_SSCALED@ specifies a four-component, 32-bit signed+-- scaled format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_B8G8R8A8_SSCALED :: VkFormat+pattern VK_FORMAT_B8G8R8A8_SSCALED = VkFormat 47++-- | @VK_FORMAT_B8G8R8A8_UINT@ specifies a four-component, 32-bit unsigned+-- integer format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_B8G8R8A8_UINT :: VkFormat+pattern VK_FORMAT_B8G8R8A8_UINT = VkFormat 48++-- | @VK_FORMAT_B8G8R8A8_SINT@ specifies a four-component, 32-bit signed+-- integer format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern VK_FORMAT_B8G8R8A8_SINT :: VkFormat+pattern VK_FORMAT_B8G8R8A8_SINT = VkFormat 49++-- | @VK_FORMAT_B8G8R8A8_SRGB@ specifies a four-component, 32-bit unsigned+-- normalized format that has an 8-bit B component stored with sRGB+-- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1, an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 2, and an 8-bit A component in byte 3.+pattern VK_FORMAT_B8G8R8A8_SRGB :: VkFormat+pattern VK_FORMAT_B8G8R8A8_SRGB = VkFormat 50++-- | @VK_FORMAT_A8B8G8R8_UNORM_PACK32@ specifies a four-component, 32-bit+-- packed unsigned normalized format that has an 8-bit A component in bits+-- 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in+-- bits 8..15, and an 8-bit R component in bits 0..7.+pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 :: VkFormat+pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 = VkFormat 51++-- | @VK_FORMAT_A8B8G8R8_SNORM_PACK32@ specifies a four-component, 32-bit+-- packed signed normalized format that has an 8-bit A component in bits+-- 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in+-- bits 8..15, and an 8-bit R component in bits 0..7.+pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 :: VkFormat+pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 = VkFormat 52++-- | @VK_FORMAT_A8B8G8R8_USCALED_PACK32@ specifies a four-component, 32-bit+-- packed unsigned scaled integer format that has an 8-bit A component in+-- bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component+-- in bits 8..15, and an 8-bit R component in bits 0..7.+pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 :: VkFormat+pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 = VkFormat 53++-- | @VK_FORMAT_A8B8G8R8_SSCALED_PACK32@ specifies a four-component, 32-bit+-- packed signed scaled integer format that has an 8-bit A component in+-- bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component+-- in bits 8..15, and an 8-bit R component in bits 0..7.+pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 :: VkFormat+pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = VkFormat 54++-- | @VK_FORMAT_A8B8G8R8_UINT_PACK32@ specifies a four-component, 32-bit+-- packed unsigned integer format that has an 8-bit A component in bits+-- 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in+-- bits 8..15, and an 8-bit R component in bits 0..7.+pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 :: VkFormat+pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 = VkFormat 55++-- | @VK_FORMAT_A8B8G8R8_SINT_PACK32@ specifies a four-component, 32-bit+-- packed signed integer format that has an 8-bit A component in bits+-- 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in+-- bits 8..15, and an 8-bit R component in bits 0..7.+pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 :: VkFormat+pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 = VkFormat 56++-- | @VK_FORMAT_A8B8G8R8_SRGB_PACK32@ specifies a four-component, 32-bit+-- packed unsigned normalized format that has an 8-bit A component in bits+-- 24..31, an 8-bit B component stored with sRGB nonlinear encoding in bits+-- 16..23, an 8-bit G component stored with sRGB nonlinear encoding in bits+-- 8..15, and an 8-bit R component stored with sRGB nonlinear encoding in+-- bits 0..7.+pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 :: VkFormat+pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 = VkFormat 57++-- | @VK_FORMAT_A2R10G10B10_UNORM_PACK32@ specifies a four-component, 32-bit+-- packed unsigned normalized format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 :: VkFormat+pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 = VkFormat 58++-- | @VK_FORMAT_A2R10G10B10_SNORM_PACK32@ specifies a four-component, 32-bit+-- packed signed normalized format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 :: VkFormat+pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 = VkFormat 59++-- | @VK_FORMAT_A2R10G10B10_USCALED_PACK32@ specifies a four-component,+-- 32-bit packed unsigned scaled integer format that has a 2-bit A+-- component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit+-- G component in bits 10..19, and a 10-bit B component in bits 0..9.+pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 :: VkFormat+pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 = VkFormat 60++-- | @VK_FORMAT_A2R10G10B10_SSCALED_PACK32@ specifies a four-component,+-- 32-bit packed signed scaled integer format that has a 2-bit A component+-- in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G+-- component in bits 10..19, and a 10-bit B component in bits 0..9.+pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 :: VkFormat+pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = VkFormat 61++-- | @VK_FORMAT_A2R10G10B10_UINT_PACK32@ specifies a four-component, 32-bit+-- packed unsigned integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 :: VkFormat+pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 = VkFormat 62++-- | @VK_FORMAT_A2R10G10B10_SINT_PACK32@ specifies a four-component, 32-bit+-- packed signed integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 :: VkFormat+pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 = VkFormat 63++-- | @VK_FORMAT_A2B10G10R10_UNORM_PACK32@ specifies a four-component, 32-bit+-- packed unsigned normalized format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 :: VkFormat+pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 = VkFormat 64++-- | @VK_FORMAT_A2B10G10R10_SNORM_PACK32@ specifies a four-component, 32-bit+-- packed signed normalized format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 :: VkFormat+pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 = VkFormat 65++-- | @VK_FORMAT_A2B10G10R10_USCALED_PACK32@ specifies a four-component,+-- 32-bit packed unsigned scaled integer format that has a 2-bit A+-- component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit+-- G component in bits 10..19, and a 10-bit R component in bits 0..9.+pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 :: VkFormat+pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 = VkFormat 66++-- | @VK_FORMAT_A2B10G10R10_SSCALED_PACK32@ specifies a four-component,+-- 32-bit packed signed scaled integer format that has a 2-bit A component+-- in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G+-- component in bits 10..19, and a 10-bit R component in bits 0..9.+pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 :: VkFormat+pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = VkFormat 67++-- | @VK_FORMAT_A2B10G10R10_UINT_PACK32@ specifies a four-component, 32-bit+-- packed unsigned integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 :: VkFormat+pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 = VkFormat 68++-- | @VK_FORMAT_A2B10G10R10_SINT_PACK32@ specifies a four-component, 32-bit+-- packed signed integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 :: VkFormat+pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 = VkFormat 69++-- | @VK_FORMAT_R16_UNORM@ specifies a one-component, 16-bit unsigned+-- normalized format that has a single 16-bit R component.+pattern VK_FORMAT_R16_UNORM :: VkFormat+pattern VK_FORMAT_R16_UNORM = VkFormat 70++-- | @VK_FORMAT_R16_SNORM@ specifies a one-component, 16-bit signed+-- normalized format that has a single 16-bit R component.+pattern VK_FORMAT_R16_SNORM :: VkFormat+pattern VK_FORMAT_R16_SNORM = VkFormat 71++-- | @VK_FORMAT_R16_USCALED@ specifies a one-component, 16-bit unsigned+-- scaled integer format that has a single 16-bit R component.+pattern VK_FORMAT_R16_USCALED :: VkFormat+pattern VK_FORMAT_R16_USCALED = VkFormat 72++-- | @VK_FORMAT_R16_SSCALED@ specifies a one-component, 16-bit signed scaled+-- integer format that has a single 16-bit R component.+pattern VK_FORMAT_R16_SSCALED :: VkFormat+pattern VK_FORMAT_R16_SSCALED = VkFormat 73++-- | @VK_FORMAT_R16_UINT@ specifies a one-component, 16-bit unsigned integer+-- format that has a single 16-bit R component.+pattern VK_FORMAT_R16_UINT :: VkFormat+pattern VK_FORMAT_R16_UINT = VkFormat 74++-- | @VK_FORMAT_R16_SINT@ specifies a one-component, 16-bit signed integer+-- format that has a single 16-bit R component.+pattern VK_FORMAT_R16_SINT :: VkFormat+pattern VK_FORMAT_R16_SINT = VkFormat 75++-- | @VK_FORMAT_R16_SFLOAT@ specifies a one-component, 16-bit signed+-- floating-point format that has a single 16-bit R component.+pattern VK_FORMAT_R16_SFLOAT :: VkFormat+pattern VK_FORMAT_R16_SFLOAT = VkFormat 76++-- | @VK_FORMAT_R16G16_UNORM@ specifies a two-component, 32-bit unsigned+-- normalized format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern VK_FORMAT_R16G16_UNORM :: VkFormat+pattern VK_FORMAT_R16G16_UNORM = VkFormat 77++-- | @VK_FORMAT_R16G16_SNORM@ specifies a two-component, 32-bit signed+-- normalized format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern VK_FORMAT_R16G16_SNORM :: VkFormat+pattern VK_FORMAT_R16G16_SNORM = VkFormat 78++-- | @VK_FORMAT_R16G16_USCALED@ specifies a two-component, 32-bit unsigned+-- scaled integer format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern VK_FORMAT_R16G16_USCALED :: VkFormat+pattern VK_FORMAT_R16G16_USCALED = VkFormat 79++-- | @VK_FORMAT_R16G16_SSCALED@ specifies a two-component, 32-bit signed+-- scaled integer format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern VK_FORMAT_R16G16_SSCALED :: VkFormat+pattern VK_FORMAT_R16G16_SSCALED = VkFormat 80++-- | @VK_FORMAT_R16G16_UINT@ specifies a two-component, 32-bit unsigned+-- integer format that has a 16-bit R component in bytes 0..1, and a 16-bit+-- G component in bytes 2..3.+pattern VK_FORMAT_R16G16_UINT :: VkFormat+pattern VK_FORMAT_R16G16_UINT = VkFormat 81++-- | @VK_FORMAT_R16G16_SINT@ specifies a two-component, 32-bit signed integer+-- format that has a 16-bit R component in bytes 0..1, and a 16-bit G+-- component in bytes 2..3.+pattern VK_FORMAT_R16G16_SINT :: VkFormat+pattern VK_FORMAT_R16G16_SINT = VkFormat 82++-- | @VK_FORMAT_R16G16_SFLOAT@ specifies a two-component, 32-bit signed+-- floating-point format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern VK_FORMAT_R16G16_SFLOAT :: VkFormat+pattern VK_FORMAT_R16G16_SFLOAT = VkFormat 83++-- | @VK_FORMAT_R16G16B16_UNORM@ specifies a three-component, 48-bit unsigned+-- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit+-- G component in bytes 2..3, and a 16-bit B component in bytes 4..5.+pattern VK_FORMAT_R16G16B16_UNORM :: VkFormat+pattern VK_FORMAT_R16G16B16_UNORM = VkFormat 84++-- | @VK_FORMAT_R16G16B16_SNORM@ specifies a three-component, 48-bit signed+-- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit+-- G component in bytes 2..3, and a 16-bit B component in bytes 4..5.+pattern VK_FORMAT_R16G16B16_SNORM :: VkFormat+pattern VK_FORMAT_R16G16B16_SNORM = VkFormat 85++-- | @VK_FORMAT_R16G16B16_USCALED@ specifies a three-component, 48-bit+-- unsigned scaled integer format that has a 16-bit R component in bytes+-- 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in+-- bytes 4..5.+pattern VK_FORMAT_R16G16B16_USCALED :: VkFormat+pattern VK_FORMAT_R16G16B16_USCALED = VkFormat 86++-- | @VK_FORMAT_R16G16B16_SSCALED@ specifies a three-component, 48-bit signed+-- scaled integer format that has a 16-bit R component in bytes 0..1, a+-- 16-bit G component in bytes 2..3, and a 16-bit B component in bytes+-- 4..5.+pattern VK_FORMAT_R16G16B16_SSCALED :: VkFormat+pattern VK_FORMAT_R16G16B16_SSCALED = VkFormat 87++-- | @VK_FORMAT_R16G16B16_UINT@ specifies a three-component, 48-bit unsigned+-- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G+-- component in bytes 2..3, and a 16-bit B component in bytes 4..5.+pattern VK_FORMAT_R16G16B16_UINT :: VkFormat+pattern VK_FORMAT_R16G16B16_UINT = VkFormat 88++-- | @VK_FORMAT_R16G16B16_SINT@ specifies a three-component, 48-bit signed+-- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G+-- component in bytes 2..3, and a 16-bit B component in bytes 4..5.+pattern VK_FORMAT_R16G16B16_SINT :: VkFormat+pattern VK_FORMAT_R16G16B16_SINT = VkFormat 89++-- | @VK_FORMAT_R16G16B16_SFLOAT@ specifies a three-component, 48-bit signed+-- floating-point format that has a 16-bit R component in bytes 0..1, a+-- 16-bit G component in bytes 2..3, and a 16-bit B component in bytes+-- 4..5.+pattern VK_FORMAT_R16G16B16_SFLOAT :: VkFormat+pattern VK_FORMAT_R16G16B16_SFLOAT = VkFormat 90++-- | @VK_FORMAT_R16G16B16A16_UNORM@ specifies a four-component, 64-bit+-- unsigned normalized format that has a 16-bit R component in bytes 0..1,+-- a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5,+-- and a 16-bit A component in bytes 6..7.+pattern VK_FORMAT_R16G16B16A16_UNORM :: VkFormat+pattern VK_FORMAT_R16G16B16A16_UNORM = VkFormat 91++-- | @VK_FORMAT_R16G16B16A16_SNORM@ specifies a four-component, 64-bit signed+-- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit+-- G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a+-- 16-bit A component in bytes 6..7.+pattern VK_FORMAT_R16G16B16A16_SNORM :: VkFormat+pattern VK_FORMAT_R16G16B16A16_SNORM = VkFormat 92++-- | @VK_FORMAT_R16G16B16A16_USCALED@ specifies a four-component, 64-bit+-- unsigned scaled integer format that has a 16-bit R component in bytes+-- 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes+-- 4..5, and a 16-bit A component in bytes 6..7.+pattern VK_FORMAT_R16G16B16A16_USCALED :: VkFormat+pattern VK_FORMAT_R16G16B16A16_USCALED = VkFormat 93++-- | @VK_FORMAT_R16G16B16A16_SSCALED@ specifies a four-component, 64-bit+-- signed scaled integer format that has a 16-bit R component in bytes+-- 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes+-- 4..5, and a 16-bit A component in bytes 6..7.+pattern VK_FORMAT_R16G16B16A16_SSCALED :: VkFormat+pattern VK_FORMAT_R16G16B16A16_SSCALED = VkFormat 94++-- | @VK_FORMAT_R16G16B16A16_UINT@ specifies a four-component, 64-bit+-- unsigned integer format that has a 16-bit R component in bytes 0..1, a+-- 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5,+-- and a 16-bit A component in bytes 6..7.+pattern VK_FORMAT_R16G16B16A16_UINT :: VkFormat+pattern VK_FORMAT_R16G16B16A16_UINT = VkFormat 95++-- | @VK_FORMAT_R16G16B16A16_SINT@ specifies a four-component, 64-bit signed+-- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G+-- component in bytes 2..3, a 16-bit B component in bytes 4..5, and a+-- 16-bit A component in bytes 6..7.+pattern VK_FORMAT_R16G16B16A16_SINT :: VkFormat+pattern VK_FORMAT_R16G16B16A16_SINT = VkFormat 96++-- | @VK_FORMAT_R16G16B16A16_SFLOAT@ specifies a four-component, 64-bit+-- signed floating-point format that has a 16-bit R component in bytes+-- 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes+-- 4..5, and a 16-bit A component in bytes 6..7.+pattern VK_FORMAT_R16G16B16A16_SFLOAT :: VkFormat+pattern VK_FORMAT_R16G16B16A16_SFLOAT = VkFormat 97++-- | @VK_FORMAT_R32_UINT@ specifies a one-component, 32-bit unsigned integer+-- format that has a single 32-bit R component.+pattern VK_FORMAT_R32_UINT :: VkFormat+pattern VK_FORMAT_R32_UINT = VkFormat 98++-- | @VK_FORMAT_R32_SINT@ specifies a one-component, 32-bit signed integer+-- format that has a single 32-bit R component.+pattern VK_FORMAT_R32_SINT :: VkFormat+pattern VK_FORMAT_R32_SINT = VkFormat 99++-- | @VK_FORMAT_R32_SFLOAT@ specifies a one-component, 32-bit signed+-- floating-point format that has a single 32-bit R component.+pattern VK_FORMAT_R32_SFLOAT :: VkFormat+pattern VK_FORMAT_R32_SFLOAT = VkFormat 100++-- | @VK_FORMAT_R32G32_UINT@ specifies a two-component, 64-bit unsigned+-- integer format that has a 32-bit R component in bytes 0..3, and a 32-bit+-- G component in bytes 4..7.+pattern VK_FORMAT_R32G32_UINT :: VkFormat+pattern VK_FORMAT_R32G32_UINT = VkFormat 101++-- | @VK_FORMAT_R32G32_SINT@ specifies a two-component, 64-bit signed integer+-- format that has a 32-bit R component in bytes 0..3, and a 32-bit G+-- component in bytes 4..7.+pattern VK_FORMAT_R32G32_SINT :: VkFormat+pattern VK_FORMAT_R32G32_SINT = VkFormat 102++-- | @VK_FORMAT_R32G32_SFLOAT@ specifies a two-component, 64-bit signed+-- floating-point format that has a 32-bit R component in bytes 0..3, and a+-- 32-bit G component in bytes 4..7.+pattern VK_FORMAT_R32G32_SFLOAT :: VkFormat+pattern VK_FORMAT_R32G32_SFLOAT = VkFormat 103++-- | @VK_FORMAT_R32G32B32_UINT@ specifies a three-component, 96-bit unsigned+-- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G+-- component in bytes 4..7, and a 32-bit B component in bytes 8..11.+pattern VK_FORMAT_R32G32B32_UINT :: VkFormat+pattern VK_FORMAT_R32G32B32_UINT = VkFormat 104++-- | @VK_FORMAT_R32G32B32_SINT@ specifies a three-component, 96-bit signed+-- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G+-- component in bytes 4..7, and a 32-bit B component in bytes 8..11.+pattern VK_FORMAT_R32G32B32_SINT :: VkFormat+pattern VK_FORMAT_R32G32B32_SINT = VkFormat 105++-- | @VK_FORMAT_R32G32B32_SFLOAT@ specifies a three-component, 96-bit signed+-- floating-point format that has a 32-bit R component in bytes 0..3, a+-- 32-bit G component in bytes 4..7, and a 32-bit B component in bytes+-- 8..11.+pattern VK_FORMAT_R32G32B32_SFLOAT :: VkFormat+pattern VK_FORMAT_R32G32B32_SFLOAT = VkFormat 106++-- | @VK_FORMAT_R32G32B32A32_UINT@ specifies a four-component, 128-bit+-- unsigned integer format that has a 32-bit R component in bytes 0..3, a+-- 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11,+-- and a 32-bit A component in bytes 12..15.+pattern VK_FORMAT_R32G32B32A32_UINT :: VkFormat+pattern VK_FORMAT_R32G32B32A32_UINT = VkFormat 107++-- | @VK_FORMAT_R32G32B32A32_SINT@ specifies a four-component, 128-bit signed+-- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G+-- component in bytes 4..7, a 32-bit B component in bytes 8..11, and a+-- 32-bit A component in bytes 12..15.+pattern VK_FORMAT_R32G32B32A32_SINT :: VkFormat+pattern VK_FORMAT_R32G32B32A32_SINT = VkFormat 108++-- | @VK_FORMAT_R32G32B32A32_SFLOAT@ specifies a four-component, 128-bit+-- signed floating-point format that has a 32-bit R component in bytes+-- 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes+-- 8..11, and a 32-bit A component in bytes 12..15.+pattern VK_FORMAT_R32G32B32A32_SFLOAT :: VkFormat+pattern VK_FORMAT_R32G32B32A32_SFLOAT = VkFormat 109++-- | @VK_FORMAT_R64_UINT@ specifies a one-component, 64-bit unsigned integer+-- format that has a single 64-bit R component.+pattern VK_FORMAT_R64_UINT :: VkFormat+pattern VK_FORMAT_R64_UINT = VkFormat 110++-- | @VK_FORMAT_R64_SINT@ specifies a one-component, 64-bit signed integer+-- format that has a single 64-bit R component.+pattern VK_FORMAT_R64_SINT :: VkFormat+pattern VK_FORMAT_R64_SINT = VkFormat 111++-- | @VK_FORMAT_R64_SFLOAT@ specifies a one-component, 64-bit signed+-- floating-point format that has a single 64-bit R component.+pattern VK_FORMAT_R64_SFLOAT :: VkFormat+pattern VK_FORMAT_R64_SFLOAT = VkFormat 112++-- | @VK_FORMAT_R64G64_UINT@ specifies a two-component, 128-bit unsigned+-- integer format that has a 64-bit R component in bytes 0..7, and a 64-bit+-- G component in bytes 8..15.+pattern VK_FORMAT_R64G64_UINT :: VkFormat+pattern VK_FORMAT_R64G64_UINT = VkFormat 113++-- | @VK_FORMAT_R64G64_SINT@ specifies a two-component, 128-bit signed+-- integer format that has a 64-bit R component in bytes 0..7, and a 64-bit+-- G component in bytes 8..15.+pattern VK_FORMAT_R64G64_SINT :: VkFormat+pattern VK_FORMAT_R64G64_SINT = VkFormat 114++-- | @VK_FORMAT_R64G64_SFLOAT@ specifies a two-component, 128-bit signed+-- floating-point format that has a 64-bit R component in bytes 0..7, and a+-- 64-bit G component in bytes 8..15.+pattern VK_FORMAT_R64G64_SFLOAT :: VkFormat+pattern VK_FORMAT_R64G64_SFLOAT = VkFormat 115++-- | @VK_FORMAT_R64G64B64_UINT@ specifies a three-component, 192-bit unsigned+-- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G+-- component in bytes 8..15, and a 64-bit B component in bytes 16..23.+pattern VK_FORMAT_R64G64B64_UINT :: VkFormat+pattern VK_FORMAT_R64G64B64_UINT = VkFormat 116++-- | @VK_FORMAT_R64G64B64_SINT@ specifies a three-component, 192-bit signed+-- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G+-- component in bytes 8..15, and a 64-bit B component in bytes 16..23.+pattern VK_FORMAT_R64G64B64_SINT :: VkFormat+pattern VK_FORMAT_R64G64B64_SINT = VkFormat 117++-- | @VK_FORMAT_R64G64B64_SFLOAT@ specifies a three-component, 192-bit signed+-- floating-point format that has a 64-bit R component in bytes 0..7, a+-- 64-bit G component in bytes 8..15, and a 64-bit B component in bytes+-- 16..23.+pattern VK_FORMAT_R64G64B64_SFLOAT :: VkFormat+pattern VK_FORMAT_R64G64B64_SFLOAT = VkFormat 118++-- | @VK_FORMAT_R64G64B64A64_UINT@ specifies a four-component, 256-bit+-- unsigned integer format that has a 64-bit R component in bytes 0..7, a+-- 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23,+-- and a 64-bit A component in bytes 24..31.+pattern VK_FORMAT_R64G64B64A64_UINT :: VkFormat+pattern VK_FORMAT_R64G64B64A64_UINT = VkFormat 119++-- | @VK_FORMAT_R64G64B64A64_SINT@ specifies a four-component, 256-bit signed+-- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G+-- component in bytes 8..15, a 64-bit B component in bytes 16..23, and a+-- 64-bit A component in bytes 24..31.+pattern VK_FORMAT_R64G64B64A64_SINT :: VkFormat+pattern VK_FORMAT_R64G64B64A64_SINT = VkFormat 120++-- | @VK_FORMAT_R64G64B64A64_SFLOAT@ specifies a four-component, 256-bit+-- signed floating-point format that has a 64-bit R component in bytes+-- 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes+-- 16..23, and a 64-bit A component in bytes 24..31.+pattern VK_FORMAT_R64G64B64A64_SFLOAT :: VkFormat+pattern VK_FORMAT_R64G64B64A64_SFLOAT = VkFormat 121++-- | @VK_FORMAT_B10G11R11_UFLOAT_PACK32@ specifies a three-component, 32-bit+-- packed unsigned floating-point format that has a 10-bit B component in+-- bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R component+-- in bits 0..10. See+-- <{html_spec_relative}#fundamentals-fp10 {html_spec_relative}#fundamentals-fp10>+-- and+-- <{html_spec_relative}#fundamentals-fp11 {html_spec_relative}#fundamentals-fp11>.+pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 :: VkFormat+pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 = VkFormat 122++-- | @VK_FORMAT_E5B9G9R9_UFLOAT_PACK32@ specifies a three-component, 32-bit+-- packed unsigned floating-point format that has a 5-bit shared exponent+-- in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 9-bit G+-- component mantissa in bits 9..17, and a 9-bit R component mantissa in+-- bits 0..8.+pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 :: VkFormat+pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = VkFormat 123++-- | @VK_FORMAT_D16_UNORM@ specifies a one-component, 16-bit unsigned+-- normalized format that has a single 16-bit depth component.+pattern VK_FORMAT_D16_UNORM :: VkFormat+pattern VK_FORMAT_D16_UNORM = VkFormat 124++-- | @VK_FORMAT_X8_D24_UNORM_PACK32@ specifies a two-component, 32-bit format+-- that has 24 unsigned normalized bits in the depth component and,+-- optionally:, 8 bits that are unused.+pattern VK_FORMAT_X8_D24_UNORM_PACK32 :: VkFormat+pattern VK_FORMAT_X8_D24_UNORM_PACK32 = VkFormat 125++-- | @VK_FORMAT_D32_SFLOAT@ specifies a one-component, 32-bit signed+-- floating-point format that has 32-bits in the depth component.+pattern VK_FORMAT_D32_SFLOAT :: VkFormat+pattern VK_FORMAT_D32_SFLOAT = VkFormat 126++-- | @VK_FORMAT_S8_UINT@ specifies a one-component, 8-bit unsigned integer+-- format that has 8-bits in the stencil component.+pattern VK_FORMAT_S8_UINT :: VkFormat+pattern VK_FORMAT_S8_UINT = VkFormat 127++-- | @VK_FORMAT_D16_UNORM_S8_UINT@ specifies a two-component, 24-bit format+-- that has 16 unsigned normalized bits in the depth component and 8+-- unsigned integer bits in the stencil component.+pattern VK_FORMAT_D16_UNORM_S8_UINT :: VkFormat+pattern VK_FORMAT_D16_UNORM_S8_UINT = VkFormat 128++-- | @VK_FORMAT_D24_UNORM_S8_UINT@ specifies a two-component, 32-bit packed+-- format that has 8 unsigned integer bits in the stencil component, and 24+-- unsigned normalized bits in the depth component.+pattern VK_FORMAT_D24_UNORM_S8_UINT :: VkFormat+pattern VK_FORMAT_D24_UNORM_S8_UINT = VkFormat 129++-- | @VK_FORMAT_D32_SFLOAT_S8_UINT@ specifies a two-component format that has+-- 32 signed float bits in the depth component and 8 unsigned integer bits+-- in the stencil component. There are optionally: 24-bits that are unused.+pattern VK_FORMAT_D32_SFLOAT_S8_UINT :: VkFormat+pattern VK_FORMAT_D32_SFLOAT_S8_UINT = VkFormat 130++-- | @VK_FORMAT_BC1_RGB_UNORM_BLOCK@ specifies a three-component,+-- block-compressed format where each 64-bit compressed texel block encodes+-- a 4×4 rectangle of unsigned normalized RGB texel data. This format has+-- no alpha and is considered opaque.+pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK = VkFormat 131++-- | @VK_FORMAT_BC1_RGB_SRGB_BLOCK@ specifies a three-component,+-- block-compressed format where each 64-bit compressed texel block encodes+-- a 4×4 rectangle of unsigned normalized RGB texel data with sRGB+-- nonlinear encoding. This format has no alpha and is considered opaque.+pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK = VkFormat 132++-- | @VK_FORMAT_BC1_RGBA_UNORM_BLOCK@ specifies a four-component,+-- block-compressed format where each 64-bit compressed texel block encodes+-- a 4×4 rectangle of unsigned normalized RGB texel data, and provides 1+-- bit of alpha.+pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK = VkFormat 133++-- | @VK_FORMAT_BC1_RGBA_SRGB_BLOCK@ specifies a four-component,+-- block-compressed format where each 64-bit compressed texel block encodes+-- a 4×4 rectangle of unsigned normalized RGB texel data with sRGB+-- nonlinear encoding, and provides 1 bit of alpha.+pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK = VkFormat 134++-- | @VK_FORMAT_BC2_UNORM_BLOCK@ specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with the first 64 bits encoding+-- alpha values followed by 64 bits encoding RGB values.+pattern VK_FORMAT_BC2_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC2_UNORM_BLOCK = VkFormat 135++-- | @VK_FORMAT_BC2_SRGB_BLOCK@ specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with the first 64 bits encoding+-- alpha values followed by 64 bits encoding RGB values with sRGB nonlinear+-- encoding.+pattern VK_FORMAT_BC2_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_BC2_SRGB_BLOCK = VkFormat 136++-- | @VK_FORMAT_BC3_UNORM_BLOCK@ specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with the first 64 bits encoding+-- alpha values followed by 64 bits encoding RGB values.+pattern VK_FORMAT_BC3_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC3_UNORM_BLOCK = VkFormat 137++-- | @VK_FORMAT_BC3_SRGB_BLOCK@ specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with the first 64 bits encoding+-- alpha values followed by 64 bits encoding RGB values with sRGB nonlinear+-- encoding.+pattern VK_FORMAT_BC3_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_BC3_SRGB_BLOCK = VkFormat 138++-- | @VK_FORMAT_BC4_UNORM_BLOCK@ specifies a one-component, block-compressed+-- format where each 64-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized red texel data.+pattern VK_FORMAT_BC4_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC4_UNORM_BLOCK = VkFormat 139++-- | @VK_FORMAT_BC4_SNORM_BLOCK@ specifies a one-component, block-compressed+-- format where each 64-bit compressed texel block encodes a 4×4 rectangle+-- of signed normalized red texel data.+pattern VK_FORMAT_BC4_SNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC4_SNORM_BLOCK = VkFormat 140++-- | @VK_FORMAT_BC5_UNORM_BLOCK@ specifies a two-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RG texel data with the first 64 bits encoding red+-- values followed by 64 bits encoding green values.+pattern VK_FORMAT_BC5_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC5_UNORM_BLOCK = VkFormat 141++-- | @VK_FORMAT_BC5_SNORM_BLOCK@ specifies a two-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of signed normalized RG texel data with the first 64 bits encoding red+-- values followed by 64 bits encoding green values.+pattern VK_FORMAT_BC5_SNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC5_SNORM_BLOCK = VkFormat 142++-- | @VK_FORMAT_BC6H_UFLOAT_BLOCK@ specifies a three-component,+-- block-compressed format where each 128-bit compressed texel block+-- encodes a 4×4 rectangle of unsigned floating-point RGB texel data.+pattern VK_FORMAT_BC6H_UFLOAT_BLOCK :: VkFormat+pattern VK_FORMAT_BC6H_UFLOAT_BLOCK = VkFormat 143++-- | @VK_FORMAT_BC6H_SFLOAT_BLOCK@ specifies a three-component,+-- block-compressed format where each 128-bit compressed texel block+-- encodes a 4×4 rectangle of signed floating-point RGB texel data.+pattern VK_FORMAT_BC6H_SFLOAT_BLOCK :: VkFormat+pattern VK_FORMAT_BC6H_SFLOAT_BLOCK = VkFormat 144++-- | @VK_FORMAT_BC7_UNORM_BLOCK@ specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data.+pattern VK_FORMAT_BC7_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_BC7_UNORM_BLOCK = VkFormat 145++-- | @VK_FORMAT_BC7_SRGB_BLOCK@ specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with sRGB nonlinear encoding+-- applied to the RGB components.+pattern VK_FORMAT_BC7_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_BC7_SRGB_BLOCK = VkFormat 146++-- | @VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK@ specifies a three-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized RGB texel data. This format has no+-- alpha and is considered opaque.+pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = VkFormat 147++-- | @VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK@ specifies a three-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized RGB texel data with sRGB nonlinear+-- encoding. This format has no alpha and is considered opaque.+pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = VkFormat 148++-- | @VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK@ specifies a four-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized RGB texel data, and provides 1 bit of+-- alpha.+pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = VkFormat 149++-- | @VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK@ specifies a four-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized RGB texel data with sRGB nonlinear+-- encoding, and provides 1 bit of alpha.+pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = VkFormat 150++-- | @VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK@ specifies a four-component, ETC2+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RGBA texel data with the first 64+-- bits encoding alpha values followed by 64 bits encoding RGB values.+pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = VkFormat 151++-- | @VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK@ specifies a four-component, ETC2+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RGBA texel data with the first 64+-- bits encoding alpha values followed by 64 bits encoding RGB values with+-- sRGB nonlinear encoding applied.+pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = VkFormat 152++-- | @VK_FORMAT_EAC_R11_UNORM_BLOCK@ specifies a one-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized red texel data.+pattern VK_FORMAT_EAC_R11_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_EAC_R11_UNORM_BLOCK = VkFormat 153++-- | @VK_FORMAT_EAC_R11_SNORM_BLOCK@ specifies a one-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of signed normalized red texel data.+pattern VK_FORMAT_EAC_R11_SNORM_BLOCK :: VkFormat+pattern VK_FORMAT_EAC_R11_SNORM_BLOCK = VkFormat 154++-- | @VK_FORMAT_EAC_R11G11_UNORM_BLOCK@ specifies a two-component, ETC2+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RG texel data with the first 64+-- bits encoding red values followed by 64 bits encoding green values.+pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK = VkFormat 155++-- | @VK_FORMAT_EAC_R11G11_SNORM_BLOCK@ specifies a two-component, ETC2+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of signed normalized RG texel data with the first 64 bits+-- encoding red values followed by 64 bits encoding green values.+pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK :: VkFormat+pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK = VkFormat 156++-- | @VK_FORMAT_ASTC_4x4_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK = VkFormat 157++-- | @VK_FORMAT_ASTC_4x4_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK = VkFormat 158++-- | @VK_FORMAT_ASTC_5x4_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×4 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK = VkFormat 159++-- | @VK_FORMAT_ASTC_5x4_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK = VkFormat 160++-- | @VK_FORMAT_ASTC_5x5_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×5 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK = VkFormat 161++-- | @VK_FORMAT_ASTC_5x5_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK = VkFormat 162++-- | @VK_FORMAT_ASTC_6x5_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×5 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK = VkFormat 163++-- | @VK_FORMAT_ASTC_6x5_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK = VkFormat 164++-- | @VK_FORMAT_ASTC_6x6_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×6 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK = VkFormat 165++-- | @VK_FORMAT_ASTC_6x6_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK = VkFormat 166++-- | @VK_FORMAT_ASTC_8x5_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×5 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK = VkFormat 167++-- | @VK_FORMAT_ASTC_8x5_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK = VkFormat 168++-- | @VK_FORMAT_ASTC_8x6_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×6 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK = VkFormat 169++-- | @VK_FORMAT_ASTC_8x6_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK = VkFormat 170++-- | @VK_FORMAT_ASTC_8x8_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×8 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK = VkFormat 171++-- | @VK_FORMAT_ASTC_8x8_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK = VkFormat 172++-- | @VK_FORMAT_ASTC_10x5_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×5 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK = VkFormat 173++-- | @VK_FORMAT_ASTC_10x5_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×5 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK = VkFormat 174++-- | @VK_FORMAT_ASTC_10x6_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×6 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK = VkFormat 175++-- | @VK_FORMAT_ASTC_10x6_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×6 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK = VkFormat 176++-- | @VK_FORMAT_ASTC_10x8_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×8 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK = VkFormat 177++-- | @VK_FORMAT_ASTC_10x8_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×8 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK = VkFormat 178++-- | @VK_FORMAT_ASTC_10x10_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×10 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK = VkFormat 179++-- | @VK_FORMAT_ASTC_10x10_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×10 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK = VkFormat 180++-- | @VK_FORMAT_ASTC_12x10_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×10 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK = VkFormat 181++-- | @VK_FORMAT_ASTC_12x10_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×10 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK = VkFormat 182++-- | @VK_FORMAT_ASTC_12x12_UNORM_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×12 rectangle of unsigned normalized RGBA texel data.+pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK = VkFormat 183++-- | @VK_FORMAT_ASTC_12x12_SRGB_BLOCK@ specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×12 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK :: VkFormat+pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK = VkFormat 184+-- ** VkResult++-- | VkResult - Vulkan command return codes+--+-- = Description+-- #_description#+--+-- -   @VK_SUCCESS@ Command successfully completed+--+-- -   @VK_NOT_READY@ A fence or query has not yet completed+--+-- -   @VK_TIMEOUT@ A wait operation has not completed in the specified+--     time+--+-- -   @VK_EVENT_SET@ An event is signaled+--+-- -   @VK_EVENT_RESET@ An event is unsignaled+--+-- -   @VK_INCOMPLETE@ A return array was too small for the result+--+-- -   @VK_ERROR_OUT_OF_HOST_MEMORY@ A host memory allocation has failed.+--+-- -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@ A device memory allocation has+--     failed.+--+-- -   @VK_ERROR_INITIALIZATION_FAILED@ Initialization of an object could+--     not be completed for implementation-specific reasons.+--+-- -   @VK_ERROR_DEVICE_LOST@ The logical or physical device has been lost.+--     See <{html_spec_relative}#devsandqueues-lost-device Lost Device>+--+-- -   @VK_ERROR_MEMORY_MAP_FAILED@ Mapping of a memory object has failed.+--+-- -   @VK_ERROR_LAYER_NOT_PRESENT@ A requested layer is not present or+--     could not be loaded.+--+-- -   @VK_ERROR_EXTENSION_NOT_PRESENT@ A requested extension is not+--     supported.+--+-- -   @VK_ERROR_FEATURE_NOT_PRESENT@ A requested feature is not supported.+--+-- -   @VK_ERROR_INCOMPATIBLE_DRIVER@ The requested version of Vulkan is+--     not supported by the driver or is otherwise incompatible for+--     implementation-specific reasons.+--+-- -   @VK_ERROR_TOO_MANY_OBJECTS@ Too many objects of the type have+--     already been created.+--+-- -   @VK_ERROR_FORMAT_NOT_SUPPORTED@ A requested format is not supported+--     on this device.+--+-- -   @VK_ERROR_FRAGMENTED_POOL@ A pool allocation has failed due to+--     fragmentation of the pool’s memory. This /must/ only be returned if+--     no attempt to allocate host or device memory was made to accomodate+--     the new allocation.+--+-- If a command returns a run time error, unless otherwise specified any+-- output parameters will have undefined contents, except that if the+-- output parameter is a structure with @sType@ and @pNext@ fields, those+-- fields will be unmodified. Any structures chained from @pNext@ will also+-- have undefined contents, except that @sType@ and @pNext@ will be+-- unmodified.+--+-- Out of memory errors do not damage any currently existing Vulkan+-- objects. Objects that have already been successfully created /can/ still+-- be used by the application.+--+-- Performance-critical commands generally do not have return codes. If a+-- run time error occurs in such commands, the implementation will defer+-- reporting the error until a specified point. For commands that record+-- into command buffers (@vkCmd*@) run time errors are reported by+-- @vkEndCommandBuffer@.+--+-- = See Also+-- #_see_also#+--+-- No cross-references are available,+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR'+newtype VkResult = VkResult Int32+  deriving (Eq, Ord, Storable)++instance Show VkResult where+  showsPrec _ VK_SUCCESS = showString "VK_SUCCESS"+  showsPrec _ VK_NOT_READY = showString "VK_NOT_READY"+  showsPrec _ VK_TIMEOUT = showString "VK_TIMEOUT"+  showsPrec _ VK_EVENT_SET = showString "VK_EVENT_SET"+  showsPrec _ VK_EVENT_RESET = showString "VK_EVENT_RESET"+  showsPrec _ VK_INCOMPLETE = showString "VK_INCOMPLETE"+  showsPrec _ VK_ERROR_OUT_OF_HOST_MEMORY = showString "VK_ERROR_OUT_OF_HOST_MEMORY"+  showsPrec _ VK_ERROR_OUT_OF_DEVICE_MEMORY = showString "VK_ERROR_OUT_OF_DEVICE_MEMORY"+  showsPrec _ VK_ERROR_INITIALIZATION_FAILED = showString "VK_ERROR_INITIALIZATION_FAILED"+  showsPrec _ VK_ERROR_DEVICE_LOST = showString "VK_ERROR_DEVICE_LOST"+  showsPrec _ VK_ERROR_MEMORY_MAP_FAILED = showString "VK_ERROR_MEMORY_MAP_FAILED"+  showsPrec _ VK_ERROR_LAYER_NOT_PRESENT = showString "VK_ERROR_LAYER_NOT_PRESENT"+  showsPrec _ VK_ERROR_EXTENSION_NOT_PRESENT = showString "VK_ERROR_EXTENSION_NOT_PRESENT"+  showsPrec _ VK_ERROR_FEATURE_NOT_PRESENT = showString "VK_ERROR_FEATURE_NOT_PRESENT"+  showsPrec _ VK_ERROR_INCOMPATIBLE_DRIVER = showString "VK_ERROR_INCOMPATIBLE_DRIVER"+  showsPrec _ VK_ERROR_TOO_MANY_OBJECTS = showString "VK_ERROR_TOO_MANY_OBJECTS"+  showsPrec _ VK_ERROR_FORMAT_NOT_SUPPORTED = showString "VK_ERROR_FORMAT_NOT_SUPPORTED"+  showsPrec _ VK_ERROR_FRAGMENTED_POOL = showString "VK_ERROR_FRAGMENTED_POOL"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkResult (-1000069000)) = showString "VK_ERROR_OUT_OF_POOL_MEMORY"+  showsPrec _ (VkResult (-1000072003)) = showString "VK_ERROR_INVALID_EXTERNAL_HANDLE"+  showsPrec _ (VkResult (-1000000000)) = showString "VK_ERROR_SURFACE_LOST_KHR"+  showsPrec _ (VkResult (-1000000001)) = showString "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"+  showsPrec _ (VkResult 1000001003) = showString "VK_SUBOPTIMAL_KHR"+  showsPrec _ (VkResult (-1000001004)) = showString "VK_ERROR_OUT_OF_DATE_KHR"+  showsPrec _ (VkResult (-1000003001)) = showString "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR"+  showsPrec _ (VkResult (-1000011001)) = showString "VK_ERROR_VALIDATION_FAILED_EXT"+  showsPrec _ (VkResult (-1000012000)) = showString "VK_ERROR_INVALID_SHADER_NV"+  showsPrec _ (VkResult (-1000161000)) = showString "VK_ERROR_FRAGMENTATION_EXT"+  showsPrec _ (VkResult (-1000174001)) = showString "VK_ERROR_NOT_PERMITTED_EXT"+  showsPrec p (VkResult x) = showParen (p >= 11) (showString "VkResult " . showsPrec 11 x)++instance Read VkResult where+  readPrec = parens ( choose [ ("VK_SUCCESS",                     pure VK_SUCCESS)+                             , ("VK_NOT_READY",                   pure VK_NOT_READY)+                             , ("VK_TIMEOUT",                     pure VK_TIMEOUT)+                             , ("VK_EVENT_SET",                   pure VK_EVENT_SET)+                             , ("VK_EVENT_RESET",                 pure VK_EVENT_RESET)+                             , ("VK_INCOMPLETE",                  pure VK_INCOMPLETE)+                             , ("VK_ERROR_OUT_OF_HOST_MEMORY",    pure VK_ERROR_OUT_OF_HOST_MEMORY)+                             , ("VK_ERROR_OUT_OF_DEVICE_MEMORY",  pure VK_ERROR_OUT_OF_DEVICE_MEMORY)+                             , ("VK_ERROR_INITIALIZATION_FAILED", pure VK_ERROR_INITIALIZATION_FAILED)+                             , ("VK_ERROR_DEVICE_LOST",           pure VK_ERROR_DEVICE_LOST)+                             , ("VK_ERROR_MEMORY_MAP_FAILED",     pure VK_ERROR_MEMORY_MAP_FAILED)+                             , ("VK_ERROR_LAYER_NOT_PRESENT",     pure VK_ERROR_LAYER_NOT_PRESENT)+                             , ("VK_ERROR_EXTENSION_NOT_PRESENT", pure VK_ERROR_EXTENSION_NOT_PRESENT)+                             , ("VK_ERROR_FEATURE_NOT_PRESENT",   pure VK_ERROR_FEATURE_NOT_PRESENT)+                             , ("VK_ERROR_INCOMPATIBLE_DRIVER",   pure VK_ERROR_INCOMPATIBLE_DRIVER)+                             , ("VK_ERROR_TOO_MANY_OBJECTS",      pure VK_ERROR_TOO_MANY_OBJECTS)+                             , ("VK_ERROR_FORMAT_NOT_SUPPORTED",  pure VK_ERROR_FORMAT_NOT_SUPPORTED)+                             , ("VK_ERROR_FRAGMENTED_POOL",       pure VK_ERROR_FRAGMENTED_POOL)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_ERROR_OUT_OF_POOL_MEMORY",       pure (VkResult (-1000069000)))+                             , ("VK_ERROR_INVALID_EXTERNAL_HANDLE",  pure (VkResult (-1000072003)))+                             , ("VK_ERROR_SURFACE_LOST_KHR",         pure (VkResult (-1000000000)))+                             , ("VK_ERROR_NATIVE_WINDOW_IN_USE_KHR", pure (VkResult (-1000000001)))+                             , ("VK_SUBOPTIMAL_KHR",                 pure (VkResult 1000001003))+                             , ("VK_ERROR_OUT_OF_DATE_KHR",          pure (VkResult (-1000001004)))+                             , ("VK_ERROR_INCOMPATIBLE_DISPLAY_KHR", pure (VkResult (-1000003001)))+                             , ("VK_ERROR_VALIDATION_FAILED_EXT",    pure (VkResult (-1000011001)))+                             , ("VK_ERROR_INVALID_SHADER_NV",        pure (VkResult (-1000012000)))+                             , ("VK_ERROR_FRAGMENTATION_EXT",        pure (VkResult (-1000161000)))+                             , ("VK_ERROR_NOT_PERMITTED_EXT",        pure (VkResult (-1000174001)))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkResult")+                        v <- step readPrec+                        pure (VkResult v)+                        )+                    )++-- No documentation found for Nested "VkResult" "VK_SUCCESS"+pattern VK_SUCCESS :: VkResult+pattern VK_SUCCESS = VkResult 0++-- No documentation found for Nested "VkResult" "VK_NOT_READY"+pattern VK_NOT_READY :: VkResult+pattern VK_NOT_READY = VkResult 1++-- No documentation found for Nested "VkResult" "VK_TIMEOUT"+pattern VK_TIMEOUT :: VkResult+pattern VK_TIMEOUT = VkResult 2++-- No documentation found for Nested "VkResult" "VK_EVENT_SET"+pattern VK_EVENT_SET :: VkResult+pattern VK_EVENT_SET = VkResult 3++-- No documentation found for Nested "VkResult" "VK_EVENT_RESET"+pattern VK_EVENT_RESET :: VkResult+pattern VK_EVENT_RESET = VkResult 4++-- No documentation found for Nested "VkResult" "VK_INCOMPLETE"+pattern VK_INCOMPLETE :: VkResult+pattern VK_INCOMPLETE = VkResult 5++-- No documentation found for Nested "VkResult" "VK_ERROR_OUT_OF_HOST_MEMORY"+pattern VK_ERROR_OUT_OF_HOST_MEMORY :: VkResult+pattern VK_ERROR_OUT_OF_HOST_MEMORY = VkResult (-1)++-- No documentation found for Nested "VkResult" "VK_ERROR_OUT_OF_DEVICE_MEMORY"+pattern VK_ERROR_OUT_OF_DEVICE_MEMORY :: VkResult+pattern VK_ERROR_OUT_OF_DEVICE_MEMORY = VkResult (-2)++-- No documentation found for Nested "VkResult" "VK_ERROR_INITIALIZATION_FAILED"+pattern VK_ERROR_INITIALIZATION_FAILED :: VkResult+pattern VK_ERROR_INITIALIZATION_FAILED = VkResult (-3)++-- No documentation found for Nested "VkResult" "VK_ERROR_DEVICE_LOST"+pattern VK_ERROR_DEVICE_LOST :: VkResult+pattern VK_ERROR_DEVICE_LOST = VkResult (-4)++-- No documentation found for Nested "VkResult" "VK_ERROR_MEMORY_MAP_FAILED"+pattern VK_ERROR_MEMORY_MAP_FAILED :: VkResult+pattern VK_ERROR_MEMORY_MAP_FAILED = VkResult (-5)++-- No documentation found for Nested "VkResult" "VK_ERROR_LAYER_NOT_PRESENT"+pattern VK_ERROR_LAYER_NOT_PRESENT :: VkResult+pattern VK_ERROR_LAYER_NOT_PRESENT = VkResult (-6)++-- No documentation found for Nested "VkResult" "VK_ERROR_EXTENSION_NOT_PRESENT"+pattern VK_ERROR_EXTENSION_NOT_PRESENT :: VkResult+pattern VK_ERROR_EXTENSION_NOT_PRESENT = VkResult (-7)++-- No documentation found for Nested "VkResult" "VK_ERROR_FEATURE_NOT_PRESENT"+pattern VK_ERROR_FEATURE_NOT_PRESENT :: VkResult+pattern VK_ERROR_FEATURE_NOT_PRESENT = VkResult (-8)++-- No documentation found for Nested "VkResult" "VK_ERROR_INCOMPATIBLE_DRIVER"+pattern VK_ERROR_INCOMPATIBLE_DRIVER :: VkResult+pattern VK_ERROR_INCOMPATIBLE_DRIVER = VkResult (-9)++-- No documentation found for Nested "VkResult" "VK_ERROR_TOO_MANY_OBJECTS"+pattern VK_ERROR_TOO_MANY_OBJECTS :: VkResult+pattern VK_ERROR_TOO_MANY_OBJECTS = VkResult (-10)++-- No documentation found for Nested "VkResult" "VK_ERROR_FORMAT_NOT_SUPPORTED"+pattern VK_ERROR_FORMAT_NOT_SUPPORTED :: VkResult+pattern VK_ERROR_FORMAT_NOT_SUPPORTED = VkResult (-11)++-- No documentation found for Nested "VkResult" "VK_ERROR_FRAGMENTED_POOL"+pattern VK_ERROR_FRAGMENTED_POOL :: VkResult+pattern VK_ERROR_FRAGMENTED_POOL = VkResult (-12)+-- ** VkStructureType++-- | VkStructureType - Vulkan structure types (@stype@)+--+-- = Description+-- #_description#+--+-- Each value corresponds to a particular structure with a @sType@ member+-- with a matching name. As a general rule, the name of each+-- @VkStructureType@ value is obtained by taking the name of the structure,+-- stripping the leading @Vk@, prefixing each capital letter with @_@,+-- converting the entire resulting string to upper case, and prefixing it+-- with @VK_STRUCTURE_TYPE_@. For example, structures of type+-- @VkImageCreateInfo@ correspond to a @VkStructureType@ of+-- @VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO@, and thus its @sType@ member+-- /must/ equal that when it is passed to the API.+--+-- The values @VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO@ and+-- @VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO@ are reserved for internal+-- use by the loader, and do not have corresponding Vulkan structures in+-- this Specification.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferFormatPropertiesANDROID',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferPropertiesANDROID',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferUsageANDROID',+-- 'Graphics.Vulkan.Extensions.VK_KHR_android_surface.VkAndroidSurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindBufferMemoryDeviceGroupInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkBindImageMemorySwapchainInfoKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkBindImagePlaneMemoryInfo',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkBindSparseInfo',+-- 'Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkBufferMemoryRequirementsInfo2',+-- 'Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdReserveSpaceForCommandsInfoNVX',+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferAllocateInfo',+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferBeginInfo',+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo',+-- 'Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkComputePipelineCreateInfo',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkCopyDescriptorSet',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.VkD3D12FenceSubmitInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerMarkerInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectNameInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectTagInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportCallbackCreateInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsLabelEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectNameInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectTagInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateInfo',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkDescriptorSetLayoutSupport',+-- 'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo',+-- 'Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsFeaturesNVX',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsLimitsNVX',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupBindSparseInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupCommandBufferBeginInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentCapabilitiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentInfoKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupSubmitInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkDeviceQueueGlobalPriorityCreateInfoEXT',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkDeviceQueueInfo2',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.Event.VkEventCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32.VkExportFenceWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.VkExportMemoryWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.VkExportMemoryWin32HandleInfoNV',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.VkExportSemaphoreWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkExternalFormatANDROID',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryBufferCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryImageCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties',+-- 'Graphics.Vulkan.Core10.Fence.VkFenceCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkFenceGetFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32.VkFenceGetWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkFormatProperties2',+-- 'Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkHdrMetadataEXT',+-- 'Graphics.Vulkan.Extensions.VK_MVK_ios_surface.VkIOSSurfaceCreateInfoMVK',+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageMemoryRequirementsInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkImagePlaneMemoryRequirementsInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageSparseMemoryRequirementsInfo2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkImageSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkImportAndroidHardwareBufferInfoANDROID',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkImportFenceFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32.VkImportFenceWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkImportMemoryFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkImportMemoryHostPointerInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.VkImportMemoryWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.VkImportMemoryWin32HandleInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkImportSemaphoreFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.VkImportSemaphoreWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutCreateInfoNVX',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_MVK_macos_surface.VkMacOSSurfaceCreateInfoMVK',+-- 'Graphics.Vulkan.Core10.Memory.VkMappedMemoryRange',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagsInfo',+-- 'Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedRequirements',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryFdPropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkMemoryGetAndroidHardwareBufferInfoANDROID',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryGetFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.VkMemoryGetWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkMemoryHostPointerPropertiesEXT',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkMemoryRequirements2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.VkMemoryWin32HandlePropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_mir_surface.VkMirSurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkMultisamplePropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableCreateInfoNVX',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures',+-- 'Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingPropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPhysicalDeviceDiscardRectanglePropertiesEXT',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkPhysicalDeviceExternalFenceInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkPhysicalDeviceExternalSemaphoreInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceMemoryProperties2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures',+-- 'Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPhysicalDevicePointClippingProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties',+-- 'Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.VkPhysicalDevicePushDescriptorPropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures',+-- 'Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties.VkPhysicalDeviceShaderCorePropertiesAMD',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters.VkPhysicalDeviceShaderDrawParameterFeatures',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkPhysicalDeviceSurfaceInfo2KHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures',+-- 'Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT',+-- 'Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateInfo',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateInfoEXT',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkPipelineRasterizationStateRasterizationOrderAMD',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPipelineTessellationDomainOriginStateCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPipelineVertexInputDivisorStateCreateInfoEXT',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateInfo',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionsKHR',+-- 'Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimesInfoGOOGLE',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo',+-- 'Graphics.Vulkan.Core10.Query.VkQueryPoolCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkQueueFamilyProperties2',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo',+-- 'Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkRenderPassInputAttachmentAspectCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkRenderPassMultiviewCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkRenderPassSampleLocationsBeginInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT',+-- 'Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeCreateInfoEXT',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionImageFormatProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo',+-- 'Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkSemaphoreGetFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.VkSemaphoreGetWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkShaderModuleValidationCacheCreateInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkSparseImageFormatProperties2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkSparseImageMemoryRequirements2',+-- 'Graphics.Vulkan.Core10.Queue.VkSubmitInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceCapabilities2KHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceFormat2KHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationFlagsEXT',+-- 'Graphics.Vulkan.Extensions.VK_NN_vi_surface.VkViSurfaceCreateInfoNN',+-- 'Graphics.Vulkan.Extensions.VK_KHR_wayland_surface.VkWaylandSurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_win32_keyed_mutex.VkWin32KeyedMutexAcquireReleaseInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_NV_win32_keyed_mutex.VkWin32KeyedMutexAcquireReleaseInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_KHR_win32_surface.VkWin32SurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xcb_surface.VkXcbSurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xlib_surface.VkXlibSurfaceCreateInfoKHR'+newtype VkStructureType = VkStructureType Int32+  deriving (Eq, Ord, Storable)++instance Show VkStructureType where+  showsPrec _ VK_STRUCTURE_TYPE_APPLICATION_INFO = showString "VK_STRUCTURE_TYPE_APPLICATION_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_SUBMIT_INFO = showString "VK_STRUCTURE_TYPE_SUBMIT_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = showString "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = showString "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"+  showsPrec _ VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = showString "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = showString "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = showString "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = showString "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = showString "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = showString "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = showString "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = showString "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = showString "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"+  showsPrec _ VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = showString "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"+  showsPrec _ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = showString "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = showString "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = showString "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = showString "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = showString "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"+  showsPrec _ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = showString "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"+  showsPrec _ VK_STRUCTURE_TYPE_MEMORY_BARRIER = showString "VK_STRUCTURE_TYPE_MEMORY_BARRIER"+  showsPrec _ VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"+  showsPrec _ VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = showString "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkStructureType 1000094000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"+  showsPrec _ (VkStructureType 1000157000) = showString "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"+  showsPrec _ (VkStructureType 1000157001) = showString "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"+  showsPrec _ (VkStructureType 1000083000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"+  showsPrec _ (VkStructureType 1000127000) = showString "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"+  showsPrec _ (VkStructureType 1000127001) = showString "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"+  showsPrec _ (VkStructureType 1000060000) = showString "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"+  showsPrec _ (VkStructureType 1000060003) = showString "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"+  showsPrec _ (VkStructureType 1000060004) = showString "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"+  showsPrec _ (VkStructureType 1000060005) = showString "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"+  showsPrec _ (VkStructureType 1000060006) = showString "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"+  showsPrec _ (VkStructureType 1000060013) = showString "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"+  showsPrec _ (VkStructureType 1000060014) = showString "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"+  showsPrec _ (VkStructureType 1000070000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"+  showsPrec _ (VkStructureType 1000070001) = showString "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"+  showsPrec _ (VkStructureType 1000146000) = showString "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"+  showsPrec _ (VkStructureType 1000146001) = showString "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"+  showsPrec _ (VkStructureType 1000146002) = showString "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"+  showsPrec _ (VkStructureType 1000146003) = showString "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"+  showsPrec _ (VkStructureType 1000146004) = showString "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"+  showsPrec _ (VkStructureType 1000059000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"+  showsPrec _ (VkStructureType 1000059001) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"+  showsPrec _ (VkStructureType 1000059002) = showString "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"+  showsPrec _ (VkStructureType 1000059003) = showString "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"+  showsPrec _ (VkStructureType 1000059004) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"+  showsPrec _ (VkStructureType 1000059005) = showString "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"+  showsPrec _ (VkStructureType 1000059006) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"+  showsPrec _ (VkStructureType 1000059007) = showString "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"+  showsPrec _ (VkStructureType 1000059008) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"+  showsPrec _ (VkStructureType 1000117000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"+  showsPrec _ (VkStructureType 1000117001) = showString "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"+  showsPrec _ (VkStructureType 1000117002) = showString "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"+  showsPrec _ (VkStructureType 1000117003) = showString "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"+  showsPrec _ (VkStructureType 1000053000) = showString "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"+  showsPrec _ (VkStructureType 1000053001) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"+  showsPrec _ (VkStructureType 1000053002) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"+  showsPrec _ (VkStructureType 1000120000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES"+  showsPrec _ (VkStructureType 1000145000) = showString "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"+  showsPrec _ (VkStructureType 1000145001) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"+  showsPrec _ (VkStructureType 1000145002) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"+  showsPrec _ (VkStructureType 1000145003) = showString "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"+  showsPrec _ (VkStructureType 1000156000) = showString "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"+  showsPrec _ (VkStructureType 1000156001) = showString "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"+  showsPrec _ (VkStructureType 1000156002) = showString "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"+  showsPrec _ (VkStructureType 1000156003) = showString "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"+  showsPrec _ (VkStructureType 1000156004) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"+  showsPrec _ (VkStructureType 1000156005) = showString "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"+  showsPrec _ (VkStructureType 1000085000) = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"+  showsPrec _ (VkStructureType 1000071000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"+  showsPrec _ (VkStructureType 1000071001) = showString "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"+  showsPrec _ (VkStructureType 1000071002) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"+  showsPrec _ (VkStructureType 1000071003) = showString "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"+  showsPrec _ (VkStructureType 1000071004) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"+  showsPrec _ (VkStructureType 1000072000) = showString "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"+  showsPrec _ (VkStructureType 1000072001) = showString "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"+  showsPrec _ (VkStructureType 1000072002) = showString "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"+  showsPrec _ (VkStructureType 1000112000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"+  showsPrec _ (VkStructureType 1000112001) = showString "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"+  showsPrec _ (VkStructureType 1000113000) = showString "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"+  showsPrec _ (VkStructureType 1000077000) = showString "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"+  showsPrec _ (VkStructureType 1000076000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"+  showsPrec _ (VkStructureType 1000076001) = showString "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"+  showsPrec _ (VkStructureType 1000168000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"+  showsPrec _ (VkStructureType 1000168001) = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"+  showsPrec _ (VkStructureType 1000063000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES"+  showsPrec _ (VkStructureType 1000001000) = showString "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000001001) = showString "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"+  showsPrec _ (VkStructureType 1000060007) = showString "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"+  showsPrec _ (VkStructureType 1000060008) = showString "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000060009) = showString "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"+  showsPrec _ (VkStructureType 1000060010) = showString "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"+  showsPrec _ (VkStructureType 1000060011) = showString "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"+  showsPrec _ (VkStructureType 1000060012) = showString "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000002000) = showString "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000002001) = showString "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000003000) = showString "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"+  showsPrec _ (VkStructureType 1000004000) = showString "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000005000) = showString "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000006000) = showString "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000007000) = showString "VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000008000) = showString "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000009000) = showString "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000010000) = showString "VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"+  showsPrec _ (VkStructureType 1000011000) = showString "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000018000) = showString "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"+  showsPrec _ (VkStructureType 1000022000) = showString "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"+  showsPrec _ (VkStructureType 1000022001) = showString "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"+  showsPrec _ (VkStructureType 1000022002) = showString "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"+  showsPrec _ (VkStructureType 1000026000) = showString "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"+  showsPrec _ (VkStructureType 1000026001) = showString "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"+  showsPrec _ (VkStructureType 1000026002) = showString "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"+  showsPrec _ (VkStructureType 1000041000) = showString "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"+  showsPrec _ (VkStructureType 1000056000) = showString "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"+  showsPrec _ (VkStructureType 1000056001) = showString "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"+  showsPrec _ (VkStructureType 1000057000) = showString "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"+  showsPrec _ (VkStructureType 1000057001) = showString "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"+  showsPrec _ (VkStructureType 1000058000) = showString "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"+  showsPrec _ (VkStructureType 1000061000) = showString "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"+  showsPrec _ (VkStructureType 1000062000) = showString "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"+  showsPrec _ (VkStructureType 1000073000) = showString "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000073001) = showString "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000073002) = showString "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"+  showsPrec _ (VkStructureType 1000073003) = showString "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000074000) = showString "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"+  showsPrec _ (VkStructureType 1000074001) = showString "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"+  showsPrec _ (VkStructureType 1000074002) = showString "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"+  showsPrec _ (VkStructureType 1000075000) = showString "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"+  showsPrec _ (VkStructureType 1000078000) = showString "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000078001) = showString "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000078002) = showString "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"+  showsPrec _ (VkStructureType 1000078003) = showString "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000079000) = showString "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"+  showsPrec _ (VkStructureType 1000079001) = showString "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"+  showsPrec _ (VkStructureType 1000080000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"+  showsPrec _ (VkStructureType 1000084000) = showString "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"+  showsPrec _ (VkStructureType 1000086000) = showString "VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX"+  showsPrec _ (VkStructureType 1000086001) = showString "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX"+  showsPrec _ (VkStructureType 1000086002) = showString "VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX"+  showsPrec _ (VkStructureType 1000086003) = showString "VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX"+  showsPrec _ (VkStructureType 1000086004) = showString "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX"+  showsPrec _ (VkStructureType 1000086005) = showString "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX"+  showsPrec _ (VkStructureType 1000087000) = showString "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"+  showsPrec _ (VkStructureType 1000090000) = showString "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"+  showsPrec _ (VkStructureType 1000091000) = showString "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"+  showsPrec _ (VkStructureType 1000091001) = showString "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"+  showsPrec _ (VkStructureType 1000091002) = showString "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"+  showsPrec _ (VkStructureType 1000091003) = showString "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000092000) = showString "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"+  showsPrec _ (VkStructureType 1000097000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"+  showsPrec _ (VkStructureType 1000098000) = showString "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"+  showsPrec _ (VkStructureType 1000099000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000099001) = showString "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000101000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000101001) = showString "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000105000) = showString "VK_STRUCTURE_TYPE_HDR_METADATA_EXT"+  showsPrec _ (VkStructureType 1000111000) = showString "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"+  showsPrec _ (VkStructureType 1000114000) = showString "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000114001) = showString "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000114002) = showString "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"+  showsPrec _ (VkStructureType 1000115000) = showString "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"+  showsPrec _ (VkStructureType 1000115001) = showString "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"+  showsPrec _ (VkStructureType 1000119000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"+  showsPrec _ (VkStructureType 1000119001) = showString "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"+  showsPrec _ (VkStructureType 1000119002) = showString "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"+  showsPrec _ (VkStructureType 1000122000) = showString "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"+  showsPrec _ (VkStructureType 1000123000) = showString "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"+  showsPrec _ (VkStructureType 1000128000) = showString "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"+  showsPrec _ (VkStructureType 1000128001) = showString "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"+  showsPrec _ (VkStructureType 1000128002) = showString "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"+  showsPrec _ (VkStructureType 1000128003) = showString "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"+  showsPrec _ (VkStructureType 1000128004) = showString "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000129000) = showString "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"+  showsPrec _ (VkStructureType 1000129001) = showString "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"+  showsPrec _ (VkStructureType 1000129002) = showString "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"+  showsPrec _ (VkStructureType 1000129003) = showString "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"+  showsPrec _ (VkStructureType 1000129004) = showString "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"+  showsPrec _ (VkStructureType 1000129005) = showString "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"+  showsPrec _ (VkStructureType 1000130000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000130001) = showString "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000143000) = showString "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"+  showsPrec _ (VkStructureType 1000143001) = showString "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"+  showsPrec _ (VkStructureType 1000143002) = showString "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000143003) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000143004) = showString "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000147000) = showString "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR"+  showsPrec _ (VkStructureType 1000148000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"+  showsPrec _ (VkStructureType 1000148001) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000148002) = showString "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000149000) = showString "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"+  showsPrec _ (VkStructureType 1000152000) = showString "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"+  showsPrec _ (VkStructureType 1000160000) = showString "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000160001) = showString "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000161000) = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000161001) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT"+  showsPrec _ (VkStructureType 1000161002) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000161003) = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000161004) = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT"+  showsPrec _ (VkStructureType 1000174000) = showString "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"+  showsPrec _ (VkStructureType 1000178000) = showString "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"+  showsPrec _ (VkStructureType 1000178001) = showString "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000178002) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000185000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"+  showsPrec _ (VkStructureType 1000190000) = showString "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"+  showsPrec _ (VkStructureType 1000190001) = showString "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"+  showsPrec p (VkStructureType x) = showParen (p >= 11) (showString "VkStructureType " . showsPrec 11 x)++instance Read VkStructureType where+  readPrec = parens ( choose [ ("VK_STRUCTURE_TYPE_APPLICATION_INFO",                          pure VK_STRUCTURE_TYPE_APPLICATION_INFO)+                             , ("VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO",                      pure VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO",                  pure VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO",                        pure VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_SUBMIT_INFO",                               pure VK_STRUCTURE_TYPE_SUBMIT_INFO)+                             , ("VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO",                      pure VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)+                             , ("VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE",                       pure VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE)+                             , ("VK_STRUCTURE_TYPE_BIND_SPARSE_INFO",                          pure VK_STRUCTURE_TYPE_BIND_SPARSE_INFO)+                             , ("VK_STRUCTURE_TYPE_FENCE_CREATE_INFO",                         pure VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO",                     pure VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_EVENT_CREATE_INFO",                         pure VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO",                    pure VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO",                        pure VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO",                   pure VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO",                         pure VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO",                    pure VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO",                 pure VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO",                pure VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO",         pure VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO",   pure VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO", pure VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO",   pure VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO",       pure VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO",  pure VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO",    pure VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO",  pure VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO",    pure VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO",        pure VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO",             pure VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO",              pure VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO",               pure VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO",                       pure VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO",         pure VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO",               pure VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO",              pure VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO)+                             , ("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET",                      pure VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET)+                             , ("VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET",                       pure VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET)+                             , ("VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO",                   pure VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO",                   pure VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO",                  pure VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO",              pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)+                             , ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO",           pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO)+                             , ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO",                 pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)+                             , ("VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO",                    pure VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)+                             , ("VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER",                     pure VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER)+                             , ("VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER",                      pure VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER)+                             , ("VK_STRUCTURE_TYPE_MEMORY_BARRIER",                            pure VK_STRUCTURE_TYPE_MEMORY_BARRIER)+                             , ("VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO",               pure VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO)+                             , ("VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO",                 pure VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES",                          pure (VkStructureType 1000094000))+                             , ("VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO",                                      pure (VkStructureType 1000157000))+                             , ("VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO",                                       pure (VkStructureType 1000157001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES",                       pure (VkStructureType 1000083000))+                             , ("VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS",                                pure (VkStructureType 1000127000))+                             , ("VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO",                               pure (VkStructureType 1000127001))+                             , ("VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO",                                   pure (VkStructureType 1000060000))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO",                          pure (VkStructureType 1000060003))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO",                       pure (VkStructureType 1000060004))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO",                                     pure (VkStructureType 1000060005))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO",                                pure (VkStructureType 1000060006))+                             , ("VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO",                         pure (VkStructureType 1000060013))+                             , ("VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO",                          pure (VkStructureType 1000060014))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES",                             pure (VkStructureType 1000070000))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO",                              pure (VkStructureType 1000070001))+                             , ("VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2",                            pure (VkStructureType 1000146000))+                             , ("VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2",                             pure (VkStructureType 1000146001))+                             , ("VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2",                      pure (VkStructureType 1000146002))+                             , ("VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2",                                        pure (VkStructureType 1000146003))+                             , ("VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2",                           pure (VkStructureType 1000146004))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2",                                   pure (VkStructureType 1000059000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2",                                 pure (VkStructureType 1000059001))+                             , ("VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2",                                          pure (VkStructureType 1000059002))+                             , ("VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2",                                    pure (VkStructureType 1000059003))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2",                          pure (VkStructureType 1000059004))+                             , ("VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2",                                    pure (VkStructureType 1000059005))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2",                          pure (VkStructureType 1000059006))+                             , ("VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2",                             pure (VkStructureType 1000059007))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2",                   pure (VkStructureType 1000059008))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES",                    pure (VkStructureType 1000117000))+                             , ("VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO",              pure (VkStructureType 1000117001))+                             , ("VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO",                                 pure (VkStructureType 1000117002))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO",        pure (VkStructureType 1000117003))+                             , ("VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO",                            pure (VkStructureType 1000053000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES",                           pure (VkStructureType 1000053001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES",                         pure (VkStructureType 1000053002))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES",                    pure (VkStructureType 1000120000))+                             , ("VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO",                                        pure (VkStructureType 1000145000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES",                    pure (VkStructureType 1000145001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES",                  pure (VkStructureType 1000145002))+                             , ("VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2",                                          pure (VkStructureType 1000145003))+                             , ("VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO",                         pure (VkStructureType 1000156000))+                             , ("VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO",                                pure (VkStructureType 1000156001))+                             , ("VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO",                                 pure (VkStructureType 1000156002))+                             , ("VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO",                         pure (VkStructureType 1000156003))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES",            pure (VkStructureType 1000156004))+                             , ("VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES",             pure (VkStructureType 1000156005))+                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO",                       pure (VkStructureType 1000085000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO",                   pure (VkStructureType 1000071000))+                             , ("VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES",                             pure (VkStructureType 1000071001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO",                         pure (VkStructureType 1000071002))+                             , ("VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES",                                   pure (VkStructureType 1000071003))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES",                                pure (VkStructureType 1000071004))+                             , ("VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO",                           pure (VkStructureType 1000072000))+                             , ("VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO",                            pure (VkStructureType 1000072001))+                             , ("VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO",                                  pure (VkStructureType 1000072002))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO",                          pure (VkStructureType 1000112000))+                             , ("VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES",                                    pure (VkStructureType 1000112001))+                             , ("VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO",                                     pure (VkStructureType 1000113000))+                             , ("VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO",                                 pure (VkStructureType 1000077000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO",                      pure (VkStructureType 1000076000))+                             , ("VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES",                                pure (VkStructureType 1000076001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES",                     pure (VkStructureType 1000168000))+                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT",                                pure (VkStructureType 1000168001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES",               pure (VkStructureType 1000063000))+                             , ("VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR",                                    pure (VkStructureType 1000001000))+                             , ("VK_STRUCTURE_TYPE_PRESENT_INFO_KHR",                                             pure (VkStructureType 1000001001))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR",                        pure (VkStructureType 1000060007))+                             , ("VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR",                              pure (VkStructureType 1000060008))+                             , ("VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR",                         pure (VkStructureType 1000060009))+                             , ("VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR",                                  pure (VkStructureType 1000060010))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR",                                pure (VkStructureType 1000060011))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR",                       pure (VkStructureType 1000060012))+                             , ("VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR",                                 pure (VkStructureType 1000002000))+                             , ("VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR",                              pure (VkStructureType 1000002001))+                             , ("VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR",                                     pure (VkStructureType 1000003000))+                             , ("VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR",                                 pure (VkStructureType 1000004000))+                             , ("VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR",                                  pure (VkStructureType 1000005000))+                             , ("VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR",                              pure (VkStructureType 1000006000))+                             , ("VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR",                                  pure (VkStructureType 1000007000))+                             , ("VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR",                              pure (VkStructureType 1000008000))+                             , ("VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR",                                pure (VkStructureType 1000009000))+                             , ("VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID",                                        pure (VkStructureType 1000010000))+                             , ("VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT",                        pure (VkStructureType 1000011000))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD",         pure (VkStructureType 1000018000))+                             , ("VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT",                            pure (VkStructureType 1000022000))+                             , ("VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT",                             pure (VkStructureType 1000022001))+                             , ("VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT",                                 pure (VkStructureType 1000022002))+                             , ("VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV",                    pure (VkStructureType 1000026000))+                             , ("VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV",                   pure (VkStructureType 1000026001))+                             , ("VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV",                 pure (VkStructureType 1000026002))+                             , ("VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD",                     pure (VkStructureType 1000041000))+                             , ("VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV",                         pure (VkStructureType 1000056000))+                             , ("VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV",                               pure (VkStructureType 1000056001))+                             , ("VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV",                           pure (VkStructureType 1000057000))+                             , ("VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV",                           pure (VkStructureType 1000057001))+                             , ("VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV",                    pure (VkStructureType 1000058000))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR",                        pure (VkStructureType 1000060007))+                             , ("VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR",                              pure (VkStructureType 1000060008))+                             , ("VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR",                         pure (VkStructureType 1000060009))+                             , ("VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR",                                  pure (VkStructureType 1000060010))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR",                                pure (VkStructureType 1000060011))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR",                       pure (VkStructureType 1000060012))+                             , ("VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT",                                         pure (VkStructureType 1000061000))+                             , ("VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN",                                    pure (VkStructureType 1000062000))+                             , ("VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR",                          pure (VkStructureType 1000073000))+                             , ("VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR",                          pure (VkStructureType 1000073001))+                             , ("VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR",                           pure (VkStructureType 1000073002))+                             , ("VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR",                             pure (VkStructureType 1000073003))+                             , ("VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR",                                    pure (VkStructureType 1000074000))+                             , ("VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR",                                     pure (VkStructureType 1000074001))+                             , ("VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR",                                       pure (VkStructureType 1000074002))+                             , ("VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR",                   pure (VkStructureType 1000075000))+                             , ("VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR",                       pure (VkStructureType 1000078000))+                             , ("VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR",                       pure (VkStructureType 1000078001))+                             , ("VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR",                                  pure (VkStructureType 1000078002))+                             , ("VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR",                          pure (VkStructureType 1000078003))+                             , ("VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR",                                 pure (VkStructureType 1000079000))+                             , ("VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR",                                    pure (VkStructureType 1000079001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR",               pure (VkStructureType 1000080000))+                             , ("VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR",                                          pure (VkStructureType 1000084000))+                             , ("VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX",                                 pure (VkStructureType 1000086000))+                             , ("VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX",                     pure (VkStructureType 1000086001))+                             , ("VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX",                                pure (VkStructureType 1000086002))+                             , ("VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX",                      pure (VkStructureType 1000086003))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX",                         pure (VkStructureType 1000086004))+                             , ("VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX",                       pure (VkStructureType 1000086005))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV",             pure (VkStructureType 1000087000))+                             , ("VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT",                                   pure (VkStructureType 1000090000))+                             , ("VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT",                                       pure (VkStructureType 1000091000))+                             , ("VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT",                                        pure (VkStructureType 1000091001))+                             , ("VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT",                                       pure (VkStructureType 1000091002))+                             , ("VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT",                            pure (VkStructureType 1000091003))+                             , ("VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE",                                    pure (VkStructureType 1000092000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX", pure (VkStructureType 1000097000))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV",               pure (VkStructureType 1000098000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT",             pure (VkStructureType 1000099000))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT",             pure (VkStructureType 1000099001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT",    pure (VkStructureType 1000101000))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT",    pure (VkStructureType 1000101001))+                             , ("VK_STRUCTURE_TYPE_HDR_METADATA_EXT",                                             pure (VkStructureType 1000105000))+                             , ("VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR",                      pure (VkStructureType 1000111000))+                             , ("VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR",                           pure (VkStructureType 1000114000))+                             , ("VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR",                           pure (VkStructureType 1000114001))+                             , ("VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR",                              pure (VkStructureType 1000114002))+                             , ("VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR",                                     pure (VkStructureType 1000115000))+                             , ("VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR",                                        pure (VkStructureType 1000115001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR",                           pure (VkStructureType 1000119000))+                             , ("VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR",                                   pure (VkStructureType 1000119001))+                             , ("VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR",                                         pure (VkStructureType 1000119002))+                             , ("VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK",                                  pure (VkStructureType 1000122000))+                             , ("VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK",                                pure (VkStructureType 1000123000))+                             , ("VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT",                             pure (VkStructureType 1000128000))+                             , ("VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT",                              pure (VkStructureType 1000128001))+                             , ("VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT",                                        pure (VkStructureType 1000128002))+                             , ("VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT",                      pure (VkStructureType 1000128003))+                             , ("VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT",                        pure (VkStructureType 1000128004))+                             , ("VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID",                        pure (VkStructureType 1000129000))+                             , ("VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID",                   pure (VkStructureType 1000129001))+                             , ("VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID",            pure (VkStructureType 1000129002))+                             , ("VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID",                  pure (VkStructureType 1000129003))+                             , ("VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID",              pure (VkStructureType 1000129004))+                             , ("VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID",                                      pure (VkStructureType 1000129005))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT",         pure (VkStructureType 1000130000))+                             , ("VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT",                       pure (VkStructureType 1000130001))+                             , ("VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT",                                    pure (VkStructureType 1000143000))+                             , ("VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT",                  pure (VkStructureType 1000143001))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT",              pure (VkStructureType 1000143002))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT",              pure (VkStructureType 1000143003))+                             , ("VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT",                                   pure (VkStructureType 1000143004))+                             , ("VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR",                            pure (VkStructureType 1000147000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT",        pure (VkStructureType 1000148000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT",      pure (VkStructureType 1000148001))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT",          pure (VkStructureType 1000148002))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV",              pure (VkStructureType 1000149000))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV",            pure (VkStructureType 1000152000))+                             , ("VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT",                             pure (VkStructureType 1000160000))+                             , ("VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT",               pure (VkStructureType 1000160001))+                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT",          pure (VkStructureType 1000161000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT",             pure (VkStructureType 1000161001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT",           pure (VkStructureType 1000161002))+                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT",   pure (VkStructureType 1000161003))+                             , ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT",  pure (VkStructureType 1000161004))+                             , ("VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT",                 pure (VkStructureType 1000174000))+                             , ("VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT",                          pure (VkStructureType 1000178000))+                             , ("VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT",                           pure (VkStructureType 1000178001))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT",          pure (VkStructureType 1000178002))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD",                   pure (VkStructureType 1000185000))+                             , ("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT",      pure (VkStructureType 1000190000))+                             , ("VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT",          pure (VkStructureType 1000190001))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkStructureType")+                        v <- step readPrec+                        pure (VkStructureType v)+                        )+                    )++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_APPLICATION_INFO"+pattern VK_STRUCTURE_TYPE_APPLICATION_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_APPLICATION_INFO = VkStructureType 0++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = VkStructureType 1++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = VkStructureType 2++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = VkStructureType 3++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO"+pattern VK_STRUCTURE_TYPE_SUBMIT_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_SUBMIT_INFO = VkStructureType 4++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = VkStructureType 5++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"+pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE :: VkStructureType+pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = VkStructureType 6++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"+pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = VkStructureType 7++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = VkStructureType 8++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = VkStructureType 9++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = VkStructureType 10++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = VkStructureType 11++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = VkStructureType 12++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = VkStructureType 13++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = VkStructureType 14++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = VkStructureType 15++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = VkStructureType 16++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = VkStructureType 17++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = VkStructureType 18++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = VkStructureType 19++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = VkStructureType 20++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = VkStructureType 21++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = VkStructureType 22++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = VkStructureType 23++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = VkStructureType 24++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = VkStructureType 25++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = VkStructureType 26++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = VkStructureType 27++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = VkStructureType 28++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = VkStructureType 29++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = VkStructureType 30++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = VkStructureType 31++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = VkStructureType 32++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = VkStructureType 33++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = VkStructureType 34++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"+pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET :: VkStructureType+pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = VkStructureType 35++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"+pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET :: VkStructureType+pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = VkStructureType 36++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = VkStructureType 37++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = VkStructureType 38++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = VkStructureType 39++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = VkStructureType 40++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = VkStructureType 41++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = VkStructureType 42++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"+pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = VkStructureType 43++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER :: VkStructureType+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = VkStructureType 44++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = VkStructureType 45++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER"+pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER = VkStructureType 46++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = VkStructureType 47++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = VkStructureType 48+-- ** VkObjectType++-- | VkObjectType - Specify an enumeration to track object handle types+--+-- = Description+-- #_description#+--+-- > +------------------------------------------+---------------------------++-- > | 'VkObjectType'                           | Vulkan Handle Type        |+-- > +==========================================+===========================++-- > | @VK_OBJECT_TYPE_UNKNOWN@                 | Unknown\/Undefined Handle |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_INSTANCE@                | 'Graphics.Vulkan.Core10.D |+-- > |                                          | eviceInitialization.VkIns |+-- > |                                          | tance'                    |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_PHYSICAL_DEVICE@         | 'Graphics.Vulkan.Core10.D |+-- > |                                          | eviceInitialization.VkPhy |+-- > |                                          | sicalDevice'              |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_DEVICE@                  | 'Graphics.Vulkan.Core10.D |+-- > |                                          | eviceInitialization.VkDev |+-- > |                                          | ice'                      |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_QUEUE@                   | 'Graphics.Vulkan.Core10.Q |+-- > |                                          | ueue.VkQueue'             |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_SEMAPHORE@               | 'Graphics.Vulkan.Core10.Q |+-- > |                                          | ueue.VkSemaphore'         |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_COMMAND_BUFFER@          | 'Graphics.Vulkan.Core10.Q |+-- > |                                          | ueue.VkCommandBuffer'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_FENCE@                   | 'Graphics.Vulkan.Core10.Q |+-- > |                                          | ueue.VkFence'             |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_DEVICE_MEMORY@           | 'Graphics.Vulkan.Core10.M |+-- > |                                          | emory.VkDeviceMemory'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_BUFFER@                  | 'Graphics.Vulkan.Core10.M |+-- > |                                          | emoryManagement.VkBuffer' |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_IMAGE@                   | 'Graphics.Vulkan.Core10.M |+-- > |                                          | emoryManagement.VkImage'  |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_EVENT@                   | 'Graphics.Vulkan.Core10.E |+-- > |                                          | vent.VkEvent'             |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_QUERY_POOL@              | 'Graphics.Vulkan.Core10.Q |+-- > |                                          | uery.VkQueryPool'         |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_BUFFER_VIEW@             | 'Graphics.Vulkan.Core10.B |+-- > |                                          | ufferView.VkBufferView'   |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_IMAGE_VIEW@              | 'Graphics.Vulkan.Core10.I |+-- > |                                          | mageView.VkImageView'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_SHADER_MODULE@           | 'Graphics.Vulkan.Core10.S |+-- > |                                          | hader.VkShaderModule'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_PIPELINE_CACHE@          | 'Graphics.Vulkan.Core10.P |+-- > |                                          | ipelineCache.VkPipelineCa |+-- > |                                          | che'                      |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_PIPELINE_LAYOUT@         | 'Graphics.Vulkan.Core10.P |+-- > |                                          | ipeline.VkPipelineLayout' |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_RENDER_PASS@             | 'Graphics.Vulkan.Core10.P |+-- > |                                          | ipeline.VkRenderPass'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_PIPELINE@                | 'Graphics.Vulkan.Core10.P |+-- > |                                          | ipeline.VkPipeline'       |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT@   | 'Graphics.Vulkan.Core10.P |+-- > |                                          | ipelineLayout.VkDescripto |+-- > |                                          | rSetLayout'               |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_SAMPLER@                 | 'Graphics.Vulkan.Core10.S |+-- > |                                          | ampler.VkSampler'         |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_DESCRIPTOR_POOL@         | 'Graphics.Vulkan.Core10.D |+-- > |                                          | escriptorSet.VkDescriptor |+-- > |                                          | Pool'                     |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_DESCRIPTOR_SET@          | 'Graphics.Vulkan.Core10.D |+-- > |                                          | escriptorSet.VkDescriptor |+-- > |                                          | Set'                      |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_FRAMEBUFFER@             | 'Graphics.Vulkan.Core10.P |+-- > |                                          | ass.VkFramebuffer'        |+-- > +------------------------------------------+---------------------------++-- > | @VK_OBJECT_TYPE_COMMAND_POOL@            | 'Graphics.Vulkan.Core10.C |+-- > |                                          | ommandPool.VkCommandPool' |+-- > +------------------------------------------+---------------------------++-- >+-- > VkObjectType and Vulkan Handle Relationship+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectNameInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectTagInfoEXT'+newtype VkObjectType = VkObjectType Int32+  deriving (Eq, Ord, Storable)++instance Show VkObjectType where+  showsPrec _ VK_OBJECT_TYPE_UNKNOWN = showString "VK_OBJECT_TYPE_UNKNOWN"+  showsPrec _ VK_OBJECT_TYPE_INSTANCE = showString "VK_OBJECT_TYPE_INSTANCE"+  showsPrec _ VK_OBJECT_TYPE_PHYSICAL_DEVICE = showString "VK_OBJECT_TYPE_PHYSICAL_DEVICE"+  showsPrec _ VK_OBJECT_TYPE_DEVICE = showString "VK_OBJECT_TYPE_DEVICE"+  showsPrec _ VK_OBJECT_TYPE_QUEUE = showString "VK_OBJECT_TYPE_QUEUE"+  showsPrec _ VK_OBJECT_TYPE_SEMAPHORE = showString "VK_OBJECT_TYPE_SEMAPHORE"+  showsPrec _ VK_OBJECT_TYPE_COMMAND_BUFFER = showString "VK_OBJECT_TYPE_COMMAND_BUFFER"+  showsPrec _ VK_OBJECT_TYPE_FENCE = showString "VK_OBJECT_TYPE_FENCE"+  showsPrec _ VK_OBJECT_TYPE_DEVICE_MEMORY = showString "VK_OBJECT_TYPE_DEVICE_MEMORY"+  showsPrec _ VK_OBJECT_TYPE_BUFFER = showString "VK_OBJECT_TYPE_BUFFER"+  showsPrec _ VK_OBJECT_TYPE_IMAGE = showString "VK_OBJECT_TYPE_IMAGE"+  showsPrec _ VK_OBJECT_TYPE_EVENT = showString "VK_OBJECT_TYPE_EVENT"+  showsPrec _ VK_OBJECT_TYPE_QUERY_POOL = showString "VK_OBJECT_TYPE_QUERY_POOL"+  showsPrec _ VK_OBJECT_TYPE_BUFFER_VIEW = showString "VK_OBJECT_TYPE_BUFFER_VIEW"+  showsPrec _ VK_OBJECT_TYPE_IMAGE_VIEW = showString "VK_OBJECT_TYPE_IMAGE_VIEW"+  showsPrec _ VK_OBJECT_TYPE_SHADER_MODULE = showString "VK_OBJECT_TYPE_SHADER_MODULE"+  showsPrec _ VK_OBJECT_TYPE_PIPELINE_CACHE = showString "VK_OBJECT_TYPE_PIPELINE_CACHE"+  showsPrec _ VK_OBJECT_TYPE_PIPELINE_LAYOUT = showString "VK_OBJECT_TYPE_PIPELINE_LAYOUT"+  showsPrec _ VK_OBJECT_TYPE_RENDER_PASS = showString "VK_OBJECT_TYPE_RENDER_PASS"+  showsPrec _ VK_OBJECT_TYPE_PIPELINE = showString "VK_OBJECT_TYPE_PIPELINE"+  showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = showString "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"+  showsPrec _ VK_OBJECT_TYPE_SAMPLER = showString "VK_OBJECT_TYPE_SAMPLER"+  showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_POOL = showString "VK_OBJECT_TYPE_DESCRIPTOR_POOL"+  showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_SET = showString "VK_OBJECT_TYPE_DESCRIPTOR_SET"+  showsPrec _ VK_OBJECT_TYPE_FRAMEBUFFER = showString "VK_OBJECT_TYPE_FRAMEBUFFER"+  showsPrec _ VK_OBJECT_TYPE_COMMAND_POOL = showString "VK_OBJECT_TYPE_COMMAND_POOL"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkObjectType 1000156000) = showString "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"+  showsPrec _ (VkObjectType 1000085000) = showString "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"+  showsPrec _ (VkObjectType 1000000000) = showString "VK_OBJECT_TYPE_SURFACE_KHR"+  showsPrec _ (VkObjectType 1000001000) = showString "VK_OBJECT_TYPE_SWAPCHAIN_KHR"+  showsPrec _ (VkObjectType 1000002000) = showString "VK_OBJECT_TYPE_DISPLAY_KHR"+  showsPrec _ (VkObjectType 1000002001) = showString "VK_OBJECT_TYPE_DISPLAY_MODE_KHR"+  showsPrec _ (VkObjectType 1000011000) = showString "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT"+  showsPrec _ (VkObjectType 1000086000) = showString "VK_OBJECT_TYPE_OBJECT_TABLE_NVX"+  showsPrec _ (VkObjectType 1000086001) = showString "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX"+  showsPrec _ (VkObjectType 1000128000) = showString "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT"+  showsPrec _ (VkObjectType 1000160000) = showString "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT"+  showsPrec p (VkObjectType x) = showParen (p >= 11) (showString "VkObjectType " . showsPrec 11 x)++instance Read VkObjectType where+  readPrec = parens ( choose [ ("VK_OBJECT_TYPE_UNKNOWN",               pure VK_OBJECT_TYPE_UNKNOWN)+                             , ("VK_OBJECT_TYPE_INSTANCE",              pure VK_OBJECT_TYPE_INSTANCE)+                             , ("VK_OBJECT_TYPE_PHYSICAL_DEVICE",       pure VK_OBJECT_TYPE_PHYSICAL_DEVICE)+                             , ("VK_OBJECT_TYPE_DEVICE",                pure VK_OBJECT_TYPE_DEVICE)+                             , ("VK_OBJECT_TYPE_QUEUE",                 pure VK_OBJECT_TYPE_QUEUE)+                             , ("VK_OBJECT_TYPE_SEMAPHORE",             pure VK_OBJECT_TYPE_SEMAPHORE)+                             , ("VK_OBJECT_TYPE_COMMAND_BUFFER",        pure VK_OBJECT_TYPE_COMMAND_BUFFER)+                             , ("VK_OBJECT_TYPE_FENCE",                 pure VK_OBJECT_TYPE_FENCE)+                             , ("VK_OBJECT_TYPE_DEVICE_MEMORY",         pure VK_OBJECT_TYPE_DEVICE_MEMORY)+                             , ("VK_OBJECT_TYPE_BUFFER",                pure VK_OBJECT_TYPE_BUFFER)+                             , ("VK_OBJECT_TYPE_IMAGE",                 pure VK_OBJECT_TYPE_IMAGE)+                             , ("VK_OBJECT_TYPE_EVENT",                 pure VK_OBJECT_TYPE_EVENT)+                             , ("VK_OBJECT_TYPE_QUERY_POOL",            pure VK_OBJECT_TYPE_QUERY_POOL)+                             , ("VK_OBJECT_TYPE_BUFFER_VIEW",           pure VK_OBJECT_TYPE_BUFFER_VIEW)+                             , ("VK_OBJECT_TYPE_IMAGE_VIEW",            pure VK_OBJECT_TYPE_IMAGE_VIEW)+                             , ("VK_OBJECT_TYPE_SHADER_MODULE",         pure VK_OBJECT_TYPE_SHADER_MODULE)+                             , ("VK_OBJECT_TYPE_PIPELINE_CACHE",        pure VK_OBJECT_TYPE_PIPELINE_CACHE)+                             , ("VK_OBJECT_TYPE_PIPELINE_LAYOUT",       pure VK_OBJECT_TYPE_PIPELINE_LAYOUT)+                             , ("VK_OBJECT_TYPE_RENDER_PASS",           pure VK_OBJECT_TYPE_RENDER_PASS)+                             , ("VK_OBJECT_TYPE_PIPELINE",              pure VK_OBJECT_TYPE_PIPELINE)+                             , ("VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT", pure VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT)+                             , ("VK_OBJECT_TYPE_SAMPLER",               pure VK_OBJECT_TYPE_SAMPLER)+                             , ("VK_OBJECT_TYPE_DESCRIPTOR_POOL",       pure VK_OBJECT_TYPE_DESCRIPTOR_POOL)+                             , ("VK_OBJECT_TYPE_DESCRIPTOR_SET",        pure VK_OBJECT_TYPE_DESCRIPTOR_SET)+                             , ("VK_OBJECT_TYPE_FRAMEBUFFER",           pure VK_OBJECT_TYPE_FRAMEBUFFER)+                             , ("VK_OBJECT_TYPE_COMMAND_POOL",          pure VK_OBJECT_TYPE_COMMAND_POOL)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION",     pure (VkObjectType 1000156000))+                             , ("VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE",   pure (VkObjectType 1000085000))+                             , ("VK_OBJECT_TYPE_SURFACE_KHR",                  pure (VkObjectType 1000000000))+                             , ("VK_OBJECT_TYPE_SWAPCHAIN_KHR",                pure (VkObjectType 1000001000))+                             , ("VK_OBJECT_TYPE_DISPLAY_KHR",                  pure (VkObjectType 1000002000))+                             , ("VK_OBJECT_TYPE_DISPLAY_MODE_KHR",             pure (VkObjectType 1000002001))+                             , ("VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT",    pure (VkObjectType 1000011000))+                             , ("VK_OBJECT_TYPE_OBJECT_TABLE_NVX",             pure (VkObjectType 1000086000))+                             , ("VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX", pure (VkObjectType 1000086001))+                             , ("VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT",    pure (VkObjectType 1000128000))+                             , ("VK_OBJECT_TYPE_VALIDATION_CACHE_EXT",         pure (VkObjectType 1000160000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkObjectType")+                        v <- step readPrec+                        pure (VkObjectType v)+                        )+                    )++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_UNKNOWN"+pattern VK_OBJECT_TYPE_UNKNOWN :: VkObjectType+pattern VK_OBJECT_TYPE_UNKNOWN = VkObjectType 0++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INSTANCE"+pattern VK_OBJECT_TYPE_INSTANCE :: VkObjectType+pattern VK_OBJECT_TYPE_INSTANCE = VkObjectType 1++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PHYSICAL_DEVICE"+pattern VK_OBJECT_TYPE_PHYSICAL_DEVICE :: VkObjectType+pattern VK_OBJECT_TYPE_PHYSICAL_DEVICE = VkObjectType 2++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEVICE"+pattern VK_OBJECT_TYPE_DEVICE :: VkObjectType+pattern VK_OBJECT_TYPE_DEVICE = VkObjectType 3++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_QUEUE"+pattern VK_OBJECT_TYPE_QUEUE :: VkObjectType+pattern VK_OBJECT_TYPE_QUEUE = VkObjectType 4++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SEMAPHORE"+pattern VK_OBJECT_TYPE_SEMAPHORE :: VkObjectType+pattern VK_OBJECT_TYPE_SEMAPHORE = VkObjectType 5++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_COMMAND_BUFFER"+pattern VK_OBJECT_TYPE_COMMAND_BUFFER :: VkObjectType+pattern VK_OBJECT_TYPE_COMMAND_BUFFER = VkObjectType 6++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_FENCE"+pattern VK_OBJECT_TYPE_FENCE :: VkObjectType+pattern VK_OBJECT_TYPE_FENCE = VkObjectType 7++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEVICE_MEMORY"+pattern VK_OBJECT_TYPE_DEVICE_MEMORY :: VkObjectType+pattern VK_OBJECT_TYPE_DEVICE_MEMORY = VkObjectType 8++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_BUFFER"+pattern VK_OBJECT_TYPE_BUFFER :: VkObjectType+pattern VK_OBJECT_TYPE_BUFFER = VkObjectType 9++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_IMAGE"+pattern VK_OBJECT_TYPE_IMAGE :: VkObjectType+pattern VK_OBJECT_TYPE_IMAGE = VkObjectType 10++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_EVENT"+pattern VK_OBJECT_TYPE_EVENT :: VkObjectType+pattern VK_OBJECT_TYPE_EVENT = VkObjectType 11++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_QUERY_POOL"+pattern VK_OBJECT_TYPE_QUERY_POOL :: VkObjectType+pattern VK_OBJECT_TYPE_QUERY_POOL = VkObjectType 12++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_BUFFER_VIEW"+pattern VK_OBJECT_TYPE_BUFFER_VIEW :: VkObjectType+pattern VK_OBJECT_TYPE_BUFFER_VIEW = VkObjectType 13++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_IMAGE_VIEW"+pattern VK_OBJECT_TYPE_IMAGE_VIEW :: VkObjectType+pattern VK_OBJECT_TYPE_IMAGE_VIEW = VkObjectType 14++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SHADER_MODULE"+pattern VK_OBJECT_TYPE_SHADER_MODULE :: VkObjectType+pattern VK_OBJECT_TYPE_SHADER_MODULE = VkObjectType 15++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PIPELINE_CACHE"+pattern VK_OBJECT_TYPE_PIPELINE_CACHE :: VkObjectType+pattern VK_OBJECT_TYPE_PIPELINE_CACHE = VkObjectType 16++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PIPELINE_LAYOUT"+pattern VK_OBJECT_TYPE_PIPELINE_LAYOUT :: VkObjectType+pattern VK_OBJECT_TYPE_PIPELINE_LAYOUT = VkObjectType 17++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_RENDER_PASS"+pattern VK_OBJECT_TYPE_RENDER_PASS :: VkObjectType+pattern VK_OBJECT_TYPE_RENDER_PASS = VkObjectType 18++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PIPELINE"+pattern VK_OBJECT_TYPE_PIPELINE :: VkObjectType+pattern VK_OBJECT_TYPE_PIPELINE = VkObjectType 19++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"+pattern VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT :: VkObjectType+pattern VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = VkObjectType 20++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SAMPLER"+pattern VK_OBJECT_TYPE_SAMPLER :: VkObjectType+pattern VK_OBJECT_TYPE_SAMPLER = VkObjectType 21++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_POOL"+pattern VK_OBJECT_TYPE_DESCRIPTOR_POOL :: VkObjectType+pattern VK_OBJECT_TYPE_DESCRIPTOR_POOL = VkObjectType 22++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_SET"+pattern VK_OBJECT_TYPE_DESCRIPTOR_SET :: VkObjectType+pattern VK_OBJECT_TYPE_DESCRIPTOR_SET = VkObjectType 23++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_FRAMEBUFFER"+pattern VK_OBJECT_TYPE_FRAMEBUFFER :: VkObjectType+pattern VK_OBJECT_TYPE_FRAMEBUFFER = VkObjectType 24++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_COMMAND_POOL"+pattern VK_OBJECT_TYPE_COMMAND_POOL :: VkObjectType+pattern VK_OBJECT_TYPE_COMMAND_POOL = VkObjectType 25+-- | VkFlags - Vulkan bitmasks+--+-- = Description+-- #_description#+--+-- Bitmasks are passed to many commands and structures to compactly+-- represent options, but @VkFlags@ is not used directly in the API.+-- Instead, a @Vk*Flags@ type which is an alias of @VkFlags@, and whose+-- name matches the corresponding @Vk*FlagBits@ that are valid for that+-- type, is used.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlags'+type VkFlags = Word32
+ src/Graphics/Vulkan/Core10/DescriptorSet.hs view
@@ -0,0 +1,1739 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.DescriptorSet+  ( VkDescriptorType(..)+  , pattern VK_DESCRIPTOR_TYPE_SAMPLER+  , pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER+  , pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE+  , pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE+  , pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER+  , pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER+  , pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER+  , pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER+  , pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC+  , pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC+  , pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT+  , VkDescriptorSetLayoutCreateFlagBits(..)+  , VkDescriptorPoolCreateFlagBits(..)+  , pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT+  , VkDescriptorPoolResetFlags(..)+  , VkDescriptorSet+  , VkDescriptorPool+  , vkCreateDescriptorSetLayout+  , vkDestroyDescriptorSetLayout+  , vkCreateDescriptorPool+  , vkDestroyDescriptorPool+  , vkResetDescriptorPool+  , vkAllocateDescriptorSets+  , vkFreeDescriptorSets+  , vkUpdateDescriptorSets+  , VkDescriptorBufferInfo(..)+  , VkDescriptorImageInfo(..)+  , VkWriteDescriptorSet(..)+  , VkCopyDescriptorSet(..)+  , VkDescriptorSetLayoutBinding(..)+  , VkDescriptorSetLayoutCreateInfo(..)+  , VkDescriptorPoolSize(..)+  , VkDescriptorPoolCreateInfo(..)+  , VkDescriptorSetAllocateInfo(..)+  , VkDescriptorSetLayoutCreateFlags+  , VkDescriptorPoolCreateFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.BufferView+  ( VkBufferView+  )+import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Image+  ( VkImageLayout(..)+  )+import Graphics.Vulkan.Core10.ImageView+  ( VkImageView+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  )+import Graphics.Vulkan.Core10.PipelineLayout+  ( VkShaderStageFlags+  , VkDescriptorSetLayout+  )+import Graphics.Vulkan.Core10.Sampler+  ( VkSampler+  )+++-- ** VkDescriptorType++-- | VkDescriptorType - Specifies the type of a descriptor in a descriptor+-- set+--+-- = Description+-- #_description#+--+-- -   @VK_DESCRIPTOR_TYPE_SAMPLER@ specifies a+--     <{html_spec_relative}#descriptorsets-sampler sampler descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@ specifies a+--     <{html_spec_relative}#descriptorsets-combinedimagesampler combined image sampler descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@ specifies a+--     <{html_spec_relative}#descriptorsets-sampledimage sampled image descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@ specifies a+--     <{html_spec_relative}#descriptorsets-storageimage storage image descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ specifies a+--     <{html_spec_relative}#descriptorsets-uniformtexelbuffer uniform texel buffer descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ specifies a+--     <{html_spec_relative}#descriptorsets-storagetexelbuffer storage texel buffer descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ specifies a+--     <{html_spec_relative}#descriptorsets-uniformbuffer uniform buffer descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ specifies a+--     <{html_spec_relative}#descriptorsets-storagebuffer storage buffer descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ specifies a+--     <{html_spec_relative}#descriptorsets-uniformbufferdynamic dynamic uniform buffer descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ specifies a+--     <{html_spec_relative}#descriptorsets-storagebufferdynamic dynamic storage buffer descriptor>.+--+-- -   @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ specifies a+--     <{html_spec_relative}#descriptorsets-inputattachment input attachment descriptor>.+--+-- When a descriptor set is updated via elements of 'VkWriteDescriptorSet',+-- members of @pImageInfo@, @pBufferInfo@ and @pTexelBufferView@ are only+-- accessed by the implementation when they correspond to descriptor type+-- being defined - otherwise they are ignored. The members accessed are as+-- follows for each descriptor type:+--+-- -   For @VK_DESCRIPTOR_TYPE_SAMPLER@, only the @sample@ member of each+--     element of 'VkWriteDescriptorSet'::@pImageInfo@ is accessed.+--+-- -   For @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, or+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@, only the @imageView@ and+--     @imageLayout@ members of each element of+--     'VkWriteDescriptorSet'::@pImageInfo@ are accessed.+--+-- -   For @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, all members of each+--     element of 'VkWriteDescriptorSet'::@pImageInfo@ are accessed.+--+-- -   For @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@, or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@, all members of each+--     element of 'VkWriteDescriptorSet'::@pBufferInfo@ are accessed.+--+-- -   For @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@, each element of+--     'VkWriteDescriptorSet'::@pTexelBufferView@ is accessed.+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorPoolSize', 'VkDescriptorSetLayoutBinding',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateEntry',+-- 'VkWriteDescriptorSet'+newtype VkDescriptorType = VkDescriptorType Int32+  deriving (Eq, Ord, Storable)++instance Show VkDescriptorType where+  showsPrec _ VK_DESCRIPTOR_TYPE_SAMPLER = showString "VK_DESCRIPTOR_TYPE_SAMPLER"+  showsPrec _ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = showString "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"+  showsPrec _ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = showString "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"+  showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = showString "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"+  showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = showString "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"+  showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = showString "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"+  showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = showString "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"+  showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = showString "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"+  showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = showString "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"+  showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = showString "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"+  showsPrec _ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = showString "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"+  showsPrec p (VkDescriptorType x) = showParen (p >= 11) (showString "VkDescriptorType " . showsPrec 11 x)++instance Read VkDescriptorType where+  readPrec = parens ( choose [ ("VK_DESCRIPTOR_TYPE_SAMPLER",                pure VK_DESCRIPTOR_TYPE_SAMPLER)+                             , ("VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER", pure VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)+                             , ("VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE",          pure VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE)+                             , ("VK_DESCRIPTOR_TYPE_STORAGE_IMAGE",          pure VK_DESCRIPTOR_TYPE_STORAGE_IMAGE)+                             , ("VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER",   pure VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER)+                             , ("VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER",   pure VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER)+                             , ("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER",         pure VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER)+                             , ("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER",         pure VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)+                             , ("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC", pure VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC)+                             , ("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", pure VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC)+                             , ("VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT",       pure VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDescriptorType")+                        v <- step readPrec+                        pure (VkDescriptorType v)+                        )+                    )++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_SAMPLER"+pattern VK_DESCRIPTOR_TYPE_SAMPLER :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_SAMPLER = VkDescriptorType 0++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"+pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = VkDescriptorType 1++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"+pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = VkDescriptorType 2++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"+pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = VkDescriptorType 3++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"+pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = VkDescriptorType 4++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"+pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = VkDescriptorType 5++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"+pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = VkDescriptorType 6++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"+pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = VkDescriptorType 7++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"+pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = VkDescriptorType 8++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"+pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = VkDescriptorType 9++-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"+pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT :: VkDescriptorType+pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = VkDescriptorType 10+-- ** VkDescriptorSetLayoutCreateFlagBits++-- | VkDescriptorSetLayoutCreateFlagBits - Bitmask specifying descriptor set+-- layout properties+--+-- = Description+-- #_description#+--+-- __Note__+--+-- All bits for this type are defined by extensions, and none of those+-- extensions are enabled in this build of the specification.+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorSetLayoutCreateFlags'+newtype VkDescriptorSetLayoutCreateFlagBits = VkDescriptorSetLayoutCreateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDescriptorSetLayoutCreateFlagBits where+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkDescriptorSetLayoutCreateFlagBits 0x00000001) = showString "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"+  showsPrec _ (VkDescriptorSetLayoutCreateFlagBits 0x00000002) = showString "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT"+  showsPrec p (VkDescriptorSetLayoutCreateFlagBits x) = showParen (p >= 11) (showString "VkDescriptorSetLayoutCreateFlagBits " . showsPrec 11 x)++instance Read VkDescriptorSetLayoutCreateFlagBits where+  readPrec = parens ( choose [ -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR",        pure (VkDescriptorSetLayoutCreateFlagBits 0x00000001))+                             , ("VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT", pure (VkDescriptorSetLayoutCreateFlagBits 0x00000002))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDescriptorSetLayoutCreateFlagBits")+                        v <- step readPrec+                        pure (VkDescriptorSetLayoutCreateFlagBits v)+                        )+                    )+++-- ** VkDescriptorPoolCreateFlagBits++-- | VkDescriptorPoolCreateFlagBits - Bitmask specifying certain supported+-- operations on a descriptor pool+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorPoolCreateFlags'+newtype VkDescriptorPoolCreateFlagBits = VkDescriptorPoolCreateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDescriptorPoolCreateFlagBits where+  showsPrec _ VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = showString "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkDescriptorPoolCreateFlagBits 0x00000002) = showString "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"+  showsPrec p (VkDescriptorPoolCreateFlagBits x) = showParen (p >= 11) (showString "VkDescriptorPoolCreateFlagBits " . showsPrec 11 x)++instance Read VkDescriptorPoolCreateFlagBits where+  readPrec = parens ( choose [ ("VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT", pure VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT", pure (VkDescriptorPoolCreateFlagBits 0x00000002))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDescriptorPoolCreateFlagBits")+                        v <- step readPrec+                        pure (VkDescriptorPoolCreateFlagBits v)+                        )+                    )++-- | @VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT@ specifies that+-- descriptor sets /can/ return their individual allocations to the pool,+-- i.e. all of 'vkAllocateDescriptorSets', 'vkFreeDescriptorSets', and+-- 'vkResetDescriptorPool' are allowed. Otherwise, descriptor sets+-- allocated from the pool /must/ not be individually freed back to the+-- pool, i.e. only 'vkAllocateDescriptorSets' and 'vkResetDescriptorPool'+-- are allowed.+pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT :: VkDescriptorPoolCreateFlagBits+pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = VkDescriptorPoolCreateFlagBits 0x00000001+-- ** VkDescriptorPoolResetFlags++-- | VkDescriptorPoolResetFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkDescriptorPoolResetFlags@ is a bitmask type for setting a mask, but+-- is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'vkResetDescriptorPool'+newtype VkDescriptorPoolResetFlags = VkDescriptorPoolResetFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDescriptorPoolResetFlags where+  +  showsPrec p (VkDescriptorPoolResetFlags x) = showParen (p >= 11) (showString "VkDescriptorPoolResetFlags " . showsPrec 11 x)++instance Read VkDescriptorPoolResetFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDescriptorPoolResetFlags")+                        v <- step readPrec+                        pure (VkDescriptorPoolResetFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkDescriptorSet_T+-- | VkDescriptorSet - Opaque handle to a descriptor set object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkCopyDescriptorSet',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableDescriptorSetEntryNVX',+-- 'VkWriteDescriptorSet', 'vkAllocateDescriptorSets',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindDescriptorSets',+-- 'vkFreeDescriptorSets',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.vkUpdateDescriptorSetWithTemplate',+-- 'Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template.vkUpdateDescriptorSetWithTemplateKHR'+type VkDescriptorSet = Ptr VkDescriptorSet_T+-- | Dummy data to tag the 'Ptr' with+data VkDescriptorPool_T+-- | VkDescriptorPool - Opaque handle to a descriptor pool object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorSetAllocateInfo', 'vkCreateDescriptorPool',+-- 'vkDestroyDescriptorPool', 'vkFreeDescriptorSets',+-- 'vkResetDescriptorPool'+type VkDescriptorPool = Ptr VkDescriptorPool_T+-- | vkCreateDescriptorSetLayout - Create a new descriptor set layout+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the descriptor set+--     layout.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkDescriptorSetLayoutCreateInfo' structure specifying the state of+--     the descriptor set layout object.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pSetLayout@ points to a @VkDescriptorSetLayout@ handle in which the+--     resulting descriptor set layout object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkDescriptorSetLayoutCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSetLayout@ /must/ be a valid pointer to a @VkDescriptorSetLayout@+--     handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkDescriptorSetLayout',+-- 'VkDescriptorSetLayoutCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkCreateDescriptorSetLayout" vkCreateDescriptorSetLayout :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSetLayout" ::: Ptr VkDescriptorSetLayout) -> IO VkResult+-- | vkDestroyDescriptorSetLayout - Destroy a descriptor set layout object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the descriptor set+--     layout.+--+-- -   @descriptorSetLayout@ is the descriptor set layout to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @VkAllocationCallbacks@ were provided when @descriptorSetLayout@+--     was created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when+--     @descriptorSetLayout@ was created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @descriptorSetLayout@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @descriptorSetLayout@ /must/ be a valid @VkDescriptorSetLayout@+--     handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @descriptorSetLayout@ is a valid handle, it /must/ have been+--     created, allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @descriptorSetLayout@ /must/ be externally+--     synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkDescriptorSetLayout',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDestroyDescriptorSetLayout" vkDestroyDescriptorSetLayout :: ("device" ::: VkDevice) -> ("descriptorSetLayout" ::: VkDescriptorSetLayout) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkCreateDescriptorPool - Creates a descriptor pool object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the descriptor pool.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkDescriptorPoolCreateInfo' structure specifying the state of the+--     descriptor pool object.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pDescriptorPool@ points to a @VkDescriptorPool@ handle in which the+--     resulting descriptor pool object is returned.+--+-- = Description+-- #_description#+--+-- @pAllocator@ controls host memory allocation as described in the+-- <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- The created descriptor pool is returned in @pDescriptorPool@.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkDescriptorPoolCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pDescriptorPool@ /must/ be a valid pointer to a @VkDescriptorPool@+--     handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_FRAGMENTATION_EXT@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkDescriptorPool', 'VkDescriptorPoolCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkCreateDescriptorPool" vkCreateDescriptorPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorPool" ::: Ptr VkDescriptorPool) -> IO VkResult+-- | vkDestroyDescriptorPool - Destroy a descriptor pool object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the descriptor pool.+--+-- -   @descriptorPool@ is the descriptor pool to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- When a pool is destroyed, all descriptor sets allocated from the pool+-- are implicitly freed and become invalid. Descriptor sets allocated from+-- a given pool do not need to be freed before destroying that descriptor+-- pool.+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @descriptorPool@ (via any+--     allocated descriptor sets) /must/ have completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @descriptorPool@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @descriptorPool@+--     was created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @descriptorPool@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @descriptorPool@+--     /must/ be a valid @VkDescriptorPool@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @descriptorPool@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @descriptorPool@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkDescriptorPool',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDestroyDescriptorPool" vkDestroyDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkResetDescriptorPool - Resets a descriptor pool object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the descriptor pool.+--+-- -   @descriptorPool@ is the descriptor pool to be reset.+--+-- -   @flags@ is reserved for future use.+--+-- = Description+-- #_description#+--+-- Resetting a descriptor pool recycles all of the resources from all of+-- the descriptor sets allocated from the descriptor pool back to the+-- descriptor pool, and the descriptor sets are implicitly freed.+--+-- == Valid Usage+--+-- -   All uses of @descriptorPool@ (via any allocated descriptor sets)+--     /must/ have completed execution+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @descriptorPool@ /must/ be a valid @VkDescriptorPool@ handle+--+-- -   @flags@ /must/ be @0@+--+-- -   @descriptorPool@ /must/ have been created, allocated, or retrieved+--     from @device@+--+-- == Host Synchronization+--+-- -   Host access to @descriptorPool@ /must/ be externally synchronized+--+-- -   Host access to any @VkDescriptorSet@ objects allocated from+--     @descriptorPool@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorPool', 'VkDescriptorPoolResetFlags',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkResetDescriptorPool" vkResetDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("flags" ::: VkDescriptorPoolResetFlags) -> IO VkResult+-- | vkAllocateDescriptorSets - Allocate one or more descriptor sets+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the descriptor pool.+--+-- -   @pAllocateInfo@ is a pointer to an instance of the+--     'VkDescriptorSetAllocateInfo' structure describing parameters of the+--     allocation.+--+-- -   @pDescriptorSets@ is a pointer to an array of @VkDescriptorSet@+--     handles in which the resulting descriptor set objects are returned.+--+-- = Description+-- #_description#+--+-- The allocated descriptor sets are returned in @pDescriptorSets@.+--+-- When a descriptor set is allocated, the initial state is largely+-- uninitialized and all descriptors are undefined. However, the descriptor+-- set /can/ be bound in a command buffer without causing errors or+-- exceptions. All descriptors that are statically used /must/ have been+-- populated before the descriptor set is consumed. Entries that are not+-- used by a pipeline /can/ have uninitialized descriptors or descriptors+-- of resources that have been destroyed, and executing a draw or dispatch+-- with such a descriptor set bound does not cause undefined behavior. This+-- means applications need not populate unused entries with dummy+-- descriptors.+--+-- If an allocation fails due to fragmentation, an indeterminate error is+-- returned with an unspecified error code. Any returned error other than+-- @VK_ERROR_FRAGMENTED_POOL@ does not imply its usual meaning:+-- applications /should/ assume that the allocation failed due to+-- fragmentation, and create a new descriptor pool.+--+-- __Note__+--+-- Applications /should/ check for a negative return value when allocating+-- new descriptor sets, assume that any error effectively means+-- @VK_ERROR_FRAGMENTED_POOL@, and try to create a new descriptor pool. If+-- @VK_ERROR_FRAGMENTED_POOL@ is the actual return value, it adds certainty+-- to that decision.+--+-- The reason for this is that @VK_ERROR_FRAGMENTED_POOL@ was only added in+-- a later revision of the 1.0 specification, and so drivers /may/ return+-- other errors if they were written against earlier revisions. To ensure+-- full compatibility with earlier patch revisions, these other errors are+-- allowed.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pAllocateInfo@ /must/ be a valid pointer to a valid+--     @VkDescriptorSetAllocateInfo@ structure+--+-- -   @pDescriptorSets@ /must/ be a valid pointer to an array of+--     @pAllocateInfo@::descriptorSetCount @VkDescriptorSet@ handles+--+-- == Host Synchronization+--+-- -   Host access to @pAllocateInfo@::descriptorPool /must/ be externally+--     synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_FRAGMENTED_POOL@+--+--     -   @VK_ERROR_OUT_OF_POOL_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorSet', 'VkDescriptorSetAllocateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkAllocateDescriptorSets" vkAllocateDescriptorSets :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkDescriptorSetAllocateInfo) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult+-- | vkFreeDescriptorSets - Free one or more descriptor sets+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the descriptor pool.+--+-- -   @descriptorPool@ is the descriptor pool from which the descriptor+--     sets were allocated.+--+-- -   @descriptorSetCount@ is the number of elements in the+--     @pDescriptorSets@ array.+--+-- -   @pDescriptorSets@ is an array of handles to @VkDescriptorSet@+--     objects.+--+-- = Description+-- #_description#+--+-- After a successful call to @vkFreeDescriptorSets@, all descriptor sets+-- in @pDescriptorSets@ are invalid.+--+-- == Valid Usage+--+-- -   All submitted commands that refer to any element of+--     @pDescriptorSets@ /must/ have completed execution+--+-- -   @pDescriptorSets@ /must/ be a valid pointer to an array of+--     @descriptorSetCount@ @VkDescriptorSet@ handles, each element of+--     which /must/ either be a valid handle or+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   Each valid handle in @pDescriptorSets@ /must/ have been allocated+--     from @descriptorPool@+--+-- -   @descriptorPool@ /must/ have been created with the+--     @VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT@ flag+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @descriptorPool@ /must/ be a valid @VkDescriptorPool@ handle+--+-- -   @descriptorSetCount@ /must/ be greater than @0@+--+-- -   @descriptorPool@ /must/ have been created, allocated, or retrieved+--     from @device@+--+-- -   Each element of @pDescriptorSets@ that is a valid handle /must/ have+--     been created, allocated, or retrieved from @descriptorPool@+--+-- == Host Synchronization+--+-- -   Host access to @descriptorPool@ /must/ be externally synchronized+--+-- -   Host access to each member of @pDescriptorSets@ /must/ be externally+--     synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorPool', 'VkDescriptorSet',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkFreeDescriptorSets" vkFreeDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("descriptorSetCount" ::: Word32) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult+-- | vkUpdateDescriptorSets - Update the contents of a descriptor set object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that updates the descriptor sets.+--+-- -   @descriptorWriteCount@ is the number of elements in the+--     @pDescriptorWrites@ array.+--+-- -   @pDescriptorWrites@ is a pointer to an array of+--     'VkWriteDescriptorSet' structures describing the descriptor sets to+--     write to.+--+-- -   @descriptorCopyCount@ is the number of elements in the+--     @pDescriptorCopies@ array.+--+-- -   @pDescriptorCopies@ is a pointer to an array of+--     'VkCopyDescriptorSet' structures describing the descriptor sets to+--     copy between.+--+-- = Description+-- #_description#+--+-- The operations described by @pDescriptorWrites@ are performed first,+-- followed by the operations described by @pDescriptorCopies@. Within each+-- array, the operations are performed in the order they appear in the+-- array.+--+-- Each element in the @pDescriptorWrites@ array describes an operation+-- updating the descriptor set using descriptors for resources specified in+-- the structure.+--+-- Each element in the @pDescriptorCopies@ array is a 'VkCopyDescriptorSet'+-- structure describing an operation copying descriptors between sets.+--+-- If the @dstSet@ member of any element of @pDescriptorWrites@ or+-- @pDescriptorCopies@ is bound, accessed, or modified by any command that+-- was recorded to a command buffer which is currently in the+-- <{html_spec_relative}#commandbuffers-lifecycle recording or executable state>,+-- that command buffer becomes+-- <{html_spec_relative}#commandbuffers-lifecycle invalid>.+--+-- == Valid Usage+--+-- -   The @dstSet@ member of each element of @pDescriptorWrites@ or+--     @pDescriptorCopies@ /must/ not be used by any command that was+--     recorded to a command buffer which is in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending state>.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @descriptorWriteCount@ is not @0@, @pDescriptorWrites@ /must/ be+--     a valid pointer to an array of @descriptorWriteCount@ valid+--     @VkWriteDescriptorSet@ structures+--+-- -   If @descriptorCopyCount@ is not @0@, @pDescriptorCopies@ /must/ be a+--     valid pointer to an array of @descriptorCopyCount@ valid+--     @VkCopyDescriptorSet@ structures+--+-- == Host Synchronization+--+-- -   Host access to @pDescriptorWrites@[].dstSet /must/ be externally+--     synchronized+--+-- -   Host access to @pDescriptorCopies@[].dstSet /must/ be externally+--     synchronized+--+-- = See Also+-- #_see_also#+--+-- 'VkCopyDescriptorSet',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkWriteDescriptorSet'+foreign import ccall "vkUpdateDescriptorSets" vkUpdateDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr VkWriteDescriptorSet) -> ("descriptorCopyCount" ::: Word32) -> ("pDescriptorCopies" ::: Ptr VkCopyDescriptorSet) -> IO ()+-- | VkDescriptorBufferInfo - Structure specifying descriptor buffer info+--+-- = Description+-- #_description#+--+-- __Note__+--+-- When setting @range@ to @VK_WHOLE_SIZE@, the effective range /must/ not+-- be larger than the maximum range for the descriptor type+-- (<{html_spec_relative}#features-limits-maxUniformBufferRange maxUniformBufferRange>+-- or+-- <{html_spec_relative}#features-limits-maxStorageBufferRange maxStorageBufferRange>).+-- This means that @VK_WHOLE_SIZE@ is not typically useful in the common+-- case where uniform buffer descriptors are suballocated from a buffer+-- that is much larger than @maxUniformBufferRange@.+--+-- For @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ and+-- @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ descriptor types, @offset@+-- is the base offset from which the dynamic offset is applied and @range@+-- is the static size used for all dynamic offsets.+--+-- == Valid Usage+--+-- -   @offset@ /must/ be less than the size of @buffer@+--+-- -   If @range@ is not equal to @VK_WHOLE_SIZE@, @range@ /must/ be+--     greater than @0@+--+-- -   If @range@ is not equal to @VK_WHOLE_SIZE@, @range@ /must/ be less+--     than or equal to the size of @buffer@ minus @offset@+--+-- == Valid Usage (Implicit)+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer', @VkDeviceSize@,+-- 'VkWriteDescriptorSet'+data VkDescriptorBufferInfo = VkDescriptorBufferInfo+  { -- No documentation found for Nested "VkDescriptorBufferInfo" "vkBuffer"+  vkBuffer :: VkBuffer+  , -- No documentation found for Nested "VkDescriptorBufferInfo" "vkOffset"+  vkOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkDescriptorBufferInfo" "vkRange"+  vkRange :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkDescriptorBufferInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDescriptorBufferInfo <$> peek (ptr `plusPtr` 0)+                                    <*> peek (ptr `plusPtr` 8)+                                    <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkBuffer (poked :: VkDescriptorBufferInfo))+                *> poke (ptr `plusPtr` 8) (vkOffset (poked :: VkDescriptorBufferInfo))+                *> poke (ptr `plusPtr` 16) (vkRange (poked :: VkDescriptorBufferInfo))+-- | VkDescriptorImageInfo - Structure specifying descriptor image info+--+-- = Description+-- #_description#+--+-- Members of @VkDescriptorImageInfo@ that are not used in an update (as+-- described above) are ignored.+--+-- == Valid Usage+--+-- -   @imageLayout@ /must/ match the actual+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' of each subresource+--     accessible from @imageView@ at the time this descriptor is accessed+--+-- == Valid Usage (Implicit)+--+-- -   Both of @imageView@, and @sampler@ that are valid handles /must/+--     have been created, allocated, or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageView',+-- 'Graphics.Vulkan.Core10.Sampler.VkSampler', 'VkWriteDescriptorSet'+data VkDescriptorImageInfo = VkDescriptorImageInfo+  { -- No documentation found for Nested "VkDescriptorImageInfo" "vkSampler"+  vkSampler :: VkSampler+  , -- No documentation found for Nested "VkDescriptorImageInfo" "vkImageView"+  vkImageView :: VkImageView+  , -- No documentation found for Nested "VkDescriptorImageInfo" "vkImageLayout"+  vkImageLayout :: VkImageLayout+  }+  deriving (Eq, Show)++instance Storable VkDescriptorImageInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDescriptorImageInfo <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSampler (poked :: VkDescriptorImageInfo))+                *> poke (ptr `plusPtr` 8) (vkImageView (poked :: VkDescriptorImageInfo))+                *> poke (ptr `plusPtr` 16) (vkImageLayout (poked :: VkDescriptorImageInfo))+-- | VkWriteDescriptorSet - Structure specifying the parameters of a+-- descriptor set write operation+--+-- = Description+-- #_description#+--+-- Only one of @pImageInfo@, @pBufferInfo@, or @pTexelBufferView@ members+-- is used according to the descriptor type specified in the+-- @descriptorType@ member of the containing @VkWriteDescriptorSet@+-- structure, as specified below.+--+-- If the @dstBinding@ has fewer than @descriptorCount@ array elements+-- remaining starting from @dstArrayElement@, then the remainder will be+-- used to update the subsequent binding - @dstBinding@+1 starting at array+-- element zero. If a binding has a @descriptorCount@ of zero, it is+-- skipped. This behavior applies recursively, with the update affecting+-- consecutive bindings as needed to update all @descriptorCount@+-- descriptors.+--+-- == Valid Usage+--+-- -   @dstBinding@ /must/ be less than or equal to the maximum value of+--     @binding@ of all 'VkDescriptorSetLayoutBinding' structures specified+--     when @dstSet@’s descriptor set layout was created+--+-- -   @dstBinding@ /must/ be a binding with a non-zero @descriptorCount@+--+-- -   All consecutive bindings updated via a single @VkWriteDescriptorSet@+--     structure, except those with a @descriptorCount@ of zero, /must/+--     have identical @descriptorType@ and @stageFlags@.+--+-- -   All consecutive bindings updated via a single @VkWriteDescriptorSet@+--     structure, except those with a @descriptorCount@ of zero, /must/ all+--     either use immutable samplers or /must/ all not use immutable+--     samplers.+--+-- -   @descriptorType@ /must/ match the type of @dstBinding@ within+--     @dstSet@+--+-- -   @dstSet@ /must/ be a valid 'VkDescriptorSet' handle+--+-- -   The sum of @dstArrayElement@ and @descriptorCount@ /must/ be less+--     than or equal to the number of array elements in the descriptor set+--     binding specified by @dstBinding@, and all applicable consecutive+--     bindings, as described by+--     <{html_spec_relative}#descriptorsets-updates-consecutive {html_spec_relative}#descriptorsets-updates-consecutive>+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, or+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@, @pImageInfo@ /must/ be a+--     valid pointer to an array of @descriptorCount@ valid+--     @VkDescriptorImageInfo@ structures+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@, @pTexelBufferView@ /must/+--     be a valid pointer to an array of @descriptorCount@ valid+--     @VkBufferView@ handles+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@, or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@, @pBufferInfo@ /must/ be+--     a valid pointer to an array of @descriptorCount@ valid+--     @VkDescriptorBufferInfo@ structures+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_SAMPLER@ or+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, and @dstSet@ was not+--     allocated with a layout that included immutable samplers for+--     @dstBinding@ with @descriptorType@, the @sampler@ member of each+--     element of @pImageInfo@ /must/ be a valid @VkSampler@ object+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, or+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@, the @imageView@ and+--     @imageLayout@ members of each element of @pImageInfo@ /must/ be a+--     valid @VkImageView@ and+--     'Graphics.Vulkan.Core10.Image.VkImageLayout', respectively+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, for each+--     descriptor that will be accessed via load or store operations the+--     @imageLayout@ member for corresponding elements of @pImageInfo@+--     /must/ be @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@, the @offset@ member of+--     each element of @pBufferInfo@ /must/ be a multiple of+--     @VkPhysicalDeviceLimits@::@minUniformBufferOffsetAlignment@+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@, the @offset@ member of+--     each element of @pBufferInfo@ /must/ be a multiple of+--     @VkPhysicalDeviceLimits@::@minStorageBufferOffsetAlignment@+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@, or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@, and the @buffer@ member+--     of any element of @pBufferInfo@ is the handle of a non-sparse+--     buffer, then that buffer /must/ be bound completely and contiguously+--     to a single @VkDeviceMemory@ object+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@, the @buffer@ member of+--     each element of @pBufferInfo@ /must/ have been created with+--     @VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT@ set+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@, the @buffer@ member of+--     each element of @pBufferInfo@ /must/ have been created with+--     @VK_BUFFER_USAGE_STORAGE_BUFFER_BIT@ set+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@, the @range@ member of+--     each element of @pBufferInfo@, or the effective range if @range@ is+--     @VK_WHOLE_SIZE@, /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxUniformBufferRange@+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@, the @range@ member of+--     each element of @pBufferInfo@, or the effective range if @range@ is+--     @VK_WHOLE_SIZE@, /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxStorageBufferRange@+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@,+--     the @VkBuffer@ that each element of @pTexelBufferView@ was created+--     from /must/ have been created with+--     @VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT@ set+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@,+--     the @VkBuffer@ that each element of @pTexelBufferView@ was created+--     from /must/ have been created with+--     @VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT@ set+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@ or+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@, the @imageView@ member of+--     each element of @pImageInfo@ /must/ have been created with the+--     identity swizzle+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@ or+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, the @imageView@ member+--     of each element of @pImageInfo@ /must/ have been created with+--     @VK_IMAGE_USAGE_SAMPLED_BIT@ set+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@ or+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, the @imageLayout@+--     member of each element of @pImageInfo@ /must/ be+--     @VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL@,+--     @VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_GENERAL@+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@, the+--     @imageView@ member of each element of @pImageInfo@ /must/ have been+--     created with @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@ set+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, the+--     @imageView@ member of each element of @pImageInfo@ /must/ have been+--     created with @VK_IMAGE_USAGE_STORAGE_BIT@ set+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @descriptorType@ /must/ be a valid 'VkDescriptorType' value+--+-- -   @descriptorCount@ /must/ be greater than @0@+--+-- -   Both of @dstSet@, and the elements of @pTexelBufferView@ that are+--     valid handles /must/ have been created, allocated, or retrieved from+--     the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.BufferView.VkBufferView',+-- 'VkDescriptorBufferInfo', 'VkDescriptorImageInfo', 'VkDescriptorSet',+-- 'VkDescriptorType', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.vkCmdPushDescriptorSetKHR',+-- 'vkUpdateDescriptorSets'+data VkWriteDescriptorSet = VkWriteDescriptorSet+  { -- No documentation found for Nested "VkWriteDescriptorSet" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkDstSet"+  vkDstSet :: VkDescriptorSet+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkDstBinding"+  vkDstBinding :: Word32+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkDstArrayElement"+  vkDstArrayElement :: Word32+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkDescriptorCount"+  vkDescriptorCount :: Word32+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkDescriptorType"+  vkDescriptorType :: VkDescriptorType+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkPImageInfo"+  vkPImageInfo :: Ptr VkDescriptorImageInfo+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkPBufferInfo"+  vkPBufferInfo :: Ptr VkDescriptorBufferInfo+  , -- No documentation found for Nested "VkWriteDescriptorSet" "vkPTexelBufferView"+  vkPTexelBufferView :: Ptr VkBufferView+  }+  deriving (Eq, Show)++instance Storable VkWriteDescriptorSet where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkWriteDescriptorSet <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 24)+                                  <*> peek (ptr `plusPtr` 28)+                                  <*> peek (ptr `plusPtr` 32)+                                  <*> peek (ptr `plusPtr` 36)+                                  <*> peek (ptr `plusPtr` 40)+                                  <*> peek (ptr `plusPtr` 48)+                                  <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 16) (vkDstSet (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 24) (vkDstBinding (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 28) (vkDstArrayElement (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 32) (vkDescriptorCount (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 36) (vkDescriptorType (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 40) (vkPImageInfo (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 48) (vkPBufferInfo (poked :: VkWriteDescriptorSet))+                *> poke (ptr `plusPtr` 56) (vkPTexelBufferView (poked :: VkWriteDescriptorSet))+-- | VkCopyDescriptorSet - Structure specifying a copy descriptor set+-- operation+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @srcBinding@ /must/ be a valid binding within @srcSet@+--+-- -   The sum of @srcArrayElement@ and @descriptorCount@ /must/ be less+--     than or equal to the number of array elements in the descriptor set+--     binding specified by @srcBinding@, and all applicable consecutive+--     bindings, as described by+--     <{html_spec_relative}#descriptorsets-updates-consecutive {html_spec_relative}#descriptorsets-updates-consecutive>+--+-- -   @dstBinding@ /must/ be a valid binding within @dstSet@+--+-- -   The sum of @dstArrayElement@ and @descriptorCount@ /must/ be less+--     than or equal to the number of array elements in the descriptor set+--     binding specified by @dstBinding@, and all applicable consecutive+--     bindings, as described by+--     <{html_spec_relative}#descriptorsets-updates-consecutive {html_spec_relative}#descriptorsets-updates-consecutive>+--+-- -   If @srcSet@ is equal to @dstSet@, then the source and destination+--     ranges of descriptors /must/ not overlap, where the ranges /may/+--     include array elements from consecutive bindings as described by+--     <{html_spec_relative}#descriptorsets-updates-consecutive {html_spec_relative}#descriptorsets-updates-consecutive>+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @srcSet@ /must/ be a valid @VkDescriptorSet@ handle+--+-- -   @dstSet@ /must/ be a valid @VkDescriptorSet@ handle+--+-- -   Both of @dstSet@, and @srcSet@ /must/ have been created, allocated,+--     or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorSet', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkUpdateDescriptorSets'+data VkCopyDescriptorSet = VkCopyDescriptorSet+  { -- No documentation found for Nested "VkCopyDescriptorSet" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkCopyDescriptorSet" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkCopyDescriptorSet" "vkSrcSet"+  vkSrcSet :: VkDescriptorSet+  , -- No documentation found for Nested "VkCopyDescriptorSet" "vkSrcBinding"+  vkSrcBinding :: Word32+  , -- No documentation found for Nested "VkCopyDescriptorSet" "vkSrcArrayElement"+  vkSrcArrayElement :: Word32+  , -- No documentation found for Nested "VkCopyDescriptorSet" "vkDstSet"+  vkDstSet :: VkDescriptorSet+  , -- No documentation found for Nested "VkCopyDescriptorSet" "vkDstBinding"+  vkDstBinding :: Word32+  , -- No documentation found for Nested "VkCopyDescriptorSet" "vkDstArrayElement"+  vkDstArrayElement :: Word32+  , -- No documentation found for Nested "VkCopyDescriptorSet" "vkDescriptorCount"+  vkDescriptorCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkCopyDescriptorSet where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkCopyDescriptorSet <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 16)+                                 <*> peek (ptr `plusPtr` 24)+                                 <*> peek (ptr `plusPtr` 28)+                                 <*> peek (ptr `plusPtr` 32)+                                 <*> peek (ptr `plusPtr` 40)+                                 <*> peek (ptr `plusPtr` 44)+                                 <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCopyDescriptorSet))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCopyDescriptorSet))+                *> poke (ptr `plusPtr` 16) (vkSrcSet (poked :: VkCopyDescriptorSet))+                *> poke (ptr `plusPtr` 24) (vkSrcBinding (poked :: VkCopyDescriptorSet))+                *> poke (ptr `plusPtr` 28) (vkSrcArrayElement (poked :: VkCopyDescriptorSet))+                *> poke (ptr `plusPtr` 32) (vkDstSet (poked :: VkCopyDescriptorSet))+                *> poke (ptr `plusPtr` 40) (vkDstBinding (poked :: VkCopyDescriptorSet))+                *> poke (ptr `plusPtr` 44) (vkDstArrayElement (poked :: VkCopyDescriptorSet))+                *> poke (ptr `plusPtr` 48) (vkDescriptorCount (poked :: VkCopyDescriptorSet))+-- | VkDescriptorSetLayoutBinding - Structure specifying a descriptor set+-- layout binding+--+-- = Members+-- #_members#+--+-- -   @binding@ is the binding number of this entry and corresponds to a+--     resource of the same binding number in the shader stages.+--+-- -   @descriptorType@ is a 'VkDescriptorType' specifying which type of+--     resource descriptors are used for this binding.+--+-- -   @descriptorCount@ is the number of descriptors contained in the+--     binding, accessed in a shader as an array. If @descriptorCount@ is+--     zero this binding entry is reserved and the resource /must/ not be+--     accessed from any stage via this binding within any pipeline using+--     the set layout.+--+-- -   @stageFlags@ member is a bitmask of+--     'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits' specifying+--     which pipeline shader stages /can/ access a resource for this+--     binding. @VK_SHADER_STAGE_ALL@ is a shorthand specifying that all+--     defined shader stages, including any additional stages defined by+--     extensions, /can/ access the resource.+--+--     If a shader stage is not included in @stageFlags@, then a resource+--     /must/ not be accessed from that stage via this binding within any+--     pipeline using the set layout. Other than input attachments which+--     are limited to the fragment shader, there are no limitations on what+--     combinations of stages /can/ use a descriptor binding, and in+--     particular a binding /can/ be used by both graphics stages and the+--     compute stage.+--+-- = Description+-- #_description#+--+-- -   @pImmutableSamplers@ affects initialization of samplers. If+--     @descriptorType@ specifies a @VK_DESCRIPTOR_TYPE_SAMPLER@ or+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@ type descriptor, then+--     @pImmutableSamplers@ /can/ be used to initialize a set of /immutable+--     samplers/. Immutable samplers are permanently bound into the set+--     layout; later binding a sampler into an immutable sampler slot in a+--     descriptor set is not allowed. If @pImmutableSamplers@ is not+--     @NULL@, then it is considered to be a pointer to an array of sampler+--     handles that will be consumed by the set layout and used for the+--     corresponding binding. If @pImmutableSamplers@ is @NULL@, then the+--     sampler slots are dynamic and sampler handles /must/ be bound into+--     descriptor sets using this layout. If @descriptorType@ is not one of+--     these descriptor types, then @pImmutableSamplers@ is ignored.+--+-- The above layout definition allows the descriptor bindings to be+-- specified sparsely such that not all binding numbers between 0 and the+-- maximum binding number need to be specified in the @pBindings@ array.+-- Bindings that are not specified have a @descriptorCount@ and+-- @stageFlags@ of zero, and the @descriptorType@ is treated as undefined.+-- However, all binding numbers between 0 and the maximum binding number in+-- the 'VkDescriptorSetLayoutCreateInfo'::@pBindings@ array /may/ consume+-- memory in the descriptor set layout even if not all descriptor bindings+-- are used, though it /should/ not consume additional memory from the+-- descriptor pool.+--+-- __Note__+--+-- The maximum binding number specified /should/ be as compact as possible+-- to avoid wasted memory.+--+-- == Valid Usage+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_SAMPLER@ or+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, and @descriptorCount@+--     is not @0@ and @pImmutableSamplers@ is not @NULL@,+--     @pImmutableSamplers@ /must/ be a valid pointer to an array of+--     @descriptorCount@ valid @VkSampler@ handles+--+-- -   If @descriptorCount@ is not @0@, @stageFlags@ /must/ be a valid+--     combination of+--     'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits' values+--+-- -   If @descriptorType@ is @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ and+--     @descriptorCount@ is not @0@, then @stageFlags@ /must/ be @0@ or+--     @VK_SHADER_STAGE_FRAGMENT_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @descriptorType@ /must/ be a valid 'VkDescriptorType' value+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorSetLayoutCreateInfo', 'VkDescriptorType',+-- 'Graphics.Vulkan.Core10.Sampler.VkSampler',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkShaderStageFlags'+data VkDescriptorSetLayoutBinding = VkDescriptorSetLayoutBinding+  { -- No documentation found for Nested "VkDescriptorSetLayoutBinding" "vkBinding"+  vkBinding :: Word32+  , -- No documentation found for Nested "VkDescriptorSetLayoutBinding" "vkDescriptorType"+  vkDescriptorType :: VkDescriptorType+  , -- No documentation found for Nested "VkDescriptorSetLayoutBinding" "vkDescriptorCount"+  vkDescriptorCount :: Word32+  , -- No documentation found for Nested "VkDescriptorSetLayoutBinding" "vkStageFlags"+  vkStageFlags :: VkShaderStageFlags+  , -- No documentation found for Nested "VkDescriptorSetLayoutBinding" "vkPImmutableSamplers"+  vkPImmutableSamplers :: Ptr VkSampler+  }+  deriving (Eq, Show)++instance Storable VkDescriptorSetLayoutBinding where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDescriptorSetLayoutBinding <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 4)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 12)+                                          <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkBinding (poked :: VkDescriptorSetLayoutBinding))+                *> poke (ptr `plusPtr` 4) (vkDescriptorType (poked :: VkDescriptorSetLayoutBinding))+                *> poke (ptr `plusPtr` 8) (vkDescriptorCount (poked :: VkDescriptorSetLayoutBinding))+                *> poke (ptr `plusPtr` 12) (vkStageFlags (poked :: VkDescriptorSetLayoutBinding))+                *> poke (ptr `plusPtr` 16) (vkPImmutableSamplers (poked :: VkDescriptorSetLayoutBinding))+-- | VkDescriptorSetLayoutCreateInfo - Structure specifying parameters of a+-- newly created descriptor set layout+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The 'VkDescriptorSetLayoutBinding'::@binding@ members of the+--     elements of the @pBindings@ array /must/ each have different values.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT'+--+-- -   @flags@ /must/ be a valid combination of+--     'VkDescriptorSetLayoutCreateFlagBits' values+--+-- -   If @bindingCount@ is not @0@, @pBindings@ /must/ be a valid pointer+--     to an array of @bindingCount@ valid @VkDescriptorSetLayoutBinding@+--     structures+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorSetLayoutBinding', 'VkDescriptorSetLayoutCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateDescriptorSetLayout',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.vkGetDescriptorSetLayoutSupport',+-- 'Graphics.Vulkan.Extensions.VK_KHR_maintenance3.vkGetDescriptorSetLayoutSupportKHR'+data VkDescriptorSetLayoutCreateInfo = VkDescriptorSetLayoutCreateInfo+  { -- No documentation found for Nested "VkDescriptorSetLayoutCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDescriptorSetLayoutCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDescriptorSetLayoutCreateInfo" "vkFlags"+  vkFlags :: VkDescriptorSetLayoutCreateFlags+  , -- No documentation found for Nested "VkDescriptorSetLayoutCreateInfo" "vkBindingCount"+  vkBindingCount :: Word32+  , -- No documentation found for Nested "VkDescriptorSetLayoutCreateInfo" "vkPBindings"+  vkPBindings :: Ptr VkDescriptorSetLayoutBinding+  }+  deriving (Eq, Show)++instance Storable VkDescriptorSetLayoutCreateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDescriptorSetLayoutCreateInfo <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 20)+                                             <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetLayoutCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetLayoutCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDescriptorSetLayoutCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkBindingCount (poked :: VkDescriptorSetLayoutCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPBindings (poked :: VkDescriptorSetLayoutCreateInfo))+-- | VkDescriptorPoolSize - Structure specifying descriptor pool size+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @descriptorCount@ /must/ be greater than @0@+--+-- == Valid Usage (Implicit)+--+-- -   @type@ /must/ be a valid 'VkDescriptorType' value+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorPoolCreateInfo', 'VkDescriptorType'+data VkDescriptorPoolSize = VkDescriptorPoolSize+  { -- No documentation found for Nested "VkDescriptorPoolSize" "vkType"+  vkType :: VkDescriptorType+  , -- No documentation found for Nested "VkDescriptorPoolSize" "vkDescriptorCount"+  vkDescriptorCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDescriptorPoolSize where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkDescriptorPoolSize <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkDescriptorPoolSize))+                *> poke (ptr `plusPtr` 4) (vkDescriptorCount (poked :: VkDescriptorPoolSize))+-- | VkDescriptorPoolCreateInfo - Structure specifying parameters of a newly+-- created descriptor pool+--+-- = Description+-- #_description#+--+-- If multiple @VkDescriptorPoolSize@ structures appear in the @pPoolSizes@+-- array then the pool will be created with enough storage for the total+-- number of descriptors of each type.+--+-- Fragmentation of a descriptor pool is possible and /may/ lead to+-- descriptor set allocation failures. A failure due to fragmentation is+-- defined as failing a descriptor set allocation despite the sum of all+-- outstanding descriptor set allocations from the pool plus the requested+-- allocation requiring no more than the total number of descriptors+-- requested at pool creation. Implementations provide certain guarantees+-- of when fragmentation /must/ not cause allocation failure, as described+-- below.+--+-- If a descriptor pool has not had any descriptor sets freed since it was+-- created or most recently reset then fragmentation /must/ not cause an+-- allocation failure (note that this is always the case for a pool created+-- without the @VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT@ bit+-- set). Additionally, if all sets allocated from the pool since it was+-- created or most recently reset use the same number of descriptors (of+-- each type) and the requested allocation also uses that same number of+-- descriptors (of each type), then fragmentation /must/ not cause an+-- allocation failure.+--+-- If an allocation failure occurs due to fragmentation, an application+-- /can/ create an additional descriptor pool to perform further descriptor+-- set allocations.+--+-- == Valid Usage+--+-- -   @maxSets@ /must/ be greater than @0@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be a valid combination of+--     'VkDescriptorPoolCreateFlagBits' values+--+-- -   @pPoolSizes@ /must/ be a valid pointer to an array of+--     @poolSizeCount@ valid @VkDescriptorPoolSize@ structures+--+-- -   @poolSizeCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorPoolCreateFlags', 'VkDescriptorPoolSize',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateDescriptorPool'+data VkDescriptorPoolCreateInfo = VkDescriptorPoolCreateInfo+  { -- No documentation found for Nested "VkDescriptorPoolCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDescriptorPoolCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDescriptorPoolCreateInfo" "vkFlags"+  vkFlags :: VkDescriptorPoolCreateFlags+  , -- No documentation found for Nested "VkDescriptorPoolCreateInfo" "vkMaxSets"+  vkMaxSets :: Word32+  , -- No documentation found for Nested "VkDescriptorPoolCreateInfo" "vkPoolSizeCount"+  vkPoolSizeCount :: Word32+  , -- No documentation found for Nested "VkDescriptorPoolCreateInfo" "vkPPoolSizes"+  vkPPoolSizes :: Ptr VkDescriptorPoolSize+  }+  deriving (Eq, Show)++instance Storable VkDescriptorPoolCreateInfo where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDescriptorPoolCreateInfo <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+                                        <*> peek (ptr `plusPtr` 20)+                                        <*> peek (ptr `plusPtr` 24)+                                        <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorPoolCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorPoolCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDescriptorPoolCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkMaxSets (poked :: VkDescriptorPoolCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPoolSizeCount (poked :: VkDescriptorPoolCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPPoolSizes (poked :: VkDescriptorPoolCreateInfo))+-- | VkDescriptorSetAllocateInfo - Structure specifying the allocation+-- parameters for descriptor sets+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @descriptorSetCount@ /must/ not be greater than the number of sets+--     that are currently available for allocation in @descriptorPool@+--+-- -   @descriptorPool@ /must/ have enough free descriptor capacity+--     remaining to allocate the descriptor sets of the specified layouts+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT'+--+-- -   @descriptorPool@ /must/ be a valid @VkDescriptorPool@ handle+--+-- -   @pSetLayouts@ /must/ be a valid pointer to an array of+--     @descriptorSetCount@ valid @VkDescriptorSetLayout@ handles+--+-- -   @descriptorSetCount@ /must/ be greater than @0@+--+-- -   Both of @descriptorPool@, and the elements of @pSetLayouts@ /must/+--     have been created, allocated, or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorPool',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkDescriptorSetLayout',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkAllocateDescriptorSets'+data VkDescriptorSetAllocateInfo = VkDescriptorSetAllocateInfo+  { -- No documentation found for Nested "VkDescriptorSetAllocateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDescriptorSetAllocateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDescriptorSetAllocateInfo" "vkDescriptorPool"+  vkDescriptorPool :: VkDescriptorPool+  , -- No documentation found for Nested "VkDescriptorSetAllocateInfo" "vkDescriptorSetCount"+  vkDescriptorSetCount :: Word32+  , -- No documentation found for Nested "VkDescriptorSetAllocateInfo" "vkPSetLayouts"+  vkPSetLayouts :: Ptr VkDescriptorSetLayout+  }+  deriving (Eq, Show)++instance Storable VkDescriptorSetAllocateInfo where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDescriptorSetAllocateInfo <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+                                         <*> peek (ptr `plusPtr` 24)+                                         <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetAllocateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetAllocateInfo))+                *> poke (ptr `plusPtr` 16) (vkDescriptorPool (poked :: VkDescriptorSetAllocateInfo))+                *> poke (ptr `plusPtr` 24) (vkDescriptorSetCount (poked :: VkDescriptorSetAllocateInfo))+                *> poke (ptr `plusPtr` 32) (vkPSetLayouts (poked :: VkDescriptorSetAllocateInfo))+-- | VkDescriptorSetLayoutCreateFlags - Bitmask of+-- VkDescriptorSetLayoutCreateFlagBits+--+-- = Description+-- #_description#+--+-- @VkDescriptorSetLayoutCreateFlags@ is a bitmask type for setting a mask+-- of zero or more 'VkDescriptorSetLayoutCreateFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorSetLayoutCreateFlagBits', 'VkDescriptorSetLayoutCreateInfo'+type VkDescriptorSetLayoutCreateFlags = VkDescriptorSetLayoutCreateFlagBits+-- | VkDescriptorPoolCreateFlags - Bitmask of VkDescriptorPoolCreateFlagBits+--+-- = Description+-- #_description#+--+-- @VkDescriptorPoolCreateFlags@ is a bitmask type for setting a mask of+-- zero or more 'VkDescriptorPoolCreateFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorPoolCreateFlagBits', 'VkDescriptorPoolCreateInfo'+type VkDescriptorPoolCreateFlags = VkDescriptorPoolCreateFlagBits
+ src/Graphics/Vulkan/Core10/Device.hs view
@@ -0,0 +1,463 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Device+  ( VkDeviceCreateFlags(..)+  , VkDeviceQueueCreateFlagBits(..)+  , vkCreateDevice+  , vkDestroyDevice+  , VkDeviceQueueCreateInfo(..)+  , VkDeviceCreateInfo(..)+  , VkDeviceQueueCreateFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CChar(..)+  , CFloat(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDeviceFeatures(..)+  , VkDevice+  , VkAllocationCallbacks(..)+  , VkPhysicalDevice+  )+++-- ** VkDeviceCreateFlags++-- | VkDeviceCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkDeviceCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceCreateInfo'+newtype VkDeviceCreateFlags = VkDeviceCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDeviceCreateFlags where+  +  showsPrec p (VkDeviceCreateFlags x) = showParen (p >= 11) (showString "VkDeviceCreateFlags " . showsPrec 11 x)++instance Read VkDeviceCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDeviceCreateFlags")+                        v <- step readPrec+                        pure (VkDeviceCreateFlags v)+                        )+                    )+++-- ** VkDeviceQueueCreateFlagBits++-- | VkDeviceQueueCreateFlagBits - Bitmask specifying behavior of the queue+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceQueueCreateFlags'+newtype VkDeviceQueueCreateFlagBits = VkDeviceQueueCreateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDeviceQueueCreateFlagBits where+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkDeviceQueueCreateFlagBits 0x00000001) = showString "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"+  showsPrec p (VkDeviceQueueCreateFlagBits x) = showParen (p >= 11) (showString "VkDeviceQueueCreateFlagBits " . showsPrec 11 x)++instance Read VkDeviceQueueCreateFlagBits where+  readPrec = parens ( choose [ -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT", pure (VkDeviceQueueCreateFlagBits 0x00000001))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDeviceQueueCreateFlagBits")+                        v <- step readPrec+                        pure (VkDeviceQueueCreateFlagBits v)+                        )+                    )+++-- | vkCreateDevice - Create a new device instance+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ /must/ be one of the device handles returned from a+--     call to @vkEnumeratePhysicalDevices@ (see+--     <{html_spec_relative}#devsandqueues-physical-device-enumeration Physical Device Enumeration>).+--+-- -   @pCreateInfo@ is a pointer to a 'VkDeviceCreateInfo' structure+--     containing information about how to create the device.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pDevice@ points to a handle in which the created @VkDevice@ is+--     returned.+--+-- = Description+-- #_description#+--+-- @vkCreateDevice@ verifies that extensions and features requested in the+-- @ppEnabledExtensionNames@ and @pEnabledFeatures@ members of+-- @pCreateInfo@, respectively, are supported by the implementation. If any+-- requested extension is not supported, @vkCreateDevice@ /must/ return+-- @VK_ERROR_EXTENSION_NOT_PRESENT@. If any requested feature is not+-- supported, @vkCreateDevice@ /must/ return+-- @VK_ERROR_FEATURE_NOT_PRESENT@. Support for extensions /can/ be checked+-- before creating a device by querying+-- 'Graphics.Vulkan.Core10.ExtensionDiscovery.vkEnumerateDeviceExtensionProperties'.+-- Support for features /can/ similarly be checked by querying+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceFeatures'.+--+-- After verifying and enabling the extensions the @VkDevice@ object is+-- created and returned to the application. If a requested extension is+-- only supported by a layer, both the layer and the extension need to be+-- specified at @vkCreateInstance@ time for the creation to succeed.+--+-- Multiple logical devices /can/ be created from the same physical device.+-- Logical device creation /may/ fail due to lack of device-specific+-- resources (in addition to the other errors). If that occurs,+-- @vkCreateDevice@ will return @VK_ERROR_TOO_MANY_OBJECTS@.+--+-- == Valid Usage+--+-- -   All+--     <{html_spec_relative}#extended-functionality-extensions-dependencies required extensions>+--     for each extension in the+--     'VkDeviceCreateInfo'::@ppEnabledExtensionNames@ list /must/ also be+--     present in that list.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkDeviceCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pDevice@ /must/ be a valid pointer to a @VkDevice@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @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@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDeviceCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkCreateDevice" vkCreateDevice :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pCreateInfo" ::: Ptr VkDeviceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDevice" ::: Ptr VkDevice) -> IO VkResult+-- | vkDestroyDevice - Destroy a logical device+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- To ensure that no work is active on the device,+-- 'Graphics.Vulkan.Core10.Queue.vkDeviceWaitIdle' /can/ be used to gate+-- the destruction of the device. Prior to destroying a device, an+-- application is responsible for destroying\/freeing any Vulkan objects+-- that were created using that device as the first parameter of the+-- corresponding @vkCreate*@ or @vkAllocate*@ command.+--+-- __Note__+--+-- The lifetime of each of these objects is bound by the lifetime of the+-- @VkDevice@ object. Therefore, to avoid resource leaks, it is critical+-- that an application explicitly free all of these resources prior to+-- calling @vkDestroyDevice@.+--+-- == Valid Usage+--+-- -   All child objects created on @device@ /must/ have been destroyed+--     prior to destroying @device@+--+-- -   If @VkAllocationCallbacks@ were provided when @device@ was created,+--     a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @device@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   If @device@ is not @NULL@, @device@ /must/ be a valid @VkDevice@+--     handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- == Host Synchronization+--+-- -   Host access to @device@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDestroyDevice" vkDestroyDevice :: ("device" ::: VkDevice) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkDeviceQueueCreateInfo - Structure specifying parameters of a newly+-- created device queue+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+--     returned by @vkGetPhysicalDeviceQueueFamilyProperties@+--+-- -   @queueCount@ /must/ be less than or equal to the @queueCount@ member+--     of the @VkQueueFamilyProperties@ structure, as returned by+--     @vkGetPhysicalDeviceQueueFamilyProperties@ in the+--     @pQueueFamilyProperties@[@queueFamilyIndex@]+--+-- -   Each element of @pQueuePriorities@ /must/ be between @0.0@ and @1.0@+--     inclusive+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkDeviceQueueGlobalPriorityCreateInfoEXT'+--+-- -   @flags@ /must/ be a valid combination of+--     'VkDeviceQueueCreateFlagBits' values+--+-- -   @pQueuePriorities@ /must/ be a valid pointer to an array of+--     @queueCount@ @float@ values+--+-- -   @queueCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceCreateInfo', 'VkDeviceQueueCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDeviceQueueCreateInfo = VkDeviceQueueCreateInfo+  { -- No documentation found for Nested "VkDeviceQueueCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceQueueCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceQueueCreateInfo" "vkFlags"+  vkFlags :: VkDeviceQueueCreateFlags+  , -- No documentation found for Nested "VkDeviceQueueCreateInfo" "vkQueueFamilyIndex"+  vkQueueFamilyIndex :: Word32+  , -- No documentation found for Nested "VkDeviceQueueCreateInfo" "vkQueueCount"+  vkQueueCount :: Word32+  , -- No documentation found for Nested "VkDeviceQueueCreateInfo" "vkPQueuePriorities"+  vkPQueuePriorities :: Ptr CFloat+  }+  deriving (Eq, Show)++instance Storable VkDeviceQueueCreateInfo where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDeviceQueueCreateInfo <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 20)+                                     <*> peek (ptr `plusPtr` 24)+                                     <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceQueueCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceQueueCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDeviceQueueCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkQueueFamilyIndex (poked :: VkDeviceQueueCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkQueueCount (poked :: VkDeviceQueueCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPQueuePriorities (poked :: VkDeviceQueueCreateInfo))+-- | VkDeviceCreateInfo - Structure specifying parameters of a newly created+-- device+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The @queueFamilyIndex@ member of each element of @pQueueCreateInfos@+--     /must/ be unique within @pQueueCreateInfos@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo',+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures',+--     'Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT',+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2',+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures',+--     'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures',+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures',+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- -   @pQueueCreateInfos@ /must/ be a valid pointer to an array of+--     @queueCreateInfoCount@ valid @VkDeviceQueueCreateInfo@ structures+--+-- -   If @enabledLayerCount@ is not @0@, @ppEnabledLayerNames@ /must/ be a+--     valid pointer to an array of @enabledLayerCount@ null-terminated+--     UTF-8 strings+--+-- -   If @enabledExtensionCount@ is not @0@, @ppEnabledExtensionNames@+--     /must/ be a valid pointer to an array of @enabledExtensionCount@+--     null-terminated UTF-8 strings+--+-- -   If @pEnabledFeatures@ is not @NULL@, @pEnabledFeatures@ /must/ be a+--     valid pointer to a valid @VkPhysicalDeviceFeatures@ structure+--+-- -   @queueCreateInfoCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceCreateFlags', 'VkDeviceQueueCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateDevice'+data VkDeviceCreateInfo = VkDeviceCreateInfo+  { -- No documentation found for Nested "VkDeviceCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkFlags"+  vkFlags :: VkDeviceCreateFlags+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkQueueCreateInfoCount"+  vkQueueCreateInfoCount :: Word32+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkPQueueCreateInfos"+  vkPQueueCreateInfos :: Ptr VkDeviceQueueCreateInfo+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkEnabledLayerCount"+  vkEnabledLayerCount :: Word32+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkPPEnabledLayerNames"+  vkPPEnabledLayerNames :: Ptr (Ptr CChar)+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkEnabledExtensionCount"+  vkEnabledExtensionCount :: Word32+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkPPEnabledExtensionNames"+  vkPPEnabledExtensionNames :: Ptr (Ptr CChar)+  , -- No documentation found for Nested "VkDeviceCreateInfo" "vkPEnabledFeatures"+  vkPEnabledFeatures :: Ptr VkPhysicalDeviceFeatures+  }+  deriving (Eq, Show)++instance Storable VkDeviceCreateInfo where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkDeviceCreateInfo <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 8)+                                <*> peek (ptr `plusPtr` 16)+                                <*> peek (ptr `plusPtr` 20)+                                <*> peek (ptr `plusPtr` 24)+                                <*> peek (ptr `plusPtr` 32)+                                <*> peek (ptr `plusPtr` 40)+                                <*> peek (ptr `plusPtr` 48)+                                <*> peek (ptr `plusPtr` 56)+                                <*> peek (ptr `plusPtr` 64)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkQueueCreateInfoCount (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPQueueCreateInfos (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkEnabledLayerCount (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPPEnabledLayerNames (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkEnabledExtensionCount (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkPPEnabledExtensionNames (poked :: VkDeviceCreateInfo))+                *> poke (ptr `plusPtr` 64) (vkPEnabledFeatures (poked :: VkDeviceCreateInfo))+-- | VkDeviceQueueCreateFlags - Bitmask of VkDeviceQueueCreateFlagBits+--+-- = Description+-- #_description#+--+-- @VkDeviceQueueCreateFlags@ is a bitmask type for setting a mask of zero+-- or more 'VkDeviceQueueCreateFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceQueueCreateFlagBits', 'VkDeviceQueueCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkDeviceQueueInfo2'+type VkDeviceQueueCreateFlags = VkDeviceQueueCreateFlagBits
+ src/Graphics/Vulkan/Core10/DeviceInitialization.hs view
@@ -0,0 +1,5289 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageTiling(..)+  , pattern VK_IMAGE_TILING_OPTIMAL+  , pattern VK_IMAGE_TILING_LINEAR+  , VkImageType(..)+  , pattern VK_IMAGE_TYPE_1D+  , pattern VK_IMAGE_TYPE_2D+  , pattern VK_IMAGE_TYPE_3D+  , VkPhysicalDeviceType(..)+  , pattern VK_PHYSICAL_DEVICE_TYPE_OTHER+  , pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU+  , pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU+  , pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU+  , pattern VK_PHYSICAL_DEVICE_TYPE_CPU+  , VkSystemAllocationScope(..)+  , pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND+  , pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT+  , pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE+  , pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE+  , pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE+  , VkInternalAllocationType(..)+  , pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE+  , VkInstanceCreateFlags(..)+  , VkQueueFlagBits(..)+  , pattern VK_QUEUE_GRAPHICS_BIT+  , pattern VK_QUEUE_COMPUTE_BIT+  , pattern VK_QUEUE_TRANSFER_BIT+  , pattern VK_QUEUE_SPARSE_BINDING_BIT+  , VkMemoryPropertyFlagBits(..)+  , pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT+  , pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT+  , pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT+  , pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT+  , pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT+  , VkMemoryHeapFlagBits(..)+  , pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT+  , VkImageUsageFlagBits(..)+  , pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT+  , pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT+  , pattern VK_IMAGE_USAGE_SAMPLED_BIT+  , pattern VK_IMAGE_USAGE_STORAGE_BIT+  , pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT+  , pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT+  , pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT+  , pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT+  , VkImageCreateFlagBits(..)+  , pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT+  , pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT+  , pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT+  , pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT+  , pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT+  , VkFormatFeatureFlagBits(..)+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT+  , pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT+  , pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT+  , pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT+  , pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT+  , pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT+  , pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT+  , pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT+  , pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT+  , pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT+  , pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT+  , pattern VK_FORMAT_FEATURE_BLIT_DST_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT+  , VkSampleCountFlagBits(..)+  , pattern VK_SAMPLE_COUNT_1_BIT+  , pattern VK_SAMPLE_COUNT_2_BIT+  , pattern VK_SAMPLE_COUNT_4_BIT+  , pattern VK_SAMPLE_COUNT_8_BIT+  , pattern VK_SAMPLE_COUNT_16_BIT+  , pattern VK_SAMPLE_COUNT_32_BIT+  , pattern VK_SAMPLE_COUNT_64_BIT+  , VK_MAX_PHYSICAL_DEVICE_NAME_SIZE+  , pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE+  , VK_UUID_SIZE+  , pattern VK_UUID_SIZE+  , VK_MAX_MEMORY_TYPES+  , pattern VK_MAX_MEMORY_TYPES+  , VK_MAX_MEMORY_HEAPS+  , pattern VK_MAX_MEMORY_HEAPS+  , PFN_vkInternalAllocationNotification+  , PFN_vkInternalFreeNotification+  , PFN_vkReallocationFunction+  , PFN_vkAllocationFunction+  , PFN_vkFreeFunction+  , PFN_vkVoidFunction+  , VkInstance+  , VkPhysicalDevice+  , VkDevice+  , vkCreateInstance+  , vkDestroyInstance+  , vkEnumeratePhysicalDevices+  , vkGetDeviceProcAddr+  , vkGetInstanceProcAddr+  , vkGetPhysicalDeviceProperties+  , vkGetPhysicalDeviceQueueFamilyProperties+  , vkGetPhysicalDeviceMemoryProperties+  , vkGetPhysicalDeviceFeatures+  , vkGetPhysicalDeviceFormatProperties+  , vkGetPhysicalDeviceImageFormatProperties+  , VkExtent3D(..)+  , VkPhysicalDeviceProperties(..)+  , VkApplicationInfo(..)+  , VkAllocationCallbacks(..)+  , VkInstanceCreateInfo(..)+  , VkQueueFamilyProperties(..)+  , VkPhysicalDeviceMemoryProperties(..)+  , VkMemoryType(..)+  , VkMemoryHeap(..)+  , VkFormatProperties(..)+  , VkImageFormatProperties(..)+  , VkPhysicalDeviceFeatures(..)+  , VkPhysicalDeviceSparseProperties(..)+  , VkPhysicalDeviceLimits(..)+  , VkQueueFlags+  , VkMemoryPropertyFlags+  , VkMemoryHeapFlags+  , VkImageUsageFlags+  , VkImageCreateFlags+  , VkFormatFeatureFlags+  , VkSampleCountFlags+  , VkDeviceSize+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word64+  , Word32+  , Word8+  )+import Foreign.C.Types+  ( CFloat(..)+  , CSize(..)+  , CChar(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkFormat(..)+  , VkResult(..)+  , VkFlags+  )+++-- ** VkImageTiling++-- | VkImageTiling - Specifies the tiling arrangement of data in an image+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.vkGetPhysicalDeviceExternalImageFormatPropertiesNV',+-- 'vkGetPhysicalDeviceImageFormatProperties',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetPhysicalDeviceSparseImageFormatProperties'+newtype VkImageTiling = VkImageTiling Int32+  deriving (Eq, Ord, Storable)++instance Show VkImageTiling where+  showsPrec _ VK_IMAGE_TILING_OPTIMAL = showString "VK_IMAGE_TILING_OPTIMAL"+  showsPrec _ VK_IMAGE_TILING_LINEAR = showString "VK_IMAGE_TILING_LINEAR"+  showsPrec p (VkImageTiling x) = showParen (p >= 11) (showString "VkImageTiling " . showsPrec 11 x)++instance Read VkImageTiling where+  readPrec = parens ( choose [ ("VK_IMAGE_TILING_OPTIMAL", pure VK_IMAGE_TILING_OPTIMAL)+                             , ("VK_IMAGE_TILING_LINEAR",  pure VK_IMAGE_TILING_LINEAR)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkImageTiling")+                        v <- step readPrec+                        pure (VkImageTiling v)+                        )+                    )++-- | @VK_IMAGE_TILING_OPTIMAL@ specifies optimal tiling (texels are laid out+-- in an implementation-dependent arrangement, for more optimal memory+-- access).+pattern VK_IMAGE_TILING_OPTIMAL :: VkImageTiling+pattern VK_IMAGE_TILING_OPTIMAL = VkImageTiling 0++-- | @VK_IMAGE_TILING_LINEAR@ specifies linear tiling (texels are laid out in+-- memory in row-major order, possibly with some padding on each row).+pattern VK_IMAGE_TILING_LINEAR :: VkImageTiling+pattern VK_IMAGE_TILING_LINEAR = VkImageTiling 1+-- ** VkImageType++-- | VkImageType - Specifies the type of an image object+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.vkGetPhysicalDeviceExternalImageFormatPropertiesNV',+-- 'vkGetPhysicalDeviceImageFormatProperties',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetPhysicalDeviceSparseImageFormatProperties'+newtype VkImageType = VkImageType Int32+  deriving (Eq, Ord, Storable)++instance Show VkImageType where+  showsPrec _ VK_IMAGE_TYPE_1D = showString "VK_IMAGE_TYPE_1D"+  showsPrec _ VK_IMAGE_TYPE_2D = showString "VK_IMAGE_TYPE_2D"+  showsPrec _ VK_IMAGE_TYPE_3D = showString "VK_IMAGE_TYPE_3D"+  showsPrec p (VkImageType x) = showParen (p >= 11) (showString "VkImageType " . showsPrec 11 x)++instance Read VkImageType where+  readPrec = parens ( choose [ ("VK_IMAGE_TYPE_1D", pure VK_IMAGE_TYPE_1D)+                             , ("VK_IMAGE_TYPE_2D", pure VK_IMAGE_TYPE_2D)+                             , ("VK_IMAGE_TYPE_3D", pure VK_IMAGE_TYPE_3D)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkImageType")+                        v <- step readPrec+                        pure (VkImageType v)+                        )+                    )++-- | @VK_IMAGE_TYPE_1D@ specifies a one-dimensional image.+pattern VK_IMAGE_TYPE_1D :: VkImageType+pattern VK_IMAGE_TYPE_1D = VkImageType 0++-- | @VK_IMAGE_TYPE_2D@ specifies a two-dimensional image.+pattern VK_IMAGE_TYPE_2D :: VkImageType+pattern VK_IMAGE_TYPE_2D = VkImageType 1++-- | @VK_IMAGE_TYPE_3D@ specifies a three-dimensional image.+pattern VK_IMAGE_TYPE_3D :: VkImageType+pattern VK_IMAGE_TYPE_3D = VkImageType 2+-- ** VkPhysicalDeviceType++-- | VkPhysicalDeviceType - Supported physical device types+--+-- = Description+-- #_description#+--+-- -   @VK_PHYSICAL_DEVICE_TYPE_OTHER@ - the device does not match any+--     other available types.+--+-- -   @VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU@ - the device is typically+--     one embedded in or tightly coupled with the host.+--+-- -   @VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU@ - the device is typically a+--     separate processor connected to the host via an interlink.+--+-- -   @VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU@ - the device is typically a+--     virtual node in a virtualization environment.+--+-- -   @VK_PHYSICAL_DEVICE_TYPE_CPU@ - the device is typically running on+--     the same processors as the host.+--+-- The physical device type is advertised for informational purposes only,+-- and does not directly affect the operation of the system. However, the+-- device type /may/ correlate with other advertised properties or+-- capabilities of the system, such as how many memory heaps there are.+--+-- = See Also+-- #_see_also#+--+-- 'VkPhysicalDeviceProperties'+newtype VkPhysicalDeviceType = VkPhysicalDeviceType Int32+  deriving (Eq, Ord, Storable)++instance Show VkPhysicalDeviceType where+  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_OTHER = showString "VK_PHYSICAL_DEVICE_TYPE_OTHER"+  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = showString "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU"+  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = showString "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU"+  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = showString "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU"+  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_CPU = showString "VK_PHYSICAL_DEVICE_TYPE_CPU"+  showsPrec p (VkPhysicalDeviceType x) = showParen (p >= 11) (showString "VkPhysicalDeviceType " . showsPrec 11 x)++instance Read VkPhysicalDeviceType where+  readPrec = parens ( choose [ ("VK_PHYSICAL_DEVICE_TYPE_OTHER",          pure VK_PHYSICAL_DEVICE_TYPE_OTHER)+                             , ("VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU", pure VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU)+                             , ("VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU",   pure VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)+                             , ("VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU",    pure VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU)+                             , ("VK_PHYSICAL_DEVICE_TYPE_CPU",            pure VK_PHYSICAL_DEVICE_TYPE_CPU)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPhysicalDeviceType")+                        v <- step readPrec+                        pure (VkPhysicalDeviceType v)+                        )+                    )++-- No documentation found for Nested "VkPhysicalDeviceType" "VK_PHYSICAL_DEVICE_TYPE_OTHER"+pattern VK_PHYSICAL_DEVICE_TYPE_OTHER :: VkPhysicalDeviceType+pattern VK_PHYSICAL_DEVICE_TYPE_OTHER = VkPhysicalDeviceType 0++-- No documentation found for Nested "VkPhysicalDeviceType" "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU"+pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU :: VkPhysicalDeviceType+pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = VkPhysicalDeviceType 1++-- No documentation found for Nested "VkPhysicalDeviceType" "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU"+pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU :: VkPhysicalDeviceType+pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = VkPhysicalDeviceType 2++-- No documentation found for Nested "VkPhysicalDeviceType" "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU"+pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU :: VkPhysicalDeviceType+pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = VkPhysicalDeviceType 3++-- No documentation found for Nested "VkPhysicalDeviceType" "VK_PHYSICAL_DEVICE_TYPE_CPU"+pattern VK_PHYSICAL_DEVICE_TYPE_CPU :: VkPhysicalDeviceType+pattern VK_PHYSICAL_DEVICE_TYPE_CPU = VkPhysicalDeviceType 4+-- ** VkSystemAllocationScope++-- | VkSystemAllocationScope - Allocation scope+--+-- = Description+-- #_description#+--+-- -   @VK_SYSTEM_ALLOCATION_SCOPE_COMMAND@ specifies that the allocation+--     is scoped to the duration of the Vulkan command.+--+-- -   @VK_SYSTEM_ALLOCATION_SCOPE_OBJECT@ specifies that the allocation is+--     scoped to the lifetime of the Vulkan object that is being created or+--     used.+--+-- -   @VK_SYSTEM_ALLOCATION_SCOPE_CACHE@ specifies that the allocation is+--     scoped to the lifetime of a @VkPipelineCache@ object.+--+-- -   @VK_SYSTEM_ALLOCATION_SCOPE_DEVICE@ specifies that the allocation is+--     scoped to the lifetime of the Vulkan device.+--+-- -   @VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE@ specifies that the allocation+--     is scoped to the lifetime of the Vulkan instance.+--+-- Most Vulkan commands operate on a single object, or there is a sole+-- object that is being created or manipulated. When an allocation uses an+-- allocation scope of @VK_SYSTEM_ALLOCATION_SCOPE_OBJECT@ or+-- @VK_SYSTEM_ALLOCATION_SCOPE_CACHE@, the allocation is scoped to the+-- object being created or manipulated.+--+-- When an implementation requires host memory, it will make callbacks to+-- the application using the most specific allocator and allocation scope+-- available:+--+-- -   If an allocation is scoped to the duration of a command, the+--     allocator will use the @VK_SYSTEM_ALLOCATION_SCOPE_COMMAND@+--     allocation scope. The most specific allocator available is used: if+--     the object being created or manipulated has an allocator, that+--     object’s allocator will be used, else if the parent @VkDevice@ has+--     an allocator it will be used, else if the parent @VkInstance@ has an+--     allocator it will be used. Else,+--+-- -   If an allocation is associated with an object of type+--     @VkPipelineCache@, the allocator will use the+--     @VK_SYSTEM_ALLOCATION_SCOPE_CACHE@ allocation scope. The most+--     specific allocator available is used (cache, else device, else+--     instance). Else,+--+-- -   If an allocation is scoped to the lifetime of an object, that object+--     is being created or manipulated by the command, and that object’s+--     type is not @VkDevice@ or @VkInstance@, the allocator will use an+--     allocation scope of @VK_SYSTEM_ALLOCATION_SCOPE_OBJECT@. The most+--     specific allocator available is used (object, else device, else+--     instance). Else,+--+-- -   If an allocation is scoped to the lifetime of a device, the+--     allocator will use an allocation scope of+--     @VK_SYSTEM_ALLOCATION_SCOPE_DEVICE@. The most specific allocator+--     available is used (device, else instance). Else,+--+-- -   If the allocation is scoped to the lifetime of an instance and the+--     instance has an allocator, its allocator will be used with an+--     allocation scope of @VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE@.+--+-- -   Otherwise an implementation will allocate memory through an+--     alternative mechanism that is unspecified.+--+-- = See Also+-- #_see_also#+--+-- 'VkAllocationCallbacks'+newtype VkSystemAllocationScope = VkSystemAllocationScope Int32+  deriving (Eq, Ord, Storable)++instance Show VkSystemAllocationScope where+  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = showString "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"+  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = showString "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"+  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_CACHE = showString "VK_SYSTEM_ALLOCATION_SCOPE_CACHE"+  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = showString "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"+  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = showString "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE"+  showsPrec p (VkSystemAllocationScope x) = showParen (p >= 11) (showString "VkSystemAllocationScope " . showsPrec 11 x)++instance Read VkSystemAllocationScope where+  readPrec = parens ( choose [ ("VK_SYSTEM_ALLOCATION_SCOPE_COMMAND",  pure VK_SYSTEM_ALLOCATION_SCOPE_COMMAND)+                             , ("VK_SYSTEM_ALLOCATION_SCOPE_OBJECT",   pure VK_SYSTEM_ALLOCATION_SCOPE_OBJECT)+                             , ("VK_SYSTEM_ALLOCATION_SCOPE_CACHE",    pure VK_SYSTEM_ALLOCATION_SCOPE_CACHE)+                             , ("VK_SYSTEM_ALLOCATION_SCOPE_DEVICE",   pure VK_SYSTEM_ALLOCATION_SCOPE_DEVICE)+                             , ("VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE", pure VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSystemAllocationScope")+                        v <- step readPrec+                        pure (VkSystemAllocationScope v)+                        )+                    )++-- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"+pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND :: VkSystemAllocationScope+pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = VkSystemAllocationScope 0++-- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"+pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT :: VkSystemAllocationScope+pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = VkSystemAllocationScope 1++-- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_CACHE"+pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE :: VkSystemAllocationScope+pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE = VkSystemAllocationScope 2++-- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"+pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE :: VkSystemAllocationScope+pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = VkSystemAllocationScope 3++-- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE"+pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE :: VkSystemAllocationScope+pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = VkSystemAllocationScope 4+-- ** VkInternalAllocationType++-- | VkInternalAllocationType - Allocation type+--+-- = See Also+-- #_see_also#+--+-- 'PFN_vkInternalAllocationNotification', 'PFN_vkInternalFreeNotification'+newtype VkInternalAllocationType = VkInternalAllocationType Int32+  deriving (Eq, Ord, Storable)++instance Show VkInternalAllocationType where+  showsPrec _ VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = showString "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE"+  showsPrec p (VkInternalAllocationType x) = showParen (p >= 11) (showString "VkInternalAllocationType " . showsPrec 11 x)++instance Read VkInternalAllocationType where+  readPrec = parens ( choose [ ("VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE", pure VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkInternalAllocationType")+                        v <- step readPrec+                        pure (VkInternalAllocationType v)+                        )+                    )++-- | @VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE@ specifies that the allocation+-- is intended for execution by the host.+pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE :: VkInternalAllocationType+pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = VkInternalAllocationType 0+-- ** VkInstanceCreateFlags++-- | VkInstanceCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkInstanceCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkInstanceCreateInfo'+newtype VkInstanceCreateFlags = VkInstanceCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkInstanceCreateFlags where+  +  showsPrec p (VkInstanceCreateFlags x) = showParen (p >= 11) (showString "VkInstanceCreateFlags " . showsPrec 11 x)++instance Read VkInstanceCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkInstanceCreateFlags")+                        v <- step readPrec+                        pure (VkInstanceCreateFlags v)+                        )+                    )+++-- ** VkQueueFlagBits++-- | VkQueueFlagBits - Bitmask specifying capabilities of queues in a queue+-- family+--+-- = Description+-- #_description#+--+-- -   @VK_QUEUE_GRAPHICS_BIT@ specifies that queues in this queue family+--     support graphics operations.+--+-- -   @VK_QUEUE_COMPUTE_BIT@ specifies that queues in this queue family+--     support compute operations.+--+-- -   @VK_QUEUE_TRANSFER_BIT@ specifies that queues in this queue family+--     support transfer operations.+--+-- -   @VK_QUEUE_SPARSE_BINDING_BIT@ specifies that queues in this queue+--     family support sparse memory management operations (see+--     <{html_spec_relative}#sparsememory Sparse Resources>). If any of the+--     sparse resource features are enabled, then at least one queue family+--     /must/ support this bit.+--+-- If an implementation exposes any queue family that supports graphics+-- operations, at least one queue family of at least one physical device+-- exposed by the implementation /must/ support both graphics and compute+-- operations.+--+-- __Note__+--+-- All commands that are allowed on a queue that supports transfer+-- operations are also allowed on a queue that supports either graphics or+-- compute operations. Thus, if the capabilities of a queue family include+-- @VK_QUEUE_GRAPHICS_BIT@ or @VK_QUEUE_COMPUTE_BIT@, then reporting the+-- @VK_QUEUE_TRANSFER_BIT@ capability separately for that queue family is+-- /optional/.+--+-- For further details see+-- <{html_spec_relative}#devsandqueues-queues Queues>.+--+-- = See Also+-- #_see_also#+--+-- 'VkQueueFlags'+newtype VkQueueFlagBits = VkQueueFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkQueueFlagBits where+  showsPrec _ VK_QUEUE_GRAPHICS_BIT = showString "VK_QUEUE_GRAPHICS_BIT"+  showsPrec _ VK_QUEUE_COMPUTE_BIT = showString "VK_QUEUE_COMPUTE_BIT"+  showsPrec _ VK_QUEUE_TRANSFER_BIT = showString "VK_QUEUE_TRANSFER_BIT"+  showsPrec _ VK_QUEUE_SPARSE_BINDING_BIT = showString "VK_QUEUE_SPARSE_BINDING_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkQueueFlagBits 0x00000010) = showString "VK_QUEUE_PROTECTED_BIT"+  showsPrec p (VkQueueFlagBits x) = showParen (p >= 11) (showString "VkQueueFlagBits " . showsPrec 11 x)++instance Read VkQueueFlagBits where+  readPrec = parens ( choose [ ("VK_QUEUE_GRAPHICS_BIT",       pure VK_QUEUE_GRAPHICS_BIT)+                             , ("VK_QUEUE_COMPUTE_BIT",        pure VK_QUEUE_COMPUTE_BIT)+                             , ("VK_QUEUE_TRANSFER_BIT",       pure VK_QUEUE_TRANSFER_BIT)+                             , ("VK_QUEUE_SPARSE_BINDING_BIT", pure VK_QUEUE_SPARSE_BINDING_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_QUEUE_PROTECTED_BIT", pure (VkQueueFlagBits 0x00000010))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkQueueFlagBits")+                        v <- step readPrec+                        pure (VkQueueFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_GRAPHICS_BIT"+pattern VK_QUEUE_GRAPHICS_BIT :: VkQueueFlagBits+pattern VK_QUEUE_GRAPHICS_BIT = VkQueueFlagBits 0x00000001++-- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_COMPUTE_BIT"+pattern VK_QUEUE_COMPUTE_BIT :: VkQueueFlagBits+pattern VK_QUEUE_COMPUTE_BIT = VkQueueFlagBits 0x00000002++-- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_TRANSFER_BIT"+pattern VK_QUEUE_TRANSFER_BIT :: VkQueueFlagBits+pattern VK_QUEUE_TRANSFER_BIT = VkQueueFlagBits 0x00000004++-- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_SPARSE_BINDING_BIT"+pattern VK_QUEUE_SPARSE_BINDING_BIT :: VkQueueFlagBits+pattern VK_QUEUE_SPARSE_BINDING_BIT = VkQueueFlagBits 0x00000008+-- ** VkMemoryPropertyFlagBits++-- | VkMemoryPropertyFlagBits - Bitmask specifying properties for a memory+-- type+--+-- = See Also+-- #_see_also#+--+-- 'VkMemoryPropertyFlags'+newtype VkMemoryPropertyFlagBits = VkMemoryPropertyFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkMemoryPropertyFlagBits where+  showsPrec _ VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = showString "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"+  showsPrec _ VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = showString "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"+  showsPrec _ VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = showString "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"+  showsPrec _ VK_MEMORY_PROPERTY_HOST_CACHED_BIT = showString "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"+  showsPrec _ VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = showString "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkMemoryPropertyFlagBits 0x00000020) = showString "VK_MEMORY_PROPERTY_PROTECTED_BIT"+  showsPrec p (VkMemoryPropertyFlagBits x) = showParen (p >= 11) (showString "VkMemoryPropertyFlagBits " . showsPrec 11 x)++instance Read VkMemoryPropertyFlagBits where+  readPrec = parens ( choose [ ("VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT",     pure VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)+                             , ("VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT",     pure VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)+                             , ("VK_MEMORY_PROPERTY_HOST_COHERENT_BIT",    pure VK_MEMORY_PROPERTY_HOST_COHERENT_BIT)+                             , ("VK_MEMORY_PROPERTY_HOST_CACHED_BIT",      pure VK_MEMORY_PROPERTY_HOST_CACHED_BIT)+                             , ("VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT", pure VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_MEMORY_PROPERTY_PROTECTED_BIT", pure (VkMemoryPropertyFlagBits 0x00000020))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkMemoryPropertyFlagBits")+                        v <- step readPrec+                        pure (VkMemoryPropertyFlagBits v)+                        )+                    )++-- | @VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT@ bit specifies that memory+-- allocated with this type is the most efficient for device access. This+-- property will be set if and only if the memory type belongs to a heap+-- with the @VK_MEMORY_HEAP_DEVICE_LOCAL_BIT@ set.+pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT :: VkMemoryPropertyFlagBits+pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = VkMemoryPropertyFlagBits 0x00000001++-- | @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ bit specifies that memory+-- allocated with this type /can/ be mapped for host access using+-- 'Graphics.Vulkan.Core10.Memory.vkMapMemory'.+pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT :: VkMemoryPropertyFlagBits+pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = VkMemoryPropertyFlagBits 0x00000002++-- | @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@ bit specifies that the host cache+-- management commands+-- 'Graphics.Vulkan.Core10.Memory.vkFlushMappedMemoryRanges' and+-- 'Graphics.Vulkan.Core10.Memory.vkInvalidateMappedMemoryRanges' are not+-- needed to flush host writes to the device or make device writes visible+-- to the host, respectively.+pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT :: VkMemoryPropertyFlagBits+pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = VkMemoryPropertyFlagBits 0x00000004++-- | @VK_MEMORY_PROPERTY_HOST_CACHED_BIT@ bit specifies that memory allocated+-- with this type is cached on the host. Host memory accesses to uncached+-- memory are slower than to cached memory, however uncached memory is+-- always host coherent.+pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT :: VkMemoryPropertyFlagBits+pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT = VkMemoryPropertyFlagBits 0x00000008++-- | @VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT@ bit specifies that the memory+-- type only allows device access to the memory. Memory types /must/ not+-- have both @VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT@ and+-- @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ set. Additionally, the object’s+-- backing memory /may/ be provided by the implementation lazily as+-- specified in+-- <{html_spec_relative}#memory-device-lazy_allocation Lazily Allocated Memory>.+pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT :: VkMemoryPropertyFlagBits+pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = VkMemoryPropertyFlagBits 0x00000010+-- ** VkMemoryHeapFlagBits++-- | VkMemoryHeapFlagBits - Bitmask specifying attribute flags for a heap+--+-- = See Also+-- #_see_also#+--+-- 'VkMemoryHeapFlags'+newtype VkMemoryHeapFlagBits = VkMemoryHeapFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkMemoryHeapFlagBits where+  showsPrec _ VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = showString "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkMemoryHeapFlagBits 0x00000002) = showString "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"+  showsPrec p (VkMemoryHeapFlagBits x) = showParen (p >= 11) (showString "VkMemoryHeapFlagBits " . showsPrec 11 x)++instance Read VkMemoryHeapFlagBits where+  readPrec = parens ( choose [ ("VK_MEMORY_HEAP_DEVICE_LOCAL_BIT", pure VK_MEMORY_HEAP_DEVICE_LOCAL_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_MEMORY_HEAP_MULTI_INSTANCE_BIT", pure (VkMemoryHeapFlagBits 0x00000002))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkMemoryHeapFlagBits")+                        v <- step readPrec+                        pure (VkMemoryHeapFlagBits v)+                        )+                    )++-- | @VK_MEMORY_HEAP_DEVICE_LOCAL_BIT@ specifies that the heap corresponds to+-- device local memory. Device local memory /may/ have different+-- performance characteristics than host local memory, and /may/ support+-- different memory property flags.+pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT :: VkMemoryHeapFlagBits+pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = VkMemoryHeapFlagBits 0x00000001+-- ** VkImageUsageFlagBits++-- | VkImageUsageFlagBits - Bitmask specifying intended usage of an image+--+-- = See Also+-- #_see_also#+--+-- 'VkImageUsageFlags'+newtype VkImageUsageFlagBits = VkImageUsageFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkImageUsageFlagBits where+  showsPrec _ VK_IMAGE_USAGE_TRANSFER_SRC_BIT = showString "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"+  showsPrec _ VK_IMAGE_USAGE_TRANSFER_DST_BIT = showString "VK_IMAGE_USAGE_TRANSFER_DST_BIT"+  showsPrec _ VK_IMAGE_USAGE_SAMPLED_BIT = showString "VK_IMAGE_USAGE_SAMPLED_BIT"+  showsPrec _ VK_IMAGE_USAGE_STORAGE_BIT = showString "VK_IMAGE_USAGE_STORAGE_BIT"+  showsPrec _ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = showString "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"+  showsPrec _ VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = showString "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"+  showsPrec _ VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = showString "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"+  showsPrec _ VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = showString "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"+  showsPrec p (VkImageUsageFlagBits x) = showParen (p >= 11) (showString "VkImageUsageFlagBits " . showsPrec 11 x)++instance Read VkImageUsageFlagBits where+  readPrec = parens ( choose [ ("VK_IMAGE_USAGE_TRANSFER_SRC_BIT",             pure VK_IMAGE_USAGE_TRANSFER_SRC_BIT)+                             , ("VK_IMAGE_USAGE_TRANSFER_DST_BIT",             pure VK_IMAGE_USAGE_TRANSFER_DST_BIT)+                             , ("VK_IMAGE_USAGE_SAMPLED_BIT",                  pure VK_IMAGE_USAGE_SAMPLED_BIT)+                             , ("VK_IMAGE_USAGE_STORAGE_BIT",                  pure VK_IMAGE_USAGE_STORAGE_BIT)+                             , ("VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT",         pure VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT)+                             , ("VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", pure VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)+                             , ("VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT",     pure VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT)+                             , ("VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT",         pure VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkImageUsageFlagBits")+                        v <- step readPrec+                        pure (VkImageUsageFlagBits v)+                        )+                    )++-- | @VK_IMAGE_USAGE_TRANSFER_SRC_BIT@ specifies that the image /can/ be used+-- as the source of a transfer command.+pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT :: VkImageUsageFlagBits+pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT = VkImageUsageFlagBits 0x00000001++-- | @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ specifies that the image /can/ be used+-- as the destination of a transfer command.+pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT :: VkImageUsageFlagBits+pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT = VkImageUsageFlagBits 0x00000002++-- | @VK_IMAGE_USAGE_SAMPLED_BIT@ specifies that the image /can/ be used to+-- create a @VkImageView@ suitable for occupying a @VkDescriptorSet@ slot+-- either of type @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@ or+-- @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, and be sampled by a shader.+pattern VK_IMAGE_USAGE_SAMPLED_BIT :: VkImageUsageFlagBits+pattern VK_IMAGE_USAGE_SAMPLED_BIT = VkImageUsageFlagBits 0x00000004++-- | @VK_IMAGE_USAGE_STORAGE_BIT@ specifies that the image /can/ be used to+-- create a @VkImageView@ suitable for occupying a @VkDescriptorSet@ slot+-- of type @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@.+pattern VK_IMAGE_USAGE_STORAGE_BIT :: VkImageUsageFlagBits+pattern VK_IMAGE_USAGE_STORAGE_BIT = VkImageUsageFlagBits 0x00000008++-- | @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@ specifies that the image /can/ be+-- used to create a @VkImageView@ suitable for use as a color or resolve+-- attachment in a @VkFramebuffer@.+pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT :: VkImageUsageFlagBits+pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = VkImageUsageFlagBits 0x00000010++-- | @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@ specifies that the image+-- /can/ be used to create a @VkImageView@ suitable for use as a+-- depth\/stencil attachment in a @VkFramebuffer@.+pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT :: VkImageUsageFlagBits+pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = VkImageUsageFlagBits 0x00000020++-- | @VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT@ specifies that the memory+-- bound to this image will have been allocated with the+-- @VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT@ (see+-- <{html_spec_relative}#memory {html_spec_relative}#memory> for more+-- detail). This bit /can/ be set for any image that /can/ be used to+-- create a @VkImageView@ suitable for use as a color, resolve,+-- depth\/stencil, or input attachment.+pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT :: VkImageUsageFlagBits+pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = VkImageUsageFlagBits 0x00000040++-- | @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@ specifies that the image /can/ be+-- used to create a @VkImageView@ suitable for occupying @VkDescriptorSet@+-- slot of type @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@; be read from a+-- shader as an input attachment; and be used as an input attachment in a+-- framebuffer.+pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT :: VkImageUsageFlagBits+pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = VkImageUsageFlagBits 0x00000080+-- ** VkImageCreateFlagBits++-- | VkImageCreateFlagBits - Bitmask specifying additional parameters of an+-- image+--+-- = Description+-- #_description#+--+-- -   @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@ specifies that the image will+--     be backed using sparse memory binding.+--+-- -   @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@ specifies that the image+--     /can/ be partially backed using sparse memory binding. Images+--     created with this flag /must/ also be created with the+--     @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@ flag.+--+-- -   @VK_IMAGE_CREATE_SPARSE_ALIASED_BIT@ specifies that the image will+--     be backed using sparse memory binding with memory ranges that might+--     also simultaneously be backing another image (or another portion of+--     the same image). Images created with this flag /must/ also be+--     created with the @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@ flag+--+-- -   @VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT@ specifies that the image /can/+--     be used to create a @VkImageView@ with a different format from the+--     image.+--+-- -   @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@ specifies that the image /can/+--     be used to create a @VkImageView@ of type @VK_IMAGE_VIEW_TYPE_CUBE@+--     or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@.+--+-- See+-- <{html_spec_relative}#sparsememory-sparseresourcefeatures Sparse Resource Features>+-- and+-- <{html_spec_relative}#sparsememory-physicalfeatures Sparse Physical Device Features>+-- for more details.+--+-- = See Also+-- #_see_also#+--+-- 'VkImageCreateFlags'+newtype VkImageCreateFlagBits = VkImageCreateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkImageCreateFlagBits where+  showsPrec _ VK_IMAGE_CREATE_SPARSE_BINDING_BIT = showString "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"+  showsPrec _ VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = showString "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"+  showsPrec _ VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = showString "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"+  showsPrec _ VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = showString "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"+  showsPrec _ VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = showString "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkImageCreateFlagBits 0x00000400) = showString "VK_IMAGE_CREATE_ALIAS_BIT"+  showsPrec _ (VkImageCreateFlagBits 0x00000040) = showString "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"+  showsPrec _ (VkImageCreateFlagBits 0x00000020) = showString "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"+  showsPrec _ (VkImageCreateFlagBits 0x00000080) = showString "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"+  showsPrec _ (VkImageCreateFlagBits 0x00000100) = showString "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"+  showsPrec _ (VkImageCreateFlagBits 0x00000800) = showString "VK_IMAGE_CREATE_PROTECTED_BIT"+  showsPrec _ (VkImageCreateFlagBits 0x00000200) = showString "VK_IMAGE_CREATE_DISJOINT_BIT"+  showsPrec _ (VkImageCreateFlagBits 0x00001000) = showString "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"+  showsPrec p (VkImageCreateFlagBits x) = showParen (p >= 11) (showString "VkImageCreateFlagBits " . showsPrec 11 x)++instance Read VkImageCreateFlagBits where+  readPrec = parens ( choose [ ("VK_IMAGE_CREATE_SPARSE_BINDING_BIT",   pure VK_IMAGE_CREATE_SPARSE_BINDING_BIT)+                             , ("VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", pure VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT)+                             , ("VK_IMAGE_CREATE_SPARSE_ALIASED_BIT",   pure VK_IMAGE_CREATE_SPARSE_ALIASED_BIT)+                             , ("VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT",   pure VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT)+                             , ("VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT",  pure VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_IMAGE_CREATE_ALIAS_BIT",                                 pure (VkImageCreateFlagBits 0x00000400))+                             , ("VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT",           pure (VkImageCreateFlagBits 0x00000040))+                             , ("VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT",                   pure (VkImageCreateFlagBits 0x00000020))+                             , ("VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT",           pure (VkImageCreateFlagBits 0x00000080))+                             , ("VK_IMAGE_CREATE_EXTENDED_USAGE_BIT",                        pure (VkImageCreateFlagBits 0x00000100))+                             , ("VK_IMAGE_CREATE_PROTECTED_BIT",                             pure (VkImageCreateFlagBits 0x00000800))+                             , ("VK_IMAGE_CREATE_DISJOINT_BIT",                              pure (VkImageCreateFlagBits 0x00000200))+                             , ("VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT", pure (VkImageCreateFlagBits 0x00001000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkImageCreateFlagBits")+                        v <- step readPrec+                        pure (VkImageCreateFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"+pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT = VkImageCreateFlagBits 0x00000001++-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"+pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = VkImageCreateFlagBits 0x00000002++-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"+pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = VkImageCreateFlagBits 0x00000004++-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"+pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = VkImageCreateFlagBits 0x00000008++-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"+pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = VkImageCreateFlagBits 0x00000010+-- ** VkFormatFeatureFlagBits++-- | VkFormatFeatureFlagBits - Bitmask specifying features supported by a+-- buffer+--+-- = Description+-- #_description#+--+-- The following bits /may/ be set in @linearTilingFeatures@ and+-- @optimalTilingFeatures@, specifying that the features are supported by+-- <{html_spec_relative}#VkImage images> or+-- <{html_spec_relative}#VkImageView image views> created with the queried+-- 'vkGetPhysicalDeviceFormatProperties'::@format@:+--+-- -   @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@ specifies that an image view+--     /can/ be+--     <{html_spec_relative}#descriptorsets-sampledimage sampled from>.+--+-- -   @VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT@ specifies that an image view+--     /can/ be used as a+--     <{html_spec_relative}#descriptorsets-storageimage storage images>.+--+-- -   @VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT@ specifies that an image+--     view /can/ be used as storage image that supports atomic operations.+--+-- -   @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT@ specifies that an image+--     view /can/ be used as a framebuffer color attachment and as an input+--     attachment.+--+-- -   @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT@ specifies that an+--     image view /can/ be used as a framebuffer color attachment that+--     supports blending and as an input attachment.+--+-- -   @VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT@ specifies that an+--     image view /can/ be used as a framebuffer depth\/stencil attachment+--     and as an input attachment.+--+-- -   @VK_FORMAT_FEATURE_BLIT_SRC_BIT@ specifies that an image /can/ be+--     used as @srcImage@ for the @vkCmdBlitImage@ command.+--+-- -   @VK_FORMAT_FEATURE_BLIT_DST_BIT@ specifies that an image /can/ be+--     used as @dstImage@ for the @vkCmdBlitImage@ command.+--+-- -   @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ specifies that+--     if @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@ is also set, an image view+--     /can/ be used with a sampler that has either of @magFilter@ or+--     @minFilter@ set to @VK_FILTER_LINEAR@, or @mipmapMode@ set to+--     @VK_SAMPLER_MIPMAP_MODE_LINEAR@. If @VK_FORMAT_FEATURE_BLIT_SRC_BIT@+--     is also set, an image can be used as the @srcImage@ to+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBlitImage' with a+--     @filter@ of @VK_FILTER_LINEAR@. This bit /must/ only be exposed for+--     formats that also support the @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@+--     or @VK_FORMAT_FEATURE_BLIT_SRC_BIT@.+--+--     If the format being queried is a depth\/stencil format, this bit+--     only specifies that the depth aspect (not the stencil aspect) of an+--     image of this format supports linear filtering, and that linear+--     filtering of the depth aspect is supported whether depth compare is+--     enabled in the sampler or not. If this bit is not present, linear+--     filtering with depth compare disabled is unsupported and linear+--     filtering with depth compare enabled is supported, but /may/ compute+--     the filtered value in an implementation-dependent manner which+--     differs from the normal rules of linear filtering. The resulting+--     value /must/ be in the range [0,1] and /should/ be proportional to,+--     or a weighted average of, the number of comparison passes or+--     failures.+--+-- The following bits /may/ be set in @bufferFeatures@, specifying that the+-- features are supported by <{html_spec_relative}#VkBuffer buffers> or+-- <{html_spec_relative}#VkBufferView buffer views> created with the+-- queried 'vkGetPhysicalDeviceProperties'::@format@:+--+-- -   @VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT@ specifies that the+--     format /can/ be used to create a buffer view that /can/ be bound to+--     a @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ descriptor.+--+-- -   @VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT@ specifies that the+--     format /can/ be used to create a buffer view that /can/ be bound to+--     a @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ descriptor.+--+-- -   @VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT@ specifies that+--     atomic operations are supported on+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ with this format.+--+-- -   @VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT@ specifies that the format+--     /can/ be used as a vertex attribute format+--     (@VkVertexInputAttributeDescription@::@format@).+--+-- = See Also+-- #_see_also#+--+-- 'VkFormatFeatureFlags'+newtype VkFormatFeatureFlagBits = VkFormatFeatureFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkFormatFeatureFlagBits where+  showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"+  showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"+  showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"+  showsPrec _ VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = showString "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"+  showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"+  showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"+  showsPrec _ VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = showString "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"+  showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"+  showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"+  showsPrec _ VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = showString "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"+  showsPrec _ VK_FORMAT_FEATURE_BLIT_SRC_BIT = showString "VK_FORMAT_FEATURE_BLIT_SRC_BIT"+  showsPrec _ VK_FORMAT_FEATURE_BLIT_DST_BIT = showString "VK_FORMAT_FEATURE_BLIT_DST_BIT"+  showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkFormatFeatureFlagBits 0x00004000) = showString "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00008000) = showString "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00020000) = showString "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00040000) = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00080000) = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00100000) = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00200000) = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00400000) = showString "VK_FORMAT_FEATURE_DISJOINT_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00800000) = showString "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"+  showsPrec _ (VkFormatFeatureFlagBits 0x00002000) = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"+  showsPrec _ (VkFormatFeatureFlagBits 0x00010000) = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT"+  showsPrec p (VkFormatFeatureFlagBits x) = showParen (p >= 11) (showString "VkFormatFeatureFlagBits " . showsPrec 11 x)++instance Read VkFormatFeatureFlagBits where+  readPrec = parens ( choose [ ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT",               pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)+                             , ("VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT",               pure VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT)+                             , ("VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT",        pure VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT)+                             , ("VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT",        pure VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT)+                             , ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT",        pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT)+                             , ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT)+                             , ("VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT",               pure VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT)+                             , ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT",            pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT)+                             , ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT",      pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT)+                             , ("VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT",    pure VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT)+                             , ("VK_FORMAT_FEATURE_BLIT_SRC_BIT",                    pure VK_FORMAT_FEATURE_BLIT_SRC_BIT)+                             , ("VK_FORMAT_FEATURE_BLIT_DST_BIT",                    pure VK_FORMAT_FEATURE_BLIT_DST_BIT)+                             , ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_FORMAT_FEATURE_TRANSFER_SRC_BIT",                                                            pure (VkFormatFeatureFlagBits 0x00004000))+                             , ("VK_FORMAT_FEATURE_TRANSFER_DST_BIT",                                                            pure (VkFormatFeatureFlagBits 0x00008000))+                             , ("VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT",                                                 pure (VkFormatFeatureFlagBits 0x00020000))+                             , ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT",                            pure (VkFormatFeatureFlagBits 0x00040000))+                             , ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT",           pure (VkFormatFeatureFlagBits 0x00080000))+                             , ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT",           pure (VkFormatFeatureFlagBits 0x00100000))+                             , ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT", pure (VkFormatFeatureFlagBits 0x00200000))+                             , ("VK_FORMAT_FEATURE_DISJOINT_BIT",                                                                pure (VkFormatFeatureFlagBits 0x00400000))+                             , ("VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT",                                                  pure (VkFormatFeatureFlagBits 0x00800000))+                             , ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG",                                          pure (VkFormatFeatureFlagBits 0x00002000))+                             , ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT",                                         pure (VkFormatFeatureFlagBits 0x00010000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkFormatFeatureFlagBits")+                        v <- step readPrec+                        pure (VkFormatFeatureFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = VkFormatFeatureFlagBits 0x00000001++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"+pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = VkFormatFeatureFlagBits 0x00000002++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"+pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = VkFormatFeatureFlagBits 0x00000004++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"+pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = VkFormatFeatureFlagBits 0x00000008++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"+pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = VkFormatFeatureFlagBits 0x00000010++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"+pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = VkFormatFeatureFlagBits 0x00000020++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"+pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = VkFormatFeatureFlagBits 0x00000040++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"+pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = VkFormatFeatureFlagBits 0x00000080++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"+pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = VkFormatFeatureFlagBits 0x00000100++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"+pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = VkFormatFeatureFlagBits 0x00000200++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_BLIT_SRC_BIT"+pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT = VkFormatFeatureFlagBits 0x00000400++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_BLIT_DST_BIT"+pattern VK_FORMAT_FEATURE_BLIT_DST_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_BLIT_DST_BIT = VkFormatFeatureFlagBits 0x00000800++-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = VkFormatFeatureFlagBits 0x00001000+-- ** VkSampleCountFlagBits++-- | VkSampleCountFlagBits - Bitmask specifying sample counts supported for+-- an image used for storage operations+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pass.VkAttachmentDescription',+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo',+-- 'VkSampleCountFlags',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.vkGetPhysicalDeviceMultisamplePropertiesEXT',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetPhysicalDeviceSparseImageFormatProperties'+newtype VkSampleCountFlagBits = VkSampleCountFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSampleCountFlagBits where+  showsPrec _ VK_SAMPLE_COUNT_1_BIT = showString "VK_SAMPLE_COUNT_1_BIT"+  showsPrec _ VK_SAMPLE_COUNT_2_BIT = showString "VK_SAMPLE_COUNT_2_BIT"+  showsPrec _ VK_SAMPLE_COUNT_4_BIT = showString "VK_SAMPLE_COUNT_4_BIT"+  showsPrec _ VK_SAMPLE_COUNT_8_BIT = showString "VK_SAMPLE_COUNT_8_BIT"+  showsPrec _ VK_SAMPLE_COUNT_16_BIT = showString "VK_SAMPLE_COUNT_16_BIT"+  showsPrec _ VK_SAMPLE_COUNT_32_BIT = showString "VK_SAMPLE_COUNT_32_BIT"+  showsPrec _ VK_SAMPLE_COUNT_64_BIT = showString "VK_SAMPLE_COUNT_64_BIT"+  showsPrec p (VkSampleCountFlagBits x) = showParen (p >= 11) (showString "VkSampleCountFlagBits " . showsPrec 11 x)++instance Read VkSampleCountFlagBits where+  readPrec = parens ( choose [ ("VK_SAMPLE_COUNT_1_BIT",  pure VK_SAMPLE_COUNT_1_BIT)+                             , ("VK_SAMPLE_COUNT_2_BIT",  pure VK_SAMPLE_COUNT_2_BIT)+                             , ("VK_SAMPLE_COUNT_4_BIT",  pure VK_SAMPLE_COUNT_4_BIT)+                             , ("VK_SAMPLE_COUNT_8_BIT",  pure VK_SAMPLE_COUNT_8_BIT)+                             , ("VK_SAMPLE_COUNT_16_BIT", pure VK_SAMPLE_COUNT_16_BIT)+                             , ("VK_SAMPLE_COUNT_32_BIT", pure VK_SAMPLE_COUNT_32_BIT)+                             , ("VK_SAMPLE_COUNT_64_BIT", pure VK_SAMPLE_COUNT_64_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSampleCountFlagBits")+                        v <- step readPrec+                        pure (VkSampleCountFlagBits v)+                        )+                    )++-- | @VK_SAMPLE_COUNT_1_BIT@ specifies an image with one sample per pixel.+pattern VK_SAMPLE_COUNT_1_BIT :: VkSampleCountFlagBits+pattern VK_SAMPLE_COUNT_1_BIT = VkSampleCountFlagBits 0x00000001++-- | @VK_SAMPLE_COUNT_2_BIT@ specifies an image with 2 samples per pixel.+pattern VK_SAMPLE_COUNT_2_BIT :: VkSampleCountFlagBits+pattern VK_SAMPLE_COUNT_2_BIT = VkSampleCountFlagBits 0x00000002++-- | @VK_SAMPLE_COUNT_4_BIT@ specifies an image with 4 samples per pixel.+pattern VK_SAMPLE_COUNT_4_BIT :: VkSampleCountFlagBits+pattern VK_SAMPLE_COUNT_4_BIT = VkSampleCountFlagBits 0x00000004++-- | @VK_SAMPLE_COUNT_8_BIT@ specifies an image with 8 samples per pixel.+pattern VK_SAMPLE_COUNT_8_BIT :: VkSampleCountFlagBits+pattern VK_SAMPLE_COUNT_8_BIT = VkSampleCountFlagBits 0x00000008++-- | @VK_SAMPLE_COUNT_16_BIT@ specifies an image with 16 samples per pixel.+pattern VK_SAMPLE_COUNT_16_BIT :: VkSampleCountFlagBits+pattern VK_SAMPLE_COUNT_16_BIT = VkSampleCountFlagBits 0x00000010++-- | @VK_SAMPLE_COUNT_32_BIT@ specifies an image with 32 samples per pixel.+pattern VK_SAMPLE_COUNT_32_BIT :: VkSampleCountFlagBits+pattern VK_SAMPLE_COUNT_32_BIT = VkSampleCountFlagBits 0x00000020++-- | @VK_SAMPLE_COUNT_64_BIT@ specifies an image with 64 samples per pixel.+pattern VK_SAMPLE_COUNT_64_BIT :: VkSampleCountFlagBits+pattern VK_SAMPLE_COUNT_64_BIT = VkSampleCountFlagBits 0x00000040+-- No documentation found for TopLevel "VK_MAX_PHYSICAL_DEVICE_NAME_SIZE"+type VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256+-- No documentation found for Nested "Integral a => a" "VK_MAX_PHYSICAL_DEVICE_NAME_SIZE"+pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE :: Integral a => a+pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256+-- No documentation found for TopLevel "VK_UUID_SIZE"+type VK_UUID_SIZE = 16+-- No documentation found for Nested "Integral a => a" "VK_UUID_SIZE"+pattern VK_UUID_SIZE :: Integral a => a+pattern VK_UUID_SIZE = 16+-- No documentation found for TopLevel "VK_MAX_MEMORY_TYPES"+type VK_MAX_MEMORY_TYPES = 32+-- No documentation found for Nested "Integral a => a" "VK_MAX_MEMORY_TYPES"+pattern VK_MAX_MEMORY_TYPES :: Integral a => a+pattern VK_MAX_MEMORY_TYPES = 32+-- No documentation found for TopLevel "VK_MAX_MEMORY_HEAPS"+type VK_MAX_MEMORY_HEAPS = 16+-- No documentation found for Nested "Integral a => a" "VK_MAX_MEMORY_HEAPS"+pattern VK_MAX_MEMORY_HEAPS :: Integral a => a+pattern VK_MAX_MEMORY_HEAPS = 16+-- | PFN_vkInternalAllocationNotification - Application-defined memory+-- allocation notification function+--+-- = Parameters+-- #_parameters#+--+-- -   @pUserData@ is the value specified for+--     'VkAllocationCallbacks'::@pUserData@ in the allocator specified by+--     the application.+--+-- -   @size@ is the requested size of an allocation.+--+-- -   @allocationType@ is a 'VkInternalAllocationType' value specifying+--     the requested type of an allocation.+--+-- -   @allocationScope@ is a 'VkSystemAllocationScope' value specifying+--     the allocation scope of the lifetime of the allocation, as described+--     <{html_spec_relative}#memory-host-allocation-scope here>.+--+-- = Description+-- #_description#+--+-- This is a purely informational callback.+--+-- = See Also+-- #_see_also#+--+-- 'VkAllocationCallbacks'+type PFN_vkInternalAllocationNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ())+-- | PFN_vkInternalFreeNotification - Application-defined memory free+-- notification function+--+-- = Parameters+-- #_parameters#+--+-- -   @pUserData@ is the value specified for+--     'VkAllocationCallbacks'::@pUserData@ in the allocator specified by+--     the application.+--+-- -   @size@ is the requested size of an allocation.+--+-- -   @allocationType@ is a 'VkInternalAllocationType' value specifying+--     the requested type of an allocation.+--+-- -   @allocationScope@ is a 'VkSystemAllocationScope' value specifying+--     the allocation scope of the lifetime of the allocation, as described+--     <{html_spec_relative}#memory-host-allocation-scope here>.+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkAllocationCallbacks'+type PFN_vkInternalFreeNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ())+-- | PFN_vkReallocationFunction - Application-defined memory reallocation+-- function+--+-- = Parameters+-- #_parameters#+--+-- -   @pUserData@ is the value specified for+--     'VkAllocationCallbacks'::@pUserData@ in the allocator specified by+--     the application.+--+-- -   @pOriginal@ /must/ be either @NULL@ or a pointer previously returned+--     by @pfnReallocation@ or @pfnAllocation@ of the same allocator.+--+-- -   @size@ is the size in bytes of the requested allocation.+--+-- -   @alignment@ is the requested alignment of the allocation in bytes+--     and /must/ be a power of two.+--+-- -   @allocationScope@ is a 'VkSystemAllocationScope' value specifying+--     the allocation scope of the lifetime of the allocation, as described+--     <{html_spec_relative}#memory-host-allocation-scope here>.+--+-- = Description+-- #_description#+--+-- @pfnReallocation@ /must/ return an allocation with enough space for+-- @size@ bytes, and the contents of the original allocation from bytes+-- zero to min(original size, new size) - 1 /must/ be preserved in the+-- returned allocation. If @size@ is larger than the old size, the contents+-- of the additional space are undefined. If satisfying these requirements+-- involves creating a new allocation, then the old allocation /should/ be+-- freed.+--+-- If @pOriginal@ is @NULL@, then @pfnReallocation@ /must/ behave+-- equivalently to a call to 'PFN_vkAllocationFunction' with the same+-- parameter values (without @pOriginal@).+--+-- If @size@ is zero, then @pfnReallocation@ /must/ behave equivalently to+-- a call to 'PFN_vkFreeFunction' with the same @pUserData@ parameter+-- value, and @pMemory@ equal to @pOriginal@.+--+-- If @pOriginal@ is non-@NULL@, the implementation /must/ ensure that+-- @alignment@ is equal to the @alignment@ used to originally allocate+-- @pOriginal@.+--+-- If this function fails and @pOriginal@ is non-@NULL@ the application+-- /must/ not free the old allocation.+--+-- @pfnReallocation@ /must/ follow the same+-- <{html_spec_relative}#vkAllocationFunction_return_rules rules for return values as PFN_vkAllocationFunction>.+--+-- = See Also+-- #_see_also#+--+-- 'VkAllocationCallbacks'+type PFN_vkReallocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pOriginal" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ()))+-- | PFN_vkAllocationFunction - Application-defined memory allocation+-- function+--+-- = Parameters+-- #_parameters#+--+-- -   @pUserData@ is the value specified for+--     'VkAllocationCallbacks'::@pUserData@ in the allocator specified by+--     the application.+--+-- -   @size@ is the size in bytes of the requested allocation.+--+-- -   @alignment@ is the requested alignment of the allocation in bytes+--     and /must/ be a power of two.+--+-- -   @allocationScope@ is a 'VkSystemAllocationScope' value specifying+--     the allocation scope of the lifetime of the allocation, as described+--     <{html_spec_relative}#memory-host-allocation-scope here>.+--+-- = Description+-- #_description#+--+-- If @pfnAllocation@ is unable to allocate the requested memory, it /must/+-- return @NULL@. If the allocation was successful, it /must/ return a+-- valid pointer to memory allocation containing at least @size@ bytes, and+-- with the pointer value being a multiple of @alignment@.+--+-- __Note__+--+-- Correct Vulkan operation /cannot/ be assumed if the application does not+-- follow these rules.+--+-- For example, @pfnAllocation@ (or @pfnReallocation@) could cause+-- termination of running Vulkan instance(s) on a failed allocation for+-- debugging purposes, either directly or indirectly. In these+-- circumstances, it /cannot/ be assumed that any part of any affected+-- 'VkInstance' objects are going to operate correctly (even+-- 'vkDestroyInstance'), and the application /must/ ensure it cleans up+-- properly via other means (e.g. process termination).+--+-- If @pfnAllocation@ returns @NULL@, and if the implementation is unable+-- to continue correct processing of the current command without the+-- requested allocation, it /must/ treat this as a run-time error, and+-- generate @VK_ERROR_OUT_OF_HOST_MEMORY@ at the appropriate time for the+-- command in which the condition was detected, as described in+-- <{html_spec_relative}#fundamentals-errorcodes Return Codes>.+--+-- If the implementation is able to continue correct processing of the+-- current command without the requested allocation, then it /may/ do so,+-- and /must/ not generate @VK_ERROR_OUT_OF_HOST_MEMORY@ as a result of+-- this failed allocation.+--+-- = See Also+-- #_see_also#+--+-- 'VkAllocationCallbacks'+type PFN_vkAllocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ()))+-- | PFN_vkFreeFunction - Application-defined memory free function+--+-- = Parameters+-- #_parameters#+--+-- -   @pUserData@ is the value specified for+--     'VkAllocationCallbacks'::@pUserData@ in the allocator specified by+--     the application.+--+-- -   @pMemory@ is the allocation to be freed.+--+-- = Description+-- #_description#+--+-- @pMemory@ /may/ be @NULL@, which the callback /must/ handle safely. If+-- @pMemory@ is non-@NULL@, it /must/ be a pointer previously allocated by+-- @pfnAllocation@ or @pfnReallocation@. The application /should/ free this+-- memory.+--+-- = See Also+-- #_see_also#+--+-- 'VkAllocationCallbacks'+type PFN_vkFreeFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pMemory" ::: Ptr ()) -> IO ())+-- | PFN_vkVoidFunction - Dummy function pointer type returned by queries+--+-- = Parameters+-- #_parameters#+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'vkGetDeviceProcAddr', 'vkGetInstanceProcAddr'+type PFN_vkVoidFunction = Ptr (() -> IO ())+-- | Dummy data to tag the 'Ptr' with+data VkInstance_T+-- | VkInstance - Opaque handle to a instance object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_android_surface.vkCreateAndroidSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_report.vkCreateDebugReportCallbackEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkCreateDebugUtilsMessengerEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkCreateDisplayPlaneSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_MVK_ios_surface.vkCreateIOSSurfaceMVK',+-- 'vkCreateInstance',+-- 'Graphics.Vulkan.Extensions.VK_MVK_macos_surface.vkCreateMacOSSurfaceMVK',+-- 'Graphics.Vulkan.Extensions.VK_KHR_mir_surface.vkCreateMirSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_NN_vi_surface.vkCreateViSurfaceNN',+-- 'Graphics.Vulkan.Extensions.VK_KHR_wayland_surface.vkCreateWaylandSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_win32_surface.vkCreateWin32SurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xcb_surface.vkCreateXcbSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xlib_surface.vkCreateXlibSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_report.vkDebugReportMessageEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_report.vkDestroyDebugReportCallbackEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkDestroyDebugUtilsMessengerEXT',+-- 'vkDestroyInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkDestroySurfaceKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.vkEnumeratePhysicalDeviceGroups',+-- 'Graphics.Vulkan.Extensions.VK_KHR_device_group_creation.vkEnumeratePhysicalDeviceGroupsKHR',+-- 'vkEnumeratePhysicalDevices', 'vkGetInstanceProcAddr',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkSubmitDebugUtilsMessageEXT'+type VkInstance = Ptr VkInstance_T+-- | Dummy data to tag the 'Ptr' with+data VkPhysicalDevice_T+-- | VkPhysicalDevice - Opaque handle to a physical device object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties',+-- 'Graphics.Vulkan.Extensions.VK_EXT_acquire_xlib_display.vkAcquireXlibDisplayEXT',+-- 'Graphics.Vulkan.Core10.Device.vkCreateDevice',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkCreateDisplayModeKHR',+-- 'Graphics.Vulkan.Core10.ExtensionDiscovery.vkEnumerateDeviceExtensionProperties',+-- 'Graphics.Vulkan.Core10.LayerDiscovery.vkEnumerateDeviceLayerProperties',+-- 'vkEnumeratePhysicalDevices',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkGetDisplayModePropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkGetDisplayPlaneCapabilitiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkGetDisplayPlaneSupportedDisplaysKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkGetPhysicalDeviceDisplayPlanePropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkGetPhysicalDeviceDisplayPropertiesKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.vkGetPhysicalDeviceExternalBufferProperties',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities.vkGetPhysicalDeviceExternalBufferPropertiesKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.vkGetPhysicalDeviceExternalFenceProperties',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities.vkGetPhysicalDeviceExternalFencePropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.vkGetPhysicalDeviceExternalImageFormatPropertiesNV',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.vkGetPhysicalDeviceExternalSemaphoreProperties',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR',+-- 'vkGetPhysicalDeviceFeatures',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceFeatures2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceFeatures2KHR',+-- 'vkGetPhysicalDeviceFormatProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceFormatProperties2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceFormatProperties2KHR',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX',+-- 'vkGetPhysicalDeviceImageFormatProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceImageFormatProperties2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceImageFormatProperties2KHR',+-- 'vkGetPhysicalDeviceMemoryProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceMemoryProperties2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceMemoryProperties2KHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_mir_surface.vkGetPhysicalDeviceMirPresentationSupportKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.vkGetPhysicalDeviceMultisamplePropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkGetPhysicalDevicePresentRectanglesKHR',+-- 'vkGetPhysicalDeviceProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceProperties2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceProperties2KHR',+-- 'vkGetPhysicalDeviceQueueFamilyProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceQueueFamilyProperties2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceQueueFamilyProperties2KHR',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetPhysicalDeviceSparseImageFormatProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceSparseImageFormatProperties2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceSparseImageFormatProperties2KHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.vkGetPhysicalDeviceSurfaceCapabilities2EXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.vkGetPhysicalDeviceSurfaceCapabilities2KHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.vkGetPhysicalDeviceSurfaceFormats2KHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkGetPhysicalDeviceSurfaceFormatsKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkGetPhysicalDeviceSurfacePresentModesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkGetPhysicalDeviceSurfaceSupportKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_wayland_surface.vkGetPhysicalDeviceWaylandPresentationSupportKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_win32_surface.vkGetPhysicalDeviceWin32PresentationSupportKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xcb_surface.vkGetPhysicalDeviceXcbPresentationSupportKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xlib_surface.vkGetPhysicalDeviceXlibPresentationSupportKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_acquire_xlib_display.vkGetRandROutputDisplayEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_direct_mode_display.vkReleaseDisplayEXT'+type VkPhysicalDevice = Ptr VkPhysicalDevice_T+-- | Dummy data to tag the 'Ptr' with+data VkDevice_T+-- | VkDevice - Opaque handle to a device object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkAcquireNextImage2KHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkAcquireNextImageKHR',+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkAllocateCommandBuffers',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkAllocateDescriptorSets',+-- 'Graphics.Vulkan.Core10.Memory.vkAllocateMemory',+-- 'Graphics.Vulkan.Core10.MemoryManagement.vkBindBufferMemory',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.vkBindBufferMemory2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_bind_memory2.vkBindBufferMemory2KHR',+-- 'Graphics.Vulkan.Core10.MemoryManagement.vkBindImageMemory',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.vkBindImageMemory2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_bind_memory2.vkBindImageMemory2KHR',+-- 'Graphics.Vulkan.Core10.Buffer.vkCreateBuffer',+-- 'Graphics.Vulkan.Core10.BufferView.vkCreateBufferView',+-- 'Graphics.Vulkan.Core10.CommandPool.vkCreateCommandPool',+-- 'Graphics.Vulkan.Core10.Pipeline.vkCreateComputePipelines',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkCreateDescriptorPool',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkCreateDescriptorSetLayout',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.vkCreateDescriptorUpdateTemplate',+-- 'Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template.vkCreateDescriptorUpdateTemplateKHR',+-- 'Graphics.Vulkan.Core10.Device.vkCreateDevice',+-- 'Graphics.Vulkan.Core10.Event.vkCreateEvent',+-- 'Graphics.Vulkan.Core10.Fence.vkCreateFence',+-- 'Graphics.Vulkan.Core10.Pass.vkCreateFramebuffer',+-- 'Graphics.Vulkan.Core10.Pipeline.vkCreateGraphicsPipelines',+-- 'Graphics.Vulkan.Core10.Image.vkCreateImage',+-- 'Graphics.Vulkan.Core10.ImageView.vkCreateImageView',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkCreateIndirectCommandsLayoutNVX',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkCreateObjectTableNVX',+-- 'Graphics.Vulkan.Core10.PipelineCache.vkCreatePipelineCache',+-- 'Graphics.Vulkan.Core10.PipelineLayout.vkCreatePipelineLayout',+-- 'Graphics.Vulkan.Core10.Query.vkCreateQueryPool',+-- 'Graphics.Vulkan.Core10.Pass.vkCreateRenderPass',+-- 'Graphics.Vulkan.Core10.Sampler.vkCreateSampler',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.vkCreateSamplerYcbcrConversion',+-- 'Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion.vkCreateSamplerYcbcrConversionKHR',+-- 'Graphics.Vulkan.Core10.QueueSemaphore.vkCreateSemaphore',+-- 'Graphics.Vulkan.Core10.Shader.vkCreateShaderModule',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.vkCreateSharedSwapchainsKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.vkCreateValidationCacheEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.vkDebugMarkerSetObjectNameEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.vkDebugMarkerSetObjectTagEXT',+-- 'Graphics.Vulkan.Core10.Buffer.vkDestroyBuffer',+-- 'Graphics.Vulkan.Core10.BufferView.vkDestroyBufferView',+-- 'Graphics.Vulkan.Core10.CommandPool.vkDestroyCommandPool',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkDestroyDescriptorPool',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkDestroyDescriptorSetLayout',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.vkDestroyDescriptorUpdateTemplate',+-- 'Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template.vkDestroyDescriptorUpdateTemplateKHR',+-- 'Graphics.Vulkan.Core10.Device.vkDestroyDevice',+-- 'Graphics.Vulkan.Core10.Event.vkDestroyEvent',+-- 'Graphics.Vulkan.Core10.Fence.vkDestroyFence',+-- 'Graphics.Vulkan.Core10.Pass.vkDestroyFramebuffer',+-- 'Graphics.Vulkan.Core10.Image.vkDestroyImage',+-- 'Graphics.Vulkan.Core10.ImageView.vkDestroyImageView',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkDestroyIndirectCommandsLayoutNVX',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkDestroyObjectTableNVX',+-- 'Graphics.Vulkan.Core10.Pipeline.vkDestroyPipeline',+-- 'Graphics.Vulkan.Core10.PipelineCache.vkDestroyPipelineCache',+-- 'Graphics.Vulkan.Core10.PipelineLayout.vkDestroyPipelineLayout',+-- 'Graphics.Vulkan.Core10.Query.vkDestroyQueryPool',+-- 'Graphics.Vulkan.Core10.Pass.vkDestroyRenderPass',+-- 'Graphics.Vulkan.Core10.Sampler.vkDestroySampler',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.vkDestroySamplerYcbcrConversion',+-- 'Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion.vkDestroySamplerYcbcrConversionKHR',+-- 'Graphics.Vulkan.Core10.QueueSemaphore.vkDestroySemaphore',+-- 'Graphics.Vulkan.Core10.Shader.vkDestroyShaderModule',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkDestroySwapchainKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.vkDestroyValidationCacheEXT',+-- 'Graphics.Vulkan.Core10.Queue.vkDeviceWaitIdle',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkDisplayPowerControlEXT',+-- 'Graphics.Vulkan.Core10.Memory.vkFlushMappedMemoryRanges',+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkFreeCommandBuffers',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkFreeDescriptorSets',+-- 'Graphics.Vulkan.Core10.Memory.vkFreeMemory',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.vkGetAndroidHardwareBufferPropertiesANDROID',+-- 'Graphics.Vulkan.Core10.MemoryManagement.vkGetBufferMemoryRequirements',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.vkGetBufferMemoryRequirements2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2.vkGetBufferMemoryRequirements2KHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.vkGetDescriptorSetLayoutSupport',+-- 'Graphics.Vulkan.Extensions.VK_KHR_maintenance3.vkGetDescriptorSetLayoutSupportKHR',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.vkGetDeviceGroupPeerMemoryFeatures',+-- 'Graphics.Vulkan.Extensions.VK_KHR_device_group.vkGetDeviceGroupPeerMemoryFeaturesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkGetDeviceGroupPresentCapabilitiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkGetDeviceGroupSurfacePresentModesKHR',+-- 'Graphics.Vulkan.Core10.Memory.vkGetDeviceMemoryCommitment',+-- 'vkGetDeviceProcAddr', 'Graphics.Vulkan.Core10.Queue.vkGetDeviceQueue',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.vkGetDeviceQueue2',+-- 'Graphics.Vulkan.Core10.Event.vkGetEventStatus',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.vkGetFenceFdKHR',+-- 'Graphics.Vulkan.Core10.Fence.vkGetFenceStatus',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32.vkGetFenceWin32HandleKHR',+-- 'Graphics.Vulkan.Core10.MemoryManagement.vkGetImageMemoryRequirements',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.vkGetImageMemoryRequirements2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2.vkGetImageMemoryRequirements2KHR',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetImageSparseMemoryRequirements',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.vkGetImageSparseMemoryRequirements2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2.vkGetImageSparseMemoryRequirements2KHR',+-- 'Graphics.Vulkan.Core10.Image.vkGetImageSubresourceLayout',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.vkGetMemoryAndroidHardwareBufferANDROID',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.vkGetMemoryFdKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.vkGetMemoryFdPropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.vkGetMemoryHostPointerPropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.vkGetMemoryWin32HandleKHR',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.vkGetMemoryWin32HandleNV',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.vkGetMemoryWin32HandlePropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.vkGetPastPresentationTimingGOOGLE',+-- 'Graphics.Vulkan.Core10.PipelineCache.vkGetPipelineCacheData',+-- 'Graphics.Vulkan.Core10.Query.vkGetQueryPoolResults',+-- 'Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.vkGetRefreshCycleDurationGOOGLE',+-- 'Graphics.Vulkan.Core10.Pass.vkGetRenderAreaGranularity',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.vkGetSemaphoreFdKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.vkGetSemaphoreWin32HandleKHR',+-- 'Graphics.Vulkan.Extensions.VK_AMD_shader_info.vkGetShaderInfoAMD',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkGetSwapchainCounterEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkGetSwapchainImagesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.vkGetSwapchainStatusKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.vkGetValidationCacheDataEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.vkImportFenceFdKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32.vkImportFenceWin32HandleKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.vkImportSemaphoreFdKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.vkImportSemaphoreWin32HandleKHR',+-- 'Graphics.Vulkan.Core10.Memory.vkInvalidateMappedMemoryRanges',+-- 'Graphics.Vulkan.Core10.Memory.vkMapMemory',+-- 'Graphics.Vulkan.Core10.PipelineCache.vkMergePipelineCaches',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.vkMergeValidationCachesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkRegisterDeviceEventEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkRegisterDisplayEventEXT',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkRegisterObjectsNVX',+-- 'Graphics.Vulkan.Core10.CommandPool.vkResetCommandPool',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkResetDescriptorPool',+-- 'Graphics.Vulkan.Core10.Event.vkResetEvent',+-- 'Graphics.Vulkan.Core10.Fence.vkResetFences',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkSetDebugUtilsObjectNameEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkSetDebugUtilsObjectTagEXT',+-- 'Graphics.Vulkan.Core10.Event.vkSetEvent',+-- 'Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.vkSetHdrMetadataEXT',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.vkTrimCommandPool',+-- 'Graphics.Vulkan.Extensions.VK_KHR_maintenance1.vkTrimCommandPoolKHR',+-- 'Graphics.Vulkan.Core10.Memory.vkUnmapMemory',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkUnregisterObjectsNVX',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.vkUpdateDescriptorSetWithTemplate',+-- 'Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template.vkUpdateDescriptorSetWithTemplateKHR',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkUpdateDescriptorSets',+-- 'Graphics.Vulkan.Core10.Fence.vkWaitForFences'+type VkDevice = Ptr VkDevice_T+-- | vkCreateInstance - Create a new Vulkan instance+--+-- = Parameters+-- #_parameters#+--+-- -   @pCreateInfo@ points to an instance of 'VkInstanceCreateInfo'+--     controlling creation of the instance.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pInstance@ points a @VkInstance@ handle in which the resulting+--     instance is returned.+--+-- = Description+-- #_description#+--+-- @vkCreateInstance@ verifies that the requested layers exist. If not,+-- @vkCreateInstance@ will return @VK_ERROR_LAYER_NOT_PRESENT@. Next+-- @vkCreateInstance@ verifies that the requested extensions are supported+-- (e.g. in the implementation or in any enabled instance layer) and if any+-- requested extension is not supported, @vkCreateInstance@ /must/ return+-- @VK_ERROR_EXTENSION_NOT_PRESENT@. After verifying and enabling the+-- instance layers and extensions the @VkInstance@ object is created and+-- returned to the application. If a requested extension is only supported+-- by a layer, both the layer and the extension need to be specified at+-- @vkCreateInstance@ time for the creation to succeed.+--+-- == Valid Usage+--+-- -   All+--     <{html_spec_relative}#extended-functionality-extensions-dependencies required extensions>+--     for each extension in the+--     'VkInstanceCreateInfo'::@ppEnabledExtensionNames@ list /must/ also+--     be present in that list.+--+-- == Valid Usage (Implicit)+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkInstanceCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pInstance@ /must/ be a valid pointer to a @VkInstance@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @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@+--+-- = See Also+-- #_see_also#+--+-- 'VkAllocationCallbacks', 'VkInstance', 'VkInstanceCreateInfo'+foreign import ccall "vkCreateInstance" vkCreateInstance :: ("pCreateInfo" ::: Ptr VkInstanceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pInstance" ::: Ptr VkInstance) -> IO VkResult+-- | vkDestroyInstance - Destroy an instance of Vulkan+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the handle of the instance to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All child objects created using @instance@ /must/ have been+--     destroyed prior to destroying @instance@+--+-- -   If @VkAllocationCallbacks@ were provided when @instance@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @instance@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   If @instance@ is not @NULL@, @instance@ /must/ be a valid+--     @VkInstance@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- == Host Synchronization+--+-- -   Host access to @instance@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'VkAllocationCallbacks', 'VkInstance'+foreign import ccall "vkDestroyInstance" vkDestroyInstance :: ("instance" ::: VkInstance) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkEnumeratePhysicalDevices - Enumerates the physical devices accessible+-- to a Vulkan instance+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is a handle to a Vulkan instance previously created with+--     'vkCreateInstance'.+--+-- -   @pPhysicalDeviceCount@ is a pointer to an integer related to the+--     number of physical devices available or queried, as described below.+--+-- -   @pPhysicalDevices@ is either @NULL@ or a pointer to an array of+--     @VkPhysicalDevice@ handles.+--+-- = Description+-- #_description#+--+-- If @pPhysicalDevices@ is @NULL@, then the number of physical devices+-- available is returned in @pPhysicalDeviceCount@. Otherwise,+-- @pPhysicalDeviceCount@ /must/ point to a variable set by the user to the+-- number of elements in the @pPhysicalDevices@ array, and on return the+-- variable is overwritten with the number of handles actually written to+-- @pPhysicalDevices@. If @pPhysicalDeviceCount@ is less than the number of+-- physical devices available, at most @pPhysicalDeviceCount@ structures+-- will be written. If @pPhysicalDeviceCount@ is smaller than the number of+-- physical devices available, @VK_INCOMPLETE@ will be returned instead of+-- @VK_SUCCESS@, to indicate that not all the available physical devices+-- were returned.+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pPhysicalDeviceCount@ /must/ be a valid pointer to a @uint32_t@+--     value+--+-- -   If the value referenced by @pPhysicalDeviceCount@ is not @0@, and+--     @pPhysicalDevices@ is not @NULL@, @pPhysicalDevices@ /must/ be a+--     valid pointer to an array of @pPhysicalDeviceCount@+--     @VkPhysicalDevice@ handles+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_INITIALIZATION_FAILED@+--+-- = See Also+-- #_see_also#+--+-- 'VkInstance', 'VkPhysicalDevice'+foreign import ccall "vkEnumeratePhysicalDevices" vkEnumeratePhysicalDevices :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr VkPhysicalDevice) -> IO VkResult+-- | vkGetDeviceProcAddr - Return a function pointer for a command+--+-- = Parameters+-- #_parameters#+--+-- The table below defines the various use cases for @vkGetDeviceProcAddr@+-- and expected return value for each case.+--+-- = Description+-- #_description#+--+-- The returned function pointer is of type 'PFN_vkVoidFunction', and must+-- be cast to the type of the command being queried. The function pointer+-- /must/ only be called with a dispatchable object (the first parameter)+-- that is @device@ or a child of @device@.+--+-- > +-----------------------+-----------------------+-----------------------++-- > | @device@              | @pName@               | return value          |+-- > +=======================+=======================+=======================++-- > | @NULL@                | *                     | undefined             |+-- > +-----------------------+-----------------------+-----------------------++-- > | invalid device        | *                     | undefined             |+-- > +-----------------------+-----------------------+-----------------------++-- > | device                | @NULL@                | undefined             |+-- > +-----------------------+-----------------------+-----------------------++-- > | device                | core device-level     | fp                    |+-- > |                       | Vulkan command        |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | device                | enabled device        | fp                    |+-- > |                       | extension commands    |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | device                | * (any @pName@ not    | @NULL@                |+-- > |                       | covered above)        |                       |+-- > +-----------------------+-----------------------+-----------------------++-- >+-- > vkGetDeviceProcAddr behavior+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pName@ /must/ be a null-terminated UTF-8 string+--+-- = See Also+-- #_see_also#+--+-- 'PFN_vkVoidFunction', 'VkDevice'+foreign import ccall "vkGetDeviceProcAddr" vkGetDeviceProcAddr :: ("device" ::: VkDevice) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction+-- | vkGetInstanceProcAddr - Return a function pointer for a command+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance that the function pointer will be+--     compatible with, or @NULL@ for commands not dependent on any+--     instance.+--+-- -   @pName@ is the name of the command to obtain.+--+-- = Description+-- #_description#+--+-- @vkGetInstanceProcAddr@ itself is obtained in a platform- and loader-+-- specific manner. Typically, the loader library will export this command+-- as a function symbol, so applications /can/ link against the loader+-- library, or load it dynamically and look up the symbol using+-- platform-specific APIs.+--+-- The table below defines the various use cases for+-- @vkGetInstanceProcAddr@ and expected return value (“fp” is “function+-- pointer”) for each case.+--+-- The returned function pointer is of type 'PFN_vkVoidFunction', and must+-- be cast to the type of the command being queried.+--+-- > +-----------------------+-----------------------+-----------------------++-- > | @instance@            | @pName@               | return value          |+-- > +=======================+=======================+=======================++-- > | *                     | @NULL@                | undefined             |+-- > +-----------------------+-----------------------+-----------------------++-- > | invalid instance      | *                     | undefined             |+-- > +-----------------------+-----------------------+-----------------------++-- > | @NULL@                | 'Graphics.Vulkan.Core | fp                    |+-- > |                       | 10.ExtensionDiscovery |                       |+-- > |                       | .vkEnumerateInstanceE |                       |+-- > |                       | xtensionProperties'   |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | @NULL@                | 'Graphics.Vulkan.Core | fp                    |+-- > |                       | 10.LayerDiscovery.vkE |                       |+-- > |                       | numerateInstanceLayer |                       |+-- > |                       | Properties'           |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | @NULL@                | 'vkCreateInstance'    | fp                    |+-- > +-----------------------+-----------------------+-----------------------++-- > | @NULL@                | * (any @pName@ not    | @NULL@                |+-- > |                       | covered above)        |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | instance              | core Vulkan command   | fp1                   |+-- > +-----------------------+-----------------------+-----------------------++-- > | instance              | enabled instance      | fp1                   |+-- > |                       | extension commands    |                       |+-- > |                       | for @instance@        |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | instance              | available device      | fp1                   |+-- > |                       | extension2 commands   |                       |+-- > |                       | for @instance@        |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | instance              | * (any @pName@ not    | @NULL@                |+-- > |                       | covered above)        |                       |+-- > +-----------------------+-----------------------+-----------------------++-- >+-- > vkGetInstanceProcAddr behavior+--+-- [1]+--     The returned function pointer /must/ only be called with a+--     dispatchable object (the first parameter) that is @instance@ or a+--     child of @instance@, e.g. 'VkInstance', 'VkPhysicalDevice',+--     'VkDevice', 'Graphics.Vulkan.Core10.Queue.VkQueue', or+--     'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'.+--+-- [2]+--     An “available device extension” is a device extension supported by+--     any physical device enumerated by @instance@.+--+-- == Valid Usage (Implicit)+--+-- -   If @instance@ is not @NULL@, @instance@ /must/ be a valid+--     @VkInstance@ handle+--+-- -   @pName@ /must/ be a null-terminated UTF-8 string+--+-- = See Also+-- #_see_also#+--+-- 'PFN_vkVoidFunction', 'VkInstance'+foreign import ccall "vkGetInstanceProcAddr" vkGetInstanceProcAddr :: ("instance" ::: VkInstance) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction+-- | vkGetPhysicalDeviceProperties - Returns properties of a physical device+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the handle to the physical device whose+--     properties will be queried.+--+-- -   @pProperties@ points to an instance of the+--     'VkPhysicalDeviceProperties' structure, that will be filled with+--     returned information.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pProperties@ /must/ be a valid pointer to a+--     @VkPhysicalDeviceProperties@ structure+--+-- = See Also+-- #_see_also#+--+-- 'VkPhysicalDevice', 'VkPhysicalDeviceProperties'+foreign import ccall "vkGetPhysicalDeviceProperties" vkGetPhysicalDeviceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties) -> IO ()+-- | vkGetPhysicalDeviceQueueFamilyProperties - Reports properties of the+-- queues of the specified physical device+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the handle to the physical device whose+--     properties will be queried.+--+-- -   @pQueueFamilyPropertyCount@ is a pointer to an integer related to+--     the number of queue families available or queried, as described+--     below.+--+-- -   @pQueueFamilyProperties@ is either @NULL@ or a pointer to an array+--     of 'VkQueueFamilyProperties' structures.+--+-- = Description+-- #_description#+--+-- If @pQueueFamilyProperties@ is @NULL@, then the number of queue families+-- available is returned in @pQueueFamilyPropertyCount@. Otherwise,+-- @pQueueFamilyPropertyCount@ /must/ point to a variable set by the user+-- to the number of elements in the @pQueueFamilyProperties@ array, and on+-- return the variable is overwritten with the number of structures+-- actually written to @pQueueFamilyProperties@. If+-- @pQueueFamilyPropertyCount@ is less than the number of queue families+-- available, at most @pQueueFamilyPropertyCount@ structures will be+-- written.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pQueueFamilyPropertyCount@ /must/ be a valid pointer to a+--     @uint32_t@ value+--+-- -   If the value referenced by @pQueueFamilyPropertyCount@ is not @0@,+--     and @pQueueFamilyProperties@ is not @NULL@, @pQueueFamilyProperties@+--     /must/ be a valid pointer to an array of @pQueueFamilyPropertyCount@+--     @VkQueueFamilyProperties@ structures+--+-- = See Also+-- #_see_also#+--+-- 'VkPhysicalDevice', 'VkQueueFamilyProperties'+foreign import ccall "vkGetPhysicalDeviceQueueFamilyProperties" vkGetPhysicalDeviceQueueFamilyProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties) -> IO ()+-- | vkGetPhysicalDeviceMemoryProperties - Reports memory information for the+-- specified physical device+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the handle to the device to query.+--+-- -   @pMemoryProperties@ points to an instance of+--     @VkPhysicalDeviceMemoryProperties@ structure in which the properties+--     are returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pMemoryProperties@ /must/ be a valid pointer to a+--     @VkPhysicalDeviceMemoryProperties@ structure+--+-- = See Also+-- #_see_also#+--+-- 'VkPhysicalDevice', 'VkPhysicalDeviceMemoryProperties'+foreign import ccall "vkGetPhysicalDeviceMemoryProperties" vkGetPhysicalDeviceMemoryProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties) -> IO ()+-- | vkGetPhysicalDeviceFeatures - Reports capabilities of a physical device+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device from which to query the+--     supported features.+--+-- -   @pFeatures@ is a pointer to a 'VkPhysicalDeviceFeatures' structure+--     in which the physical device features are returned. For each+--     feature, a value of @VK_TRUE@ specifies that the feature is+--     supported on this physical device, and @VK_FALSE@ specifies that the+--     feature is not supported.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pFeatures@ /must/ be a valid pointer to a+--     @VkPhysicalDeviceFeatures@ structure+--+-- = See Also+-- #_see_also#+--+-- 'VkPhysicalDevice', 'VkPhysicalDeviceFeatures'+foreign import ccall "vkGetPhysicalDeviceFeatures" vkGetPhysicalDeviceFeatures :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures) -> IO ()+-- | vkGetPhysicalDeviceFormatProperties - Lists physical device’s format+-- capabilities+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device from which to query the+--     format properties.+--+-- -   @format@ is the format whose properties are queried.+--+-- -   @pFormatProperties@ is a pointer to a 'VkFormatProperties' structure+--     in which physical device properties for @format@ are returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- -   @pFormatProperties@ /must/ be a valid pointer to a+--     @VkFormatProperties@ structure+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkFormat', 'VkFormatProperties',+-- 'VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceFormatProperties" vkGetPhysicalDeviceFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties) -> IO ()+-- | vkGetPhysicalDeviceImageFormatProperties - Lists physical device’s image+-- format capabilities+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device from which to query the+--     image capabilities.+--+-- -   @format@ is a 'Graphics.Vulkan.Core10.Core.VkFormat' value+--     specifying the image format, corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@format@.+--+-- -   @type@ is a 'VkImageType' value specifying the image type,+--     corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@imageType@.+--+-- -   @tiling@ is a 'VkImageTiling' value specifying the image tiling,+--     corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@tiling@.+--+-- -   @usage@ is a bitmask of 'VkImageUsageFlagBits' specifying the+--     intended usage of the image, corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@usage@.+--+-- -   @flags@ is a bitmask of 'VkImageCreateFlagBits' specifying+--     additional parameters of the image, corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@flags@.+--+-- -   @pImageFormatProperties@ points to an instance of the+--     'VkImageFormatProperties' structure in which capabilities are+--     returned.+--+-- = Description+-- #_description#+--+-- The @format@, @type@, @tiling@, @usage@, and @flags@ parameters+-- correspond to parameters that would be consumed by+-- 'Graphics.Vulkan.Core10.Image.vkCreateImage' (as members of+-- @VkImageCreateInfo@).+--+-- If @format@ is not a supported image format, or if the combination of+-- @format@, @type@, @tiling@, @usage@, and @flags@ is not supported for+-- images, then @vkGetPhysicalDeviceImageFormatProperties@ returns+-- @VK_ERROR_FORMAT_NOT_SUPPORTED@.+--+-- The limitations on an image format that are reported by+-- @vkGetPhysicalDeviceImageFormatProperties@ have the following property:+-- if @usage1@ and @usage2@ of type 'VkImageUsageFlags' are such that the+-- bits set in @usage1@ are a subset of the bits set in @usage2@, and+-- @flags1@ and @flags2@ of type 'VkImageCreateFlags' are such that the+-- bits set in @flags1@ are a subset of the bits set in @flags2@, then the+-- limitations for @usage1@ and @flags1@ /must/ be no more strict than the+-- limitations for @usage2@ and @flags2@, for all values of @format@,+-- @type@, and @tiling@.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- -   @type@ /must/ be a valid 'VkImageType' value+--+-- -   @tiling@ /must/ be a valid 'VkImageTiling' value+--+-- -   @usage@ /must/ be a valid combination of 'VkImageUsageFlagBits'+--     values+--+-- -   @usage@ /must/ not be @0@+--+-- -   @flags@ /must/ be a valid combination of 'VkImageCreateFlagBits'+--     values+--+-- -   @pImageFormatProperties@ /must/ be a valid pointer to a+--     @VkImageFormatProperties@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_FORMAT_NOT_SUPPORTED@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkFormat', 'VkImageCreateFlags',+-- 'VkImageFormatProperties', 'VkImageTiling', 'VkImageType',+-- 'VkImageUsageFlags', 'VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceImageFormatProperties" vkGetPhysicalDeviceImageFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("tiling" ::: VkImageTiling) -> ("usage" ::: VkImageUsageFlags) -> ("flags" ::: VkImageCreateFlags) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties) -> IO VkResult+-- | VkExtent3D - Structure specifying a three-dimensional extent+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageCopy',+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'VkImageFormatProperties',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageResolve',+-- 'VkQueueFamilyProperties',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind'+data VkExtent3D = VkExtent3D+  { -- No documentation found for Nested "VkExtent3D" "vkWidth"+  vkWidth :: Word32+  , -- No documentation found for Nested "VkExtent3D" "vkHeight"+  vkHeight :: Word32+  , -- No documentation found for Nested "VkExtent3D" "vkDepth"+  vkDepth :: Word32+  }+  deriving (Eq, Show)++instance Storable VkExtent3D where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkExtent3D <$> peek (ptr `plusPtr` 0)+                        <*> peek (ptr `plusPtr` 4)+                        <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkWidth (poked :: VkExtent3D))+                *> poke (ptr `plusPtr` 4) (vkHeight (poked :: VkExtent3D))+                *> poke (ptr `plusPtr` 8) (vkDepth (poked :: VkExtent3D))+-- | VkPhysicalDeviceProperties - Structure specifying physical device+-- properties+--+-- = Description+-- #_description#+--+-- The @vendorID@ and @deviceID@ fields are provided to allow applications+-- to adapt to device characteristics that are not adequately exposed by+-- other Vulkan queries.+--+-- __Note__+--+-- These /may/ include performance profiles, hardware errata, or other+-- characteristics.+--+-- The /vendor/ identified by @vendorID@ is the entity responsible for the+-- most salient characteristics of the underlying implementation of the+-- 'VkPhysicalDevice' being queried.+--+-- __Note__+--+-- For example, in the case of a discrete GPU implementation, this /should/+-- be the GPU chipset vendor. In the case of a hardware accelerator+-- integrated into a system-on-chip (SoC), this /should/ be the supplier of+-- the silicon IP used to create the accelerator.+--+-- If the vendor has a+-- <https://pcisig.com/membership/member-companies PCI vendor ID>, the low+-- 16 bits of @vendorID@ /must/ contain that PCI vendor ID, and the+-- remaining bits /must/ be set to zero. Otherwise, the value returned+-- /must/ be a valid Khronos vendor ID, obtained as described in the+-- <{html_spec_relative}#vulkan-styleguide Vulkan Documentation and Extensions>+-- document in the section “Registering a Vendor ID with Khronos”. Khronos+-- vendor IDs are allocated starting at 0x10000, to distinguish them from+-- the PCI vendor ID namespace.+--+-- The vendor is also responsible for the value returned in @deviceID@. If+-- the implementation is driven primarily by a+-- <https://pcisig.com/ PCI device> with a+-- <https://pcisig.com/ PCI device ID>, the low 16 bits of @deviceID@+-- /must/ contain that PCI device ID, and the remaining bits /must/ be set+-- to zero. Otherwise, the choice of what values to return /may/ be+-- dictated by operating system or platform policies - but /should/+-- uniquely identify both the device version and any major configuration+-- options (for example, core count in the case of multicore devices).+--+-- __Note__+--+-- The same device ID /should/ be used for all physical implementations of+-- that device version and configuration. For example, all uses of a+-- specific silicon IP GPU version and configuration /should/ use the same+-- device ID, even if those uses occur in different SoCs.+--+-- = See Also+-- #_see_also#+--+-- 'VkPhysicalDeviceLimits',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- 'VkPhysicalDeviceSparseProperties', 'VkPhysicalDeviceType',+-- 'vkGetPhysicalDeviceProperties'+data VkPhysicalDeviceProperties = VkPhysicalDeviceProperties+  { -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkApiVersion"+  vkApiVersion :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkDriverVersion"+  vkDriverVersion :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkVendorID"+  vkVendorID :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkDeviceID"+  vkDeviceID :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkDeviceType"+  vkDeviceType :: VkPhysicalDeviceType+  , -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkDeviceName"+  vkDeviceName :: Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar+  , -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkPipelineCacheUUID"+  vkPipelineCacheUUID :: Vector VK_UUID_SIZE Word8+  , -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkLimits"+  vkLimits :: VkPhysicalDeviceLimits+  , -- No documentation found for Nested "VkPhysicalDeviceProperties" "vkSparseProperties"+  vkSparseProperties :: VkPhysicalDeviceSparseProperties+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceProperties where+  sizeOf ~_ = 824+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceProperties <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 4)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 12)+                                        <*> peek (ptr `plusPtr` 16)+                                        <*> peek (ptr `plusPtr` 20)+                                        <*> peek (ptr `plusPtr` 276)+                                        <*> peek (ptr `plusPtr` 296)+                                        <*> peek (ptr `plusPtr` 800)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkApiVersion (poked :: VkPhysicalDeviceProperties))+                *> poke (ptr `plusPtr` 4) (vkDriverVersion (poked :: VkPhysicalDeviceProperties))+                *> poke (ptr `plusPtr` 8) (vkVendorID (poked :: VkPhysicalDeviceProperties))+                *> poke (ptr `plusPtr` 12) (vkDeviceID (poked :: VkPhysicalDeviceProperties))+                *> poke (ptr `plusPtr` 16) (vkDeviceType (poked :: VkPhysicalDeviceProperties))+                *> poke (ptr `plusPtr` 20) (vkDeviceName (poked :: VkPhysicalDeviceProperties))+                *> poke (ptr `plusPtr` 276) (vkPipelineCacheUUID (poked :: VkPhysicalDeviceProperties))+                *> poke (ptr `plusPtr` 296) (vkLimits (poked :: VkPhysicalDeviceProperties))+                *> poke (ptr `plusPtr` 800) (vkSparseProperties (poked :: VkPhysicalDeviceProperties))+-- | VkApplicationInfo - Structure specifying application info+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_APPLICATION_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   If @pApplicationName@ is not @NULL@, @pApplicationName@ /must/ be a+--     null-terminated UTF-8 string+--+-- -   If @pEngineName@ is not @NULL@, @pEngineName@ /must/ be a+--     null-terminated UTF-8 string+--+-- = See Also+-- #_see_also#+--+-- 'VkInstanceCreateInfo', 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkApplicationInfo = VkApplicationInfo+  { -- No documentation found for Nested "VkApplicationInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkApplicationInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkApplicationInfo" "vkPApplicationName"+  vkPApplicationName :: Ptr CChar+  , -- No documentation found for Nested "VkApplicationInfo" "vkApplicationVersion"+  vkApplicationVersion :: Word32+  , -- No documentation found for Nested "VkApplicationInfo" "vkPEngineName"+  vkPEngineName :: Ptr CChar+  , -- No documentation found for Nested "VkApplicationInfo" "vkEngineVersion"+  vkEngineVersion :: Word32+  , -- No documentation found for Nested "VkApplicationInfo" "vkApiVersion"+  vkApiVersion :: Word32+  }+  deriving (Eq, Show)++instance Storable VkApplicationInfo where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkApplicationInfo <$> peek (ptr `plusPtr` 0)+                               <*> peek (ptr `plusPtr` 8)+                               <*> peek (ptr `plusPtr` 16)+                               <*> peek (ptr `plusPtr` 24)+                               <*> peek (ptr `plusPtr` 32)+                               <*> peek (ptr `plusPtr` 40)+                               <*> peek (ptr `plusPtr` 44)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkApplicationInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkApplicationInfo))+                *> poke (ptr `plusPtr` 16) (vkPApplicationName (poked :: VkApplicationInfo))+                *> poke (ptr `plusPtr` 24) (vkApplicationVersion (poked :: VkApplicationInfo))+                *> poke (ptr `plusPtr` 32) (vkPEngineName (poked :: VkApplicationInfo))+                *> poke (ptr `plusPtr` 40) (vkEngineVersion (poked :: VkApplicationInfo))+                *> poke (ptr `plusPtr` 44) (vkApiVersion (poked :: VkApplicationInfo))+-- | VkAllocationCallbacks - Structure containing callback function pointers+-- for memory allocation+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @pfnAllocation@ /must/ be a valid pointer to a valid user-defined+--     'PFN_vkAllocationFunction'+--+-- -   @pfnReallocation@ /must/ be a valid pointer to a valid user-defined+--     'PFN_vkReallocationFunction'+--+-- -   @pfnFree@ /must/ be a valid pointer to a valid user-defined+--     'PFN_vkFreeFunction'+--+-- -   If either of @pfnInternalAllocation@ or @pfnInternalFree@ is not+--     @NULL@, both /must/ be valid callbacks+--+-- = See Also+-- #_see_also#+--+-- 'PFN_vkAllocationFunction', 'PFN_vkFreeFunction',+-- 'PFN_vkInternalAllocationNotification',+-- 'PFN_vkInternalFreeNotification', 'PFN_vkReallocationFunction',+-- 'Graphics.Vulkan.Core10.Memory.vkAllocateMemory',+-- 'Graphics.Vulkan.Extensions.VK_KHR_android_surface.vkCreateAndroidSurfaceKHR',+-- 'Graphics.Vulkan.Core10.Buffer.vkCreateBuffer',+-- 'Graphics.Vulkan.Core10.BufferView.vkCreateBufferView',+-- 'Graphics.Vulkan.Core10.CommandPool.vkCreateCommandPool',+-- 'Graphics.Vulkan.Core10.Pipeline.vkCreateComputePipelines',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_report.vkCreateDebugReportCallbackEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkCreateDebugUtilsMessengerEXT',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkCreateDescriptorPool',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkCreateDescriptorSetLayout',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.vkCreateDescriptorUpdateTemplate',+-- 'Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template.vkCreateDescriptorUpdateTemplateKHR',+-- 'Graphics.Vulkan.Core10.Device.vkCreateDevice',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkCreateDisplayModeKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkCreateDisplayPlaneSurfaceKHR',+-- 'Graphics.Vulkan.Core10.Event.vkCreateEvent',+-- 'Graphics.Vulkan.Core10.Fence.vkCreateFence',+-- 'Graphics.Vulkan.Core10.Pass.vkCreateFramebuffer',+-- 'Graphics.Vulkan.Core10.Pipeline.vkCreateGraphicsPipelines',+-- 'Graphics.Vulkan.Extensions.VK_MVK_ios_surface.vkCreateIOSSurfaceMVK',+-- 'Graphics.Vulkan.Core10.Image.vkCreateImage',+-- 'Graphics.Vulkan.Core10.ImageView.vkCreateImageView',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkCreateIndirectCommandsLayoutNVX',+-- 'vkCreateInstance',+-- 'Graphics.Vulkan.Extensions.VK_MVK_macos_surface.vkCreateMacOSSurfaceMVK',+-- 'Graphics.Vulkan.Extensions.VK_KHR_mir_surface.vkCreateMirSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkCreateObjectTableNVX',+-- 'Graphics.Vulkan.Core10.PipelineCache.vkCreatePipelineCache',+-- 'Graphics.Vulkan.Core10.PipelineLayout.vkCreatePipelineLayout',+-- 'Graphics.Vulkan.Core10.Query.vkCreateQueryPool',+-- 'Graphics.Vulkan.Core10.Pass.vkCreateRenderPass',+-- 'Graphics.Vulkan.Core10.Sampler.vkCreateSampler',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.vkCreateSamplerYcbcrConversion',+-- 'Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion.vkCreateSamplerYcbcrConversionKHR',+-- 'Graphics.Vulkan.Core10.QueueSemaphore.vkCreateSemaphore',+-- 'Graphics.Vulkan.Core10.Shader.vkCreateShaderModule',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.vkCreateSharedSwapchainsKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.vkCreateValidationCacheEXT',+-- 'Graphics.Vulkan.Extensions.VK_NN_vi_surface.vkCreateViSurfaceNN',+-- 'Graphics.Vulkan.Extensions.VK_KHR_wayland_surface.vkCreateWaylandSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_win32_surface.vkCreateWin32SurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xcb_surface.vkCreateXcbSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xlib_surface.vkCreateXlibSurfaceKHR',+-- 'Graphics.Vulkan.Core10.Buffer.vkDestroyBuffer',+-- 'Graphics.Vulkan.Core10.BufferView.vkDestroyBufferView',+-- 'Graphics.Vulkan.Core10.CommandPool.vkDestroyCommandPool',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_report.vkDestroyDebugReportCallbackEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkDestroyDebugUtilsMessengerEXT',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkDestroyDescriptorPool',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkDestroyDescriptorSetLayout',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.vkDestroyDescriptorUpdateTemplate',+-- 'Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template.vkDestroyDescriptorUpdateTemplateKHR',+-- 'Graphics.Vulkan.Core10.Device.vkDestroyDevice',+-- 'Graphics.Vulkan.Core10.Event.vkDestroyEvent',+-- 'Graphics.Vulkan.Core10.Fence.vkDestroyFence',+-- 'Graphics.Vulkan.Core10.Pass.vkDestroyFramebuffer',+-- 'Graphics.Vulkan.Core10.Image.vkDestroyImage',+-- 'Graphics.Vulkan.Core10.ImageView.vkDestroyImageView',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkDestroyIndirectCommandsLayoutNVX',+-- 'vkDestroyInstance',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkDestroyObjectTableNVX',+-- 'Graphics.Vulkan.Core10.Pipeline.vkDestroyPipeline',+-- 'Graphics.Vulkan.Core10.PipelineCache.vkDestroyPipelineCache',+-- 'Graphics.Vulkan.Core10.PipelineLayout.vkDestroyPipelineLayout',+-- 'Graphics.Vulkan.Core10.Query.vkDestroyQueryPool',+-- 'Graphics.Vulkan.Core10.Pass.vkDestroyRenderPass',+-- 'Graphics.Vulkan.Core10.Sampler.vkDestroySampler',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.vkDestroySamplerYcbcrConversion',+-- 'Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion.vkDestroySamplerYcbcrConversionKHR',+-- 'Graphics.Vulkan.Core10.QueueSemaphore.vkDestroySemaphore',+-- 'Graphics.Vulkan.Core10.Shader.vkDestroyShaderModule',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkDestroySurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkDestroySwapchainKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.vkDestroyValidationCacheEXT',+-- 'Graphics.Vulkan.Core10.Memory.vkFreeMemory',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkRegisterDeviceEventEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkRegisterDisplayEventEXT'+data VkAllocationCallbacks = VkAllocationCallbacks+  { -- No documentation found for Nested "VkAllocationCallbacks" "vkPUserData"+  vkPUserData :: Ptr ()+  , -- No documentation found for Nested "VkAllocationCallbacks" "vkPfnAllocation"+  vkPfnAllocation :: PFN_vkAllocationFunction+  , -- No documentation found for Nested "VkAllocationCallbacks" "vkPfnReallocation"+  vkPfnReallocation :: PFN_vkReallocationFunction+  , -- No documentation found for Nested "VkAllocationCallbacks" "vkPfnFree"+  vkPfnFree :: PFN_vkFreeFunction+  , -- No documentation found for Nested "VkAllocationCallbacks" "vkPfnInternalAllocation"+  vkPfnInternalAllocation :: PFN_vkInternalAllocationNotification+  , -- No documentation found for Nested "VkAllocationCallbacks" "vkPfnInternalFree"+  vkPfnInternalFree :: PFN_vkInternalFreeNotification+  }+  deriving (Eq, Show)++instance Storable VkAllocationCallbacks where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkAllocationCallbacks <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+                                   <*> peek (ptr `plusPtr` 24)+                                   <*> peek (ptr `plusPtr` 32)+                                   <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkPUserData (poked :: VkAllocationCallbacks))+                *> poke (ptr `plusPtr` 8) (vkPfnAllocation (poked :: VkAllocationCallbacks))+                *> poke (ptr `plusPtr` 16) (vkPfnReallocation (poked :: VkAllocationCallbacks))+                *> poke (ptr `plusPtr` 24) (vkPfnFree (poked :: VkAllocationCallbacks))+                *> poke (ptr `plusPtr` 32) (vkPfnInternalAllocation (poked :: VkAllocationCallbacks))+                *> poke (ptr `plusPtr` 40) (vkPfnInternalFree (poked :: VkAllocationCallbacks))+-- | VkInstanceCreateInfo - Structure specifying parameters of a newly+-- created instance+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportCallbackCreateInfoEXT',+--     'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateInfoEXT',+--     or+--     'Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationFlagsEXT'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- -   If @pApplicationInfo@ is not @NULL@, @pApplicationInfo@ /must/ be a+--     valid pointer to a valid @VkApplicationInfo@ structure+--+-- -   If @enabledLayerCount@ is not @0@, @ppEnabledLayerNames@ /must/ be a+--     valid pointer to an array of @enabledLayerCount@ null-terminated+--     UTF-8 strings+--+-- -   If @enabledExtensionCount@ is not @0@, @ppEnabledExtensionNames@+--     /must/ be a valid pointer to an array of @enabledExtensionCount@+--     null-terminated UTF-8 strings+--+-- = See Also+-- #_see_also#+--+-- 'VkApplicationInfo', 'VkInstanceCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateInstance'+data VkInstanceCreateInfo = VkInstanceCreateInfo+  { -- No documentation found for Nested "VkInstanceCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkInstanceCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkInstanceCreateInfo" "vkFlags"+  vkFlags :: VkInstanceCreateFlags+  , -- No documentation found for Nested "VkInstanceCreateInfo" "vkPApplicationInfo"+  vkPApplicationInfo :: Ptr VkApplicationInfo+  , -- No documentation found for Nested "VkInstanceCreateInfo" "vkEnabledLayerCount"+  vkEnabledLayerCount :: Word32+  , -- No documentation found for Nested "VkInstanceCreateInfo" "vkPPEnabledLayerNames"+  vkPPEnabledLayerNames :: Ptr (Ptr CChar)+  , -- No documentation found for Nested "VkInstanceCreateInfo" "vkEnabledExtensionCount"+  vkEnabledExtensionCount :: Word32+  , -- No documentation found for Nested "VkInstanceCreateInfo" "vkPPEnabledExtensionNames"+  vkPPEnabledExtensionNames :: Ptr (Ptr CChar)+  }+  deriving (Eq, Show)++instance Storable VkInstanceCreateInfo where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkInstanceCreateInfo <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 24)+                                  <*> peek (ptr `plusPtr` 32)+                                  <*> peek (ptr `plusPtr` 40)+                                  <*> peek (ptr `plusPtr` 48)+                                  <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkInstanceCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkInstanceCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkInstanceCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPApplicationInfo (poked :: VkInstanceCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkEnabledLayerCount (poked :: VkInstanceCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPPEnabledLayerNames (poked :: VkInstanceCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkEnabledExtensionCount (poked :: VkInstanceCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkPPEnabledExtensionNames (poked :: VkInstanceCreateInfo))+-- | VkQueueFamilyProperties - Structure providing information about a queue+-- family+--+-- = Description+-- #_description#+--+-- The value returned in @minImageTransferGranularity@ has a unit of+-- compressed texel blocks for images having a block-compressed format, and+-- a unit of texels otherwise.+--+-- Possible values of @minImageTransferGranularity@ are:+--+-- -   (0,0,0) which indicates that only whole mip levels /must/ be+--     transferred using the image transfer operations on the corresponding+--     queues. In this case, the following restrictions apply to all offset+--     and extent parameters of image transfer operations:+--+--     -   The @x@, @y@, and @z@ members of a+--         'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D'+--         parameter /must/ always be zero.+--+--     -   The @width@, @height@, and @depth@ members of a 'VkExtent3D'+--         parameter /must/ always match the width, height, and depth of+--         the image subresource corresponding to the parameter,+--         respectively.+--+-- -   (Ax, Ay, Az) where Ax, Ay, and Az are all integer powers of two. In+--     this case the following restrictions apply to all image transfer+--     operations:+--+--     -   @x@, @y@, and @z@ of a+--         'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D'+--         parameter /must/ be integer multiples of Ax, Ay, and Az,+--         respectively.+--+--     -   @width@ of a 'VkExtent3D' parameter /must/ be an integer+--         multiple of Ax, or else @x@ + @width@ /must/ equal the width of+--         the image subresource corresponding to the parameter.+--+--     -   @height@ of a 'VkExtent3D' parameter /must/ be an integer+--         multiple of Ay, or else @y@ + @height@ /must/ equal the height+--         of the image subresource corresponding to the parameter.+--+--     -   @depth@ of a 'VkExtent3D' parameter /must/ be an integer+--         multiple of Az, or else @z@ + @depth@ /must/ equal the depth of+--         the image subresource corresponding to the parameter.+--+--     -   If the format of the image corresponding to the parameters is+--         one of the block-compressed formats then for the purposes of the+--         above calculations the granularity /must/ be scaled up by the+--         compressed texel block dimensions.+--+-- Queues supporting graphics and\/or compute operations /must/ report+-- (1,1,1) in @minImageTransferGranularity@, meaning that there are no+-- additional restrictions on the granularity of image transfer operations+-- for these queues. Other queues supporting image transfer operations are+-- only /required/ to support whole mip level transfers, thus+-- @minImageTransferGranularity@ for queues belonging to such queue+-- families /may/ be (0,0,0).+--+-- The <{html_spec_relative}#memory-device Device Memory> section describes+-- memory properties queried from the physical device.+--+-- For physical device feature queries see the+-- <{html_spec_relative}#features Features> chapter.+--+-- = See Also+-- #_see_also#+--+-- 'VkExtent3D',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkQueueFamilyProperties2',+-- 'VkQueueFlags', 'vkGetPhysicalDeviceQueueFamilyProperties'+data VkQueueFamilyProperties = VkQueueFamilyProperties+  { -- No documentation found for Nested "VkQueueFamilyProperties" "vkQueueFlags"+  vkQueueFlags :: VkQueueFlags+  , -- No documentation found for Nested "VkQueueFamilyProperties" "vkQueueCount"+  vkQueueCount :: Word32+  , -- No documentation found for Nested "VkQueueFamilyProperties" "vkTimestampValidBits"+  vkTimestampValidBits :: Word32+  , -- No documentation found for Nested "VkQueueFamilyProperties" "vkMinImageTransferGranularity"+  vkMinImageTransferGranularity :: VkExtent3D+  }+  deriving (Eq, Show)++instance Storable VkQueueFamilyProperties where+  sizeOf ~_ = 24+  alignment ~_ = 4+  peek ptr = VkQueueFamilyProperties <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 4)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 12)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkQueueFlags (poked :: VkQueueFamilyProperties))+                *> poke (ptr `plusPtr` 4) (vkQueueCount (poked :: VkQueueFamilyProperties))+                *> poke (ptr `plusPtr` 8) (vkTimestampValidBits (poked :: VkQueueFamilyProperties))+                *> poke (ptr `plusPtr` 12) (vkMinImageTransferGranularity (poked :: VkQueueFamilyProperties))+-- | VkPhysicalDeviceMemoryProperties - Structure specifying physical device+-- memory properties+--+-- = Description+-- #_description#+--+-- The @VkPhysicalDeviceMemoryProperties@ structure describes a number of+-- /memory heaps/ as well as a number of /memory types/ that /can/ be used+-- to access memory allocated in those heaps. Each heap describes a memory+-- resource of a particular size, and each memory type describes a set of+-- memory properties (e.g. host cached vs uncached) that /can/ be used with+-- a given memory heap. Allocations using a particular memory type will+-- consume resources from the heap indicated by that memory type’s heap+-- index. More than one memory type /may/ share each heap, and the heaps+-- and memory types provide a mechanism to advertise an accurate size of+-- the physical memory resources while allowing the memory to be used with+-- a variety of different properties.+--+-- The number of memory heaps is given by @memoryHeapCount@ and is less+-- than or equal to @VK_MAX_MEMORY_HEAPS@. Each heap is described by an+-- element of the @memoryHeaps@ array as a 'VkMemoryHeap' structure. The+-- number of memory types available across all memory heaps is given by+-- @memoryTypeCount@ and is less than or equal to @VK_MAX_MEMORY_TYPES@.+-- Each memory type is described by an element of the @memoryTypes@ array+-- as a 'VkMemoryType' structure.+--+-- At least one heap /must/ include @VK_MEMORY_HEAP_DEVICE_LOCAL_BIT@ in+-- 'VkMemoryHeap'::@flags@. If there are multiple heaps that all have+-- similar performance characteristics, they /may/ all include+-- @VK_MEMORY_HEAP_DEVICE_LOCAL_BIT@. In a unified memory architecture+-- (UMA) system there is often only a single memory heap which is+-- considered to be equally “local” to the host and to the device, and such+-- an implementation /must/ advertise the heap as device-local.+--+-- Each memory type returned by 'vkGetPhysicalDeviceMemoryProperties'+-- /must/ have its @propertyFlags@ set to one of the following values:+--+-- -   0+--+-- -   @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@+--+-- -   @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_CACHED_BIT@+--+-- -   @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_CACHED_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@+--+-- -   @VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT@+--+-- -   @VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@+--+-- -   @VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_CACHED_BIT@+--+-- -   @VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_CACHED_BIT@ |+--     @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@+--+-- -   @VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT@ |+--     @VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT@+--+-- There /must/ be at least one memory type with both the+-- @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ and+-- @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@ bits set in its @propertyFlags@.+-- There /must/ be at least one memory type with the+-- @VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT@ bit set in its @propertyFlags@.+--+-- For each pair of elements __X__ and __Y__ returned in @memoryTypes@,+-- __X__ /must/ be placed at a lower index position than __Y__ if:+--+-- -   either the set of bit flags returned in the @propertyFlags@ member+--     of __X__ is a strict subset of the set of bit flags returned in the+--     @propertyFlags@ member of __Y__.+--+-- -   or the @propertyFlags@ members of __X__ and __Y__ are equal, and+--     __X__ belongs to a memory heap with greater performance (as+--     determined in an implementation-specific manner).+--+-- __Note__+--+-- There is no ordering requirement between __X__ and __Y__ elements for+-- the case their @propertyFlags@ members are not in a subset relation.+-- That potentially allows more than one possible way to order the same set+-- of memory types. Notice that the+-- <{html_spec_relative}#memory-device-bitmask-list list of all allowed memory property flag combinations>+-- is written in the required order. But if instead+-- @VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT@ was before+-- @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@ |+-- @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@, the list would still be in the+-- required order.+--+-- This ordering requirement enables applications to use a simple search+-- loop to select the desired memory type along the lines of:+--+-- > // Find a memory in `memoryTypeBitsRequirement` that includes all of `requiredProperties`+-- > int32_t findProperties(const VkPhysicalDeviceMemoryProperties* pMemoryProperties,+-- >                        uint32_t memoryTypeBitsRequirement,+-- >                        VkMemoryPropertyFlags requiredProperties) {+-- >     const uint32_t memoryCount = pMemoryProperties->memoryTypeCount;+-- >     for (uint32_t memoryIndex = 0; memoryIndex < memoryCount; ++memoryIndex) {+-- >         const uint32_t memoryTypeBits = (1 << memoryIndex);+-- >         const bool isRequiredMemoryType = memoryTypeBitsRequirement & memoryTypeBits;+-- >+-- >         const VkMemoryPropertyFlags properties =+-- >             pMemoryProperties->memoryTypes[memoryIndex].propertyFlags;+-- >         const bool hasRequiredProperties =+-- >             (properties & requiredProperties) == requiredProperties;+-- >+-- >         if (isRequiredMemoryType && hasRequiredProperties)+-- >             return static_cast<int32_t>(memoryIndex);+-- >     }+-- >+-- >     // failed to find memory type+-- >     return -1;+-- > }+-- >+-- > // Try to find an optimal memory type, or if it does not exist try fallback memory type+-- > // `device` is the VkDevice+-- > // `image` is the VkImage that requires memory to be bound+-- > // `memoryProperties` properties as returned by vkGetPhysicalDeviceMemoryProperties+-- > // `requiredProperties` are the property flags that must be present+-- > // `optimalProperties` are the property flags that are preferred by the application+-- > VkMemoryRequirements memoryRequirements;+-- > vkGetImageMemoryRequirements(device, image, &memoryRequirements);+-- > int32_t memoryType =+-- >     findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, optimalProperties);+-- > if (memoryType == -1) // not found; try fallback properties+-- >     memoryType =+-- >         findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, requiredProperties);+--+-- = See Also+-- #_see_also#+--+-- 'VkMemoryHeap', 'VkMemoryType',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceMemoryProperties2',+-- 'vkGetPhysicalDeviceMemoryProperties'+data VkPhysicalDeviceMemoryProperties = VkPhysicalDeviceMemoryProperties+  { -- No documentation found for Nested "VkPhysicalDeviceMemoryProperties" "vkMemoryTypeCount"+  vkMemoryTypeCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceMemoryProperties" "vkMemoryTypes"+  vkMemoryTypes :: Vector VK_MAX_MEMORY_TYPES VkMemoryType+  , -- No documentation found for Nested "VkPhysicalDeviceMemoryProperties" "vkMemoryHeapCount"+  vkMemoryHeapCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceMemoryProperties" "vkMemoryHeaps"+  vkMemoryHeaps :: Vector VK_MAX_MEMORY_HEAPS VkMemoryHeap+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceMemoryProperties where+  sizeOf ~_ = 520+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceMemoryProperties <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 4)+                                              <*> peek (ptr `plusPtr` 260)+                                              <*> peek (ptr `plusPtr` 264)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkMemoryTypeCount (poked :: VkPhysicalDeviceMemoryProperties))+                *> poke (ptr `plusPtr` 4) (vkMemoryTypes (poked :: VkPhysicalDeviceMemoryProperties))+                *> poke (ptr `plusPtr` 260) (vkMemoryHeapCount (poked :: VkPhysicalDeviceMemoryProperties))+                *> poke (ptr `plusPtr` 264) (vkMemoryHeaps (poked :: VkPhysicalDeviceMemoryProperties))+-- | VkMemoryType - Structure specifying memory type+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkMemoryPropertyFlags', 'VkPhysicalDeviceMemoryProperties'+data VkMemoryType = VkMemoryType+  { -- No documentation found for Nested "VkMemoryType" "vkPropertyFlags"+  vkPropertyFlags :: VkMemoryPropertyFlags+  , -- No documentation found for Nested "VkMemoryType" "vkHeapIndex"+  vkHeapIndex :: Word32+  }+  deriving (Eq, Show)++instance Storable VkMemoryType where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkMemoryType <$> peek (ptr `plusPtr` 0)+                          <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkPropertyFlags (poked :: VkMemoryType))+                *> poke (ptr `plusPtr` 4) (vkHeapIndex (poked :: VkMemoryType))+-- | VkMemoryHeap - Structure specifying a memory heap+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@, 'VkMemoryHeapFlags', 'VkPhysicalDeviceMemoryProperties'+data VkMemoryHeap = VkMemoryHeap+  { -- No documentation found for Nested "VkMemoryHeap" "vkSize"+  vkSize :: VkDeviceSize+  , -- No documentation found for Nested "VkMemoryHeap" "vkFlags"+  vkFlags :: VkMemoryHeapFlags+  }+  deriving (Eq, Show)++instance Storable VkMemoryHeap where+  sizeOf ~_ = 16+  alignment ~_ = 8+  peek ptr = VkMemoryHeap <$> peek (ptr `plusPtr` 0)+                          <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSize (poked :: VkMemoryHeap))+                *> poke (ptr `plusPtr` 8) (vkFlags (poked :: VkMemoryHeap))+-- | VkFormatProperties - Structure specifying image format properties+--+-- = Description+-- #_description#+--+-- __Note__+--+-- If no format feature flags are supported, then the only possible use+-- would be image transfers - which alone are not useful. As such, if no+-- format feature flags are supported, the format itself is not supported,+-- and images of that format cannot be created.+--+-- If @format@ is a block-compression format, then buffers /must/ not+-- support any features for the format.+--+-- = See Also+-- #_see_also#+--+-- 'VkFormatFeatureFlags',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkFormatProperties2',+-- 'vkGetPhysicalDeviceFormatProperties'+data VkFormatProperties = VkFormatProperties+  { -- No documentation found for Nested "VkFormatProperties" "vkLinearTilingFeatures"+  vkLinearTilingFeatures :: VkFormatFeatureFlags+  , -- No documentation found for Nested "VkFormatProperties" "vkOptimalTilingFeatures"+  vkOptimalTilingFeatures :: VkFormatFeatureFlags+  , -- No documentation found for Nested "VkFormatProperties" "vkBufferFeatures"+  vkBufferFeatures :: VkFormatFeatureFlags+  }+  deriving (Eq, Show)++instance Storable VkFormatProperties where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkFormatProperties <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 4)+                                <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkLinearTilingFeatures (poked :: VkFormatProperties))+                *> poke (ptr `plusPtr` 4) (vkOptimalTilingFeatures (poked :: VkFormatProperties))+                *> poke (ptr `plusPtr` 8) (vkBufferFeatures (poked :: VkFormatProperties))+-- | VkImageFormatProperties - Structure specifying a image format properties+--+-- = Members+-- #_members#+--+-- -   @maxExtent@ are the maximum image dimensions. See the+--     <{html_spec_relative}#features-extentperimagetype Allowed Extent Values>+--     section below for how these values are constrained by @type@.+--+-- -   @maxMipLevels@ is the maximum number of mipmap levels.+--     @maxMipLevels@ /must/ be equal to ⌈log2(max(@width@, @height@,+--     @depth@))⌉ + 1, where @width@, @height@, and @depth@ are taken from+--     the corresponding members of @maxExtent@, except when one of the+--     following conditions is true, in which case it /may/ instead be @1@:+--+--     -   @vkGetPhysicalDeviceImageFormatProperties@::@tiling@ was+--         @VK_IMAGE_TILING_LINEAR@+--+-- -   @maxArrayLayers@ is the maximum number of array layers.+--     @maxArrayLayers@ /must/ either be equal to 1 or be greater than or+--     equal to the @maxImageArrayLayers@ member of+--     'VkPhysicalDeviceLimits'. A value of 1 is valid only if @tiling@ is+--     @VK_IMAGE_TILING_LINEAR@ or if @type@ is @VK_IMAGE_TYPE_3D@.+--+-- -   @sampleCounts@ is a bitmask of 'VkSampleCountFlagBits' specifying+--     all the supported sample counts for this image as described+--     <{html_spec_relative}#features-supported-sample-counts below>.+--+-- -   @maxResourceSize@ is an upper bound on the total image size in+--     bytes, inclusive of all image subresources. Implementations /may/+--     have an address space limit on total size of a resource, which is+--     advertised by this property. @maxResourceSize@ /must/ be at least+--     231.+--+-- = Description+-- #_description#+--+-- __Note__+--+-- There is no mechanism to query the size of an image before creating it,+-- to compare that size against @maxResourceSize@. If an application+-- attempts to create an image that exceeds this limit, the creation will+-- fail and 'Graphics.Vulkan.Core10.Image.vkCreateImage' will return+-- @VK_ERROR_OUT_OF_DEVICE_MEMORY@. While the advertised limit /must/ be at+-- least 231, it /may/ not be possible to create an image that approaches+-- that size, particularly for @VK_IMAGE_TYPE_1D@.+--+-- If the combination of parameters to+-- @vkGetPhysicalDeviceImageFormatProperties@ is not supported by the+-- implementation for use in 'Graphics.Vulkan.Core10.Image.vkCreateImage',+-- then all members of @VkImageFormatProperties@ will be filled with zero.+--+-- __Note__+--+-- Filling @VkImageFormatProperties@ with zero for unsupported formats is+-- an exception to the usual rule that output structures have undefined+-- contents on error. This exception was unintentional, but is preserved+-- for backwards compatibility.+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@, 'VkExtent3D',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalImageFormatPropertiesNV',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2',+-- 'VkSampleCountFlags', 'vkGetPhysicalDeviceImageFormatProperties'+data VkImageFormatProperties = VkImageFormatProperties+  { -- No documentation found for Nested "VkImageFormatProperties" "vkMaxExtent"+  vkMaxExtent :: VkExtent3D+  , -- No documentation found for Nested "VkImageFormatProperties" "vkMaxMipLevels"+  vkMaxMipLevels :: Word32+  , -- No documentation found for Nested "VkImageFormatProperties" "vkMaxArrayLayers"+  vkMaxArrayLayers :: Word32+  , -- No documentation found for Nested "VkImageFormatProperties" "vkSampleCounts"+  vkSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkImageFormatProperties" "vkMaxResourceSize"+  vkMaxResourceSize :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkImageFormatProperties where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkImageFormatProperties <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 12)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 20)+                                     <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkMaxExtent (poked :: VkImageFormatProperties))+                *> poke (ptr `plusPtr` 12) (vkMaxMipLevels (poked :: VkImageFormatProperties))+                *> poke (ptr `plusPtr` 16) (vkMaxArrayLayers (poked :: VkImageFormatProperties))+                *> poke (ptr `plusPtr` 20) (vkSampleCounts (poked :: VkImageFormatProperties))+                *> poke (ptr `plusPtr` 24) (vkMaxResourceSize (poked :: VkImageFormatProperties))+-- | VkPhysicalDeviceFeatures - Structure describing the fine-grained+-- features that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceFeatures@ structure describe the+-- following features:+--+-- = Description+-- #_description#+--+-- -   @robustBufferAccess@ specifies that accesses to buffers are+--     bounds-checked against the range of the buffer descriptor (as+--     determined by @VkDescriptorBufferInfo@::@range@,+--     @VkBufferViewCreateInfo@::@range@, or the size of the buffer). Out+--     of bounds accesses /must/ not cause application termination, and the+--     effects of shader loads, stores, and atomics /must/ conform to an+--     implementation-dependent behavior as described below.+--+--     -   A buffer access is considered to be out of bounds if any of the+--         following are true:+--+--         -   The pointer was formed by @OpImageTexelPointer@ and the+--             coordinate is less than zero or greater than or equal to the+--             number of whole elements in the bound range.+--+--         -   The pointer was not formed by @OpImageTexelPointer@ and the+--             object pointed to is not wholly contained within the bound+--             range.+--+--             __Note__+--+--             If a SPIR-V @OpLoad@ instruction loads a structure and the+--             tail end of the structure is out of bounds, then all members+--             of the structure are considered out of bounds even if the+--             members at the end are not statically used.+--+--         -   If any buffer access in a given SPIR-V block is determined+--             to be out of bounds, then any other access of the same type+--             (load, store, or atomic) in the same SPIR-V block that+--             accesses an address less than 16 bytes away from the out of+--             bounds address /may/ also be considered out of bounds.+--+--     -   Out-of-bounds buffer loads will return any of the following+--         values:+--+--         -   Values from anywhere within the memory range(s) bound to the+--             buffer (possibly including bytes of memory past the end of+--             the buffer, up to the end of the bound range).+--+--         -   Zero values, or (0,0,0,x) vectors for vector reads where x+--             is a valid value represented in the type of the vector+--             components and /may/ be any of:+--+--             -   0, 1, or the maximum representable positive integer+--                 value, for signed or unsigned integer components+--+--             -   0.0 or 1.0, for floating-point components+--+--     -   Out-of-bounds writes /may/ modify values within the memory+--         range(s) bound to the buffer, but /must/ not modify any other+--         memory.+--+--     -   Out-of-bounds atomics /may/ modify values within the memory+--         range(s) bound to the buffer, but /must/ not modify any other+--         memory, and return an undefined value.+--+--     -   Vertex input attributes are considered out of bounds if the+--         offset of the attribute in the bound vertex buffer range plus+--         the size of the attribute is greater than either:+--+--         -   @vertexBufferRangeSize@, if @bindingStride@ == 0; or+--+--         -   (@vertexBufferRangeSize@ - (@vertexBufferRangeSize@ %+--             @bindingStride@))+--+--         where @vertexBufferRangeSize@ is the byte size of the memory+--         range bound to the vertex buffer binding and @bindingStride@ is+--         the byte stride of the corresponding vertex input binding.+--         Further, if any vertex input attribute using a specific vertex+--         input binding is out of bounds, then all vertex input attributes+--         using that vertex input binding for that vertex shader+--         invocation are considered out of bounds.+--+--         -   If a vertex input attribute is out of bounds, it will be+--             assigned one of the following values:+--+--             -   Values from anywhere within the memory range(s) bound to+--                 the buffer, converted according to the format of the+--                 attribute.+--+--             -   Zero values, format converted according to the format of+--                 the attribute.+--+--             -   Zero values, or (0,0,0,x) vectors, as described above.+--+--     -   If @robustBufferAccess@ is not enabled, out of bounds accesses+--         /may/ corrupt any memory within the process and cause undefined+--         behavior up to and including application termination.+--+-- -   @fullDrawIndexUint32@ specifies the full 32-bit range of indices is+--     supported for indexed draw calls when using a+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType' of+--     @VK_INDEX_TYPE_UINT32@. @maxDrawIndexedIndexValue@ is the maximum+--     index value that /may/ be used (aside from the primitive restart+--     index, which is always 232-1 when the+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType' is+--     @VK_INDEX_TYPE_UINT32@). If this feature is supported,+--     @maxDrawIndexedIndexValue@ /must/ be 232-1; otherwise it /must/ be+--     no smaller than 224-1. See+--     <{html_spec_relative}#features-limits-maxDrawIndexedIndexValue maxDrawIndexedIndexValue>.+--+-- -   @imageCubeArray@ specifies whether image views with a+--     'Graphics.Vulkan.Core10.ImageView.VkImageViewType' of+--     @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@ /can/ be created, and that the+--     corresponding @SampledCubeArray@ and @ImageCubeArray@ SPIR-V+--     capabilities /can/ be used in shader code.+--+-- -   @independentBlend@ specifies whether the+--     @VkPipelineColorBlendAttachmentState@ settings are controlled+--     independently per-attachment. If this feature is not enabled, the+--     @VkPipelineColorBlendAttachmentState@ settings for all color+--     attachments /must/ be identical. Otherwise, a different+--     @VkPipelineColorBlendAttachmentState@ /can/ be provided for each+--     bound color attachment.+--+-- -   @geometryShader@ specifies whether geometry shaders are supported.+--     If this feature is not enabled, the @VK_SHADER_STAGE_GEOMETRY_BIT@+--     and @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@ enum values /must/ not+--     be used. This also specifies whether shader modules /can/ declare+--     the @Geometry@ capability.+--+-- -   @tessellationShader@ specifies whether tessellation control and+--     evaluation shaders are supported. If this feature is not enabled,+--     the @VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT@,+--     @VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT@,+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@,+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@, and+--     @VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO@ enum+--     values /must/ not be used. This also specifies whether shader+--     modules /can/ declare the @Tessellation@ capability.+--+-- -   @sampleRateShading@ specifies whether+--     <{html_spec_relative}#primsrast-sampleshading Sample Shading> and+--     multisample interpolation are supported. If this feature is not+--     enabled, the @sampleShadingEnable@ member of the+--     @VkPipelineMultisampleStateCreateInfo@ structure /must/ be set to+--     @VK_FALSE@ and the @minSampleShading@ member is ignored. This also+--     specifies whether shader modules /can/ declare the+--     @SampleRateShading@ capability.+--+-- -   @dualSrcBlend@ specifies whether blend operations which take two+--     sources are supported. If this feature is not enabled, the+--     @VK_BLEND_FACTOR_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_SRC1_ALPHA@, and+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA@ enum values /must/ not be+--     used as source or destination blending factors. See+--     <{html_spec_relative}#framebuffer-dsb {html_spec_relative}#framebuffer-dsb>.+--+-- -   @logicOp@ specifies whether logic operations are supported. If this+--     feature is not enabled, the @logicOpEnable@ member of the+--     @VkPipelineColorBlendStateCreateInfo@ structure /must/ be set to+--     @VK_FALSE@, and the @logicOp@ member is ignored.+--+-- -   @multiDrawIndirect@ specifies whether multiple draw indirect is+--     supported. If this feature is not enabled, the @drawCount@ parameter+--     to the @vkCmdDrawIndirect@ and @vkCmdDrawIndexedIndirect@ commands+--     /must/ be 0 or 1. The @maxDrawIndirectCount@ member of the+--     @VkPhysicalDeviceLimits@ structure /must/ also be 1 if this feature+--     is not supported. See+--     <{html_spec_relative}#features-limits-maxDrawIndirectCount maxDrawIndirectCount>.+--+-- -   @drawIndirectFirstInstance@ specifies whether indirect draw calls+--     support the @firstInstance@ parameter. If this feature is not+--     enabled, the @firstInstance@ member of all @VkDrawIndirectCommand@+--     and @VkDrawIndexedIndirectCommand@ structures that are provided to+--     the @vkCmdDrawIndirect@ and @vkCmdDrawIndexedIndirect@ commands+--     /must/ be 0.+--+-- -   @depthClamp@ specifies whether depth clamping is supported. If this+--     feature is not enabled, the @depthClampEnable@ member of the+--     @VkPipelineRasterizationStateCreateInfo@ structure /must/ be set to+--     @VK_FALSE@. Otherwise, setting @depthClampEnable@ to @VK_TRUE@ will+--     enable depth clamping.+--+-- -   @depthBiasClamp@ specifies whether depth bias clamping is supported.+--     If this feature is not enabled, the @depthBiasClamp@ member of the+--     @VkPipelineRasterizationStateCreateInfo@ structure /must/ be set to+--     0.0 unless the @VK_DYNAMIC_STATE_DEPTH_BIAS@ dynamic state is+--     enabled, and the @depthBiasClamp@ parameter to @vkCmdSetDepthBias@+--     /must/ be set to 0.0.+--+-- -   @fillModeNonSolid@ specifies whether point and wireframe fill modes+--     are supported. If this feature is not enabled, the+--     @VK_POLYGON_MODE_POINT@ and @VK_POLYGON_MODE_LINE@ enum values+--     /must/ not be used.+--+-- -   @depthBounds@ specifies whether depth bounds tests are supported. If+--     this feature is not enabled, the @depthBoundsTestEnable@ member of+--     the @VkPipelineDepthStencilStateCreateInfo@ structure /must/ be set+--     to @VK_FALSE@. When @depthBoundsTestEnable@ is set to @VK_FALSE@,+--     the @minDepthBounds@ and @maxDepthBounds@ members of the+--     @VkPipelineDepthStencilStateCreateInfo@ structure are ignored.+--+-- -   @wideLines@ specifies whether lines with width other than 1.0 are+--     supported. If this feature is not enabled, the @lineWidth@ member of+--     the @VkPipelineRasterizationStateCreateInfo@ structure /must/ be set+--     to 1.0 unless the @VK_DYNAMIC_STATE_LINE_WIDTH@ dynamic state is+--     enabled, and the @lineWidth@ parameter to @vkCmdSetLineWidth@ /must/+--     be set to 1.0. When this feature is supported, the range and+--     granularity of supported line widths are indicated by the+--     @lineWidthRange@ and @lineWidthGranularity@ members of the+--     @VkPhysicalDeviceLimits@ structure, respectively.+--+-- -   @largePoints@ specifies whether points with size greater than 1.0+--     are supported. If this feature is not enabled, only a point size of+--     1.0 written by a shader is supported. The range and granularity of+--     supported point sizes are indicated by the @pointSizeRange@ and+--     @pointSizeGranularity@ members of the @VkPhysicalDeviceLimits@+--     structure, respectively.+--+-- -   @alphaToOne@ specifies whether the implementation is able to replace+--     the alpha value of the color fragment output from the fragment+--     shader with the maximum representable alpha value for fixed-point+--     colors or 1.0 for floating-point colors. If this feature is not+--     enabled, then the @alphaToOneEnable@ member of the+--     @VkPipelineMultisampleStateCreateInfo@ structure /must/ be set to+--     @VK_FALSE@. Otherwise setting @alphaToOneEnable@ to @VK_TRUE@ will+--     enable alpha-to-one behavior.+--+-- -   @multiViewport@ specifies whether more than one viewport is+--     supported. If this feature is not enabled, the @viewportCount@ and+--     @scissorCount@ members of the @VkPipelineViewportStateCreateInfo@+--     structure /must/ be set to 1. Similarly, the @viewportCount@+--     parameter to the @vkCmdSetViewport@ command and the @scissorCount@+--     parameter to the @vkCmdSetScissor@ command /must/ be 1, and the+--     @firstViewport@ parameter to the @vkCmdSetViewport@ command and the+--     @firstScissor@ parameter to the @vkCmdSetScissor@ command /must/ be+--     0.+--+-- -   @samplerAnisotropy@ specifies whether anisotropic filtering is+--     supported. If this feature is not enabled, the @anisotropyEnable@+--     member of the @VkSamplerCreateInfo@ structure /must/ be @VK_FALSE@.+--+-- -   @textureCompressionETC2@ specifies whether all of the ETC2 and EAC+--     compressed texture formats are supported. If this feature is+--     enabled, then the @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@,+--     @VK_FORMAT_FEATURE_BLIT_SRC_BIT@ and+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ features /must/+--     be supported in @optimalTilingFeatures@ for the following formats:+--+--     -   @VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK@+--+--     -   @VK_FORMAT_EAC_R11_UNORM_BLOCK@+--+--     -   @VK_FORMAT_EAC_R11_SNORM_BLOCK@+--+--     -   @VK_FORMAT_EAC_R11G11_UNORM_BLOCK@+--+--     -   @VK_FORMAT_EAC_R11G11_SNORM_BLOCK@+--+--     'vkGetPhysicalDeviceFormatProperties' and+--     'vkGetPhysicalDeviceImageFormatProperties' /can/ be used to check+--     for additional supported properties of individual formats.+--+-- -   @textureCompressionASTC_LDR@ specifies whether all of the ASTC LDR+--     compressed texture formats are supported. If this feature is+--     enabled, then the @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@,+--     @VK_FORMAT_FEATURE_BLIT_SRC_BIT@ and+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ features /must/+--     be supported in @optimalTilingFeatures@ for the following formats:+--+--     -   @VK_FORMAT_ASTC_4x4_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_4x4_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_5x4_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_5x4_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_5x5_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_5x5_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_6x5_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_6x5_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_6x6_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_6x6_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_8x5_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_8x5_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_8x6_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_8x6_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_8x8_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_8x8_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_10x5_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_10x5_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_10x6_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_10x6_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_10x8_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_10x8_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_10x10_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_10x10_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_12x10_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_12x10_SRGB_BLOCK@+--+--     -   @VK_FORMAT_ASTC_12x12_UNORM_BLOCK@+--+--     -   @VK_FORMAT_ASTC_12x12_SRGB_BLOCK@+--+--     'vkGetPhysicalDeviceFormatProperties' and+--     'vkGetPhysicalDeviceImageFormatProperties' /can/ be used to check+--     for additional supported properties of individual formats.+--+-- -   @textureCompressionBC@ specifies whether all of the BC compressed+--     texture formats are supported. If this feature is enabled, then the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@,+--     @VK_FORMAT_FEATURE_BLIT_SRC_BIT@ and+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ features /must/+--     be supported in @optimalTilingFeatures@ for the following formats:+--+--     -   @VK_FORMAT_BC1_RGB_UNORM_BLOCK@+--+--     -   @VK_FORMAT_BC1_RGB_SRGB_BLOCK@+--+--     -   @VK_FORMAT_BC1_RGBA_UNORM_BLOCK@+--+--     -   @VK_FORMAT_BC1_RGBA_SRGB_BLOCK@+--+--     -   @VK_FORMAT_BC2_UNORM_BLOCK@+--+--     -   @VK_FORMAT_BC2_SRGB_BLOCK@+--+--     -   @VK_FORMAT_BC3_UNORM_BLOCK@+--+--     -   @VK_FORMAT_BC3_SRGB_BLOCK@+--+--     -   @VK_FORMAT_BC4_UNORM_BLOCK@+--+--     -   @VK_FORMAT_BC4_SNORM_BLOCK@+--+--     -   @VK_FORMAT_BC5_UNORM_BLOCK@+--+--     -   @VK_FORMAT_BC5_SNORM_BLOCK@+--+--     -   @VK_FORMAT_BC6H_UFLOAT_BLOCK@+--+--     -   @VK_FORMAT_BC6H_SFLOAT_BLOCK@+--+--     -   @VK_FORMAT_BC7_UNORM_BLOCK@+--+--     -   @VK_FORMAT_BC7_SRGB_BLOCK@+--+--     'vkGetPhysicalDeviceFormatProperties' and+--     'vkGetPhysicalDeviceImageFormatProperties' /can/ be used to check+--     for additional supported properties of individual formats.+--+-- -   @occlusionQueryPrecise@ specifies whether occlusion queries+--     returning actual sample counts are supported. Occlusion queries are+--     created in a @VkQueryPool@ by specifying the @queryType@ of+--     @VK_QUERY_TYPE_OCCLUSION@ in the @VkQueryPoolCreateInfo@ structure+--     which is passed to @vkCreateQueryPool@. If this feature is enabled,+--     queries of this type /can/ enable @VK_QUERY_CONTROL_PRECISE_BIT@ in+--     the @flags@ parameter to @vkCmdBeginQuery@. If this feature is not+--     supported, the implementation supports only boolean occlusion+--     queries. When any samples are passed, boolean queries will return a+--     non-zero result value, otherwise a result value of zero is returned.+--     When this feature is enabled and @VK_QUERY_CONTROL_PRECISE_BIT@ is+--     set, occlusion queries will report the actual number of samples+--     passed.+--+-- -   @pipelineStatisticsQuery@ specifies whether the pipeline statistics+--     queries are supported. If this feature is not enabled, queries of+--     type @VK_QUERY_TYPE_PIPELINE_STATISTICS@ /cannot/ be created, and+--     none of the+--     'Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits' bits+--     /can/ be set in the @pipelineStatistics@ member of the+--     @VkQueryPoolCreateInfo@ structure.+--+-- -   @vertexPipelineStoresAndAtomics@ specifies whether storage buffers+--     and images support stores and atomic operations in the vertex,+--     tessellation, and geometry shader stages. If this feature is not+--     enabled, all storage image, storage texel buffers, and storage+--     buffer variables used by these stages in shader modules /must/ be+--     decorated with the @NonWriteable@ decoration (or the @readonly@+--     memory qualifier in GLSL).+--+-- -   @fragmentStoresAndAtomics@ specifies whether storage buffers and+--     images support stores and atomic operations in the fragment shader+--     stage. If this feature is not enabled, all storage image, storage+--     texel buffers, and storage buffer variables used by the fragment+--     stage in shader modules /must/ be decorated with the @NonWriteable@+--     decoration (or the @readonly@ memory qualifier in GLSL).+--+-- -   @shaderTessellationAndGeometryPointSize@ specifies whether the+--     @PointSize@ built-in decoration is available in the tessellation+--     control, tessellation evaluation, and geometry shader stages. If+--     this feature is not enabled, members decorated with the @PointSize@+--     built-in decoration /must/ not be read from or written to and all+--     points written from a tessellation or geometry shader will have a+--     size of 1.0. This also specifies whether shader modules /can/+--     declare the @TessellationPointSize@ capability for tessellation+--     control and evaluation shaders, or if the shader modules /can/+--     declare the @GeometryPointSize@ capability for geometry shaders. An+--     implementation supporting this feature /must/ also support one or+--     both of the+--     <{html_spec_relative}#features-features-tessellationShader tessellationShader>+--     or+--     <{html_spec_relative}#features-features-geometryShader geometryShader>+--     features.+--+-- -   @shaderImageGatherExtended@ specifies whether the extended set of+--     image gather instructions are available in shader code. If this+--     feature is not enabled, the @OpImage@*@Gather@ instructions do not+--     support the @Offset@ and @ConstOffsets@ operands. This also+--     specifies whether shader modules /can/ declare the+--     @ImageGatherExtended@ capability.+--+-- -   @shaderStorageImageExtendedFormats@ specifies whether the extended+--     storage image formats are available in shader code. If this feature+--     is not enabled, the formats requiring the+--     @StorageImageExtendedFormats@ capability are not supported for+--     storage images. This also specifies whether shader modules /can/+--     declare the @StorageImageExtendedFormats@ capability.+--+-- -   @shaderStorageImageMultisample@ specifies whether multisampled+--     storage images are supported. If this feature is not enabled, images+--     that are created with a @usage@ that includes+--     @VK_IMAGE_USAGE_STORAGE_BIT@ /must/ be created with @samples@ equal+--     to @VK_SAMPLE_COUNT_1_BIT@. This also specifies whether shader+--     modules /can/ declare the @StorageImageMultisample@ capability.+--+-- -   @shaderStorageImageReadWithoutFormat@ specifies whether storage+--     images require a format qualifier to be specified when reading from+--     storage images. If this feature is not enabled, the @OpImageRead@+--     instruction /must/ not have an @OpTypeImage@ of @Unknown@. This also+--     specifies whether shader modules /can/ declare the+--     @StorageImageReadWithoutFormat@ capability.+--+-- -   @shaderStorageImageWriteWithoutFormat@ specifies whether storage+--     images require a format qualifier to be specified when writing to+--     storage images. If this feature is not enabled, the @OpImageWrite@+--     instruction /must/ not have an @OpTypeImage@ of @Unknown@. This also+--     specifies whether shader modules /can/ declare the+--     @StorageImageWriteWithoutFormat@ capability.+--+-- -   @shaderUniformBufferArrayDynamicIndexing@ specifies whether arrays+--     of uniform buffers /can/ be indexed by /dynamically uniform/ integer+--     expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ /must/ be indexed only+--     by constant integral expressions when aggregated into arrays in+--     shader code. This also specifies whether shader modules /can/+--     declare the @UniformBufferArrayDynamicIndexing@ capability.+--+-- -   @shaderSampledImageArrayDynamicIndexing@ specifies whether arrays of+--     samplers or sampled images /can/ be indexed by dynamically uniform+--     integer expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of @VK_DESCRIPTOR_TYPE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, or+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@ /must/ be indexed only by+--     constant integral expressions when aggregated into arrays in shader+--     code. This also specifies whether shader modules /can/ declare the+--     @SampledImageArrayDynamicIndexing@ capability.+--+-- -   @shaderStorageBufferArrayDynamicIndexing@ specifies whether arrays+--     of storage buffers /can/ be indexed by dynamically uniform integer+--     expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ /must/ be indexed only+--     by constant integral expressions when aggregated into arrays in+--     shader code. This also specifies whether shader modules /can/+--     declare the @StorageBufferArrayDynamicIndexing@ capability.+--+-- -   @shaderStorageImageArrayDynamicIndexing@ specifies whether arrays of+--     storage images /can/ be indexed by dynamically uniform integer+--     expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@ /must/ be indexed only by+--     constant integral expressions when aggregated into arrays in shader+--     code. This also specifies whether shader modules /can/ declare the+--     @StorageImageArrayDynamicIndexing@ capability.+--+-- -   @shaderClipDistance@ specifies whether clip distances are supported+--     in shader code. If this feature is not enabled, any members+--     decorated with the @ClipDistance@ built-in decoration /must/ not be+--     read from or written to in shader modules. This also specifies+--     whether shader modules /can/ declare the @ClipDistance@ capability.+--+-- -   @shaderCullDistance@ specifies whether cull distances are supported+--     in shader code. If this feature is not enabled, any members+--     decorated with the @CullDistance@ built-in decoration /must/ not be+--     read from or written to in shader modules. This also specifies+--     whether shader modules /can/ declare the @CullDistance@ capability.+--+-- -   @shaderFloat64@ specifies whether 64-bit floats (doubles) are+--     supported in shader code. If this feature is not enabled, 64-bit+--     floating-point types /must/ not be used in shader code. This also+--     specifies whether shader modules /can/ declare the @Float64@+--     capability.+--+-- -   @shaderInt64@ specifies whether 64-bit integers (signed and+--     unsigned) are supported in shader code. If this feature is not+--     enabled, 64-bit integer types /must/ not be used in shader code.+--     This also specifies whether shader modules /can/ declare the @Int64@+--     capability.+--+-- -   @shaderInt16@ specifies whether 16-bit integers (signed and+--     unsigned) are supported in shader code. If this feature is not+--     enabled, 16-bit integer types /must/ not be used in shader code.+--     This also specifies whether shader modules /can/ declare the @Int16@+--     capability.+--+-- -   @shaderResourceResidency@ specifies whether image operations that+--     return resource residency information are supported in shader code.+--     If this feature is not enabled, the @OpImageSparse@* instructions+--     /must/ not be used in shader code. This also specifies whether+--     shader modules /can/ declare the @SparseResidency@ capability. The+--     feature requires at least one of the @sparseResidency*@ features to+--     be supported.+--+-- -   @shaderResourceMinLod@ specifies whether image operations that+--     specify the minimum resource LOD are supported in shader code. If+--     this feature is not enabled, the @MinLod@ image operand /must/ not+--     be used in shader code. This also specifies whether shader modules+--     /can/ declare the @MinLod@ capability.+--+-- -   @sparseBinding@ specifies whether resource memory /can/ be managed+--     at opaque sparse block level instead of at the object level. If this+--     feature is not enabled, resource memory /must/ be bound only on a+--     per-object basis using the @vkBindBufferMemory@ and+--     @vkBindImageMemory@ commands. In this case, buffers and images+--     /must/ not be created with @VK_BUFFER_CREATE_SPARSE_BINDING_BIT@ and+--     @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@ set in the @flags@ member of+--     the @VkBufferCreateInfo@ and @VkImageCreateInfo@ structures,+--     respectively. Otherwise resource memory /can/ be managed as+--     described in+--     <{html_spec_relative}#sparsememory-sparseresourcefeatures Sparse Resource Features>.+--+-- -   @sparseResidencyBuffer@ specifies whether the device /can/ access+--     partially resident buffers. If this feature is not enabled, buffers+--     /must/ not be created with @VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT@+--     set in the @flags@ member of the @VkBufferCreateInfo@ structure.+--+-- -   @sparseResidencyImage2D@ specifies whether the device /can/ access+--     partially resident 2D images with 1 sample per pixel. If this+--     feature is not enabled, images with an @imageType@ of+--     @VK_IMAGE_TYPE_2D@ and @samples@ set to @VK_SAMPLE_COUNT_1_BIT@+--     /must/ not be created with @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--     set in the @flags@ member of the @VkImageCreateInfo@ structure.+--+-- -   @sparseResidencyImage3D@ specifies whether the device /can/ access+--     partially resident 3D images. If this feature is not enabled, images+--     with an @imageType@ of @VK_IMAGE_TYPE_3D@ /must/ not be created with+--     @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@ set in the @flags@ member of+--     the @VkImageCreateInfo@ structure.+--+-- -   @sparseResidency2Samples@ specifies whether the physical device+--     /can/ access partially resident 2D images with 2 samples per pixel.+--     If this feature is not enabled, images with an @imageType@ of+--     @VK_IMAGE_TYPE_2D@ and @samples@ set to @VK_SAMPLE_COUNT_2_BIT@+--     /must/ not be created with @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--     set in the @flags@ member of the @VkImageCreateInfo@ structure.+--+-- -   @sparseResidency4Samples@ specifies whether the physical device+--     /can/ access partially resident 2D images with 4 samples per pixel.+--     If this feature is not enabled, images with an @imageType@ of+--     @VK_IMAGE_TYPE_2D@ and @samples@ set to @VK_SAMPLE_COUNT_4_BIT@+--     /must/ not be created with @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--     set in the @flags@ member of the @VkImageCreateInfo@ structure.+--+-- -   @sparseResidency8Samples@ specifies whether the physical device+--     /can/ access partially resident 2D images with 8 samples per pixel.+--     If this feature is not enabled, images with an @imageType@ of+--     @VK_IMAGE_TYPE_2D@ and @samples@ set to @VK_SAMPLE_COUNT_8_BIT@+--     /must/ not be created with @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--     set in the @flags@ member of the @VkImageCreateInfo@ structure.+--+-- -   @sparseResidency16Samples@ specifies whether the physical device+--     /can/ access partially resident 2D images with 16 samples per pixel.+--     If this feature is not enabled, images with an @imageType@ of+--     @VK_IMAGE_TYPE_2D@ and @samples@ set to @VK_SAMPLE_COUNT_16_BIT@+--     /must/ not be created with @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--     set in the @flags@ member of the @VkImageCreateInfo@ structure.+--+-- -   @sparseResidencyAliased@ specifies whether the physical device /can/+--     correctly access data aliased into multiple locations. If this+--     feature is not enabled, the @VK_BUFFER_CREATE_SPARSE_ALIASED_BIT@+--     and @VK_IMAGE_CREATE_SPARSE_ALIASED_BIT@ enum values /must/ not be+--     used in @flags@ members of the @VkBufferCreateInfo@ and+--     @VkImageCreateInfo@ structures, respectively.+--+-- -   @variableMultisampleRate@ specifies whether all pipelines that will+--     be bound to a command buffer during a subpass with no attachments+--     /must/ have the same value for+--     @VkPipelineMultisampleStateCreateInfo@::@rasterizationSamples@. If+--     set to @VK_TRUE@, the implementation supports variable multisample+--     rates in a subpass with no attachments. If set to @VK_FALSE@, then+--     all pipelines bound in such a subpass /must/ have the same+--     multisample rate. This has no effect in situations where a subpass+--     uses any attachments.+--+-- -   @inheritedQueries@ specifies whether a secondary command buffer+--     /may/ be executed while a query is active.+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2',+-- 'vkGetPhysicalDeviceFeatures'+data VkPhysicalDeviceFeatures = VkPhysicalDeviceFeatures+  { -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkRobustBufferAccess"+  vkRobustBufferAccess :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkFullDrawIndexUint32"+  vkFullDrawIndexUint32 :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkImageCubeArray"+  vkImageCubeArray :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkIndependentBlend"+  vkIndependentBlend :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkGeometryShader"+  vkGeometryShader :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkTessellationShader"+  vkTessellationShader :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSampleRateShading"+  vkSampleRateShading :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkDualSrcBlend"+  vkDualSrcBlend :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkLogicOp"+  vkLogicOp :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkMultiDrawIndirect"+  vkMultiDrawIndirect :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkDrawIndirectFirstInstance"+  vkDrawIndirectFirstInstance :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkDepthClamp"+  vkDepthClamp :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkDepthBiasClamp"+  vkDepthBiasClamp :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkFillModeNonSolid"+  vkFillModeNonSolid :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkDepthBounds"+  vkDepthBounds :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkWideLines"+  vkWideLines :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkLargePoints"+  vkLargePoints :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkAlphaToOne"+  vkAlphaToOne :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkMultiViewport"+  vkMultiViewport :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSamplerAnisotropy"+  vkSamplerAnisotropy :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkTextureCompressionETC2"+  vkTextureCompressionETC2 :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkTextureCompressionASTC_LDR"+  vkTextureCompressionASTC_LDR :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkTextureCompressionBC"+  vkTextureCompressionBC :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkOcclusionQueryPrecise"+  vkOcclusionQueryPrecise :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkPipelineStatisticsQuery"+  vkPipelineStatisticsQuery :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkVertexPipelineStoresAndAtomics"+  vkVertexPipelineStoresAndAtomics :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkFragmentStoresAndAtomics"+  vkFragmentStoresAndAtomics :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderTessellationAndGeometryPointSize"+  vkShaderTessellationAndGeometryPointSize :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderImageGatherExtended"+  vkShaderImageGatherExtended :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderStorageImageExtendedFormats"+  vkShaderStorageImageExtendedFormats :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderStorageImageMultisample"+  vkShaderStorageImageMultisample :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderStorageImageReadWithoutFormat"+  vkShaderStorageImageReadWithoutFormat :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderStorageImageWriteWithoutFormat"+  vkShaderStorageImageWriteWithoutFormat :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderUniformBufferArrayDynamicIndexing"+  vkShaderUniformBufferArrayDynamicIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderSampledImageArrayDynamicIndexing"+  vkShaderSampledImageArrayDynamicIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderStorageBufferArrayDynamicIndexing"+  vkShaderStorageBufferArrayDynamicIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderStorageImageArrayDynamicIndexing"+  vkShaderStorageImageArrayDynamicIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderClipDistance"+  vkShaderClipDistance :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderCullDistance"+  vkShaderCullDistance :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderFloat64"+  vkShaderFloat64 :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderInt64"+  vkShaderInt64 :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderInt16"+  vkShaderInt16 :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderResourceResidency"+  vkShaderResourceResidency :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkShaderResourceMinLod"+  vkShaderResourceMinLod :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseBinding"+  vkSparseBinding :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseResidencyBuffer"+  vkSparseResidencyBuffer :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseResidencyImage2D"+  vkSparseResidencyImage2D :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseResidencyImage3D"+  vkSparseResidencyImage3D :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseResidency2Samples"+  vkSparseResidency2Samples :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseResidency4Samples"+  vkSparseResidency4Samples :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseResidency8Samples"+  vkSparseResidency8Samples :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseResidency16Samples"+  vkSparseResidency16Samples :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkSparseResidencyAliased"+  vkSparseResidencyAliased :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkVariableMultisampleRate"+  vkVariableMultisampleRate :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures" "vkInheritedQueries"+  vkInheritedQueries :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceFeatures where+  sizeOf ~_ = 220+  alignment ~_ = 4+  peek ptr = VkPhysicalDeviceFeatures <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 4)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 12)+                                      <*> peek (ptr `plusPtr` 16)+                                      <*> peek (ptr `plusPtr` 20)+                                      <*> peek (ptr `plusPtr` 24)+                                      <*> peek (ptr `plusPtr` 28)+                                      <*> peek (ptr `plusPtr` 32)+                                      <*> peek (ptr `plusPtr` 36)+                                      <*> peek (ptr `plusPtr` 40)+                                      <*> peek (ptr `plusPtr` 44)+                                      <*> peek (ptr `plusPtr` 48)+                                      <*> peek (ptr `plusPtr` 52)+                                      <*> peek (ptr `plusPtr` 56)+                                      <*> peek (ptr `plusPtr` 60)+                                      <*> peek (ptr `plusPtr` 64)+                                      <*> peek (ptr `plusPtr` 68)+                                      <*> peek (ptr `plusPtr` 72)+                                      <*> peek (ptr `plusPtr` 76)+                                      <*> peek (ptr `plusPtr` 80)+                                      <*> peek (ptr `plusPtr` 84)+                                      <*> peek (ptr `plusPtr` 88)+                                      <*> peek (ptr `plusPtr` 92)+                                      <*> peek (ptr `plusPtr` 96)+                                      <*> peek (ptr `plusPtr` 100)+                                      <*> peek (ptr `plusPtr` 104)+                                      <*> peek (ptr `plusPtr` 108)+                                      <*> peek (ptr `plusPtr` 112)+                                      <*> peek (ptr `plusPtr` 116)+                                      <*> peek (ptr `plusPtr` 120)+                                      <*> peek (ptr `plusPtr` 124)+                                      <*> peek (ptr `plusPtr` 128)+                                      <*> peek (ptr `plusPtr` 132)+                                      <*> peek (ptr `plusPtr` 136)+                                      <*> peek (ptr `plusPtr` 140)+                                      <*> peek (ptr `plusPtr` 144)+                                      <*> peek (ptr `plusPtr` 148)+                                      <*> peek (ptr `plusPtr` 152)+                                      <*> peek (ptr `plusPtr` 156)+                                      <*> peek (ptr `plusPtr` 160)+                                      <*> peek (ptr `plusPtr` 164)+                                      <*> peek (ptr `plusPtr` 168)+                                      <*> peek (ptr `plusPtr` 172)+                                      <*> peek (ptr `plusPtr` 176)+                                      <*> peek (ptr `plusPtr` 180)+                                      <*> peek (ptr `plusPtr` 184)+                                      <*> peek (ptr `plusPtr` 188)+                                      <*> peek (ptr `plusPtr` 192)+                                      <*> peek (ptr `plusPtr` 196)+                                      <*> peek (ptr `plusPtr` 200)+                                      <*> peek (ptr `plusPtr` 204)+                                      <*> peek (ptr `plusPtr` 208)+                                      <*> peek (ptr `plusPtr` 212)+                                      <*> peek (ptr `plusPtr` 216)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkRobustBufferAccess (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 4) (vkFullDrawIndexUint32 (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 8) (vkImageCubeArray (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 12) (vkIndependentBlend (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 16) (vkGeometryShader (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 20) (vkTessellationShader (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 24) (vkSampleRateShading (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 28) (vkDualSrcBlend (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 32) (vkLogicOp (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 36) (vkMultiDrawIndirect (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 40) (vkDrawIndirectFirstInstance (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 44) (vkDepthClamp (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 48) (vkDepthBiasClamp (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 52) (vkFillModeNonSolid (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 56) (vkDepthBounds (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 60) (vkWideLines (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 64) (vkLargePoints (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 68) (vkAlphaToOne (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 72) (vkMultiViewport (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 76) (vkSamplerAnisotropy (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 80) (vkTextureCompressionETC2 (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 84) (vkTextureCompressionASTC_LDR (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 88) (vkTextureCompressionBC (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 92) (vkOcclusionQueryPrecise (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 96) (vkPipelineStatisticsQuery (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 100) (vkVertexPipelineStoresAndAtomics (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 104) (vkFragmentStoresAndAtomics (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 108) (vkShaderTessellationAndGeometryPointSize (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 112) (vkShaderImageGatherExtended (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 116) (vkShaderStorageImageExtendedFormats (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 120) (vkShaderStorageImageMultisample (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 124) (vkShaderStorageImageReadWithoutFormat (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 128) (vkShaderStorageImageWriteWithoutFormat (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 132) (vkShaderUniformBufferArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 136) (vkShaderSampledImageArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 140) (vkShaderStorageBufferArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 144) (vkShaderStorageImageArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 148) (vkShaderClipDistance (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 152) (vkShaderCullDistance (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 156) (vkShaderFloat64 (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 160) (vkShaderInt64 (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 164) (vkShaderInt16 (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 168) (vkShaderResourceResidency (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 172) (vkShaderResourceMinLod (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 176) (vkSparseBinding (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 180) (vkSparseResidencyBuffer (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 184) (vkSparseResidencyImage2D (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 188) (vkSparseResidencyImage3D (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 192) (vkSparseResidency2Samples (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 196) (vkSparseResidency4Samples (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 200) (vkSparseResidency8Samples (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 204) (vkSparseResidency16Samples (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 208) (vkSparseResidencyAliased (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 212) (vkVariableMultisampleRate (poked :: VkPhysicalDeviceFeatures))+                *> poke (ptr `plusPtr` 216) (vkInheritedQueries (poked :: VkPhysicalDeviceFeatures))+-- | VkPhysicalDeviceSparseProperties - Structure specifying physical device+-- sparse memory properties+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkPhysicalDeviceProperties'+data VkPhysicalDeviceSparseProperties = VkPhysicalDeviceSparseProperties+  { -- No documentation found for Nested "VkPhysicalDeviceSparseProperties" "vkResidencyStandard2DBlockShape"+  vkResidencyStandard2DBlockShape :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceSparseProperties" "vkResidencyStandard2DMultisampleBlockShape"+  vkResidencyStandard2DMultisampleBlockShape :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceSparseProperties" "vkResidencyStandard3DBlockShape"+  vkResidencyStandard3DBlockShape :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceSparseProperties" "vkResidencyAlignedMipSize"+  vkResidencyAlignedMipSize :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceSparseProperties" "vkResidencyNonResidentStrict"+  vkResidencyNonResidentStrict :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceSparseProperties where+  sizeOf ~_ = 20+  alignment ~_ = 4+  peek ptr = VkPhysicalDeviceSparseProperties <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 4)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 12)+                                              <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkResidencyStandard2DBlockShape (poked :: VkPhysicalDeviceSparseProperties))+                *> poke (ptr `plusPtr` 4) (vkResidencyStandard2DMultisampleBlockShape (poked :: VkPhysicalDeviceSparseProperties))+                *> poke (ptr `plusPtr` 8) (vkResidencyStandard3DBlockShape (poked :: VkPhysicalDeviceSparseProperties))+                *> poke (ptr `plusPtr` 12) (vkResidencyAlignedMipSize (poked :: VkPhysicalDeviceSparseProperties))+                *> poke (ptr `plusPtr` 16) (vkResidencyNonResidentStrict (poked :: VkPhysicalDeviceSparseProperties))+-- | VkPhysicalDeviceLimits - Structure reporting implementation-dependent+-- physical device limits+--+-- = Members+-- #_members#+--+-- -   @maxImageDimension1D@ is the maximum dimension (@width@) supported+--     for all images created with an @imageType@ of @VK_IMAGE_TYPE_1D@.+--+-- -   @maxImageDimension2D@ is the maximum dimension (@width@ or @height@)+--     supported for all images created with an @imageType@ of+--     @VK_IMAGE_TYPE_2D@ and without @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@+--     set in @flags@.+--+-- -   @maxImageDimension3D@ is the maximum dimension (@width@, @height@,+--     or @depth@) supported for all images created with an @imageType@ of+--     @VK_IMAGE_TYPE_3D@.+--+-- -   @maxImageDimensionCube@ is the maximum dimension (@width@ or+--     @height@) supported for all images created with an @imageType@ of+--     @VK_IMAGE_TYPE_2D@ and with @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@+--     set in @flags@.+--+-- -   @maxImageArrayLayers@ is the maximum number of layers+--     (@arrayLayers@) for an image.+--+-- -   @maxTexelBufferElements@ is the maximum number of addressable texels+--     for a buffer view created on a buffer which was created with the+--     @VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT@ or+--     @VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT@ set in the @usage@ member+--     of the @VkBufferCreateInfo@ structure.+--+-- -   @maxUniformBufferRange@ is the maximum value that /can/ be specified+--     in the @range@ member of any+--     'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo'+--     structures passed to a call to+--     'Graphics.Vulkan.Core10.DescriptorSet.vkUpdateDescriptorSets' for+--     descriptors of type @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@.+--+-- -   @maxStorageBufferRange@ is the maximum value that /can/ be specified+--     in the @range@ member of any+--     'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo'+--     structures passed to a call to+--     'Graphics.Vulkan.Core10.DescriptorSet.vkUpdateDescriptorSets' for+--     descriptors of type @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@.+--+-- -   @maxPushConstantsSize@ is the maximum size, in bytes, of the pool of+--     push constant memory. For each of the push constant ranges indicated+--     by the @pPushConstantRanges@ member of the+--     @VkPipelineLayoutCreateInfo@ structure, (@offset@ + @size@) /must/+--     be less than or equal to this limit.+--+-- -   @maxMemoryAllocationCount@ is the maximum number of device memory+--     allocations, as created by+--     'Graphics.Vulkan.Core10.Memory.vkAllocateMemory', which /can/+--     simultaneously exist.+--+-- -   @maxSamplerAllocationCount@ is the maximum number of sampler+--     objects, as created by+--     'Graphics.Vulkan.Core10.Sampler.vkCreateSampler', which /can/+--     simultaneously exist on a device.+--+-- -   @bufferImageGranularity@ is the granularity, in bytes, at which+--     buffer or linear image resources, and optimal image resources /can/+--     be bound to adjacent offsets in the same @VkDeviceMemory@ object+--     without aliasing. See+--     <{html_spec_relative}#resources-bufferimagegranularity Buffer-Image Granularity>+--     for more details.+--+-- -   @sparseAddressSpaceSize@ is the total amount of address space+--     available, in bytes, for sparse memory resources. This is an upper+--     bound on the sum of the size of all sparse resources, regardless of+--     whether any memory is bound to them.+--+-- -   @maxBoundDescriptorSets@ is the maximum number of descriptor sets+--     that /can/ be simultaneously used by a pipeline. All @DescriptorSet@+--     decorations in shader modules /must/ have a value less than+--     @maxBoundDescriptorSets@. See+--     <{html_spec_relative}#descriptorsets-sets {html_spec_relative}#descriptorsets-sets>.+--+-- -   @maxPerStageDescriptorSamplers@ is the maximum number of samplers+--     that /can/ be accessible to a single shader stage in a pipeline+--     layout. Descriptors with a type of @VK_DESCRIPTOR_TYPE_SAMPLER@ or+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@ count against this+--     limit. A descriptor is accessible to a shader stage when the+--     @stageFlags@ member of the @VkDescriptorSetLayoutBinding@ structure+--     has the bit for that shader stage set. See+--     <{html_spec_relative}#descriptorsets-sampler {html_spec_relative}#descriptorsets-sampler>+--     and+--     <{html_spec_relative}#descriptorsets-combinedimagesampler {html_spec_relative}#descriptorsets-combinedimagesampler>.+--+-- -   @maxPerStageDescriptorUniformBuffers@ is the maximum number of+--     uniform buffers that /can/ be accessible to a single shader stage in+--     a pipeline layout. Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ count against this+--     limit. A descriptor is accessible to a shader stage when the+--     @stageFlags@ member of the @VkDescriptorSetLayoutBinding@ structure+--     has the bit for that shader stage set. See+--     <{html_spec_relative}#descriptorsets-uniformbuffer {html_spec_relative}#descriptorsets-uniformbuffer>+--     and+--     <{html_spec_relative}#descriptorsets-uniformbufferdynamic {html_spec_relative}#descriptorsets-uniformbufferdynamic>.+--+-- -   @maxPerStageDescriptorStorageBuffers@ is the maximum number of+--     storage buffers that /can/ be accessible to a single shader stage in+--     a pipeline layout. Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ count against this+--     limit. A descriptor is accessible to a pipeline shader stage when+--     the @stageFlags@ member of the @VkDescriptorSetLayoutBinding@+--     structure has the bit for that shader stage set. See+--     <{html_spec_relative}#descriptorsets-storagebuffer {html_spec_relative}#descriptorsets-storagebuffer>+--     and+--     <{html_spec_relative}#descriptorsets-storagebufferdynamic {html_spec_relative}#descriptorsets-storagebufferdynamic>.+--+-- -   @maxPerStageDescriptorSampledImages@ is the maximum number of+--     sampled images that /can/ be accessible to a single shader stage in+--     a pipeline layout. Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@, or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ count against this limit.+--     A descriptor is accessible to a pipeline shader stage when the+--     @stageFlags@ member of the @VkDescriptorSetLayoutBinding@ structure+--     has the bit for that shader stage set. See+--     <{html_spec_relative}#descriptorsets-combinedimagesampler {html_spec_relative}#descriptorsets-combinedimagesampler>,+--     <{html_spec_relative}#descriptorsets-sampledimage {html_spec_relative}#descriptorsets-sampledimage>,+--     and+--     <{html_spec_relative}#descriptorsets-uniformtexelbuffer {html_spec_relative}#descriptorsets-uniformtexelbuffer>.+--+-- -   @maxPerStageDescriptorStorageImages@ is the maximum number of+--     storage images that /can/ be accessible to a single shader stage in+--     a pipeline layout. Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, or+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ count against this limit.+--     A descriptor is accessible to a pipeline shader stage when the+--     @stageFlags@ member of the @VkDescriptorSetLayoutBinding@ structure+--     has the bit for that shader stage set. See+--     <{html_spec_relative}#descriptorsets-storageimage {html_spec_relative}#descriptorsets-storageimage>,+--     and+--     <{html_spec_relative}#descriptorsets-storagetexelbuffer {html_spec_relative}#descriptorsets-storagetexelbuffer>.+--+-- -   @maxPerStageDescriptorInputAttachments@ is the maximum number of+--     input attachments that /can/ be accessible to a single shader stage+--     in a pipeline layout. Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ count against this limit. A+--     descriptor is accessible to a pipeline shader stage when the+--     @stageFlags@ member of the @VkDescriptorSetLayoutBinding@ structure+--     has the bit for that shader stage set. These are only supported for+--     the fragment stage. See+--     <{html_spec_relative}#descriptorsets-inputattachment {html_spec_relative}#descriptorsets-inputattachment>.+--+-- -   @maxPerStageResources@ is the maximum number of resources that /can/+--     be accessible to a single shader stage in a pipeline layout.+--     Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@,+--     @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@,+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@,+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@, or+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ count against this limit. For+--     the fragment shader stage the framebuffer color attachments also+--     count against this limit.+--+-- -   @maxDescriptorSetSamplers@ is the maximum number of samplers that+--     /can/ be included in descriptor bindings in a pipeline layout across+--     all pipeline shader stages and descriptor set numbers. Descriptors+--     with a type of @VK_DESCRIPTOR_TYPE_SAMPLER@ or+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@ count against this+--     limit. See+--     <{html_spec_relative}#descriptorsets-sampler {html_spec_relative}#descriptorsets-sampler>+--     and+--     <{html_spec_relative}#descriptorsets-combinedimagesampler {html_spec_relative}#descriptorsets-combinedimagesampler>.+--+-- -   @maxDescriptorSetUniformBuffers@ is the maximum number of uniform+--     buffers that /can/ be included in descriptor bindings in a pipeline+--     layout across all pipeline shader stages and descriptor set numbers.+--     Descriptors with a type of @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ count against this+--     limit. See+--     <{html_spec_relative}#descriptorsets-uniformbuffer {html_spec_relative}#descriptorsets-uniformbuffer>+--     and+--     <{html_spec_relative}#descriptorsets-uniformbufferdynamic {html_spec_relative}#descriptorsets-uniformbufferdynamic>.+--+-- -   @maxDescriptorSetUniformBuffersDynamic@ is the maximum number of+--     dynamic uniform buffers that /can/ be included in descriptor+--     bindings in a pipeline layout across all pipeline shader stages and+--     descriptor set numbers. Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ count against this+--     limit. See+--     <{html_spec_relative}#descriptorsets-uniformbufferdynamic {html_spec_relative}#descriptorsets-uniformbufferdynamic>.+--+-- -   @maxDescriptorSetStorageBuffers@ is the maximum number of storage+--     buffers that /can/ be included in descriptor bindings in a pipeline+--     layout across all pipeline shader stages and descriptor set numbers.+--     Descriptors with a type of @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ count against this+--     limit. See+--     <{html_spec_relative}#descriptorsets-storagebuffer {html_spec_relative}#descriptorsets-storagebuffer>+--     and+--     <{html_spec_relative}#descriptorsets-storagebufferdynamic {html_spec_relative}#descriptorsets-storagebufferdynamic>.+--+-- -   @maxDescriptorSetStorageBuffersDynamic@ is the maximum number of+--     dynamic storage buffers that /can/ be included in descriptor+--     bindings in a pipeline layout across all pipeline shader stages and+--     descriptor set numbers. Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ count against this+--     limit. See+--     <{html_spec_relative}#descriptorsets-storagebufferdynamic {html_spec_relative}#descriptorsets-storagebufferdynamic>.+--+-- -   @maxDescriptorSetSampledImages@ is the maximum number of sampled+--     images that /can/ be included in descriptor bindings in a pipeline+--     layout across all pipeline shader stages and descriptor set numbers.+--     Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@, or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ count against this limit.+--     See+--     <{html_spec_relative}#descriptorsets-combinedimagesampler {html_spec_relative}#descriptorsets-combinedimagesampler>,+--     <{html_spec_relative}#descriptorsets-sampledimage {html_spec_relative}#descriptorsets-sampledimage>,+--     and+--     <{html_spec_relative}#descriptorsets-uniformtexelbuffer {html_spec_relative}#descriptorsets-uniformtexelbuffer>.+--+-- -   @maxDescriptorSetStorageImages@ is the maximum number of storage+--     images that /can/ be included in descriptor bindings in a pipeline+--     layout across all pipeline shader stages and descriptor set numbers.+--     Descriptors with a type of @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, or+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ count against this limit.+--     See+--     <{html_spec_relative}#descriptorsets-storageimage {html_spec_relative}#descriptorsets-storageimage>,+--     and+--     <{html_spec_relative}#descriptorsets-storagetexelbuffer {html_spec_relative}#descriptorsets-storagetexelbuffer>.+--+-- -   @maxDescriptorSetInputAttachments@ is the maximum number of input+--     attachments that /can/ be included in descriptor bindings in a+--     pipeline layout across all pipeline shader stages and descriptor set+--     numbers. Descriptors with a type of+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ count against this limit. See+--     <{html_spec_relative}#descriptorsets-inputattachment {html_spec_relative}#descriptorsets-inputattachment>.+--+-- -   @maxVertexInputAttributes@ is the maximum number of vertex input+--     attributes that /can/ be specified for a graphics pipeline. These+--     are described in the array of @VkVertexInputAttributeDescription@+--     structures that are provided at graphics pipeline creation time via+--     the @pVertexAttributeDescriptions@ member of the+--     @VkPipelineVertexInputStateCreateInfo@ structure. See+--     <{html_spec_relative}#fxvertex-attrib {html_spec_relative}#fxvertex-attrib>+--     and+--     <{html_spec_relative}#fxvertex-input {html_spec_relative}#fxvertex-input>.+--+-- -   @maxVertexInputBindings@ is the maximum number of vertex buffers+--     that /can/ be specified for providing vertex attributes to a+--     graphics pipeline. These are described in the array of+--     @VkVertexInputBindingDescription@ structures that are provided at+--     graphics pipeline creation time via the @pVertexBindingDescriptions@+--     member of the @VkPipelineVertexInputStateCreateInfo@ structure. The+--     @binding@ member of @VkVertexInputBindingDescription@ /must/ be less+--     than this limit. See+--     <{html_spec_relative}#fxvertex-input {html_spec_relative}#fxvertex-input>.+--+-- -   @maxVertexInputAttributeOffset@ is the maximum vertex input+--     attribute offset that /can/ be added to the vertex input binding+--     stride. The @offset@ member of the+--     @VkVertexInputAttributeDescription@ structure /must/ be less than or+--     equal to this limit. See+--     <{html_spec_relative}#fxvertex-input {html_spec_relative}#fxvertex-input>.+--+-- -   @maxVertexInputBindingStride@ is the maximum vertex input binding+--     stride that /can/ be specified in a vertex input binding. The+--     @stride@ member of the @VkVertexInputBindingDescription@ structure+--     /must/ be less than or equal to this limit. See+--     <{html_spec_relative}#fxvertex-input {html_spec_relative}#fxvertex-input>.+--+-- -   @maxVertexOutputComponents@ is the maximum number of components of+--     output variables which /can/ be output by a vertex shader. See+--     <{html_spec_relative}#shaders-vertex {html_spec_relative}#shaders-vertex>.+--+-- -   @maxTessellationGenerationLevel@ is the maximum tessellation+--     generation level supported by the fixed-function tessellation+--     primitive generator. See+--     <{html_spec_relative}#tessellation {html_spec_relative}#tessellation>.+--+-- -   @maxTessellationPatchSize@ is the maximum patch size, in vertices,+--     of patches that /can/ be processed by the tessellation control+--     shader and tessellation primitive generator. The+--     @patchControlPoints@ member of the+--     @VkPipelineTessellationStateCreateInfo@ structure specified at+--     pipeline creation time and the value provided in the+--     @OutputVertices@ execution mode of shader modules /must/ be less+--     than or equal to this limit. See+--     <{html_spec_relative}#tessellation {html_spec_relative}#tessellation>.+--+-- -   @maxTessellationControlPerVertexInputComponents@ is the maximum+--     number of components of input variables which /can/ be provided as+--     per-vertex inputs to the tessellation control shader stage.+--+-- -   @maxTessellationControlPerVertexOutputComponents@ is the maximum+--     number of components of per-vertex output variables which /can/ be+--     output from the tessellation control shader stage.+--+-- -   @maxTessellationControlPerPatchOutputComponents@ is the maximum+--     number of components of per-patch output variables which /can/ be+--     output from the tessellation control shader stage.+--+-- -   @maxTessellationControlTotalOutputComponents@ is the maximum total+--     number of components of per-vertex and per-patch output variables+--     which /can/ be output from the tessellation control shader stage.+--+-- -   @maxTessellationEvaluationInputComponents@ is the maximum number of+--     components of input variables which /can/ be provided as per-vertex+--     inputs to the tessellation evaluation shader stage.+--+-- -   @maxTessellationEvaluationOutputComponents@ is the maximum number of+--     components of per-vertex output variables which /can/ be output from+--     the tessellation evaluation shader stage.+--+-- -   @maxGeometryShaderInvocations@ is the maximum invocation count+--     supported for instanced geometry shaders. The value provided in the+--     @Invocations@ execution mode of shader modules /must/ be less than+--     or equal to this limit. See+--     <{html_spec_relative}#geometry {html_spec_relative}#geometry>.+--+-- -   @maxGeometryInputComponents@ is the maximum number of components of+--     input variables which /can/ be provided as inputs to the geometry+--     shader stage.+--+-- -   @maxGeometryOutputComponents@ is the maximum number of components of+--     output variables which /can/ be output from the geometry shader+--     stage.+--+-- -   @maxGeometryOutputVertices@ is the maximum number of vertices which+--     /can/ be emitted by any geometry shader.+--+-- -   @maxGeometryTotalOutputComponents@ is the maximum total number of+--     components of output, across all emitted vertices, which /can/ be+--     output from the geometry shader stage.+--+-- -   @maxFragmentInputComponents@ is the maximum number of components of+--     input variables which /can/ be provided as inputs to the fragment+--     shader stage.+--+-- -   @maxFragmentOutputAttachments@ is the maximum number of output+--     attachments which /can/ be written to by the fragment shader stage.+--+-- -   @maxFragmentDualSrcAttachments@ is the maximum number of output+--     attachments which /can/ be written to by the fragment shader stage+--     when blending is enabled and one of the dual source blend modes is+--     in use. See+--     <{html_spec_relative}#framebuffer-dsb {html_spec_relative}#framebuffer-dsb>+--     and+--     <{html_spec_relative}#features-features-dualSrcBlend dualSrcBlend>.+--+-- -   @maxFragmentCombinedOutputResources@ is the total number of storage+--     buffers, storage images, and output buffers which /can/ be used in+--     the fragment shader stage.+--+-- -   @maxComputeSharedMemorySize@ is the maximum total storage size, in+--     bytes, of all variables declared with the @WorkgroupLocal@ storage+--     class in shader modules (or with the @shared@ storage qualifier in+--     GLSL) in the compute shader stage.+--+-- -   @maxComputeWorkGroupCount@[3] is the maximum number of local+--     workgroups that /can/ be dispatched by a single dispatch command.+--     These three values represent the maximum number of local workgroups+--     for the X, Y, and Z dimensions, respectively. The workgroup count+--     parameters to the dispatch commands /must/ be less than or equal to+--     the corresponding limit. See+--     <{html_spec_relative}#dispatch {html_spec_relative}#dispatch>.+--+-- -   @maxComputeWorkGroupInvocations@ is the maximum total number of+--     compute shader invocations in a single local workgroup. The product+--     of the X, Y, and Z sizes as specified by the @LocalSize@ execution+--     mode in shader modules and by the object decorated by the+--     @WorkgroupSize@ decoration /must/ be less than or equal to this+--     limit.+--+-- -   @maxComputeWorkGroupSize@[3] is the maximum size of a local compute+--     workgroup, per dimension. These three values represent the maximum+--     local workgroup size in the X, Y, and Z dimensions, respectively.+--     The @x@, @y@, and @z@ sizes specified by the @LocalSize@ execution+--     mode and by the object decorated by the @WorkgroupSize@ decoration+--     in shader modules /must/ be less than or equal to the corresponding+--     limit.+--+-- -   @subPixelPrecisionBits@ is the number of bits of subpixel precision+--     in framebuffer coordinates xf and yf. See+--     <{html_spec_relative}#primsrast {html_spec_relative}#primsrast>.+--+-- -   @subTexelPrecisionBits@ is the number of bits of precision in the+--     division along an axis of an image used for minification and+--     magnification filters. 2@subTexelPrecisionBits@ is the actual number+--     of divisions along each axis of the image represented. Sub-texel+--     values calculated during image sampling will snap to these locations+--     when generating the filtered results.+--+-- -   @mipmapPrecisionBits@ is the number of bits of division that the LOD+--     calculation for mipmap fetching get snapped to when determining the+--     contribution from each mip level to the mip filtered results.+--     2@mipmapPrecisionBits@ is the actual number of divisions.+--+--     __Note__+--+--     For example, if this value is 2 bits then when linearly filtering+--     between two levels, each level could: contribute: 0%, 33%, 66%, or+--     100% (this is just an example and the amount of contribution+--     /should/ be covered by different equations in the spec).+--+-- -   @maxDrawIndexedIndexValue@ is the maximum index value that /can/ be+--     used for indexed draw calls when using 32-bit indices. This excludes+--     the primitive restart index value of 0xFFFFFFFF. See+--     <{html_spec_relative}#features-features-fullDrawIndexUint32 fullDrawIndexUint32>.+--+-- -   @maxDrawIndirectCount@ is the maximum draw count that is supported+--     for indirect draw calls. See+--     <{html_spec_relative}#features-features-multiDrawIndirect multiDrawIndirect>.+--+-- -   @maxSamplerLodBias@ is the maximum absolute sampler LOD bias. The+--     sum of the @mipLodBias@ member of the @VkSamplerCreateInfo@+--     structure and the @Bias@ operand of image sampling operations in+--     shader modules (or 0 if no @Bias@ operand is provided to an image+--     sampling operation) are clamped to the range+--     [-@maxSamplerLodBias@,+@maxSamplerLodBias@]. See+--     <{html_spec_relative}#samplers-mipLodBias {html_spec_relative}#samplers-mipLodBias>.+--+-- -   @maxSamplerAnisotropy@ is the maximum degree of sampler anisotropy.+--     The maximum degree of anisotropic filtering used for an image+--     sampling operation is the minimum of the @maxAnisotropy@ member of+--     the @VkSamplerCreateInfo@ structure and this limit. See+--     <{html_spec_relative}#samplers-maxAnisotropy {html_spec_relative}#samplers-maxAnisotropy>.+--+-- -   @maxViewports@ is the maximum number of active viewports. The+--     @viewportCount@ member of the @VkPipelineViewportStateCreateInfo@+--     structure that is provided at pipeline creation /must/ be less than+--     or equal to this limit.+--+-- -   @maxViewportDimensions@[2] are the maximum viewport dimensions in+--     the X (width) and Y (height) dimensions, respectively. The maximum+--     viewport dimensions /must/ be greater than or equal to the largest+--     image which /can/ be created and used as a framebuffer attachment.+--     See+--     <{html_spec_relative}#vertexpostproc-viewport Controlling the Viewport>.+--+-- -   @viewportBoundsRange@[2] is the [minimum, maximum] range that the+--     corners of a viewport /must/ be contained in. This range /must/ be+--     at least [-2 × @size@, 2 × @size@ - 1], where @size@ =+--     max(@maxViewportDimensions@[0], @maxViewportDimensions@[1]). See+--     <{html_spec_relative}#vertexpostproc-viewport Controlling the Viewport>.+--+--     __Note__+--+--     The intent of the @viewportBoundsRange@ limit is to allow a maximum+--     sized viewport to be arbitrarily shifted relative to the output+--     target as long as at least some portion intersects. This would give+--     a bounds limit of [-@size@ + 1, 2 × @size@ - 1] which would allow+--     all possible non-empty-set intersections of the output target and+--     the viewport. Since these numbers are typically powers of two,+--     picking the signed number range using the smallest possible number+--     of bits ends up with the specified range.+--+-- -   @viewportSubPixelBits@ is the number of bits of subpixel precision+--     for viewport bounds. The subpixel precision that floating-point+--     viewport bounds are interpreted at is given by this limit.+--+-- -   @minMemoryMapAlignment@ is the minimum /required/ alignment, in+--     bytes, of host visible memory allocations within the host address+--     space. When mapping a memory allocation with+--     'Graphics.Vulkan.Core10.Memory.vkMapMemory', subtracting @offset@+--     bytes from the returned pointer will always produce an integer+--     multiple of this limit. See+--     <{html_spec_relative}#memory-device-hostaccess {html_spec_relative}#memory-device-hostaccess>.+--+-- -   @minTexelBufferOffsetAlignment@ is the minimum /required/ alignment,+--     in bytes, for the @offset@ member of the @VkBufferViewCreateInfo@+--     structure for texel buffers. When a buffer view is created for a+--     buffer which was created with+--     @VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT@ or+--     @VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT@ set in the @usage@ member+--     of the @VkBufferCreateInfo@ structure, the @offset@ /must/ be an+--     integer multiple of this limit.+--+-- -   @minUniformBufferOffsetAlignment@ is the minimum /required/+--     alignment, in bytes, for the @offset@ member of the+--     @VkDescriptorBufferInfo@ structure for uniform buffers. When a+--     descriptor of type @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ is updated, the @offset@+--     /must/ be an integer multiple of this limit. Similarly, dynamic+--     offsets for uniform buffers /must/ be multiples of this limit.+--+-- -   @minStorageBufferOffsetAlignment@ is the minimum /required/+--     alignment, in bytes, for the @offset@ member of the+--     @VkDescriptorBufferInfo@ structure for storage buffers. When a+--     descriptor of type @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ is updated, the @offset@+--     /must/ be an integer multiple of this limit. Similarly, dynamic+--     offsets for storage buffers /must/ be multiples of this limit.+--+-- -   @minTexelOffset@ is the minimum offset value for the @ConstOffset@+--     image operand of any of the @OpImageSample@* or @OpImageFetch@*+--     image instructions.+--+-- -   @maxTexelOffset@ is the maximum offset value for the @ConstOffset@+--     image operand of any of the @OpImageSample@* or @OpImageFetch@*+--     image instructions.+--+-- -   @minTexelGatherOffset@ is the minimum offset value for the @Offset@+--     or @ConstOffsets@ image operands of any of the @OpImage@*@Gather@+--     image instructions.+--+-- -   @maxTexelGatherOffset@ is the maximum offset value for the @Offset@+--     or @ConstOffsets@ image operands of any of the @OpImage@*@Gather@+--     image instructions.+--+-- -   @minInterpolationOffset@ is the minimum negative offset value for+--     the @offset@ operand of the @InterpolateAtOffset@ extended+--     instruction.+--+-- -   @maxInterpolationOffset@ is the maximum positive offset value for+--     the @offset@ operand of the @InterpolateAtOffset@ extended+--     instruction.+--+-- -   @subPixelInterpolationOffsetBits@ is the number of subpixel+--     fractional bits that the @x@ and @y@ offsets to the+--     @InterpolateAtOffset@ extended instruction /may/ be rounded to as+--     fixed-point values.+--+-- -   @maxFramebufferWidth@ is the maximum width for a framebuffer. The+--     @width@ member of the @VkFramebufferCreateInfo@ structure /must/ be+--     less than or equal to this limit.+--+-- -   @maxFramebufferHeight@ is the maximum height for a framebuffer. The+--     @height@ member of the @VkFramebufferCreateInfo@ structure /must/ be+--     less than or equal to this limit.+--+-- -   @maxFramebufferLayers@ is the maximum layer count for a layered+--     framebuffer. The @layers@ member of the @VkFramebufferCreateInfo@+--     structure /must/ be less than or equal to this limit.+--+-- -   @framebufferColorSampleCounts@ is a bitmask1 of+--     'VkSampleCountFlagBits' indicating the color sample counts that are+--     supported for all framebuffer color attachments with floating- or+--     fixed-point formats. There is no limit that specifies the color+--     sample counts that are supported for all color attachments with+--     integer formats.+--+-- -   @framebufferDepthSampleCounts@ is a bitmask1 of+--     'VkSampleCountFlagBits' indicating the supported depth sample counts+--     for all framebuffer depth\/stencil attachments, when the format+--     includes a depth component.+--+-- -   @framebufferStencilSampleCounts@ is a bitmask1 of+--     'VkSampleCountFlagBits' indicating the supported stencil sample+--     counts for all framebuffer depth\/stencil attachments, when the+--     format includes a stencil component.+--+-- -   @framebufferNoAttachmentsSampleCounts@ is a bitmask1 of+--     'VkSampleCountFlagBits' indicating the supported sample counts for a+--     framebuffer with no attachments.+--+-- -   @maxColorAttachments@ is the maximum number of color attachments+--     that /can/ be used by a subpass in a render pass. The+--     @colorAttachmentCount@ member of the @VkSubpassDescription@+--     structure /must/ be less than or equal to this limit.+--+-- -   @sampledImageColorSampleCounts@ is a bitmask1 of+--     'VkSampleCountFlagBits' indicating the sample counts supported for+--     all 2D images created with @VK_IMAGE_TILING_OPTIMAL@, @usage@+--     containing @VK_IMAGE_USAGE_SAMPLED_BIT@, and a non-integer color+--     format.+--+-- -   @sampledImageIntegerSampleCounts@ is a bitmask1 of+--     'VkSampleCountFlagBits' indicating the sample counts supported for+--     all 2D images created with @VK_IMAGE_TILING_OPTIMAL@, @usage@+--     containing @VK_IMAGE_USAGE_SAMPLED_BIT@, and an integer color+--     format.+--+-- -   @sampledImageDepthSampleCounts@ is a bitmask1 of+--     'VkSampleCountFlagBits' indicating the sample counts supported for+--     all 2D images created with @VK_IMAGE_TILING_OPTIMAL@, @usage@+--     containing @VK_IMAGE_USAGE_SAMPLED_BIT@, and a depth format.+--+-- -   @sampledImageStencilSampleCounts@ is a bitmask1 of+--     'VkSampleCountFlagBits' indicating the sample supported for all 2D+--     images created with @VK_IMAGE_TILING_OPTIMAL@, @usage@ containing+--     @VK_IMAGE_USAGE_SAMPLED_BIT@, and a stencil format.+--+-- -   @storageImageSampleCounts@ is a bitmask1 of 'VkSampleCountFlagBits'+--     indicating the sample counts supported for all 2D images created+--     with @VK_IMAGE_TILING_OPTIMAL@, and @usage@ containing+--     @VK_IMAGE_USAGE_STORAGE_BIT@.+--+-- -   @maxSampleMaskWords@ is the maximum number of array elements of a+--     variable decorated with the @SampleMask@ built-in decoration.+--+-- -   @timestampComputeAndGraphics@ specifies support for timestamps on+--     all graphics and compute queues. If this limit is set to @VK_TRUE@,+--     all queues that advertise the @VK_QUEUE_GRAPHICS_BIT@ or+--     @VK_QUEUE_COMPUTE_BIT@ in the+--     @VkQueueFamilyProperties@::@queueFlags@ support+--     @VkQueueFamilyProperties@::@timestampValidBits@ of at least 36. See+--     <{html_spec_relative}#queries-timestamps Timestamp Queries>.+--+-- -   @timestampPeriod@ is the number of nanoseconds /required/ for a+--     timestamp query to be incremented by 1. See+--     <{html_spec_relative}#queries-timestamps Timestamp Queries>.+--+-- -   @maxClipDistances@ is the maximum number of clip distances that+--     /can/ be used in a single shader stage. The size of any array+--     declared with the @ClipDistance@ built-in decoration in a shader+--     module /must/ be less than or equal to this limit.+--+-- -   @maxCullDistances@ is the maximum number of cull distances that+--     /can/ be used in a single shader stage. The size of any array+--     declared with the @CullDistance@ built-in decoration in a shader+--     module /must/ be less than or equal to this limit.+--+-- -   @maxCombinedClipAndCullDistances@ is the maximum combined number of+--     clip and cull distances that /can/ be used in a single shader stage.+--     The sum of the sizes of any pair of arrays declared with the+--     @ClipDistance@ and @CullDistance@ built-in decoration used by a+--     single shader stage in a shader module /must/ be less than or equal+--     to this limit.+--+-- -   @discreteQueuePriorities@ is the number of discrete priorities that+--     /can/ be assigned to a queue based on the value of each member of+--     @VkDeviceQueueCreateInfo@::@pQueuePriorities@. This /must/ be at+--     least 2, and levels /must/ be spread evenly over the range, with at+--     least one level at 1.0, and another at 0.0. See+--     <{html_spec_relative}#devsandqueues-priority {html_spec_relative}#devsandqueues-priority>.+--+-- -   @pointSizeRange@[2] is the range [@minimum@,@maximum@] of supported+--     sizes for points. Values written to variables decorated with the+--     @PointSize@ built-in decoration are clamped to this range.+--+-- -   @lineWidthRange@[2] is the range [@minimum@,@maximum@] of supported+--     widths for lines. Values specified by the @lineWidth@ member of the+--     @VkPipelineRasterizationStateCreateInfo@ or the @lineWidth@+--     parameter to @vkCmdSetLineWidth@ are clamped to this range.+--+-- -   @pointSizeGranularity@ is the granularity of supported point sizes.+--     Not all point sizes in the range defined by @pointSizeRange@ are+--     supported. This limit specifies the granularity (or increment)+--     between successive supported point sizes.+--+-- -   @lineWidthGranularity@ is the granularity of supported line widths.+--     Not all line widths in the range defined by @lineWidthRange@ are+--     supported. This limit specifies the granularity (or increment)+--     between successive supported line widths.+--+-- -   @strictLines@ specifies whether lines are rasterized according to+--     the preferred method of rasterization. If set to @VK_FALSE@, lines+--     /may/ be rasterized under a relaxed set of rules. If set to+--     @VK_TRUE@, lines are rasterized as per the strict definition. See+--     <{html_spec_relative}#primsrast-lines-basic Basic Line Segment Rasterization>.+--+-- -   @standardSampleLocations@ specifies whether rasterization uses the+--     standard sample locations as documented in+--     <{html_spec_relative}#primsrast-multisampling Multisampling>. If set+--     to @VK_TRUE@, the implementation uses the documented sample+--     locations. If set to @VK_FALSE@, the implementation /may/ use+--     different sample locations.+--+-- -   @optimalBufferCopyOffsetAlignment@ is the optimal buffer offset+--     alignment in bytes for @vkCmdCopyBufferToImage@ and+--     @vkCmdCopyImageToBuffer@. The per texel alignment requirements are+--     enforced, but applications /should/ use the optimal alignment for+--     optimal performance and power use.+--+-- -   @optimalBufferCopyRowPitchAlignment@ is the optimal buffer row pitch+--     alignment in bytes for @vkCmdCopyBufferToImage@ and+--     @vkCmdCopyImageToBuffer@. Row pitch is the number of bytes between+--     texels with the same X coordinate in adjacent rows (Y coordinates+--     differ by one). The per texel alignment requirements are enforced,+--     but applications /should/ use the optimal alignment for optimal+--     performance and power use.+--+-- -   @nonCoherentAtomSize@ is the size and alignment in bytes that bounds+--     concurrent access to+--     <{html_spec_relative}#memory-device-hostaccess host-mapped device memory>.+--+-- = Description+-- #_description#+--+-- [1]+--     For all bitmasks of 'VkSampleCountFlagBits', the sample count limits+--     defined above represent the minimum supported sample counts for each+--     image type. Individual images /may/ support additional sample+--     counts, which are queried using+--     'vkGetPhysicalDeviceImageFormatProperties' as described in+--     <{html_spec_relative}#features-supported-sample-counts Supported Sample Counts>.+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, @VkDeviceSize@, 'VkPhysicalDeviceProperties',+-- 'VkSampleCountFlags'+data VkPhysicalDeviceLimits = VkPhysicalDeviceLimits+  { -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxImageDimension1D"+  vkMaxImageDimension1D :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxImageDimension2D"+  vkMaxImageDimension2D :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxImageDimension3D"+  vkMaxImageDimension3D :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxImageDimensionCube"+  vkMaxImageDimensionCube :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxImageArrayLayers"+  vkMaxImageArrayLayers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTexelBufferElements"+  vkMaxTexelBufferElements :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxUniformBufferRange"+  vkMaxUniformBufferRange :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxStorageBufferRange"+  vkMaxStorageBufferRange :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxPushConstantsSize"+  vkMaxPushConstantsSize :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxMemoryAllocationCount"+  vkMaxMemoryAllocationCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxSamplerAllocationCount"+  vkMaxSamplerAllocationCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkBufferImageGranularity"+  vkBufferImageGranularity :: VkDeviceSize+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkSparseAddressSpaceSize"+  vkSparseAddressSpaceSize :: VkDeviceSize+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxBoundDescriptorSets"+  vkMaxBoundDescriptorSets :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxPerStageDescriptorSamplers"+  vkMaxPerStageDescriptorSamplers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxPerStageDescriptorUniformBuffers"+  vkMaxPerStageDescriptorUniformBuffers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxPerStageDescriptorStorageBuffers"+  vkMaxPerStageDescriptorStorageBuffers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxPerStageDescriptorSampledImages"+  vkMaxPerStageDescriptorSampledImages :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxPerStageDescriptorStorageImages"+  vkMaxPerStageDescriptorStorageImages :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxPerStageDescriptorInputAttachments"+  vkMaxPerStageDescriptorInputAttachments :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxPerStageResources"+  vkMaxPerStageResources :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDescriptorSetSamplers"+  vkMaxDescriptorSetSamplers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDescriptorSetUniformBuffers"+  vkMaxDescriptorSetUniformBuffers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDescriptorSetUniformBuffersDynamic"+  vkMaxDescriptorSetUniformBuffersDynamic :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDescriptorSetStorageBuffers"+  vkMaxDescriptorSetStorageBuffers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDescriptorSetStorageBuffersDynamic"+  vkMaxDescriptorSetStorageBuffersDynamic :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDescriptorSetSampledImages"+  vkMaxDescriptorSetSampledImages :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDescriptorSetStorageImages"+  vkMaxDescriptorSetStorageImages :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDescriptorSetInputAttachments"+  vkMaxDescriptorSetInputAttachments :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxVertexInputAttributes"+  vkMaxVertexInputAttributes :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxVertexInputBindings"+  vkMaxVertexInputBindings :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxVertexInputAttributeOffset"+  vkMaxVertexInputAttributeOffset :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxVertexInputBindingStride"+  vkMaxVertexInputBindingStride :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxVertexOutputComponents"+  vkMaxVertexOutputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTessellationGenerationLevel"+  vkMaxTessellationGenerationLevel :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTessellationPatchSize"+  vkMaxTessellationPatchSize :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTessellationControlPerVertexInputComponents"+  vkMaxTessellationControlPerVertexInputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTessellationControlPerVertexOutputComponents"+  vkMaxTessellationControlPerVertexOutputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTessellationControlPerPatchOutputComponents"+  vkMaxTessellationControlPerPatchOutputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTessellationControlTotalOutputComponents"+  vkMaxTessellationControlTotalOutputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTessellationEvaluationInputComponents"+  vkMaxTessellationEvaluationInputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTessellationEvaluationOutputComponents"+  vkMaxTessellationEvaluationOutputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxGeometryShaderInvocations"+  vkMaxGeometryShaderInvocations :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxGeometryInputComponents"+  vkMaxGeometryInputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxGeometryOutputComponents"+  vkMaxGeometryOutputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxGeometryOutputVertices"+  vkMaxGeometryOutputVertices :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxGeometryTotalOutputComponents"+  vkMaxGeometryTotalOutputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxFragmentInputComponents"+  vkMaxFragmentInputComponents :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxFragmentOutputAttachments"+  vkMaxFragmentOutputAttachments :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxFragmentDualSrcAttachments"+  vkMaxFragmentDualSrcAttachments :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxFragmentCombinedOutputResources"+  vkMaxFragmentCombinedOutputResources :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxComputeSharedMemorySize"+  vkMaxComputeSharedMemorySize :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxComputeWorkGroupCount"+  vkMaxComputeWorkGroupCount :: Vector 3 Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxComputeWorkGroupInvocations"+  vkMaxComputeWorkGroupInvocations :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxComputeWorkGroupSize"+  vkMaxComputeWorkGroupSize :: Vector 3 Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkSubPixelPrecisionBits"+  vkSubPixelPrecisionBits :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkSubTexelPrecisionBits"+  vkSubTexelPrecisionBits :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMipmapPrecisionBits"+  vkMipmapPrecisionBits :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDrawIndexedIndexValue"+  vkMaxDrawIndexedIndexValue :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxDrawIndirectCount"+  vkMaxDrawIndirectCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxSamplerLodBias"+  vkMaxSamplerLodBias :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxSamplerAnisotropy"+  vkMaxSamplerAnisotropy :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxViewports"+  vkMaxViewports :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxViewportDimensions"+  vkMaxViewportDimensions :: Vector 2 Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkViewportBoundsRange"+  vkViewportBoundsRange :: Vector 2 CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkViewportSubPixelBits"+  vkViewportSubPixelBits :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMinMemoryMapAlignment"+  vkMinMemoryMapAlignment :: CSize+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMinTexelBufferOffsetAlignment"+  vkMinTexelBufferOffsetAlignment :: VkDeviceSize+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMinUniformBufferOffsetAlignment"+  vkMinUniformBufferOffsetAlignment :: VkDeviceSize+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMinStorageBufferOffsetAlignment"+  vkMinStorageBufferOffsetAlignment :: VkDeviceSize+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMinTexelOffset"+  vkMinTexelOffset :: Int32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTexelOffset"+  vkMaxTexelOffset :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMinTexelGatherOffset"+  vkMinTexelGatherOffset :: Int32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxTexelGatherOffset"+  vkMaxTexelGatherOffset :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMinInterpolationOffset"+  vkMinInterpolationOffset :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxInterpolationOffset"+  vkMaxInterpolationOffset :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkSubPixelInterpolationOffsetBits"+  vkSubPixelInterpolationOffsetBits :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxFramebufferWidth"+  vkMaxFramebufferWidth :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxFramebufferHeight"+  vkMaxFramebufferHeight :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxFramebufferLayers"+  vkMaxFramebufferLayers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkFramebufferColorSampleCounts"+  vkFramebufferColorSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkFramebufferDepthSampleCounts"+  vkFramebufferDepthSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkFramebufferStencilSampleCounts"+  vkFramebufferStencilSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkFramebufferNoAttachmentsSampleCounts"+  vkFramebufferNoAttachmentsSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxColorAttachments"+  vkMaxColorAttachments :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkSampledImageColorSampleCounts"+  vkSampledImageColorSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkSampledImageIntegerSampleCounts"+  vkSampledImageIntegerSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkSampledImageDepthSampleCounts"+  vkSampledImageDepthSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkSampledImageStencilSampleCounts"+  vkSampledImageStencilSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkStorageImageSampleCounts"+  vkStorageImageSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxSampleMaskWords"+  vkMaxSampleMaskWords :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkTimestampComputeAndGraphics"+  vkTimestampComputeAndGraphics :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkTimestampPeriod"+  vkTimestampPeriod :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxClipDistances"+  vkMaxClipDistances :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxCullDistances"+  vkMaxCullDistances :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkMaxCombinedClipAndCullDistances"+  vkMaxCombinedClipAndCullDistances :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkDiscreteQueuePriorities"+  vkDiscreteQueuePriorities :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkPointSizeRange"+  vkPointSizeRange :: Vector 2 CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkLineWidthRange"+  vkLineWidthRange :: Vector 2 CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkPointSizeGranularity"+  vkPointSizeGranularity :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkLineWidthGranularity"+  vkLineWidthGranularity :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkStrictLines"+  vkStrictLines :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkStandardSampleLocations"+  vkStandardSampleLocations :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkOptimalBufferCopyOffsetAlignment"+  vkOptimalBufferCopyOffsetAlignment :: VkDeviceSize+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkOptimalBufferCopyRowPitchAlignment"+  vkOptimalBufferCopyRowPitchAlignment :: VkDeviceSize+  , -- No documentation found for Nested "VkPhysicalDeviceLimits" "vkNonCoherentAtomSize"+  vkNonCoherentAtomSize :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceLimits where+  sizeOf ~_ = 504+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceLimits <$> peek (ptr `plusPtr` 0)+                                    <*> peek (ptr `plusPtr` 4)+                                    <*> peek (ptr `plusPtr` 8)+                                    <*> peek (ptr `plusPtr` 12)+                                    <*> peek (ptr `plusPtr` 16)+                                    <*> peek (ptr `plusPtr` 20)+                                    <*> peek (ptr `plusPtr` 24)+                                    <*> peek (ptr `plusPtr` 28)+                                    <*> peek (ptr `plusPtr` 32)+                                    <*> peek (ptr `plusPtr` 36)+                                    <*> peek (ptr `plusPtr` 40)+                                    <*> peek (ptr `plusPtr` 48)+                                    <*> peek (ptr `plusPtr` 56)+                                    <*> peek (ptr `plusPtr` 64)+                                    <*> peek (ptr `plusPtr` 68)+                                    <*> peek (ptr `plusPtr` 72)+                                    <*> peek (ptr `plusPtr` 76)+                                    <*> peek (ptr `plusPtr` 80)+                                    <*> peek (ptr `plusPtr` 84)+                                    <*> peek (ptr `plusPtr` 88)+                                    <*> peek (ptr `plusPtr` 92)+                                    <*> peek (ptr `plusPtr` 96)+                                    <*> peek (ptr `plusPtr` 100)+                                    <*> peek (ptr `plusPtr` 104)+                                    <*> peek (ptr `plusPtr` 108)+                                    <*> peek (ptr `plusPtr` 112)+                                    <*> peek (ptr `plusPtr` 116)+                                    <*> peek (ptr `plusPtr` 120)+                                    <*> peek (ptr `plusPtr` 124)+                                    <*> peek (ptr `plusPtr` 128)+                                    <*> peek (ptr `plusPtr` 132)+                                    <*> peek (ptr `plusPtr` 136)+                                    <*> peek (ptr `plusPtr` 140)+                                    <*> peek (ptr `plusPtr` 144)+                                    <*> peek (ptr `plusPtr` 148)+                                    <*> peek (ptr `plusPtr` 152)+                                    <*> peek (ptr `plusPtr` 156)+                                    <*> peek (ptr `plusPtr` 160)+                                    <*> peek (ptr `plusPtr` 164)+                                    <*> peek (ptr `plusPtr` 168)+                                    <*> peek (ptr `plusPtr` 172)+                                    <*> peek (ptr `plusPtr` 176)+                                    <*> peek (ptr `plusPtr` 180)+                                    <*> peek (ptr `plusPtr` 184)+                                    <*> peek (ptr `plusPtr` 188)+                                    <*> peek (ptr `plusPtr` 192)+                                    <*> peek (ptr `plusPtr` 196)+                                    <*> peek (ptr `plusPtr` 200)+                                    <*> peek (ptr `plusPtr` 204)+                                    <*> peek (ptr `plusPtr` 208)+                                    <*> peek (ptr `plusPtr` 212)+                                    <*> peek (ptr `plusPtr` 216)+                                    <*> peek (ptr `plusPtr` 220)+                                    <*> peek (ptr `plusPtr` 232)+                                    <*> peek (ptr `plusPtr` 236)+                                    <*> peek (ptr `plusPtr` 248)+                                    <*> peek (ptr `plusPtr` 252)+                                    <*> peek (ptr `plusPtr` 256)+                                    <*> peek (ptr `plusPtr` 260)+                                    <*> peek (ptr `plusPtr` 264)+                                    <*> peek (ptr `plusPtr` 268)+                                    <*> peek (ptr `plusPtr` 272)+                                    <*> peek (ptr `plusPtr` 276)+                                    <*> peek (ptr `plusPtr` 280)+                                    <*> peek (ptr `plusPtr` 288)+                                    <*> peek (ptr `plusPtr` 296)+                                    <*> peek (ptr `plusPtr` 304)+                                    <*> peek (ptr `plusPtr` 312)+                                    <*> peek (ptr `plusPtr` 320)+                                    <*> peek (ptr `plusPtr` 328)+                                    <*> peek (ptr `plusPtr` 336)+                                    <*> peek (ptr `plusPtr` 340)+                                    <*> peek (ptr `plusPtr` 344)+                                    <*> peek (ptr `plusPtr` 348)+                                    <*> peek (ptr `plusPtr` 352)+                                    <*> peek (ptr `plusPtr` 356)+                                    <*> peek (ptr `plusPtr` 360)+                                    <*> peek (ptr `plusPtr` 364)+                                    <*> peek (ptr `plusPtr` 368)+                                    <*> peek (ptr `plusPtr` 372)+                                    <*> peek (ptr `plusPtr` 376)+                                    <*> peek (ptr `plusPtr` 380)+                                    <*> peek (ptr `plusPtr` 384)+                                    <*> peek (ptr `plusPtr` 388)+                                    <*> peek (ptr `plusPtr` 392)+                                    <*> peek (ptr `plusPtr` 396)+                                    <*> peek (ptr `plusPtr` 400)+                                    <*> peek (ptr `plusPtr` 404)+                                    <*> peek (ptr `plusPtr` 408)+                                    <*> peek (ptr `plusPtr` 412)+                                    <*> peek (ptr `plusPtr` 416)+                                    <*> peek (ptr `plusPtr` 420)+                                    <*> peek (ptr `plusPtr` 424)+                                    <*> peek (ptr `plusPtr` 428)+                                    <*> peek (ptr `plusPtr` 432)+                                    <*> peek (ptr `plusPtr` 436)+                                    <*> peek (ptr `plusPtr` 440)+                                    <*> peek (ptr `plusPtr` 444)+                                    <*> peek (ptr `plusPtr` 452)+                                    <*> peek (ptr `plusPtr` 460)+                                    <*> peek (ptr `plusPtr` 464)+                                    <*> peek (ptr `plusPtr` 468)+                                    <*> peek (ptr `plusPtr` 472)+                                    <*> peek (ptr `plusPtr` 480)+                                    <*> peek (ptr `plusPtr` 488)+                                    <*> peek (ptr `plusPtr` 496)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkMaxImageDimension1D (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 4) (vkMaxImageDimension2D (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 8) (vkMaxImageDimension3D (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 12) (vkMaxImageDimensionCube (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 16) (vkMaxImageArrayLayers (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 20) (vkMaxTexelBufferElements (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 24) (vkMaxUniformBufferRange (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 28) (vkMaxStorageBufferRange (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 32) (vkMaxPushConstantsSize (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 36) (vkMaxMemoryAllocationCount (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 40) (vkMaxSamplerAllocationCount (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 48) (vkBufferImageGranularity (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 56) (vkSparseAddressSpaceSize (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 64) (vkMaxBoundDescriptorSets (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 68) (vkMaxPerStageDescriptorSamplers (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 72) (vkMaxPerStageDescriptorUniformBuffers (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 76) (vkMaxPerStageDescriptorStorageBuffers (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 80) (vkMaxPerStageDescriptorSampledImages (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 84) (vkMaxPerStageDescriptorStorageImages (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 88) (vkMaxPerStageDescriptorInputAttachments (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 92) (vkMaxPerStageResources (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 96) (vkMaxDescriptorSetSamplers (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 100) (vkMaxDescriptorSetUniformBuffers (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 104) (vkMaxDescriptorSetUniformBuffersDynamic (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 108) (vkMaxDescriptorSetStorageBuffers (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 112) (vkMaxDescriptorSetStorageBuffersDynamic (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 116) (vkMaxDescriptorSetSampledImages (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 120) (vkMaxDescriptorSetStorageImages (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 124) (vkMaxDescriptorSetInputAttachments (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 128) (vkMaxVertexInputAttributes (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 132) (vkMaxVertexInputBindings (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 136) (vkMaxVertexInputAttributeOffset (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 140) (vkMaxVertexInputBindingStride (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 144) (vkMaxVertexOutputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 148) (vkMaxTessellationGenerationLevel (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 152) (vkMaxTessellationPatchSize (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 156) (vkMaxTessellationControlPerVertexInputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 160) (vkMaxTessellationControlPerVertexOutputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 164) (vkMaxTessellationControlPerPatchOutputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 168) (vkMaxTessellationControlTotalOutputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 172) (vkMaxTessellationEvaluationInputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 176) (vkMaxTessellationEvaluationOutputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 180) (vkMaxGeometryShaderInvocations (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 184) (vkMaxGeometryInputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 188) (vkMaxGeometryOutputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 192) (vkMaxGeometryOutputVertices (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 196) (vkMaxGeometryTotalOutputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 200) (vkMaxFragmentInputComponents (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 204) (vkMaxFragmentOutputAttachments (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 208) (vkMaxFragmentDualSrcAttachments (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 212) (vkMaxFragmentCombinedOutputResources (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 216) (vkMaxComputeSharedMemorySize (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 220) (vkMaxComputeWorkGroupCount (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 232) (vkMaxComputeWorkGroupInvocations (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 236) (vkMaxComputeWorkGroupSize (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 248) (vkSubPixelPrecisionBits (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 252) (vkSubTexelPrecisionBits (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 256) (vkMipmapPrecisionBits (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 260) (vkMaxDrawIndexedIndexValue (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 264) (vkMaxDrawIndirectCount (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 268) (vkMaxSamplerLodBias (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 272) (vkMaxSamplerAnisotropy (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 276) (vkMaxViewports (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 280) (vkMaxViewportDimensions (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 288) (vkViewportBoundsRange (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 296) (vkViewportSubPixelBits (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 304) (vkMinMemoryMapAlignment (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 312) (vkMinTexelBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 320) (vkMinUniformBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 328) (vkMinStorageBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 336) (vkMinTexelOffset (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 340) (vkMaxTexelOffset (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 344) (vkMinTexelGatherOffset (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 348) (vkMaxTexelGatherOffset (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 352) (vkMinInterpolationOffset (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 356) (vkMaxInterpolationOffset (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 360) (vkSubPixelInterpolationOffsetBits (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 364) (vkMaxFramebufferWidth (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 368) (vkMaxFramebufferHeight (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 372) (vkMaxFramebufferLayers (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 376) (vkFramebufferColorSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 380) (vkFramebufferDepthSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 384) (vkFramebufferStencilSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 388) (vkFramebufferNoAttachmentsSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 392) (vkMaxColorAttachments (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 396) (vkSampledImageColorSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 400) (vkSampledImageIntegerSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 404) (vkSampledImageDepthSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 408) (vkSampledImageStencilSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 412) (vkStorageImageSampleCounts (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 416) (vkMaxSampleMaskWords (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 420) (vkTimestampComputeAndGraphics (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 424) (vkTimestampPeriod (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 428) (vkMaxClipDistances (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 432) (vkMaxCullDistances (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 436) (vkMaxCombinedClipAndCullDistances (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 440) (vkDiscreteQueuePriorities (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 444) (vkPointSizeRange (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 452) (vkLineWidthRange (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 460) (vkPointSizeGranularity (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 464) (vkLineWidthGranularity (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 468) (vkStrictLines (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 472) (vkStandardSampleLocations (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 480) (vkOptimalBufferCopyOffsetAlignment (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 488) (vkOptimalBufferCopyRowPitchAlignment (poked :: VkPhysicalDeviceLimits))+                *> poke (ptr `plusPtr` 496) (vkNonCoherentAtomSize (poked :: VkPhysicalDeviceLimits))+-- | VkQueueFlags - Bitmask of VkQueueFlagBits+--+-- = Description+-- #_description#+--+-- @VkQueueFlags@ is a bitmask type for setting a mask of zero or more+-- 'VkQueueFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkQueueFamilyProperties', 'VkQueueFlagBits'+type VkQueueFlags = VkQueueFlagBits+-- | VkMemoryPropertyFlags - Bitmask of VkMemoryPropertyFlagBits+--+-- = Description+-- #_description#+--+-- @VkMemoryPropertyFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkMemoryPropertyFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkMemoryPropertyFlagBits', 'VkMemoryType'+type VkMemoryPropertyFlags = VkMemoryPropertyFlagBits+-- | VkMemoryHeapFlags - Bitmask of VkMemoryHeapFlagBits+--+-- = Description+-- #_description#+--+-- @VkMemoryHeapFlags@ is a bitmask type for setting a mask of zero or more+-- 'VkMemoryHeapFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkMemoryHeap', 'VkMemoryHeapFlagBits'+type VkMemoryHeapFlags = VkMemoryHeapFlagBits+-- | VkImageUsageFlags - Bitmask of VkImageUsageFlagBits+--+-- = Description+-- #_description#+--+-- @VkImageUsageFlags@ is a bitmask type for setting a mask of zero or more+-- 'VkImageUsageFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'VkImageUsageFlagBits',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2',+-- 'Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.vkGetPhysicalDeviceExternalImageFormatPropertiesNV',+-- 'vkGetPhysicalDeviceImageFormatProperties',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetPhysicalDeviceSparseImageFormatProperties'+type VkImageUsageFlags = VkImageUsageFlagBits+-- | VkImageCreateFlags - Bitmask of VkImageCreateFlagBits+--+-- = Description+-- #_description#+--+-- @VkImageCreateFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkImageCreateFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkImageCreateFlagBits',+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.vkGetPhysicalDeviceExternalImageFormatPropertiesNV',+-- 'vkGetPhysicalDeviceImageFormatProperties'+type VkImageCreateFlags = VkImageCreateFlagBits+-- | VkFormatFeatureFlags - Bitmask of VkFormatFeatureFlagBits+--+-- = Description+-- #_description#+--+-- @VkFormatFeatureFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkFormatFeatureFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferFormatPropertiesANDROID',+-- 'VkFormatFeatureFlagBits', 'VkFormatProperties'+type VkFormatFeatureFlags = VkFormatFeatureFlagBits+-- | VkSampleCountFlags - Bitmask of VkSampleCountFlagBits+--+-- = Description+-- #_description#+--+-- @VkSampleCountFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkSampleCountFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkImageFormatProperties', 'VkPhysicalDeviceLimits',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT',+-- 'VkSampleCountFlagBits'+type VkSampleCountFlags = VkSampleCountFlagBits+-- | VkDeviceSize - Vulkan device memory size and offsets+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferPropertiesANDROID',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferCopy',+-- 'Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier',+-- 'Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo',+-- 'VkImageFormatProperties',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenNVX',+-- 'Graphics.Vulkan.Core10.Memory.VkMappedMemoryRange',+-- 'Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo', 'VkMemoryHeap',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkMemoryRequirements',+-- 'Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT',+-- 'VkPhysicalDeviceLimits',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBind',+-- 'Graphics.Vulkan.Core10.Image.VkSubresourceLayout',+-- 'Graphics.Vulkan.Core10.MemoryManagement.vkBindBufferMemory',+-- 'Graphics.Vulkan.Core10.MemoryManagement.vkBindImageMemory',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindIndexBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindVertexBuffers',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyQueryPoolResults',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDispatchIndirect',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndexedIndirect',+-- 'Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count.vkCmdDrawIndexedIndirectCountAMD',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndirect',+-- 'Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count.vkCmdDrawIndirectCountAMD',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdFillBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdUpdateBuffer',+-- 'Graphics.Vulkan.Extensions.VK_AMD_buffer_marker.vkCmdWriteBufferMarkerAMD',+-- 'Graphics.Vulkan.Core10.Memory.vkGetDeviceMemoryCommitment',+-- 'Graphics.Vulkan.Core10.Query.vkGetQueryPoolResults',+-- 'Graphics.Vulkan.Core10.Memory.vkMapMemory'+type VkDeviceSize = Word64
+ src/Graphics/Vulkan/Core10/Event.hs view
@@ -0,0 +1,413 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Event+  ( VkEventCreateFlags(..)+  , VkEvent+  , vkCreateEvent+  , vkDestroyEvent+  , vkGetEventStatus+  , vkSetEvent+  , vkResetEvent+  , VkEventCreateInfo(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+++-- ** VkEventCreateFlags++-- | VkEventCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkEventCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkEventCreateInfo'+newtype VkEventCreateFlags = VkEventCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkEventCreateFlags where+  +  showsPrec p (VkEventCreateFlags x) = showParen (p >= 11) (showString "VkEventCreateFlags " . showsPrec 11 x)++instance Read VkEventCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkEventCreateFlags")+                        v <- step readPrec+                        pure (VkEventCreateFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkEvent_T+-- | VkEvent - Opaque handle to a event object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResetEvent',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetEvent',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdWaitEvents',+-- 'vkCreateEvent', 'vkDestroyEvent', 'vkGetEventStatus', 'vkResetEvent',+-- 'vkSetEvent'+type VkEvent = Ptr VkEvent_T+-- | vkCreateEvent - Create a new event object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the event.+--+-- -   @pCreateInfo@ is a pointer to an instance of the @VkEventCreateInfo@+--     structure which contains information about how the event is to be+--     created.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pEvent@ points to a handle in which the resulting event object is+--     returned.+--+-- = Description+-- #_description#+--+-- When created, the event object is in the unsignaled state.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkEventCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pEvent@ /must/ be a valid pointer to a @VkEvent@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkEvent',+-- 'VkEventCreateInfo'+foreign import ccall "vkCreateEvent" vkCreateEvent :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkEventCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pEvent" ::: Ptr VkEvent) -> IO VkResult+-- | vkDestroyEvent - Destroy an event object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the event.+--+-- -   @event@ is the handle of the event to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @event@ /must/ have completed+--     execution+--+-- -   If @VkAllocationCallbacks@ were provided when @event@ was created, a+--     compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @event@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @event@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @event@ /must/ be a valid @VkEvent@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @event@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @event@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkEvent'+foreign import ccall "vkDestroyEvent" vkDestroyEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkGetEventStatus - Retrieve the status of an event object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the event.+--+-- -   @event@ is the handle of the event to query.+--+-- = Description+-- #_description#+--+-- Upon success, @vkGetEventStatus@ returns the state of the event object+-- with the following return codes:+--+-- > +-----------------------------------+-----------------------------------++-- > | Status                            | Meaning                           |+-- > +===================================+===================================++-- > | @VK_EVENT_SET@                    | The event specified by @event@ is |+-- > |                                   | signaled.                         |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_EVENT_RESET@                  | The event specified by @event@ is |+-- > |                                   | unsignaled.                       |+-- > +-----------------------------------+-----------------------------------++-- >+-- > Event Object Status Codes+--+-- If a @vkCmdSetEvent@ or @vkCmdResetEvent@ command is in a command buffer+-- that is in the+-- <{html_spec_relative}#commandbuffers-lifecycle pending state>, then the+-- value returned by this command /may/ immediately be out of date.+--+-- The state of an event /can/ be updated by the host. The state of the+-- event is immediately changed, and subsequent calls to @vkGetEventStatus@+-- will return the new state. If an event is already in the requested+-- state, then updating it to the same state has no effect.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @event@ /must/ be a valid @VkEvent@ handle+--+-- -   @event@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_EVENT_SET@+--+--     -   @VK_EVENT_RESET@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkEvent'+foreign import ccall "vkGetEventStatus" vkGetEventStatus :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult+-- | vkSetEvent - Set an event to signaled state+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the event.+--+-- -   @event@ is the event to set.+--+-- = Description+-- #_description#+--+-- When 'vkSetEvent' is executed on the host, it defines an /event signal+-- operation/ which sets the event to the signaled state.+--+-- If @event@ is already in the signaled state when 'vkSetEvent' is+-- executed, then 'vkSetEvent' has no effect, and no event signal operation+-- occurs.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @event@ /must/ be a valid @VkEvent@ handle+--+-- -   @event@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @event@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkEvent'+foreign import ccall "vkSetEvent" vkSetEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult+-- | vkResetEvent - Reset an event to non-signaled state+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the event.+--+-- -   @event@ is the event to reset.+--+-- = Description+-- #_description#+--+-- When 'vkResetEvent' is executed on the host, it defines an /event+-- unsignal operation/ which resets the event to the unsignaled state.+--+-- If @event@ is already in the unsignaled state when 'vkResetEvent' is+-- executed, then 'vkResetEvent' has no effect, and no event unsignal+-- operation occurs.+--+-- == Valid Usage+--+-- -   @event@ /must/ not be waited on by a @vkCmdWaitEvents@ command that+--     is currently executing+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @event@ /must/ be a valid @VkEvent@ handle+--+-- -   @event@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @event@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkEvent'+foreign import ccall "vkResetEvent" vkResetEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult+-- | VkEventCreateInfo - Structure specifying parameters of a newly created+-- event+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_EVENT_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkEventCreateFlags', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateEvent'+data VkEventCreateInfo = VkEventCreateInfo+  { -- No documentation found for Nested "VkEventCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkEventCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkEventCreateInfo" "vkFlags"+  vkFlags :: VkEventCreateFlags+  }+  deriving (Eq, Show)++instance Storable VkEventCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkEventCreateInfo <$> peek (ptr `plusPtr` 0)+                               <*> peek (ptr `plusPtr` 8)+                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkEventCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkEventCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkEventCreateInfo))
+ src/Graphics/Vulkan/Core10/ExtensionDiscovery.hs view
@@ -0,0 +1,207 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.ExtensionDiscovery+  ( VK_MAX_EXTENSION_NAME_SIZE+  , pattern VK_MAX_EXTENSION_NAME_SIZE+  , vkEnumerateInstanceExtensionProperties+  , vkEnumerateDeviceExtensionProperties+  , VkExtensionProperties(..)+  ) where++import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CChar(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+++-- No documentation found for TopLevel "VK_MAX_EXTENSION_NAME_SIZE"+type VK_MAX_EXTENSION_NAME_SIZE = 256+-- No documentation found for Nested "Integral a => a" "VK_MAX_EXTENSION_NAME_SIZE"+pattern VK_MAX_EXTENSION_NAME_SIZE :: Integral a => a+pattern VK_MAX_EXTENSION_NAME_SIZE = 256+-- | vkEnumerateInstanceExtensionProperties - Returns up to requested number+-- of global extension properties+--+-- = Parameters+-- #_parameters#+--+-- -   @pLayerName@ is either @NULL@ or a pointer to a null-terminated+--     UTF-8 string naming the layer to retrieve extensions from.+--+-- -   @pPropertyCount@ is a pointer to an integer related to the number of+--     extension properties available or queried, as described below.+--+-- -   @pProperties@ is either @NULL@ or a pointer to an array of+--     'VkExtensionProperties' structures.+--+-- = Description+-- #_description#+--+-- When @pLayerName@ parameter is @NULL@, only extensions provided by the+-- Vulkan implementation or by implicitly enabled layers are returned. When+-- @pLayerName@ is the name of a layer, the instance extensions provided by+-- that layer are returned.+--+-- If @pProperties@ is @NULL@, then the number of extensions properties+-- available is returned in @pPropertyCount@. Otherwise, @pPropertyCount@+-- /must/ point to a variable set by the user to the number of elements in+-- the @pProperties@ array, and on return the variable is overwritten with+-- the number of structures actually written to @pProperties@. If+-- @pPropertyCount@ is less than the number of extension properties+-- available, at most @pPropertyCount@ structures will be written. If+-- @pPropertyCount@ is smaller than the number of extensions available,+-- @VK_INCOMPLETE@ will be returned instead of @VK_SUCCESS@, to indicate+-- that not all the available properties were returned.+--+-- Because the list of available layers may change externally between calls+-- to @vkEnumerateInstanceExtensionProperties@, two calls may retrieve+-- different results if a @pLayerName@ is available in one call but not in+-- another. The extensions supported by a layer may also change between two+-- calls, e.g. if the layer implementation is replaced by a different+-- version between those calls.+--+-- == Valid Usage (Implicit)+--+-- -   If @pLayerName@ is not @NULL@, @pLayerName@ /must/ be a+--     null-terminated UTF-8 string+--+-- -   @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPropertyCount@ is not @0@, and+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+--     to an array of @pPropertyCount@ @VkExtensionProperties@ structures+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_LAYER_NOT_PRESENT@+--+-- = See Also+-- #_see_also#+--+-- 'VkExtensionProperties'+foreign import ccall "vkEnumerateInstanceExtensionProperties" vkEnumerateInstanceExtensionProperties :: ("pLayerName" ::: Ptr CChar) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkExtensionProperties) -> IO VkResult+-- | vkEnumerateDeviceExtensionProperties - Returns properties of available+-- physical device extensions+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device that will be queried.+--+-- -   @pLayerName@ is either @NULL@ or a pointer to a null-terminated+--     UTF-8 string naming the layer to retrieve extensions from.+--+-- -   @pPropertyCount@ is a pointer to an integer related to the number of+--     extension properties available or queried, and is treated in the+--     same fashion as the+--     'vkEnumerateInstanceExtensionProperties'::@pPropertyCount@+--     parameter.+--+-- -   @pProperties@ is either @NULL@ or a pointer to an array of+--     'VkExtensionProperties' structures.+--+-- = Description+-- #_description#+--+-- When @pLayerName@ parameter is @NULL@, only extensions provided by the+-- Vulkan implementation or by implicitly enabled layers are returned. When+-- @pLayerName@ is the name of a layer, the device extensions provided by+-- that layer are returned.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   If @pLayerName@ is not @NULL@, @pLayerName@ /must/ be a+--     null-terminated UTF-8 string+--+-- -   @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPropertyCount@ is not @0@, and+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+--     to an array of @pPropertyCount@ @VkExtensionProperties@ structures+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_LAYER_NOT_PRESENT@+--+-- = See Also+-- #_see_also#+--+-- 'VkExtensionProperties',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkEnumerateDeviceExtensionProperties" vkEnumerateDeviceExtensionProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pLayerName" ::: Ptr CChar) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkExtensionProperties) -> IO VkResult+-- | VkExtensionProperties - Structure specifying a extension properties+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'vkEnumerateDeviceExtensionProperties',+-- 'vkEnumerateInstanceExtensionProperties'+data VkExtensionProperties = VkExtensionProperties+  { -- No documentation found for Nested "VkExtensionProperties" "vkExtensionName"+  vkExtensionName :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar+  , -- No documentation found for Nested "VkExtensionProperties" "vkSpecVersion"+  vkSpecVersion :: Word32+  }+  deriving (Eq, Show)++instance Storable VkExtensionProperties where+  sizeOf ~_ = 260+  alignment ~_ = 4+  peek ptr = VkExtensionProperties <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 256)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkExtensionName (poked :: VkExtensionProperties))+                *> poke (ptr `plusPtr` 256) (vkSpecVersion (poked :: VkExtensionProperties))
+ src/Graphics/Vulkan/Core10/Fence.hs view
@@ -0,0 +1,477 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Fence+  ( VkFenceCreateFlagBits(..)+  , pattern VK_FENCE_CREATE_SIGNALED_BIT+  , vkCreateFence+  , vkDestroyFence+  , vkResetFences+  , vkGetFenceStatus+  , vkWaitForFences+  , VkFenceCreateInfo(..)+  , VkFenceCreateFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word64+  , Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkBool32(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkFence+  )+++-- ** VkFenceCreateFlagBits++-- | VkFenceCreateFlagBits - Bitmask specifying initial state and behavior of+-- a fence+--+-- = See Also+-- #_see_also#+--+-- 'VkFenceCreateFlags'+newtype VkFenceCreateFlagBits = VkFenceCreateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkFenceCreateFlagBits where+  showsPrec _ VK_FENCE_CREATE_SIGNALED_BIT = showString "VK_FENCE_CREATE_SIGNALED_BIT"+  showsPrec p (VkFenceCreateFlagBits x) = showParen (p >= 11) (showString "VkFenceCreateFlagBits " . showsPrec 11 x)++instance Read VkFenceCreateFlagBits where+  readPrec = parens ( choose [ ("VK_FENCE_CREATE_SIGNALED_BIT", pure VK_FENCE_CREATE_SIGNALED_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkFenceCreateFlagBits")+                        v <- step readPrec+                        pure (VkFenceCreateFlagBits v)+                        )+                    )++-- | @VK_FENCE_CREATE_SIGNALED_BIT@ specifies that the fence object is+-- created in the signaled state. Otherwise, it is created in the+-- unsignaled state.+pattern VK_FENCE_CREATE_SIGNALED_BIT :: VkFenceCreateFlagBits+pattern VK_FENCE_CREATE_SIGNALED_BIT = VkFenceCreateFlagBits 0x00000001+-- | vkCreateFence - Create a new fence object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the fence.+--+-- -   @pCreateInfo@ is a pointer to an instance of the @VkFenceCreateInfo@+--     structure which contains information about how the fence is to be+--     created.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pFence@ points to a handle in which the resulting fence object is+--     returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkFenceCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pFence@ /must/ be a valid pointer to a @VkFence@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Queue.VkFence', 'VkFenceCreateInfo'+foreign import ccall "vkCreateFence" vkCreateFence :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkFenceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFence" ::: Ptr VkFence) -> IO VkResult+-- | vkDestroyFence - Destroy a fence object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the fence.+--+-- -   @fence@ is the handle of the fence to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All <{html_spec_relative}#devsandqueues-submission queue submission>+--     commands that refer to @fence@ /must/ have completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @fence@ was created, a+--     compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @fence@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ be a valid @VkFence@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @fence@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @fence@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Queue.VkFence'+foreign import ccall "vkDestroyFence" vkDestroyFence :: ("device" ::: VkDevice) -> ("fence" ::: VkFence) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkResetFences - Resets one or more fence objects+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the fences.+--+-- -   @fenceCount@ is the number of fences to reset.+--+-- -   @pFences@ is a pointer to an array of fence handles to reset.+--+-- = Description+-- #_description#+--+-- When 'vkResetFences' is executed on the host, it defines a /fence+-- unsignal operation/ for each fence, which resets the fence to the+-- unsignaled state.+--+-- If any member of @pFences@ is already in the unsignaled state when+-- 'vkResetFences' is executed, then 'vkResetFences' has no effect on that+-- fence.+--+-- == Valid Usage+--+-- -   Each element of @pFences@ /must/ not be currently associated with+--     any queue command that has not yet completed execution on that queue+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pFences@ /must/ be a valid pointer to an array of @fenceCount@+--     valid @VkFence@ handles+--+-- -   @fenceCount@ /must/ be greater than @0@+--+-- -   Each element of @pFences@ /must/ have been created, allocated, or+--     retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to each member of @pFences@ /must/ be externally+--     synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Queue.VkFence'+foreign import ccall "vkResetFences" vkResetFences :: ("device" ::: VkDevice) -> ("fenceCount" ::: Word32) -> ("pFences" ::: Ptr VkFence) -> IO VkResult+-- | vkGetFenceStatus - Return the status of a fence+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the fence.+--+-- -   @fence@ is the handle of the fence to query.+--+-- = Description+-- #_description#+--+-- Upon success, @vkGetFenceStatus@ returns the status of the fence object,+-- with the following return codes:+--+-- > +-----------------------------------+-----------------------------------++-- > | Status                            | Meaning                           |+-- > +===================================+===================================++-- > | @VK_SUCCESS@                      | The fence specified by @fence@ is |+-- > |                                   | signaled.                         |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_NOT_READY@                    | The fence specified by @fence@ is |+-- > |                                   | unsignaled.                       |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ERROR_DEVICE_LOST@            | The device has been lost. See     |+-- > |                                   | <{html_spec_relative}#devsandqueu |+-- > |                                   | es-lost-device Lost Device>.      |+-- > +-----------------------------------+-----------------------------------++-- >+-- > Fence Object Status Codes+--+-- If a <{html_spec_relative}#devsandqueues-submission queue submission>+-- command is pending execution, then the value returned by this command+-- /may/ immediately be out of date.+--+-- If the device has been lost (see+-- <{html_spec_relative}#devsandqueues-lost-device Lost Device>),+-- @vkGetFenceStatus@ /may/ return any of the above status codes. If the+-- device has been lost and @vkGetFenceStatus@ is called repeatedly, it+-- will eventually return either @VK_SUCCESS@ or @VK_ERROR_DEVICE_LOST@.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @fence@ /must/ be a valid @VkFence@ handle+--+-- -   @fence@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_NOT_READY@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Queue.VkFence'+foreign import ccall "vkGetFenceStatus" vkGetFenceStatus :: ("device" ::: VkDevice) -> ("fence" ::: VkFence) -> IO VkResult+-- | vkWaitForFences - Wait for one or more fences to become signaled+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the fences.+--+-- -   @fenceCount@ is the number of fences to wait on.+--+-- -   @pFences@ is a pointer to an array of @fenceCount@ fence handles.+--+-- -   @waitAll@ is the condition that /must/ be satisfied to successfully+--     unblock the wait. If @waitAll@ is @VK_TRUE@, then the condition is+--     that all fences in @pFences@ are signaled. Otherwise, the condition+--     is that at least one fence in @pFences@ is signaled.+--+-- -   @timeout@ is the timeout period in units of nanoseconds. @timeout@+--     is adjusted to the closest value allowed by the+--     implementation-dependent timeout accuracy, which /may/ be+--     substantially longer than one nanosecond, and /may/ be longer than+--     the requested period.+--+-- = Description+-- #_description#+--+-- If the condition is satisfied when @vkWaitForFences@ is called, then+-- @vkWaitForFences@ returns immediately. If the condition is not satisfied+-- at the time @vkWaitForFences@ is called, then @vkWaitForFences@ will+-- block and wait up to @timeout@ nanoseconds for the condition to become+-- satisfied.+--+-- If @timeout@ is zero, then @vkWaitForFences@ does not wait, but simply+-- returns the current state of the fences. @VK_TIMEOUT@ will be returned+-- in this case if the condition is not satisfied, even though no actual+-- wait was performed.+--+-- If the specified timeout period expires before the condition is+-- satisfied, @vkWaitForFences@ returns @VK_TIMEOUT@. If the condition is+-- satisfied before @timeout@ nanoseconds has expired, @vkWaitForFences@+-- returns @VK_SUCCESS@.+--+-- If device loss occurs (see+-- <{html_spec_relative}#devsandqueues-lost-device Lost Device>) before the+-- timeout has expired, @vkWaitForFences@ /must/ return in finite time with+-- either @VK_SUCCESS@ or @VK_ERROR_DEVICE_LOST@.+--+-- __Note__+--+-- While we guarantee that @vkWaitForFences@ /must/ return in finite time,+-- no guarantees are made that it returns immediately upon device loss.+-- However, the client can reasonably expect that the delay will be on the+-- order of seconds and that calling @vkWaitForFences@ will not result in a+-- permanently (or seemingly permanently) dead process.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pFences@ /must/ be a valid pointer to an array of @fenceCount@+--     valid @VkFence@ handles+--+-- -   @fenceCount@ /must/ be greater than @0@+--+-- -   Each element of @pFences@ /must/ have been created, allocated, or+--     retrieved from @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_TIMEOUT@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Queue.VkFence'+foreign import ccall "vkWaitForFences" vkWaitForFences :: ("device" ::: VkDevice) -> ("fenceCount" ::: Word32) -> ("pFences" ::: Ptr VkFence) -> ("waitAll" ::: VkBool32) -> ("timeout" ::: Word64) -> IO VkResult+-- | VkFenceCreateInfo - Structure specifying parameters of a newly created+-- fence+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_FENCE_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo'+--     or+--     'Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32.VkExportFenceWin32HandleInfoKHR'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be a valid combination of 'VkFenceCreateFlagBits'+--     values+--+-- = See Also+-- #_see_also#+--+-- 'VkFenceCreateFlags', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateFence'+data VkFenceCreateInfo = VkFenceCreateInfo+  { -- No documentation found for Nested "VkFenceCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkFenceCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkFenceCreateInfo" "vkFlags"+  vkFlags :: VkFenceCreateFlags+  }+  deriving (Eq, Show)++instance Storable VkFenceCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkFenceCreateInfo <$> peek (ptr `plusPtr` 0)+                               <*> peek (ptr `plusPtr` 8)+                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFenceCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFenceCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkFenceCreateInfo))+-- | VkFenceCreateFlags - Bitmask of VkFenceCreateFlagBits+--+-- = Description+-- #_description#+--+-- @VkFenceCreateFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkFenceCreateFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkFenceCreateFlagBits', 'VkFenceCreateInfo'+type VkFenceCreateFlags = VkFenceCreateFlagBits
+ src/Graphics/Vulkan/Core10/Image.hs view
@@ -0,0 +1,947 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Image+  ( VkImageLayout(..)+  , pattern VK_IMAGE_LAYOUT_UNDEFINED+  , pattern VK_IMAGE_LAYOUT_GENERAL+  , pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL+  , pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL+  , pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL+  , pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL+  , pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL+  , pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL+  , pattern VK_IMAGE_LAYOUT_PREINITIALIZED+  , vkCreateImage+  , vkDestroyImage+  , vkGetImageSubresourceLayout+  , VkImageCreateInfo(..)+  , VkSubresourceLayout(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Buffer+  ( VkSharingMode(..)+  )+import Graphics.Vulkan.Core10.Core+  ( VkFormat(..)+  , VkStructureType(..)+  , VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkImageUsageFlags+  , VkImageTiling(..)+  , VkSampleCountFlagBits(..)+  , VkExtent3D(..)+  , VkImageType(..)+  , VkImageCreateFlags+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkImage+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkImageSubresource(..)+  )+++-- ** VkImageLayout++-- | VkImageLayout - Layout of image and image subresources+--+-- = Description+-- #_description#+--+-- The type(s) of device access supported by each layout are:+--+-- -   @VK_IMAGE_LAYOUT_UNDEFINED@ does not support device access. This+--     layout /must/ only be used as the @initialLayout@ member of+--     @VkImageCreateInfo@ or @VkAttachmentDescription@, or as the+--     @oldLayout@ in an image transition. When transitioning out of this+--     layout, the contents of the memory are not guaranteed to be+--     preserved.+--+-- -   @VK_IMAGE_LAYOUT_PREINITIALIZED@ does not support device access.+--     This layout /must/ only be used as the @initialLayout@ member of+--     @VkImageCreateInfo@ or @VkAttachmentDescription@, or as the+--     @oldLayout@ in an image transition. When transitioning out of this+--     layout, the contents of the memory are preserved. This layout is+--     intended to be used as the initial layout for an image whose+--     contents are written by the host, and hence the data /can/ be+--     written to memory immediately, without first executing a layout+--     transition. Currently, @VK_IMAGE_LAYOUT_PREINITIALIZED@ is only+--     useful with @VK_IMAGE_TILING_LINEAR@ images because there is not a+--     standard layout defined for @VK_IMAGE_TILING_OPTIMAL@ images.+--+-- -   @VK_IMAGE_LAYOUT_GENERAL@ supports all types of device access.+--+-- -   @VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL@ /must/ only be used as a+--     color or resolve attachment in a @VkFramebuffer@. This layout is+--     valid only for image subresources of images created with the+--     @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@ usage bit enabled.+--+-- -   @VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL@ /must/ only be+--     used as a depth\/stencil attachment in a @VkFramebuffer@. This+--     layout is valid only for image subresources of images created with+--     the @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@ usage bit enabled.+--+-- -   @VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL@ /must/ only be+--     used as a read-only depth\/stencil attachment in a @VkFramebuffer@+--     and\/or as a read-only image in a shader (which /can/ be read as a+--     sampled image, combined image\/sampler and\/or input attachment).+--     This layout is valid only for image subresources of images created+--     with the @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@ usage bit+--     enabled. Only image subresources of images created with+--     @VK_IMAGE_USAGE_SAMPLED_BIT@ /can/ be used as a sampled image or+--     combined image\/sampler in a shader. Similarly, only image+--     subresources of images created with+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@ /can/ be used as input+--     attachments.+--+-- -   @VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL@ /must/ only be used as a+--     read-only image in a shader (which /can/ be read as a sampled image,+--     combined image\/sampler and\/or input attachment). This layout is+--     valid only for image subresources of images created with the+--     @VK_IMAGE_USAGE_SAMPLED_BIT@ or+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@ usage bit enabled.+--+-- -   @VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL@ /must/ only be used as a+--     source image of a transfer command (see the definition of+--     <{html_spec_relative}#synchronization-pipeline-stages-transfer VK_PIPELINE_STAGE_TRANSFER_BIT>).+--     This layout is valid only for image subresources of images created+--     with the @VK_IMAGE_USAGE_TRANSFER_SRC_BIT@ usage bit enabled.+--+-- -   @VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL@ /must/ only be used as a+--     destination image of a transfer command. This layout is valid only+--     for image subresources of images created with the+--     @VK_IMAGE_USAGE_TRANSFER_DST_BIT@ usage bit enabled.+--+-- The layout of each image subresource is not a state of the image+-- subresource itself, but is rather a property of how the data in memory+-- is organized, and thus for each mechanism of accessing an image in the+-- API the application /must/ specify a parameter or structure member that+-- indicates which image layout the image subresource(s) are considered to+-- be in when the image will be accessed. For transfer commands, this is a+-- parameter to the command (see+-- <{html_spec_relative}#clears {html_spec_relative}#clears> and+-- <{html_spec_relative}#copies {html_spec_relative}#copies>). For use as a+-- framebuffer attachment, this is a member in the substructures of the+-- @VkRenderPassCreateInfo@ (see+-- <{html_spec_relative}#renderpass Render Pass>). For use in a descriptor+-- set, this is a member in the @VkDescriptorImageInfo@ structure (see+-- <{html_spec_relative}#descriptorsets-updates {html_spec_relative}#descriptorsets-updates>).+-- At the time that any command buffer command accessing an image executes+-- on any queue, the layouts of the image subresources that are accessed+-- /must/ all match the layout specified via the API controlling those+-- accesses.+--+-- When performing a layout transition on an image subresource, the old+-- layout value /must/ either equal the current layout of the image+-- subresource (at the time the transition executes), or else be+-- @VK_IMAGE_LAYOUT_UNDEFINED@ (implying that the contents of the image+-- subresource need not be preserved). The new layout used in a transition+-- /must/ not be @VK_IMAGE_LAYOUT_UNDEFINED@ or+-- @VK_IMAGE_LAYOUT_PREINITIALIZED@.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pass.VkAttachmentDescription',+-- 'Graphics.Vulkan.Core10.Pass.VkAttachmentReference',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo',+-- 'VkImageCreateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBlitImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearColorImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearDepthStencilImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyBufferToImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyImageToBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResolveImage'+newtype VkImageLayout = VkImageLayout Int32+  deriving (Eq, Ord, Storable)++instance Show VkImageLayout where+  showsPrec _ VK_IMAGE_LAYOUT_UNDEFINED = showString "VK_IMAGE_LAYOUT_UNDEFINED"+  showsPrec _ VK_IMAGE_LAYOUT_GENERAL = showString "VK_IMAGE_LAYOUT_GENERAL"+  showsPrec _ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = showString "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL"+  showsPrec _ VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = showString "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"+  showsPrec _ VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = showString "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL"+  showsPrec _ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = showString "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL"+  showsPrec _ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = showString "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL"+  showsPrec _ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = showString "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL"+  showsPrec _ VK_IMAGE_LAYOUT_PREINITIALIZED = showString "VK_IMAGE_LAYOUT_PREINITIALIZED"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkImageLayout 1000117000) = showString "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL"+  showsPrec _ (VkImageLayout 1000117001) = showString "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL"+  showsPrec _ (VkImageLayout 1000001002) = showString "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR"+  showsPrec _ (VkImageLayout 1000111000) = showString "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR"+  showsPrec p (VkImageLayout x) = showParen (p >= 11) (showString "VkImageLayout " . showsPrec 11 x)++instance Read VkImageLayout where+  readPrec = parens ( choose [ ("VK_IMAGE_LAYOUT_UNDEFINED",                        pure VK_IMAGE_LAYOUT_UNDEFINED)+                             , ("VK_IMAGE_LAYOUT_GENERAL",                          pure VK_IMAGE_LAYOUT_GENERAL)+                             , ("VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL",         pure VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)+                             , ("VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL", pure VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL)+                             , ("VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL",  pure VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL)+                             , ("VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL",         pure VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)+                             , ("VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL",             pure VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL)+                             , ("VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL",             pure VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL)+                             , ("VK_IMAGE_LAYOUT_PREINITIALIZED",                   pure VK_IMAGE_LAYOUT_PREINITIALIZED)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", pure (VkImageLayout 1000117000))+                             , ("VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", pure (VkImageLayout 1000117001))+                             , ("VK_IMAGE_LAYOUT_PRESENT_SRC_KHR",                            pure (VkImageLayout 1000001002))+                             , ("VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR",                         pure (VkImageLayout 1000111000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkImageLayout")+                        v <- step readPrec+                        pure (VkImageLayout v)+                        )+                    )++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_UNDEFINED"+pattern VK_IMAGE_LAYOUT_UNDEFINED :: VkImageLayout+pattern VK_IMAGE_LAYOUT_UNDEFINED = VkImageLayout 0++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_GENERAL"+pattern VK_IMAGE_LAYOUT_GENERAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_GENERAL = VkImageLayout 1++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL"+pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = VkImageLayout 2++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"+pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = VkImageLayout 3++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL"+pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = VkImageLayout 4++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL"+pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = VkImageLayout 5++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL"+pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = VkImageLayout 6++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL"+pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = VkImageLayout 7++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_PREINITIALIZED"+pattern VK_IMAGE_LAYOUT_PREINITIALIZED :: VkImageLayout+pattern VK_IMAGE_LAYOUT_PREINITIALIZED = VkImageLayout 8+-- | vkCreateImage - Create a new image object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the image.+--+-- -   @pCreateInfo@ is a pointer to an instance of the @VkImageCreateInfo@+--     structure containing parameters to be used to create the image.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pImage@ points to a @VkImage@ handle in which the resulting image+--     object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the @flags@ member of @pCreateInfo@ includes+--     @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@, creating this @VkImage@ /must/+--     not cause the total required sparse memory for all currently valid+--     sparse resources on the device to exceed+--     @VkPhysicalDeviceLimits@::@sparseAddressSpaceSize@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkImageCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pImage@ /must/ be a valid pointer to a @VkImage@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage', 'VkImageCreateInfo'+foreign import ccall "vkCreateImage" vkCreateImage :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkImageCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pImage" ::: Ptr VkImage) -> IO VkResult+-- | vkDestroyImage - Destroy an image object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the image.+--+-- -   @image@ is the image to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @image@, either directly or via+--     a @VkImageView@, /must/ have completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @image@ was created, a+--     compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @image@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @image@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @image@ /must/ be a valid @VkImage@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @image@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @image@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage'+foreign import ccall "vkDestroyImage" vkDestroyImage :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkGetImageSubresourceLayout - Retrieve information about an image+-- subresource+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the image.+--+-- -   @image@ is the image whose layout is being queried.+--+-- -   @pSubresource@ is a pointer to a+--     'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageSubresource'+--     structure selecting a specific image for the image subresource.+--+-- -   @pLayout@ points to a 'VkSubresourceLayout' structure in which the+--     layout is returned.+--+-- = Description+-- #_description#+--+-- 'vkGetImageSubresourceLayout' is invariant for the lifetime of a single+-- image.+--+-- == Valid Usage+--+-- -   @image@ /must/ have been created with @tiling@ equal to+--     @VK_IMAGE_TILING_LINEAR@+--+-- -   The @aspectMask@ member of @pSubresource@ /must/ only have a single+--     bit set+--+-- -   The @mipLevel@ member of @pSubresource@ /must/ be less than the+--     @mipLevels@ specified in 'VkImageCreateInfo' when @image@ was+--     created+--+-- -   The @arrayLayer@ member of @pSubresource@ /must/ be less than the+--     @arrayLayers@ specified in 'VkImageCreateInfo' when @image@ was+--     created+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @pSubresource@ /must/ be a valid pointer to a valid+--     @VkImageSubresource@ structure+--+-- -   @pLayout@ /must/ be a valid pointer to a @VkSubresourceLayout@+--     structure+--+-- -   @image@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageSubresource',+-- 'VkSubresourceLayout'+foreign import ccall "vkGetImageSubresourceLayout" vkGetImageSubresourceLayout :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pSubresource" ::: Ptr VkImageSubresource) -> ("pLayout" ::: Ptr VkSubresourceLayout) -> IO ()+-- | VkImageCreateInfo - Structure specifying the parameters of a newly+-- created image object+--+-- = Description+-- #_description#+--+-- Images created with @tiling@ equal to @VK_IMAGE_TILING_LINEAR@ have+-- further restrictions on their limits and capabilities compared to images+-- created with @tiling@ equal to @VK_IMAGE_TILING_OPTIMAL@. Creation of+-- images with tiling @VK_IMAGE_TILING_LINEAR@ /may/ not be supported+-- unless other parameters meet all of the constraints:+--+-- -   @imageType@ is @VK_IMAGE_TYPE_2D@+--+-- -   @format@ is not a depth\/stencil format+--+-- -   @mipLevels@ is 1+--+-- -   @arrayLayers@ is 1+--+-- -   @samples@ is @VK_SAMPLE_COUNT_1_BIT@+--+-- -   @usage@ only includes @VK_IMAGE_USAGE_TRANSFER_SRC_BIT@ and\/or+--     @VK_IMAGE_USAGE_TRANSFER_DST_BIT@+--+-- Implementations /may/ support additional limits and capabilities beyond+-- those listed above.+--+-- To query an implementation’s specific capabilities for a given+-- combination of @format@, @imageType@, @tiling@, @usage@, and @flags@,+-- call+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceImageFormatProperties'.+-- The return value specifies whether that combination of image settings is+-- supported. On success, the @VkImageFormatProperties@ output parameter+-- specifies the set of valid @samples@ bits and the limits for @extent@,+-- @mipLevels@, @arrayLayers@, and @maxResourceSize@. Even if+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceImageFormatProperties'.+-- returns success and the parameters to vkCreateImage are all within the+-- returned limits, @vkCreateImage@ /must/ fail and return+-- @VK_ERROR_OUT_OF_DEVICE_MEMORY@ if the resulting size of the image would+-- be larger than @maxResourceSize@.+--+-- To determine the set of valid @usage@ bits for a given format, call+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceFormatProperties'.+--+-- == Valid Usage+--+-- -   The combination of @format@, @imageType@, @tiling@, @usage@, and+--     @flags@ /must/ be supported, as indicated by a @VK_SUCCESS@ return+--     value from @vkGetPhysicalDeviceImageFormatProperties@ invoked with+--     the same values passed to the corresponding parameters.+--+-- -   If @sharingMode@ is @VK_SHARING_MODE_CONCURRENT@,+--     @pQueueFamilyIndices@ /must/ be a valid pointer to an array of+--     @queueFamilyIndexCount@ @uint32_t@ values+--+-- -   If @sharingMode@ is @VK_SHARING_MODE_CONCURRENT@,+--     @queueFamilyIndexCount@ /must/ be greater than @1@+--+-- -   If @sharingMode@ is @VK_SHARING_MODE_CONCURRENT@, each element of+--     @pQueueFamilyIndices@ /must/ be unique and /must/ be less than+--     @pQueueFamilyPropertyCount@ returned by+--     'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceQueueFamilyProperties'+--     for the @physicalDevice@ that was used to create @device@+--+-- -   @format@ /must/ not be @VK_FORMAT_UNDEFINED@+--+-- -   @extent@::@width@ /must/ be greater than @0@.+--+-- -   @extent@::@height@ /must/ be greater than @0@.+--+-- -   @extent@::@depth@ /must/ be greater than @0@.+--+-- -   @mipLevels@ /must/ be greater than @0@+--+-- -   @arrayLayers@ /must/ be greater than @0@+--+-- -   If @flags@ contains @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@,+--     @imageType@ /must/ be @VK_IMAGE_TYPE_2D@+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_1D@, @extent.width@ /must/ be less+--     than or equal to @VkPhysicalDeviceLimits@::@maxImageDimension1D@, or+--     @VkImageFormatProperties@::@maxExtent.width@ (as returned by+--     @vkGetPhysicalDeviceImageFormatProperties@ with @format@,+--     @imageType@, @tiling@, @usage@, and @flags@ equal to those in this+--     structure) - whichever is higher+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_2D@ and @flags@ does not contain+--     @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@, @extent.width@ and+--     @extent.height@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxImageDimension2D@, or+--     @VkImageFormatProperties@::@maxExtent.width@\/@height@ (as returned+--     by @vkGetPhysicalDeviceImageFormatProperties@ with @format@,+--     @imageType@, @tiling@, @usage@, and @flags@ equal to those in this+--     structure) - whichever is higher+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_2D@ and @flags@ contains+--     @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@, @extent.width@ and+--     @extent.height@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxImageDimensionCube@, or+--     @VkImageFormatProperties@::@maxExtent.width@\/@height@ (as returned+--     by @vkGetPhysicalDeviceImageFormatProperties@ with @format@,+--     @imageType@, @tiling@, @usage@, and @flags@ equal to those in this+--     structure) - whichever is higher+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_2D@ and @flags@ contains+--     @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@, @extent.width@ and+--     @extent.height@ /must/ be equal and @arrayLayers@ /must/ be greater+--     than or equal to 6+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_3D@, @extent.width@,+--     @extent.height@ and @extent.depth@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxImageDimension3D@, or+--     @VkImageFormatProperties@::@maxExtent.width@\/@height@\/@depth@ (as+--     returned by @vkGetPhysicalDeviceImageFormatProperties@ with+--     @format@, @imageType@, @tiling@, @usage@, and @flags@ equal to those+--     in this structure) - whichever is higher+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_1D@, both @extent.height@ and+--     @extent.depth@ /must/ be @1@+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_2D@, @extent.depth@ /must/ be @1@+--+-- -   @mipLevels@ /must/ be less than or equal to+--     ⌊log2(max(@extent.width@, @extent.height@, @extent.depth@))⌋ + 1.+--+-- -   @mipLevels@ /must/ be less than or equal to+--     @VkImageFormatProperties@::@maxMipLevels@ (as returned by+--     @vkGetPhysicalDeviceImageFormatProperties@ with @format@,+--     @imageType@, @tiling@, @usage@, and @flags@ equal to those in this+--     structure)+--+-- -   @arrayLayers@ /must/ be less than or equal to+--     @VkImageFormatProperties@::@maxArrayLayers@ (as returned by+--     @vkGetPhysicalDeviceImageFormatProperties@ with @format@,+--     @imageType@, @tiling@, @usage@, and @flags@ equal to those in this+--     structure)+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_3D@, @arrayLayers@ /must/ be @1@.+--+-- -   If @samples@ is not @VK_SAMPLE_COUNT_1_BIT@, @imageType@ /must/ be+--     @VK_IMAGE_TYPE_2D@, @flags@ /must/ not contain+--     @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@, @tiling@ /must/ be+--     @VK_IMAGE_TILING_OPTIMAL@, and @mipLevels@ /must/ be equal to @1@+--+-- -   If @usage@ includes @VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT@, then+--     bits other than @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@,+--     @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@, and+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@ /must/ not be set+--+-- -   If @usage@ includes @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@,+--     @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@,+--     @VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT@, or+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@, @extent.width@ /must/ be less+--     than or equal to @VkPhysicalDeviceLimits@::@maxFramebufferWidth@+--+-- -   If @usage@ includes @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@,+--     @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@,+--     @VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT@, or+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@, @extent.height@ /must/ be+--     less than or equal to+--     @VkPhysicalDeviceLimits@::@maxFramebufferHeight@+--+-- -   If @usage@ includes @VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT@,+--     @usage@ /must/ also contain at least one of+--     @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@,+--     @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@, or+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@.+--+-- -   @samples@ /must/ be a bit value that is set in+--     @VkImageFormatProperties@::@sampleCounts@ returned by+--     @vkGetPhysicalDeviceImageFormatProperties@ with @format@,+--     @imageType@, @tiling@, @usage@, and @flags@ equal to those in this+--     structure+--+-- -   If the+--     <{html_spec_relative}#features-features-shaderStorageImageMultisample multisampled storage images>+--     feature is not enabled, and @usage@ contains+--     @VK_IMAGE_USAGE_STORAGE_BIT@, @samples@ /must/ be+--     @VK_SAMPLE_COUNT_1_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseBinding sparse bindings>+--     feature is not enabled, @flags@ /must/ not contain+--     @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidencyAliased sparse aliased residency>+--     feature is not enabled, @flags@ /must/ not contain+--     @VK_IMAGE_CREATE_SPARSE_ALIASED_BIT@+--+-- -   If @imageType@ is @VK_IMAGE_TYPE_1D@, @flags@ /must/ not contain+--     @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidencyImage2D sparse residency for 2D images>+--     feature is not enabled, and @imageType@ is @VK_IMAGE_TYPE_2D@,+--     @flags@ /must/ not contain @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidencyImage3D sparse residency for 3D images>+--     feature is not enabled, and @imageType@ is @VK_IMAGE_TYPE_3D@,+--     @flags@ /must/ not contain @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidency2Samples sparse residency for images with 2 samples>+--     feature is not enabled, @imageType@ is @VK_IMAGE_TYPE_2D@, and+--     @samples@ is @VK_SAMPLE_COUNT_2_BIT@, @flags@ /must/ not contain+--     @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidency4Samples sparse residency for images with 4 samples>+--     feature is not enabled, @imageType@ is @VK_IMAGE_TYPE_2D@, and+--     @samples@ is @VK_SAMPLE_COUNT_4_BIT@, @flags@ /must/ not contain+--     @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidency8Samples sparse residency for images with 8 samples>+--     feature is not enabled, @imageType@ is @VK_IMAGE_TYPE_2D@, and+--     @samples@ is @VK_SAMPLE_COUNT_8_BIT@, @flags@ /must/ not contain+--     @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidency16Samples sparse residency for images with 16 samples>+--     feature is not enabled, @imageType@ is @VK_IMAGE_TYPE_2D@, and+--     @samples@ is @VK_SAMPLE_COUNT_16_BIT@, @flags@ /must/ not contain+--     @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_LINEAR@, @format@ /must/ be a format+--     that has at least one supported feature bit present in the value of+--     @VkFormatProperties@::@linearTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_LINEAR@, and+--     @VkFormatProperties@::@linearTilingFeatures@ (as returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@) does not include @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@,+--     @usage@ /must/ not contain @VK_IMAGE_USAGE_SAMPLED_BIT@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_LINEAR@, and+--     @VkFormatProperties@::@linearTilingFeatures@ (as returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@) does not include @VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT@,+--     @usage@ /must/ not contain @VK_IMAGE_USAGE_STORAGE_BIT@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_LINEAR@, and+--     @VkFormatProperties@::@linearTilingFeatures@ (as returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@) does not include @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT@,+--     @usage@ /must/ not contain @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_LINEAR@, and+--     @VkFormatProperties@::@linearTilingFeatures@ (as returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@) does not include+--     @VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT@, @usage@ /must/ not+--     contain @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_OPTIMAL@, @format@ /must/ be a+--     format that has at least one supported feature bit present in the+--     value of @VkFormatProperties@::@optimalTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_OPTIMAL@, and+--     @VkFormatProperties@::@optimalTilingFeatures@ (as returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@) does not include @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@,+--     @usage@ /must/ not contain @VK_IMAGE_USAGE_SAMPLED_BIT@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_OPTIMAL@, and+--     @VkFormatProperties@::@optimalTilingFeatures@ (as returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@) does not include @VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT@,+--     @usage@ /must/ not contain @VK_IMAGE_USAGE_STORAGE_BIT@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_OPTIMAL@, and+--     @VkFormatProperties@::@optimalTilingFeatures@ (as returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@) does not include @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT@,+--     @usage@ /must/ not contain @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@+--+-- -   If @tiling@ is @VK_IMAGE_TILING_OPTIMAL@, and+--     @VkFormatProperties@::@optimalTilingFeatures@ (as returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@) does not include+--     @VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT@, @usage@ /must/ not+--     contain @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@+--+-- -   If @flags@ contains @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@ or+--     @VK_IMAGE_CREATE_SPARSE_ALIASED_BIT@, it /must/ also contain+--     @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@+--+-- -   If any of the bits @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@,+--     @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@, or+--     @VK_IMAGE_CREATE_SPARSE_ALIASED_BIT@ are set,+--     @VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT@ /must/ not also be set+--+-- -   @initialLayout@ /must/ be @VK_IMAGE_LAYOUT_UNDEFINED@ or+--     @VK_IMAGE_LAYOUT_PREINITIALIZED@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV',+--     'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkExternalFormatANDROID',+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryImageCreateInfo',+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV',+--     'Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR',+--     or+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkImageSwapchainCreateInfoKHR'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits'+--     values+--+-- -   @imageType@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType' value+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- -   @samples@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+--     value+--+-- -   @tiling@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling' value+--+-- -   @usage@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits'+--     values+--+-- -   @usage@ /must/ not be @0@+--+-- -   @sharingMode@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Buffer.VkSharingMode' value+--+-- -   @initialLayout@ /must/ be a valid 'VkImageLayout' value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D',+-- 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlags',+-- 'VkImageLayout',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits',+-- 'Graphics.Vulkan.Core10.Buffer.VkSharingMode',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateImage'+data VkImageCreateInfo = VkImageCreateInfo+  { -- No documentation found for Nested "VkImageCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageCreateInfo" "vkFlags"+  vkFlags :: VkImageCreateFlags+  , -- No documentation found for Nested "VkImageCreateInfo" "vkImageType"+  vkImageType :: VkImageType+  , -- No documentation found for Nested "VkImageCreateInfo" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkImageCreateInfo" "vkExtent"+  vkExtent :: VkExtent3D+  , -- No documentation found for Nested "VkImageCreateInfo" "vkMipLevels"+  vkMipLevels :: Word32+  , -- No documentation found for Nested "VkImageCreateInfo" "vkArrayLayers"+  vkArrayLayers :: Word32+  , -- No documentation found for Nested "VkImageCreateInfo" "vkSamples"+  vkSamples :: VkSampleCountFlagBits+  , -- No documentation found for Nested "VkImageCreateInfo" "vkTiling"+  vkTiling :: VkImageTiling+  , -- No documentation found for Nested "VkImageCreateInfo" "vkUsage"+  vkUsage :: VkImageUsageFlags+  , -- No documentation found for Nested "VkImageCreateInfo" "vkSharingMode"+  vkSharingMode :: VkSharingMode+  , -- No documentation found for Nested "VkImageCreateInfo" "vkQueueFamilyIndexCount"+  vkQueueFamilyIndexCount :: Word32+  , -- No documentation found for Nested "VkImageCreateInfo" "vkPQueueFamilyIndices"+  vkPQueueFamilyIndices :: Ptr Word32+  , -- No documentation found for Nested "VkImageCreateInfo" "vkInitialLayout"+  vkInitialLayout :: VkImageLayout+  }+  deriving (Eq, Show)++instance Storable VkImageCreateInfo where+  sizeOf ~_ = 88+  alignment ~_ = 8+  peek ptr = VkImageCreateInfo <$> peek (ptr `plusPtr` 0)+                               <*> peek (ptr `plusPtr` 8)+                               <*> peek (ptr `plusPtr` 16)+                               <*> peek (ptr `plusPtr` 20)+                               <*> peek (ptr `plusPtr` 24)+                               <*> peek (ptr `plusPtr` 28)+                               <*> peek (ptr `plusPtr` 40)+                               <*> peek (ptr `plusPtr` 44)+                               <*> peek (ptr `plusPtr` 48)+                               <*> peek (ptr `plusPtr` 52)+                               <*> peek (ptr `plusPtr` 56)+                               <*> peek (ptr `plusPtr` 60)+                               <*> peek (ptr `plusPtr` 64)+                               <*> peek (ptr `plusPtr` 72)+                               <*> peek (ptr `plusPtr` 80)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkImageType (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkFormat (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 28) (vkExtent (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkMipLevels (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 44) (vkArrayLayers (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkSamples (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 52) (vkTiling (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkUsage (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 60) (vkSharingMode (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 64) (vkQueueFamilyIndexCount (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 72) (vkPQueueFamilyIndices (poked :: VkImageCreateInfo))+                *> poke (ptr `plusPtr` 80) (vkInitialLayout (poked :: VkImageCreateInfo))+-- | VkSubresourceLayout - Structure specifying subresource layout+--+-- = Description+-- #_description#+--+-- For images created with linear tiling, @rowPitch@, @arrayPitch@ and+-- @depthPitch@ describe the layout of the image subresource in linear+-- memory. For uncompressed formats, @rowPitch@ is the number of bytes+-- between texels with the same x coordinate in adjacent rows (y+-- coordinates differ by one). @arrayPitch@ is the number of bytes between+-- texels with the same x and y coordinate in adjacent array layers of the+-- image (array layer values differ by one). @depthPitch@ is the number of+-- bytes between texels with the same x and y coordinate in adjacent slices+-- of a 3D image (z coordinates differ by one). Expressed as an addressing+-- formula, the starting byte of a texel in the image subresource has+-- address:+--+-- > // (x,y,z,layer) are in texel coordinates+-- > address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*elementSize + offset+--+-- For compressed formats, the @rowPitch@ is the number of bytes between+-- compressed texel blocks in adjacent rows. @arrayPitch@ is the number of+-- bytes between compressed texel blocks in adjacent array layers.+-- @depthPitch@ is the number of bytes between compressed texel blocks in+-- adjacent slices of a 3D image.+--+-- > // (x,y,z,layer) are in compressed texel block coordinates+-- > address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*compressedTexelBlockByteSize + offset;+--+-- @arrayPitch@ is undefined for images that were not created as arrays.+-- @depthPitch@ is defined only for 3D images.+--+-- For color formats, the @aspectMask@ member of @VkImageSubresource@+-- /must/ be @VK_IMAGE_ASPECT_COLOR_BIT@. For depth\/stencil formats,+-- @aspectMask@ /must/ be either @VK_IMAGE_ASPECT_DEPTH_BIT@ or+-- @VK_IMAGE_ASPECT_STENCIL_BIT@. On implementations that store depth and+-- stencil aspects separately, querying each of these image subresource+-- layouts will return a different @offset@ and @size@ representing the+-- region of memory used for that aspect. On implementations that store+-- depth and stencil aspects interleaved, the same @offset@ and @size@ are+-- returned and represent the interleaved memory allocation.+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@, 'vkGetImageSubresourceLayout'+data VkSubresourceLayout = VkSubresourceLayout+  { -- No documentation found for Nested "VkSubresourceLayout" "vkOffset"+  vkOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkSubresourceLayout" "vkSize"+  vkSize :: VkDeviceSize+  , -- No documentation found for Nested "VkSubresourceLayout" "vkRowPitch"+  vkRowPitch :: VkDeviceSize+  , -- No documentation found for Nested "VkSubresourceLayout" "vkArrayPitch"+  vkArrayPitch :: VkDeviceSize+  , -- No documentation found for Nested "VkSubresourceLayout" "vkDepthPitch"+  vkDepthPitch :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkSubresourceLayout where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkSubresourceLayout <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 16)+                                 <*> peek (ptr `plusPtr` 24)+                                 <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkSubresourceLayout))+                *> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSubresourceLayout))+                *> poke (ptr `plusPtr` 16) (vkRowPitch (poked :: VkSubresourceLayout))+                *> poke (ptr `plusPtr` 24) (vkArrayPitch (poked :: VkSubresourceLayout))+                *> poke (ptr `plusPtr` 32) (vkDepthPitch (poked :: VkSubresourceLayout))
+ src/Graphics/Vulkan/Core10/ImageView.hs view
@@ -0,0 +1,906 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.ImageView+  ( VkComponentSwizzle(..)+  , pattern VK_COMPONENT_SWIZZLE_IDENTITY+  , pattern VK_COMPONENT_SWIZZLE_ZERO+  , pattern VK_COMPONENT_SWIZZLE_ONE+  , pattern VK_COMPONENT_SWIZZLE_R+  , pattern VK_COMPONENT_SWIZZLE_G+  , pattern VK_COMPONENT_SWIZZLE_B+  , pattern VK_COMPONENT_SWIZZLE_A+  , VkImageViewType(..)+  , pattern VK_IMAGE_VIEW_TYPE_1D+  , pattern VK_IMAGE_VIEW_TYPE_2D+  , pattern VK_IMAGE_VIEW_TYPE_3D+  , pattern VK_IMAGE_VIEW_TYPE_CUBE+  , pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY+  , pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY+  , pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY+  , VkImageViewCreateFlags(..)+  , VkImageView+  , vkCreateImageView+  , vkDestroyImageView+  , VkComponentMapping(..)+  , VkImageSubresourceRange(..)+  , VkImageViewCreateInfo(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkFormat(..)+  , VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkImage+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkImageAspectFlags+  )+++-- ** VkComponentSwizzle++-- | VkComponentSwizzle - Specify how a component is swizzled+--+-- = Description+-- #_description#+--+-- -   @VK_COMPONENT_SWIZZLE_IDENTITY@ specifies that the component is set+--     to the identity swizzle.+--+-- -   @VK_COMPONENT_SWIZZLE_ZERO@ specifies that the component is set to+--     zero.+--+-- -   @VK_COMPONENT_SWIZZLE_ONE@ specifies that the component is set to+--     either 1 or 1.0, depending on whether the type of the image view+--     format is integer or floating-point respectively, as determined by+--     the+--     <{html_spec_relative}#features-formats-definition Format Definition>+--     section for each 'Graphics.Vulkan.Core10.Core.VkFormat'.+--+-- -   @VK_COMPONENT_SWIZZLE_R@ specifies that the component is set to the+--     value of the R component of the image.+--+-- -   @VK_COMPONENT_SWIZZLE_G@ specifies that the component is set to the+--     value of the G component of the image.+--+-- -   @VK_COMPONENT_SWIZZLE_B@ specifies that the component is set to the+--     value of the B component of the image.+--+-- -   @VK_COMPONENT_SWIZZLE_A@ specifies that the component is set to the+--     value of the A component of the image.+--+-- Setting the identity swizzle on a component is equivalent to setting the+-- identity mapping on that component. That is:+--+-- > +-----------------------------------+-----------------------------------++-- > | Component                         | Identity Mapping                  |+-- > +===================================+===================================++-- > | @components.r@                    | @VK_COMPONENT_SWIZZLE_R@          |+-- > +-----------------------------------+-----------------------------------++-- > | @components.g@                    | @VK_COMPONENT_SWIZZLE_G@          |+-- > +-----------------------------------+-----------------------------------++-- > | @components.b@                    | @VK_COMPONENT_SWIZZLE_B@          |+-- > +-----------------------------------+-----------------------------------++-- > | @components.a@                    | @VK_COMPONENT_SWIZZLE_A@          |+-- > +-----------------------------------+-----------------------------------++-- >+-- > Component Mappings Equivalent To @VK_COMPONENT_SWIZZLE_IDENTITY@+--+-- = See Also+-- #_see_also#+--+-- 'VkComponentMapping'+newtype VkComponentSwizzle = VkComponentSwizzle Int32+  deriving (Eq, Ord, Storable)++instance Show VkComponentSwizzle where+  showsPrec _ VK_COMPONENT_SWIZZLE_IDENTITY = showString "VK_COMPONENT_SWIZZLE_IDENTITY"+  showsPrec _ VK_COMPONENT_SWIZZLE_ZERO = showString "VK_COMPONENT_SWIZZLE_ZERO"+  showsPrec _ VK_COMPONENT_SWIZZLE_ONE = showString "VK_COMPONENT_SWIZZLE_ONE"+  showsPrec _ VK_COMPONENT_SWIZZLE_R = showString "VK_COMPONENT_SWIZZLE_R"+  showsPrec _ VK_COMPONENT_SWIZZLE_G = showString "VK_COMPONENT_SWIZZLE_G"+  showsPrec _ VK_COMPONENT_SWIZZLE_B = showString "VK_COMPONENT_SWIZZLE_B"+  showsPrec _ VK_COMPONENT_SWIZZLE_A = showString "VK_COMPONENT_SWIZZLE_A"+  showsPrec p (VkComponentSwizzle x) = showParen (p >= 11) (showString "VkComponentSwizzle " . showsPrec 11 x)++instance Read VkComponentSwizzle where+  readPrec = parens ( choose [ ("VK_COMPONENT_SWIZZLE_IDENTITY", pure VK_COMPONENT_SWIZZLE_IDENTITY)+                             , ("VK_COMPONENT_SWIZZLE_ZERO",     pure VK_COMPONENT_SWIZZLE_ZERO)+                             , ("VK_COMPONENT_SWIZZLE_ONE",      pure VK_COMPONENT_SWIZZLE_ONE)+                             , ("VK_COMPONENT_SWIZZLE_R",        pure VK_COMPONENT_SWIZZLE_R)+                             , ("VK_COMPONENT_SWIZZLE_G",        pure VK_COMPONENT_SWIZZLE_G)+                             , ("VK_COMPONENT_SWIZZLE_B",        pure VK_COMPONENT_SWIZZLE_B)+                             , ("VK_COMPONENT_SWIZZLE_A",        pure VK_COMPONENT_SWIZZLE_A)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkComponentSwizzle")+                        v <- step readPrec+                        pure (VkComponentSwizzle v)+                        )+                    )++-- No documentation found for Nested "VkComponentSwizzle" "VK_COMPONENT_SWIZZLE_IDENTITY"+pattern VK_COMPONENT_SWIZZLE_IDENTITY :: VkComponentSwizzle+pattern VK_COMPONENT_SWIZZLE_IDENTITY = VkComponentSwizzle 0++-- No documentation found for Nested "VkComponentSwizzle" "VK_COMPONENT_SWIZZLE_ZERO"+pattern VK_COMPONENT_SWIZZLE_ZERO :: VkComponentSwizzle+pattern VK_COMPONENT_SWIZZLE_ZERO = VkComponentSwizzle 1++-- No documentation found for Nested "VkComponentSwizzle" "VK_COMPONENT_SWIZZLE_ONE"+pattern VK_COMPONENT_SWIZZLE_ONE :: VkComponentSwizzle+pattern VK_COMPONENT_SWIZZLE_ONE = VkComponentSwizzle 2++-- No documentation found for Nested "VkComponentSwizzle" "VK_COMPONENT_SWIZZLE_R"+pattern VK_COMPONENT_SWIZZLE_R :: VkComponentSwizzle+pattern VK_COMPONENT_SWIZZLE_R = VkComponentSwizzle 3++-- No documentation found for Nested "VkComponentSwizzle" "VK_COMPONENT_SWIZZLE_G"+pattern VK_COMPONENT_SWIZZLE_G :: VkComponentSwizzle+pattern VK_COMPONENT_SWIZZLE_G = VkComponentSwizzle 4++-- No documentation found for Nested "VkComponentSwizzle" "VK_COMPONENT_SWIZZLE_B"+pattern VK_COMPONENT_SWIZZLE_B :: VkComponentSwizzle+pattern VK_COMPONENT_SWIZZLE_B = VkComponentSwizzle 5++-- No documentation found for Nested "VkComponentSwizzle" "VK_COMPONENT_SWIZZLE_A"+pattern VK_COMPONENT_SWIZZLE_A :: VkComponentSwizzle+pattern VK_COMPONENT_SWIZZLE_A = VkComponentSwizzle 6+-- ** VkImageViewType++-- | VkImageViewType - Image view types+--+-- = Description+-- #_description#+--+-- The exact image view type is partially implicit, based on the image’s+-- type and sample count, as well as the view creation parameters as+-- described in the+-- <{html_spec_relative}#resources-image-views-compatibility image view compatibility table>+-- for 'vkCreateImageView'. This table also shows which SPIR-V+-- @OpTypeImage@ @Dim@ and @Arrayed@ parameters correspond to each image+-- view type.+--+-- = See Also+-- #_see_also#+--+-- 'VkImageViewCreateInfo'+newtype VkImageViewType = VkImageViewType Int32+  deriving (Eq, Ord, Storable)++instance Show VkImageViewType where+  showsPrec _ VK_IMAGE_VIEW_TYPE_1D = showString "VK_IMAGE_VIEW_TYPE_1D"+  showsPrec _ VK_IMAGE_VIEW_TYPE_2D = showString "VK_IMAGE_VIEW_TYPE_2D"+  showsPrec _ VK_IMAGE_VIEW_TYPE_3D = showString "VK_IMAGE_VIEW_TYPE_3D"+  showsPrec _ VK_IMAGE_VIEW_TYPE_CUBE = showString "VK_IMAGE_VIEW_TYPE_CUBE"+  showsPrec _ VK_IMAGE_VIEW_TYPE_1D_ARRAY = showString "VK_IMAGE_VIEW_TYPE_1D_ARRAY"+  showsPrec _ VK_IMAGE_VIEW_TYPE_2D_ARRAY = showString "VK_IMAGE_VIEW_TYPE_2D_ARRAY"+  showsPrec _ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = showString "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY"+  showsPrec p (VkImageViewType x) = showParen (p >= 11) (showString "VkImageViewType " . showsPrec 11 x)++instance Read VkImageViewType where+  readPrec = parens ( choose [ ("VK_IMAGE_VIEW_TYPE_1D",         pure VK_IMAGE_VIEW_TYPE_1D)+                             , ("VK_IMAGE_VIEW_TYPE_2D",         pure VK_IMAGE_VIEW_TYPE_2D)+                             , ("VK_IMAGE_VIEW_TYPE_3D",         pure VK_IMAGE_VIEW_TYPE_3D)+                             , ("VK_IMAGE_VIEW_TYPE_CUBE",       pure VK_IMAGE_VIEW_TYPE_CUBE)+                             , ("VK_IMAGE_VIEW_TYPE_1D_ARRAY",   pure VK_IMAGE_VIEW_TYPE_1D_ARRAY)+                             , ("VK_IMAGE_VIEW_TYPE_2D_ARRAY",   pure VK_IMAGE_VIEW_TYPE_2D_ARRAY)+                             , ("VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", pure VK_IMAGE_VIEW_TYPE_CUBE_ARRAY)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkImageViewType")+                        v <- step readPrec+                        pure (VkImageViewType v)+                        )+                    )++-- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_1D"+pattern VK_IMAGE_VIEW_TYPE_1D :: VkImageViewType+pattern VK_IMAGE_VIEW_TYPE_1D = VkImageViewType 0++-- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_2D"+pattern VK_IMAGE_VIEW_TYPE_2D :: VkImageViewType+pattern VK_IMAGE_VIEW_TYPE_2D = VkImageViewType 1++-- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_3D"+pattern VK_IMAGE_VIEW_TYPE_3D :: VkImageViewType+pattern VK_IMAGE_VIEW_TYPE_3D = VkImageViewType 2++-- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_CUBE"+pattern VK_IMAGE_VIEW_TYPE_CUBE :: VkImageViewType+pattern VK_IMAGE_VIEW_TYPE_CUBE = VkImageViewType 3++-- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_1D_ARRAY"+pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY :: VkImageViewType+pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY = VkImageViewType 4++-- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_2D_ARRAY"+pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY :: VkImageViewType+pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY = VkImageViewType 5++-- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY"+pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY :: VkImageViewType+pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = VkImageViewType 6+-- ** VkImageViewCreateFlags++-- | VkImageViewCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkImageViewCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkImageViewCreateInfo'+newtype VkImageViewCreateFlags = VkImageViewCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkImageViewCreateFlags where+  +  showsPrec p (VkImageViewCreateFlags x) = showParen (p >= 11) (showString "VkImageViewCreateFlags " . showsPrec 11 x)++instance Read VkImageViewCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkImageViewCreateFlags")+                        v <- step readPrec+                        pure (VkImageViewCreateFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkImageView_T+-- | VkImageView - Opaque handle to a image view object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo',+-- 'Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo',+-- 'vkCreateImageView', 'vkDestroyImageView'+type VkImageView = Ptr VkImageView_T+-- | vkCreateImageView - Create an image view from an existing image+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the image view.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkImageViewCreateInfo@ structure containing parameters to be used+--     to create the image view.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pView@ points to a @VkImageView@ handle in which the resulting+--     image view object is returned.+--+-- = Description+-- #_description#+--+-- Some of the image creation parameters are inherited by the view. In+-- particular, image view creation inherits the implicit parameter @usage@+-- specifying the allowed usages of the image view that, by default, takes+-- the value of the corresponding @usage@ parameter specified in+-- @VkImageCreateInfo@ at image creation time.+--+-- The remaining parameters are contained in the @pCreateInfo@.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkImageViewCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pView@ /must/ be a valid pointer to a @VkImageView@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkImageView',+-- 'VkImageViewCreateInfo'+foreign import ccall "vkCreateImageView" vkCreateImageView :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkImageViewCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pView" ::: Ptr VkImageView) -> IO VkResult+-- | vkDestroyImageView - Destroy an image view object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the image view.+--+-- -   @imageView@ is the image view to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @imageView@ /must/ have+--     completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @imageView@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @imageView@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @imageView@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @imageView@+--     /must/ be a valid @VkImageView@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @imageView@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @imageView@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkImageView'+foreign import ccall "vkDestroyImageView" vkDestroyImageView :: ("device" ::: VkDevice) -> ("imageView" ::: VkImageView) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkComponentMapping - Structure specifying a color component mapping+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @r@ /must/ be a valid 'VkComponentSwizzle' value+--+-- -   @g@ /must/ be a valid 'VkComponentSwizzle' value+--+-- -   @b@ /must/ be a valid 'VkComponentSwizzle' value+--+-- -   @a@ /must/ be a valid 'VkComponentSwizzle' value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferFormatPropertiesANDROID',+-- 'VkComponentSwizzle', 'VkImageViewCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo'+data VkComponentMapping = VkComponentMapping+  { -- No documentation found for Nested "VkComponentMapping" "vkR"+  vkR :: VkComponentSwizzle+  , -- No documentation found for Nested "VkComponentMapping" "vkG"+  vkG :: VkComponentSwizzle+  , -- No documentation found for Nested "VkComponentMapping" "vkB"+  vkB :: VkComponentSwizzle+  , -- No documentation found for Nested "VkComponentMapping" "vkA"+  vkA :: VkComponentSwizzle+  }+  deriving (Eq, Show)++instance Storable VkComponentMapping where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek ptr = VkComponentMapping <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 4)+                                <*> peek (ptr `plusPtr` 8)+                                <*> peek (ptr `plusPtr` 12)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkR (poked :: VkComponentMapping))+                *> poke (ptr `plusPtr` 4) (vkG (poked :: VkComponentMapping))+                *> poke (ptr `plusPtr` 8) (vkB (poked :: VkComponentMapping))+                *> poke (ptr `plusPtr` 12) (vkA (poked :: VkComponentMapping))+-- | VkImageSubresourceRange - Structure specifying a image subresource range+--+-- = Description+-- #_description#+--+-- The number of mipmap levels and array layers /must/ be a subset of the+-- image subresources in the image. If an application wants to use all mip+-- levels or layers in an image after the @baseMipLevel@ or+-- @baseArrayLayer@, it /can/ set @levelCount@ and @layerCount@ to the+-- special values @VK_REMAINING_MIP_LEVELS@ and @VK_REMAINING_ARRAY_LAYERS@+-- without knowing the exact number of mip levels or layers.+--+-- For cube and cube array image views, the layers of the image view+-- starting at @baseArrayLayer@ correspond to faces in the order +X, -X,+-- +Y, -Y, +Z, -Z. For cube arrays, each set of six sequential layers is a+-- single cube, so the number of cube maps in a cube map array view is+-- /@layerCount@ \/ 6/, and image array layer (@baseArrayLayer@ + i) is+-- face index (i mod 6) of cube /i \/ 6/. If the number of layers in the+-- view, whether set explicitly in @layerCount@ or implied by+-- @VK_REMAINING_ARRAY_LAYERS@, is not a multiple of 6, behavior when+-- indexing the last cube is undefined.+--+-- @aspectMask@ /must/ be only @VK_IMAGE_ASPECT_COLOR_BIT@,+-- @VK_IMAGE_ASPECT_DEPTH_BIT@ or @VK_IMAGE_ASPECT_STENCIL_BIT@ if @format@+-- is a color, depth-only or stencil-only format, respectively. If using a+-- depth\/stencil format with both depth and stencil components,+-- @aspectMask@ /must/ include at least one of @VK_IMAGE_ASPECT_DEPTH_BIT@+-- and @VK_IMAGE_ASPECT_STENCIL_BIT@, and /can/ include both.+--+-- When using an imageView of a depth\/stencil image to populate a+-- descriptor set (e.g. for sampling in the shader, or for use as an input+-- attachment), the @aspectMask@ /must/ only include one bit and selects+-- whether the imageView is used for depth reads (i.e. using a+-- floating-point sampler or input attachment in the shader) or stencil+-- reads (i.e. using an unsigned integer sampler or input attachment in the+-- shader). When an imageView of a depth\/stencil image is used as a+-- depth\/stencil framebuffer attachment, the @aspectMask@ is ignored and+-- both depth and stencil image subresources are used.+--+-- The @components@ member is of type 'VkComponentMapping', and describes a+-- remapping from components of the image to components of the vector+-- returned by shader image instructions. This remapping /must/ be identity+-- for storage image descriptors, input attachment descriptors, and+-- framebuffer attachments.+--+-- == Valid Usage+--+-- -   If @levelCount@ is not @VK_REMAINING_MIP_LEVELS@, it /must/ be+--     greater than @0@+--+-- -   If @layerCount@ is not @VK_REMAINING_ARRAY_LAYERS@, it /must/ be+--     greater than @0@+--+-- == Valid Usage (Implicit)+--+-- -   @aspectMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits'+--     values+--+-- -   @aspectMask@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlags',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier',+-- 'VkImageViewCreateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearColorImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearDepthStencilImage'+data VkImageSubresourceRange = VkImageSubresourceRange+  { -- No documentation found for Nested "VkImageSubresourceRange" "vkAspectMask"+  vkAspectMask :: VkImageAspectFlags+  , -- No documentation found for Nested "VkImageSubresourceRange" "vkBaseMipLevel"+  vkBaseMipLevel :: Word32+  , -- No documentation found for Nested "VkImageSubresourceRange" "vkLevelCount"+  vkLevelCount :: Word32+  , -- No documentation found for Nested "VkImageSubresourceRange" "vkBaseArrayLayer"+  vkBaseArrayLayer :: Word32+  , -- No documentation found for Nested "VkImageSubresourceRange" "vkLayerCount"+  vkLayerCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkImageSubresourceRange where+  sizeOf ~_ = 20+  alignment ~_ = 4+  peek ptr = VkImageSubresourceRange <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 4)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 12)+                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresourceRange))+                *> poke (ptr `plusPtr` 4) (vkBaseMipLevel (poked :: VkImageSubresourceRange))+                *> poke (ptr `plusPtr` 8) (vkLevelCount (poked :: VkImageSubresourceRange))+                *> poke (ptr `plusPtr` 12) (vkBaseArrayLayer (poked :: VkImageSubresourceRange))+                *> poke (ptr `plusPtr` 16) (vkLayerCount (poked :: VkImageSubresourceRange))+-- | VkImageViewCreateInfo - Structure specifying parameters of a newly+-- created image view+--+-- = Description+-- #_description#+--+-- If @image@ was created with the @VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT@+-- flag, @format@ /can/ be different from the image’s format, but if they+-- are not equal they /must/ be /compatible/. Image format compatibility is+-- defined in the+-- <{html_spec_relative}#features-formats-compatibility-classes Format Compatibility Classes>+-- section. Views of compatible formats will have the same mapping between+-- texel coordinates and memory locations irrespective of the @format@,+-- with only the interpretation of the bit pattern changing.+--+-- __Note__+--+-- Values intended to be used with one view format /may/ not be exactly+-- preserved when written or read through a different format. For example,+-- an integer value that happens to have the bit pattern of a floating+-- point denorm or NaN /may/ be flushed or canonicalized when written or+-- read through a view with a floating point format. Similarly, a value+-- written through a signed normalized format that has a bit pattern+-- exactly equal to -2b /may/ be changed to -2b + 1 as described in+-- <{html_spec_relative}#fundamentals-fixedfpconv Conversion from Normalized Fixed-Point to Floating-Point>.+--+-- > +---------+------------------------+-----------------------------------++-- > | Dim,    | Image parameters       | View parameters                   |+-- > | Arrayed |                        |                                   |+-- > | ,       |                        |                                   |+-- > | MS      |                        |                                   |+-- > +=========+========================+===================================++-- > |         | @imageType@ =          | @baseArrayLayer@ and @layerCount@ |+-- > |         | ci.@imageType@         | are members of the                |+-- > |         | @width@ =              | @subresourceRange@ member.        |+-- > |         | ci.@extent.width@      |                                   |+-- > |         | @height@ =             |                                   |+-- > |         | ci.@extent.height@     |                                   |+-- > |         | @depth@ =              |                                   |+-- > |         | ci.@extent.depth@      |                                   |+-- > |         | @arrayLayers@ =        |                                   |+-- > |         | ci.@arrayLayers@       |                                   |+-- > |         | @samples@ =            |                                   |+-- > |         | ci.@samples@           |                                   |+-- > |         | @flags@ = ci.@flags@   |                                   |+-- > |         | where ci is the        |                                   |+-- > |         | 'Graphics.Vulkan.Core1 |                                   |+-- > |         | 0.Image.VkImageCreateI |                                   |+-- > |         | nfo'                   |                                   |+-- > |         | used to create         |                                   |+-- > |         | @image@.               |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __1D,   | @imageType@ =          | @viewType@ =                      |+-- > | 0, 0__  | @VK_IMAGE_TYPE_1D@     | @VK_IMAGE_VIEW_TYPE_1D@           |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ ≥ 0              |+-- > |         | @height@ = 1           | @layerCount@ = 1                  |+-- > |         | @depth@ = 1            |                                   |+-- > |         | @arrayLayers@ ≥ 1      |                                   |+-- > |         | @samples@ = 1          |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __1D,   | @imageType@ =          | @viewType@ =                      |+-- > | 1, 0__  | @VK_IMAGE_TYPE_1D@     | @VK_IMAGE_VIEW_TYPE_1D_ARRAY@     |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ ≥ 0              |+-- > |         | @height@ = 1           | @layerCount@ ≥ 1                  |+-- > |         | @depth@ = 1            |                                   |+-- > |         | @arrayLayers@ ≥ 1      |                                   |+-- > |         | @samples@ = 1          |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __2D,   | @imageType@ =          | @viewType@ =                      |+-- > | 0, 0__  | @VK_IMAGE_TYPE_2D@     | @VK_IMAGE_VIEW_TYPE_2D@           |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ ≥ 0              |+-- > |         | @height@ ≥ 1           | @layerCount@ = 1                  |+-- > |         | @depth@ = 1            |                                   |+-- > |         | @arrayLayers@ ≥ 1      |                                   |+-- > |         | @samples@ = 1          |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __2D,   | @imageType@ =          | @viewType@ =                      |+-- > | 1, 0__  | @VK_IMAGE_TYPE_2D@     | @VK_IMAGE_VIEW_TYPE_2D_ARRAY@     |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ ≥ 0              |+-- > |         | @height@ ≥ 1           | @layerCount@ ≥ 1                  |+-- > |         | @depth@ = 1            |                                   |+-- > |         | @arrayLayers@ ≥ 1      |                                   |+-- > |         | @samples@ = 1          |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __2D,   | @imageType@ =          | @viewType@ =                      |+-- > | 0, 1__  | @VK_IMAGE_TYPE_2D@     | @VK_IMAGE_VIEW_TYPE_2D@           |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ ≥ 0              |+-- > |         | @height@ ≥ 1           | @layerCount@ = 1                  |+-- > |         | @depth@ = 1            |                                   |+-- > |         | @arrayLayers@ ≥ 1      |                                   |+-- > |         | @samples@ > 1          |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __2D,   | @imageType@ =          | @viewType@ =                      |+-- > | 1, 1__  | @VK_IMAGE_TYPE_2D@     | @VK_IMAGE_VIEW_TYPE_2D_ARRAY@     |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ ≥ 0              |+-- > |         | @height@ ≥ 1           | @layerCount@ ≥ 1                  |+-- > |         | @depth@ = 1            |                                   |+-- > |         | @arrayLayers@ ≥ 1      |                                   |+-- > |         | @samples@ > 1          |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __CUBE, | @imageType@ =          | @viewType@ =                      |+-- > | 0, 0__  | @VK_IMAGE_TYPE_2D@     | @VK_IMAGE_VIEW_TYPE_CUBE@         |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ ≥ 0              |+-- > |         | @height@ = @width@     | @layerCount@ = 6                  |+-- > |         | @depth@ = 1            |                                   |+-- > |         | @arrayLayers@ ≥ 6      |                                   |+-- > |         | @samples@ = 1          |                                   |+-- > |         | @flags@ includes       |                                   |+-- > |         | @VK_IMAGE_CREATE_CUBE_ |                                   |+-- > |         | COMPATIBLE_BIT@        |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __CUBE, | @imageType@ =          | @viewType@ =                      |+-- > | 1, 0__  | @VK_IMAGE_TYPE_2D@     | @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@   |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ ≥ 0              |+-- > |         | @height@ = width       | @layerCount@ = 6 × /N/, /N/ ≥ 1   |+-- > |         | @depth@ = 1            |                                   |+-- > |         | /N/ ≥ 1                |                                   |+-- > |         | @arrayLayers@ ≥ 6 ×    |                                   |+-- > |         | /N/                    |                                   |+-- > |         | @samples@ = 1          |                                   |+-- > |         | @flags@ includes       |                                   |+-- > |         | @VK_IMAGE_CREATE_CUBE_ |                                   |+-- > |         | COMPATIBLE_BIT@        |                                   |+-- > +---------+------------------------+-----------------------------------++-- > | __3D,   | @imageType@ =          | @viewType@ =                      |+-- > | 0, 0__  | @VK_IMAGE_TYPE_3D@     | @VK_IMAGE_VIEW_TYPE_3D@           |+-- > |         | @width@ ≥ 1            | @baseArrayLayer@ = 0              |+-- > |         | @height@ ≥ 1           | @layerCount@ = 1                  |+-- > |         | @depth@ ≥ 1            |                                   |+-- > |         | @arrayLayers@ = 1      |                                   |+-- > |         | @samples@ = 1          |                                   |+-- > +---------+------------------------+-----------------------------------++-- >+-- > Image and image view parameter compatibility requirements+--+-- == Valid Usage+--+-- -   If @image@ was not created with+--     @VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT@ then @viewType@ /must/ not be+--     @VK_IMAGE_VIEW_TYPE_CUBE@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@+--+-- -   If the+--     <{html_spec_relative}#features-features-imageCubeArray image cubemap arrays>+--     feature is not enabled, @viewType@ /must/ not be+--     @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_LINEAR@, @format@+--     /must/ be format that has at least one supported feature bit present+--     in the value of @VkFormatProperties@::@linearTilingFeatures@+--     returned by @vkGetPhysicalDeviceFormatProperties@ with the same+--     value of @format@+--+-- -   @image@ /must/ have been created with a @usage@ value containing at+--     least one of @VK_IMAGE_USAGE_SAMPLED_BIT@,+--     @VK_IMAGE_USAGE_STORAGE_BIT@, @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@,+--     @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@, or+--     @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_LINEAR@ and @usage@+--     contains @VK_IMAGE_USAGE_SAMPLED_BIT@, @format@ /must/ be supported+--     for sampled images, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_LINEAR@ and @usage@+--     contains @VK_IMAGE_USAGE_STORAGE_BIT@, @format@ /must/ be supported+--     for storage images, as specified by the+--     @VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_LINEAR@ and @usage@+--     contains @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@, @format@ /must/ be+--     supported for color attachments, as specified by the+--     @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_LINEAR@ and @usage@+--     contains @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@, @format@+--     /must/ be supported for depth\/stencil attachments, as specified by+--     the @VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_OPTIMAL@, @format@+--     /must/ be format that has at least one supported feature bit present+--     in the value of @VkFormatProperties@::@optimalTilingFeatures@+--     returned by @vkGetPhysicalDeviceFormatProperties@ with the same+--     value of @format@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_OPTIMAL@ and @usage@+--     contains @VK_IMAGE_USAGE_SAMPLED_BIT@, @format@ /must/ be supported+--     for sampled images, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@ flag in+--     @VkFormatProperties@::@optimalTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_OPTIMAL@ and @usage@+--     contains @VK_IMAGE_USAGE_STORAGE_BIT@, @format@ /must/ be supported+--     for storage images, as specified by the+--     @VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT@ flag in+--     @VkFormatProperties@::@optimalTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_OPTIMAL@ and @usage@+--     contains @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@, @format@ /must/ be+--     supported for color attachments, as specified by the+--     @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT@ flag in+--     @VkFormatProperties@::@optimalTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   If @image@ was created with @VK_IMAGE_TILING_OPTIMAL@ and @usage@+--     contains @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@, @format@+--     /must/ be supported for depth\/stencil attachments, as specified by+--     the @VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT@ flag in+--     @VkFormatProperties@::@optimalTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@ with the same value of+--     @format@+--+-- -   @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@+--     specified in 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when+--     @image@ was created+--+-- -   If @subresourceRange.levelCount@ is not @VK_REMAINING_MIP_LEVELS@,+--     @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@+--     /must/ be less than or equal to the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   @subresourceRange.baseArrayLayer@ /must/ be less than the+--     @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   If @subresourceRange.layerCount@ is not @VK_REMAINING_ARRAY_LAYERS@,+--     @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@+--     /must/ be less than or equal to the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   If @image@ was created with the @VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT@+--     flag, @format@ /must/ be compatible with the @format@ used to create+--     @image@, as defined in+--     <{html_spec_relative}#features-formats-compatibility-classes Format Compatibility Classes>+--+-- -   If @image@ was not created with the+--     @VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT@ flag, @format@ /must/ be+--     identical to the @format@ used to create @image@+--+-- -   If @image@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @subresourceRange@ and @viewType@ /must/ be compatible with the+--     image, as described in the+--     <{html_spec_relative}#resources-image-views-compatibility compatibility table>+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo'+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @viewType@ /must/ be a valid 'VkImageViewType' value+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- -   @components@ /must/ be a valid @VkComponentMapping@ structure+--+-- -   @subresourceRange@ /must/ be a valid @VkImageSubresourceRange@+--     structure+--+-- = See Also+-- #_see_also#+--+-- 'VkComponentMapping', 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'VkImageSubresourceRange', 'VkImageViewCreateFlags', 'VkImageViewType',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateImageView'+data VkImageViewCreateInfo = VkImageViewCreateInfo+  { -- No documentation found for Nested "VkImageViewCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageViewCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageViewCreateInfo" "vkFlags"+  vkFlags :: VkImageViewCreateFlags+  , -- No documentation found for Nested "VkImageViewCreateInfo" "vkImage"+  vkImage :: VkImage+  , -- No documentation found for Nested "VkImageViewCreateInfo" "vkViewType"+  vkViewType :: VkImageViewType+  , -- No documentation found for Nested "VkImageViewCreateInfo" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkImageViewCreateInfo" "vkComponents"+  vkComponents :: VkComponentMapping+  , -- No documentation found for Nested "VkImageViewCreateInfo" "vkSubresourceRange"+  vkSubresourceRange :: VkImageSubresourceRange+  }+  deriving (Eq, Show)++instance Storable VkImageViewCreateInfo where+  sizeOf ~_ = 80+  alignment ~_ = 8+  peek ptr = VkImageViewCreateInfo <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+                                   <*> peek (ptr `plusPtr` 24)+                                   <*> peek (ptr `plusPtr` 32)+                                   <*> peek (ptr `plusPtr` 36)+                                   <*> peek (ptr `plusPtr` 40)+                                   <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageViewCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageViewCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkImageViewCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkImage (poked :: VkImageViewCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkViewType (poked :: VkImageViewCreateInfo))+                *> poke (ptr `plusPtr` 36) (vkFormat (poked :: VkImageViewCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkComponents (poked :: VkImageViewCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkSubresourceRange (poked :: VkImageViewCreateInfo))
+ src/Graphics/Vulkan/Core10/LayerDiscovery.hs view
@@ -0,0 +1,205 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.LayerDiscovery+  ( VK_MAX_DESCRIPTION_SIZE+  , pattern VK_MAX_DESCRIPTION_SIZE+  , vkEnumerateInstanceLayerProperties+  , vkEnumerateDeviceLayerProperties+  , VkLayerProperties(..)+  ) where++import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CChar(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+import Graphics.Vulkan.Core10.ExtensionDiscovery+  ( VK_MAX_EXTENSION_NAME_SIZE+  )+++-- No documentation found for TopLevel "VK_MAX_DESCRIPTION_SIZE"+type VK_MAX_DESCRIPTION_SIZE = 256+-- No documentation found for Nested "Integral a => a" "VK_MAX_DESCRIPTION_SIZE"+pattern VK_MAX_DESCRIPTION_SIZE :: Integral a => a+pattern VK_MAX_DESCRIPTION_SIZE = 256+-- | vkEnumerateInstanceLayerProperties - Returns up to requested number of+-- global layer properties+--+-- = Parameters+-- #_parameters#+--+-- -   @pPropertyCount@ is a pointer to an integer related to the number of+--     layer properties available or queried, as described below.+--+-- -   @pProperties@ is either @NULL@ or a pointer to an array of+--     'VkLayerProperties' structures.+--+-- = Description+-- #_description#+--+-- If @pProperties@ is @NULL@, then the number of layer properties+-- available is returned in @pPropertyCount@. Otherwise, @pPropertyCount@+-- /must/ point to a variable set by the user to the number of elements in+-- the @pProperties@ array, and on return the variable is overwritten with+-- the number of structures actually written to @pProperties@. If+-- @pPropertyCount@ is less than the number of layer properties available,+-- at most @pPropertyCount@ structures will be written. If @pPropertyCount@+-- is smaller than the number of layers available, @VK_INCOMPLETE@ will be+-- returned instead of @VK_SUCCESS@, to indicate that not all the available+-- layer properties were returned.+--+-- The list of available layers may change at any time due to actions+-- outside of the Vulkan implementation, so two calls to+-- @vkEnumerateInstanceLayerProperties@ with the same parameters /may/+-- return different results, or retrieve different @pPropertyCount@ values+-- or @pProperties@ contents. Once an instance has been created, the layers+-- enabled for that instance will continue to be enabled and valid for the+-- lifetime of that instance, even if some of them become unavailable for+-- future instances.+--+-- == Valid Usage (Implicit)+--+-- -   @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPropertyCount@ is not @0@, and+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+--     to an array of @pPropertyCount@ @VkLayerProperties@ structures+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkLayerProperties'+foreign import ccall "vkEnumerateInstanceLayerProperties" vkEnumerateInstanceLayerProperties :: ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkLayerProperties) -> IO VkResult+-- | vkEnumerateDeviceLayerProperties - Returns properties of available+-- physical device layers+--+-- = Parameters+-- #_parameters#+--+-- -   @pPropertyCount@ is a pointer to an integer related to the number of+--     layer properties available or queried.+--+-- -   @pProperties@ is either @NULL@ or a pointer to an array of+--     'VkLayerProperties' structures.+--+-- = Description+-- #_description#+--+-- If @pProperties@ is @NULL@, then the number of layer properties+-- available is returned in @pPropertyCount@. Otherwise, @pPropertyCount@+-- /must/ point to a variable set by the user to the number of elements in+-- the @pProperties@ array, and on return the variable is overwritten with+-- the number of structures actually written to @pProperties@. If+-- @pPropertyCount@ is less than the number of layer properties available,+-- at most @pPropertyCount@ structures will be written. If @pPropertyCount@+-- is smaller than the number of layers available, @VK_INCOMPLETE@ will be+-- returned instead of @VK_SUCCESS@, to indicate that not all the available+-- layer properties were returned.+--+-- The list of layers enumerated by @vkEnumerateDeviceLayerProperties@+-- /must/ be exactly the sequence of layers enabled for the instance. The+-- members of @VkLayerProperties@ for each enumerated layer /must/ be the+-- same as the properties when the layer was enumerated by+-- @vkEnumerateInstanceLayerProperties@.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPropertyCount@ is not @0@, and+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+--     to an array of @pPropertyCount@ @VkLayerProperties@ structures+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkLayerProperties',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkEnumerateDeviceLayerProperties" vkEnumerateDeviceLayerProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkLayerProperties) -> IO VkResult+-- | VkLayerProperties - Structure specifying layer properties+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'vkEnumerateDeviceLayerProperties', 'vkEnumerateInstanceLayerProperties'+data VkLayerProperties = VkLayerProperties+  { -- No documentation found for Nested "VkLayerProperties" "vkLayerName"+  vkLayerName :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar+  , -- No documentation found for Nested "VkLayerProperties" "vkSpecVersion"+  vkSpecVersion :: Word32+  , -- No documentation found for Nested "VkLayerProperties" "vkImplementationVersion"+  vkImplementationVersion :: Word32+  , -- No documentation found for Nested "VkLayerProperties" "vkDescription"+  vkDescription :: Vector VK_MAX_DESCRIPTION_SIZE CChar+  }+  deriving (Eq, Show)++instance Storable VkLayerProperties where+  sizeOf ~_ = 520+  alignment ~_ = 4+  peek ptr = VkLayerProperties <$> peek (ptr `plusPtr` 0)+                               <*> peek (ptr `plusPtr` 256)+                               <*> peek (ptr `plusPtr` 260)+                               <*> peek (ptr `plusPtr` 264)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkLayerName (poked :: VkLayerProperties))+                *> poke (ptr `plusPtr` 256) (vkSpecVersion (poked :: VkLayerProperties))+                *> poke (ptr `plusPtr` 260) (vkImplementationVersion (poked :: VkLayerProperties))+                *> poke (ptr `plusPtr` 264) (vkDescription (poked :: VkLayerProperties))
+ src/Graphics/Vulkan/Core10/Memory.hs view
@@ -0,0 +1,753 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Memory+  ( VkMemoryMapFlags(..)+  , VkDeviceMemory+  , vkAllocateMemory+  , vkFreeMemory+  , vkMapMemory+  , vkUnmapMemory+  , vkFlushMappedMemoryRanges+  , vkInvalidateMappedMemoryRanges+  , vkGetDeviceMemoryCommitment+  , VkMemoryAllocateInfo(..)+  , VkMappedMemoryRange(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkAllocationCallbacks(..)+  , VkDevice+  )+++-- ** VkMemoryMapFlags++-- | VkMemoryMapFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkMemoryMapFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'vkMapMemory'+newtype VkMemoryMapFlags = VkMemoryMapFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkMemoryMapFlags where+  +  showsPrec p (VkMemoryMapFlags x) = showParen (p >= 11) (showString "VkMemoryMapFlags " . showsPrec 11 x)++instance Read VkMemoryMapFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkMemoryMapFlags")+                        v <- step readPrec+                        pure (VkMemoryMapFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkDeviceMemory_T+-- | VkDeviceMemory - Opaque handle to a device memory object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo',+-- 'VkMappedMemoryRange',+-- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkMemoryGetAndroidHardwareBufferInfoANDROID',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryGetFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.VkMemoryGetWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBind',+-- 'Graphics.Vulkan.Extensions.VK_KHR_win32_keyed_mutex.VkWin32KeyedMutexAcquireReleaseInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_NV_win32_keyed_mutex.VkWin32KeyedMutexAcquireReleaseInfoNV',+-- 'vkAllocateMemory',+-- 'Graphics.Vulkan.Core10.MemoryManagement.vkBindBufferMemory',+-- 'Graphics.Vulkan.Core10.MemoryManagement.vkBindImageMemory',+-- 'vkFreeMemory', 'vkGetDeviceMemoryCommitment',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.vkGetMemoryWin32HandleNV',+-- 'vkMapMemory', 'vkUnmapMemory'+type VkDeviceMemory = Ptr VkDeviceMemory_T+-- | vkAllocateMemory - Allocate device memory+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the memory.+--+-- -   @pAllocateInfo@ is a pointer to an instance of the+--     'VkMemoryAllocateInfo' structure describing parameters of the+--     allocation. A successful returned allocation /must/ use the+--     requested parameters — no substitution is permitted by the+--     implementation.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pMemory@ is a pointer to a @VkDeviceMemory@ handle in which+--     information about the allocated memory is returned.+--+-- = Description+-- #_description#+--+-- Allocations returned by @vkAllocateMemory@ are guaranteed to meet any+-- alignment requirement of the implementation. For example, if an+-- implementation requires 128 byte alignment for images and 64 byte+-- alignment for buffers, the device memory returned through this mechanism+-- would be 128-byte aligned. This ensures that applications /can/+-- correctly suballocate objects of different types (with potentially+-- different alignment requirements) in the same memory object.+--+-- When memory is allocated, its contents are undefined.+--+-- The maximum number of valid memory allocations that /can/ exist+-- simultaneously within a+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice' /may/ be+-- restricted by implementation- or platform-dependent limits. If a call to+-- 'vkAllocateMemory' would cause the total number of allocations to exceed+-- these limits, such a call will fail and /must/ return+-- @VK_ERROR_TOO_MANY_OBJECTS@. The+-- <{html_spec_relative}#features-limits-maxMemoryAllocationCount maxMemoryAllocationCount>+-- feature describes the number of allocations that /can/ exist+-- simultaneously before encountering these internal limits.+--+-- Some platforms /may/ have a limit on the maximum size of a single+-- allocation. For example, certain systems /may/ fail to create+-- allocations with a size greater than or equal to 4GB. Such a limit is+-- implementation-dependent, and if such a failure occurs then the error+-- @VK_ERROR_OUT_OF_DEVICE_MEMORY@ /must/ be returned.+--+-- == Valid Usage+--+-- -   @pAllocateInfo@->@allocationSize@ /must/ be less than or equal to+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties'::@memoryHeaps@[@pAllocateInfo@->@memoryTypeIndex@].@size@+--     as returned by+--     'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceMemoryProperties'+--     for the+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice' that+--     @device@ was created from.+--+-- -   @pAllocateInfo@->@memoryTypeIndex@ /must/ be less than+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties'::@memoryTypeCount@+--     as returned by+--     'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceMemoryProperties'+--     for the+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice' that+--     @device@ was created from.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pAllocateInfo@ /must/ be a valid pointer to a valid+--     @VkMemoryAllocateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pMemory@ /must/ be a valid pointer to a @VkDeviceMemory@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDeviceMemory', 'VkMemoryAllocateInfo'+foreign import ccall "vkAllocateMemory" vkAllocateMemory :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkMemoryAllocateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMemory" ::: Ptr VkDeviceMemory) -> IO VkResult+-- | vkFreeMemory - Free device memory+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the memory.+--+-- -   @memory@ is the @VkDeviceMemory@ object to be freed.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- Before freeing a memory object, an application /must/ ensure the memory+-- object is no longer in use by the device—​for example by command buffers+-- in the /pending state/. The memory /can/ remain bound to images or+-- buffers at the time the memory object is freed, but any further use of+-- them (on host or device) for anything other than destroying those+-- objects will result in undefined behavior. If there are still any bound+-- images or buffers, the memory /may/ not be immediately released by the+-- implementation, but /must/ be released by the time all bound images and+-- buffers have been destroyed. Once memory is released, it is returned to+-- the heap from which it was allocated.+--+-- How memory objects are bound to Images and Buffers is described in+-- detail in the+-- <{html_spec_relative}#resources-association Resource Memory Association>+-- section.+--+-- If a memory object is mapped at the time it is freed, it is implicitly+-- unmapped.+--+-- __Note__+--+-- As described+-- <{html_spec_relative}#memory-device-unmap-does-not-flush below>, host+-- writes are not implicitly flushed when the memory object is unmapped,+-- but the implementation /must/ guarantee that writes that have not been+-- flushed do not affect any other memory.+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @memory@ (via images or+--     buffers) /must/ have completed execution+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @memory@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @memory@ /must/+--     be a valid @VkDeviceMemory@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @memory@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @memory@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkDeviceMemory'+foreign import ccall "vkFreeMemory" vkFreeMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkMapMemory - Map a memory object into application address space+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the memory.+--+-- -   @memory@ is the @VkDeviceMemory@ object to be mapped.+--+-- -   @offset@ is a zero-based byte offset from the beginning of the+--     memory object.+--+-- -   @size@ is the size of the memory range to map, or @VK_WHOLE_SIZE@ to+--     map from @offset@ to the end of the allocation.+--+-- -   @flags@ is reserved for future use.+--+-- -   @ppData@ points to a pointer in which is returned a host-accessible+--     pointer to the beginning of the mapped range. This pointer minus+--     @offset@ /must/ be aligned to at least+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'::@minMemoryMapAlignment@.+--+-- = Description+-- #_description#+--+-- It is an application error to call @vkMapMemory@ on a memory object that+-- is already mapped.+--+-- __Note__+--+-- @vkMapMemory@ will fail if the implementation is unable to allocate an+-- appropriately sized contiguous virtual address range, e.g. due to+-- virtual address space fragmentation or platform limits. In such cases,+-- @vkMapMemory@ /must/ return @VK_ERROR_MEMORY_MAP_FAILED@. The+-- application /can/ improve the likelihood of success by reducing the size+-- of the mapped range and\/or removing unneeded mappings using+-- @VkUnmapMemory@.+--+-- @vkMapMemory@ does not check whether the device memory is currently in+-- use before returning the host-accessible pointer. The application /must/+-- guarantee that any previously submitted command that writes to this+-- range has completed before the host reads from or writes to that range,+-- and that any previously submitted command that reads from that range has+-- completed before the host writes to that region (see+-- <{html_spec_relative}#synchronization-submission-host-writes here> for+-- details on fulfilling such a guarantee). If the device memory was+-- allocated without the @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@ set, these+-- guarantees /must/ be made for an extended range: the application /must/+-- round down the start of the range to the nearest multiple of+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'::@nonCoherentAtomSize@,+-- and round the end of the range up to the nearest multiple of+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'::@nonCoherentAtomSize@.+--+-- While a range of device memory is mapped for host access, the+-- application is responsible for synchronizing both device and host access+-- to that memory range.+--+-- __Note__+--+-- It is important for the application developer to become meticulously+-- familiar with all of the mechanisms described in the chapter on+-- <{html_spec_relative}#synchronization Synchronization and Cache Control>+-- as they are crucial to maintaining memory access ordering.+--+-- == Valid Usage+--+-- -   @memory@ /must/ not be currently mapped+--+-- -   @offset@ /must/ be less than the size of @memory@+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @size@ /must/ be greater+--     than @0@+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @size@ /must/ be less+--     than or equal to the size of the @memory@ minus @offset@+--+-- -   @memory@ /must/ have been created with a memory type that reports+--     @VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- -   @flags@ /must/ be @0@+--+-- -   @ppData@ /must/ be a valid pointer to a pointer value+--+-- -   @memory@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @memory@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_MEMORY_MAP_FAILED@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDeviceMemory', @VkDeviceSize@, 'VkMemoryMapFlags'+foreign import ccall "vkMapMemory" vkMapMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("offset" ::: VkDeviceSize) -> ("size" ::: VkDeviceSize) -> ("flags" ::: VkMemoryMapFlags) -> ("ppData" ::: Ptr (Ptr ())) -> IO VkResult+-- | vkUnmapMemory - Unmap a previously mapped memory object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the memory.+--+-- -   @memory@ is the memory object to be unmapped.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @memory@ /must/ be currently mapped+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- -   @memory@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @memory@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkDeviceMemory'+foreign import ccall "vkUnmapMemory" vkUnmapMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> IO ()+-- | vkFlushMappedMemoryRanges - Flush mapped memory ranges+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the memory ranges.+--+-- -   @memoryRangeCount@ is the length of the @pMemoryRanges@ array.+--+-- -   @pMemoryRanges@ is a pointer to an array of 'VkMappedMemoryRange'+--     structures describing the memory ranges to flush.+--+-- = Description+-- #_description#+--+-- @vkFlushMappedMemoryRanges@ guarantees that host writes to the memory+-- ranges described by @pMemoryRanges@ /can/ be made available to device+-- access, via+-- <{html_spec_relative}#synchronization-dependencies-available-and-visible availability operations>+-- from the @VK_ACCESS_HOST_WRITE_BIT@+-- <{html_spec_relative}#synchronization-access-types access type>.+--+-- Within each range described by @pMemoryRanges@, each set of+-- @nonCoherentAtomSize@ bytes in that range is flushed if any byte in that+-- set has been written by the host since it was first mapped, or the last+-- time it was flushed. If @pMemoryRanges@ includes sets of+-- @nonCoherentAtomSize@ bytes where no bytes have been written by the+-- host, those bytes /must/ not be flushed.+--+-- Unmapping non-coherent memory does not implicitly flush the mapped+-- memory, and host writes that have not been flushed /may/ not ever be+-- visible to the device. However, implementations /must/ ensure that+-- writes that have not been flushed do not become visible to any other+-- memory.+--+-- __Note__+--+-- The above guarantee avoids a potential memory corruption in scenarios+-- where host writes to a mapped memory object have not been flushed before+-- the memory is unmapped (or freed), and the virtual address range is+-- subsequently reused for a different mapping (or memory allocation).+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pMemoryRanges@ /must/ be a valid pointer to an array of+--     @memoryRangeCount@ valid @VkMappedMemoryRange@ structures+--+-- -   @memoryRangeCount@ /must/ be greater than @0@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkMappedMemoryRange'+foreign import ccall "vkFlushMappedMemoryRanges" vkFlushMappedMemoryRanges :: ("device" ::: VkDevice) -> ("memoryRangeCount" ::: Word32) -> ("pMemoryRanges" ::: Ptr VkMappedMemoryRange) -> IO VkResult+-- | vkInvalidateMappedMemoryRanges - Invalidate ranges of mapped memory+-- objects+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the memory ranges.+--+-- -   @memoryRangeCount@ is the length of the @pMemoryRanges@ array.+--+-- -   @pMemoryRanges@ is a pointer to an array of 'VkMappedMemoryRange'+--     structures describing the memory ranges to invalidate.+--+-- = Description+-- #_description#+--+-- @vkInvalidateMappedMemoryRanges@ guarantees that device writes to the+-- memory ranges described by @pMemoryRanges@, which have been made visible+-- to the @VK_ACCESS_HOST_WRITE_BIT@ and @VK_ACCESS_HOST_READ_BIT@+-- <{html_spec_relative}#synchronization-access-types access types>, are+-- made visible to the host. If a range of non-coherent memory is written+-- by the host and then invalidated without first being flushed, its+-- contents are undefined.+--+-- Within each range described by @pMemoryRanges@, each set of+-- @nonCoherentAtomSize@ bytes in that range is invalidated if any byte in+-- that set has been written by the device since it was first mapped, or+-- the last time it was invalidated.+--+-- __Note__+--+-- Mapping non-coherent memory does not implicitly invalidate the mapped+-- memory, and device writes that have not been invalidated /must/ be made+-- visible before the host reads or overwrites them.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pMemoryRanges@ /must/ be a valid pointer to an array of+--     @memoryRangeCount@ valid @VkMappedMemoryRange@ structures+--+-- -   @memoryRangeCount@ /must/ be greater than @0@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkMappedMemoryRange'+foreign import ccall "vkInvalidateMappedMemoryRanges" vkInvalidateMappedMemoryRanges :: ("device" ::: VkDevice) -> ("memoryRangeCount" ::: Word32) -> ("pMemoryRanges" ::: Ptr VkMappedMemoryRange) -> IO VkResult+-- | vkGetDeviceMemoryCommitment - Query the current commitment for a+-- VkDeviceMemory+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the memory.+--+-- -   @memory@ is the memory object being queried.+--+-- -   @pCommittedMemoryInBytes@ is a pointer to a @VkDeviceSize@ value in+--     which the number of bytes currently committed is returned, on+--     success.+--+-- = Description+-- #_description#+--+-- The implementation /may/ update the commitment at any time, and the+-- value returned by this query /may/ be out of date.+--+-- The implementation guarantees to allocate any committed memory from the+-- heapIndex indicated by the memory type that the memory object was+-- created with.+--+-- == Valid Usage+--+-- -   @memory@ /must/ have been created with a memory type that reports+--     @VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- -   @pCommittedMemoryInBytes@ /must/ be a valid pointer to a+--     @VkDeviceSize@ value+--+-- -   @memory@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDeviceMemory', @VkDeviceSize@+foreign import ccall "vkGetDeviceMemoryCommitment" vkGetDeviceMemoryCommitment :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("pCommittedMemoryInBytes" ::: Ptr VkDeviceSize) -> IO ()+-- | VkMemoryAllocateInfo - Structure containing parameters of a memory+-- allocation+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @allocationSize@ /must/ be greater than @0@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV',+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo',+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV',+--     'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.VkExportMemoryWin32HandleInfoKHR',+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.VkExportMemoryWin32HandleInfoNV',+--     'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkImportAndroidHardwareBufferInfoANDROID',+--     'Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkImportMemoryFdInfoKHR',+--     'Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkImportMemoryHostPointerInfoEXT',+--     'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.VkImportMemoryWin32HandleInfoKHR',+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.VkImportMemoryWin32HandleInfoNV',+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagsInfo',+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@, 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkAllocateMemory'+data VkMemoryAllocateInfo = VkMemoryAllocateInfo+  { -- No documentation found for Nested "VkMemoryAllocateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryAllocateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryAllocateInfo" "vkAllocationSize"+  vkAllocationSize :: VkDeviceSize+  , -- No documentation found for Nested "VkMemoryAllocateInfo" "vkMemoryTypeIndex"+  vkMemoryTypeIndex :: Word32+  }+  deriving (Eq, Show)++instance Storable VkMemoryAllocateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkMemoryAllocateInfo <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryAllocateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryAllocateInfo))+                *> poke (ptr `plusPtr` 16) (vkAllocationSize (poked :: VkMemoryAllocateInfo))+                *> poke (ptr `plusPtr` 24) (vkMemoryTypeIndex (poked :: VkMemoryAllocateInfo))+-- | VkMappedMemoryRange - Structure specifying a mapped memory range+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @memory@ /must/ be currently mapped+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @offset@ and @size@+--     /must/ specify a range contained within the currently mapped range+--     of @memory@+--+-- -   If @size@ is equal to @VK_WHOLE_SIZE@, @offset@ /must/ be within the+--     currently mapped range of @memory@+--+-- -   If @size@ is equal to @VK_WHOLE_SIZE@, the end of the current+--     mapping of @memory@ /must/ be a multiple of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'::@nonCoherentAtomSize@+--     bytes from the beginning of the memory object.+--+-- -   @offset@ /must/ be a multiple of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'::@nonCoherentAtomSize@+--+-- -   If @size@ is not equal to @VK_WHOLE_SIZE@, @size@ /must/ either be a+--     multiple of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'::@nonCoherentAtomSize@,+--     or @offset@ plus @size@ /must/ equal the size of @memory@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceMemory', @VkDeviceSize@,+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkFlushMappedMemoryRanges', 'vkInvalidateMappedMemoryRanges'+data VkMappedMemoryRange = VkMappedMemoryRange+  { -- No documentation found for Nested "VkMappedMemoryRange" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMappedMemoryRange" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMappedMemoryRange" "vkMemory"+  vkMemory :: VkDeviceMemory+  , -- No documentation found for Nested "VkMappedMemoryRange" "vkOffset"+  vkOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkMappedMemoryRange" "vkSize"+  vkSize :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkMappedMemoryRange where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkMappedMemoryRange <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 16)+                                 <*> peek (ptr `plusPtr` 24)+                                 <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMappedMemoryRange))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMappedMemoryRange))+                *> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkMappedMemoryRange))+                *> poke (ptr `plusPtr` 24) (vkOffset (poked :: VkMappedMemoryRange))+                *> poke (ptr `plusPtr` 32) (vkSize (poked :: VkMappedMemoryRange))
+ src/Graphics/Vulkan/Core10/MemoryManagement.hs view
@@ -0,0 +1,388 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  , VkImage+  , vkGetBufferMemoryRequirements+  , vkBindBufferMemory+  , vkGetImageMemoryRequirements+  , vkBindImageMemory+  , VkMemoryRequirements(..)+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkDevice+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+++-- | Dummy data to tag the 'Ptr' with+data VkBuffer_T+-- | VkBuffer - Opaque handle to a buffer object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkBufferMemoryRequirementsInfo2',+-- 'Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX',+-- 'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenNVX',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableIndexBufferEntryNVX',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableVertexBufferEntryNVX',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo',+-- 'vkBindBufferMemory',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindIndexBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindVertexBuffers',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyBufferToImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyImageToBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyQueryPoolResults',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDispatchIndirect',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndexedIndirect',+-- 'Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count.vkCmdDrawIndexedIndirectCountAMD',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndirect',+-- 'Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count.vkCmdDrawIndirectCountAMD',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdFillBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdUpdateBuffer',+-- 'Graphics.Vulkan.Extensions.VK_AMD_buffer_marker.vkCmdWriteBufferMarkerAMD',+-- 'Graphics.Vulkan.Core10.Buffer.vkCreateBuffer',+-- 'Graphics.Vulkan.Core10.Buffer.vkDestroyBuffer',+-- 'vkGetBufferMemoryRequirements'+type VkBuffer = Ptr VkBuffer_T+-- | Dummy data to tag the 'Ptr' with+data VkImage_T+-- | VkImage - Opaque handle to a image object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo',+-- 'Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageMemoryRequirementsInfo2',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageSparseMemoryRequirementsInfo2',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo',+-- 'vkBindImageMemory',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBlitImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearColorImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearDepthStencilImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyBufferToImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyImageToBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResolveImage',+-- 'Graphics.Vulkan.Core10.Image.vkCreateImage',+-- 'Graphics.Vulkan.Core10.Image.vkDestroyImage',+-- 'vkGetImageMemoryRequirements',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetImageSparseMemoryRequirements',+-- 'Graphics.Vulkan.Core10.Image.vkGetImageSubresourceLayout',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkGetSwapchainImagesKHR'+type VkImage = Ptr VkImage_T+-- | vkGetBufferMemoryRequirements - Returns the memory requirements for+-- specified Vulkan object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the buffer.+--+-- -   @buffer@ is the buffer to query.+--+-- -   @pMemoryRequirements@ points to an instance of the+--     'VkMemoryRequirements' structure in which the memory requirements of+--     the buffer object are returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @pMemoryRequirements@ /must/ be a valid pointer to a+--     @VkMemoryRequirements@ structure+--+-- -   @buffer@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- = See Also+-- #_see_also#+--+-- 'VkBuffer', 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkMemoryRequirements'+foreign import ccall "vkGetBufferMemoryRequirements" vkGetBufferMemoryRequirements :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements) -> IO ()+-- | vkBindBufferMemory - Bind device memory to a buffer object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the buffer and memory.+--+-- -   @buffer@ is the buffer to be attached to memory.+--+-- -   @memory@ is a @VkDeviceMemory@ object describing the device memory+--     to attach.+--+-- -   @memoryOffset@ is the start offset of the region of @memory@ which+--     is to be bound to the buffer. The number of bytes returned in the+--     @VkMemoryRequirements@::@size@ member in @memory@, starting from+--     @memoryOffset@ bytes, will be bound to the specified buffer.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @buffer@ /must/ not already be backed by a memory object+--+-- -   @buffer@ /must/ not have been created with any sparse memory binding+--     flags+--+-- -   @memoryOffset@ /must/ be less than the size of @memory@+--+-- -   If @buffer@ was created with the+--     @VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT@ or+--     @VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT@, @memoryOffset@ /must/ be+--     a multiple of+--     @VkPhysicalDeviceLimits@::@minTexelBufferOffsetAlignment@+--+-- -   If @buffer@ was created with the+--     @VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT@, @memoryOffset@ /must/ be a+--     multiple of+--     @VkPhysicalDeviceLimits@::@minUniformBufferOffsetAlignment@+--+-- -   If @buffer@ was created with the+--     @VK_BUFFER_USAGE_STORAGE_BUFFER_BIT@, @memoryOffset@ /must/ be a+--     multiple of+--     @VkPhysicalDeviceLimits@::@minStorageBufferOffsetAlignment@+--+-- -   @memory@ /must/ have been allocated using one of the memory types+--     allowed in the @memoryTypeBits@ member of the @VkMemoryRequirements@+--     structure returned from a call to @vkGetBufferMemoryRequirements@+--     with @buffer@+--+-- -   @memoryOffset@ /must/ be an integer multiple of the @alignment@+--     member of the @VkMemoryRequirements@ structure returned from a call+--     to @vkGetBufferMemoryRequirements@ with @buffer@+--+-- -   The @size@ member of the @VkMemoryRequirements@ structure returned+--     from a call to @vkGetBufferMemoryRequirements@ with @buffer@ /must/+--     be less than or equal to the size of @memory@ minus @memoryOffset@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- -   @buffer@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- -   @memory@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @buffer@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkBuffer', 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory', @VkDeviceSize@+foreign import ccall "vkBindBufferMemory" vkBindBufferMemory :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("memory" ::: VkDeviceMemory) -> ("memoryOffset" ::: VkDeviceSize) -> IO VkResult+-- | vkGetImageMemoryRequirements - Returns the memory requirements for+-- specified Vulkan object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the image.+--+-- -   @image@ is the image to query.+--+-- -   @pMemoryRequirements@ points to an instance of the+--     'VkMemoryRequirements' structure in which the memory requirements of+--     the image object are returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @pMemoryRequirements@ /must/ be a valid pointer to a+--     @VkMemoryRequirements@ structure+--+-- -   @image@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkImage',+-- 'VkMemoryRequirements'+foreign import ccall "vkGetImageMemoryRequirements" vkGetImageMemoryRequirements :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements) -> IO ()+-- | vkBindImageMemory - Bind device memory to an image object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the image and memory.+--+-- -   @image@ is the image.+--+-- -   @memory@ is the @VkDeviceMemory@ object describing the device memory+--     to attach.+--+-- -   @memoryOffset@ is the start offset of the region of @memory@ which+--     is to be bound to the image. The number of bytes returned in the+--     @VkMemoryRequirements@::@size@ member in @memory@, starting from+--     @memoryOffset@ bytes, will be bound to the specified image.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @image@ /must/ not already be backed by a memory object+--+-- -   @image@ /must/ not have been created with any sparse memory binding+--     flags+--+-- -   @memoryOffset@ /must/ be less than the size of @memory@+--+-- -   @memory@ /must/ have been allocated using one of the memory types+--     allowed in the @memoryTypeBits@ member of the @VkMemoryRequirements@+--     structure returned from a call to @vkGetImageMemoryRequirements@+--     with @image@+--+-- -   @memoryOffset@ /must/ be an integer multiple of the @alignment@+--     member of the @VkMemoryRequirements@ structure returned from a call+--     to @vkGetImageMemoryRequirements@ with @image@+--+-- -   The @size@ member of the @VkMemoryRequirements@ structure returned+--     from a call to @vkGetImageMemoryRequirements@ with @image@ /must/ be+--     less than or equal to the size of @memory@ minus @memoryOffset@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- -   @image@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- -   @memory@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @image@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory', @VkDeviceSize@,+-- 'VkImage'+foreign import ccall "vkBindImageMemory" vkBindImageMemory :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("memory" ::: VkDeviceMemory) -> ("memoryOffset" ::: VkDeviceSize) -> IO VkResult+-- | VkMemoryRequirements - Structure specifying memory requirements+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@,+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkMemoryRequirements2',+-- 'vkGetBufferMemoryRequirements', 'vkGetImageMemoryRequirements'+data VkMemoryRequirements = VkMemoryRequirements+  { -- No documentation found for Nested "VkMemoryRequirements" "vkSize"+  vkSize :: VkDeviceSize+  , -- No documentation found for Nested "VkMemoryRequirements" "vkAlignment"+  vkAlignment :: VkDeviceSize+  , -- No documentation found for Nested "VkMemoryRequirements" "vkMemoryTypeBits"+  vkMemoryTypeBits :: Word32+  }+  deriving (Eq, Show)++instance Storable VkMemoryRequirements where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMemoryRequirements <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSize (poked :: VkMemoryRequirements))+                *> poke (ptr `plusPtr` 8) (vkAlignment (poked :: VkMemoryRequirements))+                *> poke (ptr `plusPtr` 16) (vkMemoryTypeBits (poked :: VkMemoryRequirements))
+ src/Graphics/Vulkan/Core10/Pass.hs view
@@ -0,0 +1,1964 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Pass+  ( VkAttachmentLoadOp(..)+  , pattern VK_ATTACHMENT_LOAD_OP_LOAD+  , pattern VK_ATTACHMENT_LOAD_OP_CLEAR+  , pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE+  , VkAttachmentStoreOp(..)+  , pattern VK_ATTACHMENT_STORE_OP_STORE+  , pattern VK_ATTACHMENT_STORE_OP_DONT_CARE+  , VkPipelineBindPoint(..)+  , pattern VK_PIPELINE_BIND_POINT_GRAPHICS+  , pattern VK_PIPELINE_BIND_POINT_COMPUTE+  , VkFramebufferCreateFlags(..)+  , VkRenderPassCreateFlags(..)+  , VkAccessFlagBits(..)+  , pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT+  , pattern VK_ACCESS_INDEX_READ_BIT+  , pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT+  , pattern VK_ACCESS_UNIFORM_READ_BIT+  , pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT+  , pattern VK_ACCESS_SHADER_READ_BIT+  , pattern VK_ACCESS_SHADER_WRITE_BIT+  , pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT+  , pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT+  , pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT+  , pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT+  , pattern VK_ACCESS_TRANSFER_READ_BIT+  , pattern VK_ACCESS_TRANSFER_WRITE_BIT+  , pattern VK_ACCESS_HOST_READ_BIT+  , pattern VK_ACCESS_HOST_WRITE_BIT+  , pattern VK_ACCESS_MEMORY_READ_BIT+  , pattern VK_ACCESS_MEMORY_WRITE_BIT+  , VkSubpassDescriptionFlagBits(..)+  , VkAttachmentDescriptionFlagBits(..)+  , pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT+  , VkDependencyFlagBits(..)+  , pattern VK_DEPENDENCY_BY_REGION_BIT+  , VkFramebuffer+  , vkCreateFramebuffer+  , vkDestroyFramebuffer+  , vkCreateRenderPass+  , vkDestroyRenderPass+  , vkGetRenderAreaGranularity+  , VkAttachmentDescription(..)+  , VkAttachmentReference(..)+  , VkSubpassDescription(..)+  , VkSubpassDependency(..)+  , VkRenderPassCreateInfo(..)+  , VkFramebufferCreateInfo(..)+  , VkAccessFlags+  , VkSubpassDescriptionFlags+  , VkAttachmentDescriptionFlags+  , VkDependencyFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFormat(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkSampleCountFlagBits(..)+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Image+  ( VkImageLayout(..)+  )+import Graphics.Vulkan.Core10.ImageView+  ( VkImageView+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkExtent2D(..)+  , VkRenderPass+  )+import Graphics.Vulkan.Core10.Queue+  ( VkPipelineStageFlags+  )+++-- ** VkAttachmentLoadOp++-- | VkAttachmentLoadOp - Specify how contents of an attachment are treated+-- at the beginning of a subpass+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentDescription'+newtype VkAttachmentLoadOp = VkAttachmentLoadOp Int32+  deriving (Eq, Ord, Storable)++instance Show VkAttachmentLoadOp where+  showsPrec _ VK_ATTACHMENT_LOAD_OP_LOAD = showString "VK_ATTACHMENT_LOAD_OP_LOAD"+  showsPrec _ VK_ATTACHMENT_LOAD_OP_CLEAR = showString "VK_ATTACHMENT_LOAD_OP_CLEAR"+  showsPrec _ VK_ATTACHMENT_LOAD_OP_DONT_CARE = showString "VK_ATTACHMENT_LOAD_OP_DONT_CARE"+  showsPrec p (VkAttachmentLoadOp x) = showParen (p >= 11) (showString "VkAttachmentLoadOp " . showsPrec 11 x)++instance Read VkAttachmentLoadOp where+  readPrec = parens ( choose [ ("VK_ATTACHMENT_LOAD_OP_LOAD",      pure VK_ATTACHMENT_LOAD_OP_LOAD)+                             , ("VK_ATTACHMENT_LOAD_OP_CLEAR",     pure VK_ATTACHMENT_LOAD_OP_CLEAR)+                             , ("VK_ATTACHMENT_LOAD_OP_DONT_CARE", pure VK_ATTACHMENT_LOAD_OP_DONT_CARE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkAttachmentLoadOp")+                        v <- step readPrec+                        pure (VkAttachmentLoadOp v)+                        )+                    )++-- | @VK_ATTACHMENT_LOAD_OP_LOAD@ specifies that the previous contents of the+-- image within the render area will be preserved. For attachments with a+-- depth\/stencil format, this uses the access type+-- @VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT@. For attachments with a+-- color format, this uses the access type+-- @VK_ACCESS_COLOR_ATTACHMENT_READ_BIT@.+pattern VK_ATTACHMENT_LOAD_OP_LOAD :: VkAttachmentLoadOp+pattern VK_ATTACHMENT_LOAD_OP_LOAD = VkAttachmentLoadOp 0++-- | @VK_ATTACHMENT_LOAD_OP_CLEAR@ specifies that the contents within the+-- render area will be cleared to a uniform value, which is specified when+-- a render pass instance is begun. For attachments with a depth\/stencil+-- format, this uses the access type+-- @VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT@. For attachments with a+-- color format, this uses the access type+-- @VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT@.+pattern VK_ATTACHMENT_LOAD_OP_CLEAR :: VkAttachmentLoadOp+pattern VK_ATTACHMENT_LOAD_OP_CLEAR = VkAttachmentLoadOp 1++-- | @VK_ATTACHMENT_LOAD_OP_DONT_CARE@ specifies that the previous contents+-- within the area need not be preserved; the contents of the attachment+-- will be undefined inside the render area. For attachments with a+-- depth\/stencil format, this uses the access type+-- @VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT@. For attachments with a+-- color format, this uses the access type+-- @VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT@.+pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE :: VkAttachmentLoadOp+pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE = VkAttachmentLoadOp 2+-- ** VkAttachmentStoreOp++-- | VkAttachmentStoreOp - Specify how contents of an attachment are treated+-- at the end of a subpass+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentDescription'+newtype VkAttachmentStoreOp = VkAttachmentStoreOp Int32+  deriving (Eq, Ord, Storable)++instance Show VkAttachmentStoreOp where+  showsPrec _ VK_ATTACHMENT_STORE_OP_STORE = showString "VK_ATTACHMENT_STORE_OP_STORE"+  showsPrec _ VK_ATTACHMENT_STORE_OP_DONT_CARE = showString "VK_ATTACHMENT_STORE_OP_DONT_CARE"+  showsPrec p (VkAttachmentStoreOp x) = showParen (p >= 11) (showString "VkAttachmentStoreOp " . showsPrec 11 x)++instance Read VkAttachmentStoreOp where+  readPrec = parens ( choose [ ("VK_ATTACHMENT_STORE_OP_STORE",     pure VK_ATTACHMENT_STORE_OP_STORE)+                             , ("VK_ATTACHMENT_STORE_OP_DONT_CARE", pure VK_ATTACHMENT_STORE_OP_DONT_CARE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkAttachmentStoreOp")+                        v <- step readPrec+                        pure (VkAttachmentStoreOp v)+                        )+                    )++-- | @VK_ATTACHMENT_STORE_OP_STORE@ specifies the contents generated during+-- the render pass and within the render area are written to memory. For+-- attachments with a depth\/stencil format, this uses the access type+-- @VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT@. For attachments with a+-- color format, this uses the access type+-- @VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT@.+pattern VK_ATTACHMENT_STORE_OP_STORE :: VkAttachmentStoreOp+pattern VK_ATTACHMENT_STORE_OP_STORE = VkAttachmentStoreOp 0++-- | @VK_ATTACHMENT_STORE_OP_DONT_CARE@ specifies the contents within the+-- render area are not needed after rendering, and /may/ be discarded; the+-- contents of the attachment will be undefined inside the render area. For+-- attachments with a depth\/stencil format, this uses the access type+-- @VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT@. For attachments with a+-- color format, this uses the access type+-- @VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT@.+pattern VK_ATTACHMENT_STORE_OP_DONT_CARE :: VkAttachmentStoreOp+pattern VK_ATTACHMENT_STORE_OP_DONT_CARE = VkAttachmentStoreOp 1+-- ** VkPipelineBindPoint++-- | VkPipelineBindPoint - Specify the bind point of a pipeline object to a+-- command buffer+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutCreateInfoNVX',+-- 'VkSubpassDescription',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindDescriptorSets',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindPipeline',+-- 'Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.vkCmdPushDescriptorSetKHR'+newtype VkPipelineBindPoint = VkPipelineBindPoint Int32+  deriving (Eq, Ord, Storable)++instance Show VkPipelineBindPoint where+  showsPrec _ VK_PIPELINE_BIND_POINT_GRAPHICS = showString "VK_PIPELINE_BIND_POINT_GRAPHICS"+  showsPrec _ VK_PIPELINE_BIND_POINT_COMPUTE = showString "VK_PIPELINE_BIND_POINT_COMPUTE"+  showsPrec p (VkPipelineBindPoint x) = showParen (p >= 11) (showString "VkPipelineBindPoint " . showsPrec 11 x)++instance Read VkPipelineBindPoint where+  readPrec = parens ( choose [ ("VK_PIPELINE_BIND_POINT_GRAPHICS", pure VK_PIPELINE_BIND_POINT_GRAPHICS)+                             , ("VK_PIPELINE_BIND_POINT_COMPUTE",  pure VK_PIPELINE_BIND_POINT_COMPUTE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineBindPoint")+                        v <- step readPrec+                        pure (VkPipelineBindPoint v)+                        )+                    )++-- | @VK_PIPELINE_BIND_POINT_GRAPHICS@ specifies binding as a graphics+-- pipeline.+pattern VK_PIPELINE_BIND_POINT_GRAPHICS :: VkPipelineBindPoint+pattern VK_PIPELINE_BIND_POINT_GRAPHICS = VkPipelineBindPoint 0++-- | @VK_PIPELINE_BIND_POINT_COMPUTE@ specifies binding as a compute+-- pipeline.+pattern VK_PIPELINE_BIND_POINT_COMPUTE :: VkPipelineBindPoint+pattern VK_PIPELINE_BIND_POINT_COMPUTE = VkPipelineBindPoint 1+-- ** VkFramebufferCreateFlags++-- | VkFramebufferCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkFramebufferCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkFramebufferCreateInfo'+newtype VkFramebufferCreateFlags = VkFramebufferCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkFramebufferCreateFlags where+  +  showsPrec p (VkFramebufferCreateFlags x) = showParen (p >= 11) (showString "VkFramebufferCreateFlags " . showsPrec 11 x)++instance Read VkFramebufferCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkFramebufferCreateFlags")+                        v <- step readPrec+                        pure (VkFramebufferCreateFlags v)+                        )+                    )+++-- ** VkRenderPassCreateFlags++-- | VkRenderPassCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkRenderPassCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkRenderPassCreateInfo'+newtype VkRenderPassCreateFlags = VkRenderPassCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkRenderPassCreateFlags where+  +  showsPrec p (VkRenderPassCreateFlags x) = showParen (p >= 11) (showString "VkRenderPassCreateFlags " . showsPrec 11 x)++instance Read VkRenderPassCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkRenderPassCreateFlags")+                        v <- step readPrec+                        pure (VkRenderPassCreateFlags v)+                        )+                    )+++-- ** VkAccessFlagBits++-- | VkAccessFlagBits - Bitmask specifying memory access types that will+-- participate in a memory dependency+--+-- = Description+-- #_description#+--+-- -   @VK_ACCESS_INDIRECT_COMMAND_READ_BIT@ specifies read access to an+--     indirect command structure read as part of an indirect drawing or+--     dispatch command.+--+-- -   @VK_ACCESS_INDEX_READ_BIT@ specifies read access to an index buffer+--     as part of an indexed drawing command, bound by+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindIndexBuffer'.+--+-- -   @VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT@ specifies read access to a+--     vertex buffer as part of a drawing command, bound by+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindVertexBuffers'.+--+-- -   @VK_ACCESS_UNIFORM_READ_BIT@ specifies read access to a+--     <{html_spec_relative}#descriptorsets-uniformbuffer uniform buffer>.+--+-- -   @VK_ACCESS_INPUT_ATTACHMENT_READ_BIT@ specifies read access to an+--     <{html_spec_relative}#renderpass input attachment> within a render+--     pass during fragment shading.+--+-- -   @VK_ACCESS_SHADER_READ_BIT@ specifies read access to a+--     <{html_spec_relative}#descriptorsets-storagebuffer storage buffer>,+--     <{html_spec_relative}#descriptorsets-uniformtexelbuffer uniform texel buffer>,+--     <{html_spec_relative}#descriptorsets-storagetexelbuffer storage texel buffer>,+--     <{html_spec_relative}#descriptorsets-sampledimage sampled image>, or+--     <{html_spec_relative}#descriptorsets-storageimage storage image>.+--+-- -   @VK_ACCESS_SHADER_WRITE_BIT@ specifies write access to a+--     <{html_spec_relative}#descriptorsets-storagebuffer storage buffer>,+--     <{html_spec_relative}#descriptorsets-storagetexelbuffer storage texel buffer>,+--     or <{html_spec_relative}#descriptorsets-storageimage storage image>.+--+-- -   @VK_ACCESS_COLOR_ATTACHMENT_READ_BIT@ specifies read access to a+--     <{html_spec_relative}#renderpass color attachment>, such as via+--     <{html_spec_relative}#framebuffer-blending blending>,+--     <{html_spec_relative}#framebuffer-logicop logic operations>, or via+--     certain+--     <{html_spec_relative}#renderpass-load-store-ops subpass load operations>.+--+-- -   @VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT@ specifies write access to a+--     <{html_spec_relative}#renderpass color or resolve attachment> during+--     a <{html_spec_relative}#renderpass render pass> or via certain+--     <{html_spec_relative}#renderpass-load-store-ops subpass load and store operations>.+--+-- -   @VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT@ specifies read access+--     to a <{html_spec_relative}#renderpass depth\/stencil attachment>,+--     via+--     <{html_spec_relative}#fragops-ds-state depth or stencil operations>+--     or via certain+--     <{html_spec_relative}#renderpass-load-store-ops subpass load operations>.+--+-- -   @VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT@ specifies write+--     access to a+--     <{html_spec_relative}#renderpass depth\/stencil attachment>, via+--     <{html_spec_relative}#fragops-ds-state depth or stencil operations>+--     or via certain+--     <{html_spec_relative}#renderpass-load-store-ops subpass load and store operations>.+--+-- -   @VK_ACCESS_TRANSFER_READ_BIT@ specifies read access to an image or+--     buffer in a <{html_spec_relative}#copies copy> operation.+--+-- -   @VK_ACCESS_TRANSFER_WRITE_BIT@ specifies write access to an image or+--     buffer in a <{html_spec_relative}#clears clear> or+--     <{html_spec_relative}#copies copy> operation.+--+-- -   @VK_ACCESS_HOST_READ_BIT@ specifies read access by a host operation.+--     Accesses of this type are not performed through a resource, but+--     directly on memory.+--+-- -   @VK_ACCESS_HOST_WRITE_BIT@ specifies write access by a host+--     operation. Accesses of this type are not performed through a+--     resource, but directly on memory.+--+-- -   @VK_ACCESS_MEMORY_READ_BIT@ specifies read access via non-specific+--     entities. These entities include the Vulkan device and host, but+--     /may/ also include entities external to the Vulkan device or+--     otherwise not part of the core Vulkan pipeline. When included in a+--     destination access mask, makes all available writes visible to all+--     future read accesses on entities known to the Vulkan device.+--+-- -   @VK_ACCESS_MEMORY_WRITE_BIT@ specifies write access via non-specific+--     entities. These entities include the Vulkan device and host, but+--     /may/ also include entities external to the Vulkan device or+--     otherwise not part of the core Vulkan pipeline. When included in a+--     source access mask, all writes that are performed by entities known+--     to the Vulkan device are made available. When included in a+--     destination access mask, makes all available writes visible to all+--     future write accesses on entities known to the Vulkan device.+--+-- Certain access types are only performed by a subset of pipeline stages.+-- Any synchronization command that takes both stage masks and access masks+-- uses both to define the+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scopes>+-- - only the specified access types performed by the specified stages are+-- included in the access scope. An application /must/ not specify an+-- access flag in a synchronization command if it does not include a+-- pipeline stage in the corresponding stage mask that is able to perform+-- accesses of that type. The following table lists, for each access flag,+-- which pipeline stages /can/ perform that type of access.+--+-- > +-----------------------------------+-----------------------------------++-- > | Access flag                       | Supported pipeline stages         |+-- > +===================================+===================================++-- > | @VK_ACCESS_INDIRECT_COMMAND_READ_ | @VK_PIPELINE_STAGE_DRAW_INDIRECT_ |+-- > | BIT@                              | BIT@                              |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_INDEX_READ_BIT@        | @VK_PIPELINE_STAGE_VERTEX_INPUT_B |+-- > |                                   | IT@                               |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_VERTEX_ATTRIBUTE_READ_ | @VK_PIPELINE_STAGE_VERTEX_INPUT_B |+-- > | BIT@                              | IT@                               |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_UNIFORM_READ_BIT@      | @VK_PIPELINE_STAGE_VERTEX_SHADER_ |+-- > |                                   | BIT@,                             |+-- > |                                   | @VK_PIPELINE_STAGE_TESSELLATION_C |+-- > |                                   | ONTROL_SHADER_BIT@,               |+-- > |                                   | @VK_PIPELINE_STAGE_TESSELLATION_E |+-- > |                                   | VALUATION_SHADER_BIT@,            |+-- > |                                   | @VK_PIPELINE_STAGE_GEOMETRY_SHADE |+-- > |                                   | R_BIT@,                           |+-- > |                                   | @VK_PIPELINE_STAGE_FRAGMENT_SHADE |+-- > |                                   | R_BIT@,                           |+-- > |                                   | or                                |+-- > |                                   | @VK_PIPELINE_STAGE_COMPUTE_SHADER |+-- > |                                   | _BIT@                             |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_INPUT_ATTACHMENT_READ_ | @VK_PIPELINE_STAGE_FRAGMENT_SHADE |+-- > | BIT@                              | R_BIT@                            |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_SHADER_READ_BIT@       | @VK_PIPELINE_STAGE_VERTEX_SHADER_ |+-- > |                                   | BIT@,                             |+-- > |                                   | @VK_PIPELINE_STAGE_TESSELLATION_C |+-- > |                                   | ONTROL_SHADER_BIT@,               |+-- > |                                   | @VK_PIPELINE_STAGE_TESSELLATION_E |+-- > |                                   | VALUATION_SHADER_BIT@,            |+-- > |                                   | @VK_PIPELINE_STAGE_GEOMETRY_SHADE |+-- > |                                   | R_BIT@,                           |+-- > |                                   | @VK_PIPELINE_STAGE_FRAGMENT_SHADE |+-- > |                                   | R_BIT@,                           |+-- > |                                   | or                                |+-- > |                                   | @VK_PIPELINE_STAGE_COMPUTE_SHADER |+-- > |                                   | _BIT@                             |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_SHADER_WRITE_BIT@      | @VK_PIPELINE_STAGE_VERTEX_SHADER_ |+-- > |                                   | BIT@,                             |+-- > |                                   | @VK_PIPELINE_STAGE_TESSELLATION_C |+-- > |                                   | ONTROL_SHADER_BIT@,               |+-- > |                                   | @VK_PIPELINE_STAGE_TESSELLATION_E |+-- > |                                   | VALUATION_SHADER_BIT@,            |+-- > |                                   | @VK_PIPELINE_STAGE_GEOMETRY_SHADE |+-- > |                                   | R_BIT@,                           |+-- > |                                   | @VK_PIPELINE_STAGE_FRAGMENT_SHADE |+-- > |                                   | R_BIT@,                           |+-- > |                                   | or                                |+-- > |                                   | @VK_PIPELINE_STAGE_COMPUTE_SHADER |+-- > |                                   | _BIT@                             |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_COLOR_ATTACHMENT_READ_ | @VK_PIPELINE_STAGE_COLOR_ATTACHME |+-- > | BIT@                              | NT_OUTPUT_BIT@                    |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_COLOR_ATTACHMENT_WRITE | @VK_PIPELINE_STAGE_COLOR_ATTACHME |+-- > | _BIT@                             | NT_OUTPUT_BIT@                    |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_DEPTH_STENCIL_ATTACHME | @VK_PIPELINE_STAGE_EARLY_FRAGMENT |+-- > | NT_READ_BIT@                      | _TESTS_BIT@,                      |+-- > |                                   | or                                |+-- > |                                   | @VK_PIPELINE_STAGE_LATE_FRAGMENT_ |+-- > |                                   | TESTS_BIT@                        |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_DEPTH_STENCIL_ATTACHME | @VK_PIPELINE_STAGE_EARLY_FRAGMENT |+-- > | NT_WRITE_BIT@                     | _TESTS_BIT@,                      |+-- > |                                   | or                                |+-- > |                                   | @VK_PIPELINE_STAGE_LATE_FRAGMENT_ |+-- > |                                   | TESTS_BIT@                        |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_TRANSFER_READ_BIT@     | @VK_PIPELINE_STAGE_TRANSFER_BIT@  |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_TRANSFER_WRITE_BIT@    | @VK_PIPELINE_STAGE_TRANSFER_BIT@  |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_HOST_READ_BIT@         | @VK_PIPELINE_STAGE_HOST_BIT@      |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_HOST_WRITE_BIT@        | @VK_PIPELINE_STAGE_HOST_BIT@      |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_MEMORY_READ_BIT@       | N\/A                              |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_ACCESS_MEMORY_WRITE_BIT@      | N\/A                              |+-- > +-----------------------------------+-----------------------------------++-- >+-- > Supported access types+--+-- If a memory object does not have the+-- @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@ property, then+-- 'Graphics.Vulkan.Core10.Memory.vkFlushMappedMemoryRanges' /must/ be+-- called in order to guarantee that writes to the memory object from the+-- host are made visible to the @VK_ACCESS_HOST_WRITE_BIT@+-- <{html_spec_relative}#synchronization-access-types access type>, where+-- it /can/ be further made available to the device by+-- <{html_spec_relative}#synchronization synchronization commands>.+-- Similarly,+-- 'Graphics.Vulkan.Core10.Memory.vkInvalidateMappedMemoryRanges' /must/ be+-- called to guarantee that writes which are visible to the+-- @VK_ACCESS_HOST_READ_BIT@+-- <{html_spec_relative}#synchronization-access-types access type> are made+-- visible to host operations.+--+-- If the memory object does have the+-- @VK_MEMORY_PROPERTY_HOST_COHERENT_BIT@ property flag, writes to the+-- memory object from the host are automatically made visible to the+-- @VK_ACCESS_HOST_WRITE_BIT@+-- <{html_spec_relative}#synchronization-access-types access type>.+-- Similarly, writes made visible to the @VK_ACCESS_HOST_READ_BIT@+-- <{html_spec_relative}#synchronization-access-types access type> are+-- automatically made visible to the host.+--+-- __Note__+--+-- The 'Graphics.Vulkan.Core10.Queue.vkQueueSubmit' command+-- <{html_spec_relative}#synchronization-submission-host-writes automatically guarantees that host writes flushed to VK_ACCESS_HOST_WRITE_BIT are made available>+-- if they were flushed before the command executed, so in most cases an+-- explicit memory barrier is not needed for this case. In the few+-- circumstances where a submit does not occur between the host write and+-- the device read access, writes /can/ be made available by using an+-- explicit memory barrier.+--+-- = See Also+-- #_see_also#+--+-- 'VkAccessFlags'+newtype VkAccessFlagBits = VkAccessFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkAccessFlagBits where+  showsPrec _ VK_ACCESS_INDIRECT_COMMAND_READ_BIT = showString "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"+  showsPrec _ VK_ACCESS_INDEX_READ_BIT = showString "VK_ACCESS_INDEX_READ_BIT"+  showsPrec _ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = showString "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"+  showsPrec _ VK_ACCESS_UNIFORM_READ_BIT = showString "VK_ACCESS_UNIFORM_READ_BIT"+  showsPrec _ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = showString "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"+  showsPrec _ VK_ACCESS_SHADER_READ_BIT = showString "VK_ACCESS_SHADER_READ_BIT"+  showsPrec _ VK_ACCESS_SHADER_WRITE_BIT = showString "VK_ACCESS_SHADER_WRITE_BIT"+  showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = showString "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"+  showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = showString "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"+  showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"+  showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"+  showsPrec _ VK_ACCESS_TRANSFER_READ_BIT = showString "VK_ACCESS_TRANSFER_READ_BIT"+  showsPrec _ VK_ACCESS_TRANSFER_WRITE_BIT = showString "VK_ACCESS_TRANSFER_WRITE_BIT"+  showsPrec _ VK_ACCESS_HOST_READ_BIT = showString "VK_ACCESS_HOST_READ_BIT"+  showsPrec _ VK_ACCESS_HOST_WRITE_BIT = showString "VK_ACCESS_HOST_WRITE_BIT"+  showsPrec _ VK_ACCESS_MEMORY_READ_BIT = showString "VK_ACCESS_MEMORY_READ_BIT"+  showsPrec _ VK_ACCESS_MEMORY_WRITE_BIT = showString "VK_ACCESS_MEMORY_WRITE_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkAccessFlagBits 0x00020000) = showString "VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX"+  showsPrec _ (VkAccessFlagBits 0x00040000) = showString "VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX"+  showsPrec _ (VkAccessFlagBits 0x00080000) = showString "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"+  showsPrec p (VkAccessFlagBits x) = showParen (p >= 11) (showString "VkAccessFlagBits " . showsPrec 11 x)++instance Read VkAccessFlagBits where+  readPrec = parens ( choose [ ("VK_ACCESS_INDIRECT_COMMAND_READ_BIT",          pure VK_ACCESS_INDIRECT_COMMAND_READ_BIT)+                             , ("VK_ACCESS_INDEX_READ_BIT",                     pure VK_ACCESS_INDEX_READ_BIT)+                             , ("VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT",          pure VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT)+                             , ("VK_ACCESS_UNIFORM_READ_BIT",                   pure VK_ACCESS_UNIFORM_READ_BIT)+                             , ("VK_ACCESS_INPUT_ATTACHMENT_READ_BIT",          pure VK_ACCESS_INPUT_ATTACHMENT_READ_BIT)+                             , ("VK_ACCESS_SHADER_READ_BIT",                    pure VK_ACCESS_SHADER_READ_BIT)+                             , ("VK_ACCESS_SHADER_WRITE_BIT",                   pure VK_ACCESS_SHADER_WRITE_BIT)+                             , ("VK_ACCESS_COLOR_ATTACHMENT_READ_BIT",          pure VK_ACCESS_COLOR_ATTACHMENT_READ_BIT)+                             , ("VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT",         pure VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT)+                             , ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT",  pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT)+                             , ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT", pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT)+                             , ("VK_ACCESS_TRANSFER_READ_BIT",                  pure VK_ACCESS_TRANSFER_READ_BIT)+                             , ("VK_ACCESS_TRANSFER_WRITE_BIT",                 pure VK_ACCESS_TRANSFER_WRITE_BIT)+                             , ("VK_ACCESS_HOST_READ_BIT",                      pure VK_ACCESS_HOST_READ_BIT)+                             , ("VK_ACCESS_HOST_WRITE_BIT",                     pure VK_ACCESS_HOST_WRITE_BIT)+                             , ("VK_ACCESS_MEMORY_READ_BIT",                    pure VK_ACCESS_MEMORY_READ_BIT)+                             , ("VK_ACCESS_MEMORY_WRITE_BIT",                   pure VK_ACCESS_MEMORY_WRITE_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX",              pure (VkAccessFlagBits 0x00020000))+                             , ("VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX",             pure (VkAccessFlagBits 0x00040000))+                             , ("VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT", pure (VkAccessFlagBits 0x00080000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkAccessFlagBits")+                        v <- step readPrec+                        pure (VkAccessFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"+pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT = VkAccessFlagBits 0x00000001++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_INDEX_READ_BIT"+pattern VK_ACCESS_INDEX_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_INDEX_READ_BIT = VkAccessFlagBits 0x00000002++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"+pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = VkAccessFlagBits 0x00000004++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_UNIFORM_READ_BIT"+pattern VK_ACCESS_UNIFORM_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_UNIFORM_READ_BIT = VkAccessFlagBits 0x00000008++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"+pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x00000010++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_SHADER_READ_BIT"+pattern VK_ACCESS_SHADER_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_SHADER_READ_BIT = VkAccessFlagBits 0x00000020++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_SHADER_WRITE_BIT"+pattern VK_ACCESS_SHADER_WRITE_BIT :: VkAccessFlagBits+pattern VK_ACCESS_SHADER_WRITE_BIT = VkAccessFlagBits 0x00000040++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"+pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x00000080++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"+pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT :: VkAccessFlagBits+pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = VkAccessFlagBits 0x00000100++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"+pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x00000200++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"+pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: VkAccessFlagBits+pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = VkAccessFlagBits 0x00000400++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_TRANSFER_READ_BIT"+pattern VK_ACCESS_TRANSFER_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_TRANSFER_READ_BIT = VkAccessFlagBits 0x00000800++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_TRANSFER_WRITE_BIT"+pattern VK_ACCESS_TRANSFER_WRITE_BIT :: VkAccessFlagBits+pattern VK_ACCESS_TRANSFER_WRITE_BIT = VkAccessFlagBits 0x00001000++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_HOST_READ_BIT"+pattern VK_ACCESS_HOST_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_HOST_READ_BIT = VkAccessFlagBits 0x00002000++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_HOST_WRITE_BIT"+pattern VK_ACCESS_HOST_WRITE_BIT :: VkAccessFlagBits+pattern VK_ACCESS_HOST_WRITE_BIT = VkAccessFlagBits 0x00004000++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_MEMORY_READ_BIT"+pattern VK_ACCESS_MEMORY_READ_BIT :: VkAccessFlagBits+pattern VK_ACCESS_MEMORY_READ_BIT = VkAccessFlagBits 0x00008000++-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_MEMORY_WRITE_BIT"+pattern VK_ACCESS_MEMORY_WRITE_BIT :: VkAccessFlagBits+pattern VK_ACCESS_MEMORY_WRITE_BIT = VkAccessFlagBits 0x00010000+-- ** VkSubpassDescriptionFlagBits++-- | VkSubpassDescriptionFlagBits - Bitmask specifying usage of a subpass+--+-- = Description+-- #_description#+--+-- __Note__+--+-- All bits for this type are defined by extensions, and none of those+-- extensions are enabled in this build of the specification.+--+-- = See Also+-- #_see_also#+--+-- 'VkSubpassDescriptionFlags'+newtype VkSubpassDescriptionFlagBits = VkSubpassDescriptionFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSubpassDescriptionFlagBits where+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkSubpassDescriptionFlagBits 0x00000001) = showString "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"+  showsPrec _ (VkSubpassDescriptionFlagBits 0x00000002) = showString "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"+  showsPrec p (VkSubpassDescriptionFlagBits x) = showParen (p >= 11) (showString "VkSubpassDescriptionFlagBits " . showsPrec 11 x)++instance Read VkSubpassDescriptionFlagBits where+  readPrec = parens ( choose [ -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX",      pure (VkSubpassDescriptionFlagBits 0x00000001))+                             , ("VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX", pure (VkSubpassDescriptionFlagBits 0x00000002))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSubpassDescriptionFlagBits")+                        v <- step readPrec+                        pure (VkSubpassDescriptionFlagBits v)+                        )+                    )+++-- ** VkAttachmentDescriptionFlagBits++-- | VkAttachmentDescriptionFlagBits - Bitmask specifying additional+-- properties of an attachment+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentDescriptionFlags'+newtype VkAttachmentDescriptionFlagBits = VkAttachmentDescriptionFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkAttachmentDescriptionFlagBits where+  showsPrec _ VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = showString "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"+  showsPrec p (VkAttachmentDescriptionFlagBits x) = showParen (p >= 11) (showString "VkAttachmentDescriptionFlagBits " . showsPrec 11 x)++instance Read VkAttachmentDescriptionFlagBits where+  readPrec = parens ( choose [ ("VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT", pure VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkAttachmentDescriptionFlagBits")+                        v <- step readPrec+                        pure (VkAttachmentDescriptionFlagBits v)+                        )+                    )++-- | @VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT@ specifies that the attachment+-- aliases the same device memory as other attachments.+pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT :: VkAttachmentDescriptionFlagBits+pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = VkAttachmentDescriptionFlagBits 0x00000001+-- ** VkDependencyFlagBits++-- | VkDependencyFlagBits - Bitmask specifying how execution and memory+-- dependencies are formed+--+-- = See Also+-- #_see_also#+--+-- 'VkDependencyFlags'+newtype VkDependencyFlagBits = VkDependencyFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDependencyFlagBits where+  showsPrec _ VK_DEPENDENCY_BY_REGION_BIT = showString "VK_DEPENDENCY_BY_REGION_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkDependencyFlagBits 0x00000004) = showString "VK_DEPENDENCY_DEVICE_GROUP_BIT"+  showsPrec _ (VkDependencyFlagBits 0x00000002) = showString "VK_DEPENDENCY_VIEW_LOCAL_BIT"+  showsPrec p (VkDependencyFlagBits x) = showParen (p >= 11) (showString "VkDependencyFlagBits " . showsPrec 11 x)++instance Read VkDependencyFlagBits where+  readPrec = parens ( choose [ ("VK_DEPENDENCY_BY_REGION_BIT", pure VK_DEPENDENCY_BY_REGION_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_DEPENDENCY_DEVICE_GROUP_BIT", pure (VkDependencyFlagBits 0x00000004))+                             , ("VK_DEPENDENCY_VIEW_LOCAL_BIT",   pure (VkDependencyFlagBits 0x00000002))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDependencyFlagBits")+                        v <- step readPrec+                        pure (VkDependencyFlagBits v)+                        )+                    )++-- | @VK_DEPENDENCY_BY_REGION_BIT@ specifies that dependencies will be+-- <{html_spec_relative}#synchronization-framebuffer-regions framebuffer-local>.+pattern VK_DEPENDENCY_BY_REGION_BIT :: VkDependencyFlagBits+pattern VK_DEPENDENCY_BY_REGION_BIT = VkDependencyFlagBits 0x00000001+-- | Dummy data to tag the 'Ptr' with+data VkFramebuffer_T+-- | VkFramebuffer - Opaque handle to a framebuffer object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo',+-- 'vkCreateFramebuffer', 'vkDestroyFramebuffer'+type VkFramebuffer = Ptr VkFramebuffer_T+-- | vkCreateFramebuffer - Create a new framebuffer object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the framebuffer.+--+-- -   @pCreateInfo@ points to a 'VkFramebufferCreateInfo' structure which+--     describes additional information about framebuffer creation.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pFramebuffer@ points to a @VkFramebuffer@ handle in which the+--     resulting framebuffer object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkFramebufferCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pFramebuffer@ /must/ be a valid pointer to a @VkFramebuffer@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkFramebuffer',+-- 'VkFramebufferCreateInfo'+foreign import ccall "vkCreateFramebuffer" vkCreateFramebuffer :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkFramebufferCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFramebuffer" ::: Ptr VkFramebuffer) -> IO VkResult+-- | vkDestroyFramebuffer - Destroy a framebuffer object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the framebuffer.+--+-- -   @framebuffer@ is the handle of the framebuffer to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @framebuffer@ /must/ have+--     completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @framebuffer@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @framebuffer@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @framebuffer@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @framebuffer@+--     /must/ be a valid @VkFramebuffer@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @framebuffer@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @framebuffer@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkFramebuffer'+foreign import ccall "vkDestroyFramebuffer" vkDestroyFramebuffer :: ("device" ::: VkDevice) -> ("framebuffer" ::: VkFramebuffer) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkCreateRenderPass - Create a new render pass object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the render pass.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkRenderPassCreateInfo' structure that describes the parameters of+--     the render pass.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pRenderPass@ points to a @VkRenderPass@ handle in which the+--     resulting render pass object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkRenderPassCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pRenderPass@ /must/ be a valid pointer to a @VkRenderPass@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRenderPass', 'VkRenderPassCreateInfo'+foreign import ccall "vkCreateRenderPass" vkCreateRenderPass :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkRenderPassCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pRenderPass" ::: Ptr VkRenderPass) -> IO VkResult+-- | vkDestroyRenderPass - Destroy a render pass object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the render pass.+--+-- -   @renderPass@ is the handle of the render pass to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @renderPass@ /must/ have+--     completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @renderPass@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @renderPass@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @renderPass@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @renderPass@+--     /must/ be a valid @VkRenderPass@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @renderPass@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @renderPass@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRenderPass'+foreign import ccall "vkDestroyRenderPass" vkDestroyRenderPass :: ("device" ::: VkDevice) -> ("renderPass" ::: VkRenderPass) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkGetRenderAreaGranularity - Returns the granularity for optimal render+-- area+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the render pass.+--+-- -   @renderPass@ is a handle to a render pass.+--+-- -   @pGranularity@ points to a+--     'Graphics.Vulkan.Core10.Pipeline.VkExtent2D' structure in which the+--     granularity is returned.+--+-- = Description+-- #_description#+--+-- The conditions leading to an optimal @renderArea@ are:+--+-- -   the @offset.x@ member in @renderArea@ is a multiple of the @width@+--     member of the returned 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D'+--     (the horizontal granularity).+--+-- -   the @offset.y@ member in @renderArea@ is a multiple of the @height@+--     of the returned 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D' (the+--     vertical granularity).+--+-- -   either the @offset.width@ member in @renderArea@ is a multiple of+--     the horizontal granularity or @offset.x@+@offset.width@ is equal to+--     the @width@ of the @framebuffer@ in the+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo'.+--+-- -   either the @offset.height@ member in @renderArea@ is a multiple of+--     the vertical granularity or @offset.y@+@offset.height@ is equal to+--     the @height@ of the @framebuffer@ in the+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo'.+--+-- Subpass dependencies are not affected by the render area, and apply to+-- the entire image subresources attached to the framebuffer as specified+-- in the description of+-- <{html_spec_relative}#renderpass-layout-transitions automatic layout transitions>.+-- Similarly, pipeline barriers are valid even if their effect extends+-- outside the render area.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @renderPass@ /must/ be a valid @VkRenderPass@ handle+--+-- -   @pGranularity@ /must/ be a valid pointer to a @VkExtent2D@ structure+--+-- -   @renderPass@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRenderPass'+foreign import ccall "vkGetRenderAreaGranularity" vkGetRenderAreaGranularity :: ("device" ::: VkDevice) -> ("renderPass" ::: VkRenderPass) -> ("pGranularity" ::: Ptr VkExtent2D) -> IO ()+-- | VkAttachmentDescription - Structure specifying an attachment description+--+-- = Description+-- #_description#+--+-- If the attachment uses a color format, then @loadOp@ and @storeOp@ are+-- used, and @stencilLoadOp@ and @stencilStoreOp@ are ignored. If the+-- format has depth and\/or stencil components, @loadOp@ and @storeOp@+-- apply only to the depth data, while @stencilLoadOp@ and @stencilStoreOp@+-- define how the stencil data is handled. @loadOp@ and @stencilLoadOp@+-- define the /load operations/ that execute as part of the first subpass+-- that uses the attachment. @storeOp@ and @stencilStoreOp@ define the+-- /store operations/ that execute as part of the last subpass that uses+-- the attachment.+--+-- The load operation for each sample in an attachment happens-before any+-- recorded command which accesses the sample in the first subpass where+-- the attachment is used. Load operations for attachments with a+-- depth\/stencil format execute in the+-- @VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT@ pipeline stage. Load+-- operations for attachments with a color format execute in the+-- @VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT@ pipeline stage.+--+-- The store operation for each sample in an attachment happens-after any+-- recorded command which accesses the sample in the last subpass where the+-- attachment is used. Store operations for attachments with a+-- depth\/stencil format execute in the+-- @VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT@ pipeline stage. Store+-- operations for attachments with a color format execute in the+-- @VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT@ pipeline stage.+--+-- If an attachment is not used by any subpass, then @loadOp@, @storeOp@,+-- @stencilStoreOp@, and @stencilLoadOp@ are ignored, and the attachment’s+-- memory contents will not be modified by execution of a render pass+-- instance.+--+-- During a render pass instance, input\/color attachments with color+-- formats that have a component size of 8, 16, or 32 bits /must/ be+-- represented in the attachment’s format throughout the instance.+-- Attachments with other floating- or fixed-point color formats, or with+-- depth components /may/ be represented in a format with a precision+-- higher than the attachment format, but /must/ be represented with the+-- same range. When such a component is loaded via the @loadOp@, it will be+-- converted into an implementation-dependent format used by the render+-- pass. Such components /must/ be converted from the render pass format,+-- to the format of the attachment, before they are resolved or stored at+-- the end of a render pass instance via @storeOp@. Conversions occur as+-- described in+-- <{html_spec_relative}#fundamentals-numerics Numeric Representation and Computation>+-- and+-- <{html_spec_relative}#fundamentals-fixedconv Fixed-Point Data Conversions>.+--+-- If @flags@ includes @VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT@, then the+-- attachment is treated as if it shares physical memory with another+-- attachment in the same render pass. This information limits the ability+-- of the implementation to reorder certain operations (like layout+-- transitions and the @loadOp@) such that it is not improperly reordered+-- against other uses of the same physical memory via a different+-- attachment. This is described in more detail below.+--+-- == Valid Usage+--+-- -   @finalLayout@ /must/ not be @VK_IMAGE_LAYOUT_UNDEFINED@ or+--     @VK_IMAGE_LAYOUT_PREINITIALIZED@+--+-- == Valid Usage (Implicit)+--+-- -   @flags@ /must/ be a valid combination of+--     'VkAttachmentDescriptionFlagBits' values+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- -   @samples@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+--     value+--+-- -   @loadOp@ /must/ be a valid 'VkAttachmentLoadOp' value+--+-- -   @storeOp@ /must/ be a valid 'VkAttachmentStoreOp' value+--+-- -   @stencilLoadOp@ /must/ be a valid 'VkAttachmentLoadOp' value+--+-- -   @stencilStoreOp@ /must/ be a valid 'VkAttachmentStoreOp' value+--+-- -   @initialLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- -   @finalLayout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentDescriptionFlags', 'VkAttachmentLoadOp',+-- 'VkAttachmentStoreOp', 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout', 'VkRenderPassCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+data VkAttachmentDescription = VkAttachmentDescription+  { -- No documentation found for Nested "VkAttachmentDescription" "vkFlags"+  vkFlags :: VkAttachmentDescriptionFlags+  , -- No documentation found for Nested "VkAttachmentDescription" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkAttachmentDescription" "vkSamples"+  vkSamples :: VkSampleCountFlagBits+  , -- No documentation found for Nested "VkAttachmentDescription" "vkLoadOp"+  vkLoadOp :: VkAttachmentLoadOp+  , -- No documentation found for Nested "VkAttachmentDescription" "vkStoreOp"+  vkStoreOp :: VkAttachmentStoreOp+  , -- No documentation found for Nested "VkAttachmentDescription" "vkStencilLoadOp"+  vkStencilLoadOp :: VkAttachmentLoadOp+  , -- No documentation found for Nested "VkAttachmentDescription" "vkStencilStoreOp"+  vkStencilStoreOp :: VkAttachmentStoreOp+  , -- No documentation found for Nested "VkAttachmentDescription" "vkInitialLayout"+  vkInitialLayout :: VkImageLayout+  , -- No documentation found for Nested "VkAttachmentDescription" "vkFinalLayout"+  vkFinalLayout :: VkImageLayout+  }+  deriving (Eq, Show)++instance Storable VkAttachmentDescription where+  sizeOf ~_ = 36+  alignment ~_ = 4+  peek ptr = VkAttachmentDescription <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 4)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 12)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 20)+                                     <*> peek (ptr `plusPtr` 24)+                                     <*> peek (ptr `plusPtr` 28)+                                     <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkFlags (poked :: VkAttachmentDescription))+                *> poke (ptr `plusPtr` 4) (vkFormat (poked :: VkAttachmentDescription))+                *> poke (ptr `plusPtr` 8) (vkSamples (poked :: VkAttachmentDescription))+                *> poke (ptr `plusPtr` 12) (vkLoadOp (poked :: VkAttachmentDescription))+                *> poke (ptr `plusPtr` 16) (vkStoreOp (poked :: VkAttachmentDescription))+                *> poke (ptr `plusPtr` 20) (vkStencilLoadOp (poked :: VkAttachmentDescription))+                *> poke (ptr `plusPtr` 24) (vkStencilStoreOp (poked :: VkAttachmentDescription))+                *> poke (ptr `plusPtr` 28) (vkInitialLayout (poked :: VkAttachmentDescription))+                *> poke (ptr `plusPtr` 32) (vkFinalLayout (poked :: VkAttachmentDescription))+-- | VkAttachmentReference - Structure specifying an attachment reference+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @layout@ /must/ not be @VK_IMAGE_LAYOUT_UNDEFINED@ or+--     @VK_IMAGE_LAYOUT_PREINITIALIZED@+--+-- == Valid Usage (Implicit)+--+-- -   @layout@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Image.VkImageLayout' value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Image.VkImageLayout', 'VkSubpassDescription'+data VkAttachmentReference = VkAttachmentReference+  { -- No documentation found for Nested "VkAttachmentReference" "vkAttachment"+  vkAttachment :: Word32+  , -- No documentation found for Nested "VkAttachmentReference" "vkLayout"+  vkLayout :: VkImageLayout+  }+  deriving (Eq, Show)++instance Storable VkAttachmentReference where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkAttachmentReference <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkAttachment (poked :: VkAttachmentReference))+                *> poke (ptr `plusPtr` 4) (vkLayout (poked :: VkAttachmentReference))+-- | VkSubpassDescription - Structure specifying a subpass description+--+-- = Description+-- #_description#+--+-- The contents of an attachment within the render area become undefined at+-- the start of a subpass __S__ if all of the following conditions are+-- true:+--+-- -   The attachment is used as a color, depth\/stencil, or resolve+--     attachment in any subpass in the render pass.+--+-- -   There is a subpass __S1__ that uses or preserves the attachment, and+--     a subpass dependency from __S1__ to __S__.+--+-- -   The attachment is not used or preserved in subpass __S__.+--+-- Once the contents of an attachment become undefined in subpass __S__,+-- they remain undefined for subpasses in subpass dependency chains+-- starting with subpass __S__ until they are written again. However, they+-- remain valid for subpasses in other subpass dependency chains starting+-- with subpass __S1__ if those subpasses use or preserve the attachment.+--+-- == Valid Usage+--+-- -   @pipelineBindPoint@ /must/ be @VK_PIPELINE_BIND_POINT_GRAPHICS@+--+-- -   @colorAttachmentCount@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxColorAttachments@+--+-- -   If the first use of an attachment in this render pass is as an input+--     attachment, and the attachment is not also used as a color or+--     depth\/stencil attachment in the same subpass, then @loadOp@ /must/+--     not be @VK_ATTACHMENT_LOAD_OP_CLEAR@+--+-- -   If @pResolveAttachments@ is not @NULL@, for each resolve attachment+--     that does not have the value @VK_ATTACHMENT_UNUSED@, the+--     corresponding color attachment /must/ not have the value+--     @VK_ATTACHMENT_UNUSED@+--+-- -   If @pResolveAttachments@ is not @NULL@, the sample count of each+--     element of @pColorAttachments@ /must/ be anything other than+--     @VK_SAMPLE_COUNT_1_BIT@+--+-- -   Each element of @pResolveAttachments@ /must/ have a sample count of+--     @VK_SAMPLE_COUNT_1_BIT@+--+-- -   Each element of @pResolveAttachments@ /must/ have the same+--     'Graphics.Vulkan.Core10.Core.VkFormat' as its corresponding color+--     attachment+--+-- -   All attachments in @pColorAttachments@ that are not+--     @VK_ATTACHMENT_UNUSED@ /must/ have the same sample count+--+-- -   If @pDepthStencilAttachment@ is not @VK_ATTACHMENT_UNUSED@ and any+--     attachments in @pColorAttachments@ are not @VK_ATTACHMENT_UNUSED@,+--     they /must/ have the same sample count+--+-- -   If any input attachments are @VK_ATTACHMENT_UNUSED@, then any+--     pipelines bound during the subpass /must/ not access those input+--     attachments from the fragment shader+--+-- -   The @attachment@ member of each element of @pPreserveAttachments@+--     /must/ not be @VK_ATTACHMENT_UNUSED@+--+-- -   Each element of @pPreserveAttachments@ /must/ not also be an element+--     of any other member of the subpass description+--+-- -   If any attachment is used as both an input attachment and a color or+--     depth\/stencil attachment, then each use /must/ use the same+--     @layout@+--+-- == Valid Usage (Implicit)+--+-- -   @flags@ /must/ be a valid combination of+--     'VkSubpassDescriptionFlagBits' values+--+-- -   @pipelineBindPoint@ /must/ be a valid 'VkPipelineBindPoint' value+--+-- -   If @inputAttachmentCount@ is not @0@, @pInputAttachments@ /must/ be+--     a valid pointer to an array of @inputAttachmentCount@ valid+--     @VkAttachmentReference@ structures+--+-- -   If @colorAttachmentCount@ is not @0@, @pColorAttachments@ /must/ be+--     a valid pointer to an array of @colorAttachmentCount@ valid+--     @VkAttachmentReference@ structures+--+-- -   If @colorAttachmentCount@ is not @0@, and @pResolveAttachments@ is+--     not @NULL@, @pResolveAttachments@ /must/ be a valid pointer to an+--     array of @colorAttachmentCount@ valid @VkAttachmentReference@+--     structures+--+-- -   If @pDepthStencilAttachment@ is not @NULL@,+--     @pDepthStencilAttachment@ /must/ be a valid pointer to a valid+--     @VkAttachmentReference@ structure+--+-- -   If @preserveAttachmentCount@ is not @0@, @pPreserveAttachments@+--     /must/ be a valid pointer to an array of @preserveAttachmentCount@+--     @uint32_t@ values+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentReference', 'VkPipelineBindPoint',+-- 'VkRenderPassCreateInfo', 'VkSubpassDescriptionFlags'+data VkSubpassDescription = VkSubpassDescription+  { -- No documentation found for Nested "VkSubpassDescription" "vkFlags"+  vkFlags :: VkSubpassDescriptionFlags+  , -- No documentation found for Nested "VkSubpassDescription" "vkPipelineBindPoint"+  vkPipelineBindPoint :: VkPipelineBindPoint+  , -- No documentation found for Nested "VkSubpassDescription" "vkInputAttachmentCount"+  vkInputAttachmentCount :: Word32+  , -- No documentation found for Nested "VkSubpassDescription" "vkPInputAttachments"+  vkPInputAttachments :: Ptr VkAttachmentReference+  , -- No documentation found for Nested "VkSubpassDescription" "vkColorAttachmentCount"+  vkColorAttachmentCount :: Word32+  , -- No documentation found for Nested "VkSubpassDescription" "vkPColorAttachments"+  vkPColorAttachments :: Ptr VkAttachmentReference+  , -- No documentation found for Nested "VkSubpassDescription" "vkPResolveAttachments"+  vkPResolveAttachments :: Ptr VkAttachmentReference+  , -- No documentation found for Nested "VkSubpassDescription" "vkPDepthStencilAttachment"+  vkPDepthStencilAttachment :: Ptr VkAttachmentReference+  , -- No documentation found for Nested "VkSubpassDescription" "vkPreserveAttachmentCount"+  vkPreserveAttachmentCount :: Word32+  , -- No documentation found for Nested "VkSubpassDescription" "vkPPreserveAttachments"+  vkPPreserveAttachments :: Ptr Word32+  }+  deriving (Eq, Show)++instance Storable VkSubpassDescription where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkSubpassDescription <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 4)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 24)+                                  <*> peek (ptr `plusPtr` 32)+                                  <*> peek (ptr `plusPtr` 40)+                                  <*> peek (ptr `plusPtr` 48)+                                  <*> peek (ptr `plusPtr` 56)+                                  <*> peek (ptr `plusPtr` 64)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkFlags (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 4) (vkPipelineBindPoint (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 8) (vkInputAttachmentCount (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 16) (vkPInputAttachments (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 24) (vkColorAttachmentCount (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 32) (vkPColorAttachments (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 40) (vkPResolveAttachments (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 48) (vkPDepthStencilAttachment (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 56) (vkPreserveAttachmentCount (poked :: VkSubpassDescription))+                *> poke (ptr `plusPtr` 64) (vkPPreserveAttachments (poked :: VkSubpassDescription))+-- | VkSubpassDependency - Structure specifying a subpass dependency+--+-- = Description+-- #_description#+--+-- If @srcSubpass@ is equal to @dstSubpass@ then the 'VkSubpassDependency'+-- describes a+-- <{html_spec_relative}#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependency>,+-- and only constrains the pipeline barriers allowed within a subpass+-- instance. Otherwise, when a render pass instance which includes a+-- subpass dependency is submitted to a queue, it defines a memory+-- dependency between the subpasses identified by @srcSubpass@ and+-- @dstSubpass@.+--+-- If @srcSubpass@ is equal to @VK_SUBPASS_EXTERNAL@, the first+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes commands that occur earlier in+-- <{html_spec_relative}#synchronization-submission-order submission order>+-- than the+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBeginRenderPass' used+-- to begin the render pass instance. Otherwise, the first set of commands+-- includes all commands submitted as part of the subpass instance+-- identified by @srcSubpass@ and any load, store or multisample resolve+-- operations on attachments used in @srcSubpass@. In either case, the+-- first synchronization scope is limited to operations on the pipeline+-- stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@.+--+-- If @dstSubpass@ is equal to @VK_SUBPASS_EXTERNAL@, the second+-- <{html_spec_relative}#synchronization-dependencies-scopes synchronization scope>+-- includes commands that occur later in+-- <{html_spec_relative}#synchronization-submission-order submission order>+-- than the+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdEndRenderPass' used+-- to end the render pass instance. Otherwise, the second set of commands+-- includes all commands submitted as part of the subpass instance+-- identified by @dstSubpass@ and any load, store or multisample resolve+-- operations on attachments used in @dstSubpass@. In either case, the+-- second synchronization scope is limited to operations on the pipeline+-- stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access in the pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@. It is also limited to access types in the+-- <{html_spec_relative}#synchronization-access-masks source access mask>+-- specified by @srcAccessMask@.+--+-- The second+-- <{html_spec_relative}#synchronization-dependencies-access-scopes access scope>+-- is limited to access in the pipeline stages determined by the+-- <{html_spec_relative}#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@. It is also limited to access types in the+-- <{html_spec_relative}#synchronization-access-masks destination access mask>+-- specified by @dstAccessMask@.+--+-- The+-- <{html_spec_relative}#synchronization-dependencies-available-and-visible availability and visibility operations>+-- defined by a subpass dependency affect the execution of+-- <{html_spec_relative}#renderpass-layout-transitions image layout transitions>+-- within the render pass.+--+-- __Note__+--+-- For non-attachment resources, the memory dependency expressed by subpass+-- dependency is nearly identical to that of a+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier' (with+-- matching @srcAccessMask@\/@dstAccessMask@ parameters) submitted as a+-- part of a+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdPipelineBarrier'+-- (with matching @srcStageMask@\/@dstStageMask@ parameters). The only+-- difference being that its scopes are limited to the identified subpasses+-- rather than potentially affecting everything before and after.+--+-- For attachments however, subpass dependencies work more like an+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier'+-- defined similarly to the+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier' above,+-- the queue family indices set to @VK_QUEUE_FAMILY_IGNORED@, and layouts+-- as follows:+--+-- -   The equivalent to @oldLayout@ is the attachment’s layout according+--     to the subpass description for @srcSubpass@.+--+-- -   The equivalent to @newLayout@ is the attachment’s layout according+--     to the subpass description for @dstSubpass@.+--+-- == Valid Usage+--+-- -   If @srcSubpass@ is not @VK_SUBPASS_EXTERNAL@, @srcStageMask@ /must/+--     not include @VK_PIPELINE_STAGE_HOST_BIT@+--+-- -   If @dstSubpass@ is not @VK_SUBPASS_EXTERNAL@, @dstStageMask@ /must/+--     not include @VK_PIPELINE_STAGE_HOST_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- -   @srcSubpass@ /must/ be less than or equal to @dstSubpass@, unless+--     one of them is @VK_SUBPASS_EXTERNAL@, to avoid cyclic dependencies+--     and ensure a valid execution order+--+-- -   @srcSubpass@ and @dstSubpass@ /must/ not both be equal to+--     @VK_SUBPASS_EXTERNAL@+--+-- -   If @srcSubpass@ is equal to @dstSubpass@, @srcStageMask@ and+--     @dstStageMask@ /must/ only contain one of+--     @VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT@,+--     @VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT@,+--     @VK_PIPELINE_STAGE_VERTEX_INPUT_BIT@,+--     @VK_PIPELINE_STAGE_VERTEX_SHADER_BIT@,+--     @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@,+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@,+--     @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@,+--     @VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT@,+--     @VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT@,+--     @VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT@,+--     @VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT@,+--     @VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT@, or+--     @VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT@+--+-- -   If @srcSubpass@ is equal to @dstSubpass@ and not all of the stages+--     in @srcStageMask@ and @dstStageMask@ are+--     <{html_spec_relative}#synchronization-framebuffer-regions framebuffer-space stages>,+--     the+--     <{html_spec_relative}#synchronization-pipeline-stages-order logically latest>+--     pipeline stage in @srcStageMask@ /must/ be+--     <{html_spec_relative}#synchronization-pipeline-stages-order logically earlier>+--     than or equal to the+--     <{html_spec_relative}#synchronization-pipeline-stages-order logically earliest>+--     pipeline stage in @dstStageMask@+--+-- -   Any access flag included in @srcAccessMask@ /must/ be supported by+--     one of the pipeline stages in @srcStageMask@, as specified in the+--     <{html_spec_relative}#synchronization-access-types-supported table of supported access types>.+--+-- -   Any access flag included in @dstAccessMask@ /must/ be supported by+--     one of the pipeline stages in @dstStageMask@, as specified in the+--     <{html_spec_relative}#synchronization-access-types-supported table of supported access types>.+--+-- == Valid Usage (Implicit)+--+-- -   @srcStageMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values+--+-- -   @srcStageMask@ /must/ not be @0@+--+-- -   @dstStageMask@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values+--+-- -   @dstStageMask@ /must/ not be @0@+--+-- -   @srcAccessMask@ /must/ be a valid combination of 'VkAccessFlagBits'+--     values+--+-- -   @dstAccessMask@ /must/ be a valid combination of 'VkAccessFlagBits'+--     values+--+-- -   @dependencyFlags@ /must/ be a valid combination of+--     'VkDependencyFlagBits' values+--+-- = See Also+-- #_see_also#+--+-- 'VkAccessFlags', 'VkDependencyFlags',+-- 'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlags',+-- 'VkRenderPassCreateInfo'+data VkSubpassDependency = VkSubpassDependency+  { -- No documentation found for Nested "VkSubpassDependency" "vkSrcSubpass"+  vkSrcSubpass :: Word32+  , -- No documentation found for Nested "VkSubpassDependency" "vkDstSubpass"+  vkDstSubpass :: Word32+  , -- No documentation found for Nested "VkSubpassDependency" "vkSrcStageMask"+  vkSrcStageMask :: VkPipelineStageFlags+  , -- No documentation found for Nested "VkSubpassDependency" "vkDstStageMask"+  vkDstStageMask :: VkPipelineStageFlags+  , -- No documentation found for Nested "VkSubpassDependency" "vkSrcAccessMask"+  vkSrcAccessMask :: VkAccessFlags+  , -- No documentation found for Nested "VkSubpassDependency" "vkDstAccessMask"+  vkDstAccessMask :: VkAccessFlags+  , -- No documentation found for Nested "VkSubpassDependency" "vkDependencyFlags"+  vkDependencyFlags :: VkDependencyFlags+  }+  deriving (Eq, Show)++instance Storable VkSubpassDependency where+  sizeOf ~_ = 28+  alignment ~_ = 4+  peek ptr = VkSubpassDependency <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 4)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 12)+                                 <*> peek (ptr `plusPtr` 16)+                                 <*> peek (ptr `plusPtr` 20)+                                 <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubpass (poked :: VkSubpassDependency))+                *> poke (ptr `plusPtr` 4) (vkDstSubpass (poked :: VkSubpassDependency))+                *> poke (ptr `plusPtr` 8) (vkSrcStageMask (poked :: VkSubpassDependency))+                *> poke (ptr `plusPtr` 12) (vkDstStageMask (poked :: VkSubpassDependency))+                *> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkSubpassDependency))+                *> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkSubpassDependency))+                *> poke (ptr `plusPtr` 24) (vkDependencyFlags (poked :: VkSubpassDependency))+-- | VkRenderPassCreateInfo - Structure specifying parameters of a newly+-- created render pass+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If any two subpasses operate on attachments with overlapping ranges+--     of the same @VkDeviceMemory@ object, and at least one subpass writes+--     to that area of @VkDeviceMemory@, a subpass dependency /must/ be+--     included (either directly or via some intermediate subpasses)+--     between them+--+-- -   If the @attachment@ member of any element of @pInputAttachments@,+--     @pColorAttachments@, @pResolveAttachments@ or+--     @pDepthStencilAttachment@, or the attachment indexed by any element+--     of @pPreserveAttachments@ in any element of @pSubpasses@ is bound to+--     a range of a @VkDeviceMemory@ object that overlaps with any other+--     attachment in any subpass (including the same subpass), the+--     @VkAttachmentDescription@ structures describing them /must/ include+--     @VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT@ in @flags@+--+-- -   If the @attachment@ member of any element of @pInputAttachments@,+--     @pColorAttachments@, @pResolveAttachments@ or+--     @pDepthStencilAttachment@, or any element of @pPreserveAttachments@+--     in any element of @pSubpasses@ is not @VK_ATTACHMENT_UNUSED@, it+--     /must/ be less than @attachmentCount@+--+-- -   The value of each element of the @pPreserveAttachments@ member in+--     each element of @pSubpasses@ /must/ not be @VK_ATTACHMENT_UNUSED@+--+-- -   For any member of @pAttachments@ with a @loadOp@ equal to+--     @VK_ATTACHMENT_LOAD_OP_CLEAR@, the first use of that attachment+--     /must/ not specify a @layout@ equal to+--     @VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL@ or+--     @VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL@.+--+-- -   For any element of @pDependencies@, if the @srcSubpass@ is not+--     @VK_SUBPASS_EXTERNAL@, all stage flags included in the+--     @srcStageMask@ member of that dependency /must/ be a pipeline stage+--     supported by the+--     <{html_spec_relative}#synchronization-pipeline-stages-types pipeline>+--     identified by the @pipelineBindPoint@ member of the source subpass.+--+-- -   For any element of @pDependencies@, if the @dstSubpass@ is not+--     @VK_SUBPASS_EXTERNAL@, all stage flags included in the+--     @dstStageMask@ member of that dependency /must/ be a pipeline stage+--     supported by the+--     <{html_spec_relative}#synchronization-pipeline-stages-types pipeline>+--     identified by the @pipelineBindPoint@ member of the source subpass.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkRenderPassInputAttachmentAspectCreateInfo'+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkRenderPassMultiviewCreateInfo'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- -   If @attachmentCount@ is not @0@, @pAttachments@ /must/ be a valid+--     pointer to an array of @attachmentCount@ valid+--     @VkAttachmentDescription@ structures+--+-- -   @pSubpasses@ /must/ be a valid pointer to an array of @subpassCount@+--     valid @VkSubpassDescription@ structures+--+-- -   If @dependencyCount@ is not @0@, @pDependencies@ /must/ be a valid+--     pointer to an array of @dependencyCount@ valid @VkSubpassDependency@+--     structures+--+-- -   @subpassCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentDescription', 'VkRenderPassCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkSubpassDependency',+-- 'VkSubpassDescription', 'vkCreateRenderPass'+data VkRenderPassCreateInfo = VkRenderPassCreateInfo+  { -- No documentation found for Nested "VkRenderPassCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkRenderPassCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkRenderPassCreateInfo" "vkFlags"+  vkFlags :: VkRenderPassCreateFlags+  , -- No documentation found for Nested "VkRenderPassCreateInfo" "vkAttachmentCount"+  vkAttachmentCount :: Word32+  , -- No documentation found for Nested "VkRenderPassCreateInfo" "vkPAttachments"+  vkPAttachments :: Ptr VkAttachmentDescription+  , -- No documentation found for Nested "VkRenderPassCreateInfo" "vkSubpassCount"+  vkSubpassCount :: Word32+  , -- No documentation found for Nested "VkRenderPassCreateInfo" "vkPSubpasses"+  vkPSubpasses :: Ptr VkSubpassDescription+  , -- No documentation found for Nested "VkRenderPassCreateInfo" "vkDependencyCount"+  vkDependencyCount :: Word32+  , -- No documentation found for Nested "VkRenderPassCreateInfo" "vkPDependencies"+  vkPDependencies :: Ptr VkSubpassDependency+  }+  deriving (Eq, Show)++instance Storable VkRenderPassCreateInfo where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkRenderPassCreateInfo <$> peek (ptr `plusPtr` 0)+                                    <*> peek (ptr `plusPtr` 8)+                                    <*> peek (ptr `plusPtr` 16)+                                    <*> peek (ptr `plusPtr` 20)+                                    <*> peek (ptr `plusPtr` 24)+                                    <*> peek (ptr `plusPtr` 32)+                                    <*> peek (ptr `plusPtr` 40)+                                    <*> peek (ptr `plusPtr` 48)+                                    <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkRenderPassCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkAttachmentCount (poked :: VkRenderPassCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPAttachments (poked :: VkRenderPassCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkSubpassCount (poked :: VkRenderPassCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPSubpasses (poked :: VkRenderPassCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkDependencyCount (poked :: VkRenderPassCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkPDependencies (poked :: VkRenderPassCreateInfo))+-- | VkFramebufferCreateInfo - Structure specifying parameters of a newly+-- created framebuffer+--+-- = Description+-- #_description#+--+-- Applications /must/ ensure that all accesses to memory that backs image+-- subresources used as attachments in a given renderpass instance either+-- happen-before the+-- <{html_spec_relative}#renderpass-load-store-ops load operations> for+-- those attachments, or happen-after the+-- <{html_spec_relative}#renderpass-load-store-ops store operations> for+-- those attachments.+--+-- __Note__+--+-- This restriction means that the render pass has full knowledge of all+-- uses of all of the attachments, so that the implementation is able to+-- make correct decisions about when and how to perform layout transitions,+-- when to overlap execution of subpasses, etc.+--+-- It is legal for a subpass to use no color or depth\/stencil attachments,+-- and rather use shader side effects such as image stores and atomics to+-- produce an output. In this case, the subpass continues to use the+-- @width@, @height@, and @layers@ of the framebuffer to define the+-- dimensions of the rendering area, and the @rasterizationSamples@ from+-- each pipeline’s+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo'+-- to define the number of samples used in rasterization; however, if+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures'::@variableMultisampleRate@+-- is @VK_FALSE@, then all pipelines to be bound with a given+-- zero-attachment subpass /must/ have the same value for+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo'::@rasterizationSamples@.+--+-- == Valid Usage+--+-- -   @attachmentCount@ /must/ be equal to the attachment count specified+--     in @renderPass@+--+-- -   Each element of @pAttachments@ that is used as a color attachment or+--     resolve attachment by @renderPass@ /must/ have been created with a+--     @usage@ value including @VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT@+--+-- -   Each element of @pAttachments@ that is used as a depth\/stencil+--     attachment by @renderPass@ /must/ have been created with a @usage@+--     value including @VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT@+--+-- -   Each element of @pAttachments@ that is used as an input attachment+--     by @renderPass@ /must/ have been created with a @usage@ value+--     including @VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT@+--+-- -   Each element of @pAttachments@ /must/ have been created with an+--     'Graphics.Vulkan.Core10.Core.VkFormat' value that matches the+--     'Graphics.Vulkan.Core10.Core.VkFormat' specified by the+--     corresponding @VkAttachmentDescription@ in @renderPass@+--+-- -   Each element of @pAttachments@ /must/ have been created with a+--     @samples@ value that matches the @samples@ value specified by the+--     corresponding @VkAttachmentDescription@ in @renderPass@+--+-- -   Each element of @pAttachments@ /must/ have dimensions at least as+--     large as the corresponding framebuffer dimension+--+-- -   Each element of @pAttachments@ /must/ only specify a single mip+--     level+--+-- -   Each element of @pAttachments@ /must/ have been created with the+--     identity swizzle+--+-- -   @width@ /must/ be greater than @0@.+--+-- -   @width@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxFramebufferWidth@+--+-- -   @height@ /must/ be greater than @0@.+--+-- -   @height@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxFramebufferHeight@+--+-- -   @layers@ /must/ be greater than @0@.+--+-- -   @layers@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxFramebufferLayers@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   @renderPass@ /must/ be a valid @VkRenderPass@ handle+--+-- -   If @attachmentCount@ is not @0@, @pAttachments@ /must/ be a valid+--     pointer to an array of @attachmentCount@ valid @VkImageView@ handles+--+-- -   Both of @renderPass@, and the elements of @pAttachments@ that are+--     valid handles /must/ have been created, allocated, or retrieved from+--     the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'VkFramebufferCreateFlags',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageView',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRenderPass',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateFramebuffer'+data VkFramebufferCreateInfo = VkFramebufferCreateInfo+  { -- No documentation found for Nested "VkFramebufferCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkFramebufferCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkFramebufferCreateInfo" "vkFlags"+  vkFlags :: VkFramebufferCreateFlags+  , -- No documentation found for Nested "VkFramebufferCreateInfo" "vkRenderPass"+  vkRenderPass :: VkRenderPass+  , -- No documentation found for Nested "VkFramebufferCreateInfo" "vkAttachmentCount"+  vkAttachmentCount :: Word32+  , -- No documentation found for Nested "VkFramebufferCreateInfo" "vkPAttachments"+  vkPAttachments :: Ptr VkImageView+  , -- No documentation found for Nested "VkFramebufferCreateInfo" "vkWidth"+  vkWidth :: Word32+  , -- No documentation found for Nested "VkFramebufferCreateInfo" "vkHeight"+  vkHeight :: Word32+  , -- No documentation found for Nested "VkFramebufferCreateInfo" "vkLayers"+  vkLayers :: Word32+  }+  deriving (Eq, Show)++instance Storable VkFramebufferCreateInfo where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkFramebufferCreateInfo <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 24)+                                     <*> peek (ptr `plusPtr` 32)+                                     <*> peek (ptr `plusPtr` 40)+                                     <*> peek (ptr `plusPtr` 48)+                                     <*> peek (ptr `plusPtr` 52)+                                     <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFramebufferCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFramebufferCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkFramebufferCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkRenderPass (poked :: VkFramebufferCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkAttachmentCount (poked :: VkFramebufferCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPAttachments (poked :: VkFramebufferCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkWidth (poked :: VkFramebufferCreateInfo))+                *> poke (ptr `plusPtr` 52) (vkHeight (poked :: VkFramebufferCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkLayers (poked :: VkFramebufferCreateInfo))+-- | VkAccessFlags - Bitmask of VkAccessFlagBits+--+-- = Description+-- #_description#+--+-- @VkAccessFlags@ is a bitmask type for setting a mask of zero or more+-- 'VkAccessFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkAccessFlagBits',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier',+-- 'VkSubpassDependency'+type VkAccessFlags = VkAccessFlagBits+-- | VkSubpassDescriptionFlags - Bitmask of VkSubpassDescriptionFlagBits+--+-- = Description+-- #_description#+--+-- @VkSubpassDescriptionFlags@ is a bitmask type for setting a mask of zero+-- or more 'VkSubpassDescriptionFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkSubpassDescription', 'VkSubpassDescriptionFlagBits'+type VkSubpassDescriptionFlags = VkSubpassDescriptionFlagBits+-- | VkAttachmentDescriptionFlags - Bitmask of+-- VkAttachmentDescriptionFlagBits+--+-- = Description+-- #_description#+--+-- @VkAttachmentDescriptionFlags@ is a bitmask type for setting a mask of+-- zero or more 'VkAttachmentDescriptionFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentDescription', 'VkAttachmentDescriptionFlagBits'+type VkAttachmentDescriptionFlags = VkAttachmentDescriptionFlagBits+-- | VkDependencyFlags - Bitmask of VkDependencyFlagBits+--+-- = Description+-- #_description#+--+-- @VkDependencyFlags@ is a bitmask type for setting a mask of zero or more+-- 'VkDependencyFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkDependencyFlagBits', 'VkSubpassDependency',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdPipelineBarrier'+type VkDependencyFlags = VkDependencyFlagBits
+ src/Graphics/Vulkan/Core10/Pipeline.hs view
@@ -0,0 +1,4194 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Pipeline+  ( VkBlendFactor(..)+  , pattern VK_BLEND_FACTOR_ZERO+  , pattern VK_BLEND_FACTOR_ONE+  , pattern VK_BLEND_FACTOR_SRC_COLOR+  , pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR+  , pattern VK_BLEND_FACTOR_DST_COLOR+  , pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR+  , pattern VK_BLEND_FACTOR_SRC_ALPHA+  , pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA+  , pattern VK_BLEND_FACTOR_DST_ALPHA+  , pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA+  , pattern VK_BLEND_FACTOR_CONSTANT_COLOR+  , pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR+  , pattern VK_BLEND_FACTOR_CONSTANT_ALPHA+  , pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA+  , pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE+  , pattern VK_BLEND_FACTOR_SRC1_COLOR+  , pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR+  , pattern VK_BLEND_FACTOR_SRC1_ALPHA+  , pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA+  , VkBlendOp(..)+  , pattern VK_BLEND_OP_ADD+  , pattern VK_BLEND_OP_SUBTRACT+  , pattern VK_BLEND_OP_REVERSE_SUBTRACT+  , pattern VK_BLEND_OP_MIN+  , pattern VK_BLEND_OP_MAX+  , VkCompareOp(..)+  , pattern VK_COMPARE_OP_NEVER+  , pattern VK_COMPARE_OP_LESS+  , pattern VK_COMPARE_OP_EQUAL+  , pattern VK_COMPARE_OP_LESS_OR_EQUAL+  , pattern VK_COMPARE_OP_GREATER+  , pattern VK_COMPARE_OP_NOT_EQUAL+  , pattern VK_COMPARE_OP_GREATER_OR_EQUAL+  , pattern VK_COMPARE_OP_ALWAYS+  , VkDynamicState(..)+  , pattern VK_DYNAMIC_STATE_VIEWPORT+  , pattern VK_DYNAMIC_STATE_SCISSOR+  , pattern VK_DYNAMIC_STATE_LINE_WIDTH+  , pattern VK_DYNAMIC_STATE_DEPTH_BIAS+  , pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS+  , pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS+  , pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK+  , pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK+  , pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE+  , VkPolygonMode(..)+  , pattern VK_POLYGON_MODE_FILL+  , pattern VK_POLYGON_MODE_LINE+  , pattern VK_POLYGON_MODE_POINT+  , VkFrontFace(..)+  , pattern VK_FRONT_FACE_COUNTER_CLOCKWISE+  , pattern VK_FRONT_FACE_CLOCKWISE+  , VkLogicOp(..)+  , pattern VK_LOGIC_OP_CLEAR+  , pattern VK_LOGIC_OP_AND+  , pattern VK_LOGIC_OP_AND_REVERSE+  , pattern VK_LOGIC_OP_COPY+  , pattern VK_LOGIC_OP_AND_INVERTED+  , pattern VK_LOGIC_OP_NO_OP+  , pattern VK_LOGIC_OP_XOR+  , pattern VK_LOGIC_OP_OR+  , pattern VK_LOGIC_OP_NOR+  , pattern VK_LOGIC_OP_EQUIVALENT+  , pattern VK_LOGIC_OP_INVERT+  , pattern VK_LOGIC_OP_OR_REVERSE+  , pattern VK_LOGIC_OP_COPY_INVERTED+  , pattern VK_LOGIC_OP_OR_INVERTED+  , pattern VK_LOGIC_OP_NAND+  , pattern VK_LOGIC_OP_SET+  , VkPrimitiveTopology(..)+  , pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST+  , pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST+  , pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP+  , pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST+  , pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP+  , pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN+  , pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY+  , pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY+  , pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY+  , pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY+  , pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST+  , VkStencilOp(..)+  , pattern VK_STENCIL_OP_KEEP+  , pattern VK_STENCIL_OP_ZERO+  , pattern VK_STENCIL_OP_REPLACE+  , pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP+  , pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP+  , pattern VK_STENCIL_OP_INVERT+  , pattern VK_STENCIL_OP_INCREMENT_AND_WRAP+  , pattern VK_STENCIL_OP_DECREMENT_AND_WRAP+  , VkVertexInputRate(..)+  , pattern VK_VERTEX_INPUT_RATE_VERTEX+  , pattern VK_VERTEX_INPUT_RATE_INSTANCE+  , VkPipelineDepthStencilStateCreateFlags(..)+  , VkPipelineDynamicStateCreateFlags(..)+  , VkPipelineColorBlendStateCreateFlags(..)+  , VkPipelineMultisampleStateCreateFlags(..)+  , VkPipelineRasterizationStateCreateFlags(..)+  , VkPipelineViewportStateCreateFlags(..)+  , VkPipelineTessellationStateCreateFlags(..)+  , VkPipelineInputAssemblyStateCreateFlags(..)+  , VkPipelineVertexInputStateCreateFlags(..)+  , VkPipelineShaderStageCreateFlags(..)+  , VkShaderStageFlagBits(..)+  , pattern VK_SHADER_STAGE_VERTEX_BIT+  , pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT+  , pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT+  , pattern VK_SHADER_STAGE_GEOMETRY_BIT+  , pattern VK_SHADER_STAGE_FRAGMENT_BIT+  , pattern VK_SHADER_STAGE_COMPUTE_BIT+  , pattern VK_SHADER_STAGE_ALL_GRAPHICS+  , pattern VK_SHADER_STAGE_ALL+  , VkPipelineCreateFlagBits(..)+  , pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT+  , pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT+  , pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT+  , VkColorComponentFlagBits(..)+  , pattern VK_COLOR_COMPONENT_R_BIT+  , pattern VK_COLOR_COMPONENT_G_BIT+  , pattern VK_COLOR_COMPONENT_B_BIT+  , pattern VK_COLOR_COMPONENT_A_BIT+  , VkCullModeFlagBits(..)+  , pattern VK_CULL_MODE_FRONT_BIT+  , pattern VK_CULL_MODE_BACK_BIT+  , pattern VK_CULL_MODE_NONE+  , pattern VK_CULL_MODE_FRONT_AND_BACK+  , VkPipeline+  , VkPipelineLayout+  , VkRenderPass+  , vkCreateGraphicsPipelines+  , vkCreateComputePipelines+  , vkDestroyPipeline+  , VkOffset2D(..)+  , VkExtent2D(..)+  , VkViewport(..)+  , VkRect2D(..)+  , VkSpecializationMapEntry(..)+  , VkSpecializationInfo(..)+  , VkPipelineShaderStageCreateInfo(..)+  , VkComputePipelineCreateInfo(..)+  , VkVertexInputBindingDescription(..)+  , VkVertexInputAttributeDescription(..)+  , VkPipelineVertexInputStateCreateInfo(..)+  , VkPipelineInputAssemblyStateCreateInfo(..)+  , VkPipelineTessellationStateCreateInfo(..)+  , VkPipelineViewportStateCreateInfo(..)+  , VkPipelineRasterizationStateCreateInfo(..)+  , VkPipelineMultisampleStateCreateInfo(..)+  , VkPipelineColorBlendAttachmentState(..)+  , VkPipelineColorBlendStateCreateInfo(..)+  , VkPipelineDynamicStateCreateInfo(..)+  , VkStencilOpState(..)+  , VkPipelineDepthStencilStateCreateInfo(..)+  , VkGraphicsPipelineCreateInfo(..)+  , VkPipelineCreateFlags+  , VkColorComponentFlags+  , VkCullModeFlags+  , VkSampleMask+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CFloat(..)+  , CChar(..)+  , CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkFormat(..)+  , VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkSampleCountFlagBits(..)+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.PipelineCache+  ( VkPipelineCache+  )+import Graphics.Vulkan.Core10.Shader+  ( VkShaderModule+  )+++-- ** VkBlendFactor++-- | VkBlendFactor - Framebuffer blending factors+--+-- = Description+-- #_description#+--+-- The semantics of each enum value is described in the table below:+--+-- > +-----------------------------------------+-------------------+--------++-- > | VkBlendFactor                           | RGB Blend Factors | Alpha  |+-- > |                                         | (Sr,Sg,Sb) or     | Blend  |+-- > |                                         | (Dr,Dg,Db)        | Factor |+-- > |                                         |                   | (Sa or |+-- > |                                         |                   | Da)    |+-- > +=========================================+===================+========++-- > | @VK_BLEND_FACTOR_ZERO@                  | (0,0,0)           | 0      |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE@                   | (1,1,1)           | 1      |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_SRC_COLOR@             | (Rs0,Gs0,Bs0)     | As0    |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR@   | (1-Rs0,1-Gs0,1-Bs | 1-As0  |+-- > |                                         | 0)                |        |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_DST_COLOR@             | (Rd,Gd,Bd)        | Ad     |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR@   | (1-Rd,1-Gd,1-Bd)  | 1-Ad   |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_SRC_ALPHA@             | (As0,As0,As0)     | As0    |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA@   | (1-As0,1-As0,1-As | 1-As0  |+-- > |                                         | 0)                |        |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_DST_ALPHA@             | (Ad,Ad,Ad)        | Ad     |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA@   | (1-Ad,1-Ad,1-Ad)  | 1-Ad   |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_CONSTANT_COLOR@        | (Rc,Gc,Bc)        | Ac     |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COL | (1-Rc,1-Gc,1-Bc)  | 1-Ac   |+-- > | OR@                                     |                   |        |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_CONSTANT_ALPHA@        | (Ac,Ac,Ac)        | Ac     |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALP | (1-Ac,1-Ac,1-Ac)  | 1-Ac   |+-- > | HA@                                     |                   |        |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_SRC_ALPHA_SATURATE@    | (f,f,f); f =      | 1      |+-- > |                                         | min(As0,1-Ad)     |        |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_SRC1_COLOR@            | (Rs1,Gs1,Bs1)     | As1    |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR@  | (1-Rs1,1-Gs1,1-Bs | 1-As1  |+-- > |                                         | 1)                |        |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_SRC1_ALPHA@            | (As1,As1,As1)     | As1    |+-- > +-----------------------------------------+-------------------+--------++-- > | @VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA@  | (1-As1,1-As1,1-As | 1-As1  |+-- > |                                         | 1)                |        |+-- > +-----------------------------------------+-------------------+--------++-- >+-- > Blend Factors+--+-- In this table, the following conventions are used:+--+-- -   Rs0,Gs0,Bs0 and As0 represent the first source color R, G, B, and A+--     components, respectively, for the fragment output location+--     corresponding to the color attachment being blended.+--+-- -   Rs1,Gs1,Bs1 and As1 represent the second source color R, G, B, and A+--     components, respectively, used in dual source blending modes, for+--     the fragment output location corresponding to the color attachment+--     being blended.+--+-- -   Rd,Gd,Bd and Ad represent the R, G, B, and A components of the+--     destination color. That is, the color currently in the corresponding+--     color attachment for this fragment\/sample.+--+-- -   Rc,Gc,Bc and Ac represent the blend constant R, G, B, and A+--     components, respectively.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineColorBlendAttachmentState'+newtype VkBlendFactor = VkBlendFactor Int32+  deriving (Eq, Ord, Storable)++instance Show VkBlendFactor where+  showsPrec _ VK_BLEND_FACTOR_ZERO = showString "VK_BLEND_FACTOR_ZERO"+  showsPrec _ VK_BLEND_FACTOR_ONE = showString "VK_BLEND_FACTOR_ONE"+  showsPrec _ VK_BLEND_FACTOR_SRC_COLOR = showString "VK_BLEND_FACTOR_SRC_COLOR"+  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"+  showsPrec _ VK_BLEND_FACTOR_DST_COLOR = showString "VK_BLEND_FACTOR_DST_COLOR"+  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = showString "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"+  showsPrec _ VK_BLEND_FACTOR_SRC_ALPHA = showString "VK_BLEND_FACTOR_SRC_ALPHA"+  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"+  showsPrec _ VK_BLEND_FACTOR_DST_ALPHA = showString "VK_BLEND_FACTOR_DST_ALPHA"+  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = showString "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"+  showsPrec _ VK_BLEND_FACTOR_CONSTANT_COLOR = showString "VK_BLEND_FACTOR_CONSTANT_COLOR"+  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = showString "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"+  showsPrec _ VK_BLEND_FACTOR_CONSTANT_ALPHA = showString "VK_BLEND_FACTOR_CONSTANT_ALPHA"+  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = showString "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"+  showsPrec _ VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = showString "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"+  showsPrec _ VK_BLEND_FACTOR_SRC1_COLOR = showString "VK_BLEND_FACTOR_SRC1_COLOR"+  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"+  showsPrec _ VK_BLEND_FACTOR_SRC1_ALPHA = showString "VK_BLEND_FACTOR_SRC1_ALPHA"+  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"+  showsPrec p (VkBlendFactor x) = showParen (p >= 11) (showString "VkBlendFactor " . showsPrec 11 x)++instance Read VkBlendFactor where+  readPrec = parens ( choose [ ("VK_BLEND_FACTOR_ZERO",                     pure VK_BLEND_FACTOR_ZERO)+                             , ("VK_BLEND_FACTOR_ONE",                      pure VK_BLEND_FACTOR_ONE)+                             , ("VK_BLEND_FACTOR_SRC_COLOR",                pure VK_BLEND_FACTOR_SRC_COLOR)+                             , ("VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR",      pure VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR)+                             , ("VK_BLEND_FACTOR_DST_COLOR",                pure VK_BLEND_FACTOR_DST_COLOR)+                             , ("VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR",      pure VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR)+                             , ("VK_BLEND_FACTOR_SRC_ALPHA",                pure VK_BLEND_FACTOR_SRC_ALPHA)+                             , ("VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA",      pure VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA)+                             , ("VK_BLEND_FACTOR_DST_ALPHA",                pure VK_BLEND_FACTOR_DST_ALPHA)+                             , ("VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA",      pure VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA)+                             , ("VK_BLEND_FACTOR_CONSTANT_COLOR",           pure VK_BLEND_FACTOR_CONSTANT_COLOR)+                             , ("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR", pure VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR)+                             , ("VK_BLEND_FACTOR_CONSTANT_ALPHA",           pure VK_BLEND_FACTOR_CONSTANT_ALPHA)+                             , ("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", pure VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA)+                             , ("VK_BLEND_FACTOR_SRC_ALPHA_SATURATE",       pure VK_BLEND_FACTOR_SRC_ALPHA_SATURATE)+                             , ("VK_BLEND_FACTOR_SRC1_COLOR",               pure VK_BLEND_FACTOR_SRC1_COLOR)+                             , ("VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR",     pure VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR)+                             , ("VK_BLEND_FACTOR_SRC1_ALPHA",               pure VK_BLEND_FACTOR_SRC1_ALPHA)+                             , ("VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA",     pure VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkBlendFactor")+                        v <- step readPrec+                        pure (VkBlendFactor v)+                        )+                    )++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ZERO"+pattern VK_BLEND_FACTOR_ZERO :: VkBlendFactor+pattern VK_BLEND_FACTOR_ZERO = VkBlendFactor 0++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE"+pattern VK_BLEND_FACTOR_ONE :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE = VkBlendFactor 1++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_COLOR"+pattern VK_BLEND_FACTOR_SRC_COLOR :: VkBlendFactor+pattern VK_BLEND_FACTOR_SRC_COLOR = VkBlendFactor 2++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = VkBlendFactor 3++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_DST_COLOR"+pattern VK_BLEND_FACTOR_DST_COLOR :: VkBlendFactor+pattern VK_BLEND_FACTOR_DST_COLOR = VkBlendFactor 4++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"+pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = VkBlendFactor 5++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_ALPHA"+pattern VK_BLEND_FACTOR_SRC_ALPHA :: VkBlendFactor+pattern VK_BLEND_FACTOR_SRC_ALPHA = VkBlendFactor 6++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = VkBlendFactor 7++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_DST_ALPHA"+pattern VK_BLEND_FACTOR_DST_ALPHA :: VkBlendFactor+pattern VK_BLEND_FACTOR_DST_ALPHA = VkBlendFactor 8++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"+pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = VkBlendFactor 9++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_CONSTANT_COLOR"+pattern VK_BLEND_FACTOR_CONSTANT_COLOR :: VkBlendFactor+pattern VK_BLEND_FACTOR_CONSTANT_COLOR = VkBlendFactor 10++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"+pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = VkBlendFactor 11++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_CONSTANT_ALPHA"+pattern VK_BLEND_FACTOR_CONSTANT_ALPHA :: VkBlendFactor+pattern VK_BLEND_FACTOR_CONSTANT_ALPHA = VkBlendFactor 12++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"+pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = VkBlendFactor 13++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"+pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE :: VkBlendFactor+pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = VkBlendFactor 14++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC1_COLOR"+pattern VK_BLEND_FACTOR_SRC1_COLOR :: VkBlendFactor+pattern VK_BLEND_FACTOR_SRC1_COLOR = VkBlendFactor 15++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = VkBlendFactor 16++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC1_ALPHA"+pattern VK_BLEND_FACTOR_SRC1_ALPHA :: VkBlendFactor+pattern VK_BLEND_FACTOR_SRC1_ALPHA = VkBlendFactor 17++-- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: VkBlendFactor+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = VkBlendFactor 18+-- ** VkBlendOp++-- | VkBlendOp - Framebuffer blending operations+--+-- = Description+-- #_description#+--+-- The semantics of each basic blend operations is described in the table+-- below:+--+-- > +-------------------------------+--------------------+----------------++-- > | VkBlendOp                     | RGB Components     | Alpha          |+-- > |                               |                    | Component      |+-- > +===============================+====================+================++-- > | @VK_BLEND_OP_ADD@             | R = Rs0 × Sr + Rd  | A = As0 × Sa + |+-- > |                               | × Dr               | Ad × Da        |+-- > |                               | G = Gs0 × Sg + Gd  |                |+-- > |                               | × Dg               |                |+-- > |                               | B = Bs0 × Sb + Bd  |                |+-- > |                               | × Db               |                |+-- > +-------------------------------+--------------------+----------------++-- > | @VK_BLEND_OP_SUBTRACT@        | R = Rs0 × Sr - Rd  | A = As0 × Sa - |+-- > |                               | × Dr               | Ad × Da        |+-- > |                               | G = Gs0 × Sg - Gd  |                |+-- > |                               | × Dg               |                |+-- > |                               | B = Bs0 × Sb - Bd  |                |+-- > |                               | × Db               |                |+-- > +-------------------------------+--------------------+----------------++-- > | @VK_BLEND_OP_REVERSE_SUBTRACT | R = Rd × Dr - Rs0  | A = Ad × Da -  |+-- > | @                             | × Sr               | As0 × Sa       |+-- > |                               | G = Gd × Dg - Gs0  |                |+-- > |                               | × Sg               |                |+-- > |                               | B = Bd × Db - Bs0  |                |+-- > |                               | × Sb               |                |+-- > +-------------------------------+--------------------+----------------++-- > | @VK_BLEND_OP_MIN@             | R = min(Rs0,Rd)    | A =            |+-- > |                               | G = min(Gs0,Gd)    | min(As0,Ad)    |+-- > |                               | B = min(Bs0,Bd)    |                |+-- > +-------------------------------+--------------------+----------------++-- > | @VK_BLEND_OP_MAX@             | R = max(Rs0,Rd)    | A =            |+-- > |                               | G = max(Gs0,Gd)    | max(As0,Ad)    |+-- > |                               | B = max(Bs0,Bd)    |                |+-- > +-------------------------------+--------------------+----------------++-- >+-- > Basic Blend Operations+--+-- In this table, the following conventions are used:+--+-- -   Rs0, Gs0, Bs0 and As0 represent the first source color R, G, B, and+--     A components, respectively.+--+-- -   Rd, Gd, Bd and Ad represent the R, G, B, and A components of the+--     destination color. That is, the color currently in the corresponding+--     color attachment for this fragment\/sample.+--+-- -   Sr, Sg, Sb and Sa represent the source blend factor R, G, B, and A+--     components, respectively.+--+-- -   Dr, Dg, Db and Da represent the destination blend factor R, G, B,+--     and A components, respectively.+--+-- The blending operation produces a new set of values R, G, B and A, which+-- are written to the framebuffer attachment. If blending is not enabled+-- for this attachment, then R, G, B and A are assigned Rs0, Gs0, Bs0 and+-- As0, respectively.+--+-- If the color attachment is fixed-point, the components of the source and+-- destination values and blend factors are each clamped to [0,1] or [-1,1]+-- respectively for an unsigned normalized or signed normalized color+-- attachment prior to evaluating the blend operations. If the color+-- attachment is floating-point, no clamping occurs.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineColorBlendAttachmentState'+newtype VkBlendOp = VkBlendOp Int32+  deriving (Eq, Ord, Storable)++instance Show VkBlendOp where+  showsPrec _ VK_BLEND_OP_ADD = showString "VK_BLEND_OP_ADD"+  showsPrec _ VK_BLEND_OP_SUBTRACT = showString "VK_BLEND_OP_SUBTRACT"+  showsPrec _ VK_BLEND_OP_REVERSE_SUBTRACT = showString "VK_BLEND_OP_REVERSE_SUBTRACT"+  showsPrec _ VK_BLEND_OP_MIN = showString "VK_BLEND_OP_MIN"+  showsPrec _ VK_BLEND_OP_MAX = showString "VK_BLEND_OP_MAX"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkBlendOp 1000148000) = showString "VK_BLEND_OP_ZERO_EXT"+  showsPrec _ (VkBlendOp 1000148001) = showString "VK_BLEND_OP_SRC_EXT"+  showsPrec _ (VkBlendOp 1000148002) = showString "VK_BLEND_OP_DST_EXT"+  showsPrec _ (VkBlendOp 1000148003) = showString "VK_BLEND_OP_SRC_OVER_EXT"+  showsPrec _ (VkBlendOp 1000148004) = showString "VK_BLEND_OP_DST_OVER_EXT"+  showsPrec _ (VkBlendOp 1000148005) = showString "VK_BLEND_OP_SRC_IN_EXT"+  showsPrec _ (VkBlendOp 1000148006) = showString "VK_BLEND_OP_DST_IN_EXT"+  showsPrec _ (VkBlendOp 1000148007) = showString "VK_BLEND_OP_SRC_OUT_EXT"+  showsPrec _ (VkBlendOp 1000148008) = showString "VK_BLEND_OP_DST_OUT_EXT"+  showsPrec _ (VkBlendOp 1000148009) = showString "VK_BLEND_OP_SRC_ATOP_EXT"+  showsPrec _ (VkBlendOp 1000148010) = showString "VK_BLEND_OP_DST_ATOP_EXT"+  showsPrec _ (VkBlendOp 1000148011) = showString "VK_BLEND_OP_XOR_EXT"+  showsPrec _ (VkBlendOp 1000148012) = showString "VK_BLEND_OP_MULTIPLY_EXT"+  showsPrec _ (VkBlendOp 1000148013) = showString "VK_BLEND_OP_SCREEN_EXT"+  showsPrec _ (VkBlendOp 1000148014) = showString "VK_BLEND_OP_OVERLAY_EXT"+  showsPrec _ (VkBlendOp 1000148015) = showString "VK_BLEND_OP_DARKEN_EXT"+  showsPrec _ (VkBlendOp 1000148016) = showString "VK_BLEND_OP_LIGHTEN_EXT"+  showsPrec _ (VkBlendOp 1000148017) = showString "VK_BLEND_OP_COLORDODGE_EXT"+  showsPrec _ (VkBlendOp 1000148018) = showString "VK_BLEND_OP_COLORBURN_EXT"+  showsPrec _ (VkBlendOp 1000148019) = showString "VK_BLEND_OP_HARDLIGHT_EXT"+  showsPrec _ (VkBlendOp 1000148020) = showString "VK_BLEND_OP_SOFTLIGHT_EXT"+  showsPrec _ (VkBlendOp 1000148021) = showString "VK_BLEND_OP_DIFFERENCE_EXT"+  showsPrec _ (VkBlendOp 1000148022) = showString "VK_BLEND_OP_EXCLUSION_EXT"+  showsPrec _ (VkBlendOp 1000148023) = showString "VK_BLEND_OP_INVERT_EXT"+  showsPrec _ (VkBlendOp 1000148024) = showString "VK_BLEND_OP_INVERT_RGB_EXT"+  showsPrec _ (VkBlendOp 1000148025) = showString "VK_BLEND_OP_LINEARDODGE_EXT"+  showsPrec _ (VkBlendOp 1000148026) = showString "VK_BLEND_OP_LINEARBURN_EXT"+  showsPrec _ (VkBlendOp 1000148027) = showString "VK_BLEND_OP_VIVIDLIGHT_EXT"+  showsPrec _ (VkBlendOp 1000148028) = showString "VK_BLEND_OP_LINEARLIGHT_EXT"+  showsPrec _ (VkBlendOp 1000148029) = showString "VK_BLEND_OP_PINLIGHT_EXT"+  showsPrec _ (VkBlendOp 1000148030) = showString "VK_BLEND_OP_HARDMIX_EXT"+  showsPrec _ (VkBlendOp 1000148031) = showString "VK_BLEND_OP_HSL_HUE_EXT"+  showsPrec _ (VkBlendOp 1000148032) = showString "VK_BLEND_OP_HSL_SATURATION_EXT"+  showsPrec _ (VkBlendOp 1000148033) = showString "VK_BLEND_OP_HSL_COLOR_EXT"+  showsPrec _ (VkBlendOp 1000148034) = showString "VK_BLEND_OP_HSL_LUMINOSITY_EXT"+  showsPrec _ (VkBlendOp 1000148035) = showString "VK_BLEND_OP_PLUS_EXT"+  showsPrec _ (VkBlendOp 1000148036) = showString "VK_BLEND_OP_PLUS_CLAMPED_EXT"+  showsPrec _ (VkBlendOp 1000148037) = showString "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT"+  showsPrec _ (VkBlendOp 1000148038) = showString "VK_BLEND_OP_PLUS_DARKER_EXT"+  showsPrec _ (VkBlendOp 1000148039) = showString "VK_BLEND_OP_MINUS_EXT"+  showsPrec _ (VkBlendOp 1000148040) = showString "VK_BLEND_OP_MINUS_CLAMPED_EXT"+  showsPrec _ (VkBlendOp 1000148041) = showString "VK_BLEND_OP_CONTRAST_EXT"+  showsPrec _ (VkBlendOp 1000148042) = showString "VK_BLEND_OP_INVERT_OVG_EXT"+  showsPrec _ (VkBlendOp 1000148043) = showString "VK_BLEND_OP_RED_EXT"+  showsPrec _ (VkBlendOp 1000148044) = showString "VK_BLEND_OP_GREEN_EXT"+  showsPrec _ (VkBlendOp 1000148045) = showString "VK_BLEND_OP_BLUE_EXT"+  showsPrec p (VkBlendOp x) = showParen (p >= 11) (showString "VkBlendOp " . showsPrec 11 x)++instance Read VkBlendOp where+  readPrec = parens ( choose [ ("VK_BLEND_OP_ADD",              pure VK_BLEND_OP_ADD)+                             , ("VK_BLEND_OP_SUBTRACT",         pure VK_BLEND_OP_SUBTRACT)+                             , ("VK_BLEND_OP_REVERSE_SUBTRACT", pure VK_BLEND_OP_REVERSE_SUBTRACT)+                             , ("VK_BLEND_OP_MIN",              pure VK_BLEND_OP_MIN)+                             , ("VK_BLEND_OP_MAX",              pure VK_BLEND_OP_MAX)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_BLEND_OP_ZERO_EXT",               pure (VkBlendOp 1000148000))+                             , ("VK_BLEND_OP_SRC_EXT",                pure (VkBlendOp 1000148001))+                             , ("VK_BLEND_OP_DST_EXT",                pure (VkBlendOp 1000148002))+                             , ("VK_BLEND_OP_SRC_OVER_EXT",           pure (VkBlendOp 1000148003))+                             , ("VK_BLEND_OP_DST_OVER_EXT",           pure (VkBlendOp 1000148004))+                             , ("VK_BLEND_OP_SRC_IN_EXT",             pure (VkBlendOp 1000148005))+                             , ("VK_BLEND_OP_DST_IN_EXT",             pure (VkBlendOp 1000148006))+                             , ("VK_BLEND_OP_SRC_OUT_EXT",            pure (VkBlendOp 1000148007))+                             , ("VK_BLEND_OP_DST_OUT_EXT",            pure (VkBlendOp 1000148008))+                             , ("VK_BLEND_OP_SRC_ATOP_EXT",           pure (VkBlendOp 1000148009))+                             , ("VK_BLEND_OP_DST_ATOP_EXT",           pure (VkBlendOp 1000148010))+                             , ("VK_BLEND_OP_XOR_EXT",                pure (VkBlendOp 1000148011))+                             , ("VK_BLEND_OP_MULTIPLY_EXT",           pure (VkBlendOp 1000148012))+                             , ("VK_BLEND_OP_SCREEN_EXT",             pure (VkBlendOp 1000148013))+                             , ("VK_BLEND_OP_OVERLAY_EXT",            pure (VkBlendOp 1000148014))+                             , ("VK_BLEND_OP_DARKEN_EXT",             pure (VkBlendOp 1000148015))+                             , ("VK_BLEND_OP_LIGHTEN_EXT",            pure (VkBlendOp 1000148016))+                             , ("VK_BLEND_OP_COLORDODGE_EXT",         pure (VkBlendOp 1000148017))+                             , ("VK_BLEND_OP_COLORBURN_EXT",          pure (VkBlendOp 1000148018))+                             , ("VK_BLEND_OP_HARDLIGHT_EXT",          pure (VkBlendOp 1000148019))+                             , ("VK_BLEND_OP_SOFTLIGHT_EXT",          pure (VkBlendOp 1000148020))+                             , ("VK_BLEND_OP_DIFFERENCE_EXT",         pure (VkBlendOp 1000148021))+                             , ("VK_BLEND_OP_EXCLUSION_EXT",          pure (VkBlendOp 1000148022))+                             , ("VK_BLEND_OP_INVERT_EXT",             pure (VkBlendOp 1000148023))+                             , ("VK_BLEND_OP_INVERT_RGB_EXT",         pure (VkBlendOp 1000148024))+                             , ("VK_BLEND_OP_LINEARDODGE_EXT",        pure (VkBlendOp 1000148025))+                             , ("VK_BLEND_OP_LINEARBURN_EXT",         pure (VkBlendOp 1000148026))+                             , ("VK_BLEND_OP_VIVIDLIGHT_EXT",         pure (VkBlendOp 1000148027))+                             , ("VK_BLEND_OP_LINEARLIGHT_EXT",        pure (VkBlendOp 1000148028))+                             , ("VK_BLEND_OP_PINLIGHT_EXT",           pure (VkBlendOp 1000148029))+                             , ("VK_BLEND_OP_HARDMIX_EXT",            pure (VkBlendOp 1000148030))+                             , ("VK_BLEND_OP_HSL_HUE_EXT",            pure (VkBlendOp 1000148031))+                             , ("VK_BLEND_OP_HSL_SATURATION_EXT",     pure (VkBlendOp 1000148032))+                             , ("VK_BLEND_OP_HSL_COLOR_EXT",          pure (VkBlendOp 1000148033))+                             , ("VK_BLEND_OP_HSL_LUMINOSITY_EXT",     pure (VkBlendOp 1000148034))+                             , ("VK_BLEND_OP_PLUS_EXT",               pure (VkBlendOp 1000148035))+                             , ("VK_BLEND_OP_PLUS_CLAMPED_EXT",       pure (VkBlendOp 1000148036))+                             , ("VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT", pure (VkBlendOp 1000148037))+                             , ("VK_BLEND_OP_PLUS_DARKER_EXT",        pure (VkBlendOp 1000148038))+                             , ("VK_BLEND_OP_MINUS_EXT",              pure (VkBlendOp 1000148039))+                             , ("VK_BLEND_OP_MINUS_CLAMPED_EXT",      pure (VkBlendOp 1000148040))+                             , ("VK_BLEND_OP_CONTRAST_EXT",           pure (VkBlendOp 1000148041))+                             , ("VK_BLEND_OP_INVERT_OVG_EXT",         pure (VkBlendOp 1000148042))+                             , ("VK_BLEND_OP_RED_EXT",                pure (VkBlendOp 1000148043))+                             , ("VK_BLEND_OP_GREEN_EXT",              pure (VkBlendOp 1000148044))+                             , ("VK_BLEND_OP_BLUE_EXT",               pure (VkBlendOp 1000148045))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkBlendOp")+                        v <- step readPrec+                        pure (VkBlendOp v)+                        )+                    )++-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_ADD"+pattern VK_BLEND_OP_ADD :: VkBlendOp+pattern VK_BLEND_OP_ADD = VkBlendOp 0++-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SUBTRACT"+pattern VK_BLEND_OP_SUBTRACT :: VkBlendOp+pattern VK_BLEND_OP_SUBTRACT = VkBlendOp 1++-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_REVERSE_SUBTRACT"+pattern VK_BLEND_OP_REVERSE_SUBTRACT :: VkBlendOp+pattern VK_BLEND_OP_REVERSE_SUBTRACT = VkBlendOp 2++-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MIN"+pattern VK_BLEND_OP_MIN :: VkBlendOp+pattern VK_BLEND_OP_MIN = VkBlendOp 3++-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MAX"+pattern VK_BLEND_OP_MAX :: VkBlendOp+pattern VK_BLEND_OP_MAX = VkBlendOp 4+-- ** VkCompareOp++-- | VkCompareOp - Stencil comparison function+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineDepthStencilStateCreateInfo',+-- 'Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo', 'VkStencilOpState'+newtype VkCompareOp = VkCompareOp Int32+  deriving (Eq, Ord, Storable)++instance Show VkCompareOp where+  showsPrec _ VK_COMPARE_OP_NEVER = showString "VK_COMPARE_OP_NEVER"+  showsPrec _ VK_COMPARE_OP_LESS = showString "VK_COMPARE_OP_LESS"+  showsPrec _ VK_COMPARE_OP_EQUAL = showString "VK_COMPARE_OP_EQUAL"+  showsPrec _ VK_COMPARE_OP_LESS_OR_EQUAL = showString "VK_COMPARE_OP_LESS_OR_EQUAL"+  showsPrec _ VK_COMPARE_OP_GREATER = showString "VK_COMPARE_OP_GREATER"+  showsPrec _ VK_COMPARE_OP_NOT_EQUAL = showString "VK_COMPARE_OP_NOT_EQUAL"+  showsPrec _ VK_COMPARE_OP_GREATER_OR_EQUAL = showString "VK_COMPARE_OP_GREATER_OR_EQUAL"+  showsPrec _ VK_COMPARE_OP_ALWAYS = showString "VK_COMPARE_OP_ALWAYS"+  showsPrec p (VkCompareOp x) = showParen (p >= 11) (showString "VkCompareOp " . showsPrec 11 x)++instance Read VkCompareOp where+  readPrec = parens ( choose [ ("VK_COMPARE_OP_NEVER",            pure VK_COMPARE_OP_NEVER)+                             , ("VK_COMPARE_OP_LESS",             pure VK_COMPARE_OP_LESS)+                             , ("VK_COMPARE_OP_EQUAL",            pure VK_COMPARE_OP_EQUAL)+                             , ("VK_COMPARE_OP_LESS_OR_EQUAL",    pure VK_COMPARE_OP_LESS_OR_EQUAL)+                             , ("VK_COMPARE_OP_GREATER",          pure VK_COMPARE_OP_GREATER)+                             , ("VK_COMPARE_OP_NOT_EQUAL",        pure VK_COMPARE_OP_NOT_EQUAL)+                             , ("VK_COMPARE_OP_GREATER_OR_EQUAL", pure VK_COMPARE_OP_GREATER_OR_EQUAL)+                             , ("VK_COMPARE_OP_ALWAYS",           pure VK_COMPARE_OP_ALWAYS)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCompareOp")+                        v <- step readPrec+                        pure (VkCompareOp v)+                        )+                    )++-- | @VK_COMPARE_OP_NEVER@ specifies that the test never passes.+pattern VK_COMPARE_OP_NEVER :: VkCompareOp+pattern VK_COMPARE_OP_NEVER = VkCompareOp 0++-- | @VK_COMPARE_OP_LESS@ specifies that the test passes when R \< S.+pattern VK_COMPARE_OP_LESS :: VkCompareOp+pattern VK_COMPARE_OP_LESS = VkCompareOp 1++-- | @VK_COMPARE_OP_EQUAL@ specifies that the test passes when R = S.+pattern VK_COMPARE_OP_EQUAL :: VkCompareOp+pattern VK_COMPARE_OP_EQUAL = VkCompareOp 2++-- | @VK_COMPARE_OP_LESS_OR_EQUAL@ specifies that the test passes when R ≤ S.+pattern VK_COMPARE_OP_LESS_OR_EQUAL :: VkCompareOp+pattern VK_COMPARE_OP_LESS_OR_EQUAL = VkCompareOp 3++-- | @VK_COMPARE_OP_GREATER@ specifies that the test passes when R > S.+pattern VK_COMPARE_OP_GREATER :: VkCompareOp+pattern VK_COMPARE_OP_GREATER = VkCompareOp 4++-- | @VK_COMPARE_OP_NOT_EQUAL@ specifies that the test passes when R ≠ S.+pattern VK_COMPARE_OP_NOT_EQUAL :: VkCompareOp+pattern VK_COMPARE_OP_NOT_EQUAL = VkCompareOp 5++-- | @VK_COMPARE_OP_GREATER_OR_EQUAL@ specifies that the test passes when R ≥+-- S.+pattern VK_COMPARE_OP_GREATER_OR_EQUAL :: VkCompareOp+pattern VK_COMPARE_OP_GREATER_OR_EQUAL = VkCompareOp 6++-- | @VK_COMPARE_OP_ALWAYS@ specifies that the test always passes.+pattern VK_COMPARE_OP_ALWAYS :: VkCompareOp+pattern VK_COMPARE_OP_ALWAYS = VkCompareOp 7+-- ** VkDynamicState++-- | VkDynamicState - Indicate which dynamic state is taken from dynamic+-- state commands+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineDynamicStateCreateInfo'+newtype VkDynamicState = VkDynamicState Int32+  deriving (Eq, Ord, Storable)++instance Show VkDynamicState where+  showsPrec _ VK_DYNAMIC_STATE_VIEWPORT = showString "VK_DYNAMIC_STATE_VIEWPORT"+  showsPrec _ VK_DYNAMIC_STATE_SCISSOR = showString "VK_DYNAMIC_STATE_SCISSOR"+  showsPrec _ VK_DYNAMIC_STATE_LINE_WIDTH = showString "VK_DYNAMIC_STATE_LINE_WIDTH"+  showsPrec _ VK_DYNAMIC_STATE_DEPTH_BIAS = showString "VK_DYNAMIC_STATE_DEPTH_BIAS"+  showsPrec _ VK_DYNAMIC_STATE_BLEND_CONSTANTS = showString "VK_DYNAMIC_STATE_BLEND_CONSTANTS"+  showsPrec _ VK_DYNAMIC_STATE_DEPTH_BOUNDS = showString "VK_DYNAMIC_STATE_DEPTH_BOUNDS"+  showsPrec _ VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = showString "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK"+  showsPrec _ VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = showString "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK"+  showsPrec _ VK_DYNAMIC_STATE_STENCIL_REFERENCE = showString "VK_DYNAMIC_STATE_STENCIL_REFERENCE"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkDynamicState 1000087000) = showString "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV"+  showsPrec _ (VkDynamicState 1000099000) = showString "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT"+  showsPrec _ (VkDynamicState 1000143000) = showString "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT"+  showsPrec p (VkDynamicState x) = showParen (p >= 11) (showString "VkDynamicState " . showsPrec 11 x)++instance Read VkDynamicState where+  readPrec = parens ( choose [ ("VK_DYNAMIC_STATE_VIEWPORT",             pure VK_DYNAMIC_STATE_VIEWPORT)+                             , ("VK_DYNAMIC_STATE_SCISSOR",              pure VK_DYNAMIC_STATE_SCISSOR)+                             , ("VK_DYNAMIC_STATE_LINE_WIDTH",           pure VK_DYNAMIC_STATE_LINE_WIDTH)+                             , ("VK_DYNAMIC_STATE_DEPTH_BIAS",           pure VK_DYNAMIC_STATE_DEPTH_BIAS)+                             , ("VK_DYNAMIC_STATE_BLEND_CONSTANTS",      pure VK_DYNAMIC_STATE_BLEND_CONSTANTS)+                             , ("VK_DYNAMIC_STATE_DEPTH_BOUNDS",         pure VK_DYNAMIC_STATE_DEPTH_BOUNDS)+                             , ("VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK", pure VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK)+                             , ("VK_DYNAMIC_STATE_STENCIL_WRITE_MASK",   pure VK_DYNAMIC_STATE_STENCIL_WRITE_MASK)+                             , ("VK_DYNAMIC_STATE_STENCIL_REFERENCE",    pure VK_DYNAMIC_STATE_STENCIL_REFERENCE)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV", pure (VkDynamicState 1000087000))+                             , ("VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT", pure (VkDynamicState 1000099000))+                             , ("VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT",  pure (VkDynamicState 1000143000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDynamicState")+                        v <- step readPrec+                        pure (VkDynamicState v)+                        )+                    )++-- | @VK_DYNAMIC_STATE_VIEWPORT@ specifies that the @pViewports@ state in+-- @VkPipelineViewportStateCreateInfo@ will be ignored and /must/ be set+-- dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetViewport' before+-- any draw commands. The number of viewports used by a pipeline is still+-- specified by the @viewportCount@ member of+-- @VkPipelineViewportStateCreateInfo@.+pattern VK_DYNAMIC_STATE_VIEWPORT :: VkDynamicState+pattern VK_DYNAMIC_STATE_VIEWPORT = VkDynamicState 0++-- | @VK_DYNAMIC_STATE_SCISSOR@ specifies that the @pScissors@ state in+-- @VkPipelineViewportStateCreateInfo@ will be ignored and /must/ be set+-- dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetScissor' before+-- any draw commands. The number of scissor rectangles used by a pipeline+-- is still specified by the @scissorCount@ member of+-- @VkPipelineViewportStateCreateInfo@.+pattern VK_DYNAMIC_STATE_SCISSOR :: VkDynamicState+pattern VK_DYNAMIC_STATE_SCISSOR = VkDynamicState 1++-- | @VK_DYNAMIC_STATE_LINE_WIDTH@ specifies that the @lineWidth@ state in+-- @VkPipelineRasterizationStateCreateInfo@ will be ignored and /must/ be+-- set dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetLineWidth' before+-- any draw commands that generate line primitives for the rasterizer.+pattern VK_DYNAMIC_STATE_LINE_WIDTH :: VkDynamicState+pattern VK_DYNAMIC_STATE_LINE_WIDTH = VkDynamicState 2++-- | @VK_DYNAMIC_STATE_DEPTH_BIAS@ specifies that the+-- @depthBiasConstantFactor@, @depthBiasClamp@ and @depthBiasSlopeFactor@+-- states in @VkPipelineRasterizationStateCreateInfo@ will be ignored and+-- /must/ be set dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetDepthBias' before+-- any draws are performed with @depthBiasEnable@ in+-- @VkPipelineRasterizationStateCreateInfo@ set to @VK_TRUE@.+pattern VK_DYNAMIC_STATE_DEPTH_BIAS :: VkDynamicState+pattern VK_DYNAMIC_STATE_DEPTH_BIAS = VkDynamicState 3++-- | @VK_DYNAMIC_STATE_BLEND_CONSTANTS@ specifies that the @blendConstants@+-- state in @VkPipelineColorBlendStateCreateInfo@ will be ignored and+-- /must/ be set dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetBlendConstants'+-- before any draws are performed with a pipeline state with+-- @VkPipelineColorBlendAttachmentState@ member @blendEnable@ set to+-- @VK_TRUE@ and any of the blend functions using a constant blend color.+pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS :: VkDynamicState+pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS = VkDynamicState 4++-- | @VK_DYNAMIC_STATE_DEPTH_BOUNDS@ specifies that the @minDepthBounds@ and+-- @maxDepthBounds@ states of 'VkPipelineDepthStencilStateCreateInfo' will+-- be ignored and /must/ be set dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetDepthBounds'+-- before any draws are performed with a pipeline state with+-- @VkPipelineDepthStencilStateCreateInfo@ member @depthBoundsTestEnable@+-- set to @VK_TRUE@.+pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS :: VkDynamicState+pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS = VkDynamicState 5++-- | @VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK@ specifies that the @compareMask@+-- state in @VkPipelineDepthStencilStateCreateInfo@ for both @front@ and+-- @back@ will be ignored and /must/ be set dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetStencilCompareMask'+-- before any draws are performed with a pipeline state with+-- @VkPipelineDepthStencilStateCreateInfo@ member @stencilTestEnable@ set+-- to @VK_TRUE@+pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK :: VkDynamicState+pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = VkDynamicState 6++-- | @VK_DYNAMIC_STATE_STENCIL_WRITE_MASK@ specifies that the @writeMask@+-- state in @VkPipelineDepthStencilStateCreateInfo@ for both @front@ and+-- @back@ will be ignored and /must/ be set dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetStencilWriteMask'+-- before any draws are performed with a pipeline state with+-- @VkPipelineDepthStencilStateCreateInfo@ member @stencilTestEnable@ set+-- to @VK_TRUE@+pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK :: VkDynamicState+pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = VkDynamicState 7++-- | @VK_DYNAMIC_STATE_STENCIL_REFERENCE@ specifies that the @reference@+-- state in @VkPipelineDepthStencilStateCreateInfo@ for both @front@ and+-- @back@ will be ignored and /must/ be set dynamically with+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetStencilReference'+-- before any draws are performed with a pipeline state with+-- @VkPipelineDepthStencilStateCreateInfo@ member @stencilTestEnable@ set+-- to @VK_TRUE@+pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE :: VkDynamicState+pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE = VkDynamicState 8+-- ** VkPolygonMode++-- | VkPolygonMode - Control polygon rasterization mode+--+-- = Description+-- #_description#+--+-- -   @VK_POLYGON_MODE_POINT@ specifies that polygon vertices are drawn as+--     points.+--+-- -   @VK_POLYGON_MODE_LINE@ specifies that polygon edges are drawn as+--     line segments.+--+-- -   @VK_POLYGON_MODE_FILL@ specifies that polygons are rendered using+--     the polygon rasterization rules in this section.+--+-- These modes affect only the final rasterization of polygons: in+-- particular, a polygon’s vertices are shaded and the polygon is clipped+-- and possibly culled before these modes are applied.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineRasterizationStateCreateInfo'+newtype VkPolygonMode = VkPolygonMode Int32+  deriving (Eq, Ord, Storable)++instance Show VkPolygonMode where+  showsPrec _ VK_POLYGON_MODE_FILL = showString "VK_POLYGON_MODE_FILL"+  showsPrec _ VK_POLYGON_MODE_LINE = showString "VK_POLYGON_MODE_LINE"+  showsPrec _ VK_POLYGON_MODE_POINT = showString "VK_POLYGON_MODE_POINT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkPolygonMode 1000153000) = showString "VK_POLYGON_MODE_FILL_RECTANGLE_NV"+  showsPrec p (VkPolygonMode x) = showParen (p >= 11) (showString "VkPolygonMode " . showsPrec 11 x)++instance Read VkPolygonMode where+  readPrec = parens ( choose [ ("VK_POLYGON_MODE_FILL",  pure VK_POLYGON_MODE_FILL)+                             , ("VK_POLYGON_MODE_LINE",  pure VK_POLYGON_MODE_LINE)+                             , ("VK_POLYGON_MODE_POINT", pure VK_POLYGON_MODE_POINT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_POLYGON_MODE_FILL_RECTANGLE_NV", pure (VkPolygonMode 1000153000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPolygonMode")+                        v <- step readPrec+                        pure (VkPolygonMode v)+                        )+                    )++-- No documentation found for Nested "VkPolygonMode" "VK_POLYGON_MODE_FILL"+pattern VK_POLYGON_MODE_FILL :: VkPolygonMode+pattern VK_POLYGON_MODE_FILL = VkPolygonMode 0++-- No documentation found for Nested "VkPolygonMode" "VK_POLYGON_MODE_LINE"+pattern VK_POLYGON_MODE_LINE :: VkPolygonMode+pattern VK_POLYGON_MODE_LINE = VkPolygonMode 1++-- No documentation found for Nested "VkPolygonMode" "VK_POLYGON_MODE_POINT"+pattern VK_POLYGON_MODE_POINT :: VkPolygonMode+pattern VK_POLYGON_MODE_POINT = VkPolygonMode 2+-- ** VkFrontFace++-- | VkFrontFace - Interpret polygon front-facing orientation+--+-- = Description+-- #_description#+--+-- -   @VK_FRONT_FACE_COUNTER_CLOCKWISE@ specifies that a triangle with+--     positive area is considered front-facing.+--+-- -   @VK_FRONT_FACE_CLOCKWISE@ specifies that a triangle with negative+--     area is considered front-facing.+--+-- Any triangle which is not front-facing is back-facing, including+-- zero-area triangles.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineRasterizationStateCreateInfo'+newtype VkFrontFace = VkFrontFace Int32+  deriving (Eq, Ord, Storable)++instance Show VkFrontFace where+  showsPrec _ VK_FRONT_FACE_COUNTER_CLOCKWISE = showString "VK_FRONT_FACE_COUNTER_CLOCKWISE"+  showsPrec _ VK_FRONT_FACE_CLOCKWISE = showString "VK_FRONT_FACE_CLOCKWISE"+  showsPrec p (VkFrontFace x) = showParen (p >= 11) (showString "VkFrontFace " . showsPrec 11 x)++instance Read VkFrontFace where+  readPrec = parens ( choose [ ("VK_FRONT_FACE_COUNTER_CLOCKWISE", pure VK_FRONT_FACE_COUNTER_CLOCKWISE)+                             , ("VK_FRONT_FACE_CLOCKWISE",         pure VK_FRONT_FACE_CLOCKWISE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkFrontFace")+                        v <- step readPrec+                        pure (VkFrontFace v)+                        )+                    )++-- No documentation found for Nested "VkFrontFace" "VK_FRONT_FACE_COUNTER_CLOCKWISE"+pattern VK_FRONT_FACE_COUNTER_CLOCKWISE :: VkFrontFace+pattern VK_FRONT_FACE_COUNTER_CLOCKWISE = VkFrontFace 0++-- No documentation found for Nested "VkFrontFace" "VK_FRONT_FACE_CLOCKWISE"+pattern VK_FRONT_FACE_CLOCKWISE :: VkFrontFace+pattern VK_FRONT_FACE_CLOCKWISE = VkFrontFace 1+-- ** VkLogicOp++-- | VkLogicOp - Framebuffer logical operations+--+-- = Description+-- #_description#+--+-- The logical operations supported by Vulkan are summarized in the+-- following table in which+--+-- -   ¬ is bitwise invert,+--+-- -   ∧ is bitwise and,+--+-- -   ∨ is bitwise or,+--+-- -   ⊕ is bitwise exclusive or,+--+-- -   s is the fragment’s Rs0, Gs0, Bs0 or As0 component value for the+--     fragment output corresponding to the color attachment being updated,+--     and+--+-- -   d is the color attachment’s R, G, B or A component value:+--+-- > +-----------------------------------+-----------------------------------++-- > | Mode                              | Operation                         |+-- > +===================================+===================================++-- > | @VK_LOGIC_OP_CLEAR@               | 0                                 |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_AND@                 | s ∧ d                             |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_AND_REVERSE@         | s ∧ ¬ d                           |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_COPY@                | s                                 |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_AND_INVERTED@        | ¬ s ∧ d                           |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_NO_OP@               | d                                 |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_XOR@                 | s ⊕ d                             |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_OR@                  | s ∨ d                             |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_NOR@                 | ¬ (s ∨ d)                         |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_EQUIVALENT@          | ¬ (s ⊕ d)                         |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_INVERT@              | ¬ d                               |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_OR_REVERSE@          | s ∨ ¬ d                           |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_COPY_INVERTED@       | ¬ s                               |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_OR_INVERTED@         | ¬ s ∨ d                           |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_NAND@                | ¬ (s ∧ d)                         |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_LOGIC_OP_SET@                 | all 1s                            |+-- > +-----------------------------------+-----------------------------------++-- >+-- > Logical Operations+--+-- The result of the logical operation is then written to the color+-- attachment as controlled by the component write mask, described in+-- <{html_spec_relative}#framebuffer-blendoperations Blend Operations>.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineColorBlendStateCreateInfo'+newtype VkLogicOp = VkLogicOp Int32+  deriving (Eq, Ord, Storable)++instance Show VkLogicOp where+  showsPrec _ VK_LOGIC_OP_CLEAR = showString "VK_LOGIC_OP_CLEAR"+  showsPrec _ VK_LOGIC_OP_AND = showString "VK_LOGIC_OP_AND"+  showsPrec _ VK_LOGIC_OP_AND_REVERSE = showString "VK_LOGIC_OP_AND_REVERSE"+  showsPrec _ VK_LOGIC_OP_COPY = showString "VK_LOGIC_OP_COPY"+  showsPrec _ VK_LOGIC_OP_AND_INVERTED = showString "VK_LOGIC_OP_AND_INVERTED"+  showsPrec _ VK_LOGIC_OP_NO_OP = showString "VK_LOGIC_OP_NO_OP"+  showsPrec _ VK_LOGIC_OP_XOR = showString "VK_LOGIC_OP_XOR"+  showsPrec _ VK_LOGIC_OP_OR = showString "VK_LOGIC_OP_OR"+  showsPrec _ VK_LOGIC_OP_NOR = showString "VK_LOGIC_OP_NOR"+  showsPrec _ VK_LOGIC_OP_EQUIVALENT = showString "VK_LOGIC_OP_EQUIVALENT"+  showsPrec _ VK_LOGIC_OP_INVERT = showString "VK_LOGIC_OP_INVERT"+  showsPrec _ VK_LOGIC_OP_OR_REVERSE = showString "VK_LOGIC_OP_OR_REVERSE"+  showsPrec _ VK_LOGIC_OP_COPY_INVERTED = showString "VK_LOGIC_OP_COPY_INVERTED"+  showsPrec _ VK_LOGIC_OP_OR_INVERTED = showString "VK_LOGIC_OP_OR_INVERTED"+  showsPrec _ VK_LOGIC_OP_NAND = showString "VK_LOGIC_OP_NAND"+  showsPrec _ VK_LOGIC_OP_SET = showString "VK_LOGIC_OP_SET"+  showsPrec p (VkLogicOp x) = showParen (p >= 11) (showString "VkLogicOp " . showsPrec 11 x)++instance Read VkLogicOp where+  readPrec = parens ( choose [ ("VK_LOGIC_OP_CLEAR",         pure VK_LOGIC_OP_CLEAR)+                             , ("VK_LOGIC_OP_AND",           pure VK_LOGIC_OP_AND)+                             , ("VK_LOGIC_OP_AND_REVERSE",   pure VK_LOGIC_OP_AND_REVERSE)+                             , ("VK_LOGIC_OP_COPY",          pure VK_LOGIC_OP_COPY)+                             , ("VK_LOGIC_OP_AND_INVERTED",  pure VK_LOGIC_OP_AND_INVERTED)+                             , ("VK_LOGIC_OP_NO_OP",         pure VK_LOGIC_OP_NO_OP)+                             , ("VK_LOGIC_OP_XOR",           pure VK_LOGIC_OP_XOR)+                             , ("VK_LOGIC_OP_OR",            pure VK_LOGIC_OP_OR)+                             , ("VK_LOGIC_OP_NOR",           pure VK_LOGIC_OP_NOR)+                             , ("VK_LOGIC_OP_EQUIVALENT",    pure VK_LOGIC_OP_EQUIVALENT)+                             , ("VK_LOGIC_OP_INVERT",        pure VK_LOGIC_OP_INVERT)+                             , ("VK_LOGIC_OP_OR_REVERSE",    pure VK_LOGIC_OP_OR_REVERSE)+                             , ("VK_LOGIC_OP_COPY_INVERTED", pure VK_LOGIC_OP_COPY_INVERTED)+                             , ("VK_LOGIC_OP_OR_INVERTED",   pure VK_LOGIC_OP_OR_INVERTED)+                             , ("VK_LOGIC_OP_NAND",          pure VK_LOGIC_OP_NAND)+                             , ("VK_LOGIC_OP_SET",           pure VK_LOGIC_OP_SET)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkLogicOp")+                        v <- step readPrec+                        pure (VkLogicOp v)+                        )+                    )++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_CLEAR"+pattern VK_LOGIC_OP_CLEAR :: VkLogicOp+pattern VK_LOGIC_OP_CLEAR = VkLogicOp 0++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_AND"+pattern VK_LOGIC_OP_AND :: VkLogicOp+pattern VK_LOGIC_OP_AND = VkLogicOp 1++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_AND_REVERSE"+pattern VK_LOGIC_OP_AND_REVERSE :: VkLogicOp+pattern VK_LOGIC_OP_AND_REVERSE = VkLogicOp 2++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_COPY"+pattern VK_LOGIC_OP_COPY :: VkLogicOp+pattern VK_LOGIC_OP_COPY = VkLogicOp 3++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_AND_INVERTED"+pattern VK_LOGIC_OP_AND_INVERTED :: VkLogicOp+pattern VK_LOGIC_OP_AND_INVERTED = VkLogicOp 4++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_NO_OP"+pattern VK_LOGIC_OP_NO_OP :: VkLogicOp+pattern VK_LOGIC_OP_NO_OP = VkLogicOp 5++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_XOR"+pattern VK_LOGIC_OP_XOR :: VkLogicOp+pattern VK_LOGIC_OP_XOR = VkLogicOp 6++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_OR"+pattern VK_LOGIC_OP_OR :: VkLogicOp+pattern VK_LOGIC_OP_OR = VkLogicOp 7++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_NOR"+pattern VK_LOGIC_OP_NOR :: VkLogicOp+pattern VK_LOGIC_OP_NOR = VkLogicOp 8++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_EQUIVALENT"+pattern VK_LOGIC_OP_EQUIVALENT :: VkLogicOp+pattern VK_LOGIC_OP_EQUIVALENT = VkLogicOp 9++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_INVERT"+pattern VK_LOGIC_OP_INVERT :: VkLogicOp+pattern VK_LOGIC_OP_INVERT = VkLogicOp 10++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_OR_REVERSE"+pattern VK_LOGIC_OP_OR_REVERSE :: VkLogicOp+pattern VK_LOGIC_OP_OR_REVERSE = VkLogicOp 11++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_COPY_INVERTED"+pattern VK_LOGIC_OP_COPY_INVERTED :: VkLogicOp+pattern VK_LOGIC_OP_COPY_INVERTED = VkLogicOp 12++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_OR_INVERTED"+pattern VK_LOGIC_OP_OR_INVERTED :: VkLogicOp+pattern VK_LOGIC_OP_OR_INVERTED = VkLogicOp 13++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_NAND"+pattern VK_LOGIC_OP_NAND :: VkLogicOp+pattern VK_LOGIC_OP_NAND = VkLogicOp 14++-- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_SET"+pattern VK_LOGIC_OP_SET :: VkLogicOp+pattern VK_LOGIC_OP_SET = VkLogicOp 15+-- ** VkPrimitiveTopology++-- | VkPrimitiveTopology - Supported primitive topologies+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineInputAssemblyStateCreateInfo'+newtype VkPrimitiveTopology = VkPrimitiveTopology Int32+  deriving (Eq, Ord, Storable)++instance Show VkPrimitiveTopology where+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_POINT_LIST = showString "VK_PRIMITIVE_TOPOLOGY_POINT_LIST"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_LIST = showString "VK_PRIMITIVE_TOPOLOGY_LINE_LIST"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = showString "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = showString "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = showString "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"+  showsPrec _ VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = showString "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"+  showsPrec p (VkPrimitiveTopology x) = showParen (p >= 11) (showString "VkPrimitiveTopology " . showsPrec 11 x)++instance Read VkPrimitiveTopology where+  readPrec = parens ( choose [ ("VK_PRIMITIVE_TOPOLOGY_POINT_LIST",                    pure VK_PRIMITIVE_TOPOLOGY_POINT_LIST)+                             , ("VK_PRIMITIVE_TOPOLOGY_LINE_LIST",                     pure VK_PRIMITIVE_TOPOLOGY_LINE_LIST)+                             , ("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP",                    pure VK_PRIMITIVE_TOPOLOGY_LINE_STRIP)+                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST",                 pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST)+                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP",                pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP)+                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN",                  pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN)+                             , ("VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY",      pure VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY)+                             , ("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY",     pure VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY)+                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY",  pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY)+                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY", pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY)+                             , ("VK_PRIMITIVE_TOPOLOGY_PATCH_LIST",                    pure VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPrimitiveTopology")+                        v <- step readPrec+                        pure (VkPrimitiveTopology v)+                        )+                    )++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_POINT_LIST"+pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST = VkPrimitiveTopology 0++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_LINE_LIST"+pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST = VkPrimitiveTopology 1++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"+pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = VkPrimitiveTopology 2++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = VkPrimitiveTopology 3++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = VkPrimitiveTopology 4++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = VkPrimitiveTopology 5++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"+pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = VkPrimitiveTopology 6++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"+pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = VkPrimitiveTopology 7++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = VkPrimitiveTopology 8++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = VkPrimitiveTopology 9++-- No documentation found for Nested "VkPrimitiveTopology" "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"+pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: VkPrimitiveTopology+pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = VkPrimitiveTopology 10+-- ** VkStencilOp++-- | VkStencilOp - Stencil comparison function+--+-- = Description+-- #_description#+--+-- -   @VK_STENCIL_OP_KEEP@ keeps the current value.+--+-- -   @VK_STENCIL_OP_ZERO@ sets the value to 0.+--+-- -   @VK_STENCIL_OP_REPLACE@ sets the value to @reference@.+--+-- -   @VK_STENCIL_OP_INCREMENT_AND_CLAMP@ increments the current value and+--     clamps to the maximum representable unsigned value.+--+-- -   @VK_STENCIL_OP_DECREMENT_AND_CLAMP@ decrements the current value and+--     clamps to 0.+--+-- -   @VK_STENCIL_OP_INVERT@ bitwise-inverts the current value.+--+-- -   @VK_STENCIL_OP_INCREMENT_AND_WRAP@ increments the current value and+--     wraps to 0 when the maximum value would have been exceeded.+--+-- -   @VK_STENCIL_OP_DECREMENT_AND_WRAP@ decrements the current value and+--     wraps to the maximum possible value when the value would go below 0.+--+-- For purposes of increment and decrement, the stencil bits are considered+-- as an unsigned integer.+--+-- If the stencil test fails, the sample’s coverage bit is cleared in the+-- fragment. If there is no stencil framebuffer attachment, stencil+-- modification /cannot/ occur, and it is as if the stencil tests always+-- pass.+--+-- If the stencil test passes, the @writeMask@ member of the+-- 'VkStencilOpState' structures controls how the updated stencil value is+-- written to the stencil framebuffer attachment.+--+-- The least significant s bits of @writeMask@, where s is the number of+-- bits in the stencil framebuffer attachment, specify an integer mask.+-- Where a 1 appears in this mask, the corresponding bit in the stencil+-- value in the depth\/stencil attachment is written; where a 0 appears,+-- the bit is not written. The @writeMask@ value uses either the+-- front-facing or back-facing state based on the facingness of the+-- fragment. Fragments generated by front-facing primitives use the front+-- mask and fragments generated by back-facing primitives use the back+-- mask.+--+-- = See Also+-- #_see_also#+--+-- 'VkStencilOpState'+newtype VkStencilOp = VkStencilOp Int32+  deriving (Eq, Ord, Storable)++instance Show VkStencilOp where+  showsPrec _ VK_STENCIL_OP_KEEP = showString "VK_STENCIL_OP_KEEP"+  showsPrec _ VK_STENCIL_OP_ZERO = showString "VK_STENCIL_OP_ZERO"+  showsPrec _ VK_STENCIL_OP_REPLACE = showString "VK_STENCIL_OP_REPLACE"+  showsPrec _ VK_STENCIL_OP_INCREMENT_AND_CLAMP = showString "VK_STENCIL_OP_INCREMENT_AND_CLAMP"+  showsPrec _ VK_STENCIL_OP_DECREMENT_AND_CLAMP = showString "VK_STENCIL_OP_DECREMENT_AND_CLAMP"+  showsPrec _ VK_STENCIL_OP_INVERT = showString "VK_STENCIL_OP_INVERT"+  showsPrec _ VK_STENCIL_OP_INCREMENT_AND_WRAP = showString "VK_STENCIL_OP_INCREMENT_AND_WRAP"+  showsPrec _ VK_STENCIL_OP_DECREMENT_AND_WRAP = showString "VK_STENCIL_OP_DECREMENT_AND_WRAP"+  showsPrec p (VkStencilOp x) = showParen (p >= 11) (showString "VkStencilOp " . showsPrec 11 x)++instance Read VkStencilOp where+  readPrec = parens ( choose [ ("VK_STENCIL_OP_KEEP",                pure VK_STENCIL_OP_KEEP)+                             , ("VK_STENCIL_OP_ZERO",                pure VK_STENCIL_OP_ZERO)+                             , ("VK_STENCIL_OP_REPLACE",             pure VK_STENCIL_OP_REPLACE)+                             , ("VK_STENCIL_OP_INCREMENT_AND_CLAMP", pure VK_STENCIL_OP_INCREMENT_AND_CLAMP)+                             , ("VK_STENCIL_OP_DECREMENT_AND_CLAMP", pure VK_STENCIL_OP_DECREMENT_AND_CLAMP)+                             , ("VK_STENCIL_OP_INVERT",              pure VK_STENCIL_OP_INVERT)+                             , ("VK_STENCIL_OP_INCREMENT_AND_WRAP",  pure VK_STENCIL_OP_INCREMENT_AND_WRAP)+                             , ("VK_STENCIL_OP_DECREMENT_AND_WRAP",  pure VK_STENCIL_OP_DECREMENT_AND_WRAP)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkStencilOp")+                        v <- step readPrec+                        pure (VkStencilOp v)+                        )+                    )++-- No documentation found for Nested "VkStencilOp" "VK_STENCIL_OP_KEEP"+pattern VK_STENCIL_OP_KEEP :: VkStencilOp+pattern VK_STENCIL_OP_KEEP = VkStencilOp 0++-- No documentation found for Nested "VkStencilOp" "VK_STENCIL_OP_ZERO"+pattern VK_STENCIL_OP_ZERO :: VkStencilOp+pattern VK_STENCIL_OP_ZERO = VkStencilOp 1++-- No documentation found for Nested "VkStencilOp" "VK_STENCIL_OP_REPLACE"+pattern VK_STENCIL_OP_REPLACE :: VkStencilOp+pattern VK_STENCIL_OP_REPLACE = VkStencilOp 2++-- No documentation found for Nested "VkStencilOp" "VK_STENCIL_OP_INCREMENT_AND_CLAMP"+pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP :: VkStencilOp+pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP = VkStencilOp 3++-- No documentation found for Nested "VkStencilOp" "VK_STENCIL_OP_DECREMENT_AND_CLAMP"+pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP :: VkStencilOp+pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP = VkStencilOp 4++-- No documentation found for Nested "VkStencilOp" "VK_STENCIL_OP_INVERT"+pattern VK_STENCIL_OP_INVERT :: VkStencilOp+pattern VK_STENCIL_OP_INVERT = VkStencilOp 5++-- No documentation found for Nested "VkStencilOp" "VK_STENCIL_OP_INCREMENT_AND_WRAP"+pattern VK_STENCIL_OP_INCREMENT_AND_WRAP :: VkStencilOp+pattern VK_STENCIL_OP_INCREMENT_AND_WRAP = VkStencilOp 6++-- No documentation found for Nested "VkStencilOp" "VK_STENCIL_OP_DECREMENT_AND_WRAP"+pattern VK_STENCIL_OP_DECREMENT_AND_WRAP :: VkStencilOp+pattern VK_STENCIL_OP_DECREMENT_AND_WRAP = VkStencilOp 7+-- ** VkVertexInputRate++-- | VkVertexInputRate - Specify rate at which vertex attributes are pulled+-- from buffers+--+-- = See Also+-- #_see_also#+--+-- 'VkVertexInputBindingDescription'+newtype VkVertexInputRate = VkVertexInputRate Int32+  deriving (Eq, Ord, Storable)++instance Show VkVertexInputRate where+  showsPrec _ VK_VERTEX_INPUT_RATE_VERTEX = showString "VK_VERTEX_INPUT_RATE_VERTEX"+  showsPrec _ VK_VERTEX_INPUT_RATE_INSTANCE = showString "VK_VERTEX_INPUT_RATE_INSTANCE"+  showsPrec p (VkVertexInputRate x) = showParen (p >= 11) (showString "VkVertexInputRate " . showsPrec 11 x)++instance Read VkVertexInputRate where+  readPrec = parens ( choose [ ("VK_VERTEX_INPUT_RATE_VERTEX",   pure VK_VERTEX_INPUT_RATE_VERTEX)+                             , ("VK_VERTEX_INPUT_RATE_INSTANCE", pure VK_VERTEX_INPUT_RATE_INSTANCE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkVertexInputRate")+                        v <- step readPrec+                        pure (VkVertexInputRate v)+                        )+                    )++-- | @VK_VERTEX_INPUT_RATE_VERTEX@ specifies that vertex attribute addressing+-- is a function of the vertex index.+pattern VK_VERTEX_INPUT_RATE_VERTEX :: VkVertexInputRate+pattern VK_VERTEX_INPUT_RATE_VERTEX = VkVertexInputRate 0++-- | @VK_VERTEX_INPUT_RATE_INSTANCE@ specifies that vertex attribute+-- addressing is a function of the instance index.+pattern VK_VERTEX_INPUT_RATE_INSTANCE :: VkVertexInputRate+pattern VK_VERTEX_INPUT_RATE_INSTANCE = VkVertexInputRate 1+-- ** VkPipelineDepthStencilStateCreateFlags++-- | VkPipelineDepthStencilStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineDepthStencilStateCreateFlags@ is a bitmask type for setting a+-- mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineDepthStencilStateCreateInfo'+newtype VkPipelineDepthStencilStateCreateFlags = VkPipelineDepthStencilStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineDepthStencilStateCreateFlags where+  +  showsPrec p (VkPipelineDepthStencilStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineDepthStencilStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineDepthStencilStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineDepthStencilStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineDepthStencilStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineDynamicStateCreateFlags++-- | VkPipelineDynamicStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineDynamicStateCreateFlags@ is a bitmask type for setting a+-- mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineDynamicStateCreateInfo'+newtype VkPipelineDynamicStateCreateFlags = VkPipelineDynamicStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineDynamicStateCreateFlags where+  +  showsPrec p (VkPipelineDynamicStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineDynamicStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineDynamicStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineDynamicStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineDynamicStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineColorBlendStateCreateFlags++-- | VkPipelineColorBlendStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineColorBlendStateCreateFlags@ is a bitmask type for setting a+-- mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineColorBlendStateCreateInfo'+newtype VkPipelineColorBlendStateCreateFlags = VkPipelineColorBlendStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineColorBlendStateCreateFlags where+  +  showsPrec p (VkPipelineColorBlendStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineColorBlendStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineColorBlendStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineColorBlendStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineColorBlendStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineMultisampleStateCreateFlags++-- | VkPipelineMultisampleStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineMultisampleStateCreateFlags@ is a bitmask type for setting a+-- mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineMultisampleStateCreateInfo'+newtype VkPipelineMultisampleStateCreateFlags = VkPipelineMultisampleStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineMultisampleStateCreateFlags where+  +  showsPrec p (VkPipelineMultisampleStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineMultisampleStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineMultisampleStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineMultisampleStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineMultisampleStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineRasterizationStateCreateFlags++-- | VkPipelineRasterizationStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineRasterizationStateCreateFlags@ is a bitmask type for setting+-- a mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineRasterizationStateCreateInfo'+newtype VkPipelineRasterizationStateCreateFlags = VkPipelineRasterizationStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineRasterizationStateCreateFlags where+  +  showsPrec p (VkPipelineRasterizationStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineRasterizationStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineRasterizationStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineRasterizationStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineRasterizationStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineViewportStateCreateFlags++-- | VkPipelineViewportStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineViewportStateCreateFlags@ is a bitmask type for setting a+-- mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineViewportStateCreateInfo'+newtype VkPipelineViewportStateCreateFlags = VkPipelineViewportStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineViewportStateCreateFlags where+  +  showsPrec p (VkPipelineViewportStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineViewportStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineViewportStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineViewportStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineViewportStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineTessellationStateCreateFlags++-- | VkPipelineTessellationStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineTessellationStateCreateFlags@ is a bitmask type for setting a+-- mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineTessellationStateCreateInfo'+newtype VkPipelineTessellationStateCreateFlags = VkPipelineTessellationStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineTessellationStateCreateFlags where+  +  showsPrec p (VkPipelineTessellationStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineTessellationStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineTessellationStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineTessellationStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineTessellationStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineInputAssemblyStateCreateFlags++-- | VkPipelineInputAssemblyStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineInputAssemblyStateCreateFlags@ is a bitmask type for setting+-- a mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineInputAssemblyStateCreateInfo'+newtype VkPipelineInputAssemblyStateCreateFlags = VkPipelineInputAssemblyStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineInputAssemblyStateCreateFlags where+  +  showsPrec p (VkPipelineInputAssemblyStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineInputAssemblyStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineInputAssemblyStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineInputAssemblyStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineInputAssemblyStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineVertexInputStateCreateFlags++-- | VkPipelineVertexInputStateCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineVertexInputStateCreateFlags@ is a bitmask type for setting a+-- mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineVertexInputStateCreateInfo'+newtype VkPipelineVertexInputStateCreateFlags = VkPipelineVertexInputStateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineVertexInputStateCreateFlags where+  +  showsPrec p (VkPipelineVertexInputStateCreateFlags x) = showParen (p >= 11) (showString "VkPipelineVertexInputStateCreateFlags " . showsPrec 11 x)++instance Read VkPipelineVertexInputStateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineVertexInputStateCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineVertexInputStateCreateFlags v)+                        )+                    )+++-- ** VkPipelineShaderStageCreateFlags++-- | VkPipelineShaderStageCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineShaderStageCreateFlags@ is a bitmask type for setting a mask,+-- but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineShaderStageCreateInfo'+newtype VkPipelineShaderStageCreateFlags = VkPipelineShaderStageCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineShaderStageCreateFlags where+  +  showsPrec p (VkPipelineShaderStageCreateFlags x) = showParen (p >= 11) (showString "VkPipelineShaderStageCreateFlags " . showsPrec 11 x)++instance Read VkPipelineShaderStageCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineShaderStageCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineShaderStageCreateFlags v)+                        )+                    )+++-- ** VkShaderStageFlagBits++-- | VkShaderStageFlagBits - Bitmask specifying a pipeline stage+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineShaderStageCreateInfo',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkShaderStageFlags',+-- 'Graphics.Vulkan.Extensions.VK_AMD_shader_info.vkGetShaderInfoAMD'+newtype VkShaderStageFlagBits = VkShaderStageFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkShaderStageFlagBits where+  showsPrec _ VK_SHADER_STAGE_VERTEX_BIT = showString "VK_SHADER_STAGE_VERTEX_BIT"+  showsPrec _ VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = showString "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"+  showsPrec _ VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = showString "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"+  showsPrec _ VK_SHADER_STAGE_GEOMETRY_BIT = showString "VK_SHADER_STAGE_GEOMETRY_BIT"+  showsPrec _ VK_SHADER_STAGE_FRAGMENT_BIT = showString "VK_SHADER_STAGE_FRAGMENT_BIT"+  showsPrec _ VK_SHADER_STAGE_COMPUTE_BIT = showString "VK_SHADER_STAGE_COMPUTE_BIT"+  showsPrec _ VK_SHADER_STAGE_ALL_GRAPHICS = showString "VK_SHADER_STAGE_ALL_GRAPHICS"+  showsPrec _ VK_SHADER_STAGE_ALL = showString "VK_SHADER_STAGE_ALL"+  showsPrec p (VkShaderStageFlagBits x) = showParen (p >= 11) (showString "VkShaderStageFlagBits " . showsPrec 11 x)++instance Read VkShaderStageFlagBits where+  readPrec = parens ( choose [ ("VK_SHADER_STAGE_VERTEX_BIT",                  pure VK_SHADER_STAGE_VERTEX_BIT)+                             , ("VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT",    pure VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT)+                             , ("VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", pure VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)+                             , ("VK_SHADER_STAGE_GEOMETRY_BIT",                pure VK_SHADER_STAGE_GEOMETRY_BIT)+                             , ("VK_SHADER_STAGE_FRAGMENT_BIT",                pure VK_SHADER_STAGE_FRAGMENT_BIT)+                             , ("VK_SHADER_STAGE_COMPUTE_BIT",                 pure VK_SHADER_STAGE_COMPUTE_BIT)+                             , ("VK_SHADER_STAGE_ALL_GRAPHICS",                pure VK_SHADER_STAGE_ALL_GRAPHICS)+                             , ("VK_SHADER_STAGE_ALL",                         pure VK_SHADER_STAGE_ALL)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkShaderStageFlagBits")+                        v <- step readPrec+                        pure (VkShaderStageFlagBits v)+                        )+                    )++-- | @VK_SHADER_STAGE_VERTEX_BIT@ specifies the vertex stage.+pattern VK_SHADER_STAGE_VERTEX_BIT :: VkShaderStageFlagBits+pattern VK_SHADER_STAGE_VERTEX_BIT = VkShaderStageFlagBits 0x00000001++-- | @VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT@ specifies the tessellation+-- control stage.+pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT :: VkShaderStageFlagBits+pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = VkShaderStageFlagBits 0x00000002++-- | @VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT@ specifies the tessellation+-- evaluation stage.+pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT :: VkShaderStageFlagBits+pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = VkShaderStageFlagBits 0x00000004++-- | @VK_SHADER_STAGE_GEOMETRY_BIT@ specifies the geometry stage.+pattern VK_SHADER_STAGE_GEOMETRY_BIT :: VkShaderStageFlagBits+pattern VK_SHADER_STAGE_GEOMETRY_BIT = VkShaderStageFlagBits 0x00000008++-- | @VK_SHADER_STAGE_FRAGMENT_BIT@ specifies the fragment stage.+pattern VK_SHADER_STAGE_FRAGMENT_BIT :: VkShaderStageFlagBits+pattern VK_SHADER_STAGE_FRAGMENT_BIT = VkShaderStageFlagBits 0x00000010++-- | @VK_SHADER_STAGE_COMPUTE_BIT@ specifies the compute stage.+pattern VK_SHADER_STAGE_COMPUTE_BIT :: VkShaderStageFlagBits+pattern VK_SHADER_STAGE_COMPUTE_BIT = VkShaderStageFlagBits 0x00000020++-- | @VK_SHADER_STAGE_ALL_GRAPHICS@ is a combination of bits used as+-- shorthand to specify all graphics stages defined above (excluding the+-- compute stage).+pattern VK_SHADER_STAGE_ALL_GRAPHICS :: VkShaderStageFlagBits+pattern VK_SHADER_STAGE_ALL_GRAPHICS = VkShaderStageFlagBits 0x0000001f++-- | @VK_SHADER_STAGE_ALL@ is a combination of bits used as shorthand to+-- specify all shader stages supported by the device, including all+-- additional stages which are introduced by extensions.+pattern VK_SHADER_STAGE_ALL :: VkShaderStageFlagBits+pattern VK_SHADER_STAGE_ALL = VkShaderStageFlagBits 0x7fffffff+-- ** VkPipelineCreateFlagBits++-- | VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is created+--+-- = Description+-- #_description#+--+-- -   @VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT@ specifies that the+--     created pipeline will not be optimized. Using this flag /may/ reduce+--     the time taken to create the pipeline.+--+-- -   @VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT@ specifies that the+--     pipeline to be created is allowed to be the parent of a pipeline+--     that will be created in a subsequent call to+--     'vkCreateGraphicsPipelines' or 'vkCreateComputePipelines'.+--+-- -   @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ specifies that the pipeline to+--     be created will be a child of a previously created parent pipeline.+--+-- It is valid to set both @VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT@ and+-- @VK_PIPELINE_CREATE_DERIVATIVE_BIT@. This allows a pipeline to be both a+-- parent and possibly a child in a pipeline hierarchy. See+-- <{html_spec_relative}#pipelines-pipeline-derivatives Pipeline Derivatives>+-- for more information.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineCreateFlags'+newtype VkPipelineCreateFlagBits = VkPipelineCreateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineCreateFlagBits where+  showsPrec _ VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = showString "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"+  showsPrec _ VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = showString "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"+  showsPrec _ VK_PIPELINE_CREATE_DERIVATIVE_BIT = showString "VK_PIPELINE_CREATE_DERIVATIVE_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkPipelineCreateFlagBits 0x00000008) = showString "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"+  showsPrec _ (VkPipelineCreateFlagBits 0x00000010) = showString "VK_PIPELINE_CREATE_DISPATCH_BASE"+  showsPrec p (VkPipelineCreateFlagBits x) = showParen (p >= 11) (showString "VkPipelineCreateFlagBits " . showsPrec 11 x)++instance Read VkPipelineCreateFlagBits where+  readPrec = parens ( choose [ ("VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT", pure VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT)+                             , ("VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT",    pure VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT)+                             , ("VK_PIPELINE_CREATE_DERIVATIVE_BIT",           pure VK_PIPELINE_CREATE_DERIVATIVE_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT", pure (VkPipelineCreateFlagBits 0x00000008))+                             , ("VK_PIPELINE_CREATE_DISPATCH_BASE",                    pure (VkPipelineCreateFlagBits 0x00000010))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineCreateFlagBits")+                        v <- step readPrec+                        pure (VkPipelineCreateFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"+pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT :: VkPipelineCreateFlagBits+pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = VkPipelineCreateFlagBits 0x00000001++-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"+pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT :: VkPipelineCreateFlagBits+pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = VkPipelineCreateFlagBits 0x00000002++-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DERIVATIVE_BIT"+pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT :: VkPipelineCreateFlagBits+pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT = VkPipelineCreateFlagBits 0x00000004+-- ** VkColorComponentFlagBits++-- | VkColorComponentFlagBits - Bitmask controlling which components are+-- written to the framebuffer+--+-- = Description+-- #_description#+--+-- -   @VK_COLOR_COMPONENT_R_BIT@ specifies that the R value is written to+--     the color attachment for the appropriate sample. Otherwise, the+--     value in memory is unmodified.+--+-- -   @VK_COLOR_COMPONENT_G_BIT@ specifies that the G value is written to+--     the color attachment for the appropriate sample. Otherwise, the+--     value in memory is unmodified.+--+-- -   @VK_COLOR_COMPONENT_B_BIT@ specifies that the B value is written to+--     the color attachment for the appropriate sample. Otherwise, the+--     value in memory is unmodified.+--+-- -   @VK_COLOR_COMPONENT_A_BIT@ specifies that the A value is written to+--     the color attachment for the appropriate sample. Otherwise, the+--     value in memory is unmodified.+--+-- The color write mask operation is applied regardless of whether blending+-- is enabled.+--+-- = See Also+-- #_see_also#+--+-- 'VkColorComponentFlags'+newtype VkColorComponentFlagBits = VkColorComponentFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkColorComponentFlagBits where+  showsPrec _ VK_COLOR_COMPONENT_R_BIT = showString "VK_COLOR_COMPONENT_R_BIT"+  showsPrec _ VK_COLOR_COMPONENT_G_BIT = showString "VK_COLOR_COMPONENT_G_BIT"+  showsPrec _ VK_COLOR_COMPONENT_B_BIT = showString "VK_COLOR_COMPONENT_B_BIT"+  showsPrec _ VK_COLOR_COMPONENT_A_BIT = showString "VK_COLOR_COMPONENT_A_BIT"+  showsPrec p (VkColorComponentFlagBits x) = showParen (p >= 11) (showString "VkColorComponentFlagBits " . showsPrec 11 x)++instance Read VkColorComponentFlagBits where+  readPrec = parens ( choose [ ("VK_COLOR_COMPONENT_R_BIT", pure VK_COLOR_COMPONENT_R_BIT)+                             , ("VK_COLOR_COMPONENT_G_BIT", pure VK_COLOR_COMPONENT_G_BIT)+                             , ("VK_COLOR_COMPONENT_B_BIT", pure VK_COLOR_COMPONENT_B_BIT)+                             , ("VK_COLOR_COMPONENT_A_BIT", pure VK_COLOR_COMPONENT_A_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkColorComponentFlagBits")+                        v <- step readPrec+                        pure (VkColorComponentFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkColorComponentFlagBits" "VK_COLOR_COMPONENT_R_BIT"+pattern VK_COLOR_COMPONENT_R_BIT :: VkColorComponentFlagBits+pattern VK_COLOR_COMPONENT_R_BIT = VkColorComponentFlagBits 0x00000001++-- No documentation found for Nested "VkColorComponentFlagBits" "VK_COLOR_COMPONENT_G_BIT"+pattern VK_COLOR_COMPONENT_G_BIT :: VkColorComponentFlagBits+pattern VK_COLOR_COMPONENT_G_BIT = VkColorComponentFlagBits 0x00000002++-- No documentation found for Nested "VkColorComponentFlagBits" "VK_COLOR_COMPONENT_B_BIT"+pattern VK_COLOR_COMPONENT_B_BIT :: VkColorComponentFlagBits+pattern VK_COLOR_COMPONENT_B_BIT = VkColorComponentFlagBits 0x00000004++-- No documentation found for Nested "VkColorComponentFlagBits" "VK_COLOR_COMPONENT_A_BIT"+pattern VK_COLOR_COMPONENT_A_BIT :: VkColorComponentFlagBits+pattern VK_COLOR_COMPONENT_A_BIT = VkColorComponentFlagBits 0x00000008+-- ** VkCullModeFlagBits++-- | VkCullModeFlagBits - Bitmask controlling triangle culling+--+-- = Description+-- #_description#+--+-- -   @VK_CULL_MODE_NONE@ specifies that no triangles are discarded+--+-- -   @VK_CULL_MODE_FRONT_BIT@ specifies that front-facing triangles are+--     discarded+--+-- -   @VK_CULL_MODE_BACK_BIT@ specifies that back-facing triangles are+--     discarded+--+-- -   @VK_CULL_MODE_FRONT_AND_BACK@ specifies that all triangles are+--     discarded.+--+-- Following culling, fragments are produced for any triangles which have+-- not been discarded.+--+-- = See Also+-- #_see_also#+--+-- 'VkCullModeFlags'+newtype VkCullModeFlagBits = VkCullModeFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkCullModeFlagBits where+  showsPrec _ VK_CULL_MODE_FRONT_BIT = showString "VK_CULL_MODE_FRONT_BIT"+  showsPrec _ VK_CULL_MODE_BACK_BIT = showString "VK_CULL_MODE_BACK_BIT"+  showsPrec _ VK_CULL_MODE_NONE = showString "VK_CULL_MODE_NONE"+  showsPrec _ VK_CULL_MODE_FRONT_AND_BACK = showString "VK_CULL_MODE_FRONT_AND_BACK"+  showsPrec p (VkCullModeFlagBits x) = showParen (p >= 11) (showString "VkCullModeFlagBits " . showsPrec 11 x)++instance Read VkCullModeFlagBits where+  readPrec = parens ( choose [ ("VK_CULL_MODE_FRONT_BIT",      pure VK_CULL_MODE_FRONT_BIT)+                             , ("VK_CULL_MODE_BACK_BIT",       pure VK_CULL_MODE_BACK_BIT)+                             , ("VK_CULL_MODE_NONE",           pure VK_CULL_MODE_NONE)+                             , ("VK_CULL_MODE_FRONT_AND_BACK", pure VK_CULL_MODE_FRONT_AND_BACK)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCullModeFlagBits")+                        v <- step readPrec+                        pure (VkCullModeFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkCullModeFlagBits" "VK_CULL_MODE_FRONT_BIT"+pattern VK_CULL_MODE_FRONT_BIT :: VkCullModeFlagBits+pattern VK_CULL_MODE_FRONT_BIT = VkCullModeFlagBits 0x00000001++-- No documentation found for Nested "VkCullModeFlagBits" "VK_CULL_MODE_BACK_BIT"+pattern VK_CULL_MODE_BACK_BIT :: VkCullModeFlagBits+pattern VK_CULL_MODE_BACK_BIT = VkCullModeFlagBits 0x00000002++-- No documentation found for Nested "VkCullModeFlagBits" "VK_CULL_MODE_NONE"+pattern VK_CULL_MODE_NONE :: VkCullModeFlagBits+pattern VK_CULL_MODE_NONE = VkCullModeFlagBits 0x00000000++-- No documentation found for Nested "VkCullModeFlagBits" "VK_CULL_MODE_FRONT_AND_BACK"+pattern VK_CULL_MODE_FRONT_AND_BACK :: VkCullModeFlagBits+pattern VK_CULL_MODE_FRONT_AND_BACK = VkCullModeFlagBits 0x00000003+-- | Dummy data to tag the 'Ptr' with+data VkPipeline_T+-- | VkPipeline - Opaque handle to a pipeline object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkComputePipelineCreateInfo', 'VkGraphicsPipelineCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePipelineEntryNVX',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindPipeline',+-- 'vkCreateComputePipelines', 'vkCreateGraphicsPipelines',+-- 'vkDestroyPipeline',+-- 'Graphics.Vulkan.Extensions.VK_AMD_shader_info.vkGetShaderInfoAMD'+type VkPipeline = Ptr VkPipeline_T+-- | Dummy data to tag the 'Ptr' with+data VkPipelineLayout_T+-- | VkPipelineLayout - Opaque handle to a pipeline layout object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkComputePipelineCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo',+-- 'VkGraphicsPipelineCreateInfo',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableDescriptorSetEntryNVX',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePushConstantEntryNVX',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindDescriptorSets',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdPushConstants',+-- 'Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.vkCmdPushDescriptorSetKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.vkCmdPushDescriptorSetWithTemplateKHR',+-- 'Graphics.Vulkan.Core10.PipelineLayout.vkCreatePipelineLayout',+-- 'Graphics.Vulkan.Core10.PipelineLayout.vkDestroyPipelineLayout'+type VkPipelineLayout = Ptr VkPipelineLayout_T+-- | Dummy data to tag the 'Ptr' with+data VkRenderPass_T+-- | VkRenderPass - Opaque handle to a render pass object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo',+-- 'Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo',+-- 'VkGraphicsPipelineCreateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo',+-- 'Graphics.Vulkan.Core10.Pass.vkCreateRenderPass',+-- 'Graphics.Vulkan.Core10.Pass.vkDestroyRenderPass',+-- 'Graphics.Vulkan.Core10.Pass.vkGetRenderAreaGranularity'+type VkRenderPass = Ptr VkRenderPass_T+-- | vkCreateGraphicsPipelines - Create graphics pipelines+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the graphics pipelines.+--+-- -   @pipelineCache@ is either+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', indicating that+--     pipeline caching is disabled; or the handle of a valid+--     <{html_spec_relative}#pipelines-cache pipeline cache> object, in+--     which case use of that cache is enabled for the duration of the+--     command.+--+-- -   @createInfoCount@ is the length of the @pCreateInfos@ and+--     @pPipelines@ arrays.+--+-- -   @pCreateInfos@ is an array of @VkGraphicsPipelineCreateInfo@+--     structures.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pPipelines@ is a pointer to an array in which the resulting+--     graphics pipeline objects are returned.+--+-- = Description+-- #_description#+--+-- The 'VkGraphicsPipelineCreateInfo' structure includes an array of shader+-- create info structures containing all the desired active shader stages,+-- as well as creation info to define all relevant fixed-function stages,+-- and a pipeline layout.+--+-- == Valid Usage+--+-- -   If the @flags@ member of any element of @pCreateInfos@ contains the+--     @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag, and the+--     @basePipelineIndex@ member of that same element is not @-1@,+--     @basePipelineIndex@ /must/ be less than the index into+--     @pCreateInfos@ that corresponds to that element+--+-- -   If the @flags@ member of any element of @pCreateInfos@ contains the+--     @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag, the base pipeline /must/+--     have been created with the+--     @VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT@ flag set+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @pipelineCache@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @pipelineCache@+--     /must/ be a valid @VkPipelineCache@ handle+--+-- -   @pCreateInfos@ /must/ be a valid pointer to an array of+--     @createInfoCount@ valid @VkGraphicsPipelineCreateInfo@ structures+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pPipelines@ /must/ be a valid pointer to an array of+--     @createInfoCount@ @VkPipeline@ handles+--+-- -   @createInfoCount@ /must/ be greater than @0@+--+-- -   If @pipelineCache@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_INVALID_SHADER_NV@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkGraphicsPipelineCreateInfo', 'VkPipeline',+-- 'Graphics.Vulkan.Core10.PipelineCache.VkPipelineCache'+foreign import ccall "vkCreateGraphicsPipelines" vkCreateGraphicsPipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkGraphicsPipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult+-- | vkCreateComputePipelines - Creates a new compute pipeline object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the compute pipelines.+--+-- -   @pipelineCache@ is either+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', indicating that+--     pipeline caching is disabled; or the handle of a valid+--     <{html_spec_relative}#pipelines-cache pipeline cache> object, in+--     which case use of that cache is enabled for the duration of the+--     command.+--+-- -   @createInfoCount@ is the length of the @pCreateInfos@ and+--     @pPipelines@ arrays.+--+-- -   @pCreateInfos@ is an array of @VkComputePipelineCreateInfo@+--     structures.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pPipelines@ is a pointer to an array in which the resulting compute+--     pipeline objects are returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the @flags@ member of any element of @pCreateInfos@ contains the+--     @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag, and the+--     @basePipelineIndex@ member of that same element is not @-1@,+--     @basePipelineIndex@ /must/ be less than the index into+--     @pCreateInfos@ that corresponds to that element+--+-- -   If the @flags@ member of any element of @pCreateInfos@ contains the+--     @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag, the base pipeline /must/+--     have been created with the+--     @VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT@ flag set+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @pipelineCache@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @pipelineCache@+--     /must/ be a valid @VkPipelineCache@ handle+--+-- -   @pCreateInfos@ /must/ be a valid pointer to an array of+--     @createInfoCount@ valid @VkComputePipelineCreateInfo@ structures+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pPipelines@ /must/ be a valid pointer to an array of+--     @createInfoCount@ @VkPipeline@ handles+--+-- -   @createInfoCount@ /must/ be greater than @0@+--+-- -   If @pipelineCache@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_INVALID_SHADER_NV@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkComputePipelineCreateInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkPipeline',+-- 'Graphics.Vulkan.Core10.PipelineCache.VkPipelineCache'+foreign import ccall "vkCreateComputePipelines" vkCreateComputePipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkComputePipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult+-- | vkDestroyPipeline - Destroy a pipeline object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the pipeline.+--+-- -   @pipeline@ is the handle of the pipeline to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @pipeline@ /must/ have+--     completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @pipeline@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @pipeline@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @pipeline@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @pipeline@ /must/+--     be a valid @VkPipeline@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @pipeline@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @pipeline@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkPipeline'+foreign import ccall "vkDestroyPipeline" vkDestroyPipeline :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkOffset2D - Structure specifying a two-dimensional offset+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneCapabilitiesKHR',+-- 'VkRect2D',+-- 'Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkRectLayerKHR'+data VkOffset2D = VkOffset2D+  { -- No documentation found for Nested "VkOffset2D" "vkX"+  vkX :: Int32+  , -- No documentation found for Nested "VkOffset2D" "vkY"+  vkY :: Int32+  }+  deriving (Eq, Show)++instance Storable VkOffset2D where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkOffset2D <$> peek (ptr `plusPtr` 0)+                        <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkOffset2D))+                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkOffset2D))+-- | VkExtent2D - Structure specifying a two-dimensional extent+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeParametersKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneCapabilitiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkMultisamplePropertiesEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT',+-- 'VkRect2D',+-- 'Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkRectLayerKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.Pass.vkGetRenderAreaGranularity'+data VkExtent2D = VkExtent2D+  { -- No documentation found for Nested "VkExtent2D" "vkWidth"+  vkWidth :: Word32+  , -- No documentation found for Nested "VkExtent2D" "vkHeight"+  vkHeight :: Word32+  }+  deriving (Eq, Show)++instance Storable VkExtent2D where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkExtent2D <$> peek (ptr `plusPtr` 0)+                        <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkWidth (poked :: VkExtent2D))+                *> poke (ptr `plusPtr` 4) (vkHeight (poked :: VkExtent2D))+-- | VkViewport - Structure specifying a viewport+--+-- = Description+-- #_description#+--+-- The framebuffer depth coordinate @z@f /may/ be represented using either+-- a fixed-point or floating-point representation. However, a+-- floating-point representation /must/ be used if the depth\/stencil+-- attachment has a floating-point depth component. If an m-bit fixed-point+-- representation is used, we assume that it represents each value+-- <<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIYAAABMCAYAAACoCs9DAAAABmJLR0QA/wD/AP+gvaeTAAAGHElEQVR4nO2de4gVZRTAf2psm6t/uNYmakmapkaZadjDMKM3mfRHRCFRFFSCoRT0ohKCwqT+6AkZ/WOWllZIj+1B2dvYtrTCR2bKKkkvI9vaDNfbH2du3zfjvO7emfnu3Xt+MDA7c+abMzvnnjlzvjPfB43FK0ApZHnCpVK1yGGuFSiYIcBWb30c5vo73aij1BqHA/9iPMYUt+ootcJpGKPoofE8ZyIDXSvgiGnW+kbggCtFahU1DI0vQlHDgC+caaHUFMHA82S36ii1wnSMUfxNeOD5M+H5jvKyoBBNHdKI0fh0az0s8GwD9nlLGzAU6AV2WjLrc9RPccQyzC//8Ri5ecir7G/ABQXopTjmS4xhXBeyfxDwiLf/a2BscaoprmjCH3ieFNg/HHjX2/cS0FKodooz4gLPKcAOJJ64q3jVFJfciDGMz6ztVwJ/Ab8DlzjQS3HM0xjDeAxJ8C2xtq12p5rikk6MESwC2vHnJ3qBE51ppzihCdiPMYJu4CBSpHPQ2r7KlYKKG+zAswT8Aczx9q1CvUbDYgeeu4CJ1r7JiEGo12hAgoFnkJX4vcbk4lRTXGIHnmEZz0n4vcbK4lRTXBEMPKO62p9HvUZDMY10NZ4TUa/RUNiBZ1KX+QrUa/Rr5gNbvOVXzM3eZ22/1pM9AtjkbfsR/2vtT972TZ6cUue8THwVVgk415M9M4XsdwXqriiKoiiKoiiKoiiKoihKHiwmOROoS/9YFhNCow6DoCSghqGEooahhKKGoSiKoiiKoiiKoiiHcBnhadqHvf2twL3AN8gIOHuBN4GZgXYGeG21I1XePUjx7gPA4FyvQMmFxYQbxtXA6Rxayl9eDgAXeW0MBV6LkCsBbxVyJUqmjEd+/TOB3ZibOQ8Zv2I5cAVS5r8A/8CsG4FmoAPxDguB84DLgbX4jWNGURdUQ8wCvsf8D5rzOtEpwH2IK+9CXPs/wB7gA+BB5MPgvtCC+TTwILAd4xFs5uK/4SuAV5FhoG0GIh8IleX6/Ui+Fi3Ao/gHg8ncMJqA6/H/k0vIjVsHfMShwyu/gAyLWAlnB9q4JUKuNSC3jeghF5+x5O6oUJ96ZRZyb8IeqZkahv3NZwkZvGx8QGYAMtLdLktuC3B0BedZiN/ooj46Hh7Q56qYNm3DmF+BLvVICzLmR9lLrAOeJEfDuMlqeEWC7LH4vxFtr+A8y63j7omRm2rJ7UU8WhTvWLLnV6BLPfIccp3dyGNzAHAbBRjGfuCoFPKLAsqclfI8m61jTo2Ru8aSezGhzT2WbFtKPeqV1cD7wHHWtqoMI223+4fALynk1gT+nhMq5WcIMMFb7wY2xMjaE9B8HCM3Chjhre9G4qD+zBLkzW1HVg0mTUuxAUk2fZqyvS7Eu5TfEsalOGYqxkC/Qp6TUdhTSsTNTNRoMxh1ZN1gkmGsp/K5OWzDSOO+7JsdNz/ZIOSVGeTVNq1n0TnP+kDWFVzNSCayzLYUx6T9dU/CpLc3I3mUKNJ6FiWCrA1jChIRl1mb4pi0HqMSL6Aeo0qyNoy51voG5H06jqGYvMifxI9ak9aARmFyKF2kC5qVAFkaxmDgBuvvW1McU0ngmfaR02iBZy5kaRh3YnIdTwHvpTimksCzPP96L9KBVm2bSgxZzaI4A9Mf0YEkuqK4EDEigOOt7XOQ5FY3cKm3bRnyqGnCBJ69wBve+lLgdWA20sEH/jHC5yET3fUAF6e+mmjGADdn0E6QXuDuHNp1ykhMl/kOkvtIlhL/LeUnntwg5M0jTvYMT/b+BLnPq7vE/5mZcJ6+LnnMLZ9rSjyJVsStlxDjSJPQqmcaxjCqeZQMA95GxuXuQopktlfRXj3wLdk8koLEBd11RStm/tKd+DtvlNqg8EfJkZjHxw9IQKbUHoUaRhtSsV1C6gmPyfNkSlUUZhgjMCV+W5EMYxzlop3ReSmkxFJI8DkSKQSZgBjFbKQQRumnpMl8jkaqwCcgvZrnoEbR70nyGGOQ1PZY7+9W4iunbIb1VSnFPUmGcTvGKECympVUfyvF0Yn/U4rWwP7ym2SZZ4GHohpLMgwdiql+OIHob2zA1NWWiS2Q/g/CKZj9Ff7zqAAAAABJRU5ErkJggg== stem 64a1b37b405b2e2dc919e83a12e9feba>>,+-- where k ∈ { 0, 1, …​, 2m-1 }, as k (e.g. 1.0 is represented in binary as+-- a string of all ones).+--+-- The viewport parameters shown in the above equations are found from+-- these values as+--+-- []+--     ox = @x@ + @width@ \/ 2+--+-- []+--     oy = @y@ + @height@ \/ 2+--+-- []+--     oz = @minDepth@+--+-- []+--     px = @width@+--+-- []+--     py = @height@+--+-- []+--     pz = @maxDepth@ - @minDepth@.+--+-- The width and height of the+-- <{html_spec_relative}#features-limits-maxViewportDimensions implementation-dependent maximum viewport dimensions>+-- /must/ be greater than or equal to the width and height of the largest+-- image which /can/ be created and attached to a framebuffer.+--+-- The floating-point viewport bounds are represented with an+-- <{html_spec_relative}#features-limits-viewportSubPixelBits implementation-dependent precision>.+--+-- == Valid Usage+--+-- -   @width@ /must/ be greater than @0.0@+--+-- -   @width@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxViewportDimensions@[0]+--+-- -   @height@ /must/ be greater than @0.0@+--+-- -   The absolute value of @height@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxViewportDimensions@[1]+--+-- -   @x@ /must/ be greater than or equal to @viewportBoundsRange@[0]+--+-- -   (@x@ + @width@) /must/ be less than or equal to+--     @viewportBoundsRange@[1]+--+-- -   @y@ /must/ be greater than or equal to @viewportBoundsRange@[0]+--+-- -   (@y@ + @height@) /must/ be less than or equal to+--     @viewportBoundsRange@[1]+--+-- -   @minDepth@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- -   @maxDepth@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineViewportStateCreateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetViewport'+data VkViewport = VkViewport+  { -- No documentation found for Nested "VkViewport" "vkX"+  vkX :: CFloat+  , -- No documentation found for Nested "VkViewport" "vkY"+  vkY :: CFloat+  , -- No documentation found for Nested "VkViewport" "vkWidth"+  vkWidth :: CFloat+  , -- No documentation found for Nested "VkViewport" "vkHeight"+  vkHeight :: CFloat+  , -- No documentation found for Nested "VkViewport" "vkMinDepth"+  vkMinDepth :: CFloat+  , -- No documentation found for Nested "VkViewport" "vkMaxDepth"+  vkMaxDepth :: CFloat+  }+  deriving (Eq, Show)++instance Storable VkViewport where+  sizeOf ~_ = 24+  alignment ~_ = 4+  peek ptr = VkViewport <$> peek (ptr `plusPtr` 0)+                        <*> peek (ptr `plusPtr` 4)+                        <*> peek (ptr `plusPtr` 8)+                        <*> peek (ptr `plusPtr` 12)+                        <*> peek (ptr `plusPtr` 16)+                        <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkViewport))+                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkViewport))+                *> poke (ptr `plusPtr` 8) (vkWidth (poked :: VkViewport))+                *> poke (ptr `plusPtr` 12) (vkHeight (poked :: VkViewport))+                *> poke (ptr `plusPtr` 16) (vkMinDepth (poked :: VkViewport))+                *> poke (ptr `plusPtr` 20) (vkMaxDepth (poked :: VkViewport))+-- | VkRect2D - Structure specifying a two-dimensional subregion+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearRect',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR',+-- 'VkExtent2D', 'VkOffset2D',+-- 'Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT',+-- 'VkPipelineViewportStateCreateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo',+-- 'Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.vkCmdSetDiscardRectangleEXT',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetScissor',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkGetPhysicalDevicePresentRectanglesKHR'+data VkRect2D = VkRect2D+  { -- No documentation found for Nested "VkRect2D" "vkOffset"+  vkOffset :: VkOffset2D+  , -- No documentation found for Nested "VkRect2D" "vkExtent"+  vkExtent :: VkExtent2D+  }+  deriving (Eq, Show)++instance Storable VkRect2D where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek ptr = VkRect2D <$> peek (ptr `plusPtr` 0)+                      <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkRect2D))+                *> poke (ptr `plusPtr` 8) (vkExtent (poked :: VkRect2D))+-- | VkSpecializationMapEntry - Structure specifying a specialization map+-- entry+--+-- = Description+-- #_description#+--+-- If a @constantID@ value is not a specialization constant ID used in the+-- shader, that map entry does not affect the behavior of the pipeline.+--+-- == Valid Usage+--+-- -   For a @constantID@ specialization constant declared in a shader,+--     @size@ /must/ match the byte size of the @constantID@. If the+--     specialization constant is of type @boolean@, @size@ /must/ be the+--     byte size of @VkBool32@+--+-- = See Also+-- #_see_also#+--+-- 'VkSpecializationInfo'+data VkSpecializationMapEntry = VkSpecializationMapEntry+  { -- No documentation found for Nested "VkSpecializationMapEntry" "vkConstantID"+  vkConstantID :: Word32+  , -- No documentation found for Nested "VkSpecializationMapEntry" "vkOffset"+  vkOffset :: Word32+  , -- No documentation found for Nested "VkSpecializationMapEntry" "vkSize"+  vkSize :: CSize+  }+  deriving (Eq, Show)++instance Storable VkSpecializationMapEntry where+  sizeOf ~_ = 16+  alignment ~_ = 8+  peek ptr = VkSpecializationMapEntry <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 4)+                                      <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkConstantID (poked :: VkSpecializationMapEntry))+                *> poke (ptr `plusPtr` 4) (vkOffset (poked :: VkSpecializationMapEntry))+                *> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSpecializationMapEntry))+-- | VkSpecializationInfo - Structure specifying specialization info+--+-- = Description+-- #_description#+--+-- @pMapEntries@ points to a structure of type 'VkSpecializationMapEntry'.+--+-- == Valid Usage+--+-- -   The @offset@ member of each element of @pMapEntries@ /must/ be less+--     than @dataSize@+--+-- -   The @size@ member of each element of @pMapEntries@ /must/ be less+--     than or equal to @dataSize@ minus @offset@+--+-- -   If @mapEntryCount@ is not @0@, @pMapEntries@ /must/ be a valid+--     pointer to an array of @mapEntryCount@ valid+--     @VkSpecializationMapEntry@ structures+--+-- == Valid Usage (Implicit)+--+-- -   If @dataSize@ is not @0@, @pData@ /must/ be a valid pointer to an+--     array of @dataSize@ bytes+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineShaderStageCreateInfo', 'VkSpecializationMapEntry'+data VkSpecializationInfo = VkSpecializationInfo+  { -- No documentation found for Nested "VkSpecializationInfo" "vkMapEntryCount"+  vkMapEntryCount :: Word32+  , -- No documentation found for Nested "VkSpecializationInfo" "vkPMapEntries"+  vkPMapEntries :: Ptr VkSpecializationMapEntry+  , -- No documentation found for Nested "VkSpecializationInfo" "vkDataSize"+  vkDataSize :: CSize+  , -- No documentation found for Nested "VkSpecializationInfo" "vkPData"+  vkPData :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkSpecializationInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkSpecializationInfo <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkMapEntryCount (poked :: VkSpecializationInfo))+                *> poke (ptr `plusPtr` 8) (vkPMapEntries (poked :: VkSpecializationInfo))+                *> poke (ptr `plusPtr` 16) (vkDataSize (poked :: VkSpecializationInfo))+                *> poke (ptr `plusPtr` 24) (vkPData (poked :: VkSpecializationInfo))+-- | VkPipelineShaderStageCreateInfo - Structure specifying parameters of a+-- newly created pipeline shader stage+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @stage@ /must/ not be+--     @VK_SHADER_STAGE_GEOMETRY_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @stage@ /must/ not be+--     @VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT@ or+--     @VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT@+--+-- -   @stage@ /must/ not be @VK_SHADER_STAGE_ALL_GRAPHICS@, or+--     @VK_SHADER_STAGE_ALL@+--+-- -   @pName@ /must/ be the name of an @OpEntryPoint@ in @module@ with an+--     execution model that matches @stage@+--+-- -   If the identified entry point includes any variable in its interface+--     that is declared with the @ClipDistance@ @BuiltIn@ decoration, that+--     variable /must/ not have an array size greater than+--     @VkPhysicalDeviceLimits@::@maxClipDistances@+--+-- -   If the identified entry point includes any variable in its interface+--     that is declared with the @CullDistance@ @BuiltIn@ decoration, that+--     variable /must/ not have an array size greater than+--     @VkPhysicalDeviceLimits@::@maxCullDistances@+--+-- -   If the identified entry point includes any variables in its+--     interface that are declared with the @ClipDistance@ or+--     @CullDistance@ @BuiltIn@ decoration, those variables /must/ not have+--     array sizes which sum to more than+--     @VkPhysicalDeviceLimits@::@maxCombinedClipAndCullDistances@+--+-- -   If the identified entry point includes any variable in its interface+--     that is declared with the @SampleMask@ @BuiltIn@ decoration, that+--     variable /must/ not have an array size greater than+--     @VkPhysicalDeviceLimits@::@maxSampleMaskWords@+--+-- -   If @stage@ is @VK_SHADER_STAGE_VERTEX_BIT@, the identified entry+--     point /must/ not include any input variable in its interface that is+--     decorated with @CullDistance@+--+-- -   If @stage@ is @VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT@ or+--     @VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT@, and the identified+--     entry point has an @OpExecutionMode@ instruction that specifies a+--     patch size with @OutputVertices@, the patch size /must/ be greater+--     than @0@ and less than or equal to+--     @VkPhysicalDeviceLimits@::@maxTessellationPatchSize@+--+-- -   If @stage@ is @VK_SHADER_STAGE_GEOMETRY_BIT@, the identified entry+--     point /must/ have an @OpExecutionMode@ instruction that specifies a+--     maximum output vertex count that is greater than @0@ and less than+--     or equal to @VkPhysicalDeviceLimits@::@maxGeometryOutputVertices@+--+-- -   If @stage@ is @VK_SHADER_STAGE_GEOMETRY_BIT@, the identified entry+--     point /must/ have an @OpExecutionMode@ instruction that specifies an+--     invocation count that is greater than @0@ and less than or equal to+--     @VkPhysicalDeviceLimits@::@maxGeometryShaderInvocations@+--+-- -   If @stage@ is @VK_SHADER_STAGE_GEOMETRY_BIT@, and the identified+--     entry point writes to @Layer@ for any primitive, it /must/ write the+--     same value to @Layer@ for all vertices of a given primitive+--+-- -   If @stage@ is @VK_SHADER_STAGE_GEOMETRY_BIT@, and the identified+--     entry point writes to @ViewportIndex@ for any primitive, it /must/+--     write the same value to @ViewportIndex@ for all vertices of a given+--     primitive+--+-- -   If @stage@ is @VK_SHADER_STAGE_FRAGMENT_BIT@, the identified entry+--     point /must/ not include any output variables in its interface+--     decorated with @CullDistance@+--+-- -   If @stage@ is @VK_SHADER_STAGE_FRAGMENT_BIT@, and the identified+--     entry point writes to @FragDepth@ in any execution path, it /must/+--     write to @FragDepth@ in all execution paths+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   @stage@ /must/ be a valid 'VkShaderStageFlagBits' value+--+-- -   @module@ /must/ be a valid @VkShaderModule@ handle+--+-- -   @pName@ /must/ be a null-terminated UTF-8 string+--+-- -   If @pSpecializationInfo@ is not @NULL@, @pSpecializationInfo@ /must/+--     be a valid pointer to a valid @VkSpecializationInfo@ structure+--+-- = See Also+-- #_see_also#+--+-- 'VkComputePipelineCreateInfo', 'VkGraphicsPipelineCreateInfo',+-- 'VkPipelineShaderStageCreateFlags',+-- 'Graphics.Vulkan.Core10.Shader.VkShaderModule', 'VkShaderStageFlagBits',+-- 'VkSpecializationInfo', 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineShaderStageCreateInfo = VkPipelineShaderStageCreateInfo+  { -- No documentation found for Nested "VkPipelineShaderStageCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineShaderStageCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineShaderStageCreateInfo" "vkFlags"+  vkFlags :: VkPipelineShaderStageCreateFlags+  , -- No documentation found for Nested "VkPipelineShaderStageCreateInfo" "vkStage"+  vkStage :: VkShaderStageFlagBits+  , -- No documentation found for Nested "VkPipelineShaderStageCreateInfo" "vkModule"+  vkModule :: VkShaderModule+  , -- No documentation found for Nested "VkPipelineShaderStageCreateInfo" "vkPName"+  vkPName :: Ptr CChar+  , -- No documentation found for Nested "VkPipelineShaderStageCreateInfo" "vkPSpecializationInfo"+  vkPSpecializationInfo :: Ptr VkSpecializationInfo+  }+  deriving (Eq, Show)++instance Storable VkPipelineShaderStageCreateInfo where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkPipelineShaderStageCreateInfo <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 20)+                                             <*> peek (ptr `plusPtr` 24)+                                             <*> peek (ptr `plusPtr` 32)+                                             <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineShaderStageCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineShaderStageCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineShaderStageCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkStage (poked :: VkPipelineShaderStageCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkModule (poked :: VkPipelineShaderStageCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPName (poked :: VkPipelineShaderStageCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPSpecializationInfo (poked :: VkPipelineShaderStageCreateInfo))+-- | VkComputePipelineCreateInfo - Structure specifying parameters of a newly+-- created compute pipeline+--+-- = Description+-- #_description#+--+-- The parameters @basePipelineHandle@ and @basePipelineIndex@ are+-- described in more detail in+-- <{html_spec_relative}#pipelines-pipeline-derivatives Pipeline Derivatives>.+--+-- @stage@ points to a structure of type @VkPipelineShaderStageCreateInfo@.+--+-- == Valid Usage+--+-- -   If @flags@ contains the @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag,+--     and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be a+--     valid handle to a compute @VkPipeline@+--+-- -   If @flags@ contains the @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag,+--     and @basePipelineHandle@ is+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @basePipelineIndex@ /must/ be a valid index into the calling+--     command’s @pCreateInfos@ parameter+--+-- -   If @flags@ contains the @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag,+--     and @basePipelineIndex@ is not -1, @basePipelineHandle@ /must/ be+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   If @flags@ contains the @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag,+--     and @basePipelineHandle@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @basePipelineIndex@ /must/ be -1+--+-- -   The @stage@ member of @stage@ /must/ be+--     @VK_SHADER_STAGE_COMPUTE_BIT@+--+-- -   The shader code for the entry point identified by @stage@ and the+--     rest of the state identified by this structure /must/ adhere to the+--     pipeline linking rules described in the+--     <{html_spec_relative}#interfaces Shader Interfaces> chapter+--+-- -   @layout@ /must/ be+--     <{html_spec_relative}#descriptorsets-pipelinelayout-consistency consistent>+--     with the layout of the compute shader specified in @stage@+--+-- -   The number of resources in @layout@ accessible to the compute shader+--     stage /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxPerStageResources@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be a valid combination of 'VkPipelineCreateFlagBits'+--     values+--+-- -   @stage@ /must/ be a valid @VkPipelineShaderStageCreateInfo@+--     structure+--+-- -   @layout@ /must/ be a valid @VkPipelineLayout@ handle+--+-- -   Both of @basePipelineHandle@, and @layout@ that are valid handles+--     /must/ have been created, allocated, or retrieved from the same+--     @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'VkPipeline', 'VkPipelineCreateFlags', 'VkPipelineLayout',+-- 'VkPipelineShaderStageCreateInfo',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateComputePipelines'+data VkComputePipelineCreateInfo = VkComputePipelineCreateInfo+  { -- No documentation found for Nested "VkComputePipelineCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkComputePipelineCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkComputePipelineCreateInfo" "vkFlags"+  vkFlags :: VkPipelineCreateFlags+  , -- No documentation found for Nested "VkComputePipelineCreateInfo" "vkStage"+  vkStage :: VkPipelineShaderStageCreateInfo+  , -- No documentation found for Nested "VkComputePipelineCreateInfo" "vkLayout"+  vkLayout :: VkPipelineLayout+  , -- No documentation found for Nested "VkComputePipelineCreateInfo" "vkBasePipelineHandle"+  vkBasePipelineHandle :: VkPipeline+  , -- No documentation found for Nested "VkComputePipelineCreateInfo" "vkBasePipelineIndex"+  vkBasePipelineIndex :: Int32+  }+  deriving (Eq, Show)++instance Storable VkComputePipelineCreateInfo where+  sizeOf ~_ = 96+  alignment ~_ = 8+  peek ptr = VkComputePipelineCreateInfo <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+                                         <*> peek (ptr `plusPtr` 24)+                                         <*> peek (ptr `plusPtr` 72)+                                         <*> peek (ptr `plusPtr` 80)+                                         <*> peek (ptr `plusPtr` 88)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkComputePipelineCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkComputePipelineCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkComputePipelineCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkStage (poked :: VkComputePipelineCreateInfo))+                *> poke (ptr `plusPtr` 72) (vkLayout (poked :: VkComputePipelineCreateInfo))+                *> poke (ptr `plusPtr` 80) (vkBasePipelineHandle (poked :: VkComputePipelineCreateInfo))+                *> poke (ptr `plusPtr` 88) (vkBasePipelineIndex (poked :: VkComputePipelineCreateInfo))+-- | VkVertexInputBindingDescription - Structure specifying vertex input+-- binding description+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @binding@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxVertexInputBindings@+--+-- -   @stride@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxVertexInputBindingStride@+--+-- == Valid Usage (Implicit)+--+-- -   @inputRate@ /must/ be a valid 'VkVertexInputRate' value+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineVertexInputStateCreateInfo', 'VkVertexInputRate'+data VkVertexInputBindingDescription = VkVertexInputBindingDescription+  { -- No documentation found for Nested "VkVertexInputBindingDescription" "vkBinding"+  vkBinding :: Word32+  , -- No documentation found for Nested "VkVertexInputBindingDescription" "vkStride"+  vkStride :: Word32+  , -- No documentation found for Nested "VkVertexInputBindingDescription" "vkInputRate"+  vkInputRate :: VkVertexInputRate+  }+  deriving (Eq, Show)++instance Storable VkVertexInputBindingDescription where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkVertexInputBindingDescription <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 4)+                                             <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkBinding (poked :: VkVertexInputBindingDescription))+                *> poke (ptr `plusPtr` 4) (vkStride (poked :: VkVertexInputBindingDescription))+                *> poke (ptr `plusPtr` 8) (vkInputRate (poked :: VkVertexInputBindingDescription))+-- | VkVertexInputAttributeDescription - Structure specifying vertex input+-- attribute description+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @location@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxVertexInputAttributes@+--+-- -   @binding@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxVertexInputBindings@+--+-- -   @offset@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxVertexInputAttributeOffset@+--+-- -   @format@ /must/ be allowed as a vertex buffer format, as specified+--     by the @VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT@ flag in+--     @VkFormatProperties@::@bufferFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@+--+-- == Valid Usage (Implicit)+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'VkPipelineVertexInputStateCreateInfo'+data VkVertexInputAttributeDescription = VkVertexInputAttributeDescription+  { -- No documentation found for Nested "VkVertexInputAttributeDescription" "vkLocation"+  vkLocation :: Word32+  , -- No documentation found for Nested "VkVertexInputAttributeDescription" "vkBinding"+  vkBinding :: Word32+  , -- No documentation found for Nested "VkVertexInputAttributeDescription" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkVertexInputAttributeDescription" "vkOffset"+  vkOffset :: Word32+  }+  deriving (Eq, Show)++instance Storable VkVertexInputAttributeDescription where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek ptr = VkVertexInputAttributeDescription <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 4)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 12)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkLocation (poked :: VkVertexInputAttributeDescription))+                *> poke (ptr `plusPtr` 4) (vkBinding (poked :: VkVertexInputAttributeDescription))+                *> poke (ptr `plusPtr` 8) (vkFormat (poked :: VkVertexInputAttributeDescription))+                *> poke (ptr `plusPtr` 12) (vkOffset (poked :: VkVertexInputAttributeDescription))+-- | VkPipelineVertexInputStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline vertex input state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @vertexBindingDescriptionCount@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxVertexInputBindings@+--+-- -   @vertexAttributeDescriptionCount@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxVertexInputAttributes@+--+-- -   For every @binding@ specified by each element of+--     @pVertexAttributeDescriptions@, a @VkVertexInputBindingDescription@+--     /must/ exist in @pVertexBindingDescriptions@ with the same value of+--     @binding@+--+-- -   All elements of @pVertexBindingDescriptions@ /must/ describe+--     distinct binding numbers+--+-- -   All elements of @pVertexAttributeDescriptions@ /must/ describe+--     distinct attribute locations+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPipelineVertexInputDivisorStateCreateInfoEXT'+--+-- -   @flags@ /must/ be @0@+--+-- -   If @vertexBindingDescriptionCount@ is not @0@,+--     @pVertexBindingDescriptions@ /must/ be a valid pointer to an array+--     of @vertexBindingDescriptionCount@ valid+--     @VkVertexInputBindingDescription@ structures+--+-- -   If @vertexAttributeDescriptionCount@ is not @0@,+--     @pVertexAttributeDescriptions@ /must/ be a valid pointer to an array+--     of @vertexAttributeDescriptionCount@ valid+--     @VkVertexInputAttributeDescription@ structures+--+-- = See Also+-- #_see_also#+--+-- 'VkGraphicsPipelineCreateInfo', 'VkPipelineVertexInputStateCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkVertexInputAttributeDescription', 'VkVertexInputBindingDescription'+data VkPipelineVertexInputStateCreateInfo = VkPipelineVertexInputStateCreateInfo+  { -- No documentation found for Nested "VkPipelineVertexInputStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineVertexInputStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineVertexInputStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineVertexInputStateCreateFlags+  , -- No documentation found for Nested "VkPipelineVertexInputStateCreateInfo" "vkVertexBindingDescriptionCount"+  vkVertexBindingDescriptionCount :: Word32+  , -- No documentation found for Nested "VkPipelineVertexInputStateCreateInfo" "vkPVertexBindingDescriptions"+  vkPVertexBindingDescriptions :: Ptr VkVertexInputBindingDescription+  , -- No documentation found for Nested "VkPipelineVertexInputStateCreateInfo" "vkVertexAttributeDescriptionCount"+  vkVertexAttributeDescriptionCount :: Word32+  , -- No documentation found for Nested "VkPipelineVertexInputStateCreateInfo" "vkPVertexAttributeDescriptions"+  vkPVertexAttributeDescriptions :: Ptr VkVertexInputAttributeDescription+  }+  deriving (Eq, Show)++instance Storable VkPipelineVertexInputStateCreateInfo where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkPipelineVertexInputStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                  <*> peek (ptr `plusPtr` 8)+                                                  <*> peek (ptr `plusPtr` 16)+                                                  <*> peek (ptr `plusPtr` 20)+                                                  <*> peek (ptr `plusPtr` 24)+                                                  <*> peek (ptr `plusPtr` 32)+                                                  <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineVertexInputStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineVertexInputStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineVertexInputStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkVertexBindingDescriptionCount (poked :: VkPipelineVertexInputStateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPVertexBindingDescriptions (poked :: VkPipelineVertexInputStateCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkVertexAttributeDescriptionCount (poked :: VkPipelineVertexInputStateCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPVertexAttributeDescriptions (poked :: VkPipelineVertexInputStateCreateInfo))+-- | VkPipelineInputAssemblyStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline input assembly state+--+-- = Description+-- #_description#+--+-- Restarting the assembly of primitives discards the most recent index+-- values if those elements formed an incomplete primitive, and restarts+-- the primitive assembly using the subsequent indices, but only assembling+-- the immediately following element through the end of the originally+-- specified elements. The primitive restart index value comparison is+-- performed before adding the @vertexOffset@ value to the index value.+--+-- == Valid Usage+--+-- -   If @topology@ is @VK_PRIMITIVE_TOPOLOGY_POINT_LIST@,+--     @VK_PRIMITIVE_TOPOLOGY_LINE_LIST@,+--     @VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST@,+--     @VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY@,+--     @VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY@ or+--     @VK_PRIMITIVE_TOPOLOGY_PATCH_LIST@, @primitiveRestartEnable@ /must/+--     be @VK_FALSE@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, @topology@ /must/ not be any of+--     @VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY@,+--     @VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY@,+--     @VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY@ or+--     @VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, @topology@ /must/ not be+--     @VK_PRIMITIVE_TOPOLOGY_PATCH_LIST@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   @topology@ /must/ be a valid 'VkPrimitiveTopology' value+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkGraphicsPipelineCreateInfo',+-- 'VkPipelineInputAssemblyStateCreateFlags', 'VkPrimitiveTopology',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineInputAssemblyStateCreateInfo = VkPipelineInputAssemblyStateCreateInfo+  { -- No documentation found for Nested "VkPipelineInputAssemblyStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineInputAssemblyStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineInputAssemblyStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineInputAssemblyStateCreateFlags+  , -- No documentation found for Nested "VkPipelineInputAssemblyStateCreateInfo" "vkTopology"+  vkTopology :: VkPrimitiveTopology+  , -- No documentation found for Nested "VkPipelineInputAssemblyStateCreateInfo" "vkPrimitiveRestartEnable"+  vkPrimitiveRestartEnable :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPipelineInputAssemblyStateCreateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPipelineInputAssemblyStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                    <*> peek (ptr `plusPtr` 8)+                                                    <*> peek (ptr `plusPtr` 16)+                                                    <*> peek (ptr `plusPtr` 20)+                                                    <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineInputAssemblyStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineInputAssemblyStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineInputAssemblyStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkTopology (poked :: VkPipelineInputAssemblyStateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPrimitiveRestartEnable (poked :: VkPipelineInputAssemblyStateCreateInfo))+-- | VkPipelineTessellationStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline tessellation state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @patchControlPoints@ /must/ be greater than zero and less than or+--     equal to @VkPhysicalDeviceLimits@::@maxTessellationPatchSize@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPipelineTessellationDomainOriginStateCreateInfo'+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkGraphicsPipelineCreateInfo',+-- 'VkPipelineTessellationStateCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineTessellationStateCreateInfo = VkPipelineTessellationStateCreateInfo+  { -- No documentation found for Nested "VkPipelineTessellationStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineTessellationStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineTessellationStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineTessellationStateCreateFlags+  , -- No documentation found for Nested "VkPipelineTessellationStateCreateInfo" "vkPatchControlPoints"+  vkPatchControlPoints :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPipelineTessellationStateCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPipelineTessellationStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                   <*> peek (ptr `plusPtr` 8)+                                                   <*> peek (ptr `plusPtr` 16)+                                                   <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineTessellationStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineTessellationStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineTessellationStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkPatchControlPoints (poked :: VkPipelineTessellationStateCreateInfo))+-- | VkPipelineViewportStateCreateInfo - Structure specifying parameters of a+-- newly created pipeline viewport state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-multiViewport multiple viewports>+--     feature is not enabled, @viewportCount@ /must/ be @1@+--+-- -   If the+--     <{html_spec_relative}#features-features-multiViewport multiple viewports>+--     feature is not enabled, @scissorCount@ /must/ be @1@+--+-- -   @viewportCount@ /must/ be between @1@ and+--     @VkPhysicalDeviceLimits@::@maxViewports@, inclusive+--+-- -   @scissorCount@ /must/ be between @1@ and+--     @VkPhysicalDeviceLimits@::@maxViewports@, inclusive+--+-- -   @scissorCount@ and @viewportCount@ /must/ be identical+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateInfoNV'+--     or+--     'Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- -   @viewportCount@ /must/ be greater than @0@+--+-- -   @scissorCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkGraphicsPipelineCreateInfo', 'VkPipelineViewportStateCreateFlags',+-- 'VkRect2D', 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkViewport'+data VkPipelineViewportStateCreateInfo = VkPipelineViewportStateCreateInfo+  { -- No documentation found for Nested "VkPipelineViewportStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineViewportStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineViewportStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineViewportStateCreateFlags+  , -- No documentation found for Nested "VkPipelineViewportStateCreateInfo" "vkViewportCount"+  vkViewportCount :: Word32+  , -- No documentation found for Nested "VkPipelineViewportStateCreateInfo" "vkPViewports"+  vkPViewports :: Ptr VkViewport+  , -- No documentation found for Nested "VkPipelineViewportStateCreateInfo" "vkScissorCount"+  vkScissorCount :: Word32+  , -- No documentation found for Nested "VkPipelineViewportStateCreateInfo" "vkPScissors"+  vkPScissors :: Ptr VkRect2D+  }+  deriving (Eq, Show)++instance Storable VkPipelineViewportStateCreateInfo where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkPipelineViewportStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+                                               <*> peek (ptr `plusPtr` 20)+                                               <*> peek (ptr `plusPtr` 24)+                                               <*> peek (ptr `plusPtr` 32)+                                               <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineViewportStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineViewportStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineViewportStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkViewportCount (poked :: VkPipelineViewportStateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPViewports (poked :: VkPipelineViewportStateCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkScissorCount (poked :: VkPipelineViewportStateCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPScissors (poked :: VkPipelineViewportStateCreateInfo))+-- | VkPipelineRasterizationStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline rasterization state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-depthClamp depth clamping>+--     feature is not enabled, @depthClampEnable@ /must/ be @VK_FALSE@+--+-- -   If the+--     <{html_spec_relative}#features-features-fillModeNonSolid non-solid fill modes>+--     feature is not enabled, @polygonMode@ /must/ be+--     @VK_POLYGON_MODE_FILL@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateInfoEXT'+--     or+--     'Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkPipelineRasterizationStateRasterizationOrderAMD'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- -   @polygonMode@ /must/ be a valid 'VkPolygonMode' value+--+-- -   @cullMode@ /must/ be a valid combination of 'VkCullModeFlagBits'+--     values+--+-- -   @frontFace@ /must/ be a valid 'VkFrontFace' value+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkCullModeFlags', 'VkFrontFace',+-- 'VkGraphicsPipelineCreateInfo',+-- 'VkPipelineRasterizationStateCreateFlags', 'VkPolygonMode',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineRasterizationStateCreateInfo = VkPipelineRasterizationStateCreateInfo+  { -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineRasterizationStateCreateFlags+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkDepthClampEnable"+  vkDepthClampEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkRasterizerDiscardEnable"+  vkRasterizerDiscardEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkPolygonMode"+  vkPolygonMode :: VkPolygonMode+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkCullMode"+  vkCullMode :: VkCullModeFlags+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkFrontFace"+  vkFrontFace :: VkFrontFace+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkDepthBiasEnable"+  vkDepthBiasEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkDepthBiasConstantFactor"+  vkDepthBiasConstantFactor :: CFloat+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkDepthBiasClamp"+  vkDepthBiasClamp :: CFloat+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkDepthBiasSlopeFactor"+  vkDepthBiasSlopeFactor :: CFloat+  , -- No documentation found for Nested "VkPipelineRasterizationStateCreateInfo" "vkLineWidth"+  vkLineWidth :: CFloat+  }+  deriving (Eq, Show)++instance Storable VkPipelineRasterizationStateCreateInfo where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkPipelineRasterizationStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                    <*> peek (ptr `plusPtr` 8)+                                                    <*> peek (ptr `plusPtr` 16)+                                                    <*> peek (ptr `plusPtr` 20)+                                                    <*> peek (ptr `plusPtr` 24)+                                                    <*> peek (ptr `plusPtr` 28)+                                                    <*> peek (ptr `plusPtr` 32)+                                                    <*> peek (ptr `plusPtr` 36)+                                                    <*> peek (ptr `plusPtr` 40)+                                                    <*> peek (ptr `plusPtr` 44)+                                                    <*> peek (ptr `plusPtr` 48)+                                                    <*> peek (ptr `plusPtr` 52)+                                                    <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkDepthClampEnable (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkRasterizerDiscardEnable (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 28) (vkPolygonMode (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkCullMode (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 36) (vkFrontFace (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkDepthBiasEnable (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 44) (vkDepthBiasConstantFactor (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkDepthBiasClamp (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 52) (vkDepthBiasSlopeFactor (poked :: VkPipelineRasterizationStateCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkLineWidth (poked :: VkPipelineRasterizationStateCreateInfo))+-- | VkPipelineMultisampleStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline multisample state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-sampleRateShading sample rate shading>+--     feature is not enabled, @sampleShadingEnable@ /must/ be @VK_FALSE@+--+-- -   If the+--     <{html_spec_relative}#features-features-alphaToOne alpha to one>+--     feature is not enabled, @alphaToOneEnable@ /must/ be @VK_FALSE@+--+-- -   @minSampleShading@ /must/ be in the range [0,1]+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV',+--     'Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV',+--     or+--     'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- -   @rasterizationSamples@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+--     value+--+-- -   If @pSampleMask@ is not @NULL@, @pSampleMask@ /must/ be a valid+--     pointer to an array of+--     <<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhsAAABOCAYAAACJ+9TQAAAABmJLR0QA/wD/AP+gvaeTAAAXDElEQVR4nO2defQdRZXHP9lIgETCJsoioCDKOrIYFZVBGBHFDZ0zjuOGy8giMw5HFBUFdBxRYWYU0QHR8bgrLqgQFVEYgqKMkQASkW2CAmGHRJIQEvLmj/vad7t//bqrenu/l3w/5/TJe79U3apXfbvqdtWtWyCEEEKIYXwP6OVcZ4+yUuPG1FFXQIiKzAK+BCwHvgNMGW111lvUzuXMAF4CfBa4ErgLWAWsBu4DrsXa7gPAIcAmo6mmqMhs4A/9a637+8LRVEeI5nkacGr/+peR1mTy8XHSbxl7j7Y6I6ctXVE7F/Nm4HbSbbQMWALciRkc2TfiVcBFwFO6r66owUzgUQb3cZ/RVkeI5jiJgWJfMuK6TDZ+xqBtHkBvi23pito5n1nAtxi0zW3AccD2mXTTgX2Bc4F1pI2OJ3VVWdEIB5A2GKePtjpCNMe3GSj36SOuy2TjxVgHvxB4zojrMhloS1fUzvl8jUF7XwzMCchzgstzb3tVEy1xNIP79+sR10WIRvk/Bsr96hHXRUxupCvd8QoGbX0PsFlgvhmYD0cP+HE7VRMt8jnkHCrWQ7YkPeW682irIyYx0pVu+RWDtv63yLyX9vN9pOlKidb5LYP7/uYR12XsmKxrTlOB5wK7Ao/HHK5uxaZyY6YfpwJ7AHsCTwQ2Bh7C3gKvwDzsm2AWtp63O7AF5rF8N3ANcB22VhvLfu7zA1idm2YOcBC2drxZv5xbgMsxR6g2aOrejgtd6GAXutIkmwDPA3bCnpfEofIyYGVLZc4CXgDsgjn6/RHzbbk/Us42wDPd9wWR+ZcBK4D/jczn6apfy2M2tqNmF2zQvQa7b48NSXsosFv//28Cfkp79zhhK6xf2w6717dhS10P1ZA5E2vvhKZ2orTZB7cxLo0NG2M/OG/P8gHANOCfMeXIS/PtgDI2Al4FnI/duDw5PeAR4CzqObxtDXwK60CGlXMP5hy2f4C8FxfIybt+UrHeewHfJe1Z7a/lwMnYtG8obd/bMvkxvGyInJDrlwHyu9DBtnSlyXbOsjvwdex358lfAZwJbBohs6i+z8QG5vdghmxeeW+J/A2HZWT8dWT+qrStUyHt+AHgwZz/X4wZFAlTgPdi/Ug27VLgwMi6JQzT+ZVY/7IDFhNjTU6aVcApVA/3sH9GVt0X9Tb64ISmx6WxZG/g5v51B4Mf/ihmef24/30Ntp1sJekGOimgjFdm8swH3opZ2IdiTlo3uv9fgClqLPOw/fQ9bB32TODvMCv1cMxJ78+unDsCZB7NoH1Wubz3ur/7692RdZ4KnMbAK/5O4INYB3oIcGL/b0m53yP84Wz73g6TvwZ764jhtH7e28lvV389nKnnyQHyu9DBtnSlyXZOmIK122MMOrqPAkcABwPHANe7sn6DvRXXre+WWNsnA9Ifmah3jwF/FfFbXpvJ39VySNs6VdaOyfO7HGvH7IB+IzYwbgp8n3Sbr8qkvRszbmLxOu8NrisxPXoQm734Btb/foa0L1MP+I8K5SZlJzLqOIe22QdDO+PS2HMUgx+8CPgh9sOPYtDRTMUaJ0l3aIDcf2Wg6C8ckmYT0uuu/xhZ9x2x6dce8DtsajWP/RlYrj+ILMPPABwZmTePaaR3LMwn34N+O2wwSNIdW6Gstu5tnvyrK9Tvwn7eHUvSPZ/04PQlwoJadaGDnqZ1JaFuO4Pd5286OT/BjM8sm2JGRpLuKxXK8vW9Ftuauhh7I07eRGcAx7t0PaxDDuXwTN5HMWOp7QCJXepUth3Px5YNDmKg/5ths1S+LQ7H2vxW4OUM2nxj4IxM2ldVrFvC552sy7G3+HOBx2XSTQe+mim7ysxKE86hbffBXYxLY8mnGTTmKuAGYNucdJu6dHmdVJYf9dP+Q0m6Fzm5F4dV+S945T2sJO1F/XSnRMjfivTDUTYohnCuk3cVxW+p73Npb6lQVlv3Nk/+eRXqtxSz+ovYn/Q05AWET512oYMJbehKQt12BjiHtN7NKkj7Qpd2HeaXEENW765i4uCTcLlLe1FEGXOx5Zde5roeMzq2jKxzKF3qVLYdF5C/LDOX9AzHYmyG4/E5aacyeOPuAe+vWLeERaTb/z8L0s4hPRPyzQrlNeEc2nYf3Pa4NLZcyaBhVgNPH5JuKtbRfz5Q7kXYm3TZm8bOxN9MsDdzv+ZcNlWZWOBHRJTh14XLBsUQ/BTsWso78QNJP8g7RZbX1r3Nk39MZN5tGbxhD2N3BlsUe5gjYcwSQts66GlaVzx12hnSW0TXMlwPEjYiHXEzdkDy9V1BseHl34xjt6H6eBnZaw02yOcF+KpDlzrl2/Fh7E17GD566jrSzrNZvIFXZ5CbRdrI+R3lvg0+AFvsc7IR9SOHtt0HdzEujSXTSE9PnzWCOuzryr8tIt9zSStBWcjhbbFQ0jGD1Xud/KpOoAmzSK/BfikgT+JpnlwxCtn2vc3KL+rc8tgY8yrPm2kB66x9e/2KcP+BWKrqoKdJXfHUbeeZpNvxy4H5/ujyfD+ivGx9P1GS/osu7dciykk4jon+H3nXFdibcBVHvyrU1alsO36sJL2f7r+gJK1f4vmnCnVLmEe6jUPiymTD7j8hory6zqFd9MFdjEtjyV6kG6bsjacN3ki6QwjlYNJ1X0jz50X4db3YffxZ3ky6vvMC8jyd+Ic5oe176+WvoXhaPpYnYs5nifxrgc0blJ+lqg56mtQVT912zurdcwPzeWPj5xHlZfVut+LkXOzSnhpRjueJmFFzd6bsvOtWutm5Ulensu341IK0m5IOwf7SEtl+GeVFFeqWcKyTcy9hhtxHSP+uHSPKe7vLV8U5tIs+uItxqRajirPh4wLcDPy+YflbYY5yz8IelrmYBeed+/wg8ocI2b/FphaTt919sfXDSzCL9QfU3+fu26fufm7vJHYbYQ9Ldtq0F1Fe2/fWy78emzpsgi2wASh5I7gZ8yF4sKK8NnXQ06SuDJNbpZ293t0B/CIwX2g0ziy+vjdR3p67u8/XVixzKbZ74L1YZ/9KzDEyb9ZsZyzGxBFUn4HqQqey7XhjQdo9XNmPUnwmz1akHRartjmk6/gjzBguY27me0ievPJ+E5EvoYs+uItxaSw5i4EFFrteX8TmmHPTsL3Lw67YHRevLSjjEWz/dFXLfYuMvJ0qyklkJdsNe9iWpxsCLj/l18M6t1Daurdtyp+NdQCJ3Nup3u5d6SA0qytZ6rRzVu9Cd5ZsTfr3/HdEmTH1zUZc3SminDKmAM/GdCAvzsQSwnY0ebrUKd+OZU7Bx7i0ZbMo3rforgr18njn0NA4KT9xeR4h7h4sdHljnUO77IPbHJfGll8yaISjG5L5FMwS9w/1sVikyuwUcHZdMmRaK8szsC2UXpGy1wLiT3b8G5e/rsOfd9Crc8Wsb7Zxb4fJr9KZZpmFTdcnMu+l+tJP1zrYpK5kqdPOWb0LdS49KJPvfRFl+vqWled3vcRGEI1hLvAFJj5Pe0XI6FqnYp7f81zaot0gkN5dEbP7J0vWOTTUWfNPLk/MrErWaTnWObTrPritcWksmUZ661jdqIRg27IWO5lXUnwKY5Pr/k/CgrLcSv6NvZU4B0N/VHhdh78TM3WJdfKLpY17WyS/SmfqmY5NLybylpGeMo1hFDrYpK546rbzu0nr3fMC852cyffswHzZ+pbpuXeqrbo9NIafkf5dBwfm61qnYp/fq13a15ek/Y5L+6HIenm8c+hqwlwBdiLd/jFO63WdQ7vugxOaHpfGkj1JPxBNeMO+JyOz7CAqH7TmmgbKB5uWO4S041lyvT1CzvkuX12HPz8l2mPiumXTtHFvi+TXMRKnkt6XvhIL4lWVUehgk7riqdvOPk5DD3OkDOFSl+d+wiNgxtbXO9V+NLCMaVjnXEXnsgNO6MxG1zoV8/zOJD1lX7aVc4lL+/IKdUvwzqHXB+Z5C+n2L3Nk9dR1Du26D87S1LhUG79n+/vY/t+Q66s1ysw6nq2uISvhre7zfMoPoqrr8JNHD3uDeSETp393iZDTlsPfWuodRBRCG/d2mPzF1HMOPRtb4wTrWF+NxQGoyih0sAvn0LrtDGF69wTSxt555B/ulUesM2uVdnsbtt5+bmB6j98tsYJwx82udSrm+d2Hwe9aifkZDGNL0rs/6uiqr+OdgXle4z4vJS6uSpNjRRd9cJamxqWEpxBuJ6zFtZ83NqZFXlVpuoPcjnSjhQwYfhteTB1OAN4RkO4M0g9q6Hr65qTfXuq2j1fsmBP+TsDOF/hUZHltDX5Nyz+dwXr0OmwKeP6QtDtj665PLpDXpQ4mNK0rnrrtvCzzPcQZ720M+qNHsNmRUGLquwVph9DQ35eUUcWj3y8HXULYaZ6j0KmYdvRpF1FsGPq092AO2FXxskKM0d2x034TPkv1nShV2rSLPrjtcckzhTg74S/PftH601qGe3XXOR656QFpx8z3smPK9ybt5BNah22xMxRuorwjzBpklwaW4Y8wTo7d9hyCTcHeQ1ggoqvc542w6eylJXl2wwbjGZgSxzAOxsZ7+lfCMRSHL34H1g4vw9Y58+hKBz1N64qnbjtflfm+PcVbKLcA3um+n4Y59IVSdZB8kPLZgmy+2KigO5MOHf3JwHyj0Kmq7dhk2iJmkV6u2SEgz0cYGLF/Iu4cnI2of6x8231wF+OSZxl2BEEe+xC4czE5nCq5Hq5QkTKmkj5Fs66DH9iJjb7eRacwzsC2aFVZj35pP89yyp2EXufKiDHMXl+S73f9/wudcZhN+kyAsoOZNumXm6xPxjhDtXFvi+THbMdN8Cc39rC19DIu66cdFnEUutNBT9O6ktBEOz8Oe6NLZBxfkHYK6VDSP6NdvfNOtT8NLMP7JzzM8AOusmyMxRdJyvtuYD7oXqdi29E7h76xJK33kflwZL082cihPYqDjvnnfS3l54Vk2c/lr3qsfNt9cBfjUijvYuL9yT3CvgtjYw/SD0SVY4azzCB9Mx/AtoVl2YLB4TNVnKiSY8l7pN/CsjyDwbkaK/rfQ3mDK2NB5v+OYPDQlEVH9HjntLsYvuVpu36ZPSzwTMhbg6eNe9uk/L8nvR0s5GjwKZglX/Ym0pUOetrQFWjuPvodH3eS7yQ6k4mHUxXttmiivt6p9vTAMvyOhB62PbTovBCA55COB7GI4YfC5dG1TsW0Y9Y5dM+CtJA+5v0VFeqW4J1Dr8ZmKn7BxCi/0zCj0j/vVcKj13UOTWizD+5iXApl5MbGPAaBSvxe57Wkg5gUvf2U4ZUwsfLOwhys3o6t0z2ETYNdQPo3JuW/qaSMH2bKOB+zFJ+PxTs4CntDSx7Ce4kPT7yPk78aU55DsK2ESYCgUyNlTiF9FPQD2HHVL8bWeP8W+C/M+S3p8EP3YLd9b18XIP/CADkHkN6bv46wwDo39tOHlNGFDnqa1JWm2tkzlfTAfgfW6R6CvWGeRDo0/BcIN2xC9O6DLv0Z7u+rXPq73N+LzpI4kolxC1ZjTvUnY/4mb8IGtE8zmFVKrq9TbZth2zoV044z+r/rBuyAN1+vG/t/90HAfuRk+LRL+n9bRPmhcln84Xln939bD9u59EVsR9Z5pA+He5S4QFyfcfX2hzEuJ1+3QmizD+5iXApl5MZG0QmJ/jqyZjnHYWuwebLvw9bpZ5EOWuOvF0wUmWIHTJmzD1peWf+OheetwieHyH2YtK9BDFOxjtA/PNlrMdaBxUwVtn1v8wIiZa8Qf4T3B9Zz2HVaYH3b1sEsTelKU+2cZRqmI/cPkfkYtpQRu+U4RO/8dPXikrQrKXd63x4z5C4lfbrmsGsZdvhc3eXENnUqph33DUj78X7a2RQHleox0a8nBD9TlBgQx2NtnZW/DjN4yrbkZvFn84ToViht9cFdjUshFBob3kv8QuAl7vsKxi/ox2wsCuFTsbek+7EtXFcSvo0uhF0w57sdsGnfNdjNvA6b3ltbU/7TsA54K8wivQVby64b2346Zknvhm1HW41NcS+k2IFPhNOVDia0pStNMh2r466Y3i3H3j4vx97yxo1ZWLvvim3ZnY31pX/GHHIXY2/AMbseiuhapyYjs7D2TQbifRhEAp0NHIrNBiQnrF7W/3ey0WYf3Pa4VMa7mHja8gHkbBnuwmdDCCGEiMU7h65kdIeIiuEUzmzErpkJIYQQXeO3z15D+2/pomFkbAghhJjstBH1WXSIjA0hhBCTnbYDBoqWkbEhhBBisrENtk02ufzhdae7v8fGkREjQk42QgghJhv7MTFke0ISwXU1w48QEJMMGRtCCCEmG/MJO8BPjAlaRhFCCCFEq8jYEEIIIUSryNgQQgghRKvI2BBCCCFEq8jYEEIIIUSrtLkb5VTglBblCyGEEKI5TsPG7sbRzIYQQgghWkXGhhBCCCFaRcaGEEIIIVpFxoYQQgghWqVtB9FTW5QvhBBCiDFAMxtCCCGEaBUZG0IIIYRoFRkbQgghhGgVGRtCCCGEaBUZG0IIIYRolTZ3owghJi/bAwcBBwJ7AbsAc4EpwDLgRuAK4AvATZGy9wReCszry94amAU8BCwBftGXe13N3yCEGEMuBHrueni01RFCtMAbgYWkn/UHgSuBS4BFwBr3f2uA9wfI3Qx4J/AHl/cxYDHwc+CXwJ8z5Z4LzGzmZwkhRsy7SD/fPWD/vIQyNoRY/7mBwTO+CDiMicup2wDfIt0fHFUi94cu7UrgA8BWmTQbAScB61zaL1f8HUKIyYWMDSEEAHMYDPSXABsXpJ0B3MygP7i+RPbSfrrlwDNL0n6CdF/zrLKKCyEmPYXGhhxEhdhw2BfzyVgOvBZYVZB2DXCx+74bw/uL7YAn9D8fB1xVUo9zMt9fXpJeCDHmyEFUiA2HpwH3A58H7glIv859Xpn57tmv/+/1wFcC5C7JfN8uII8QYoyRsSHEhsM5TJxVKGIP93lhQbrlwJnApdjUaRlzMt8fjKiTEGIMkbEhhMhjW2xbbMIXC9Je1r9C2SPzvcwfRAgx5shnQwiRx+mYkyjYttWQ5ZFQDnefVwMXNChbCDEJkbEhhPDMAM4AXt//vgh4BRYzoyn5b3DfzybMf0QIsZ6gra9CbHhMwyKH7g+ciEUL7WE7VT6GRf5skncw6GNuZqL/hhBiPFGcDSFELtnAXT3gt8AxwJYtlLcDFgq9B6zAtuIKIdYPFGdDCJHLOuDXwO+xwR/gGcD7gOOBTRssaybwbeBxwFrgNZhhI4TYAPC7UeYDt7vvj3RcFyFEt7zGfZ4OvACL7rk3cAoW+Otg4I6a5UwDvoFFFl0LvA4Lby6EWH9YxMSt9fLHEkLkMof0YWpX1JS3ETajkfiBvKymPCGEEEKsBxxFet31wOLkQ9kM+Glfxt3oDBQhhBBC9Hk6aWPjxAoynowF60qcTndsrHZCCCGEGHt2Im1sfCgy/8HAff283wI2abJyQgghhBh/DiRtbBwbkfc47MTYdcAHsVNmhRBCCLGeMgOL/nlYZL53EhCYJ6escxjE6DkyskwhhBBCjCH7MojUGcMCBobGHZTPTmwN/E8//W3APiXpr+2nPSCyXkIIIYSYZLwNG9Tvi8hzMOlZjRNK0u8NLOmnXQA8viT9LGyZ5VEs0JcQQgghxphkWaOHBdQqY1sGhkMPC9JTdDbKkdiSSQ84D4upUca8fvqrA9IKIYQQYpLzGwaGwzXANgVp5wG3uPRLgJ2HpJ2COX+u66d9DFuqCbmW9vN8rvKvEkIIIcSkYAoWKtgvidwPnInNSDwPOBQ7dG0+A8OhB/yYYsPkJRm5Va6jm/qhQgghhBgdc7AD1a7AZh+KBv9HgO8RtnPllBJZIZecQ4XYgNAeeCE2DOZizpy7AptjvhgrgAewU1+vw84uEUKIxvl/LD66bFuCF+cAAAAASUVORK5CYII= stem afc23f1498b2f7d63bea697fcc1fdc8e>>+--     @VkSampleMask@ values+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkGraphicsPipelineCreateInfo',+-- 'VkPipelineMultisampleStateCreateFlags',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits',+-- @VkSampleMask@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineMultisampleStateCreateInfo = VkPipelineMultisampleStateCreateInfo+  { -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineMultisampleStateCreateFlags+  , -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkRasterizationSamples"+  vkRasterizationSamples :: VkSampleCountFlagBits+  , -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkSampleShadingEnable"+  vkSampleShadingEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkMinSampleShading"+  vkMinSampleShading :: CFloat+  , -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkPSampleMask"+  vkPSampleMask :: Ptr VkSampleMask+  , -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkAlphaToCoverageEnable"+  vkAlphaToCoverageEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineMultisampleStateCreateInfo" "vkAlphaToOneEnable"+  vkAlphaToOneEnable :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPipelineMultisampleStateCreateInfo where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkPipelineMultisampleStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                  <*> peek (ptr `plusPtr` 8)+                                                  <*> peek (ptr `plusPtr` 16)+                                                  <*> peek (ptr `plusPtr` 20)+                                                  <*> peek (ptr `plusPtr` 24)+                                                  <*> peek (ptr `plusPtr` 28)+                                                  <*> peek (ptr `plusPtr` 32)+                                                  <*> peek (ptr `plusPtr` 40)+                                                  <*> peek (ptr `plusPtr` 44)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineMultisampleStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineMultisampleStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineMultisampleStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkRasterizationSamples (poked :: VkPipelineMultisampleStateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkSampleShadingEnable (poked :: VkPipelineMultisampleStateCreateInfo))+                *> poke (ptr `plusPtr` 28) (vkMinSampleShading (poked :: VkPipelineMultisampleStateCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPSampleMask (poked :: VkPipelineMultisampleStateCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkAlphaToCoverageEnable (poked :: VkPipelineMultisampleStateCreateInfo))+                *> poke (ptr `plusPtr` 44) (vkAlphaToOneEnable (poked :: VkPipelineMultisampleStateCreateInfo))+-- | VkPipelineColorBlendAttachmentState - Structure specifying a pipeline+-- color blend attachment state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-dualSrcBlend dual source blending>+--     feature is not enabled, @srcColorBlendFactor@ /must/ not be+--     @VK_BLEND_FACTOR_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_SRC1_ALPHA@, or+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA@+--+-- -   If the+--     <{html_spec_relative}#features-features-dualSrcBlend dual source blending>+--     feature is not enabled, @dstColorBlendFactor@ /must/ not be+--     @VK_BLEND_FACTOR_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_SRC1_ALPHA@, or+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA@+--+-- -   If the+--     <{html_spec_relative}#features-features-dualSrcBlend dual source blending>+--     feature is not enabled, @srcAlphaBlendFactor@ /must/ not be+--     @VK_BLEND_FACTOR_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_SRC1_ALPHA@, or+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA@+--+-- -   If the+--     <{html_spec_relative}#features-features-dualSrcBlend dual source blending>+--     feature is not enabled, @dstAlphaBlendFactor@ /must/ not be+--     @VK_BLEND_FACTOR_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR@,+--     @VK_BLEND_FACTOR_SRC1_ALPHA@, or+--     @VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA@+--+-- == Valid Usage (Implicit)+--+-- -   @srcColorBlendFactor@ /must/ be a valid 'VkBlendFactor' value+--+-- -   @dstColorBlendFactor@ /must/ be a valid 'VkBlendFactor' value+--+-- -   @colorBlendOp@ /must/ be a valid 'VkBlendOp' value+--+-- -   @srcAlphaBlendFactor@ /must/ be a valid 'VkBlendFactor' value+--+-- -   @dstAlphaBlendFactor@ /must/ be a valid 'VkBlendFactor' value+--+-- -   @alphaBlendOp@ /must/ be a valid 'VkBlendOp' value+--+-- -   @colorWriteMask@ /must/ be a valid combination of+--     'VkColorComponentFlagBits' values+--+-- = See Also+-- #_see_also#+--+-- 'VkBlendFactor', 'VkBlendOp', @VkBool32@, 'VkColorComponentFlags',+-- 'VkPipelineColorBlendStateCreateInfo'+data VkPipelineColorBlendAttachmentState = VkPipelineColorBlendAttachmentState+  { -- No documentation found for Nested "VkPipelineColorBlendAttachmentState" "vkBlendEnable"+  vkBlendEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineColorBlendAttachmentState" "vkSrcColorBlendFactor"+  vkSrcColorBlendFactor :: VkBlendFactor+  , -- No documentation found for Nested "VkPipelineColorBlendAttachmentState" "vkDstColorBlendFactor"+  vkDstColorBlendFactor :: VkBlendFactor+  , -- No documentation found for Nested "VkPipelineColorBlendAttachmentState" "vkColorBlendOp"+  vkColorBlendOp :: VkBlendOp+  , -- No documentation found for Nested "VkPipelineColorBlendAttachmentState" "vkSrcAlphaBlendFactor"+  vkSrcAlphaBlendFactor :: VkBlendFactor+  , -- No documentation found for Nested "VkPipelineColorBlendAttachmentState" "vkDstAlphaBlendFactor"+  vkDstAlphaBlendFactor :: VkBlendFactor+  , -- No documentation found for Nested "VkPipelineColorBlendAttachmentState" "vkAlphaBlendOp"+  vkAlphaBlendOp :: VkBlendOp+  , -- No documentation found for Nested "VkPipelineColorBlendAttachmentState" "vkColorWriteMask"+  vkColorWriteMask :: VkColorComponentFlags+  }+  deriving (Eq, Show)++instance Storable VkPipelineColorBlendAttachmentState where+  sizeOf ~_ = 32+  alignment ~_ = 4+  peek ptr = VkPipelineColorBlendAttachmentState <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 4)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 12)+                                                 <*> peek (ptr `plusPtr` 16)+                                                 <*> peek (ptr `plusPtr` 20)+                                                 <*> peek (ptr `plusPtr` 24)+                                                 <*> peek (ptr `plusPtr` 28)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkBlendEnable (poked :: VkPipelineColorBlendAttachmentState))+                *> poke (ptr `plusPtr` 4) (vkSrcColorBlendFactor (poked :: VkPipelineColorBlendAttachmentState))+                *> poke (ptr `plusPtr` 8) (vkDstColorBlendFactor (poked :: VkPipelineColorBlendAttachmentState))+                *> poke (ptr `plusPtr` 12) (vkColorBlendOp (poked :: VkPipelineColorBlendAttachmentState))+                *> poke (ptr `plusPtr` 16) (vkSrcAlphaBlendFactor (poked :: VkPipelineColorBlendAttachmentState))+                *> poke (ptr `plusPtr` 20) (vkDstAlphaBlendFactor (poked :: VkPipelineColorBlendAttachmentState))+                *> poke (ptr `plusPtr` 24) (vkAlphaBlendOp (poked :: VkPipelineColorBlendAttachmentState))+                *> poke (ptr `plusPtr` 28) (vkColorWriteMask (poked :: VkPipelineColorBlendAttachmentState))+-- | VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of+-- a newly created pipeline color blend state+--+-- = Description+-- #_description#+--+-- Each element of the @pAttachments@ array is a+-- 'VkPipelineColorBlendAttachmentState' structure specifying per-target+-- blending state for each individual color attachment. If the+-- <{html_spec_relative}#features-features-independentBlend independent blending>+-- feature is not enabled on the device, all+-- 'VkPipelineColorBlendAttachmentState' elements in the @pAttachments@+-- array /must/ be identical.+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-independentBlend independent blending>+--     feature is not enabled, all elements of @pAttachments@ /must/ be+--     identical+--+-- -   If the+--     <{html_spec_relative}#features-features-logicOp logic operations>+--     feature is not enabled, @logicOpEnable@ /must/ be @VK_FALSE@+--+-- -   If @logicOpEnable@ is @VK_TRUE@, @logicOp@ /must/ be a valid+--     'VkLogicOp' value+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT'+--+-- -   @flags@ /must/ be @0@+--+-- -   If @attachmentCount@ is not @0@, @pAttachments@ /must/ be a valid+--     pointer to an array of @attachmentCount@ valid+--     @VkPipelineColorBlendAttachmentState@ structures+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkGraphicsPipelineCreateInfo', 'VkLogicOp',+-- 'VkPipelineColorBlendAttachmentState',+-- 'VkPipelineColorBlendStateCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineColorBlendStateCreateInfo = VkPipelineColorBlendStateCreateInfo+  { -- No documentation found for Nested "VkPipelineColorBlendStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineColorBlendStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineColorBlendStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineColorBlendStateCreateFlags+  , -- No documentation found for Nested "VkPipelineColorBlendStateCreateInfo" "vkLogicOpEnable"+  vkLogicOpEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineColorBlendStateCreateInfo" "vkLogicOp"+  vkLogicOp :: VkLogicOp+  , -- No documentation found for Nested "VkPipelineColorBlendStateCreateInfo" "vkAttachmentCount"+  vkAttachmentCount :: Word32+  , -- No documentation found for Nested "VkPipelineColorBlendStateCreateInfo" "vkPAttachments"+  vkPAttachments :: Ptr VkPipelineColorBlendAttachmentState+  , -- No documentation found for Nested "VkPipelineColorBlendStateCreateInfo" "vkBlendConstants"+  vkBlendConstants :: Vector 4 CFloat+  }+  deriving (Eq, Show)++instance Storable VkPipelineColorBlendStateCreateInfo where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkPipelineColorBlendStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+                                                 <*> peek (ptr `plusPtr` 20)+                                                 <*> peek (ptr `plusPtr` 24)+                                                 <*> peek (ptr `plusPtr` 28)+                                                 <*> peek (ptr `plusPtr` 32)+                                                 <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineColorBlendStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineColorBlendStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineColorBlendStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkLogicOpEnable (poked :: VkPipelineColorBlendStateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkLogicOp (poked :: VkPipelineColorBlendStateCreateInfo))+                *> poke (ptr `plusPtr` 28) (vkAttachmentCount (poked :: VkPipelineColorBlendStateCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPAttachments (poked :: VkPipelineColorBlendStateCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkBlendConstants (poked :: VkPipelineColorBlendStateCreateInfo))+-- | VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a+-- newly created pipeline dynamic state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   Each element of @pDynamicStates@ /must/ be unique+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   @pDynamicStates@ /must/ be a valid pointer to an array of+--     @dynamicStateCount@ valid 'VkDynamicState' values+--+-- -   @dynamicStateCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkDynamicState', 'VkGraphicsPipelineCreateInfo',+-- 'VkPipelineDynamicStateCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineDynamicStateCreateInfo = VkPipelineDynamicStateCreateInfo+  { -- No documentation found for Nested "VkPipelineDynamicStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineDynamicStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineDynamicStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineDynamicStateCreateFlags+  , -- No documentation found for Nested "VkPipelineDynamicStateCreateInfo" "vkDynamicStateCount"+  vkDynamicStateCount :: Word32+  , -- No documentation found for Nested "VkPipelineDynamicStateCreateInfo" "vkPDynamicStates"+  vkPDynamicStates :: Ptr VkDynamicState+  }+  deriving (Eq, Show)++instance Storable VkPipelineDynamicStateCreateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPipelineDynamicStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+                                              <*> peek (ptr `plusPtr` 20)+                                              <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineDynamicStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineDynamicStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineDynamicStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkDynamicStateCount (poked :: VkPipelineDynamicStateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPDynamicStates (poked :: VkPipelineDynamicStateCreateInfo))+-- | VkStencilOpState - Structure specifying stencil operation state+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @failOp@ /must/ be a valid 'VkStencilOp' value+--+-- -   @passOp@ /must/ be a valid 'VkStencilOp' value+--+-- -   @depthFailOp@ /must/ be a valid 'VkStencilOp' value+--+-- -   @compareOp@ /must/ be a valid 'VkCompareOp' value+--+-- = See Also+-- #_see_also#+--+-- 'VkCompareOp', 'VkPipelineDepthStencilStateCreateInfo', 'VkStencilOp'+data VkStencilOpState = VkStencilOpState+  { -- No documentation found for Nested "VkStencilOpState" "vkFailOp"+  vkFailOp :: VkStencilOp+  , -- No documentation found for Nested "VkStencilOpState" "vkPassOp"+  vkPassOp :: VkStencilOp+  , -- No documentation found for Nested "VkStencilOpState" "vkDepthFailOp"+  vkDepthFailOp :: VkStencilOp+  , -- No documentation found for Nested "VkStencilOpState" "vkCompareOp"+  vkCompareOp :: VkCompareOp+  , -- No documentation found for Nested "VkStencilOpState" "vkCompareMask"+  vkCompareMask :: Word32+  , -- No documentation found for Nested "VkStencilOpState" "vkWriteMask"+  vkWriteMask :: Word32+  , -- No documentation found for Nested "VkStencilOpState" "vkReference"+  vkReference :: Word32+  }+  deriving (Eq, Show)++instance Storable VkStencilOpState where+  sizeOf ~_ = 28+  alignment ~_ = 4+  peek ptr = VkStencilOpState <$> peek (ptr `plusPtr` 0)+                              <*> peek (ptr `plusPtr` 4)+                              <*> peek (ptr `plusPtr` 8)+                              <*> peek (ptr `plusPtr` 12)+                              <*> peek (ptr `plusPtr` 16)+                              <*> peek (ptr `plusPtr` 20)+                              <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkFailOp (poked :: VkStencilOpState))+                *> poke (ptr `plusPtr` 4) (vkPassOp (poked :: VkStencilOpState))+                *> poke (ptr `plusPtr` 8) (vkDepthFailOp (poked :: VkStencilOpState))+                *> poke (ptr `plusPtr` 12) (vkCompareOp (poked :: VkStencilOpState))+                *> poke (ptr `plusPtr` 16) (vkCompareMask (poked :: VkStencilOpState))+                *> poke (ptr `plusPtr` 20) (vkWriteMask (poked :: VkStencilOpState))+                *> poke (ptr `plusPtr` 24) (vkReference (poked :: VkStencilOpState))+-- | VkPipelineDepthStencilStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline depth stencil state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-depthBounds depth bounds testing>+--     feature is not enabled, @depthBoundsTestEnable@ /must/ be @VK_FALSE@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   @depthCompareOp@ /must/ be a valid 'VkCompareOp' value+--+-- -   @front@ /must/ be a valid @VkStencilOpState@ structure+--+-- -   @back@ /must/ be a valid @VkStencilOpState@ structure+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkCompareOp', 'VkGraphicsPipelineCreateInfo',+-- 'VkPipelineDepthStencilStateCreateFlags', 'VkStencilOpState',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineDepthStencilStateCreateInfo = VkPipelineDepthStencilStateCreateInfo+  { -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkFlags"+  vkFlags :: VkPipelineDepthStencilStateCreateFlags+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkDepthTestEnable"+  vkDepthTestEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkDepthWriteEnable"+  vkDepthWriteEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkDepthCompareOp"+  vkDepthCompareOp :: VkCompareOp+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkDepthBoundsTestEnable"+  vkDepthBoundsTestEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkStencilTestEnable"+  vkStencilTestEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkFront"+  vkFront :: VkStencilOpState+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkBack"+  vkBack :: VkStencilOpState+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkMinDepthBounds"+  vkMinDepthBounds :: CFloat+  , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "vkMaxDepthBounds"+  vkMaxDepthBounds :: CFloat+  }+  deriving (Eq, Show)++instance Storable VkPipelineDepthStencilStateCreateInfo where+  sizeOf ~_ = 104+  alignment ~_ = 8+  peek ptr = VkPipelineDepthStencilStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                   <*> peek (ptr `plusPtr` 8)+                                                   <*> peek (ptr `plusPtr` 16)+                                                   <*> peek (ptr `plusPtr` 20)+                                                   <*> peek (ptr `plusPtr` 24)+                                                   <*> peek (ptr `plusPtr` 28)+                                                   <*> peek (ptr `plusPtr` 32)+                                                   <*> peek (ptr `plusPtr` 36)+                                                   <*> peek (ptr `plusPtr` 40)+                                                   <*> peek (ptr `plusPtr` 68)+                                                   <*> peek (ptr `plusPtr` 96)+                                                   <*> peek (ptr `plusPtr` 100)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkDepthTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkDepthWriteEnable (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 28) (vkDepthCompareOp (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkDepthBoundsTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 36) (vkStencilTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkFront (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 68) (vkBack (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 96) (vkMinDepthBounds (poked :: VkPipelineDepthStencilStateCreateInfo))+                *> poke (ptr `plusPtr` 100) (vkMaxDepthBounds (poked :: VkPipelineDepthStencilStateCreateInfo))+-- | VkGraphicsPipelineCreateInfo - Structure specifying parameters of a+-- newly created graphics pipeline+--+-- = Description+-- #_description#+--+-- The parameters @basePipelineHandle@ and @basePipelineIndex@ are+-- described in more detail in+-- <{html_spec_relative}#pipelines-pipeline-derivatives Pipeline Derivatives>.+--+-- @pStages@ points to an array of 'VkPipelineShaderStageCreateInfo'+-- structures, which were previously described in+-- <{html_spec_relative}#pipelines-compute Compute Pipelines>.+--+-- @pDynamicState@ points to a structure of type+-- 'VkPipelineDynamicStateCreateInfo'.+--+-- == Valid Usage+--+-- -   If @flags@ contains the @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag,+--     and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be a+--     valid handle to a graphics @VkPipeline@+--+-- -   If @flags@ contains the @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag,+--     and @basePipelineHandle@ is+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @basePipelineIndex@ /must/ be a valid index into the calling+--     command’s @pCreateInfos@ parameter+--+-- -   If @flags@ contains the @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag,+--     and @basePipelineIndex@ is not -1, @basePipelineHandle@ /must/ be+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   If @flags@ contains the @VK_PIPELINE_CREATE_DERIVATIVE_BIT@ flag,+--     and @basePipelineHandle@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @basePipelineIndex@ /must/ be -1+--+-- -   The @stage@ member of each element of @pStages@ /must/ be unique+--+-- -   The @stage@ member of one element of @pStages@ /must/ be+--     @VK_SHADER_STAGE_VERTEX_BIT@+--+-- -   The @stage@ member of each element of @pStages@ /must/ not be+--     @VK_SHADER_STAGE_COMPUTE_BIT@+--+-- -   If @pStages@ includes a tessellation control shader stage, it /must/+--     include a tessellation evaluation shader stage+--+-- -   If @pStages@ includes a tessellation evaluation shader stage, it+--     /must/ include a tessellation control shader stage+--+-- -   If @pStages@ includes a tessellation control shader stage and a+--     tessellation evaluation shader stage, @pTessellationState@ /must/ be+--     a valid pointer to a valid @VkPipelineTessellationStateCreateInfo@+--     structure+--+-- -   If @pStages@ includes tessellation shader stages, the shader code of+--     at least one stage /must/ contain an @OpExecutionMode@ instruction+--     that specifies the type of subdivision in the pipeline+--+-- -   If @pStages@ includes tessellation shader stages, and the shader+--     code of both stages contain an @OpExecutionMode@ instruction that+--     specifies the type of subdivision in the pipeline, they /must/ both+--     specify the same subdivision mode+--+-- -   If @pStages@ includes tessellation shader stages, the shader code of+--     at least one stage /must/ contain an @OpExecutionMode@ instruction+--     that specifies the output patch size in the pipeline+--+-- -   If @pStages@ includes tessellation shader stages, and the shader+--     code of both contain an @OpExecutionMode@ instruction that specifies+--     the out patch size in the pipeline, they /must/ both specify the+--     same patch size+--+-- -   If @pStages@ includes tessellation shader stages, the @topology@+--     member of @pInputAssembly@ /must/ be+--     @VK_PRIMITIVE_TOPOLOGY_PATCH_LIST@+--+-- -   If the @topology@ member of @pInputAssembly@ is+--     @VK_PRIMITIVE_TOPOLOGY_PATCH_LIST@, @pStages@ /must/ include+--     tessellation shader stages+--+-- -   If @pStages@ includes a geometry shader stage, and does not include+--     any tessellation shader stages, its shader code /must/ contain an+--     @OpExecutionMode@ instruction that specifies an input primitive type+--     that is <{html_spec_relative}#shaders-geometry-execution compatible>+--     with the primitive topology specified in @pInputAssembly@+--+-- -   If @pStages@ includes a geometry shader stage, and also includes+--     tessellation shader stages, its shader code /must/ contain an+--     @OpExecutionMode@ instruction that specifies an input primitive type+--     that is <{html_spec_relative}#shaders-geometry-execution compatible>+--     with the primitive topology that is output by the tessellation+--     stages+--+-- -   If @pStages@ includes a fragment shader stage and a geometry shader+--     stage, and the fragment shader code reads from an input variable+--     that is decorated with @PrimitiveID@, then the geometry shader code+--     /must/ write to a matching output variable, decorated with+--     @PrimitiveID@, in all execution paths+--+-- -   If @pStages@ includes a fragment shader stage, its shader code+--     /must/ not read from any input attachment that is defined as+--     @VK_ATTACHMENT_UNUSED@ in @subpass@+--+-- -   The shader code for the entry points identified by @pStages@, and+--     the rest of the state identified by this structure /must/ adhere to+--     the pipeline linking rules described in the+--     <{html_spec_relative}#interfaces Shader Interfaces> chapter+--+-- -   If rasterization is not disabled and @subpass@ uses a depth\/stencil+--     attachment in @renderPass@ that has a layout of+--     @VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL@ in the+--     @VkAttachmentReference@ defined by @subpass@, the @depthWriteEnable@+--     member of @pDepthStencilState@ /must/ be @VK_FALSE@+--+-- -   If rasterization is not disabled and @subpass@ uses a depth\/stencil+--     attachment in @renderPass@ that has a layout of+--     @VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL@ in the+--     @VkAttachmentReference@ defined by @subpass@, the @failOp@, @passOp@+--     and @depthFailOp@ members of each of the @front@ and @back@ members+--     of @pDepthStencilState@ /must/ be @VK_STENCIL_OP_KEEP@+--+-- -   If rasterization is not disabled and the subpass uses color+--     attachments, then for each color attachment in the subpass the+--     @blendEnable@ member of the corresponding element of the+--     @pAttachment@ member of @pColorBlendState@ /must/ be @VK_FALSE@ if+--     the @format@ of the attachment does not support color blend+--     operations, as specified by the+--     @VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ or+--     @VkFormatProperties@::@optimalTilingFeatures@ returned by+--     @vkGetPhysicalDeviceFormatProperties@+--+-- -   If rasterization is not disabled and the subpass uses color+--     attachments, the @attachmentCount@ member of @pColorBlendState@+--     /must/ be equal to the @colorAttachmentCount@ used to create+--     @subpass@+--+-- -   If no element of the @pDynamicStates@ member of @pDynamicState@ is+--     @VK_DYNAMIC_STATE_VIEWPORT@, the @pViewports@ member of+--     @pViewportState@ /must/ be a valid pointer to an array of+--     @pViewportState@::@viewportCount@ @VkViewport@ structures+--+-- -   If no element of the @pDynamicStates@ member of @pDynamicState@ is+--     @VK_DYNAMIC_STATE_SCISSOR@, the @pScissors@ member of+--     @pViewportState@ /must/ be a valid pointer to an array of+--     @pViewportState@::@scissorCount@ @VkRect2D@ structures+--+-- -   If the wide lines feature is not enabled, and no element of the+--     @pDynamicStates@ member of @pDynamicState@ is+--     @VK_DYNAMIC_STATE_LINE_WIDTH@, the @lineWidth@ member of+--     @pRasterizationState@ /must/ be @1.0@+--+-- -   If the @rasterizerDiscardEnable@ member of @pRasterizationState@ is+--     @VK_FALSE@, @pViewportState@ /must/ be a valid pointer to a valid+--     @VkPipelineViewportStateCreateInfo@ structure+--+-- -   If the @rasterizerDiscardEnable@ member of @pRasterizationState@ is+--     @VK_FALSE@, @pMultisampleState@ /must/ be a valid pointer to a valid+--     @VkPipelineMultisampleStateCreateInfo@ structure+--+-- -   If the @rasterizerDiscardEnable@ member of @pRasterizationState@ is+--     @VK_FALSE@, and @subpass@ uses a depth\/stencil attachment,+--     @pDepthStencilState@ /must/ be a valid pointer to a valid+--     @VkPipelineDepthStencilStateCreateInfo@ structure+--+-- -   If the @rasterizerDiscardEnable@ member of @pRasterizationState@ is+--     @VK_FALSE@, and @subpass@ uses color attachments, @pColorBlendState@+--     /must/ be a valid pointer to a valid+--     @VkPipelineColorBlendStateCreateInfo@ structure+--+-- -   If the depth bias clamping feature is not enabled, no element of the+--     @pDynamicStates@ member of @pDynamicState@ is+--     @VK_DYNAMIC_STATE_DEPTH_BIAS@, and the @depthBiasEnable@ member of+--     @pRasterizationState@ is @VK_TRUE@, the @depthBiasClamp@ member of+--     @pRasterizationState@ /must/ be @0.0@+--+-- -   If no element of the @pDynamicStates@ member of @pDynamicState@ is+--     @VK_DYNAMIC_STATE_DEPTH_BOUNDS@, and the @depthBoundsTestEnable@+--     member of @pDepthStencilState@ is @VK_TRUE@, the @minDepthBounds@+--     and @maxDepthBounds@ members of @pDepthStencilState@ /must/ be+--     between @0.0@ and @1.0@, inclusive+--+-- -   @layout@ /must/ be+--     <{html_spec_relative}#descriptorsets-pipelinelayout-consistency consistent>+--     with all shaders specified in @pStages@+--+-- -   If @subpass@ uses color and\/or depth\/stencil attachments, then the+--     @rasterizationSamples@ member of @pMultisampleState@ /must/ be the+--     same as the sample count for those subpass attachments+--+-- -   If @subpass@ does not use any color and\/or depth\/stencil+--     attachments, then the @rasterizationSamples@ member of+--     @pMultisampleState@ /must/ follow the rules for a+--     <{html_spec_relative}#renderpass-noattachments zero-attachment subpass>+--+-- -   @subpass@ /must/ be a valid subpass within @renderPass@+--+-- -   The number of resources in @layout@ accessible to each shader stage+--     that is used by the pipeline /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxPerStageResources@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT'+--+-- -   @flags@ /must/ be a valid combination of 'VkPipelineCreateFlagBits'+--     values+--+-- -   @pStages@ /must/ be a valid pointer to an array of @stageCount@+--     valid @VkPipelineShaderStageCreateInfo@ structures+--+-- -   @pVertexInputState@ /must/ be a valid pointer to a valid+--     @VkPipelineVertexInputStateCreateInfo@ structure+--+-- -   @pInputAssemblyState@ /must/ be a valid pointer to a valid+--     @VkPipelineInputAssemblyStateCreateInfo@ structure+--+-- -   @pRasterizationState@ /must/ be a valid pointer to a valid+--     @VkPipelineRasterizationStateCreateInfo@ structure+--+-- -   If @pDynamicState@ is not @NULL@, @pDynamicState@ /must/ be a valid+--     pointer to a valid @VkPipelineDynamicStateCreateInfo@ structure+--+-- -   @layout@ /must/ be a valid @VkPipelineLayout@ handle+--+-- -   @renderPass@ /must/ be a valid @VkRenderPass@ handle+--+-- -   @stageCount@ /must/ be greater than @0@+--+-- -   Each of @basePipelineHandle@, @layout@, and @renderPass@ that are+--     valid handles /must/ have been created, allocated, or retrieved from+--     the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'VkPipeline', 'VkPipelineColorBlendStateCreateInfo',+-- 'VkPipelineCreateFlags', 'VkPipelineDepthStencilStateCreateInfo',+-- 'VkPipelineDynamicStateCreateInfo',+-- 'VkPipelineInputAssemblyStateCreateInfo', 'VkPipelineLayout',+-- 'VkPipelineMultisampleStateCreateInfo',+-- 'VkPipelineRasterizationStateCreateInfo',+-- 'VkPipelineShaderStageCreateInfo',+-- 'VkPipelineTessellationStateCreateInfo',+-- 'VkPipelineVertexInputStateCreateInfo',+-- 'VkPipelineViewportStateCreateInfo', 'VkRenderPass',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateGraphicsPipelines'+data VkGraphicsPipelineCreateInfo = VkGraphicsPipelineCreateInfo+  { -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkFlags"+  vkFlags :: VkPipelineCreateFlags+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkStageCount"+  vkStageCount :: Word32+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPStages"+  vkPStages :: Ptr VkPipelineShaderStageCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPVertexInputState"+  vkPVertexInputState :: Ptr VkPipelineVertexInputStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPInputAssemblyState"+  vkPInputAssemblyState :: Ptr VkPipelineInputAssemblyStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPTessellationState"+  vkPTessellationState :: Ptr VkPipelineTessellationStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPViewportState"+  vkPViewportState :: Ptr VkPipelineViewportStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPRasterizationState"+  vkPRasterizationState :: Ptr VkPipelineRasterizationStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPMultisampleState"+  vkPMultisampleState :: Ptr VkPipelineMultisampleStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPDepthStencilState"+  vkPDepthStencilState :: Ptr VkPipelineDepthStencilStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPColorBlendState"+  vkPColorBlendState :: Ptr VkPipelineColorBlendStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkPDynamicState"+  vkPDynamicState :: Ptr VkPipelineDynamicStateCreateInfo+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkLayout"+  vkLayout :: VkPipelineLayout+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkRenderPass"+  vkRenderPass :: VkRenderPass+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkSubpass"+  vkSubpass :: Word32+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkBasePipelineHandle"+  vkBasePipelineHandle :: VkPipeline+  , -- No documentation found for Nested "VkGraphicsPipelineCreateInfo" "vkBasePipelineIndex"+  vkBasePipelineIndex :: Int32+  }+  deriving (Eq, Show)++instance Storable VkGraphicsPipelineCreateInfo where+  sizeOf ~_ = 144+  alignment ~_ = 8+  peek ptr = VkGraphicsPipelineCreateInfo <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 16)+                                          <*> peek (ptr `plusPtr` 20)+                                          <*> peek (ptr `plusPtr` 24)+                                          <*> peek (ptr `plusPtr` 32)+                                          <*> peek (ptr `plusPtr` 40)+                                          <*> peek (ptr `plusPtr` 48)+                                          <*> peek (ptr `plusPtr` 56)+                                          <*> peek (ptr `plusPtr` 64)+                                          <*> peek (ptr `plusPtr` 72)+                                          <*> peek (ptr `plusPtr` 80)+                                          <*> peek (ptr `plusPtr` 88)+                                          <*> peek (ptr `plusPtr` 96)+                                          <*> peek (ptr `plusPtr` 104)+                                          <*> peek (ptr `plusPtr` 112)+                                          <*> peek (ptr `plusPtr` 120)+                                          <*> peek (ptr `plusPtr` 128)+                                          <*> peek (ptr `plusPtr` 136)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkStageCount (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPStages (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPVertexInputState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPInputAssemblyState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkPTessellationState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkPViewportState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 64) (vkPRasterizationState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 72) (vkPMultisampleState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 80) (vkPDepthStencilState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 88) (vkPColorBlendState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 96) (vkPDynamicState (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 104) (vkLayout (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 112) (vkRenderPass (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 120) (vkSubpass (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 128) (vkBasePipelineHandle (poked :: VkGraphicsPipelineCreateInfo))+                *> poke (ptr `plusPtr` 136) (vkBasePipelineIndex (poked :: VkGraphicsPipelineCreateInfo))+-- | VkPipelineCreateFlags - Bitmask of VkPipelineCreateFlagBits+--+-- = Description+-- #_description#+--+-- @VkPipelineCreateFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkPipelineCreateFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkComputePipelineCreateInfo', 'VkGraphicsPipelineCreateInfo',+-- 'VkPipelineCreateFlagBits'+type VkPipelineCreateFlags = VkPipelineCreateFlagBits+-- | VkColorComponentFlags - Bitmask of VkColorComponentFlagBits+--+-- = Description+-- #_description#+--+-- @VkColorComponentFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkColorComponentFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkColorComponentFlagBits', 'VkPipelineColorBlendAttachmentState'+type VkColorComponentFlags = VkColorComponentFlagBits+-- | VkCullModeFlags - Bitmask of VkCullModeFlagBits+--+-- = Description+-- #_description#+--+-- @VkCullModeFlags@ is a bitmask type for setting a mask of zero or more+-- 'VkCullModeFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkCullModeFlagBits', 'VkPipelineRasterizationStateCreateInfo'+type VkCullModeFlags = VkCullModeFlagBits+-- | VkSampleMask - Mask of sample coverage information+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineMultisampleStateCreateInfo'+type VkSampleMask = Word32
+ src/Graphics/Vulkan/Core10/PipelineCache.hs view
@@ -0,0 +1,487 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.PipelineCache+  ( VkPipelineCacheCreateFlags(..)+  , VkPipelineCache+  , vkCreatePipelineCache+  , vkDestroyPipelineCache+  , vkGetPipelineCacheData+  , vkMergePipelineCaches+  , VkPipelineCacheCreateInfo(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+++-- ** VkPipelineCacheCreateFlags++-- | VkPipelineCacheCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineCacheCreateFlags@ is a bitmask type for setting a mask, but+-- is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineCacheCreateInfo'+newtype VkPipelineCacheCreateFlags = VkPipelineCacheCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineCacheCreateFlags where+  +  showsPrec p (VkPipelineCacheCreateFlags x) = showParen (p >= 11) (showString "VkPipelineCacheCreateFlags " . showsPrec 11 x)++instance Read VkPipelineCacheCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineCacheCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineCacheCreateFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkPipelineCache_T+-- | VkPipelineCache - Opaque handle to a pipeline cache object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pipeline.vkCreateComputePipelines',+-- 'Graphics.Vulkan.Core10.Pipeline.vkCreateGraphicsPipelines',+-- 'vkCreatePipelineCache', 'vkDestroyPipelineCache',+-- 'vkGetPipelineCacheData', 'vkMergePipelineCaches'+type VkPipelineCache = Ptr VkPipelineCache_T+-- | vkCreatePipelineCache - Creates a new pipeline cache+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the pipeline cache+--     object.+--+-- -   @pCreateInfo@ is a pointer to a @VkPipelineCacheCreateInfo@+--     structure that contains the initial parameters for the pipeline+--     cache object.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pPipelineCache@ is a pointer to a @VkPipelineCache@ handle in which+--     the resulting pipeline cache object is returned.+--+-- = Description+-- #_description#+--+-- __Note__+--+-- Applications /can/ track and manage the total host memory size of a+-- pipeline cache object using the @pAllocator@. Applications /can/ limit+-- the amount of data retrieved from a pipeline cache object in+-- @vkGetPipelineCacheData@. Implementations /should/ not internally limit+-- the total number of entries added to a pipeline cache object or the+-- total host memory consumed.+--+-- Once created, a pipeline cache /can/ be passed to the+-- @vkCreateGraphicsPipelines@ and @vkCreateComputePipelines@ commands. If+-- the pipeline cache passed into these commands is not+-- 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', the implementation+-- will query it for possible reuse opportunities and update it with new+-- content. The use of the pipeline cache object in these commands is+-- internally synchronized, and the same pipeline cache object /can/ be+-- used in multiple threads simultaneously.+--+-- __Note__+--+-- Implementations /should/ make every effort to limit any critical+-- sections to the actual accesses to the cache, which is expected to be+-- significantly shorter than the duration of the+-- @vkCreateGraphicsPipelines@ and @vkCreateComputePipelines@ commands.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkPipelineCacheCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pPipelineCache@ /must/ be a valid pointer to a @VkPipelineCache@+--     handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkPipelineCache', 'VkPipelineCacheCreateInfo'+foreign import ccall "vkCreatePipelineCache" vkCreatePipelineCache :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkPipelineCacheCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelineCache" ::: Ptr VkPipelineCache) -> IO VkResult+-- | vkDestroyPipelineCache - Destroy a pipeline cache object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the pipeline cache+--     object.+--+-- -   @pipelineCache@ is the handle of the pipeline cache to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @VkAllocationCallbacks@ were provided when @pipelineCache@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @pipelineCache@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @pipelineCache@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @pipelineCache@+--     /must/ be a valid @VkPipelineCache@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @pipelineCache@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @pipelineCache@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkPipelineCache'+foreign import ccall "vkDestroyPipelineCache" vkDestroyPipelineCache :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkGetPipelineCacheData - Get the data store from a pipeline cache+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the pipeline cache.+--+-- -   @pipelineCache@ is the pipeline cache to retrieve data from.+--+-- -   @pDataSize@ is a pointer to a value related to the amount of data in+--     the pipeline cache, as described below.+--+-- -   @pData@ is either @NULL@ or a pointer to a buffer.+--+-- = Description+-- #_description#+--+-- If @pData@ is @NULL@, then the maximum size of the data that /can/ be+-- retrieved from the pipeline cache, in bytes, is returned in @pDataSize@.+-- Otherwise, @pDataSize@ /must/ point to a variable set by the user to the+-- size of the buffer, in bytes, pointed to by @pData@, and on return the+-- variable is overwritten with the amount of data actually written to+-- @pData@.+--+-- If @pDataSize@ is less than the maximum size that /can/ be retrieved by+-- the pipeline cache, at most @pDataSize@ bytes will be written to+-- @pData@, and @vkGetPipelineCacheData@ will return @VK_INCOMPLETE@. Any+-- data written to @pData@ is valid and /can/ be provided as the+-- @pInitialData@ member of the @VkPipelineCacheCreateInfo@ structure+-- passed to @vkCreatePipelineCache@.+--+-- Two calls to @vkGetPipelineCacheData@ with the same parameters /must/+-- retrieve the same data unless a command that modifies the contents of+-- the cache is called between them.+--+-- Applications /can/ store the data retrieved from the pipeline cache, and+-- use these data, possibly in a future run of the application, to populate+-- new pipeline cache objects. The results of pipeline compiles, however,+-- /may/ depend on the vendor ID, device ID, driver version, and other+-- details of the device. To enable applications to detect when previously+-- retrieved data is incompatible with the device, the initial bytes+-- written to @pData@ /must/ be a header consisting of the following+-- members:+--+-- > +----+--------------+--------------------------------------------------++-- > | Of | Size         | Meaning                                          |+-- > | fs |              |                                                  |+-- > | et |              |                                                  |+-- > +====+==============+==================================================++-- > | 0  | 4            | length in bytes of the entire pipeline cache     |+-- > |    |              | header written as a stream of bytes, with the    |+-- > |    |              | least significant byte first                     |+-- > +----+--------------+--------------------------------------------------++-- > | 4  | 4            | a                                                |+-- > |    |              | 'Graphics.Vulkan.Core10.Constants.VkPipelineCach |+-- > |    |              | eHeaderVersion'                                  |+-- > |    |              | value written as a stream of bytes, with the     |+-- > |    |              | least significant byte first                     |+-- > +----+--------------+--------------------------------------------------++-- > | 8  | 4            | a vendor ID equal to                             |+-- > |    |              | @VkPhysicalDeviceProperties@::@vendorID@ written |+-- > |    |              | as a stream of bytes, with the least significant |+-- > |    |              | byte first                                       |+-- > +----+--------------+--------------------------------------------------++-- > | 12 | 4            | a device ID equal to                             |+-- > |    |              | @VkPhysicalDeviceProperties@::@deviceID@ written |+-- > |    |              | as a stream of bytes, with the least significant |+-- > |    |              | byte first                                       |+-- > +----+--------------+--------------------------------------------------++-- > | 16 | @VK_UUID_SIZ | a pipeline cache ID equal to                     |+-- > |    | E@           | @VkPhysicalDeviceProperties@::@pipelineCacheUUID |+-- > |    |              | @                                                |+-- > +----+--------------+--------------------------------------------------++-- >+-- > Layout for pipeline cache header version+-- > @VK_PIPELINE_CACHE_HEADER_VERSION_ONE@+--+-- The first four bytes encode the length of the entire pipeline cache+-- header, in bytes. This value includes all fields in the header including+-- the pipeline cache version field and the size of the length field.+--+-- The next four bytes encode the pipeline cache version, as described for+-- 'Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion'. A+-- consumer of the pipeline cache /should/ use the cache version to+-- interpret the remainder of the cache header.+--+-- If @pDataSize@ is less than what is necessary to store this header,+-- nothing will be written to @pData@ and zero will be written to+-- @pDataSize@.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pipelineCache@ /must/ be a valid @VkPipelineCache@ handle+--+-- -   @pDataSize@ /must/ be a valid pointer to a @size_t@ value+--+-- -   If the value referenced by @pDataSize@ is not @0@, and @pData@ is+--     not @NULL@, @pData@ /must/ be a valid pointer to an array of+--     @pDataSize@ bytes+--+-- -   @pipelineCache@ /must/ have been created, allocated, or retrieved+--     from @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkPipelineCache'+foreign import ccall "vkGetPipelineCacheData" vkGetPipelineCacheData :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO VkResult+-- | vkMergePipelineCaches - Combine the data stores of pipeline caches+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the pipeline cache objects.+--+-- -   @dstCache@ is the handle of the pipeline cache to merge results+--     into.+--+-- -   @srcCacheCount@ is the length of the @pSrcCaches@ array.+--+-- -   @pSrcCaches@ is an array of pipeline cache handles, which will be+--     merged into @dstCache@. The previous contents of @dstCache@ are+--     included after the merge.+--+-- = Description+-- #_description#+--+-- __Note__+--+-- The details of the merge operation are implementation dependent, but+-- implementations /should/ merge the contents of the specified pipelines+-- and prune duplicate entries.+--+-- == Valid Usage+--+-- -   @dstCache@ /must/ not appear in the list of source caches+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @dstCache@ /must/ be a valid @VkPipelineCache@ handle+--+-- -   @pSrcCaches@ /must/ be a valid pointer to an array of+--     @srcCacheCount@ valid @VkPipelineCache@ handles+--+-- -   @srcCacheCount@ /must/ be greater than @0@+--+-- -   @dstCache@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- -   Each element of @pSrcCaches@ /must/ have been created, allocated, or+--     retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @dstCache@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkPipelineCache'+foreign import ccall "vkMergePipelineCaches" vkMergePipelineCaches :: ("device" ::: VkDevice) -> ("dstCache" ::: VkPipelineCache) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr VkPipelineCache) -> IO VkResult+-- | VkPipelineCacheCreateInfo - Structure specifying parameters of a newly+-- created pipeline cache+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @initialDataSize@ is not @0@, it /must/ be equal to the size of+--     @pInitialData@, as returned by @vkGetPipelineCacheData@ when+--     @pInitialData@ was originally retrieved+--+-- -   If @initialDataSize@ is not @0@, @pInitialData@ /must/ have been+--     retrieved from a previous call to @vkGetPipelineCacheData@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   If @initialDataSize@ is not @0@, @pInitialData@ /must/ be a valid+--     pointer to an array of @initialDataSize@ bytes+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineCacheCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreatePipelineCache'+data VkPipelineCacheCreateInfo = VkPipelineCacheCreateInfo+  { -- No documentation found for Nested "VkPipelineCacheCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineCacheCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineCacheCreateInfo" "vkFlags"+  vkFlags :: VkPipelineCacheCreateFlags+  , -- No documentation found for Nested "VkPipelineCacheCreateInfo" "vkInitialDataSize"+  vkInitialDataSize :: CSize+  , -- No documentation found for Nested "VkPipelineCacheCreateInfo" "vkPInitialData"+  vkPInitialData :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkPipelineCacheCreateInfo where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkPipelineCacheCreateInfo <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 24)+                                       <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineCacheCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineCacheCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineCacheCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkInitialDataSize (poked :: VkPipelineCacheCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPInitialData (poked :: VkPipelineCacheCreateInfo))
+ src/Graphics/Vulkan/Core10/PipelineLayout.hs view
@@ -0,0 +1,478 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.PipelineLayout+  ( VkPipelineLayoutCreateFlags(..)+  , VkDescriptorSetLayout+  , vkCreatePipelineLayout+  , vkDestroyPipelineLayout+  , VkPushConstantRange(..)+  , VkPipelineLayoutCreateInfo(..)+  , VkShaderStageFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkShaderStageFlagBits(..)+  , VkPipelineLayout+  )+++-- ** VkPipelineLayoutCreateFlags++-- | VkPipelineLayoutCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineLayoutCreateFlags@ is a bitmask type for setting a mask, but+-- is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineLayoutCreateInfo'+newtype VkPipelineLayoutCreateFlags = VkPipelineLayoutCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineLayoutCreateFlags where+  +  showsPrec p (VkPipelineLayoutCreateFlags x) = showParen (p >= 11) (showString "VkPipelineLayoutCreateFlags " . showsPrec 11 x)++instance Read VkPipelineLayoutCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineLayoutCreateFlags")+                        v <- step readPrec+                        pure (VkPipelineLayoutCreateFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkDescriptorSetLayout_T+-- | VkDescriptorSetLayout - Opaque handle to a descriptor set layout object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo',+-- 'VkPipelineLayoutCreateInfo',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkCreateDescriptorSetLayout',+-- 'Graphics.Vulkan.Core10.DescriptorSet.vkDestroyDescriptorSetLayout'+type VkDescriptorSetLayout = Ptr VkDescriptorSetLayout_T+-- | vkCreatePipelineLayout - Creates a new pipeline layout object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the pipeline layout.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkPipelineLayoutCreateInfo' structure specifying the state of the+--     pipeline layout object.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pPipelineLayout@ points to a @VkPipelineLayout@ handle in which the+--     resulting pipeline layout object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkPipelineLayoutCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pPipelineLayout@ /must/ be a valid pointer to a @VkPipelineLayout@+--     handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineLayout',+-- 'VkPipelineLayoutCreateInfo'+foreign import ccall "vkCreatePipelineLayout" vkCreatePipelineLayout :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkPipelineLayoutCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelineLayout" ::: Ptr VkPipelineLayout) -> IO VkResult+-- | vkDestroyPipelineLayout - Destroy a pipeline layout object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the pipeline layout.+--+-- -   @pipelineLayout@ is the pipeline layout to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @VkAllocationCallbacks@ were provided when @pipelineLayout@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @pipelineLayout@+--     was created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @pipelineLayout@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @pipelineLayout@+--     /must/ be a valid @VkPipelineLayout@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @pipelineLayout@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @pipelineLayout@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineLayout'+foreign import ccall "vkDestroyPipelineLayout" vkDestroyPipelineLayout :: ("device" ::: VkDevice) -> ("pipelineLayout" ::: VkPipelineLayout) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkPushConstantRange - Structure specifying a push constant range+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @offset@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxPushConstantsSize@+--+-- -   @offset@ /must/ be a multiple of @4@+--+-- -   @size@ /must/ be greater than @0@+--+-- -   @size@ /must/ be a multiple of @4@+--+-- -   @size@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxPushConstantsSize@ minus @offset@+--+-- == Valid Usage (Implicit)+--+-- -   @stageFlags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits' values+--+-- -   @stageFlags@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineLayoutCreateInfo', 'VkShaderStageFlags'+data VkPushConstantRange = VkPushConstantRange+  { -- No documentation found for Nested "VkPushConstantRange" "vkStageFlags"+  vkStageFlags :: VkShaderStageFlags+  , -- No documentation found for Nested "VkPushConstantRange" "vkOffset"+  vkOffset :: Word32+  , -- No documentation found for Nested "VkPushConstantRange" "vkSize"+  vkSize :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPushConstantRange where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkPushConstantRange <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 4)+                                 <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkStageFlags (poked :: VkPushConstantRange))+                *> poke (ptr `plusPtr` 4) (vkOffset (poked :: VkPushConstantRange))+                *> poke (ptr `plusPtr` 8) (vkSize (poked :: VkPushConstantRange))+-- | VkPipelineLayoutCreateInfo - Structure specifying the parameters of a+-- newly created pipeline layout object+--+-- = Members+-- #_members#+--+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to an extension-specific structure.+--+-- -   @flags@ is reserved for future use.+--+-- -   @setLayoutCount@ is the number of descriptor sets included in the+--     pipeline layout.+--+-- -   @pSetLayouts@ is a pointer to an array of @VkDescriptorSetLayout@+--     objects.+--+-- -   @pushConstantRangeCount@ is the number of push constant ranges+--     included in the pipeline layout.+--+-- -   @pPushConstantRanges@ is a pointer to an array of+--     @VkPushConstantRange@ structures defining a set of push constant+--     ranges for use in a single pipeline layout. In addition to+--     descriptor set layouts, a pipeline layout also describes how many+--     push constants /can/ be accessed by each stage of the pipeline.+--+--     __Note__+--+--     Push constants represent a high speed path to modify constant data+--     in pipelines that is expected to outperform memory-backed resource+--     updates.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @setLayoutCount@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxBoundDescriptorSets@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_SAMPLER@ and+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@ accessible to any shader+--     stage across all elements of @pSetLayouts@ /must/ be less than or+--     equal to @VkPhysicalDeviceLimits@::@maxPerStageDescriptorSamplers@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ and+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ accessible to any shader+--     stage across all elements of @pSetLayouts@ /must/ be less than or+--     equal to+--     @VkPhysicalDeviceLimits@::@maxPerStageDescriptorUniformBuffers@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ and+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ accessible to any shader+--     stage across all elements of @pSetLayouts@ /must/ be less than or+--     equal to+--     @VkPhysicalDeviceLimits@::@maxPerStageDescriptorStorageBuffers@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@, and+--     @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ accessible to any shader+--     stage across all elements of @pSetLayouts@ /must/ be less than or+--     equal to+--     @VkPhysicalDeviceLimits@::@maxPerStageDescriptorSampledImages@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, and+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ accessible to any shader+--     stage across all elements of @pSetLayouts@ /must/ be less than or+--     equal to+--     @VkPhysicalDeviceLimits@::@maxPerStageDescriptorStorageImages@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ accessible to any given shader+--     stage across all elements of @pSetLayouts@ /must/ be less than or+--     equal to+--     @VkPhysicalDeviceLimits@::@maxPerStageDescriptorInputAttachments@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_SAMPLER@ and+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@ accessible across all+--     shader stages and across all elements of @pSetLayouts@ /must/ be+--     less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDescriptorSetSamplers@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ accessible across all shader+--     stagess and and across all elements of @pSetLayouts@ /must/ be less+--     than or equal to+--     @VkPhysicalDeviceLimits@::@maxDescriptorSetUniformBuffers@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ accessible across all+--     shader stages and across all elements of @pSetLayouts@ /must/ be+--     less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDescriptorSetUniformBuffersDynamic@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ accessible across all shader+--     stages and across all elements of @pSetLayouts@ /must/ be less than+--     or equal to+--     @VkPhysicalDeviceLimits@::@maxDescriptorSetStorageBuffers@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ accessible across all+--     shader stages and across all elements of @pSetLayouts@ /must/ be+--     less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDescriptorSetStorageBuffersDynamic@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@, and+--     @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ accessible across all+--     shader stages and across all elements of @pSetLayouts@ /must/ be+--     less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDescriptorSetSampledImages@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@, and+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ accessible across all+--     shader stages and across all elements of @pSetLayouts@ /must/ be+--     less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDescriptorSetStorageImages@+--+-- -   The total number of descriptors of the type+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ accessible across all shader+--     stages and across all elements of @pSetLayouts@ /must/ be less than+--     or equal to+--     @VkPhysicalDeviceLimits@::@maxDescriptorSetInputAttachments@+--+-- -   Any two elements of @pPushConstantRanges@ /must/ not include the+--     same stage in @stageFlags@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   If @setLayoutCount@ is not @0@, @pSetLayouts@ /must/ be a valid+--     pointer to an array of @setLayoutCount@ valid+--     @VkDescriptorSetLayout@ handles+--+-- -   If @pushConstantRangeCount@ is not @0@, @pPushConstantRanges@ /must/+--     be a valid pointer to an array of @pushConstantRangeCount@ valid+--     @VkPushConstantRange@ structures+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorSetLayout', 'VkPipelineLayoutCreateFlags',+-- 'VkPushConstantRange', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreatePipelineLayout'+data VkPipelineLayoutCreateInfo = VkPipelineLayoutCreateInfo+  { -- No documentation found for Nested "VkPipelineLayoutCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineLayoutCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineLayoutCreateInfo" "vkFlags"+  vkFlags :: VkPipelineLayoutCreateFlags+  , -- No documentation found for Nested "VkPipelineLayoutCreateInfo" "vkSetLayoutCount"+  vkSetLayoutCount :: Word32+  , -- No documentation found for Nested "VkPipelineLayoutCreateInfo" "vkPSetLayouts"+  vkPSetLayouts :: Ptr VkDescriptorSetLayout+  , -- No documentation found for Nested "VkPipelineLayoutCreateInfo" "vkPushConstantRangeCount"+  vkPushConstantRangeCount :: Word32+  , -- No documentation found for Nested "VkPipelineLayoutCreateInfo" "vkPPushConstantRanges"+  vkPPushConstantRanges :: Ptr VkPushConstantRange+  }+  deriving (Eq, Show)++instance Storable VkPipelineLayoutCreateInfo where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkPipelineLayoutCreateInfo <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+                                        <*> peek (ptr `plusPtr` 20)+                                        <*> peek (ptr `plusPtr` 24)+                                        <*> peek (ptr `plusPtr` 32)+                                        <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineLayoutCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineLayoutCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineLayoutCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkSetLayoutCount (poked :: VkPipelineLayoutCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPSetLayouts (poked :: VkPipelineLayoutCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPushConstantRangeCount (poked :: VkPipelineLayoutCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPPushConstantRanges (poked :: VkPipelineLayoutCreateInfo))+-- | VkShaderStageFlags - Bitmask of VkShaderStageFlagBits+--+-- = Description+-- #_description#+--+-- @VkShaderStageFlags@ is a bitmask type for setting a mask of zero or+-- more 'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutBinding',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePushConstantEntryNVX',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties',+-- 'VkPushConstantRange',+-- 'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits',+-- 'Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderStatisticsInfoAMD',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdPushConstants'+type VkShaderStageFlags = VkShaderStageFlagBits
+ src/Graphics/Vulkan/Core10/Query.hs view
@@ -0,0 +1,797 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Query+  ( VkQueryType(..)+  , pattern VK_QUERY_TYPE_OCCLUSION+  , pattern VK_QUERY_TYPE_PIPELINE_STATISTICS+  , pattern VK_QUERY_TYPE_TIMESTAMP+  , VkQueryPoolCreateFlags(..)+  , VkQueryResultFlagBits(..)+  , pattern VK_QUERY_RESULT_64_BIT+  , pattern VK_QUERY_RESULT_WAIT_BIT+  , pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT+  , pattern VK_QUERY_RESULT_PARTIAL_BIT+  , VkQueryPipelineStatisticFlagBits(..)+  , pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT+  , pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT+  , VkQueryPool+  , vkCreateQueryPool+  , vkDestroyQueryPool+  , vkGetQueryPoolResults+  , VkQueryPoolCreateInfo(..)+  , VkQueryResultFlags+  , VkQueryPipelineStatisticFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkAllocationCallbacks(..)+  , VkDevice+  )+++-- ** VkQueryType++-- | VkQueryType - Specify the type of queries managed by a query pool+--+-- = See Also+-- #_see_also#+--+-- 'VkQueryPoolCreateInfo'+newtype VkQueryType = VkQueryType Int32+  deriving (Eq, Ord, Storable)++instance Show VkQueryType where+  showsPrec _ VK_QUERY_TYPE_OCCLUSION = showString "VK_QUERY_TYPE_OCCLUSION"+  showsPrec _ VK_QUERY_TYPE_PIPELINE_STATISTICS = showString "VK_QUERY_TYPE_PIPELINE_STATISTICS"+  showsPrec _ VK_QUERY_TYPE_TIMESTAMP = showString "VK_QUERY_TYPE_TIMESTAMP"+  showsPrec p (VkQueryType x) = showParen (p >= 11) (showString "VkQueryType " . showsPrec 11 x)++instance Read VkQueryType where+  readPrec = parens ( choose [ ("VK_QUERY_TYPE_OCCLUSION",           pure VK_QUERY_TYPE_OCCLUSION)+                             , ("VK_QUERY_TYPE_PIPELINE_STATISTICS", pure VK_QUERY_TYPE_PIPELINE_STATISTICS)+                             , ("VK_QUERY_TYPE_TIMESTAMP",           pure VK_QUERY_TYPE_TIMESTAMP)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkQueryType")+                        v <- step readPrec+                        pure (VkQueryType v)+                        )+                    )++-- | @VK_QUERY_TYPE_OCCLUSION@ specifies an+-- <{html_spec_relative}#queries-occlusion occlusion query>.+pattern VK_QUERY_TYPE_OCCLUSION :: VkQueryType+pattern VK_QUERY_TYPE_OCCLUSION = VkQueryType 0++-- | @VK_QUERY_TYPE_PIPELINE_STATISTICS@ specifies a+-- <{html_spec_relative}#queries-pipestats pipeline statistics query>.+pattern VK_QUERY_TYPE_PIPELINE_STATISTICS :: VkQueryType+pattern VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType 1++-- | @VK_QUERY_TYPE_TIMESTAMP@ specifies a+-- <{html_spec_relative}#queries-timestamps timestamp query>.+pattern VK_QUERY_TYPE_TIMESTAMP :: VkQueryType+pattern VK_QUERY_TYPE_TIMESTAMP = VkQueryType 2+-- ** VkQueryPoolCreateFlags++-- | VkQueryPoolCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkQueryPoolCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkQueryPoolCreateInfo'+newtype VkQueryPoolCreateFlags = VkQueryPoolCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkQueryPoolCreateFlags where+  +  showsPrec p (VkQueryPoolCreateFlags x) = showParen (p >= 11) (showString "VkQueryPoolCreateFlags " . showsPrec 11 x)++instance Read VkQueryPoolCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkQueryPoolCreateFlags")+                        v <- step readPrec+                        pure (VkQueryPoolCreateFlags v)+                        )+                    )+++-- ** VkQueryResultFlagBits++-- | VkQueryResultFlagBits - Bitmask specifying how and when query results+-- are returned+--+-- = See Also+-- #_see_also#+--+-- 'VkQueryResultFlags'+newtype VkQueryResultFlagBits = VkQueryResultFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkQueryResultFlagBits where+  showsPrec _ VK_QUERY_RESULT_64_BIT = showString "VK_QUERY_RESULT_64_BIT"+  showsPrec _ VK_QUERY_RESULT_WAIT_BIT = showString "VK_QUERY_RESULT_WAIT_BIT"+  showsPrec _ VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = showString "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"+  showsPrec _ VK_QUERY_RESULT_PARTIAL_BIT = showString "VK_QUERY_RESULT_PARTIAL_BIT"+  showsPrec p (VkQueryResultFlagBits x) = showParen (p >= 11) (showString "VkQueryResultFlagBits " . showsPrec 11 x)++instance Read VkQueryResultFlagBits where+  readPrec = parens ( choose [ ("VK_QUERY_RESULT_64_BIT",                pure VK_QUERY_RESULT_64_BIT)+                             , ("VK_QUERY_RESULT_WAIT_BIT",              pure VK_QUERY_RESULT_WAIT_BIT)+                             , ("VK_QUERY_RESULT_WITH_AVAILABILITY_BIT", pure VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)+                             , ("VK_QUERY_RESULT_PARTIAL_BIT",           pure VK_QUERY_RESULT_PARTIAL_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkQueryResultFlagBits")+                        v <- step readPrec+                        pure (VkQueryResultFlagBits v)+                        )+                    )++-- | @VK_QUERY_RESULT_64_BIT@ specifies the results will be written as an+-- array of 64-bit unsigned integer values. If this bit is not set, the+-- results will be written as an array of 32-bit unsigned integer values.+pattern VK_QUERY_RESULT_64_BIT :: VkQueryResultFlagBits+pattern VK_QUERY_RESULT_64_BIT = VkQueryResultFlagBits 0x00000001++-- | @VK_QUERY_RESULT_WAIT_BIT@ specifies that Vulkan will wait for each+-- query’s status to become available before retrieving its results.+pattern VK_QUERY_RESULT_WAIT_BIT :: VkQueryResultFlagBits+pattern VK_QUERY_RESULT_WAIT_BIT = VkQueryResultFlagBits 0x00000002++-- | @VK_QUERY_RESULT_WITH_AVAILABILITY_BIT@ specifies that the availability+-- status accompanies the results.+pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT :: VkQueryResultFlagBits+pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = VkQueryResultFlagBits 0x00000004++-- | @VK_QUERY_RESULT_PARTIAL_BIT@ specifies that returning partial results+-- is acceptable.+pattern VK_QUERY_RESULT_PARTIAL_BIT :: VkQueryResultFlagBits+pattern VK_QUERY_RESULT_PARTIAL_BIT = VkQueryResultFlagBits 0x00000008+-- ** VkQueryPipelineStatisticFlagBits++-- | VkQueryPipelineStatisticFlagBits - Bitmask specifying queried pipeline+-- statistics+--+-- = Description+-- #_description#+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT@ specifies+--     that queries managed by the pool will count the number of vertices+--     processed by the <{html_spec_relative}#drawing input assembly>+--     stage. Vertices corresponding to incomplete primitives /may/+--     contribute to the count.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT@+--     specifies that queries managed by the pool will count the number of+--     primitives processed by the+--     <{html_spec_relative}#drawing input assembly> stage. If primitive+--     restart is enabled, restarting the primitive topology has no effect+--     on the count. Incomplete primitives /may/ be counted.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT@+--     specifies that queries managed by the pool will count the number of+--     vertex shader invocations. This counter’s value is incremented each+--     time a vertex shader is+--     <{html_spec_relative}#shaders-vertex-execution invoked>.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT@+--     specifies that queries managed by the pool will count the number of+--     geometry shader invocations. This counter’s value is incremented+--     each time a geometry shader is+--     <{html_spec_relative}#shaders-geometry-execution invoked>. In the+--     case of+--     <{html_spec_relative}#geometry-invocations instanced geometry shaders>,+--     the geometry shader invocations count is incremented for each+--     separate instanced invocation.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT@+--     specifies that queries managed by the pool will count the number of+--     primitives generated by geometry shader invocations. The counter’s+--     value is incremented each time the geometry shader emits a+--     primitive. Restarting primitive topology using the SPIR-V+--     instructions @OpEndPrimitive@ or @OpEndStreamPrimitive@ has no+--     effect on the geometry shader output primitives count.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT@ specifies+--     that queries managed by the pool will count the number of primitives+--     processed by the+--     <{html_spec_relative}#vertexpostproc-clipping Primitive Clipping>+--     stage of the pipeline. The counter’s value is incremented each time+--     a primitive reaches the primitive clipping stage.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT@ specifies that+--     queries managed by the pool will count the number of primitives+--     output by the+--     <{html_spec_relative}#vertexpostproc-clipping Primitive Clipping>+--     stage of the pipeline. The counter’s value is incremented each time+--     a primitive passes the primitive clipping stage. The actual number+--     of primitives output by the primitive clipping stage for a+--     particular input primitive is implementation-dependent but /must/+--     satisfy the following conditions:+--+--     -   If at least one vertex of the input primitive lies inside the+--         clipping volume, the counter is incremented by one or more.+--+--     -   Otherwise, the counter is incremented by zero or more.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT@+--     specifies that queries managed by the pool will count the number of+--     fragment shader invocations. The counter’s value is incremented each+--     time the fragment shader is+--     <{html_spec_relative}#shaders-fragment-execution invoked>.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT@+--     specifies that queries managed by the pool will count the number of+--     patches processed by the tessellation control shader. The counter’s+--     value is incremented once for each patch for which a tessellation+--     control shader is+--     <{html_spec_relative}#shaders-tessellation-control-execution invoked>.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT@+--     specifies that queries managed by the pool will count the number of+--     invocations of the tessellation evaluation shader. The counter’s+--     value is incremented each time the tessellation evaluation shader is+--     <{html_spec_relative}#shaders-tessellation-evaluation-execution invoked>.+--+-- -   @VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT@+--     specifies that queries managed by the pool will count the number of+--     compute shader invocations. The counter’s value is incremented every+--     time the compute shader is invoked. Implementations /may/ skip the+--     execution of certain compute shader invocations or execute+--     additional compute shader invocations for implementation-dependent+--     reasons as long as the results of rendering otherwise remain+--     unchanged.+--+-- These values are intended to measure relative statistics on one+-- implementation. Various device architectures will count these values+-- differently. Any or all counters /may/ be affected by the issues+-- described in+-- <{html_spec_relative}#queries-operation-undefined Query Operation>.+--+-- __Note__+--+-- For example, tile-based rendering devices /may/ need to replay the scene+-- multiple times, affecting some of the counts.+--+-- If a pipeline has @rasterizerDiscardEnable@ enabled, implementations+-- /may/ discard primitives after the final vertex processing stage. As a+-- result, if @rasterizerDiscardEnable@ is enabled, the clipping input and+-- output primitives counters /may/ not be incremented.+--+-- When a pipeline statistics query finishes, the result for that query is+-- marked as available. The application /can/ copy the result to a buffer+-- (via @vkCmdCopyQueryPoolResults@), or request it be put into host memory+-- (via @vkGetQueryPoolResults@).+--+-- = See Also+-- #_see_also#+--+-- 'VkQueryPipelineStatisticFlags'+newtype VkQueryPipelineStatisticFlagBits = VkQueryPipelineStatisticFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkQueryPipelineStatisticFlagBits where+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"+  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"+  showsPrec p (VkQueryPipelineStatisticFlagBits x) = showParen (p >= 11) (showString "VkQueryPipelineStatisticFlagBits " . showsPrec 11 x)++instance Read VkQueryPipelineStatisticFlagBits where+  readPrec = parens ( choose [ ("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT",                    pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT",                  pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT",                  pure VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT",                pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT",                 pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT",                       pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT",                        pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT",                pure VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT",        pure VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT)+                             , ("VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT",                 pure VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkQueryPipelineStatisticFlagBits")+                        v <- step readPrec+                        pure (VkQueryPipelineStatisticFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = VkQueryPipelineStatisticFlagBits 0x00000001++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x00000002++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x00000004++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x00000008++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x00000010++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x00000020++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x00000040++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x00000080++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = VkQueryPipelineStatisticFlagBits 0x00000100++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x00000200++-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"+pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT :: VkQueryPipelineStatisticFlagBits+pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x00000400+-- | Dummy data to tag the 'Ptr' with+data VkQueryPool_T+-- | VkQueryPool - Opaque handle to a query pool object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBeginQuery',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyQueryPoolResults',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdEndQuery',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResetQueryPool',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdWriteTimestamp',+-- 'vkCreateQueryPool', 'vkDestroyQueryPool', 'vkGetQueryPoolResults'+type VkQueryPool = Ptr VkQueryPool_T+-- | vkCreateQueryPool - Create a new query pool object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the query pool.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkQueryPoolCreateInfo@ structure containing the number and type of+--     queries to be managed by the pool.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pQueryPool@ is a pointer to a @VkQueryPool@ handle in which the+--     resulting query pool object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkQueryPoolCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pQueryPool@ /must/ be a valid pointer to a @VkQueryPool@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkQueryPool',+-- 'VkQueryPoolCreateInfo'+foreign import ccall "vkCreateQueryPool" vkCreateQueryPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkQueryPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pQueryPool" ::: Ptr VkQueryPool) -> IO VkResult+-- | vkDestroyQueryPool - Destroy a query pool object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the query pool.+--+-- -   @queryPool@ is the query pool to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @queryPool@ /must/ have+--     completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @queryPool@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @queryPool@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @queryPool@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @queryPool@+--     /must/ be a valid @VkQueryPool@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @queryPool@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @queryPool@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkQueryPool'+foreign import ccall "vkDestroyQueryPool" vkDestroyQueryPool :: ("device" ::: VkDevice) -> ("queryPool" ::: VkQueryPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkGetQueryPoolResults - Copy results of queries in a query pool to a+-- host memory region+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the query pool.+--+-- -   @queryPool@ is the query pool managing the queries containing the+--     desired results.+--+-- -   @firstQuery@ is the initial query index.+--+-- -   @queryCount@ is the number of queries. @firstQuery@ and @queryCount@+--     together define a range of queries. For pipeline statistics queries,+--     each query index in the pool contains one integer value for each bit+--     that is enabled in 'VkQueryPoolCreateInfo'::@pipelineStatistics@+--     when the pool is created.+--+-- -   @dataSize@ is the size in bytes of the buffer pointed to by @pData@.+--+-- -   @pData@ is a pointer to a user-allocated buffer where the results+--     will be written+--+-- -   @stride@ is the stride in bytes between results for individual+--     queries within @pData@.+--+-- -   @flags@ is a bitmask of 'VkQueryResultFlagBits' specifying how and+--     when results are returned.+--+-- = Description+-- #_description#+--+-- If no bits are set in @flags@, and all requested queries are in the+-- available state, results are written as an array of 32-bit unsigned+-- integer values. The behavior when not all queries are available, is+-- described <{html_spec_relative}#queries-wait-bit-not-set below>.+--+-- If @VK_QUERY_RESULT_64_BIT@ is not set and the result overflows a 32-bit+-- value, the value /may/ either wrap or saturate. Similarly, if+-- @VK_QUERY_RESULT_64_BIT@ is set and the result overflows a 64-bit value,+-- the value /may/ either wrap or saturate.+--+-- If @VK_QUERY_RESULT_WAIT_BIT@ is set, Vulkan will wait for each query to+-- be in the available state before retrieving the numerical results for+-- that query. In this case, @vkGetQueryPoolResults@ is guaranteed to+-- succeed and return @VK_SUCCESS@ if the queries become available in a+-- finite time (i.e. if they have been issued and not reset). If queries+-- will never finish (e.g. due to being reset but not issued), then+-- @vkGetQueryPoolResults@ /may/ not return in finite time.+--+-- If @VK_QUERY_RESULT_WAIT_BIT@ and @VK_QUERY_RESULT_PARTIAL_BIT@ are both+-- not set then no result values are written to @pData@ for queries that+-- are in the unavailable state at the time of the call, and+-- @vkGetQueryPoolResults@ returns @VK_NOT_READY@. However, availability+-- state is still written to @pData@ for those queries if+-- @VK_QUERY_RESULT_WITH_AVAILABILITY_BIT@ is set.+--+-- __Note__+--+-- Applications /must/ take care to ensure that use of the+-- @VK_QUERY_RESULT_WAIT_BIT@ bit has the desired effect.+--+-- For example, if a query has been used previously and a command buffer+-- records the commands @vkCmdResetQueryPool@, @vkCmdBeginQuery@, and+-- @vkCmdEndQuery@ for that query, then the query will remain in the+-- available state until the @vkCmdResetQueryPool@ command executes on a+-- queue. Applications /can/ use fences or events to ensure that a query+-- has already been reset before checking for its results or availability+-- status. Otherwise, a stale value could be returned from a previous use+-- of the query.+--+-- The above also applies when @VK_QUERY_RESULT_WAIT_BIT@ is used in+-- combination with @VK_QUERY_RESULT_WITH_AVAILABILITY_BIT@. In this case,+-- the returned availability status /may/ reflect the result of a previous+-- use of the query unless the @vkCmdResetQueryPool@ command has been+-- executed since the last use of the query.+--+-- __Note__+--+-- Applications /can/ double-buffer query pool usage, with a pool per+-- frame, and reset queries at the end of the frame in which they are read.+--+-- If @VK_QUERY_RESULT_PARTIAL_BIT@ is set, @VK_QUERY_RESULT_WAIT_BIT@ is+-- not set, and the query’s status is unavailable, an intermediate result+-- value between zero and the final result value is written to @pData@ for+-- that query.+--+-- @VK_QUERY_RESULT_PARTIAL_BIT@ /must/ not be used if the pool’s+-- @queryType@ is @VK_QUERY_TYPE_TIMESTAMP@.+--+-- If @VK_QUERY_RESULT_WITH_AVAILABILITY_BIT@ is set, the final integer+-- value written for each query is non-zero if the query’s status was+-- available or zero if the status was unavailable. When+-- @VK_QUERY_RESULT_WITH_AVAILABILITY_BIT@ is used, implementations /must/+-- guarantee that if they return a non-zero availability value then the+-- numerical results /must/ be valid, assuming the results are not reset by+-- a subsequent command.+--+-- __Note__+--+-- Satisfying this guarantee /may/ require careful ordering by the+-- application, e.g. to read the availability status before reading the+-- results.+--+-- == Valid Usage+--+-- -   @firstQuery@ /must/ be less than the number of queries in+--     @queryPool@+--+-- -   If @VK_QUERY_RESULT_64_BIT@ is not set in @flags@ then @pData@ and+--     @stride@ /must/ be multiples of @4@+--+-- -   If @VK_QUERY_RESULT_64_BIT@ is set in @flags@ then @pData@ and+--     @stride@ /must/ be multiples of @8@+--+-- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or+--     equal to the number of queries in @queryPool@+--+-- -   @dataSize@ /must/ be large enough to contain the result of each+--     query, as described+--     <{html_spec_relative}#queries-operation-memorylayout here>+--+-- -   If the @queryType@ used to create @queryPool@ was+--     @VK_QUERY_TYPE_TIMESTAMP@, @flags@ /must/ not contain+--     @VK_QUERY_RESULT_PARTIAL_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @queryPool@ /must/ be a valid @VkQueryPool@ handle+--+-- -   @pData@ /must/ be a valid pointer to an array of @dataSize@ bytes+--+-- -   @flags@ /must/ be a valid combination of 'VkQueryResultFlagBits'+--     values+--+-- -   @dataSize@ /must/ be greater than @0@+--+-- -   @queryPool@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_NOT_READY@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', @VkDeviceSize@,+-- 'VkQueryPool', 'VkQueryResultFlags'+foreign import ccall "vkGetQueryPoolResults" vkGetQueryPoolResults :: ("device" ::: VkDevice) -> ("queryPool" ::: VkQueryPool) -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> ("dataSize" ::: CSize) -> ("pData" ::: Ptr ()) -> ("stride" ::: VkDeviceSize) -> ("flags" ::: VkQueryResultFlags) -> IO VkResult+-- | VkQueryPoolCreateInfo - Structure specifying parameters of a newly+-- created query pool+--+-- = Description+-- #_description#+--+-- @pipelineStatistics@ is ignored if @queryType@ is not+-- @VK_QUERY_TYPE_PIPELINE_STATISTICS@.+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-pipelineStatisticsQuery pipeline statistics queries>+--     feature is not enabled, @queryType@ /must/ not be+--     @VK_QUERY_TYPE_PIPELINE_STATISTICS@+--+-- -   If @queryType@ is @VK_QUERY_TYPE_PIPELINE_STATISTICS@,+--     @pipelineStatistics@ /must/ be a valid combination of+--     'VkQueryPipelineStatisticFlagBits' values+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   @queryType@ /must/ be a valid 'VkQueryType' value+--+-- = See Also+-- #_see_also#+--+-- 'VkQueryPipelineStatisticFlags', 'VkQueryPoolCreateFlags',+-- 'VkQueryType', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateQueryPool'+data VkQueryPoolCreateInfo = VkQueryPoolCreateInfo+  { -- No documentation found for Nested "VkQueryPoolCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkQueryPoolCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkQueryPoolCreateInfo" "vkFlags"+  vkFlags :: VkQueryPoolCreateFlags+  , -- No documentation found for Nested "VkQueryPoolCreateInfo" "vkQueryType"+  vkQueryType :: VkQueryType+  , -- No documentation found for Nested "VkQueryPoolCreateInfo" "vkQueryCount"+  vkQueryCount :: Word32+  , -- No documentation found for Nested "VkQueryPoolCreateInfo" "vkPipelineStatistics"+  vkPipelineStatistics :: VkQueryPipelineStatisticFlags+  }+  deriving (Eq, Show)++instance Storable VkQueryPoolCreateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkQueryPoolCreateInfo <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+                                   <*> peek (ptr `plusPtr` 20)+                                   <*> peek (ptr `plusPtr` 24)+                                   <*> peek (ptr `plusPtr` 28)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkQueryPoolCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkQueryPoolCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkQueryPoolCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkQueryType (poked :: VkQueryPoolCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkQueryCount (poked :: VkQueryPoolCreateInfo))+                *> poke (ptr `plusPtr` 28) (vkPipelineStatistics (poked :: VkQueryPoolCreateInfo))+-- | VkQueryResultFlags - Bitmask of VkQueryResultFlagBits+--+-- = Description+-- #_description#+--+-- @VkQueryResultFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkQueryResultFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkQueryResultFlagBits',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyQueryPoolResults',+-- 'vkGetQueryPoolResults'+type VkQueryResultFlags = VkQueryResultFlagBits+-- | VkQueryPipelineStatisticFlags - Bitmask of+-- VkQueryPipelineStatisticFlagBits+--+-- = Description+-- #_description#+--+-- @VkQueryPipelineStatisticFlags@ is a bitmask type for setting a mask of+-- zero or more 'VkQueryPipelineStatisticFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo',+-- 'VkQueryPipelineStatisticFlagBits', 'VkQueryPoolCreateInfo'+type VkQueryPipelineStatisticFlags = VkQueryPipelineStatisticFlagBits
+ src/Graphics/Vulkan/Core10/Queue.hs view
@@ -0,0 +1,939 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Queue+  ( VkPipelineStageFlagBits(..)+  , pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT+  , pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT+  , pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT+  , pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT+  , pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT+  , pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT+  , pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT+  , pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT+  , pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT+  , pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT+  , pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT+  , pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT+  , pattern VK_PIPELINE_STAGE_TRANSFER_BIT+  , pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT+  , pattern VK_PIPELINE_STAGE_HOST_BIT+  , pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT+  , pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT+  , VkQueue+  , VkCommandBuffer+  , VkFence+  , VkSemaphore+  , vkGetDeviceQueue+  , vkQueueSubmit+  , vkQueueWaitIdle+  , vkDeviceWaitIdle+  , VkSubmitInfo(..)+  , VkPipelineStageFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+++-- ** VkPipelineStageFlagBits++-- | VkPipelineStageFlagBits - Bitmask specifying pipeline stages+--+-- = Description+-- #_description#+--+-- -   @VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT@ specifies the stage of the+--     pipeline where any commands are initially received by the queue.+--+-- -   @VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT@ specifies the stage of the+--     pipeline where Draw\/DispatchIndirect data structures are consumed.+--+-- -   @VK_PIPELINE_STAGE_VERTEX_INPUT_BIT@ specifies the stage of the+--     pipeline where vertex and index buffers are consumed.+--+-- -   @VK_PIPELINE_STAGE_VERTEX_SHADER_BIT@ specifies the vertex shader+--     stage.+--+-- -   @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ specifies the+--     tessellation control shader stage.+--+-- -   @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@ specifies the+--     tessellation evaluation shader stage.+--+-- -   @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@ specifies the geometry+--     shader stage.+--+-- -   @VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT@ specifies the fragment+--     shader stage.+--+-- -   @VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT@ specifies the stage of+--     the pipeline where early fragment tests (depth and stencil tests+--     before fragment shading) are performed. This stage also includes+--     <{html_spec_relative}#renderpass-load-store-ops subpass load operations>+--     for framebuffer attachments with a depth\/stencil format.+--+-- -   @VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT@ specifies the stage of+--     the pipeline where late fragment tests (depth and stencil tests+--     after fragment shading) are performed. This stage also includes+--     <{html_spec_relative}#renderpass-load-store-ops subpass store operations>+--     for framebuffer attachments with a depth\/stencil format.+--+-- -   @VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT@ specifies the stage+--     of the pipeline after blending where the final color values are+--     output from the pipeline. This stage also includes+--     <{html_spec_relative}#renderpass-load-store-ops subpass load and store operations>+--     and multisample resolve operations for framebuffer attachments with+--     a color format.+--+-- -   @VK_PIPELINE_STAGE_TRANSFER_BIT@ specifies the execution of copy+--     commands. This includes the operations resulting from all+--     <{html_spec_relative}#copies copy commands>,+--     <{html_spec_relative}#clears clear commands> (with the exception of+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearAttachments'),+--     and+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyQueryPoolResults'.+--+-- -   @VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT@ specifies the execution of a+--     compute shader.+--+-- -   @VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT@ specifies the final stage in+--     the pipeline where operations generated by all commands complete+--     execution.+--+-- -   @VK_PIPELINE_STAGE_HOST_BIT@ specifies a pseudo-stage indicating+--     execution on the host of reads\/writes of device memory. This stage+--     is not invoked by any commands recorded in a command buffer.+--+-- -   @VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT@ specifies the execution of all+--     graphics pipeline stages, and is equivalent to the logical OR of:+--+--     -   @VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT@+--+--     -   @VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT@+--+--     -   @VK_PIPELINE_STAGE_VERTEX_INPUT_BIT@+--+--     -   @VK_PIPELINE_STAGE_VERTEX_SHADER_BIT@+--+--     -   @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@+--+--     -   @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+--     -   @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+--     -   @VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT@+--+--     -   @VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT@+--+--     -   @VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT@+--+--     -   @VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT@+--+--     -   @VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT@+--+-- -   @VK_PIPELINE_STAGE_ALL_COMMANDS_BIT@ is equivalent to the logical OR+--     of every other pipeline stage flag that is supported on the queue it+--     is used with.+--+-- __Note__+--+-- An execution dependency with only @VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT@+-- in the destination stage mask will only prevent that stage from+-- executing in subsequently submitted commands. As this stage does not+-- perform any actual execution, this is not observable - in effect, it+-- does not delay processing of subsequent commands. Similarly an execution+-- dependency with only @VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT@ in the source+-- stage mask will effectively not wait for any prior commands to complete.+--+-- When defining a memory dependency, using only+-- @VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT@ or+-- @VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT@ would never make any accesses+-- available and\/or visible because these stages do not access memory.+--+-- @VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT@ and+-- @VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT@ are useful for accomplishing layout+-- transitions and queue ownership operations when the required execution+-- dependency is satisfied by other means - for example, semaphore+-- operations between queues.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineStageFlags',+-- 'Graphics.Vulkan.Extensions.VK_AMD_buffer_marker.vkCmdWriteBufferMarkerAMD',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdWriteTimestamp'+newtype VkPipelineStageFlagBits = VkPipelineStageFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineStageFlagBits where+  showsPrec _ VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = showString "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"+  showsPrec _ VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = showString "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"+  showsPrec _ VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = showString "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"+  showsPrec _ VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = showString "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"+  showsPrec _ VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = showString "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"+  showsPrec _ VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = showString "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"+  showsPrec _ VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = showString "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"+  showsPrec _ VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = showString "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"+  showsPrec _ VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = showString "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"+  showsPrec _ VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = showString "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"+  showsPrec _ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = showString "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"+  showsPrec _ VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = showString "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"+  showsPrec _ VK_PIPELINE_STAGE_TRANSFER_BIT = showString "VK_PIPELINE_STAGE_TRANSFER_BIT"+  showsPrec _ VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = showString "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"+  showsPrec _ VK_PIPELINE_STAGE_HOST_BIT = showString "VK_PIPELINE_STAGE_HOST_BIT"+  showsPrec _ VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = showString "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"+  showsPrec _ VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = showString "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkPipelineStageFlagBits 0x00020000) = showString "VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX"+  showsPrec p (VkPipelineStageFlagBits x) = showParen (p >= 11) (showString "VkPipelineStageFlagBits " . showsPrec 11 x)++instance Read VkPipelineStageFlagBits where+  readPrec = parens ( choose [ ("VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT",                    pure VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT)+                             , ("VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT",                  pure VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT)+                             , ("VK_PIPELINE_STAGE_VERTEX_INPUT_BIT",                   pure VK_PIPELINE_STAGE_VERTEX_INPUT_BIT)+                             , ("VK_PIPELINE_STAGE_VERTEX_SHADER_BIT",                  pure VK_PIPELINE_STAGE_VERTEX_SHADER_BIT)+                             , ("VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT",    pure VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT)+                             , ("VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", pure VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT)+                             , ("VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT",                pure VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT)+                             , ("VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT",                pure VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT)+                             , ("VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT",           pure VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT)+                             , ("VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT",            pure VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT)+                             , ("VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT",        pure VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)+                             , ("VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT",                 pure VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT)+                             , ("VK_PIPELINE_STAGE_TRANSFER_BIT",                       pure VK_PIPELINE_STAGE_TRANSFER_BIT)+                             , ("VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT",                 pure VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT)+                             , ("VK_PIPELINE_STAGE_HOST_BIT",                           pure VK_PIPELINE_STAGE_HOST_BIT)+                             , ("VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT",                   pure VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT)+                             , ("VK_PIPELINE_STAGE_ALL_COMMANDS_BIT",                   pure VK_PIPELINE_STAGE_ALL_COMMANDS_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX", pure (VkPipelineStageFlagBits 0x00020000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineStageFlagBits")+                        v <- step readPrec+                        pure (VkPipelineStageFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"+pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = VkPipelineStageFlagBits 0x00000001++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"+pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = VkPipelineStageFlagBits 0x00000002++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"+pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = VkPipelineStageFlagBits 0x00000004++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"+pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = VkPipelineStageFlagBits 0x00000008++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"+pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = VkPipelineStageFlagBits 0x00000010++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"+pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = VkPipelineStageFlagBits 0x00000020++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"+pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = VkPipelineStageFlagBits 0x00000040++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"+pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = VkPipelineStageFlagBits 0x00000080++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"+pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = VkPipelineStageFlagBits 0x00000100++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"+pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = VkPipelineStageFlagBits 0x00000200++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"+pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = VkPipelineStageFlagBits 0x00000400++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"+pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = VkPipelineStageFlagBits 0x00000800++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_TRANSFER_BIT"+pattern VK_PIPELINE_STAGE_TRANSFER_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_TRANSFER_BIT = VkPipelineStageFlagBits 0x00001000++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"+pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = VkPipelineStageFlagBits 0x00002000++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_HOST_BIT"+pattern VK_PIPELINE_STAGE_HOST_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_HOST_BIT = VkPipelineStageFlagBits 0x00004000++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"+pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = VkPipelineStageFlagBits 0x00008000++-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"+pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = VkPipelineStageFlagBits 0x00010000+-- | Dummy data to tag the 'Ptr' with+data VkQueue_T+-- | VkQueue - Opaque handle to a queue object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'vkGetDeviceQueue',+-- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.vkGetDeviceQueue2',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkQueueBeginDebugUtilsLabelEXT',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkQueueBindSparse',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkQueueEndDebugUtilsLabelEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkQueueInsertDebugUtilsLabelEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkQueuePresentKHR',+-- 'vkQueueSubmit', 'vkQueueWaitIdle'+type VkQueue = Ptr VkQueue_T+-- | Dummy data to tag the 'Ptr' with+data VkCommandBuffer_T+-- | VkCommandBuffer - Opaque handle to a command buffer object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX',+-- 'VkSubmitInfo',+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkAllocateCommandBuffers',+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkBeginCommandBuffer',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkCmdBeginDebugUtilsLabelEXT',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBeginQuery',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBeginRenderPass',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindDescriptorSets',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindIndexBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindPipeline',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBindVertexBuffers',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBlitImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearAttachments',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearColorImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearDepthStencilImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyBufferToImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyImageToBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdCopyQueryPoolResults',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.vkCmdDebugMarkerBeginEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.vkCmdDebugMarkerEndEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.vkCmdDebugMarkerInsertEXT',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDispatch',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.vkCmdDispatchBase',+-- 'Graphics.Vulkan.Extensions.VK_KHR_device_group.vkCmdDispatchBaseKHR',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDispatchIndirect',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDraw',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndexed',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndexedIndirect',+-- 'Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count.vkCmdDrawIndexedIndirectCountAMD',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndirect',+-- 'Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count.vkCmdDrawIndirectCountAMD',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkCmdEndDebugUtilsLabelEXT',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdEndQuery',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdEndRenderPass',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdExecuteCommands',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdFillBuffer',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_utils.vkCmdInsertDebugUtilsLabelEXT',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdNextSubpass',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdPipelineBarrier',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkCmdProcessCommandsNVX',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdPushConstants',+-- 'Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.vkCmdPushDescriptorSetKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.vkCmdPushDescriptorSetWithTemplateKHR',+-- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.vkCmdReserveSpaceForCommandsNVX',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResetEvent',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResetQueryPool',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResolveImage',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetBlendConstants',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetDepthBias',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetDepthBounds',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.vkCmdSetDeviceMask',+-- 'Graphics.Vulkan.Extensions.VK_KHR_device_group.vkCmdSetDeviceMaskKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.vkCmdSetDiscardRectangleEXT',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetEvent',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetLineWidth',+-- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.vkCmdSetSampleLocationsEXT',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetScissor',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetStencilCompareMask',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetStencilReference',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetStencilWriteMask',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetViewport',+-- 'Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.vkCmdSetViewportWScalingNV',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdUpdateBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdWaitEvents',+-- 'Graphics.Vulkan.Extensions.VK_AMD_buffer_marker.vkCmdWriteBufferMarkerAMD',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdWriteTimestamp',+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkEndCommandBuffer',+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkFreeCommandBuffers',+-- 'Graphics.Vulkan.Core10.CommandBuffer.vkResetCommandBuffer'+type VkCommandBuffer = Ptr VkCommandBuffer_T+-- | Dummy data to tag the 'Ptr' with+data VkFence_T+-- | VkFence - Opaque handle to a fence object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkFenceGetFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32.VkFenceGetWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkImportFenceFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32.VkImportFenceWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkAcquireNextImageKHR',+-- 'Graphics.Vulkan.Core10.Fence.vkCreateFence',+-- 'Graphics.Vulkan.Core10.Fence.vkDestroyFence',+-- 'Graphics.Vulkan.Core10.Fence.vkGetFenceStatus',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkQueueBindSparse',+-- 'vkQueueSubmit',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkRegisterDeviceEventEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkRegisterDisplayEventEXT',+-- 'Graphics.Vulkan.Core10.Fence.vkResetFences',+-- 'Graphics.Vulkan.Core10.Fence.vkWaitForFences'+type VkFence = Ptr VkFence_T+-- | Dummy data to tag the 'Ptr' with+data VkSemaphore_T+-- | VkSemaphore - Opaque handle to a semaphore object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR',+-- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkBindSparseInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkImportSemaphoreFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.VkImportSemaphoreWin32HandleInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkSemaphoreGetFdInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.VkSemaphoreGetWin32HandleInfoKHR',+-- 'VkSubmitInfo',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkAcquireNextImageKHR',+-- 'Graphics.Vulkan.Core10.QueueSemaphore.vkCreateSemaphore',+-- 'Graphics.Vulkan.Core10.QueueSemaphore.vkDestroySemaphore'+type VkSemaphore = Ptr VkSemaphore_T+-- | vkGetDeviceQueue - Get a queue handle from a device+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the queue.+--+-- -   @queueFamilyIndex@ is the index of the queue family to which the+--     queue belongs.+--+-- -   @queueIndex@ is the index within this queue family of the queue to+--     retrieve.+--+-- -   @pQueue@ is a pointer to a @VkQueue@ object that will be filled with+--     the handle for the requested queue.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be one of the queue family indices+--     specified when @device@ was created, via the+--     @VkDeviceQueueCreateInfo@ structure+--+-- -   @queueIndex@ /must/ be less than the number of queues created for+--     the specified queue family index when @device@ was created, via the+--     @queueCount@ member of the @VkDeviceQueueCreateInfo@ structure+--+-- -   'Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateInfo'::@flags@+--     /must/ have been set to zero when @device@ was created+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pQueue@ /must/ be a valid pointer to a @VkQueue@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkQueue'+foreign import ccall "vkGetDeviceQueue" vkGetDeviceQueue :: ("device" ::: VkDevice) -> ("queueFamilyIndex" ::: Word32) -> ("queueIndex" ::: Word32) -> ("pQueue" ::: Ptr VkQueue) -> IO ()+-- | vkQueueSubmit - Submits a sequence of semaphores or command buffers to a+-- queue+--+-- = Parameters+-- #_parameters#+--+-- -   @queue@ is the queue that the command buffers will be submitted to.+--+-- -   @submitCount@ is the number of elements in the @pSubmits@ array.+--+-- -   @pSubmits@ is a pointer to an array of 'VkSubmitInfo' structures,+--     each specifying a command buffer submission batch.+--+-- -   @fence@ is an /optional/ handle to a fence to be signaled once all+--     submitted command buffers have completed execution. If @fence@ is+--     not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', it defines a+--     <{html_spec_relative}#synchronization-fences-signaling fence signal operation>.+--+-- = Description+-- #_description#+--+-- __Note__+--+-- Submission can be a high overhead operation, and applications /should/+-- attempt to batch work together into as few calls to @vkQueueSubmit@ as+-- possible.+--+-- @vkQueueSubmit@ is a+-- <{html_spec_relative}#devsandqueues-submission queue submission command>,+-- with each batch defined by an element of @pSubmits@ as an instance of+-- the 'VkSubmitInfo' structure. Batches begin execution in the order they+-- appear in @pSubmits@, but /may/ complete out of order.+--+-- Fence and semaphore operations submitted with 'vkQueueSubmit' have+-- additional ordering constraints compared to other submission commands,+-- with dependencies involving previous and subsequent queue operations.+-- Information about these additional constraints can be found in the+-- <{html_spec_relative}#synchronization-semaphores semaphore> and+-- <{html_spec_relative}#synchronization-fences fence> sections of+-- <{html_spec_relative}#synchronization the synchronization chapter>.+--+-- Details on the interaction of @pWaitDstStageMask@ with synchronization+-- are described in the+-- <{html_spec_relative}#synchronization-semaphores-waiting semaphore wait operation>+-- section of+-- <{html_spec_relative}#synchronization the synchronization chapter>.+--+-- The order that batches appear in @pSubmits@ is used to determine+-- <{html_spec_relative}#synchronization-submission-order submission order>,+-- and thus all the+-- <{html_spec_relative}#synchronization-implicit implicit ordering guarantees>+-- that respect it. Other than these implicit ordering guarantees and any+-- <{html_spec_relative}#synchronization explicit synchronization primitives>,+-- these batches /may/ overlap or otherwise execute out of order.+--+-- If any command buffer submitted to this queue is in the+-- <{html_spec_relative}#commandbuffers-lifecycle executable state>, it is+-- moved to the+-- <{html_spec_relative}#commandbuffers-lifecycle pending state>. Once+-- execution of all submissions of a command buffer complete, it moves from+-- the <{html_spec_relative}#commandbuffers-lifecycle pending state>, back+-- to the <{html_spec_relative}#commandbuffers-lifecycle executable state>.+-- If a command buffer was recorded with the+-- @VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT@ flag, it instead moves+-- back to the+-- <{html_spec_relative}#commandbuffers-lifecycle invalid state>.+--+-- If @vkQueueSubmit@ fails, it /may/ return @VK_ERROR_OUT_OF_HOST_MEMORY@+-- or @VK_ERROR_OUT_OF_DEVICE_MEMORY@. If it does, the implementation+-- /must/ ensure that the state and contents of any resources or+-- synchronization primitives referenced by the submitted command buffers+-- and any semaphores referenced by @pSubmits@ is unaffected by the call or+-- its failure. If @vkQueueSubmit@ fails in such a way that the+-- implementation is unable to make that guarantee, the implementation+-- /must/ return @VK_ERROR_DEVICE_LOST@. See+-- <{html_spec_relative}#devsandqueues-lost-device Lost Device>.+--+-- == Valid Usage+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ be unsignaled+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ not be associated with any other queue command that+--     has not yet completed execution on that queue+--+-- -   Any calls to+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetEvent',+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResetEvent' or+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdWaitEvents' that+--     have been recorded into any of the command buffer elements of the+--     @pCommandBuffers@ member of any element of @pSubmits@, /must/ not+--     reference any 'Graphics.Vulkan.Core10.Event.VkEvent' that is+--     referenced by any of those commands in a command buffer that has+--     been submitted to another queue and is still in the /pending state/.+--+-- -   Any stage flag included in any element of the @pWaitDstStageMask@+--     member of any element of @pSubmits@ /must/ be a pipeline stage+--     supported by one of the capabilities of @queue@, as specified in the+--     <{html_spec_relative}#synchronization-pipeline-stages-supported table of supported pipeline stages>.+--+-- -   Each element of the @pSignalSemaphores@ member of any element of+--     @pSubmits@ /must/ be unsignaled when the semaphore signal operation+--     it defines is executed on the device+--+-- -   When a semaphore unsignal operation defined by any element of the+--     @pWaitSemaphores@ member of any element of @pSubmits@ executes on+--     @queue@, no other queue /must/ be waiting on the same semaphore.+--+-- -   All elements of the @pWaitSemaphores@ member of all elements of+--     @pSubmits@ /must/ be semaphores that are signaled, or have+--     <{html_spec_relative}#synchronization-semaphores-signaling semaphore signal operations>+--     previously submitted for execution.+--+-- -   Each element of the @pCommandBuffers@ member of each element of+--     @pSubmits@ /must/ be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending or executable state>.+--+-- -   If any element of the @pCommandBuffers@ member of any element of+--     @pSubmits@ was not recorded with the+--     @VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT@, it /must/ not be in+--     the <{html_spec_relative}#commandbuffers-lifecycle pending state>.+--+-- -   Any+--     <{html_spec_relative}#commandbuffers-secondary secondary command buffers recorded>+--     into any element of the @pCommandBuffers@ member of any element of+--     @pSubmits@ /must/ be in the+--     <{html_spec_relative}#commandbuffers-lifecycle pending or executable state>.+--+-- -   If any+--     <{html_spec_relative}#commandbuffers-secondary secondary command buffers recorded>+--     into any element of the @pCommandBuffers@ member of any element of+--     @pSubmits@ was not recorded with the+--     @VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT@, it /must/ not be in+--     the <{html_spec_relative}#commandbuffers-lifecycle pending state>.+--+-- -   Each element of the @pCommandBuffers@ member of each element of+--     @pSubmits@ /must/ have been allocated from a @VkCommandPool@ that+--     was created for the same queue family @queue@ belongs to.+--+-- == Valid Usage (Implicit)+--+-- -   @queue@ /must/ be a valid @VkQueue@ handle+--+-- -   If @submitCount@ is not @0@, @pSubmits@ /must/ be a valid pointer to+--     an array of @submitCount@ valid @VkSubmitInfo@ structures+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ be a valid @VkFence@ handle+--+-- -   Both of @fence@, and @queue@ that are valid handles /must/ have been+--     created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @queue@ /must/ be externally synchronized+--+-- -   Host access to @pSubmits@[].pWaitSemaphores[] /must/ be externally+--     synchronized+--+-- -   Host access to @pSubmits@[].pSignalSemaphores[] /must/ be externally+--     synchronized+--+-- -   Host access to @fence@ /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | -               | -               | Any             | -               |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+-- = See Also+-- #_see_also#+--+-- 'VkFence', 'VkQueue', 'VkSubmitInfo'+foreign import ccall "vkQueueSubmit" vkQueueSubmit :: ("queue" ::: VkQueue) -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr VkSubmitInfo) -> ("fence" ::: VkFence) -> IO VkResult+-- | vkQueueWaitIdle - Wait for a queue to become idle+--+-- = Parameters+-- #_parameters#+--+-- -   @queue@ is the queue on which to wait.+--+-- = Description+-- #_description#+--+-- @vkQueueWaitIdle@ is equivalent to submitting a fence to a queue and+-- waiting with an infinite timeout for that fence to signal.+--+-- == Valid Usage (Implicit)+--+-- -   @queue@ /must/ be a valid @VkQueue@ handle+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | -               | -               | Any             | -               |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+-- = See Also+-- #_see_also#+--+-- 'VkQueue'+foreign import ccall "vkQueueWaitIdle" vkQueueWaitIdle :: ("queue" ::: VkQueue) -> IO VkResult+-- | vkDeviceWaitIdle - Wait for a device to become idle+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device to idle.+--+-- = Description+-- #_description#+--+-- @vkDeviceWaitIdle@ is equivalent to calling @vkQueueWaitIdle@ for all+-- queues owned by @device@.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- == Host Synchronization+--+-- -   Host access to all @VkQueue@ objects created from @device@ /must/ be+--     externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDeviceWaitIdle" vkDeviceWaitIdle :: ("device" ::: VkDevice) -> IO VkResult+-- | VkSubmitInfo - Structure specifying a queue submit operation+--+-- = Description+-- #_description#+--+-- The order that command buffers appear in @pCommandBuffers@ is used to+-- determine+-- <{html_spec_relative}#synchronization-submission-order submission order>,+-- and thus all the+-- <{html_spec_relative}#synchronization-implicit implicit ordering guarantees>+-- that respect it. Other than these implicit ordering guarantees and any+-- <{html_spec_relative}#synchronization explicit synchronization primitives>,+-- these command buffers /may/ overlap or otherwise execute out of order.+--+-- == Valid Usage+--+-- -   Each element of @pCommandBuffers@ /must/ not have been allocated+--     with @VK_COMMAND_BUFFER_LEVEL_SECONDARY@+--+-- -   If the+--     <{html_spec_relative}#features-features-geometryShader geometry shaders>+--     feature is not enabled, each element of @pWaitDstStageMask@ /must/+--     not contain @VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT@+--+-- -   If the+--     <{html_spec_relative}#features-features-tessellationShader tessellation shaders>+--     feature is not enabled, each element of @pWaitDstStageMask@ /must/+--     not contain @VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT@ or+--     @VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT@+--+-- -   Each element of @pWaitDstStageMask@ /must/ not include+--     @VK_PIPELINE_STAGE_HOST_BIT@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SUBMIT_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.VkD3D12FenceSubmitInfoKHR',+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupSubmitInfo',+--     'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo',+--     'Graphics.Vulkan.Extensions.VK_KHR_win32_keyed_mutex.VkWin32KeyedMutexAcquireReleaseInfoKHR',+--     or+--     'Graphics.Vulkan.Extensions.VK_NV_win32_keyed_mutex.VkWin32KeyedMutexAcquireReleaseInfoNV'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   If @waitSemaphoreCount@ is not @0@, @pWaitSemaphores@ /must/ be a+--     valid pointer to an array of @waitSemaphoreCount@ valid+--     @VkSemaphore@ handles+--+-- -   If @waitSemaphoreCount@ is not @0@, @pWaitDstStageMask@ /must/ be a+--     valid pointer to an array of @waitSemaphoreCount@ valid combinations+--     of 'VkPipelineStageFlagBits' values+--+-- -   Each element of @pWaitDstStageMask@ /must/ not be @0@+--+-- -   If @commandBufferCount@ is not @0@, @pCommandBuffers@ /must/ be a+--     valid pointer to an array of @commandBufferCount@ valid+--     @VkCommandBuffer@ handles+--+-- -   If @signalSemaphoreCount@ is not @0@, @pSignalSemaphores@ /must/ be+--     a valid pointer to an array of @signalSemaphoreCount@ valid+--     @VkSemaphore@ handles+--+-- -   Each of the elements of @pCommandBuffers@, the elements of+--     @pSignalSemaphores@, and the elements of @pWaitSemaphores@ that are+--     valid handles /must/ have been created, allocated, or retrieved from+--     the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'VkCommandBuffer', 'VkPipelineStageFlags', 'VkSemaphore',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkQueueSubmit'+data VkSubmitInfo = VkSubmitInfo+  { -- No documentation found for Nested "VkSubmitInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSubmitInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSubmitInfo" "vkWaitSemaphoreCount"+  vkWaitSemaphoreCount :: Word32+  , -- No documentation found for Nested "VkSubmitInfo" "vkPWaitSemaphores"+  vkPWaitSemaphores :: Ptr VkSemaphore+  , -- No documentation found for Nested "VkSubmitInfo" "vkPWaitDstStageMask"+  vkPWaitDstStageMask :: Ptr VkPipelineStageFlags+  , -- No documentation found for Nested "VkSubmitInfo" "vkCommandBufferCount"+  vkCommandBufferCount :: Word32+  , -- No documentation found for Nested "VkSubmitInfo" "vkPCommandBuffers"+  vkPCommandBuffers :: Ptr VkCommandBuffer+  , -- No documentation found for Nested "VkSubmitInfo" "vkSignalSemaphoreCount"+  vkSignalSemaphoreCount :: Word32+  , -- No documentation found for Nested "VkSubmitInfo" "vkPSignalSemaphores"+  vkPSignalSemaphores :: Ptr VkSemaphore+  }+  deriving (Eq, Show)++instance Storable VkSubmitInfo where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkSubmitInfo <$> peek (ptr `plusPtr` 0)+                          <*> peek (ptr `plusPtr` 8)+                          <*> peek (ptr `plusPtr` 16)+                          <*> peek (ptr `plusPtr` 24)+                          <*> peek (ptr `plusPtr` 32)+                          <*> peek (ptr `plusPtr` 40)+                          <*> peek (ptr `plusPtr` 48)+                          <*> peek (ptr `plusPtr` 56)+                          <*> peek (ptr `plusPtr` 64)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSubmitInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSubmitInfo))+                *> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkSubmitInfo))+                *> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkSubmitInfo))+                *> poke (ptr `plusPtr` 32) (vkPWaitDstStageMask (poked :: VkSubmitInfo))+                *> poke (ptr `plusPtr` 40) (vkCommandBufferCount (poked :: VkSubmitInfo))+                *> poke (ptr `plusPtr` 48) (vkPCommandBuffers (poked :: VkSubmitInfo))+                *> poke (ptr `plusPtr` 56) (vkSignalSemaphoreCount (poked :: VkSubmitInfo))+                *> poke (ptr `plusPtr` 64) (vkPSignalSemaphores (poked :: VkSubmitInfo))+-- | VkPipelineStageFlags - Bitmask of VkPipelineStageFlagBits+--+-- = Description+-- #_description#+--+-- @VkPipelineStageFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkPipelineStageFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineStageFlagBits', 'VkSubmitInfo',+-- 'Graphics.Vulkan.Core10.Pass.VkSubpassDependency',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdPipelineBarrier',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdResetEvent',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdSetEvent',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdWaitEvents'+type VkPipelineStageFlags = VkPipelineStageFlagBits
+ src/Graphics/Vulkan/Core10/QueueSemaphore.hs view
@@ -0,0 +1,241 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.QueueSemaphore+  ( VkSemaphoreCreateFlags(..)+  , vkCreateSemaphore+  , vkDestroySemaphore+  , VkSemaphoreCreateInfo(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkSemaphore+  )+++-- ** VkSemaphoreCreateFlags++-- | VkSemaphoreCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkSemaphoreCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkSemaphoreCreateInfo'+newtype VkSemaphoreCreateFlags = VkSemaphoreCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSemaphoreCreateFlags where+  +  showsPrec p (VkSemaphoreCreateFlags x) = showParen (p >= 11) (showString "VkSemaphoreCreateFlags " . showsPrec 11 x)++instance Read VkSemaphoreCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSemaphoreCreateFlags")+                        v <- step readPrec+                        pure (VkSemaphoreCreateFlags v)+                        )+                    )+++-- | vkCreateSemaphore - Create a new queue semaphore object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the semaphore.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkSemaphoreCreateInfo@ structure which contains information about+--     how the semaphore is to be created.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pSemaphore@ points to a handle in which the resulting semaphore+--     object is returned.+--+-- = Description+-- #_description#+--+-- When created, the semaphore is in the unsignaled state.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkSemaphoreCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSemaphore@ /must/ be a valid pointer to a @VkSemaphore@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore', 'VkSemaphoreCreateInfo'+foreign import ccall "vkCreateSemaphore" vkCreateSemaphore :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSemaphoreCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSemaphore" ::: Ptr VkSemaphore) -> IO VkResult+-- | vkDestroySemaphore - Destroy a semaphore object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the semaphore.+--+-- -   @semaphore@ is the handle of the semaphore to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted batches that refer to @semaphore@ /must/ have+--     completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @semaphore@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @semaphore@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @semaphore@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @semaphore@+--     /must/ be a valid @VkSemaphore@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @semaphore@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @semaphore@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore'+foreign import ccall "vkDestroySemaphore" vkDestroySemaphore :: ("device" ::: VkDevice) -> ("semaphore" ::: VkSemaphore) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkSemaphoreCreateInfo - Structure specifying parameters of a newly+-- created semaphore+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo'+--     or+--     'Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32.VkExportSemaphoreWin32HandleInfoKHR'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkSemaphoreCreateFlags', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateSemaphore'+data VkSemaphoreCreateInfo = VkSemaphoreCreateInfo+  { -- No documentation found for Nested "VkSemaphoreCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSemaphoreCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSemaphoreCreateInfo" "vkFlags"+  vkFlags :: VkSemaphoreCreateFlags+  }+  deriving (Eq, Show)++instance Storable VkSemaphoreCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSemaphoreCreateInfo <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSemaphoreCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSemaphoreCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSemaphoreCreateInfo))
+ src/Graphics/Vulkan/Core10/Sampler.hs view
@@ -0,0 +1,768 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Sampler+  ( VkBorderColor(..)+  , pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK+  , pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK+  , pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK+  , pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK+  , pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE+  , pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE+  , VkSamplerAddressMode(..)+  , pattern VK_SAMPLER_ADDRESS_MODE_REPEAT+  , pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT+  , pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE+  , pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER+  , VkFilter(..)+  , pattern VK_FILTER_NEAREST+  , pattern VK_FILTER_LINEAR+  , VkSamplerMipmapMode(..)+  , pattern VK_SAMPLER_MIPMAP_MODE_NEAREST+  , pattern VK_SAMPLER_MIPMAP_MODE_LINEAR+  , VkSamplerCreateFlags(..)+  , VkSampler+  , vkCreateSampler+  , vkDestroySampler+  , VkSamplerCreateInfo(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Foreign.C.Types+  ( CFloat(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkCompareOp(..)+  )+++-- ** VkBorderColor++-- | VkBorderColor - Specify border color used for texture lookups+--+-- = Description+-- #_description#+--+-- -   @VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK@ specifies a transparent,+--     floating-point format, black color.+--+-- -   @VK_BORDER_COLOR_INT_TRANSPARENT_BLACK@ specifies a transparent,+--     integer format, black color.+--+-- -   @VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK@ specifies an opaque,+--     floating-point format, black color.+--+-- -   @VK_BORDER_COLOR_INT_OPAQUE_BLACK@ specifies an opaque, integer+--     format, black color.+--+-- -   @VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE@ specifies an opaque,+--     floating-point format, white color.+--+-- -   @VK_BORDER_COLOR_INT_OPAQUE_WHITE@ specifies an opaque, integer+--     format, white color.+--+-- These colors are described in detail in+-- <{html_spec_relative}#textures-texel-replacement Texel Replacement>.+--+-- = See Also+-- #_see_also#+--+-- 'VkSamplerCreateInfo'+newtype VkBorderColor = VkBorderColor Int32+  deriving (Eq, Ord, Storable)++instance Show VkBorderColor where+  showsPrec _ VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = showString "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK"+  showsPrec _ VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = showString "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK"+  showsPrec _ VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = showString "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK"+  showsPrec _ VK_BORDER_COLOR_INT_OPAQUE_BLACK = showString "VK_BORDER_COLOR_INT_OPAQUE_BLACK"+  showsPrec _ VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = showString "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE"+  showsPrec _ VK_BORDER_COLOR_INT_OPAQUE_WHITE = showString "VK_BORDER_COLOR_INT_OPAQUE_WHITE"+  showsPrec p (VkBorderColor x) = showParen (p >= 11) (showString "VkBorderColor " . showsPrec 11 x)++instance Read VkBorderColor where+  readPrec = parens ( choose [ ("VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK", pure VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK)+                             , ("VK_BORDER_COLOR_INT_TRANSPARENT_BLACK",   pure VK_BORDER_COLOR_INT_TRANSPARENT_BLACK)+                             , ("VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK",      pure VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK)+                             , ("VK_BORDER_COLOR_INT_OPAQUE_BLACK",        pure VK_BORDER_COLOR_INT_OPAQUE_BLACK)+                             , ("VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE",      pure VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE)+                             , ("VK_BORDER_COLOR_INT_OPAQUE_WHITE",        pure VK_BORDER_COLOR_INT_OPAQUE_WHITE)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkBorderColor")+                        v <- step readPrec+                        pure (VkBorderColor v)+                        )+                    )++-- No documentation found for Nested "VkBorderColor" "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK"+pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK :: VkBorderColor+pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = VkBorderColor 0++-- No documentation found for Nested "VkBorderColor" "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK"+pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK :: VkBorderColor+pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = VkBorderColor 1++-- No documentation found for Nested "VkBorderColor" "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK"+pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK :: VkBorderColor+pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = VkBorderColor 2++-- No documentation found for Nested "VkBorderColor" "VK_BORDER_COLOR_INT_OPAQUE_BLACK"+pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK :: VkBorderColor+pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK = VkBorderColor 3++-- No documentation found for Nested "VkBorderColor" "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE"+pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE :: VkBorderColor+pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = VkBorderColor 4++-- No documentation found for Nested "VkBorderColor" "VK_BORDER_COLOR_INT_OPAQUE_WHITE"+pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE :: VkBorderColor+pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE = VkBorderColor 5+-- ** VkSamplerAddressMode++-- | VkSamplerAddressMode - Specify behavior of sampling with texture+-- coordinates outside an image+--+-- = See Also+-- #_see_also#+--+-- 'VkSamplerCreateInfo'+newtype VkSamplerAddressMode = VkSamplerAddressMode Int32+  deriving (Eq, Ord, Storable)++instance Show VkSamplerAddressMode where+  showsPrec _ VK_SAMPLER_ADDRESS_MODE_REPEAT = showString "VK_SAMPLER_ADDRESS_MODE_REPEAT"+  showsPrec _ VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = showString "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"+  showsPrec _ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = showString "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"+  showsPrec _ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = showString "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkSamplerAddressMode 4) = showString "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE"+  showsPrec p (VkSamplerAddressMode x) = showParen (p >= 11) (showString "VkSamplerAddressMode " . showsPrec 11 x)++instance Read VkSamplerAddressMode where+  readPrec = parens ( choose [ ("VK_SAMPLER_ADDRESS_MODE_REPEAT",          pure VK_SAMPLER_ADDRESS_MODE_REPEAT)+                             , ("VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT", pure VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT)+                             , ("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE",   pure VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE)+                             , ("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER", pure VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE", pure (VkSamplerAddressMode 4))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSamplerAddressMode")+                        v <- step readPrec+                        pure (VkSamplerAddressMode v)+                        )+                    )++-- | @VK_SAMPLER_ADDRESS_MODE_REPEAT@ specifies that the repeat wrap mode+-- will be used.+pattern VK_SAMPLER_ADDRESS_MODE_REPEAT :: VkSamplerAddressMode+pattern VK_SAMPLER_ADDRESS_MODE_REPEAT = VkSamplerAddressMode 0++-- | @VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT@ specifies that the mirrored+-- repeat wrap mode will be used.+pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT :: VkSamplerAddressMode+pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = VkSamplerAddressMode 1++-- | @VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE@ specifies that the clamp to edge+-- wrap mode will be used.+pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE :: VkSamplerAddressMode+pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = VkSamplerAddressMode 2++-- | @VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER@ specifies that the clamp to+-- border wrap mode will be used.+pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER :: VkSamplerAddressMode+pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = VkSamplerAddressMode 3+-- ** VkFilter++-- | VkFilter - Specify filters used for texture lookups+--+-- = Description+-- #_description#+--+-- -   @VK_FILTER_NEAREST@ specifies nearest filtering.+--+-- -   @VK_FILTER_LINEAR@ specifies linear filtering.+--+-- These filters are described in detail in+-- <{html_spec_relative}#textures-texel-filtering Texel Filtering>.+--+-- = See Also+-- #_see_also#+--+-- 'VkSamplerCreateInfo',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdBlitImage'+newtype VkFilter = VkFilter Int32+  deriving (Eq, Ord, Storable)++instance Show VkFilter where+  showsPrec _ VK_FILTER_NEAREST = showString "VK_FILTER_NEAREST"+  showsPrec _ VK_FILTER_LINEAR = showString "VK_FILTER_LINEAR"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkFilter 1000015000) = showString "VK_FILTER_CUBIC_IMG"+  showsPrec p (VkFilter x) = showParen (p >= 11) (showString "VkFilter " . showsPrec 11 x)++instance Read VkFilter where+  readPrec = parens ( choose [ ("VK_FILTER_NEAREST", pure VK_FILTER_NEAREST)+                             , ("VK_FILTER_LINEAR",  pure VK_FILTER_LINEAR)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_FILTER_CUBIC_IMG", pure (VkFilter 1000015000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkFilter")+                        v <- step readPrec+                        pure (VkFilter v)+                        )+                    )++-- No documentation found for Nested "VkFilter" "VK_FILTER_NEAREST"+pattern VK_FILTER_NEAREST :: VkFilter+pattern VK_FILTER_NEAREST = VkFilter 0++-- No documentation found for Nested "VkFilter" "VK_FILTER_LINEAR"+pattern VK_FILTER_LINEAR :: VkFilter+pattern VK_FILTER_LINEAR = VkFilter 1+-- ** VkSamplerMipmapMode++-- | VkSamplerMipmapMode - Specify mipmap mode used for texture lookups+--+-- = Description+-- #_description#+--+-- -   @VK_SAMPLER_MIPMAP_MODE_NEAREST@ specifies nearest filtering.+--+-- -   @VK_SAMPLER_MIPMAP_MODE_LINEAR@ specifies linear filtering.+--+-- These modes are described in detail in+-- <{html_spec_relative}#textures-texel-filtering Texel Filtering>.+--+-- = See Also+-- #_see_also#+--+-- 'VkSamplerCreateInfo'+newtype VkSamplerMipmapMode = VkSamplerMipmapMode Int32+  deriving (Eq, Ord, Storable)++instance Show VkSamplerMipmapMode where+  showsPrec _ VK_SAMPLER_MIPMAP_MODE_NEAREST = showString "VK_SAMPLER_MIPMAP_MODE_NEAREST"+  showsPrec _ VK_SAMPLER_MIPMAP_MODE_LINEAR = showString "VK_SAMPLER_MIPMAP_MODE_LINEAR"+  showsPrec p (VkSamplerMipmapMode x) = showParen (p >= 11) (showString "VkSamplerMipmapMode " . showsPrec 11 x)++instance Read VkSamplerMipmapMode where+  readPrec = parens ( choose [ ("VK_SAMPLER_MIPMAP_MODE_NEAREST", pure VK_SAMPLER_MIPMAP_MODE_NEAREST)+                             , ("VK_SAMPLER_MIPMAP_MODE_LINEAR",  pure VK_SAMPLER_MIPMAP_MODE_LINEAR)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSamplerMipmapMode")+                        v <- step readPrec+                        pure (VkSamplerMipmapMode v)+                        )+                    )++-- No documentation found for Nested "VkSamplerMipmapMode" "VK_SAMPLER_MIPMAP_MODE_NEAREST"+pattern VK_SAMPLER_MIPMAP_MODE_NEAREST :: VkSamplerMipmapMode+pattern VK_SAMPLER_MIPMAP_MODE_NEAREST = VkSamplerMipmapMode 0++-- No documentation found for Nested "VkSamplerMipmapMode" "VK_SAMPLER_MIPMAP_MODE_LINEAR"+pattern VK_SAMPLER_MIPMAP_MODE_LINEAR :: VkSamplerMipmapMode+pattern VK_SAMPLER_MIPMAP_MODE_LINEAR = VkSamplerMipmapMode 1+-- ** VkSamplerCreateFlags++-- | VkSamplerCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkSamplerCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkSamplerCreateInfo'+newtype VkSamplerCreateFlags = VkSamplerCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSamplerCreateFlags where+  +  showsPrec p (VkSamplerCreateFlags x) = showParen (p >= 11) (showString "VkSamplerCreateFlags " . showsPrec 11 x)++instance Read VkSamplerCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSamplerCreateFlags")+                        v <- step readPrec+                        pure (VkSamplerCreateFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkSampler_T+-- | VkSampler - Opaque handle to a sampler object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutBinding',+-- 'vkCreateSampler', 'vkDestroySampler'+type VkSampler = Ptr VkSampler_T+-- | vkCreateSampler - Create a new sampler object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the sampler.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkSamplerCreateInfo' structure specifying the state of the sampler+--     object.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pSampler@ points to a 'VkSampler' handle in which the resulting+--     sampler object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkSamplerCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSampler@ /must/ be a valid pointer to a @VkSampler@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkSampler',+-- 'VkSamplerCreateInfo'+foreign import ccall "vkCreateSampler" vkCreateSampler :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSampler" ::: Ptr VkSampler) -> IO VkResult+-- | vkDestroySampler - Destroy a sampler object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the sampler.+--+-- -   @sampler@ is the sampler to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @sampler@ /must/ have completed+--     execution+--+-- -   If @VkAllocationCallbacks@ were provided when @sampler@ was created,+--     a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @sampler@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @sampler@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @sampler@ /must/+--     be a valid @VkSampler@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @sampler@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @sampler@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkSampler'+foreign import ccall "vkDestroySampler" vkDestroySampler :: ("device" ::: VkDevice) -> ("sampler" ::: VkSampler) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkSamplerCreateInfo - Structure specifying parameters of a newly created+-- sampler+--+-- = Members+-- #_members#+--+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to an extension-specific structure.+--+-- -   @flags@ is reserved for future use.+--+-- -   @magFilter@ is a 'VkFilter' value specifying the magnification+--     filter to apply to lookups.+--+-- -   @minFilter@ is a 'VkFilter' value specifying the minification filter+--     to apply to lookups.+--+-- -   @mipmapMode@ is a 'VkSamplerMipmapMode' value specifying the mipmap+--     filter to apply to lookups.+--+-- -   @addressModeU@ is a 'VkSamplerAddressMode' value specifying the+--     addressing mode for outside [0..1] range for U coordinate.+--+-- -   @addressModeV@ is a 'VkSamplerAddressMode' value specifying the+--     addressing mode for outside [0..1] range for V coordinate.+--+-- -   @addressModeW@ is a 'VkSamplerAddressMode' value specifying the+--     addressing mode for outside [0..1] range for W coordinate.+--+-- -   @mipLodBias@ is the bias to be added to mipmap LOD (level-of-detail)+--     calculation and bias provided by image sampling functions in SPIR-V,+--     as described in the+--     <{html_spec_relative}#textures-level-of-detail-operation Level-of-Detail Operation>+--     section.+--+-- -   @anisotropyEnable@ is @VK_TRUE@ to enable anisotropic filtering, as+--     described in the+--     <{html_spec_relative}#textures-texel-anisotropic-filtering Texel Anisotropic Filtering>+--     section, or @VK_FALSE@ otherwise.+--+-- -   @maxAnisotropy@ is the anisotropy value clamp used by the sampler+--     when @anisotropyEnable@ is @VK_TRUE@. If @anisotropyEnable@ is+--     @VK_FALSE@, @maxAnisotropy@ is ignored.+--+-- -   @compareEnable@ is @VK_TRUE@ to enable comparison against a+--     reference value during lookups, or @VK_FALSE@ otherwise.+--+--     -   Note: Some implementations will default to shader state if this+--         member does not match.+--+-- -   @compareOp@ is a 'Graphics.Vulkan.Core10.Pipeline.VkCompareOp' value+--     specifying the comparison function to apply to fetched data before+--     filtering as described in the+--     <{html_spec_relative}#textures-depth-compare-operation Depth Compare Operation>+--     section.+--+-- -   @minLod@ and @maxLod@ are the values used to clamp the computed LOD+--     value, as described in the+--     <{html_spec_relative}#textures-level-of-detail-operation Level-of-Detail Operation>+--     section. @maxLod@ /must/ be greater than or equal to @minLod@.+--+-- -   @borderColor@ is a 'VkBorderColor' value specifying the predefined+--     border color to use.+--+-- -   @unnormalizedCoordinates@ controls whether to use unnormalized or+--     normalized texel coordinates to address texels of the image. When+--     set to @VK_TRUE@, the range of the image coordinates used to lookup+--     the texel is in the range of zero to the image dimensions for x, y+--     and z. When set to @VK_FALSE@ the range of image coordinates is zero+--     to one. When @unnormalizedCoordinates@ is @VK_TRUE@, samplers have+--     the following requirements:+--+--     -   @minFilter@ and @magFilter@ /must/ be equal.+--+--     -   @mipmapMode@ /must/ be @VK_SAMPLER_MIPMAP_MODE_NEAREST@.+--+--     -   @minLod@ and @maxLod@ /must/ be zero.+--+--     -   @addressModeU@ and @addressModeV@ /must/ each be either+--         @VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE@ or+--         @VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER@.+--+--     -   @anisotropyEnable@ /must/ be @VK_FALSE@.+--+--     -   @compareEnable@ /must/ be @VK_FALSE@.+--+-- -   When @unnormalizedCoordinates@ is @VK_TRUE@, images the sampler is+--     used with in the shader have the following requirements:+--+--     -   The @viewType@ /must/ be either @VK_IMAGE_VIEW_TYPE_1D@ or+--         @VK_IMAGE_VIEW_TYPE_2D@.+--+--     -   The image view /must/ have a single layer and a single mip+--         level.+--+-- -   When @unnormalizedCoordinates@ is @VK_TRUE@, image built-in+--     functions in the shader that use the sampler have the following+--     requirements:+--+--     -   The functions /must/ not use projection.+--+--     -   The functions /must/ not use offsets.+--+-- = Description+-- #_description#+--+-- __Note__+--+-- @magFilter@ values of @VK_FILTER_NEAREST@ and @VK_FILTER_LINEAR@+-- directly correspond to @GL_NEAREST@ and @GL_LINEAR@ magnification+-- filters. @minFilter@ and @mipmapMode@ combine to correspond to the+-- similarly named OpenGL minification filter of+-- @GL_minFilter_MIPMAP_mipmapMode@ (e.g. @minFilter@ of @VK_FILTER_LINEAR@+-- and @mipmapMode@ of @VK_SAMPLER_MIPMAP_MODE_NEAREST@ correspond to+-- @GL_LINEAR_MIPMAP_NEAREST@).+--+-- There are no Vulkan filter modes that directly correspond to OpenGL+-- minification filters of @GL_LINEAR@ or @GL_NEAREST@, but they /can/ be+-- emulated using @VK_SAMPLER_MIPMAP_MODE_NEAREST@, @minLod@ = 0, and+-- @maxLod@ = 0.25, and using @minFilter@ = @VK_FILTER_LINEAR@ or+-- @minFilter@ = @VK_FILTER_NEAREST@, respectively.+--+-- Note that using a @maxLod@ of zero would cause+-- <{html_spec_relative}#textures-texel-filtering magnification> to always+-- be performed, and the @magFilter@ to always be used. This is valid, just+-- not an exact match for OpenGL behavior. Clamping the maximum LOD to 0.25+-- allows the λ value to be non-zero and minification to be performed,+-- while still always rounding down to the base level. If the @minFilter@+-- and @magFilter@ are equal, then using a @maxLod@ of zero also works.+--+-- The maximum number of sampler objects which /can/ be simultaneously+-- created on a device is implementation-dependent and specified by the+-- <{html_spec_relative}#features-limits-maxSamplerAllocationCount maxSamplerAllocationCount>+-- member of the+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'+-- structure. If @maxSamplerAllocationCount@ is exceeded, @vkCreateSampler@+-- will return @VK_ERROR_TOO_MANY_OBJECTS@.+--+-- Since 'VkSampler' is a non-dispatchable handle type, implementations+-- /may/ return the same handle for sampler state vectors that are+-- identical. In such cases, all such objects would only count once against+-- the @maxSamplerAllocationCount@ limit.+--+-- == Valid Usage+--+-- -   The absolute value of @mipLodBias@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxSamplerLodBias@+--+-- -   If the+--     <{html_spec_relative}#features-features-samplerAnisotropy anisotropic sampling>+--     feature is not enabled, @anisotropyEnable@ /must/ be @VK_FALSE@+--+-- -   If @anisotropyEnable@ is @VK_TRUE@, @maxAnisotropy@ /must/ be+--     between @1.0@ and @VkPhysicalDeviceLimits@::@maxSamplerAnisotropy@,+--     inclusive+--+-- -   If @unnormalizedCoordinates@ is @VK_TRUE@, @minFilter@ and+--     @magFilter@ /must/ be equal+--+-- -   If @unnormalizedCoordinates@ is @VK_TRUE@, @mipmapMode@ /must/ be+--     @VK_SAMPLER_MIPMAP_MODE_NEAREST@+--+-- -   If @unnormalizedCoordinates@ is @VK_TRUE@, @minLod@ and @maxLod@+--     /must/ be zero+--+-- -   If @unnormalizedCoordinates@ is @VK_TRUE@, @addressModeU@ and+--     @addressModeV@ /must/ each be either+--     @VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE@ or+--     @VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER@+--+-- -   If @unnormalizedCoordinates@ is @VK_TRUE@, @anisotropyEnable@ /must/+--     be @VK_FALSE@+--+-- -   If @unnormalizedCoordinates@ is @VK_TRUE@, @compareEnable@ /must/ be+--     @VK_FALSE@+--+-- -   If any of @addressModeU@, @addressModeV@ or @addressModeW@ are+--     @VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER@, @borderColor@ /must/ be a+--     valid 'VkBorderColor' value+--+-- -   If the @{html_spec_relative}#VK_KHR_sampler_mirror_clamp_to_edge@+--     extension is not enabled, @addressModeU@, @addressModeV@ and+--     @addressModeW@ /must/ not be+--     @VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE@+--+-- -   If @compareEnable@ is @VK_TRUE@, @compareOp@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Pipeline.VkCompareOp' value+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeCreateInfoEXT'+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be @0@+--+-- -   @magFilter@ /must/ be a valid 'VkFilter' value+--+-- -   @minFilter@ /must/ be a valid 'VkFilter' value+--+-- -   @mipmapMode@ /must/ be a valid 'VkSamplerMipmapMode' value+--+-- -   @addressModeU@ /must/ be a valid 'VkSamplerAddressMode' value+--+-- -   @addressModeV@ /must/ be a valid 'VkSamplerAddressMode' value+--+-- -   @addressModeW@ /must/ be a valid 'VkSamplerAddressMode' value+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkBorderColor',+-- 'Graphics.Vulkan.Core10.Pipeline.VkCompareOp', 'VkFilter',+-- 'VkSamplerAddressMode', 'VkSamplerCreateFlags', 'VkSamplerMipmapMode',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateSampler'+data VkSamplerCreateInfo = VkSamplerCreateInfo+  { -- No documentation found for Nested "VkSamplerCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkFlags"+  vkFlags :: VkSamplerCreateFlags+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkMagFilter"+  vkMagFilter :: VkFilter+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkMinFilter"+  vkMinFilter :: VkFilter+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkMipmapMode"+  vkMipmapMode :: VkSamplerMipmapMode+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkAddressModeU"+  vkAddressModeU :: VkSamplerAddressMode+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkAddressModeV"+  vkAddressModeV :: VkSamplerAddressMode+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkAddressModeW"+  vkAddressModeW :: VkSamplerAddressMode+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkMipLodBias"+  vkMipLodBias :: CFloat+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkAnisotropyEnable"+  vkAnisotropyEnable :: VkBool32+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkMaxAnisotropy"+  vkMaxAnisotropy :: CFloat+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkCompareEnable"+  vkCompareEnable :: VkBool32+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkCompareOp"+  vkCompareOp :: VkCompareOp+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkMinLod"+  vkMinLod :: CFloat+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkMaxLod"+  vkMaxLod :: CFloat+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkBorderColor"+  vkBorderColor :: VkBorderColor+  , -- No documentation found for Nested "VkSamplerCreateInfo" "vkUnnormalizedCoordinates"+  vkUnnormalizedCoordinates :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkSamplerCreateInfo where+  sizeOf ~_ = 80+  alignment ~_ = 8+  peek ptr = VkSamplerCreateInfo <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 16)+                                 <*> peek (ptr `plusPtr` 20)+                                 <*> peek (ptr `plusPtr` 24)+                                 <*> peek (ptr `plusPtr` 28)+                                 <*> peek (ptr `plusPtr` 32)+                                 <*> peek (ptr `plusPtr` 36)+                                 <*> peek (ptr `plusPtr` 40)+                                 <*> peek (ptr `plusPtr` 44)+                                 <*> peek (ptr `plusPtr` 48)+                                 <*> peek (ptr `plusPtr` 52)+                                 <*> peek (ptr `plusPtr` 56)+                                 <*> peek (ptr `plusPtr` 60)+                                 <*> peek (ptr `plusPtr` 64)+                                 <*> peek (ptr `plusPtr` 68)+                                 <*> peek (ptr `plusPtr` 72)+                                 <*> peek (ptr `plusPtr` 76)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkMagFilter (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkMinFilter (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 28) (vkMipmapMode (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkAddressModeU (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 36) (vkAddressModeV (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkAddressModeW (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 44) (vkMipLodBias (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkAnisotropyEnable (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 52) (vkMaxAnisotropy (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkCompareEnable (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 60) (vkCompareOp (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 64) (vkMinLod (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 68) (vkMaxLod (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 72) (vkBorderColor (poked :: VkSamplerCreateInfo))+                *> poke (ptr `plusPtr` 76) (vkUnnormalizedCoordinates (poked :: VkSamplerCreateInfo))
+ src/Graphics/Vulkan/Core10/Shader.hs view
@@ -0,0 +1,298 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.Shader+  ( VkShaderModuleCreateFlags(..)+  , VkShaderModule+  , vkCreateShaderModule+  , vkDestroyShaderModule+  , VkShaderModuleCreateInfo(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+++-- ** VkShaderModuleCreateFlags++-- | VkShaderModuleCreateFlags - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkShaderModuleCreateFlags@ is a bitmask type for setting a mask, but is+-- currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkShaderModuleCreateInfo'+newtype VkShaderModuleCreateFlags = VkShaderModuleCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkShaderModuleCreateFlags where+  +  showsPrec p (VkShaderModuleCreateFlags x) = showParen (p >= 11) (showString "VkShaderModuleCreateFlags " . showsPrec 11 x)++instance Read VkShaderModuleCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkShaderModuleCreateFlags")+                        v <- step readPrec+                        pure (VkShaderModuleCreateFlags v)+                        )+                    )+++-- | Dummy data to tag the 'Ptr' with+data VkShaderModule_T+-- | VkShaderModule - Opaque handle to a shader module object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateInfo',+-- 'vkCreateShaderModule', 'vkDestroyShaderModule'+type VkShaderModule = Ptr VkShaderModule_T+-- | vkCreateShaderModule - Creates a new shader module object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the shader module.+--+-- -   @pCreateInfo@ parameter is a pointer to an instance of the+--     @VkShaderModuleCreateInfo@ structure.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pShaderModule@ points to a @VkShaderModule@ handle in which the+--     resulting shader module object is returned.+--+-- = Description+-- #_description#+--+-- Once a shader module has been created, any entry points it contains+-- /can/ be used in pipeline shader stages as described in+-- <{html_spec_relative}#pipelines-compute Compute Pipelines> and+-- <{html_spec_relative}#pipelines-graphics Graphics Pipelines>.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkShaderModuleCreateInfo@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pShaderModule@ /must/ be a valid pointer to a @VkShaderModule@+--     handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_INVALID_SHADER_NV@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkShaderModule', 'VkShaderModuleCreateInfo'+foreign import ccall "vkCreateShaderModule" vkCreateShaderModule :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkShaderModuleCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pShaderModule" ::: Ptr VkShaderModule) -> IO VkResult+-- | vkDestroyShaderModule - Destroy a shader module module+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the shader module.+--+-- -   @shaderModule@ is the handle of the shader module to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- A shader module /can/ be destroyed while pipelines created using its+-- shaders are still in use.+--+-- == Valid Usage+--+-- -   If @VkAllocationCallbacks@ were provided when @shaderModule@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @shaderModule@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @shaderModule@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @shaderModule@+--     /must/ be a valid @VkShaderModule@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @shaderModule@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @shaderModule@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkShaderModule'+foreign import ccall "vkDestroyShaderModule" vkDestroyShaderModule :: ("device" ::: VkDevice) -> ("shaderModule" ::: VkShaderModule) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkShaderModuleCreateInfo - Structure specifying parameters of a newly+-- created shader module+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @codeSize@ /must/ be greater than 0+--+-- -   @codeSize@ /must/ be a multiple of 4+--+-- -   @pCode@ /must/ point to valid SPIR-V code, formatted and packed as+--     described by the+--     <{html_spec_relative}#spirv-spec Khronos SPIR-V Specification>+--+-- -   @pCode@ /must/ adhere to the validation rules described by the+--     <{html_spec_relative}#spirvenv-module-validation Validation Rules within a Module>+--     section of the+--     <{html_spec_relative}#spirvenv-capabilities SPIR-V Environment>+--     appendix+--+-- -   @pCode@ /must/ declare the @Shader@ capability for SPIR-V code+--+-- -   @pCode@ /must/ not declare any capability that is not supported by+--     the API, as described by the+--     <{html_spec_relative}#spirvenv-module-validation Capabilities>+--     section of the+--     <{html_spec_relative}#spirvenv-capabilities SPIR-V Environment>+--     appendix+--+-- -   If @pCode@ declares any of the capabilities listed as /optional/ in+--     the+--     <{html_spec_relative}#spirvenv-capabilities-table SPIR-V Environment>+--     appendix, the corresponding feature(s) /must/ be enabled.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkShaderModuleValidationCacheCreateInfoEXT'+--+-- -   @flags@ /must/ be @0@+--+-- -   @pCode@ /must/ be a valid pointer to an array of+--     <<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARoAAABCCAYAAACIGRmUAAAABmJLR0QA/wD/AP+gvaeTAAAQE0lEQVR4nO2dabAVxRWAv/vgyQMeIiqLEBWMhpSARiUxatwNGKMmISbErayUS1yiJiJquYFRy7iVIZaaRaMxRdRE44IakxhBIVEQBDcUUYKioj5EHiCKPt7Nj3On7kxPz70zPT0zb+mvqkvfcPvMmZ6Znu7T55wGh8PhCDIG+BvwGVDWlLXAxUBjUQo6HI7OSwNwGdCOdCjvApcC44GDgcmVY16Hc3+ljsPhcMSiB3Av1U7kUaCf5nfDgA98vzs9LwUdDkfn53dUO495QK8av73Q99s3slfN4XB0Bb5HteNoA0bV+f0+BG02w7NUzuFwdH6agHeodhp3xqizI8GO5vB6FZwhx+Ho3hwDDPX9fVOMOupqU1O9Cq6jcTi6N6f4/v9NYG6MOsOUv8v1KvRMopEjE64Ctqnx763A2Tnp4uhebAl81ff3VsCrMeqpq1Hv1KvgOppi2QyYRG3Hp5k56dKR6AGMBHYGBgD9kVWQdYiz2NvAksp/635NLdAfMZj2Be4D3svhnHmwH8FZTTPS7klZbkUbR2bsgd7z0l+uKUy7fNkCOBF4HPiE+u1SBj4GZgFXAocBfTLQa1dgpe+cK5AXsiswmWB7fq1YdRx58SXCL9PEQjXKnt7ARchIJU7nUqt8AjwCHG1Jtwbgdc15vm9JftHcSPC6tsjqRG7q1LHYQ3NsQe5a5MfOwEPAF5Xjr1SOL0SmR2uR6WU/ZGl1LPADxKbgpwkZ2awH7rKg3xiNbgAfWpDd0WgD1hSthCMfriP4hVkDlArVKDv2JzyKeR44KGb9zZC4nE2ERxznWdJxBNW4H6/Mpeus1l5O9bo2Jqh3DnA38OsslHJkzyyCD/UThWqTHTsAqwhe64PINCopFxHuaA62oyYgQYWfIV/8+4BBFmUXzREE263W6qfHSKpR3T/PTjVHVpSQpWz/jb+2UI2y4z8Er/NlzA25jcD7irwBFnT004sYTmmdkGZgNdV2O6X2z+kDPEt1ZOdML50QnSH4R4VqlA2HE77OI1PKvMMn6/WUsrob/pWn94DtIn43DJhd+d2bwLa5aOewztGEX8CdCtUoG/5B8BpbSG/zuMQn756UsrobJcRw7rXfauAKxKj+DcTo/hvEh6mMRHZHdUaOTsD1dH1DcF/gU4LXea8Fuf60BbYMwd2JBuAswnYzf1kM/ATD6ZKbY3Uc1KXt55Ab3JXYm3Cek7csyJ2NjGoAHrAgr7vRjqwg3YyMYkYirgMbkYx6C4DX0pzARkfTiMRLbAcMBDZHli3XIMq9hHhw5oGqSzPi8/A+4pNh46GOS1/kxdoWGAx8jty0+YRvWgnYTTmWl/9MH2BPJIJ3MNKGLZUyD2k7W+imgja8eWdXiiMdbcjK56xi1ahSQmI/ZlCdu0WVTchLczFi8MxClwnAwzF0WYQMEbMcye2DfFU31NBjAfBNX528DcE9gOOAfxGeyvhLO9JBn1apk5apmnMsoWP4pQyi9rPjLcHndS6TksX7VRiHI6MU3YVuJDpzuvfgzsBeTMURdXTROXOVgRcQr0+bDAL+GnG+qLY4s1L3GM2/Z2UInoC83DqdNhB2UPO3mc5LNgkXR8i+MKVcGxxG/Xt2qaVzfSvGuZKWVjqwTS/Jl70X4rn6U+X4DCQr15NUjUlbIl/2Mwl+uUtIR7UUGZabEqXLgz5dPkSubwSyonMeMp0B6WQeR6JXl6TQw2MXxGV+e+X46srxF5G22Qpxn/9ORZdpiC1Gtc+sxf4ybRNwA3Cq79jnwO3IqsM8pKNpRFI5Hk9w9DcGcSDcF/Mp6LKI41ciX+PzsTtVS8p03/8PBg5R/t3WdNZ/v+9COve4DATGaY5fgbx7nZpm4L8Ee9AW9BesciXh3vfYlLqoDl8tBDs0HbsQdohbiriyp2Es4SnbRsQ9PsrJ6wvA05XfziHsETwzpU4q/YBnlHO8isQa1eIgwiPUx1LoMRTp3KK+yhuQpVTVXlUEJxHWb4gl2fdX5K1IWG9LJExD1WuKJb0KpTfhF+F96j+kHg2EpzdfNtSlCfmq+mV9QP1kyh6nE75J5xjqAmJ09qcQ8F6WQ2PUHUR124qNiozrUuik0kT4/r2CPLRxuJZwm+2bQh9/tv1aZTHyAtme4sblFkWfusmdEvBWRWYSm09/ZCFBbadfWtSrUKYTvLB24o1k/Pj9HNZhbvy7U6NLnJfaoy9hI+27hrr0QH/jk4zWvOGuWmylOQD4kyJ7AxIBHZeRGv1uTqFPX8Kjq3plKXA1wWxwWTNP0eEhS3IH+mTGtfnoZhRlZOrdJfgu4Yv7vYEcf/DWU4a6HKnR5TYDOf/WyDH5ap6tkXN3Qhl7aWSUsbd6oGuzCxLK0MVgvZBSr2bENpSks/GPxiaTbfKpRsKrcVMsyT7UJ/PbMX6vm1GUkZFhhzX+JqEP4WnBRszcj/fzybjBUBf/VpxlxHYw3EDWHYRvWtLd9rYm/PK1kWykAMGvm1dsrR7o2qwFM78Vb6jvlU0W9ANJFeHFzyQtLcAZlvRQ+YrmfHE6hTg0I8/tcOrvXd0L+KdGlz9i9oxM1ciyXaYmVeoMjZDpNWtEMxDx2zgOs5ykOtuKaWKjaRpZl9SsEeYCjYykoxmQjGaqnJkGcnTo2uxyQ1lqR1MmvRHdz26IZ6p/q9W45SFq76poQpaG4Lg0Iiu6qh73YO7TNFUjr9COpgHxXlWFHGZ4gWkooff7MP3C3KaRdXWC+g1IMmZVRt1NtDQM0cixYQiOajMTI3wJvW+Ubl/mtPRARjnTkAjhuA+3SSdfiywNwXFQ98H2ygOkczadqpGZS0cTpfRehB3GWpFhXN7sRdhm0YpEAZvQX3PsswT19yXsL2OqzwjNMRu+GnsTbrONJLfPgHxZ1SF+G9mElWxCfKCeRGxgYxFnxqOpPaKYCPwWe6NB1a8pz3SqDciih5qX+DHgh0jbdzqiOhrdqtIcirnI8ZpjaXTRGVqXJ6iv89eZg/iH2NDFxkOtu3+9gBMsyAbx/0jiZGbK/Eo5HwnJuJRoO9ix2OloGhGfKz95dTQlZLHlGOX4E0jIT5IPYqdAt5RWVPi9TV0a0G/lkST1o+doZ0OfGxQ5a7FjCNa1mc1ia+SQlCbgDxE6LbR0Dp0h2GRabMJNmnPPoerR3qUokf5l7Ki6jNbI2kR857US+iDEuAm1VZ5S5MwylOMnqs32tyC7I1BCRhjq9dkK2ThRIzsPQ7Caj6iM+PJsnsO5C2Eo+i+Gut9uZ9RFt5IWZ69hj20j9Blaq1IEPQmHLlxvIEclqs3yXjXJkvMIX5+t6c3Nitw8DMG6MJ2F2M99XBg6G832mmMfk7/lHfS6fIK5LgdqjiUx4u6gObYBM+/isYSdzmy8LLo2W09x27gOQa4VZCUzVQKlCis1x/5nQS7kbwi+hHD0+mLEFvhRxufODV0ogM4noaiNpXS6tBrK6kd4eb4dsfDHRefsttZQH51Reb6hLD8d6f6BRIHPqJQk4SK1UDeOAzuJr3qSryF4EvAL5dhSxDSwKsPz5o5uRLNecyyvDHkqNnWZQHjfoAdJNrfXrSx9aqjP8crf65CHLC26NjPVEWREMtr393ySdVz+EYKtFBC7a4793YLc0YQj7rPqaM4g7DO1HLH3FTX6zJURhOeLpoGHlyE98ypkSXRrC7q0GOhRQuJz/HLakRSWSdhTo4/JCGucRs4sAzk6hmtkm7SZh5fSoIx4CCf1wl3qq//jFHp4eKlG/de3yIJc0BuC42yqlpSTCCcYW4Her0rHnsBRSF6jrGkieA+t5kl6m2AjtFE/LkNlIMF4INNIU1WXMsnjdSZqZJhs59kHfT6VJB1oA9XE47YNwR66kAGT1Yv9CL4QJyWs31+pbxoC4ec0wtd2lAW5kI8h+DjCmR9XkiyQ1ossf966dmFUQ7XVjuZ2wjdTzTZWD396iZXo59WmuiTZcGwI4RiapZj7JuiWVk9IUP8yTf0yYSetNOjCLJLmIB6APFRe/Zkk9/E5UNHhJQMZfnYiuLNiGVk1tBXFPFeRbSs1hMdRyEdbHW3GzacEwchyk+wFSdiZcPiJ1Y5mDOFeN8n+O5N89dpJ5/Ck0yXufLwf4vCkfj2SRln70QUrLiZekOHJROfkNQk2jWIU4Qf6aeIH4/VDwgC8uh9gFrV/LuHrPMtADoj9ZJkiaxX6VTYTehL2P5piSTbIx1F9aVcjDoJJ8DsUJs06kIQS+sh66zuB6jKhnVynTi8kQNFfJ00Gu1q61HtgdyScvChJNr4oeiPGOlWf+4geJQ1EYnG8h0uNyrXlEexHnQaUgV9RP+nYbkiOY69OK3rjaxz8OyB6ZRPyAquG+Sj6I6PAjxU5q0mX6U9lV42utjyCxxN29GzFLEm/346U1MaYhFMq51gDPOI7p1FHU+vh7g08ChygHJ+OvDSLkJWSRiQqeDwyf/Z8TdqQkY2JLSSuLvcgbtsLkdWWzZEHZiJiT/AbLmcj05O3LehzEBJgqo4QViGRxK8gL8ZgJCh0HGLfWYO00zUEPXU/IjhMb0c69TR5X3ohW9CoU96ngRuR+BnPqDoI+DoSLzTBd13LKn+b2gJeI3o3hw+RUfJc5OFtRb74zUjHPBrpSMYRNkAvQQyhaRLLTyKY8Gw7wn5WDxA09k8jeajD/sgIXO1YF2HWrrsjerchI880K4pRDEJySg9AVsd2Rzo4gDdINyPQ0oy8zLqhfplwrluvvIwYEvPUJWqbl1VIUJ6NfYn8nIDe1T+qLEBeOl3GOrXY2JkBpHNTU7H6SxvhKVYZMXjfguTLScMoJOewmoDLtKwCfoadXDgrDM5vsgXOwwbniVNsrbTp+HPlHM8gI+Bbfee1PnXycwjiQRvVsZSRr/BTyAuY5QZtcXRpQ76U55JtysfRyEhL97J65TlkWdebsug2i1OLaYKxKA6o6Flrs7gy8vJdi/2NyHogW61OQUaW6jSoVmkB/oKkTYg73aqHyQZupnuhq1kqbZWsDMGe68XnyOwALHQ0SRuuH5LrZBtkeNuA3IA3SO7IlRZVF++hfA+xzeTpvj0EmSINQ0YB6xHnq2cpJnQjCm+b3qHIy9YDGV2tRKYEb+akRwmZqoys6NKvUsrIdHwtch9fRB9u4MiG3sjK4A6IM+HkyvFbyXjq5HA4ug9XIZ39coILG7lNnRwOR9dmNFU7p7ralrqj6QibqzscjmIpISvJjYibxsPFquNwOLoipyKjlbXocz25qZPD4UjFEGThpAycGfEb19E4HI5U3I10IM8SbUpxHY3D4TDG2563jdphJs4Y7HA4jOiDxMOBhKQ8V6AuDoeji+IFP79Ffe/53D2DHQ5H12AlYgheh0TC12Irqp1RG2Fv9xeokyMqy5gkh8PRcfEGGV74R1x6Es4B1KUSqTscjmJwxmCHw9HxcR2Nw+HIHNfROByOzHEdjcPhyBy3vO1wOFSmE9xhdAiSJB4k894y5fejSJff2uFwdEPULYrqlbpuMv8HtK+/BrL8EjoAAAAASUVORK5CYII= stem 3c191c7a3fc8d91b8c1ec0b877b089a5>>+--     @uint32_t@ values+--+-- = See Also+-- #_see_also#+--+-- 'VkShaderModuleCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateShaderModule'+data VkShaderModuleCreateInfo = VkShaderModuleCreateInfo+  { -- No documentation found for Nested "VkShaderModuleCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkShaderModuleCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkShaderModuleCreateInfo" "vkFlags"+  vkFlags :: VkShaderModuleCreateFlags+  , -- No documentation found for Nested "VkShaderModuleCreateInfo" "vkCodeSize"+  vkCodeSize :: CSize+  , -- No documentation found for Nested "VkShaderModuleCreateInfo" "vkPCode"+  vkPCode :: Ptr Word32+  }+  deriving (Eq, Show)++instance Storable VkShaderModuleCreateInfo where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkShaderModuleCreateInfo <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+                                      <*> peek (ptr `plusPtr` 24)+                                      <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkShaderModuleCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkShaderModuleCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkShaderModuleCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkCodeSize (poked :: VkShaderModuleCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkPCode (poked :: VkShaderModuleCreateInfo))
+ src/Graphics/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -0,0 +1,1201 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkImageAspectFlagBits(..)+  , pattern VK_IMAGE_ASPECT_COLOR_BIT+  , pattern VK_IMAGE_ASPECT_DEPTH_BIT+  , pattern VK_IMAGE_ASPECT_STENCIL_BIT+  , pattern VK_IMAGE_ASPECT_METADATA_BIT+  , VkSparseMemoryBindFlagBits(..)+  , pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT+  , VkSparseImageFormatFlagBits(..)+  , pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT+  , pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT+  , pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT+  , vkGetImageSparseMemoryRequirements+  , vkGetPhysicalDeviceSparseImageFormatProperties+  , vkQueueBindSparse+  , VkOffset3D(..)+  , VkSparseImageFormatProperties(..)+  , VkSparseImageMemoryRequirements(..)+  , VkImageSubresource(..)+  , VkSparseMemoryBind(..)+  , VkSparseImageMemoryBind(..)+  , VkSparseBufferMemoryBindInfo(..)+  , VkSparseImageOpaqueMemoryBindInfo(..)+  , VkSparseImageMemoryBindInfo(..)+  , VkBindSparseInfo(..)+  , VkImageAspectFlags+  , VkSparseMemoryBindFlags+  , VkSparseImageFormatFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFormat(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkExtent3D(..)+  , VkImageUsageFlagBits(..)+  , VkImageTiling(..)+  , VkImageUsageFlags+  , VkSampleCountFlagBits(..)+  , VkImageType(..)+  , VkPhysicalDevice+  , VkDevice+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  , VkImage+  )+import Graphics.Vulkan.Core10.Queue+  ( VkSemaphore+  , VkFence+  , VkQueue+  )+++-- ** VkImageAspectFlagBits++-- | VkImageAspectFlagBits - Bitmask specifying which aspects of an image are+-- included in a view+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkBindImagePlaneMemoryInfo',+-- 'VkImageAspectFlags',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkImagePlaneMemoryRequirementsInfo'+newtype VkImageAspectFlagBits = VkImageAspectFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkImageAspectFlagBits where+  showsPrec _ VK_IMAGE_ASPECT_COLOR_BIT = showString "VK_IMAGE_ASPECT_COLOR_BIT"+  showsPrec _ VK_IMAGE_ASPECT_DEPTH_BIT = showString "VK_IMAGE_ASPECT_DEPTH_BIT"+  showsPrec _ VK_IMAGE_ASPECT_STENCIL_BIT = showString "VK_IMAGE_ASPECT_STENCIL_BIT"+  showsPrec _ VK_IMAGE_ASPECT_METADATA_BIT = showString "VK_IMAGE_ASPECT_METADATA_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkImageAspectFlagBits 0x00000010) = showString "VK_IMAGE_ASPECT_PLANE_0_BIT"+  showsPrec _ (VkImageAspectFlagBits 0x00000020) = showString "VK_IMAGE_ASPECT_PLANE_1_BIT"+  showsPrec _ (VkImageAspectFlagBits 0x00000040) = showString "VK_IMAGE_ASPECT_PLANE_2_BIT"+  showsPrec p (VkImageAspectFlagBits x) = showParen (p >= 11) (showString "VkImageAspectFlagBits " . showsPrec 11 x)++instance Read VkImageAspectFlagBits where+  readPrec = parens ( choose [ ("VK_IMAGE_ASPECT_COLOR_BIT",    pure VK_IMAGE_ASPECT_COLOR_BIT)+                             , ("VK_IMAGE_ASPECT_DEPTH_BIT",    pure VK_IMAGE_ASPECT_DEPTH_BIT)+                             , ("VK_IMAGE_ASPECT_STENCIL_BIT",  pure VK_IMAGE_ASPECT_STENCIL_BIT)+                             , ("VK_IMAGE_ASPECT_METADATA_BIT", pure VK_IMAGE_ASPECT_METADATA_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_IMAGE_ASPECT_PLANE_0_BIT", pure (VkImageAspectFlagBits 0x00000010))+                             , ("VK_IMAGE_ASPECT_PLANE_1_BIT", pure (VkImageAspectFlagBits 0x00000020))+                             , ("VK_IMAGE_ASPECT_PLANE_2_BIT", pure (VkImageAspectFlagBits 0x00000040))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkImageAspectFlagBits")+                        v <- step readPrec+                        pure (VkImageAspectFlagBits v)+                        )+                    )++-- | @VK_IMAGE_ASPECT_COLOR_BIT@ specifies the color aspect.+pattern VK_IMAGE_ASPECT_COLOR_BIT :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_COLOR_BIT = VkImageAspectFlagBits 0x00000001++-- | @VK_IMAGE_ASPECT_DEPTH_BIT@ specifies the depth aspect.+pattern VK_IMAGE_ASPECT_DEPTH_BIT :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_DEPTH_BIT = VkImageAspectFlagBits 0x00000002++-- | @VK_IMAGE_ASPECT_STENCIL_BIT@ specifies the stencil aspect.+pattern VK_IMAGE_ASPECT_STENCIL_BIT :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_STENCIL_BIT = VkImageAspectFlagBits 0x00000004++-- | @VK_IMAGE_ASPECT_METADATA_BIT@ specifies the metadata aspect, used for+-- sparse <{html_spec_relative}#sparsememory sparse resource> operations.+pattern VK_IMAGE_ASPECT_METADATA_BIT :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_METADATA_BIT = VkImageAspectFlagBits 0x00000008+-- ** VkSparseMemoryBindFlagBits++-- | VkSparseMemoryBindFlagBits - Bitmask specifying usage of a sparse memory+-- binding operation+--+-- = See Also+-- #_see_also#+--+-- 'VkSparseMemoryBindFlags'+newtype VkSparseMemoryBindFlagBits = VkSparseMemoryBindFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSparseMemoryBindFlagBits where+  showsPrec _ VK_SPARSE_MEMORY_BIND_METADATA_BIT = showString "VK_SPARSE_MEMORY_BIND_METADATA_BIT"+  showsPrec p (VkSparseMemoryBindFlagBits x) = showParen (p >= 11) (showString "VkSparseMemoryBindFlagBits " . showsPrec 11 x)++instance Read VkSparseMemoryBindFlagBits where+  readPrec = parens ( choose [ ("VK_SPARSE_MEMORY_BIND_METADATA_BIT", pure VK_SPARSE_MEMORY_BIND_METADATA_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSparseMemoryBindFlagBits")+                        v <- step readPrec+                        pure (VkSparseMemoryBindFlagBits v)+                        )+                    )++-- | @VK_SPARSE_MEMORY_BIND_METADATA_BIT@ specifies that the memory being+-- bound is only for the metadata aspect.+pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT :: VkSparseMemoryBindFlagBits+pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT = VkSparseMemoryBindFlagBits 0x00000001+-- ** VkSparseImageFormatFlagBits++-- | VkSparseImageFormatFlagBits - Bitmask specifying additional information+-- about a sparse image resource+--+-- = See Also+-- #_see_also#+--+-- 'VkSparseImageFormatFlags'+newtype VkSparseImageFormatFlagBits = VkSparseImageFormatFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSparseImageFormatFlagBits where+  showsPrec _ VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = showString "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"+  showsPrec _ VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = showString "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"+  showsPrec _ VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = showString "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"+  showsPrec p (VkSparseImageFormatFlagBits x) = showParen (p >= 11) (showString "VkSparseImageFormatFlagBits " . showsPrec 11 x)++instance Read VkSparseImageFormatFlagBits where+  readPrec = parens ( choose [ ("VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT",         pure VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT)+                             , ("VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT",       pure VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT)+                             , ("VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT", pure VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSparseImageFormatFlagBits")+                        v <- step readPrec+                        pure (VkSparseImageFormatFlagBits v)+                        )+                    )++-- | @VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT@ specifies that the image+-- uses a single mip tail region for all array layers.+pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT :: VkSparseImageFormatFlagBits+pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = VkSparseImageFormatFlagBits 0x00000001++-- | @VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT@ specifies that the first+-- mip level whose dimensions are not integer multiples of the+-- corresponding dimensions of the sparse image block begins the mip tail+-- region.+pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT :: VkSparseImageFormatFlagBits+pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = VkSparseImageFormatFlagBits 0x00000002++-- | @VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT@ specifies that the+-- image uses non-standard sparse image block dimensions, and the+-- @imageGranularity@ values do not match the standard sparse image block+-- dimensions for the given format.+pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT :: VkSparseImageFormatFlagBits+pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = VkSparseImageFormatFlagBits 0x00000004+-- | vkGetImageSparseMemoryRequirements - Query the memory requirements for a+-- sparse image+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the image.+--+-- -   @image@ is the @VkImage@ object to get the memory requirements for.+--+-- -   @pSparseMemoryRequirementCount@ is a pointer to an integer related+--     to the number of sparse memory requirements available or queried, as+--     described below.+--+-- -   @pSparseMemoryRequirements@ is either @NULL@ or a pointer to an+--     array of @VkSparseImageMemoryRequirements@ structures.+--+-- = Description+-- #_description#+--+-- If @pSparseMemoryRequirements@ is @NULL@, then the number of sparse+-- memory requirements available is returned in+-- @pSparseMemoryRequirementCount@. Otherwise,+-- @pSparseMemoryRequirementCount@ /must/ point to a variable set by the+-- user to the number of elements in the @pSparseMemoryRequirements@ array,+-- and on return the variable is overwritten with the number of structures+-- actually written to @pSparseMemoryRequirements@. If+-- @pSparseMemoryRequirementCount@ is less than the number of sparse memory+-- requirements available, at most @pSparseMemoryRequirementCount@+-- structures will be written.+--+-- If the image was not created with @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@+-- then @pSparseMemoryRequirementCount@ will be set to zero and+-- @pSparseMemoryRequirements@ will not be written to.+--+-- __Note__+--+-- It is legal for an implementation to report a larger value in+-- @VkMemoryRequirements@::@size@ than would be obtained by adding together+-- memory sizes for all @VkSparseImageMemoryRequirements@ returned by+-- @vkGetImageSparseMemoryRequirements@. This /may/ occur when the+-- implementation requires unused padding in the address range describing+-- the resource.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @pSparseMemoryRequirementCount@ /must/ be a valid pointer to a+--     @uint32_t@ value+--+-- -   If the value referenced by @pSparseMemoryRequirementCount@ is not+--     @0@, and @pSparseMemoryRequirements@ is not @NULL@,+--     @pSparseMemoryRequirements@ /must/ be a valid pointer to an array of+--     @pSparseMemoryRequirementCount@ @VkSparseImageMemoryRequirements@+--     structures+--+-- -   @image@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'VkSparseImageMemoryRequirements'+foreign import ccall "vkGetImageSparseMemoryRequirements" vkGetImageSparseMemoryRequirements :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements) -> IO ()+-- | vkGetPhysicalDeviceSparseImageFormatProperties - Retrieve properties of+-- an image format applied to sparse images+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device from which to query the+--     sparse image capabilities.+--+-- -   @format@ is the image format.+--+-- -   @type@ is the dimensionality of image.+--+-- -   @samples@ is the number of samples per texel as defined in+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'.+--+-- -   @usage@ is a bitmask describing the intended usage of the image.+--+-- -   @tiling@ is the tiling arrangement of the data elements in memory.+--+-- -   @pPropertyCount@ is a pointer to an integer related to the number of+--     sparse format properties available or queried, as described below.+--+-- -   @pProperties@ is either @NULL@ or a pointer to an array of+--     'VkSparseImageFormatProperties' structures.+--+-- = Description+-- #_description#+--+-- If @pProperties@ is @NULL@, then the number of sparse format properties+-- available is returned in @pPropertyCount@. Otherwise, @pPropertyCount@+-- /must/ point to a variable set by the user to the number of elements in+-- the @pProperties@ array, and on return the variable is overwritten with+-- the number of structures actually written to @pProperties@. If+-- @pPropertyCount@ is less than the number of sparse format properties+-- available, at most @pPropertyCount@ structures will be written.+--+-- If @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@ is not supported for the given+-- arguments, @pPropertyCount@ will be set to zero upon return, and no data+-- will be written to @pProperties@.+--+-- Multiple aspects are returned for depth\/stencil images that are+-- implemented as separate planes by the implementation. The depth and+-- stencil data planes each have unique @VkSparseImageFormatProperties@+-- data.+--+-- Depth\/stencil images with depth and stencil data interleaved into a+-- single plane will return a single @VkSparseImageFormatProperties@+-- structure with the @aspectMask@ set to @VK_IMAGE_ASPECT_DEPTH_BIT@ |+-- @VK_IMAGE_ASPECT_STENCIL_BIT@.+--+-- == Valid Usage+--+-- -   @samples@ /must/ be a bit value that is set in+--     @VkImageFormatProperties@::@sampleCounts@ returned by+--     @vkGetPhysicalDeviceImageFormatProperties@ with @format@, @type@,+--     @tiling@, and @usage@ equal to those in this command and @flags@+--     equal to the value that is set in @VkImageCreateInfo@::@flags@ when+--     the image is created+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- -   @type@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType' value+--+-- -   @samples@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+--     value+--+-- -   @usage@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits'+--     values+--+-- -   @usage@ /must/ not be @0@+--+-- -   @tiling@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling' value+--+-- -   @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPropertyCount@ is not @0@, and+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+--     to an array of @pPropertyCount@ @VkSparseImageFormatProperties@+--     structures+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits',+-- 'VkSparseImageFormatProperties'+foreign import ccall "vkGetPhysicalDeviceSparseImageFormatProperties" vkGetPhysicalDeviceSparseImageFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("samples" ::: VkSampleCountFlagBits) -> ("usage" ::: VkImageUsageFlags) -> ("tiling" ::: VkImageTiling) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties) -> IO ()+-- | vkQueueBindSparse - Bind device memory to a sparse resource object+--+-- = Parameters+-- #_parameters#+--+-- -   @queue@ is the queue that the sparse binding operations will be+--     submitted to.+--+-- -   @bindInfoCount@ is the number of elements in the @pBindInfo@ array.+--+-- -   @pBindInfo@ is an array of 'VkBindSparseInfo' structures, each+--     specifying a sparse binding submission batch.+--+-- -   @fence@ is an /optional/ handle to a fence to be signaled. If+--     @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', it+--     defines a+--     <{html_spec_relative}#synchronization-fences-signaling fence signal operation>.+--+-- = Description+-- #_description#+--+-- @vkQueueBindSparse@ is a+-- <{html_spec_relative}#devsandqueues-submission queue submission command>,+-- with each batch defined by an element of @pBindInfo@ as an instance of+-- the 'VkBindSparseInfo' structure. Batches begin execution in the order+-- they appear in @pBindInfo@, but /may/ complete out of order.+--+-- Within a batch, a given range of a resource /must/ not be bound more+-- than once. Across batches, if a range is to be bound to one allocation+-- and offset and then to another allocation and offset, then the+-- application /must/ guarantee (usually using semaphores) that the binding+-- operations are executed in the correct order, as well as to order+-- binding operations against the execution of command buffer submissions.+--+-- As no operation to 'vkQueueBindSparse' causes any pipeline stage to+-- access memory, synchronization primitives used in this command+-- effectively only define execution dependencies.+--+-- Additional information about fence and semaphore operation is described+-- in <{html_spec_relative}#synchronization the synchronization chapter>.+--+-- == Valid Usage+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ be unsignaled+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ not be associated with any other queue command that+--     has not yet completed execution on that queue+--+-- -   Each element of the @pSignalSemaphores@ member of each element of+--     @pBindInfo@ /must/ be unsignaled when the semaphore signal operation+--     it defines is executed on the device+--+-- -   When a semaphore unsignal operation defined by any element of the+--     @pWaitSemaphores@ member of any element of @pBindInfo@ executes on+--     @queue@, no other queue /must/ be waiting on the same semaphore.+--+-- -   All elements of the @pWaitSemaphores@ member of all elements of+--     @pBindInfo@ /must/ be semaphores that are signaled, or have+--     <{html_spec_relative}#synchronization-semaphores-signaling semaphore signal operations>+--     previously submitted for execution.+--+-- == Valid Usage (Implicit)+--+-- -   @queue@ /must/ be a valid @VkQueue@ handle+--+-- -   If @bindInfoCount@ is not @0@, @pBindInfo@ /must/ be a valid pointer+--     to an array of @bindInfoCount@ valid @VkBindSparseInfo@ structures+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ be a valid @VkFence@ handle+--+-- -   The @queue@ /must/ support sparse binding operations+--+-- -   Both of @fence@, and @queue@ that are valid handles /must/ have been+--     created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @queue@ /must/ be externally synchronized+--+-- -   Host access to @pBindInfo@[].pWaitSemaphores[] /must/ be externally+--     synchronized+--+-- -   Host access to @pBindInfo@[].pSignalSemaphores[] /must/ be+--     externally synchronized+--+-- -   Host access to @pBindInfo@[].pBufferBinds[].buffer /must/ be+--     externally synchronized+--+-- -   Host access to @pBindInfo@[].pImageOpaqueBinds[].image /must/ be+--     externally synchronized+--+-- -   Host access to @pBindInfo@[].pImageBinds[].image /must/ be+--     externally synchronized+--+-- -   Host access to @fence@ /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | -               | -               | SPARSE_BINDING  | -               |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+-- = See Also+-- #_see_also#+--+-- 'VkBindSparseInfo', 'Graphics.Vulkan.Core10.Queue.VkFence',+-- 'Graphics.Vulkan.Core10.Queue.VkQueue'+foreign import ccall "vkQueueBindSparse" vkQueueBindSparse :: ("queue" ::: VkQueue) -> ("bindInfoCount" ::: Word32) -> ("pBindInfo" ::: Ptr VkBindSparseInfo) -> ("fence" ::: VkFence) -> IO VkResult+-- | VkOffset3D - Structure specifying a three-dimensional offset+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageBlit',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageCopy',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageResolve',+-- 'VkSparseImageMemoryBind'+data VkOffset3D = VkOffset3D+  { -- No documentation found for Nested "VkOffset3D" "vkX"+  vkX :: Int32+  , -- No documentation found for Nested "VkOffset3D" "vkY"+  vkY :: Int32+  , -- No documentation found for Nested "VkOffset3D" "vkZ"+  vkZ :: Int32+  }+  deriving (Eq, Show)++instance Storable VkOffset3D where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkOffset3D <$> peek (ptr `plusPtr` 0)+                        <*> peek (ptr `plusPtr` 4)+                        <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkOffset3D))+                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkOffset3D))+                *> poke (ptr `plusPtr` 8) (vkZ (poked :: VkOffset3D))+-- | VkSparseImageFormatProperties - Structure specifying sparse image format+-- properties+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D',+-- 'VkImageAspectFlags', 'VkSparseImageFormatFlags',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkSparseImageFormatProperties2',+-- 'VkSparseImageMemoryRequirements',+-- 'vkGetPhysicalDeviceSparseImageFormatProperties'+data VkSparseImageFormatProperties = VkSparseImageFormatProperties+  { -- No documentation found for Nested "VkSparseImageFormatProperties" "vkAspectMask"+  vkAspectMask :: VkImageAspectFlags+  , -- No documentation found for Nested "VkSparseImageFormatProperties" "vkImageGranularity"+  vkImageGranularity :: VkExtent3D+  , -- No documentation found for Nested "VkSparseImageFormatProperties" "vkFlags"+  vkFlags :: VkSparseImageFormatFlags+  }+  deriving (Eq, Show)++instance Storable VkSparseImageFormatProperties where+  sizeOf ~_ = 20+  alignment ~_ = 4+  peek ptr = VkSparseImageFormatProperties <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 4)+                                           <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkSparseImageFormatProperties))+                *> poke (ptr `plusPtr` 4) (vkImageGranularity (poked :: VkSparseImageFormatProperties))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSparseImageFormatProperties))+-- | VkSparseImageMemoryRequirements - Structure specifying sparse image+-- memory requirements+--+-- = Members+-- #_members#+--+-- -   @formatProperties.aspectMask@ is the set of aspects of the image+--     that this sparse memory requirement applies to. This will usually+--     have a single aspect specified. However, depth\/stencil images /may/+--     have depth and stencil data interleaved in the same sparse block, in+--     which case both @VK_IMAGE_ASPECT_DEPTH_BIT@ and+--     @VK_IMAGE_ASPECT_STENCIL_BIT@ would be present.+--+-- -   @formatProperties.imageGranularity@ describes the dimensions of a+--     single bindable sparse image block in texel units. For aspect+--     @VK_IMAGE_ASPECT_METADATA_BIT@, all dimensions will be zero. All+--     metadata is located in the mip tail region.+--+-- -   @formatProperties.flags@ is a bitmask of+--     'VkSparseImageFormatFlagBits':+--+--     -   If @VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT@ is set the image+--         uses a single mip tail region for all array layers.+--+--     -   If @VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT@ is set the+--         dimensions of mip levels /must/ be integer multiples of the+--         corresponding dimensions of the sparse image block for levels+--         not located in the mip tail.+--+--     -   If @VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT@ is set+--         the image uses non-standard sparse image block dimensions. The+--         @formatProperties.imageGranularity@ values do not match the+--         standard sparse image block dimension corresponding to the+--         image’s format.+--+-- -   @imageMipTailFirstLod@ is the first mip level at which image+--     subresources are included in the mip tail region.+--+-- -   @imageMipTailSize@ is the memory size (in bytes) of the mip tail+--     region. If @formatProperties.flags@ contains+--     @VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT@, this is the size of the+--     whole mip tail, otherwise this is the size of the mip tail of a+--     single array layer. This value is guaranteed to be a multiple of the+--     sparse block size in bytes.+--+-- -   @imageMipTailOffset@ is the opaque memory offset used with+--     'VkSparseImageOpaqueMemoryBindInfo' to bind the mip tail region(s).+--+-- -   @imageMipTailStride@ is the offset stride between each array-layer’s+--     mip tail, if @formatProperties.flags@ does not contain+--     @VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT@ (otherwise the value is+--     undefined).+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@, 'VkSparseImageFormatProperties',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkSparseImageMemoryRequirements2',+-- 'vkGetImageSparseMemoryRequirements'+data VkSparseImageMemoryRequirements = VkSparseImageMemoryRequirements+  { -- No documentation found for Nested "VkSparseImageMemoryRequirements" "vkFormatProperties"+  vkFormatProperties :: VkSparseImageFormatProperties+  , -- No documentation found for Nested "VkSparseImageMemoryRequirements" "vkImageMipTailFirstLod"+  vkImageMipTailFirstLod :: Word32+  , -- No documentation found for Nested "VkSparseImageMemoryRequirements" "vkImageMipTailSize"+  vkImageMipTailSize :: VkDeviceSize+  , -- No documentation found for Nested "VkSparseImageMemoryRequirements" "vkImageMipTailOffset"+  vkImageMipTailOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkSparseImageMemoryRequirements" "vkImageMipTailStride"+  vkImageMipTailStride :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkSparseImageMemoryRequirements where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkSparseImageMemoryRequirements <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 20)+                                             <*> peek (ptr `plusPtr` 24)+                                             <*> peek (ptr `plusPtr` 32)+                                             <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkFormatProperties (poked :: VkSparseImageMemoryRequirements))+                *> poke (ptr `plusPtr` 20) (vkImageMipTailFirstLod (poked :: VkSparseImageMemoryRequirements))+                *> poke (ptr `plusPtr` 24) (vkImageMipTailSize (poked :: VkSparseImageMemoryRequirements))+                *> poke (ptr `plusPtr` 32) (vkImageMipTailOffset (poked :: VkSparseImageMemoryRequirements))+                *> poke (ptr `plusPtr` 40) (vkImageMipTailStride (poked :: VkSparseImageMemoryRequirements))+-- | VkImageSubresource - Structure specifying a image subresource+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @aspectMask@ /must/ be a valid combination of+--     'VkImageAspectFlagBits' values+--+-- -   @aspectMask@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkImageAspectFlags', 'VkSparseImageMemoryBind',+-- 'Graphics.Vulkan.Core10.Image.vkGetImageSubresourceLayout'+data VkImageSubresource = VkImageSubresource+  { -- No documentation found for Nested "VkImageSubresource" "vkAspectMask"+  vkAspectMask :: VkImageAspectFlags+  , -- No documentation found for Nested "VkImageSubresource" "vkMipLevel"+  vkMipLevel :: Word32+  , -- No documentation found for Nested "VkImageSubresource" "vkArrayLayer"+  vkArrayLayer :: Word32+  }+  deriving (Eq, Show)++instance Storable VkImageSubresource where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkImageSubresource <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 4)+                                <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresource))+                *> poke (ptr `plusPtr` 4) (vkMipLevel (poked :: VkImageSubresource))+                *> poke (ptr `plusPtr` 8) (vkArrayLayer (poked :: VkImageSubresource))+-- | VkSparseMemoryBind - Structure specifying a sparse memory bind operation+--+-- = Description+-- #_description#+--+-- The /binding range/ [@resourceOffset@, @resourceOffset@ + @size@) has+-- different constraints based on @flags@. If @flags@ contains+-- @VK_SPARSE_MEMORY_BIND_METADATA_BIT@, the binding range /must/ be within+-- the mip tail region of the metadata aspect. This metadata region is+-- defined by:+--+-- []+--     metadataRegion = [base, base + @imageMipTailSize@)+--+-- []+--     base = @imageMipTailOffset@ + @imageMipTailStride@ × n+--+-- and @imageMipTailOffset@, @imageMipTailSize@, and @imageMipTailStride@+-- values are from the 'VkSparseImageMemoryRequirements' corresponding to+-- the metadata aspect of the image, and n is a valid array layer index for+-- the image,+--+-- @imageMipTailStride@ is considered to be zero for aspects where+-- @VkSparseImageMemoryRequirements@::@formatProperties.flags@ contains+-- @VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT@.+--+-- If @flags@ does not contain @VK_SPARSE_MEMORY_BIND_METADATA_BIT@, the+-- binding range /must/ be within the range+-- [0,'Graphics.Vulkan.Core10.MemoryManagement.VkMemoryRequirements'::@size@).+--+-- == Valid Usage+--+-- -   If @memory@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @memory@ and+--     @memoryOffset@ /must/ match the memory requirements of the resource,+--     as described in section+--     <{html_spec_relative}#resources-association {html_spec_relative}#resources-association>+--+-- -   If @memory@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @memory@ /must/+--     not have been created with a memory type that reports+--     @VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT@ bit set+--+-- -   @size@ /must/ be greater than @0@+--+-- -   @resourceOffset@ /must/ be less than the size of the resource+--+-- -   @size@ /must/ be less than or equal to the size of the resource+--     minus @resourceOffset@+--+-- -   @memoryOffset@ /must/ be less than the size of @memory@+--+-- -   @size@ /must/ be less than or equal to the size of @memory@ minus+--     @memoryOffset@+--+-- == Valid Usage (Implicit)+--+-- -   If @memory@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @memory@ /must/+--     be a valid @VkDeviceMemory@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'VkSparseMemoryBindFlagBits' values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory', @VkDeviceSize@,+-- 'VkSparseBufferMemoryBindInfo', 'VkSparseImageOpaqueMemoryBindInfo',+-- 'VkSparseMemoryBindFlags'+data VkSparseMemoryBind = VkSparseMemoryBind+  { -- No documentation found for Nested "VkSparseMemoryBind" "vkResourceOffset"+  vkResourceOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkSparseMemoryBind" "vkSize"+  vkSize :: VkDeviceSize+  , -- No documentation found for Nested "VkSparseMemoryBind" "vkMemory"+  vkMemory :: VkDeviceMemory+  , -- No documentation found for Nested "VkSparseMemoryBind" "vkMemoryOffset"+  vkMemoryOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkSparseMemoryBind" "vkFlags"+  vkFlags :: VkSparseMemoryBindFlags+  }+  deriving (Eq, Show)++instance Storable VkSparseMemoryBind where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkSparseMemoryBind <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 8)+                                <*> peek (ptr `plusPtr` 16)+                                <*> peek (ptr `plusPtr` 24)+                                <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkResourceOffset (poked :: VkSparseMemoryBind))+                *> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSparseMemoryBind))+                *> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkSparseMemoryBind))+                *> poke (ptr `plusPtr` 24) (vkMemoryOffset (poked :: VkSparseMemoryBind))+                *> poke (ptr `plusPtr` 32) (vkFlags (poked :: VkSparseMemoryBind))+-- | VkSparseImageMemoryBind - Structure specifying sparse image memory bind+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-features-sparseResidencyAliased sparse aliased residency>+--     feature is not enabled, and if any other resources are bound to+--     ranges of @memory@, the range of @memory@ being bound /must/ not+--     overlap with those bound ranges+--+-- -   @memory@ and @memoryOffset@ /must/ match the memory requirements of+--     the calling command’s @image@, as described in section+--     <{html_spec_relative}#resources-association {html_spec_relative}#resources-association>+--+-- -   @subresource@ /must/ be a valid image subresource for @image@ (see+--     <{html_spec_relative}#resources-image-views {html_spec_relative}#resources-image-views>)+--+-- -   @offset.x@ /must/ be a multiple of the sparse image block width+--     (@VkSparseImageFormatProperties@::@imageGranularity.width@) of the+--     image+--+-- -   @extent.width@ /must/ either be a multiple of the sparse image block+--     width of the image, or else (@extent.width@ + @offset.x@) /must/+--     equal the width of the image subresource+--+-- -   @offset.y@ /must/ be a multiple of the sparse image block height+--     (@VkSparseImageFormatProperties@::@imageGranularity.height@) of the+--     image+--+-- -   @extent.height@ /must/ either be a multiple of the sparse image+--     block height of the image, or else (@extent.height@ + @offset.y@)+--     /must/ equal the height of the image subresource+--+-- -   @offset.z@ /must/ be a multiple of the sparse image block depth+--     (@VkSparseImageFormatProperties@::@imageGranularity.depth@) of the+--     image+--+-- -   @extent.depth@ /must/ either be a multiple of the sparse image block+--     depth of the image, or else (@extent.depth@ + @offset.z@) /must/+--     equal the depth of the image subresource+--+-- == Valid Usage (Implicit)+--+-- -   @subresource@ /must/ be a valid @VkImageSubresource@ structure+--+-- -   If @memory@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @memory@ /must/+--     be a valid @VkDeviceMemory@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'VkSparseMemoryBindFlagBits' values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory', @VkDeviceSize@,+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D',+-- 'VkImageSubresource', 'VkOffset3D', 'VkSparseImageMemoryBindInfo',+-- 'VkSparseMemoryBindFlags'+data VkSparseImageMemoryBind = VkSparseImageMemoryBind+  { -- No documentation found for Nested "VkSparseImageMemoryBind" "vkSubresource"+  vkSubresource :: VkImageSubresource+  , -- No documentation found for Nested "VkSparseImageMemoryBind" "vkOffset"+  vkOffset :: VkOffset3D+  , -- No documentation found for Nested "VkSparseImageMemoryBind" "vkExtent"+  vkExtent :: VkExtent3D+  , -- No documentation found for Nested "VkSparseImageMemoryBind" "vkMemory"+  vkMemory :: VkDeviceMemory+  , -- No documentation found for Nested "VkSparseImageMemoryBind" "vkMemoryOffset"+  vkMemoryOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkSparseImageMemoryBind" "vkFlags"+  vkFlags :: VkSparseMemoryBindFlags+  }+  deriving (Eq, Show)++instance Storable VkSparseImageMemoryBind where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkSparseImageMemoryBind <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 12)+                                     <*> peek (ptr `plusPtr` 24)+                                     <*> peek (ptr `plusPtr` 40)+                                     <*> peek (ptr `plusPtr` 48)+                                     <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSubresource (poked :: VkSparseImageMemoryBind))+                *> poke (ptr `plusPtr` 12) (vkOffset (poked :: VkSparseImageMemoryBind))+                *> poke (ptr `plusPtr` 24) (vkExtent (poked :: VkSparseImageMemoryBind))+                *> poke (ptr `plusPtr` 40) (vkMemory (poked :: VkSparseImageMemoryBind))+                *> poke (ptr `plusPtr` 48) (vkMemoryOffset (poked :: VkSparseImageMemoryBind))+                *> poke (ptr `plusPtr` 56) (vkFlags (poked :: VkSparseImageMemoryBind))+-- | VkSparseBufferMemoryBindInfo - Structure specifying a sparse buffer+-- memory bind operation+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @pBinds@ /must/ be a valid pointer to an array of @bindCount@ valid+--     @VkSparseMemoryBind@ structures+--+-- -   @bindCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkBindSparseInfo', 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'VkSparseMemoryBind'+data VkSparseBufferMemoryBindInfo = VkSparseBufferMemoryBindInfo+  { -- No documentation found for Nested "VkSparseBufferMemoryBindInfo" "vkBuffer"+  vkBuffer :: VkBuffer+  , -- No documentation found for Nested "VkSparseBufferMemoryBindInfo" "vkBindCount"+  vkBindCount :: Word32+  , -- No documentation found for Nested "VkSparseBufferMemoryBindInfo" "vkPBinds"+  vkPBinds :: Ptr VkSparseMemoryBind+  }+  deriving (Eq, Show)++instance Storable VkSparseBufferMemoryBindInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSparseBufferMemoryBindInfo <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkBuffer (poked :: VkSparseBufferMemoryBindInfo))+                *> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseBufferMemoryBindInfo))+                *> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseBufferMemoryBindInfo))+-- | VkSparseImageOpaqueMemoryBindInfo - Structure specifying sparse image+-- opaque memory bind info+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the @flags@ member of any element of @pBinds@ contains+--     @VK_SPARSE_MEMORY_BIND_METADATA_BIT@, the binding range defined+--     /must/ be within the mip tail region of the metadata aspect of+--     @image@+--+-- == Valid Usage (Implicit)+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @pBinds@ /must/ be a valid pointer to an array of @bindCount@ valid+--     @VkSparseMemoryBind@ structures+--+-- -   @bindCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkBindSparseInfo', 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'VkSparseMemoryBind'+data VkSparseImageOpaqueMemoryBindInfo = VkSparseImageOpaqueMemoryBindInfo+  { -- No documentation found for Nested "VkSparseImageOpaqueMemoryBindInfo" "vkImage"+  vkImage :: VkImage+  , -- No documentation found for Nested "VkSparseImageOpaqueMemoryBindInfo" "vkBindCount"+  vkBindCount :: Word32+  , -- No documentation found for Nested "VkSparseImageOpaqueMemoryBindInfo" "vkPBinds"+  vkPBinds :: Ptr VkSparseMemoryBind+  }+  deriving (Eq, Show)++instance Storable VkSparseImageOpaqueMemoryBindInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSparseImageOpaqueMemoryBindInfo <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkImage (poked :: VkSparseImageOpaqueMemoryBindInfo))+                *> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseImageOpaqueMemoryBindInfo))+                *> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseImageOpaqueMemoryBindInfo))+-- | VkSparseImageMemoryBindInfo - Structure specifying sparse image memory+-- bind info+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The @subresource.mipLevel@ member of each element of @pBinds@ /must/+--     be less than the @mipLevels@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- -   The @subresource.arrayLayer@ member of each element of @pBinds@+--     /must/ be less than the @arrayLayers@ specified in+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' when @image@ was+--     created+--+-- == Valid Usage (Implicit)+--+-- -   @image@ /must/ be a valid @VkImage@ handle+--+-- -   @pBinds@ /must/ be a valid pointer to an array of @bindCount@ valid+--     @VkSparseImageMemoryBind@ structures+--+-- -   @bindCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkBindSparseInfo', 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'VkSparseImageMemoryBind'+data VkSparseImageMemoryBindInfo = VkSparseImageMemoryBindInfo+  { -- No documentation found for Nested "VkSparseImageMemoryBindInfo" "vkImage"+  vkImage :: VkImage+  , -- No documentation found for Nested "VkSparseImageMemoryBindInfo" "vkBindCount"+  vkBindCount :: Word32+  , -- No documentation found for Nested "VkSparseImageMemoryBindInfo" "vkPBinds"+  vkPBinds :: Ptr VkSparseImageMemoryBind+  }+  deriving (Eq, Show)++instance Storable VkSparseImageMemoryBindInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSparseImageMemoryBindInfo <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkImage (poked :: VkSparseImageMemoryBindInfo))+                *> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseImageMemoryBindInfo))+                *> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseImageMemoryBindInfo))+-- | VkBindSparseInfo - Structure specifying a sparse binding operation+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_BIND_SPARSE_INFO@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupBindSparseInfo'+--+-- -   If @waitSemaphoreCount@ is not @0@, @pWaitSemaphores@ /must/ be a+--     valid pointer to an array of @waitSemaphoreCount@ valid+--     @VkSemaphore@ handles+--+-- -   If @bufferBindCount@ is not @0@, @pBufferBinds@ /must/ be a valid+--     pointer to an array of @bufferBindCount@ valid+--     @VkSparseBufferMemoryBindInfo@ structures+--+-- -   If @imageOpaqueBindCount@ is not @0@, @pImageOpaqueBinds@ /must/ be+--     a valid pointer to an array of @imageOpaqueBindCount@ valid+--     @VkSparseImageOpaqueMemoryBindInfo@ structures+--+-- -   If @imageBindCount@ is not @0@, @pImageBinds@ /must/ be a valid+--     pointer to an array of @imageBindCount@ valid+--     @VkSparseImageMemoryBindInfo@ structures+--+-- -   If @signalSemaphoreCount@ is not @0@, @pSignalSemaphores@ /must/ be+--     a valid pointer to an array of @signalSemaphoreCount@ valid+--     @VkSemaphore@ handles+--+-- -   Both of the elements of @pSignalSemaphores@, and the elements of+--     @pWaitSemaphores@ that are valid handles /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore',+-- 'VkSparseBufferMemoryBindInfo', 'VkSparseImageMemoryBindInfo',+-- 'VkSparseImageOpaqueMemoryBindInfo',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkQueueBindSparse'+data VkBindSparseInfo = VkBindSparseInfo+  { -- No documentation found for Nested "VkBindSparseInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBindSparseInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBindSparseInfo" "vkWaitSemaphoreCount"+  vkWaitSemaphoreCount :: Word32+  , -- No documentation found for Nested "VkBindSparseInfo" "vkPWaitSemaphores"+  vkPWaitSemaphores :: Ptr VkSemaphore+  , -- No documentation found for Nested "VkBindSparseInfo" "vkBufferBindCount"+  vkBufferBindCount :: Word32+  , -- No documentation found for Nested "VkBindSparseInfo" "vkPBufferBinds"+  vkPBufferBinds :: Ptr VkSparseBufferMemoryBindInfo+  , -- No documentation found for Nested "VkBindSparseInfo" "vkImageOpaqueBindCount"+  vkImageOpaqueBindCount :: Word32+  , -- No documentation found for Nested "VkBindSparseInfo" "vkPImageOpaqueBinds"+  vkPImageOpaqueBinds :: Ptr VkSparseImageOpaqueMemoryBindInfo+  , -- No documentation found for Nested "VkBindSparseInfo" "vkImageBindCount"+  vkImageBindCount :: Word32+  , -- No documentation found for Nested "VkBindSparseInfo" "vkPImageBinds"+  vkPImageBinds :: Ptr VkSparseImageMemoryBindInfo+  , -- No documentation found for Nested "VkBindSparseInfo" "vkSignalSemaphoreCount"+  vkSignalSemaphoreCount :: Word32+  , -- No documentation found for Nested "VkBindSparseInfo" "vkPSignalSemaphores"+  vkPSignalSemaphores :: Ptr VkSemaphore+  }+  deriving (Eq, Show)++instance Storable VkBindSparseInfo where+  sizeOf ~_ = 96+  alignment ~_ = 8+  peek ptr = VkBindSparseInfo <$> peek (ptr `plusPtr` 0)+                              <*> peek (ptr `plusPtr` 8)+                              <*> peek (ptr `plusPtr` 16)+                              <*> peek (ptr `plusPtr` 24)+                              <*> peek (ptr `plusPtr` 32)+                              <*> peek (ptr `plusPtr` 40)+                              <*> peek (ptr `plusPtr` 48)+                              <*> peek (ptr `plusPtr` 56)+                              <*> peek (ptr `plusPtr` 64)+                              <*> peek (ptr `plusPtr` 72)+                              <*> peek (ptr `plusPtr` 80)+                              <*> peek (ptr `plusPtr` 88)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 32) (vkBufferBindCount (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 40) (vkPBufferBinds (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 48) (vkImageOpaqueBindCount (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 56) (vkPImageOpaqueBinds (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 64) (vkImageBindCount (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 72) (vkPImageBinds (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 80) (vkSignalSemaphoreCount (poked :: VkBindSparseInfo))+                *> poke (ptr `plusPtr` 88) (vkPSignalSemaphores (poked :: VkBindSparseInfo))+-- | VkImageAspectFlags - Bitmask of VkImageAspectFlagBits+--+-- = Description+-- #_description#+--+-- @VkImageAspectFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkImageAspectFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearAttachment',+-- 'VkImageAspectFlagBits', 'VkImageSubresource',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageSubresourceLayers',+-- 'Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkInputAttachmentAspectReference',+-- 'VkSparseImageFormatProperties'+type VkImageAspectFlags = VkImageAspectFlagBits+-- | VkSparseMemoryBindFlags - Bitmask of VkSparseMemoryBindFlagBits+--+-- = Description+-- #_description#+--+-- @VkSparseMemoryBindFlags@ is a bitmask type for setting a mask of zero+-- or more 'VkSparseMemoryBindFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkSparseImageMemoryBind', 'VkSparseMemoryBind',+-- 'VkSparseMemoryBindFlagBits'+type VkSparseMemoryBindFlags = VkSparseMemoryBindFlagBits+-- | VkSparseImageFormatFlags - Bitmask of VkSparseImageFormatFlagBits+--+-- = Description+-- #_description#+--+-- @VkSparseImageFormatFlags@ is a bitmask type for setting a mask of zero+-- or more 'VkSparseImageFormatFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkSparseImageFormatFlagBits', 'VkSparseImageFormatProperties'+type VkSparseImageFormatFlags = VkSparseImageFormatFlagBits
+ src/Graphics/Vulkan/Core10/Version.hs view
@@ -0,0 +1,119 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language ViewPatterns #-}++module Graphics.Vulkan.Core10.Version+  ( pattern VK_HEADER_VERSION+  , pattern VK_MAKE_VERSION+  , pattern VK_API_VERSION_1_0+  , pattern VK_API_VERSION_1_1+  , _VK_VERSION_MAJOR+  , _VK_VERSION_MINOR+  , _VK_VERSION_PATCH+  ) where++import Data.Bits+  ( (.&.)+  , (.|.)+  , shiftL+  , shiftR+  )+import Data.Word+  ( Word32+  )++++++-- | VK_HEADER_VERSION - Vulkan header file version number+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- No cross-references are available+pattern VK_HEADER_VERSION :: Integral a => a+pattern VK_HEADER_VERSION = 73+-- | VK_MAKE_VERSION - Construct an API version number+--+-- = Description+-- #_description#+--+-- -   @major@ is the major version number.+--+-- -   @minor@ is the minor version number.+--+-- -   @patch@ is the patch version number.+--+-- This macro /can/ be used when constructing the+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo'::@apiVersion@+-- parameter passed to+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkCreateInstance'.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkCreateInstance'+pattern VK_MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32+pattern VK_MAKE_VERSION major minor patch <-+  (\v -> (_VK_VERSION_MAJOR v, _VK_VERSION_MINOR v, _VK_VERSION_PATCH v) -> (major, minor, patch))+  where VK_MAKE_VERSION major minor patch = major `shiftL` 22 .|. minor `shiftL` 12 .|. patch++-- | VK_API_VERSION_1_0 - Return API version number for Vulkan 1.0+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkCreateInstance',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceProperties'+pattern VK_API_VERSION_1_0 :: Word32+pattern VK_API_VERSION_1_0 = VK_MAKE_VERSION 1 0 0++-- | VK_API_VERSION_1_1 - Return API version number for Vulkan 1.1+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkCreateInstance',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceProperties'+pattern VK_API_VERSION_1_1 :: Word32+pattern VK_API_VERSION_1_1 = VK_MAKE_VERSION 1 1 0++-- | VK_VERSION_MAJOR - Extract API major version number+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- No cross-references are available+_VK_VERSION_MAJOR :: Word32 -> Word32+_VK_VERSION_MAJOR v = v `shiftR` 22++-- | VK_VERSION_MINOR - Extract API minor version number+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- No cross-references are available+_VK_VERSION_MINOR :: Word32 -> Word32+_VK_VERSION_MINOR v = v `shiftR` 12 .&. 0x3ff++-- No documentation found for TopLevel "VK_VERSION_PATCh"+_VK_VERSION_PATCH :: Word32 -> Word32+_VK_VERSION_PATCH v = v .&. 0xfff
+ src/Graphics/Vulkan/Core11.hs view
@@ -0,0 +1,61 @@+{-# language Strict #-}+{-# language CPP #-}+++module Graphics.Vulkan.Core11+  (     module Graphics.Vulkan.Core11.DeviceInitialization+  , module Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers+  , module Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3+  , module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters+  ) where+++import Graphics.Vulkan.Core11.DeviceInitialization+import Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers+import Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters+++
+ src/Graphics/Vulkan/Core11/DeviceInitialization.hs view
@@ -0,0 +1,54 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Core11.DeviceInitialization+  ( vkEnumerateInstanceVersion+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+++-- | vkEnumerateInstanceVersion - Query instance-level version before+-- instance creation+--+-- = Parameters+-- #_parameters#+--+-- -   @pApiVersion@ points to a @uint32_t@, which is the version of Vulkan+--     supported by instance-level functionality, encoded as described in+--     the+--     <{html_spec_relative}#fundamentals-versionnum API Version Numbers and Semantics>+--     section.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @pApiVersion@ /must/ be a valid pointer to a @uint32_t@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- = See Also+-- #_see_also#+--+-- No cross-references are available+foreign import ccall "vkEnumerateInstanceVersion" vkEnumerateInstanceVersion :: ("pApiVersion" ::: Ptr Word32) -> IO VkResult
+ src/Graphics/Vulkan/Core11/Promoted_From_VK_KHR_protected_memory.hs view
@@ -0,0 +1,326 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory+  ( pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2+  , pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT+  , pattern VK_QUEUE_PROTECTED_BIT+  , pattern VK_MEMORY_PROPERTY_PROTECTED_BIT+  , pattern VK_BUFFER_CREATE_PROTECTED_BIT+  , pattern VK_IMAGE_CREATE_PROTECTED_BIT+  , pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT+  , vkGetDeviceQueue2+  , VkProtectedSubmitInfo(..)+  , VkPhysicalDeviceProtectedMemoryFeatures(..)+  , VkPhysicalDeviceProtectedMemoryProperties(..)+  , VkDeviceQueueInfo2(..)+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Buffer+  ( VkBufferCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.CommandPool+  ( VkCommandPoolCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Device+  ( VkDeviceQueueCreateFlags+  , VkDeviceQueueCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  , VkImageCreateFlagBits(..)+  , VkMemoryPropertyFlagBits(..)+  , VkQueueFlagBits(..)+  )+import Graphics.Vulkan.Core10.Queue+  ( VkQueue+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"+pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = VkStructureType 1000145000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = VkStructureType 1000145001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = VkStructureType 1000145002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = VkStructureType 1000145003+-- | @VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT@ specifies that the device queue+-- is a protected-capable queue. If the protected memory feature is not+-- enabled, the @VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT@ bit of @flags@+-- /must/ not be set.+pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT :: VkDeviceQueueCreateFlagBits+pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = VkDeviceQueueCreateFlagBits 0x00000001+-- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_PROTECTED_BIT"+pattern VK_QUEUE_PROTECTED_BIT :: VkQueueFlagBits+pattern VK_QUEUE_PROTECTED_BIT = VkQueueFlagBits 0x00000010+-- No documentation found for Nested "VkMemoryPropertyFlagBits" "VK_MEMORY_PROPERTY_PROTECTED_BIT"+pattern VK_MEMORY_PROPERTY_PROTECTED_BIT :: VkMemoryPropertyFlagBits+pattern VK_MEMORY_PROPERTY_PROTECTED_BIT = VkMemoryPropertyFlagBits 0x00000020+-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_PROTECTED_BIT"+pattern VK_BUFFER_CREATE_PROTECTED_BIT :: VkBufferCreateFlagBits+pattern VK_BUFFER_CREATE_PROTECTED_BIT = VkBufferCreateFlagBits 0x00000008+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_PROTECTED_BIT"+pattern VK_IMAGE_CREATE_PROTECTED_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_PROTECTED_BIT = VkImageCreateFlagBits 0x00000800+-- No documentation found for Nested "VkCommandPoolCreateFlagBits" "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"+pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT :: VkCommandPoolCreateFlagBits+pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT = VkCommandPoolCreateFlagBits 0x00000004+-- | vkGetDeviceQueue2 - Get a queue handle from a device+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the queue.+--+-- -   @pQueueInfo@ points to an instance of the 'VkDeviceQueueInfo2'+--     structure, describing the parameters used to create the device+--     queue.+--+-- -   @pQueue@ is a pointer to a @VkQueue@ object that will be filled with+--     the handle for the requested queue.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pQueueInfo@ /must/ be a valid pointer to a valid+--     @VkDeviceQueueInfo2@ structure+--+-- -   @pQueue@ /must/ be a valid pointer to a @VkQueue@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDeviceQueueInfo2', 'Graphics.Vulkan.Core10.Queue.VkQueue'+foreign import ccall "vkGetDeviceQueue2" vkGetDeviceQueue2 :: ("device" ::: VkDevice) -> ("pQueueInfo" ::: Ptr VkDeviceQueueInfo2) -> ("pQueue" ::: Ptr VkQueue) -> IO ()+-- | VkProtectedSubmitInfo - Structure indicating whether the submission is+-- protected+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the protected memory feature is not enabled, @protectedSubmit@+--     /must/ not be @VK_TRUE@.+--+-- -   If @protectedSubmit@ is @VK_TRUE@, then each element of the+--     @pCommandBuffers@ array /must/ be a protected command buffer.+--+-- -   If @protectedSubmit@ is @VK_FALSE@, then each element of the+--     @pCommandBuffers@ array /must/ be an unprotected command buffer.+--+-- -   If the @VkSubmitInfo@::@pNext@ chain does not include a+--     @VkProtectedSubmitInfo@ structure, then each element of the command+--     buffer of the @pCommandBuffers@ array /must/ be an unprotected+--     command buffer.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkProtectedSubmitInfo = VkProtectedSubmitInfo+  { -- No documentation found for Nested "VkProtectedSubmitInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkProtectedSubmitInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkProtectedSubmitInfo" "vkProtectedSubmit"+  vkProtectedSubmit :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkProtectedSubmitInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkProtectedSubmitInfo <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkProtectedSubmitInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkProtectedSubmitInfo))+                *> poke (ptr `plusPtr` 16) (vkProtectedSubmit (poked :: VkProtectedSubmitInfo))+-- | VkPhysicalDeviceProtectedMemoryFeatures - Structure describing protected+-- memory features that can be supported by an implementation+--+-- = Description+-- #_description#+--+-- If the @VkPhysicalDeviceProtectedMemoryFeatures@ structure is included+-- in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2',+-- it is filled with a value indicating whether the feature is supported.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceProtectedMemoryFeatures = VkPhysicalDeviceProtectedMemoryFeatures+  { -- No documentation found for Nested "VkPhysicalDeviceProtectedMemoryFeatures" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceProtectedMemoryFeatures" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceProtectedMemoryFeatures" "vkProtectedMemory"+  vkProtectedMemory :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceProtectedMemoryFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceProtectedMemoryFeatures <$> peek (ptr `plusPtr` 0)+                                                     <*> peek (ptr `plusPtr` 8)+                                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceProtectedMemoryFeatures))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceProtectedMemoryFeatures))+                *> poke (ptr `plusPtr` 16) (vkProtectedMemory (poked :: VkPhysicalDeviceProtectedMemoryFeatures))+-- | VkPhysicalDeviceProtectedMemoryProperties - Structure describing+-- protected memory properties that can be supported by an implementation+--+-- = Description+-- #_description#+--+-- If the @VkPhysicalDeviceProtectedMemoryProperties@ structure is included+-- in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- it is filled with a value indicating the implementation-dependent+-- behavior.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceProtectedMemoryProperties = VkPhysicalDeviceProtectedMemoryProperties+  { -- No documentation found for Nested "VkPhysicalDeviceProtectedMemoryProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceProtectedMemoryProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceProtectedMemoryProperties" "vkProtectedNoFault"+  vkProtectedNoFault :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceProtectedMemoryProperties where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceProtectedMemoryProperties <$> peek (ptr `plusPtr` 0)+                                                       <*> peek (ptr `plusPtr` 8)+                                                       <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceProtectedMemoryProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceProtectedMemoryProperties))+                *> poke (ptr `plusPtr` 16) (vkProtectedNoFault (poked :: VkPhysicalDeviceProtectedMemoryProperties))+-- | VkDeviceQueueInfo2 - Structure specifying the parameters used for device+-- queue creation+--+-- = Description+-- #_description#+--+-- The queue returned by @vkGetDeviceQueue2@ /must/ have the same @flags@+-- value from this structure as that used at device creation time in a+-- @VkDeviceQueueCreateInfo@ instance. If no matching @flags@ were+-- specified at device creation time then @pQueue@ will return+-- @VK_NULL_HANDLE@.+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be one of the queue family indices+--     specified when @device@ was created, via the+--     @VkDeviceQueueCreateInfo@ structure+--+-- -   @queueIndex@ /must/ be less than the number of queues created for+--     the specified queue family index and @VkDeviceQueueCreateFlags@+--     member @flags@ equal to this @flags@ value when @device@ was+--     created, via the @queueCount@ member of the+--     @VkDeviceQueueCreateInfo@ structure+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits' values+--+-- -   @flags@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkGetDeviceQueue2'+data VkDeviceQueueInfo2 = VkDeviceQueueInfo2+  { -- No documentation found for Nested "VkDeviceQueueInfo2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceQueueInfo2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceQueueInfo2" "vkFlags"+  vkFlags :: VkDeviceQueueCreateFlags+  , -- No documentation found for Nested "VkDeviceQueueInfo2" "vkQueueFamilyIndex"+  vkQueueFamilyIndex :: Word32+  , -- No documentation found for Nested "VkDeviceQueueInfo2" "vkQueueIndex"+  vkQueueIndex :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDeviceQueueInfo2 where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDeviceQueueInfo2 <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 8)+                                <*> peek (ptr `plusPtr` 16)+                                <*> peek (ptr `plusPtr` 20)+                                <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceQueueInfo2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceQueueInfo2))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDeviceQueueInfo2))+                *> poke (ptr `plusPtr` 20) (vkQueueFamilyIndex (poked :: VkDeviceQueueInfo2))+                *> poke (ptr `plusPtr` 24) (vkQueueIndex (poked :: VkDeviceQueueInfo2))
+ src/Graphics/Vulkan/Core11/Promoted_From_VK_KHR_subgroup.hs view
@@ -0,0 +1,254 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup+  ( VkSubgroupFeatureFlagBits(..)+  , pattern VK_SUBGROUP_FEATURE_BASIC_BIT+  , pattern VK_SUBGROUP_FEATURE_VOTE_BIT+  , pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT+  , pattern VK_SUBGROUP_FEATURE_BALLOT_BIT+  , pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT+  , pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT+  , pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT+  , pattern VK_SUBGROUP_FEATURE_QUAD_BIT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES+  , VkPhysicalDeviceSubgroupProperties(..)+  , VkSubgroupFeatureFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.PipelineLayout+  ( VkShaderStageFlags+  )+++-- ** VkSubgroupFeatureFlagBits++-- | VkSubgroupFeatureFlagBits - Enum describing what subgroup operations are+-- supported+--+-- = See Also+-- #_see_also#+--+-- 'VkSubgroupFeatureFlags'+newtype VkSubgroupFeatureFlagBits = VkSubgroupFeatureFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSubgroupFeatureFlagBits where+  showsPrec _ VK_SUBGROUP_FEATURE_BASIC_BIT = showString "VK_SUBGROUP_FEATURE_BASIC_BIT"+  showsPrec _ VK_SUBGROUP_FEATURE_VOTE_BIT = showString "VK_SUBGROUP_FEATURE_VOTE_BIT"+  showsPrec _ VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = showString "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"+  showsPrec _ VK_SUBGROUP_FEATURE_BALLOT_BIT = showString "VK_SUBGROUP_FEATURE_BALLOT_BIT"+  showsPrec _ VK_SUBGROUP_FEATURE_SHUFFLE_BIT = showString "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"+  showsPrec _ VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = showString "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"+  showsPrec _ VK_SUBGROUP_FEATURE_CLUSTERED_BIT = showString "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"+  showsPrec _ VK_SUBGROUP_FEATURE_QUAD_BIT = showString "VK_SUBGROUP_FEATURE_QUAD_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkSubgroupFeatureFlagBits 0x00000100) = showString "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"+  showsPrec p (VkSubgroupFeatureFlagBits x) = showParen (p >= 11) (showString "VkSubgroupFeatureFlagBits " . showsPrec 11 x)++instance Read VkSubgroupFeatureFlagBits where+  readPrec = parens ( choose [ ("VK_SUBGROUP_FEATURE_BASIC_BIT",            pure VK_SUBGROUP_FEATURE_BASIC_BIT)+                             , ("VK_SUBGROUP_FEATURE_VOTE_BIT",             pure VK_SUBGROUP_FEATURE_VOTE_BIT)+                             , ("VK_SUBGROUP_FEATURE_ARITHMETIC_BIT",       pure VK_SUBGROUP_FEATURE_ARITHMETIC_BIT)+                             , ("VK_SUBGROUP_FEATURE_BALLOT_BIT",           pure VK_SUBGROUP_FEATURE_BALLOT_BIT)+                             , ("VK_SUBGROUP_FEATURE_SHUFFLE_BIT",          pure VK_SUBGROUP_FEATURE_SHUFFLE_BIT)+                             , ("VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT", pure VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT)+                             , ("VK_SUBGROUP_FEATURE_CLUSTERED_BIT",        pure VK_SUBGROUP_FEATURE_CLUSTERED_BIT)+                             , ("VK_SUBGROUP_FEATURE_QUAD_BIT",             pure VK_SUBGROUP_FEATURE_QUAD_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV", pure (VkSubgroupFeatureFlagBits 0x00000100))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSubgroupFeatureFlagBits")+                        v <- step readPrec+                        pure (VkSubgroupFeatureFlagBits v)+                        )+                    )++-- | @VK_SUBGROUP_FEATURE_BASIC_BIT@ specifies the device will accept SPIR-V+-- shader modules that contain the @GroupNonUniform@ capability.+pattern VK_SUBGROUP_FEATURE_BASIC_BIT :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_BASIC_BIT = VkSubgroupFeatureFlagBits 0x00000001++-- | @VK_SUBGROUP_FEATURE_VOTE_BIT@ specifies the device will accept SPIR-V+-- shader modules that contain the @GroupNonUniformVote@ capability.+pattern VK_SUBGROUP_FEATURE_VOTE_BIT :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_VOTE_BIT = VkSubgroupFeatureFlagBits 0x00000002++-- | @VK_SUBGROUP_FEATURE_ARITHMETIC_BIT@ specifies the device will accept+-- SPIR-V shader modules that contain the @GroupNonUniformArithmetic@+-- capability.+pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = VkSubgroupFeatureFlagBits 0x00000004++-- | @VK_SUBGROUP_FEATURE_BALLOT_BIT@ specifies the device will accept SPIR-V+-- shader modules that contain the @GroupNonUniformBallot@ capability.+pattern VK_SUBGROUP_FEATURE_BALLOT_BIT :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_BALLOT_BIT = VkSubgroupFeatureFlagBits 0x00000008++-- | @VK_SUBGROUP_FEATURE_SHUFFLE_BIT@ specifies the device will accept+-- SPIR-V shader modules that contain the @GroupNonUniformShuffle@+-- capability.+pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT = VkSubgroupFeatureFlagBits 0x00000010++-- | @VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT@ specifies the device will+-- accept SPIR-V shader modules that contain the+-- @GroupNonUniformShuffleRelative@ capability.+pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = VkSubgroupFeatureFlagBits 0x00000020++-- | @VK_SUBGROUP_FEATURE_CLUSTERED_BIT@ specifies the device will accept+-- SPIR-V shader modules that contain the @GroupNonUniformClustered@+-- capability.+pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT = VkSubgroupFeatureFlagBits 0x00000040++-- | @VK_SUBGROUP_FEATURE_QUAD_BIT@ specifies the device will accept SPIR-V+-- shader modules that contain the @GroupNonUniformQuad@ capability.+pattern VK_SUBGROUP_FEATURE_QUAD_BIT :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_QUAD_BIT = VkSubgroupFeatureFlagBits 0x00000080+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = VkStructureType 1000094000+-- | VkPhysicalDeviceSubgroupProperties - Structure describing subgroup+-- support for an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceSubgroupProperties@ structure+-- describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to an extension-specific structure.+--+-- -   @subgroupSize@ is the number of invocations in each subgroup. This+--     will match any+--     <{html_spec_relative}#interfaces-builtin-variables-sgs SubgroupSize>+--     decorated variable used in any shader module created on this device.+--     @subgroupSize@ is at least 1 if any of the physical device’s queues+--     support @VK_QUEUE_GRAPHICS_BIT@ or @VK_QUEUE_COMPUTE_BIT@.+--+-- -   @supportedStages@ is a bitfield of+--     'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits' describing+--     the shader stages that subgroup operations are supported in.+--     @supportedStages@ will have the @VK_SHADER_STAGE_COMPUTE_BIT@ bit+--     set if any of any of the physical device’s queues support+--     @VK_QUEUE_COMPUTE_BIT@.+--+-- -   @supportedOperations@ is a bitmask of 'VkSubgroupFeatureFlagBits'+--     specifying the sets of subgroup operations supported on this device.+--     @supportedOperations@ will have the @VK_SUBGROUP_FEATURE_BASIC_BIT@+--     bit set if any of the physical device’s queues support+--     @VK_QUEUE_GRAPHICS_BIT@ or @VK_QUEUE_COMPUTE_BIT@.+--+-- -   @quadOperationsInAllStages@ is a boolean that specifies whether+--     <{html_spec_relative}#features-features-subgroup-quad quad subgroup operations>+--     are available in all stages, or are restricted to fragment and+--     compute stages.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES@+--+-- If the @VkPhysicalDeviceSubgroupProperties@ structure is included in the+-- @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.PipelineLayout.VkShaderStageFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkSubgroupFeatureFlags'+data VkPhysicalDeviceSubgroupProperties = VkPhysicalDeviceSubgroupProperties+  { -- No documentation found for Nested "VkPhysicalDeviceSubgroupProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceSubgroupProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceSubgroupProperties" "vkSubgroupSize"+  vkSubgroupSize :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceSubgroupProperties" "vkSupportedStages"+  vkSupportedStages :: VkShaderStageFlags+  , -- No documentation found for Nested "VkPhysicalDeviceSubgroupProperties" "vkSupportedOperations"+  vkSupportedOperations :: VkSubgroupFeatureFlags+  , -- No documentation found for Nested "VkPhysicalDeviceSubgroupProperties" "vkQuadOperationsInAllStages"+  vkQuadOperationsInAllStages :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceSubgroupProperties where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceSubgroupProperties <$> peek (ptr `plusPtr` 0)+                                                <*> peek (ptr `plusPtr` 8)+                                                <*> peek (ptr `plusPtr` 16)+                                                <*> peek (ptr `plusPtr` 20)+                                                <*> peek (ptr `plusPtr` 24)+                                                <*> peek (ptr `plusPtr` 28)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceSubgroupProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceSubgroupProperties))+                *> poke (ptr `plusPtr` 16) (vkSubgroupSize (poked :: VkPhysicalDeviceSubgroupProperties))+                *> poke (ptr `plusPtr` 20) (vkSupportedStages (poked :: VkPhysicalDeviceSubgroupProperties))+                *> poke (ptr `plusPtr` 24) (vkSupportedOperations (poked :: VkPhysicalDeviceSubgroupProperties))+                *> poke (ptr `plusPtr` 28) (vkQuadOperationsInAllStages (poked :: VkPhysicalDeviceSubgroupProperties))+-- | VkSubgroupFeatureFlags - Bitmask of VkSubgroupFeatureFlagBits+--+-- = Description+-- #_description#+--+-- @VkSubgroupFeatureFlags@ is a bitmask type for setting a mask of zero or+-- more 'VkSubgroupFeatureFlagBits'.+--+-- = See Also+-- #_see_also#+--+-- 'VkPhysicalDeviceSubgroupProperties', 'VkSubgroupFeatureFlagBits'+type VkSubgroupFeatureFlags = VkSubgroupFeatureFlagBits
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_16bit_storage.hs view
@@ -0,0 +1,62 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES+  , VkPhysicalDevice16BitStorageFeatures(..)+  ) where++import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = VkStructureType 1000083000+-- | VkPhysicalDevice16BitStorageFeatures - Structure describing features+-- supported by VK_KHR_16bit_storage+data VkPhysicalDevice16BitStorageFeatures = VkPhysicalDevice16BitStorageFeatures+  { -- No documentation found for Nested "VkPhysicalDevice16BitStorageFeatures" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDevice16BitStorageFeatures" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDevice16BitStorageFeatures" "vkStorageBuffer16BitAccess"+  vkStorageBuffer16BitAccess :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDevice16BitStorageFeatures" "vkUniformAndStorageBuffer16BitAccess"+  vkUniformAndStorageBuffer16BitAccess :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDevice16BitStorageFeatures" "vkStoragePushConstant16"+  vkStoragePushConstant16 :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDevice16BitStorageFeatures" "vkStorageInputOutput16"+  vkStorageInputOutput16 :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDevice16BitStorageFeatures where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPhysicalDevice16BitStorageFeatures <$> peek (ptr `plusPtr` 0)+                                                  <*> peek (ptr `plusPtr` 8)+                                                  <*> peek (ptr `plusPtr` 16)+                                                  <*> peek (ptr `plusPtr` 20)+                                                  <*> peek (ptr `plusPtr` 24)+                                                  <*> peek (ptr `plusPtr` 28)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDevice16BitStorageFeatures))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDevice16BitStorageFeatures))+                *> poke (ptr `plusPtr` 16) (vkStorageBuffer16BitAccess (poked :: VkPhysicalDevice16BitStorageFeatures))+                *> poke (ptr `plusPtr` 20) (vkUniformAndStorageBuffer16BitAccess (poked :: VkPhysicalDevice16BitStorageFeatures))+                *> poke (ptr `plusPtr` 24) (vkStoragePushConstant16 (poked :: VkPhysicalDevice16BitStorageFeatures))+                *> poke (ptr `plusPtr` 28) (vkStorageInputOutput16 (poked :: VkPhysicalDevice16BitStorageFeatures))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_bind_memory2.hs view
@@ -0,0 +1,122 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2+  ( pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO+  , pattern VK_IMAGE_CREATE_ALIAS_BIT+  , vkBindBufferMemory2+  , vkBindImageMemory2+  , VkBindBufferMemoryInfo(..)+  , VkBindImageMemoryInfo(..)+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkDevice+  , VkImageCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkImage+  , VkBuffer+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = VkStructureType 1000157000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = VkStructureType 1000157001+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_ALIAS_BIT"+pattern VK_IMAGE_CREATE_ALIAS_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_ALIAS_BIT = VkImageCreateFlagBits 0x00000400+-- | vkBindBufferMemory2 - Bind device memory to buffer objects+foreign import ccall "vkBindBufferMemory2" vkBindBufferMemory2 :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindBufferMemoryInfo) -> IO VkResult+-- | vkBindImageMemory2 - Bind device memory to image objects+foreign import ccall "vkBindImageMemory2" vkBindImageMemory2 :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindImageMemoryInfo) -> IO VkResult+-- | VkBindBufferMemoryInfo - Structure specifying how to bind a buffer to+-- memory+data VkBindBufferMemoryInfo = VkBindBufferMemoryInfo+  { -- No documentation found for Nested "VkBindBufferMemoryInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBindBufferMemoryInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBindBufferMemoryInfo" "vkBuffer"+  vkBuffer :: VkBuffer+  , -- No documentation found for Nested "VkBindBufferMemoryInfo" "vkMemory"+  vkMemory :: VkDeviceMemory+  , -- No documentation found for Nested "VkBindBufferMemoryInfo" "vkMemoryOffset"+  vkMemoryOffset :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkBindBufferMemoryInfo where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkBindBufferMemoryInfo <$> peek (ptr `plusPtr` 0)+                                    <*> peek (ptr `plusPtr` 8)+                                    <*> peek (ptr `plusPtr` 16)+                                    <*> peek (ptr `plusPtr` 24)+                                    <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindBufferMemoryInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindBufferMemoryInfo))+                *> poke (ptr `plusPtr` 16) (vkBuffer (poked :: VkBindBufferMemoryInfo))+                *> poke (ptr `plusPtr` 24) (vkMemory (poked :: VkBindBufferMemoryInfo))+                *> poke (ptr `plusPtr` 32) (vkMemoryOffset (poked :: VkBindBufferMemoryInfo))+-- | VkBindImageMemoryInfo - Structure specifying how to bind an image to+-- memory+data VkBindImageMemoryInfo = VkBindImageMemoryInfo+  { -- No documentation found for Nested "VkBindImageMemoryInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBindImageMemoryInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBindImageMemoryInfo" "vkImage"+  vkImage :: VkImage+  , -- No documentation found for Nested "VkBindImageMemoryInfo" "vkMemory"+  vkMemory :: VkDeviceMemory+  , -- No documentation found for Nested "VkBindImageMemoryInfo" "vkMemoryOffset"+  vkMemoryOffset :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkBindImageMemoryInfo where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkBindImageMemoryInfo <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+                                   <*> peek (ptr `plusPtr` 24)+                                   <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindImageMemoryInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindImageMemoryInfo))+                *> poke (ptr `plusPtr` 16) (vkImage (poked :: VkBindImageMemoryInfo))+                *> poke (ptr `plusPtr` 24) (vkMemory (poked :: VkBindImageMemoryInfo))+                *> poke (ptr `plusPtr` 32) (vkMemoryOffset (poked :: VkBindImageMemoryInfo))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_dedicated_allocation.hs view
@@ -0,0 +1,88 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation+  ( pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS+  , pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO+  , VkMemoryDedicatedRequirements(..)+  , VkMemoryDedicatedAllocateInfo(..)+  ) where++import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  , VkImage+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = VkStructureType 1000127000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = VkStructureType 1000127001+-- | VkMemoryDedicatedRequirements - Structure describing dedicated+-- allocation requirements of buffer and image resources+data VkMemoryDedicatedRequirements = VkMemoryDedicatedRequirements+  { -- No documentation found for Nested "VkMemoryDedicatedRequirements" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryDedicatedRequirements" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryDedicatedRequirements" "vkPrefersDedicatedAllocation"+  vkPrefersDedicatedAllocation :: VkBool32+  , -- No documentation found for Nested "VkMemoryDedicatedRequirements" "vkRequiresDedicatedAllocation"+  vkRequiresDedicatedAllocation :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkMemoryDedicatedRequirements where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMemoryDedicatedRequirements <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryDedicatedRequirements))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryDedicatedRequirements))+                *> poke (ptr `plusPtr` 16) (vkPrefersDedicatedAllocation (poked :: VkMemoryDedicatedRequirements))+                *> poke (ptr `plusPtr` 20) (vkRequiresDedicatedAllocation (poked :: VkMemoryDedicatedRequirements))+-- | VkMemoryDedicatedAllocateInfo - Specify a dedicated memory allocation+-- resource+data VkMemoryDedicatedAllocateInfo = VkMemoryDedicatedAllocateInfo+  { -- No documentation found for Nested "VkMemoryDedicatedAllocateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryDedicatedAllocateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryDedicatedAllocateInfo" "vkImage"+  vkImage :: VkImage+  , -- No documentation found for Nested "VkMemoryDedicatedAllocateInfo" "vkBuffer"+  vkBuffer :: VkBuffer+  }+  deriving (Eq, Show)++instance Storable VkMemoryDedicatedAllocateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkMemoryDedicatedAllocateInfo <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryDedicatedAllocateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryDedicatedAllocateInfo))+                *> poke (ptr `plusPtr` 16) (vkImage (poked :: VkMemoryDedicatedAllocateInfo))+                *> poke (ptr `plusPtr` 24) (vkBuffer (poked :: VkMemoryDedicatedAllocateInfo))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_descriptor_update_template.hs view
@@ -0,0 +1,241 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template+  ( VkDescriptorUpdateTemplateType(..)+  , pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET+  , VkDescriptorUpdateTemplateCreateFlags(..)+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO+  , pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE+  , VkDescriptorUpdateTemplate+  , vkCreateDescriptorUpdateTemplate+  , vkDestroyDescriptorUpdateTemplate+  , vkUpdateDescriptorSetWithTemplate+  , VkDescriptorUpdateTemplateEntry(..)+  , VkDescriptorUpdateTemplateCreateInfo(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkObjectType(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DescriptorSet+  ( VkDescriptorType(..)+  , VkDescriptorSet+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Pass+  ( VkPipelineBindPoint(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkPipelineLayout+  )+import Graphics.Vulkan.Core10.PipelineLayout+  ( VkDescriptorSetLayout+  )+++-- ** VkDescriptorUpdateTemplateType++-- | VkDescriptorUpdateTemplateType - Indicates the valid usage of the+-- descriptor update template+newtype VkDescriptorUpdateTemplateType = VkDescriptorUpdateTemplateType Int32+  deriving (Eq, Ord, Storable)++instance Show VkDescriptorUpdateTemplateType where+  showsPrec _ VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = showString "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkDescriptorUpdateTemplateType 1) = showString "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR"+  showsPrec p (VkDescriptorUpdateTemplateType x) = showParen (p >= 11) (showString "VkDescriptorUpdateTemplateType " . showsPrec 11 x)++instance Read VkDescriptorUpdateTemplateType where+  readPrec = parens ( choose [ ("VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET", pure VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR", pure (VkDescriptorUpdateTemplateType 1))+                             , ("VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR", pure (VkDescriptorUpdateTemplateType 1))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDescriptorUpdateTemplateType")+                        v <- step readPrec+                        pure (VkDescriptorUpdateTemplateType v)+                        )+                    )++-- No documentation found for Nested "VkDescriptorUpdateTemplateType" "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"+pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET :: VkDescriptorUpdateTemplateType+pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = VkDescriptorUpdateTemplateType 0+-- ** VkDescriptorUpdateTemplateCreateFlags++-- | VkDescriptorUpdateTemplateCreateFlags - Reserved for future use+newtype VkDescriptorUpdateTemplateCreateFlags = VkDescriptorUpdateTemplateCreateFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDescriptorUpdateTemplateCreateFlags where+  +  showsPrec p (VkDescriptorUpdateTemplateCreateFlags x) = showParen (p >= 11) (showString "VkDescriptorUpdateTemplateCreateFlags " . showsPrec 11 x)++instance Read VkDescriptorUpdateTemplateCreateFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDescriptorUpdateTemplateCreateFlags")+                        v <- step readPrec+                        pure (VkDescriptorUpdateTemplateCreateFlags v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = VkStructureType 1000085000+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"+pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE :: VkObjectType+pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = VkObjectType 1000085000+-- | Dummy data to tag the 'Ptr' with+data VkDescriptorUpdateTemplate_T+-- | VkDescriptorUpdateTemplate - Opaque handle to a descriptor update+-- template+type VkDescriptorUpdateTemplate = Ptr VkDescriptorUpdateTemplate_T+-- | vkCreateDescriptorUpdateTemplate - Create a new descriptor update+-- template+foreign import ccall "vkCreateDescriptorUpdateTemplate" vkCreateDescriptorUpdateTemplate :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorUpdateTemplateCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorUpdateTemplate" ::: Ptr VkDescriptorUpdateTemplate) -> IO VkResult+-- | vkDestroyDescriptorUpdateTemplate - Destroy a descriptor update template+-- object+foreign import ccall "vkDestroyDescriptorUpdateTemplate" vkDestroyDescriptorUpdateTemplate :: ("device" ::: VkDevice) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkUpdateDescriptorSetWithTemplate - Update the contents of a descriptor+-- set object using an update template+foreign import ccall "vkUpdateDescriptorSetWithTemplate" vkUpdateDescriptorSetWithTemplate :: ("device" ::: VkDevice) -> ("descriptorSet" ::: VkDescriptorSet) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pData" ::: Ptr ()) -> IO ()+-- | VkDescriptorUpdateTemplateEntry - Describes a single descriptor update+-- of the descriptor update template+data VkDescriptorUpdateTemplateEntry = VkDescriptorUpdateTemplateEntry+  { -- No documentation found for Nested "VkDescriptorUpdateTemplateEntry" "vkDstBinding"+  vkDstBinding :: Word32+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateEntry" "vkDstArrayElement"+  vkDstArrayElement :: Word32+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateEntry" "vkDescriptorCount"+  vkDescriptorCount :: Word32+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateEntry" "vkDescriptorType"+  vkDescriptorType :: VkDescriptorType+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateEntry" "vkOffset"+  vkOffset :: CSize+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateEntry" "vkStride"+  vkStride :: CSize+  }+  deriving (Eq, Show)++instance Storable VkDescriptorUpdateTemplateEntry where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDescriptorUpdateTemplateEntry <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 4)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 12)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkDstBinding (poked :: VkDescriptorUpdateTemplateEntry))+                *> poke (ptr `plusPtr` 4) (vkDstArrayElement (poked :: VkDescriptorUpdateTemplateEntry))+                *> poke (ptr `plusPtr` 8) (vkDescriptorCount (poked :: VkDescriptorUpdateTemplateEntry))+                *> poke (ptr `plusPtr` 12) (vkDescriptorType (poked :: VkDescriptorUpdateTemplateEntry))+                *> poke (ptr `plusPtr` 16) (vkOffset (poked :: VkDescriptorUpdateTemplateEntry))+                *> poke (ptr `plusPtr` 24) (vkStride (poked :: VkDescriptorUpdateTemplateEntry))+-- | VkDescriptorUpdateTemplateCreateInfo - Structure specifying parameters+-- of a newly created descriptor update template+data VkDescriptorUpdateTemplateCreateInfo = VkDescriptorUpdateTemplateCreateInfo+  { -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkFlags"+  vkFlags :: VkDescriptorUpdateTemplateCreateFlags+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkDescriptorUpdateEntryCount"+  vkDescriptorUpdateEntryCount :: Word32+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkPDescriptorUpdateEntries"+  vkPDescriptorUpdateEntries :: Ptr VkDescriptorUpdateTemplateEntry+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkTemplateType"+  vkTemplateType :: VkDescriptorUpdateTemplateType+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkDescriptorSetLayout"+  vkDescriptorSetLayout :: VkDescriptorSetLayout+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkPipelineBindPoint"+  vkPipelineBindPoint :: VkPipelineBindPoint+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkPipelineLayout"+  vkPipelineLayout :: VkPipelineLayout+  , -- No documentation found for Nested "VkDescriptorUpdateTemplateCreateInfo" "vkSet"+  vkSet :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDescriptorUpdateTemplateCreateInfo where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkDescriptorUpdateTemplateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                  <*> peek (ptr `plusPtr` 8)+                                                  <*> peek (ptr `plusPtr` 16)+                                                  <*> peek (ptr `plusPtr` 20)+                                                  <*> peek (ptr `plusPtr` 24)+                                                  <*> peek (ptr `plusPtr` 32)+                                                  <*> peek (ptr `plusPtr` 40)+                                                  <*> peek (ptr `plusPtr` 48)+                                                  <*> peek (ptr `plusPtr` 56)+                                                  <*> peek (ptr `plusPtr` 64)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkDescriptorUpdateEntryCount (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPDescriptorUpdateEntries (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkTemplateType (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkDescriptorSetLayout (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkPipelineBindPoint (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkPipelineLayout (poked :: VkDescriptorUpdateTemplateCreateInfo))+                *> poke (ptr `plusPtr` 64) (vkSet (poked :: VkDescriptorUpdateTemplateCreateInfo))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_device_group.hs view
@@ -0,0 +1,333 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group+  ( VkPeerMemoryFeatureFlagBits(..)+  , pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT+  , pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT+  , pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT+  , pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT+  , VkMemoryAllocateFlagBits(..)+  , pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT+  , pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO+  , pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT+  , pattern VK_PIPELINE_CREATE_DISPATCH_BASE+  , pattern VK_DEPENDENCY_DEVICE_GROUP_BIT+  , vkGetDeviceGroupPeerMemoryFeatures+  , vkCmdSetDeviceMask+  , vkCmdDispatchBase+  , VkMemoryAllocateFlagsInfo(..)+  , VkDeviceGroupRenderPassBeginInfo(..)+  , VkDeviceGroupCommandBufferBeginInfo(..)+  , VkDeviceGroupSubmitInfo(..)+  , VkDeviceGroupBindSparseInfo(..)+  , VkPeerMemoryFeatureFlags+  , VkMemoryAllocateFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Pass+  ( VkDependencyFlagBits(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkRect2D(..)+  , VkPipelineCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+++-- ** VkPeerMemoryFeatureFlagBits++-- | VkPeerMemoryFeatureFlagBits - Bitmask specifying supported peer memory+-- features+newtype VkPeerMemoryFeatureFlagBits = VkPeerMemoryFeatureFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPeerMemoryFeatureFlagBits where+  showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = showString "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"+  showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = showString "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"+  showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = showString "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"+  showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = showString "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"+  showsPrec p (VkPeerMemoryFeatureFlagBits x) = showParen (p >= 11) (showString "VkPeerMemoryFeatureFlagBits " . showsPrec 11 x)++instance Read VkPeerMemoryFeatureFlagBits where+  readPrec = parens ( choose [ ("VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT",    pure VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT)+                             , ("VK_PEER_MEMORY_FEATURE_COPY_DST_BIT",    pure VK_PEER_MEMORY_FEATURE_COPY_DST_BIT)+                             , ("VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT", pure VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT)+                             , ("VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT", pure VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPeerMemoryFeatureFlagBits")+                        v <- step readPrec+                        pure (VkPeerMemoryFeatureFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkPeerMemoryFeatureFlagBits" "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"+pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT :: VkPeerMemoryFeatureFlagBits+pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = VkPeerMemoryFeatureFlagBits 0x00000001++-- No documentation found for Nested "VkPeerMemoryFeatureFlagBits" "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"+pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT :: VkPeerMemoryFeatureFlagBits+pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = VkPeerMemoryFeatureFlagBits 0x00000002++-- No documentation found for Nested "VkPeerMemoryFeatureFlagBits" "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"+pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT :: VkPeerMemoryFeatureFlagBits+pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = VkPeerMemoryFeatureFlagBits 0x00000004++-- No documentation found for Nested "VkPeerMemoryFeatureFlagBits" "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"+pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT :: VkPeerMemoryFeatureFlagBits+pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = VkPeerMemoryFeatureFlagBits 0x00000008+-- ** VkMemoryAllocateFlagBits++-- | VkMemoryAllocateFlagBits - Bitmask specifying flags for a device memory+-- allocation+newtype VkMemoryAllocateFlagBits = VkMemoryAllocateFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkMemoryAllocateFlagBits where+  showsPrec _ VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = showString "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"+  showsPrec p (VkMemoryAllocateFlagBits x) = showParen (p >= 11) (showString "VkMemoryAllocateFlagBits " . showsPrec 11 x)++instance Read VkMemoryAllocateFlagBits where+  readPrec = parens ( choose [ ("VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT", pure VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkMemoryAllocateFlagBits")+                        v <- step readPrec+                        pure (VkMemoryAllocateFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkMemoryAllocateFlagBits" "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"+pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT :: VkMemoryAllocateFlagBits+pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = VkMemoryAllocateFlagBits 0x00000001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = VkStructureType 1000060000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = VkStructureType 1000060003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = VkStructureType 1000060004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = VkStructureType 1000060005+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = VkStructureType 1000060006+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"+pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT :: VkPipelineCreateFlagBits+pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = VkPipelineCreateFlagBits 0x00000008+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DISPATCH_BASE"+pattern VK_PIPELINE_CREATE_DISPATCH_BASE :: VkPipelineCreateFlagBits+pattern VK_PIPELINE_CREATE_DISPATCH_BASE = VkPipelineCreateFlagBits 0x00000010+-- No documentation found for Nested "VkDependencyFlagBits" "VK_DEPENDENCY_DEVICE_GROUP_BIT"+pattern VK_DEPENDENCY_DEVICE_GROUP_BIT :: VkDependencyFlagBits+pattern VK_DEPENDENCY_DEVICE_GROUP_BIT = VkDependencyFlagBits 0x00000004+-- | vkGetDeviceGroupPeerMemoryFeatures - Query supported peer memory+-- features of a device+foreign import ccall "vkGetDeviceGroupPeerMemoryFeatures" vkGetDeviceGroupPeerMemoryFeatures :: ("device" ::: VkDevice) -> ("heapIndex" ::: Word32) -> ("localDeviceIndex" ::: Word32) -> ("remoteDeviceIndex" ::: Word32) -> ("pPeerMemoryFeatures" ::: Ptr VkPeerMemoryFeatureFlags) -> IO ()+-- | vkCmdSetDeviceMask - Modify device mask of a command buffer+foreign import ccall "vkCmdSetDeviceMask" vkCmdSetDeviceMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("deviceMask" ::: Word32) -> IO ()+-- | vkCmdDispatchBase - Dispatch compute work items+foreign import ccall "vkCmdDispatchBase" vkCmdDispatchBase :: ("commandBuffer" ::: VkCommandBuffer) -> ("baseGroupX" ::: Word32) -> ("baseGroupY" ::: Word32) -> ("baseGroupZ" ::: Word32) -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()+-- | VkMemoryAllocateFlagsInfo - Structure controlling how many instances of+-- memory will be allocated+data VkMemoryAllocateFlagsInfo = VkMemoryAllocateFlagsInfo+  { -- No documentation found for Nested "VkMemoryAllocateFlagsInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryAllocateFlagsInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryAllocateFlagsInfo" "vkFlags"+  vkFlags :: VkMemoryAllocateFlags+  , -- No documentation found for Nested "VkMemoryAllocateFlagsInfo" "vkDeviceMask"+  vkDeviceMask :: Word32+  }+  deriving (Eq, Show)++instance Storable VkMemoryAllocateFlagsInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMemoryAllocateFlagsInfo <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryAllocateFlagsInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryAllocateFlagsInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkMemoryAllocateFlagsInfo))+                *> poke (ptr `plusPtr` 20) (vkDeviceMask (poked :: VkMemoryAllocateFlagsInfo))+-- | VkDeviceGroupRenderPassBeginInfo - Set the initial device mask and+-- render areas for a render pass instance+data VkDeviceGroupRenderPassBeginInfo = VkDeviceGroupRenderPassBeginInfo+  { -- No documentation found for Nested "VkDeviceGroupRenderPassBeginInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGroupRenderPassBeginInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGroupRenderPassBeginInfo" "vkDeviceMask"+  vkDeviceMask :: Word32+  , -- No documentation found for Nested "VkDeviceGroupRenderPassBeginInfo" "vkDeviceRenderAreaCount"+  vkDeviceRenderAreaCount :: Word32+  , -- No documentation found for Nested "VkDeviceGroupRenderPassBeginInfo" "vkPDeviceRenderAreas"+  vkPDeviceRenderAreas :: Ptr VkRect2D+  }+  deriving (Eq, Show)++instance Storable VkDeviceGroupRenderPassBeginInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDeviceGroupRenderPassBeginInfo <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+                                              <*> peek (ptr `plusPtr` 20)+                                              <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGroupRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGroupRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 16) (vkDeviceMask (poked :: VkDeviceGroupRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 20) (vkDeviceRenderAreaCount (poked :: VkDeviceGroupRenderPassBeginInfo))+                *> poke (ptr `plusPtr` 24) (vkPDeviceRenderAreas (poked :: VkDeviceGroupRenderPassBeginInfo))+-- | VkDeviceGroupCommandBufferBeginInfo - Set the initial device mask for a+-- command buffer+data VkDeviceGroupCommandBufferBeginInfo = VkDeviceGroupCommandBufferBeginInfo+  { -- No documentation found for Nested "VkDeviceGroupCommandBufferBeginInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGroupCommandBufferBeginInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGroupCommandBufferBeginInfo" "vkDeviceMask"+  vkDeviceMask :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDeviceGroupCommandBufferBeginInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDeviceGroupCommandBufferBeginInfo <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGroupCommandBufferBeginInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGroupCommandBufferBeginInfo))+                *> poke (ptr `plusPtr` 16) (vkDeviceMask (poked :: VkDeviceGroupCommandBufferBeginInfo))+-- | VkDeviceGroupSubmitInfo - Structure indicating which physical devices+-- execute semaphore operations and command buffers+data VkDeviceGroupSubmitInfo = VkDeviceGroupSubmitInfo+  { -- No documentation found for Nested "VkDeviceGroupSubmitInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGroupSubmitInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGroupSubmitInfo" "vkWaitSemaphoreCount"+  vkWaitSemaphoreCount :: Word32+  , -- No documentation found for Nested "VkDeviceGroupSubmitInfo" "vkPWaitSemaphoreDeviceIndices"+  vkPWaitSemaphoreDeviceIndices :: Ptr Word32+  , -- No documentation found for Nested "VkDeviceGroupSubmitInfo" "vkCommandBufferCount"+  vkCommandBufferCount :: Word32+  , -- No documentation found for Nested "VkDeviceGroupSubmitInfo" "vkPCommandBufferDeviceMasks"+  vkPCommandBufferDeviceMasks :: Ptr Word32+  , -- No documentation found for Nested "VkDeviceGroupSubmitInfo" "vkSignalSemaphoreCount"+  vkSignalSemaphoreCount :: Word32+  , -- No documentation found for Nested "VkDeviceGroupSubmitInfo" "vkPSignalSemaphoreDeviceIndices"+  vkPSignalSemaphoreDeviceIndices :: Ptr Word32+  }+  deriving (Eq, Show)++instance Storable VkDeviceGroupSubmitInfo where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkDeviceGroupSubmitInfo <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 24)+                                     <*> peek (ptr `plusPtr` 32)+                                     <*> peek (ptr `plusPtr` 40)+                                     <*> peek (ptr `plusPtr` 48)+                                     <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGroupSubmitInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGroupSubmitInfo))+                *> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkDeviceGroupSubmitInfo))+                *> poke (ptr `plusPtr` 24) (vkPWaitSemaphoreDeviceIndices (poked :: VkDeviceGroupSubmitInfo))+                *> poke (ptr `plusPtr` 32) (vkCommandBufferCount (poked :: VkDeviceGroupSubmitInfo))+                *> poke (ptr `plusPtr` 40) (vkPCommandBufferDeviceMasks (poked :: VkDeviceGroupSubmitInfo))+                *> poke (ptr `plusPtr` 48) (vkSignalSemaphoreCount (poked :: VkDeviceGroupSubmitInfo))+                *> poke (ptr `plusPtr` 56) (vkPSignalSemaphoreDeviceIndices (poked :: VkDeviceGroupSubmitInfo))+-- | VkDeviceGroupBindSparseInfo - Structure indicating which instances are+-- bound+data VkDeviceGroupBindSparseInfo = VkDeviceGroupBindSparseInfo+  { -- No documentation found for Nested "VkDeviceGroupBindSparseInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGroupBindSparseInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGroupBindSparseInfo" "vkResourceDeviceIndex"+  vkResourceDeviceIndex :: Word32+  , -- No documentation found for Nested "VkDeviceGroupBindSparseInfo" "vkMemoryDeviceIndex"+  vkMemoryDeviceIndex :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDeviceGroupBindSparseInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDeviceGroupBindSparseInfo <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+                                         <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGroupBindSparseInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGroupBindSparseInfo))+                *> poke (ptr `plusPtr` 16) (vkResourceDeviceIndex (poked :: VkDeviceGroupBindSparseInfo))+                *> poke (ptr `plusPtr` 20) (vkMemoryDeviceIndex (poked :: VkDeviceGroupBindSparseInfo))+-- | VkPeerMemoryFeatureFlags - Bitmask of VkPeerMemoryFeatureFlagBits+type VkPeerMemoryFeatureFlags = VkPeerMemoryFeatureFlagBits+-- | VkMemoryAllocateFlags - Bitmask of VkMemoryAllocateFlagBits+type VkMemoryAllocateFlags = VkMemoryAllocateFlagBits
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.hs view
@@ -0,0 +1,104 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2+  ( pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO+  , pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT+  , VkBindBufferMemoryDeviceGroupInfo(..)+  , VkBindImageMemoryDeviceGroupInfo(..)+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkRect2D(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = VkStructureType 1000060013+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = VkStructureType 1000060014+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"+pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = VkImageCreateFlagBits 0x00000040+-- | VkBindBufferMemoryDeviceGroupInfo - Structure specifying device within a+-- group to bind to+data VkBindBufferMemoryDeviceGroupInfo = VkBindBufferMemoryDeviceGroupInfo+  { -- No documentation found for Nested "VkBindBufferMemoryDeviceGroupInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBindBufferMemoryDeviceGroupInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBindBufferMemoryDeviceGroupInfo" "vkDeviceIndexCount"+  vkDeviceIndexCount :: Word32+  , -- No documentation found for Nested "VkBindBufferMemoryDeviceGroupInfo" "vkPDeviceIndices"+  vkPDeviceIndices :: Ptr Word32+  }+  deriving (Eq, Show)++instance Storable VkBindBufferMemoryDeviceGroupInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkBindBufferMemoryDeviceGroupInfo <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+                                               <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindBufferMemoryDeviceGroupInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindBufferMemoryDeviceGroupInfo))+                *> poke (ptr `plusPtr` 16) (vkDeviceIndexCount (poked :: VkBindBufferMemoryDeviceGroupInfo))+                *> poke (ptr `plusPtr` 24) (vkPDeviceIndices (poked :: VkBindBufferMemoryDeviceGroupInfo))+-- | VkBindImageMemoryDeviceGroupInfo - Structure specifying device within a+-- group to bind to+data VkBindImageMemoryDeviceGroupInfo = VkBindImageMemoryDeviceGroupInfo+  { -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "vkDeviceIndexCount"+  vkDeviceIndexCount :: Word32+  , -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "vkPDeviceIndices"+  vkPDeviceIndices :: Ptr Word32+  , -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "vkSplitInstanceBindRegionCount"+  vkSplitInstanceBindRegionCount :: Word32+  , -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "vkPSplitInstanceBindRegions"+  vkPSplitInstanceBindRegions :: Ptr VkRect2D+  }+  deriving (Eq, Show)++instance Storable VkBindImageMemoryDeviceGroupInfo where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkBindImageMemoryDeviceGroupInfo <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+                                              <*> peek (ptr `plusPtr` 24)+                                              <*> peek (ptr `plusPtr` 32)+                                              <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindImageMemoryDeviceGroupInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindImageMemoryDeviceGroupInfo))+                *> poke (ptr `plusPtr` 16) (vkDeviceIndexCount (poked :: VkBindImageMemoryDeviceGroupInfo))+                *> poke (ptr `plusPtr` 24) (vkPDeviceIndices (poked :: VkBindImageMemoryDeviceGroupInfo))+                *> poke (ptr `plusPtr` 32) (vkSplitInstanceBindRegionCount (poked :: VkBindImageMemoryDeviceGroupInfo))+                *> poke (ptr `plusPtr` 40) (vkPSplitInstanceBindRegions (poked :: VkBindImageMemoryDeviceGroupInfo))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_device_group_creation.hs view
@@ -0,0 +1,120 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO+  , pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT+  , VK_MAX_DEVICE_GROUP_SIZE+  , pattern VK_MAX_DEVICE_GROUP_SIZE+  , vkEnumeratePhysicalDeviceGroups+  , VkPhysicalDeviceGroupProperties(..)+  , VkDeviceGroupDeviceCreateInfo(..)+  ) where++import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  , VkInstance+  , VkMemoryHeapFlagBits(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = VkStructureType 1000070000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = VkStructureType 1000070001+-- No documentation found for Nested "VkMemoryHeapFlagBits" "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"+pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT :: VkMemoryHeapFlagBits+pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = VkMemoryHeapFlagBits 0x00000002+-- No documentation found for TopLevel "VK_MAX_DEVICE_GROUP_SIZE"+type VK_MAX_DEVICE_GROUP_SIZE = 32+-- No documentation found for Nested "Integral a => a" "VK_MAX_DEVICE_GROUP_SIZE"+pattern VK_MAX_DEVICE_GROUP_SIZE :: Integral a => a+pattern VK_MAX_DEVICE_GROUP_SIZE = 32+-- | vkEnumeratePhysicalDeviceGroups - Enumerates groups of physical devices+-- that can be used to create a single logical device+foreign import ccall "vkEnumeratePhysicalDeviceGroups" vkEnumeratePhysicalDeviceGroups :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceGroupCount" ::: Ptr Word32) -> ("pPhysicalDeviceGroupProperties" ::: Ptr VkPhysicalDeviceGroupProperties) -> IO VkResult+-- | VkPhysicalDeviceGroupProperties - Structure specifying physical device+-- group properties+data VkPhysicalDeviceGroupProperties = VkPhysicalDeviceGroupProperties+  { -- No documentation found for Nested "VkPhysicalDeviceGroupProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceGroupProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceGroupProperties" "vkPhysicalDeviceCount"+  vkPhysicalDeviceCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceGroupProperties" "vkPhysicalDevices"+  vkPhysicalDevices :: Vector VK_MAX_DEVICE_GROUP_SIZE VkPhysicalDevice+  , -- No documentation found for Nested "VkPhysicalDeviceGroupProperties" "vkSubsetAllocation"+  vkSubsetAllocation :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceGroupProperties where+  sizeOf ~_ = 288+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceGroupProperties <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 24)+                                             <*> peek (ptr `plusPtr` 280)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceGroupProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceGroupProperties))+                *> poke (ptr `plusPtr` 16) (vkPhysicalDeviceCount (poked :: VkPhysicalDeviceGroupProperties))+                *> poke (ptr `plusPtr` 24) (vkPhysicalDevices (poked :: VkPhysicalDeviceGroupProperties))+                *> poke (ptr `plusPtr` 280) (vkSubsetAllocation (poked :: VkPhysicalDeviceGroupProperties))+-- | VkDeviceGroupDeviceCreateInfo - Create a logical device from multiple+-- physical devices+data VkDeviceGroupDeviceCreateInfo = VkDeviceGroupDeviceCreateInfo+  { -- No documentation found for Nested "VkDeviceGroupDeviceCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGroupDeviceCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGroupDeviceCreateInfo" "vkPhysicalDeviceCount"+  vkPhysicalDeviceCount :: Word32+  , -- No documentation found for Nested "VkDeviceGroupDeviceCreateInfo" "vkPPhysicalDevices"+  vkPPhysicalDevices :: Ptr VkPhysicalDevice+  }+  deriving (Eq, Show)++instance Storable VkDeviceGroupDeviceCreateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDeviceGroupDeviceCreateInfo <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGroupDeviceCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGroupDeviceCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkPhysicalDeviceCount (poked :: VkDeviceGroupDeviceCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPPhysicalDevices (poked :: VkDeviceGroupDeviceCreateInfo))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_external_fence.hs view
@@ -0,0 +1,103 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence+  ( VkFenceImportFlagBits(..)+  , pattern VK_FENCE_IMPORT_TEMPORARY_BIT+  , pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO+  , VkExportFenceCreateInfo(..)+  , VkFenceImportFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+  ( VkExternalFenceHandleTypeFlags+  )+++-- ** VkFenceImportFlagBits++-- | VkFenceImportFlagBits - Bitmask specifying additional parameters of+-- fence payload import+newtype VkFenceImportFlagBits = VkFenceImportFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkFenceImportFlagBits where+  showsPrec _ VK_FENCE_IMPORT_TEMPORARY_BIT = showString "VK_FENCE_IMPORT_TEMPORARY_BIT"+  showsPrec p (VkFenceImportFlagBits x) = showParen (p >= 11) (showString "VkFenceImportFlagBits " . showsPrec 11 x)++instance Read VkFenceImportFlagBits where+  readPrec = parens ( choose [ ("VK_FENCE_IMPORT_TEMPORARY_BIT", pure VK_FENCE_IMPORT_TEMPORARY_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkFenceImportFlagBits")+                        v <- step readPrec+                        pure (VkFenceImportFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkFenceImportFlagBits" "VK_FENCE_IMPORT_TEMPORARY_BIT"+pattern VK_FENCE_IMPORT_TEMPORARY_BIT :: VkFenceImportFlagBits+pattern VK_FENCE_IMPORT_TEMPORARY_BIT = VkFenceImportFlagBits 0x00000001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = VkStructureType 1000113000+-- | VkExportFenceCreateInfo - Structure specifying handle types that can be+-- exported from a fence+data VkExportFenceCreateInfo = VkExportFenceCreateInfo+  { -- No documentation found for Nested "VkExportFenceCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExportFenceCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExportFenceCreateInfo" "vkHandleTypes"+  vkHandleTypes :: VkExternalFenceHandleTypeFlags+  }+  deriving (Eq, Show)++instance Storable VkExportFenceCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkExportFenceCreateInfo <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportFenceCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportFenceCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExportFenceCreateInfo))+-- | VkFenceImportFlags - Bitmask of VkFenceImportFlagBits+type VkFenceImportFlags = VkFenceImportFlagBits
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_external_fence_capabilities.hs view
@@ -0,0 +1,204 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+  ( VkExternalFenceHandleTypeFlagBits(..)+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT+  , VkExternalFenceFeatureFlagBits(..)+  , pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT+  , pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES+  , vkGetPhysicalDeviceExternalFenceProperties+  , VkPhysicalDeviceExternalFenceInfo(..)+  , VkExternalFenceProperties(..)+  , VkExternalFenceHandleTypeFlags+  , VkExternalFenceFeatureFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+++-- ** VkExternalFenceHandleTypeFlagBits++-- | VkExternalFenceHandleTypeFlagBits - Bitmask of valid external fence+-- handle types+newtype VkExternalFenceHandleTypeFlagBits = VkExternalFenceHandleTypeFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkExternalFenceHandleTypeFlagBits where+  showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"+  showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"+  showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"+  showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"+  showsPrec p (VkExternalFenceHandleTypeFlagBits x) = showParen (p >= 11) (showString "VkExternalFenceHandleTypeFlagBits " . showsPrec 11 x)++instance Read VkExternalFenceHandleTypeFlagBits where+  readPrec = parens ( choose [ ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT",        pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT)+                             , ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT",     pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT)+                             , ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT", pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT)+                             , ("VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT",          pure VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkExternalFenceHandleTypeFlagBits")+                        v <- step readPrec+                        pure (VkExternalFenceHandleTypeFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkExternalFenceHandleTypeFlagBits" "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT :: VkExternalFenceHandleTypeFlagBits+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = VkExternalFenceHandleTypeFlagBits 0x00000001++-- No documentation found for Nested "VkExternalFenceHandleTypeFlagBits" "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT :: VkExternalFenceHandleTypeFlagBits+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = VkExternalFenceHandleTypeFlagBits 0x00000002++-- No documentation found for Nested "VkExternalFenceHandleTypeFlagBits" "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT :: VkExternalFenceHandleTypeFlagBits+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = VkExternalFenceHandleTypeFlagBits 0x00000004++-- No documentation found for Nested "VkExternalFenceHandleTypeFlagBits" "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT :: VkExternalFenceHandleTypeFlagBits+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = VkExternalFenceHandleTypeFlagBits 0x00000008+-- ** VkExternalFenceFeatureFlagBits++-- | VkExternalFenceFeatureFlagBits - Bitfield describing features of an+-- external fence handle type+newtype VkExternalFenceFeatureFlagBits = VkExternalFenceFeatureFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkExternalFenceFeatureFlagBits where+  showsPrec _ VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = showString "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"+  showsPrec _ VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = showString "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"+  showsPrec p (VkExternalFenceFeatureFlagBits x) = showParen (p >= 11) (showString "VkExternalFenceFeatureFlagBits " . showsPrec 11 x)++instance Read VkExternalFenceFeatureFlagBits where+  readPrec = parens ( choose [ ("VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT", pure VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT)+                             , ("VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT", pure VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkExternalFenceFeatureFlagBits")+                        v <- step readPrec+                        pure (VkExternalFenceFeatureFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkExternalFenceFeatureFlagBits" "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"+pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT :: VkExternalFenceFeatureFlagBits+pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = VkExternalFenceFeatureFlagBits 0x00000001++-- No documentation found for Nested "VkExternalFenceFeatureFlagBits" "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"+pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT :: VkExternalFenceFeatureFlagBits+pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = VkExternalFenceFeatureFlagBits 0x00000002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = VkStructureType 1000112000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"+pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = VkStructureType 1000112001+-- | vkGetPhysicalDeviceExternalFenceProperties - Function for querying+-- external fence handle capabilities.+foreign import ccall "vkGetPhysicalDeviceExternalFenceProperties" vkGetPhysicalDeviceExternalFenceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalFenceInfo" ::: Ptr VkPhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr VkExternalFenceProperties) -> IO ()+-- | VkPhysicalDeviceExternalFenceInfo - Structure specifying fence creation+-- parameters.+data VkPhysicalDeviceExternalFenceInfo = VkPhysicalDeviceExternalFenceInfo+  { -- No documentation found for Nested "VkPhysicalDeviceExternalFenceInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceExternalFenceInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceExternalFenceInfo" "vkHandleType"+  vkHandleType :: VkExternalFenceHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceExternalFenceInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceExternalFenceInfo <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceExternalFenceInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceExternalFenceInfo))+                *> poke (ptr `plusPtr` 16) (vkHandleType (poked :: VkPhysicalDeviceExternalFenceInfo))+-- | VkExternalFenceProperties - Structure describing supported external+-- fence handle features+data VkExternalFenceProperties = VkExternalFenceProperties+  { -- No documentation found for Nested "VkExternalFenceProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExternalFenceProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExternalFenceProperties" "vkExportFromImportedHandleTypes"+  vkExportFromImportedHandleTypes :: VkExternalFenceHandleTypeFlags+  , -- No documentation found for Nested "VkExternalFenceProperties" "vkCompatibleHandleTypes"+  vkCompatibleHandleTypes :: VkExternalFenceHandleTypeFlags+  , -- No documentation found for Nested "VkExternalFenceProperties" "vkExternalFenceFeatures"+  vkExternalFenceFeatures :: VkExternalFenceFeatureFlags+  }+  deriving (Eq, Show)++instance Storable VkExternalFenceProperties where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkExternalFenceProperties <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 20)+                                       <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalFenceProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalFenceProperties))+                *> poke (ptr `plusPtr` 16) (vkExportFromImportedHandleTypes (poked :: VkExternalFenceProperties))+                *> poke (ptr `plusPtr` 20) (vkCompatibleHandleTypes (poked :: VkExternalFenceProperties))+                *> poke (ptr `plusPtr` 24) (vkExternalFenceFeatures (poked :: VkExternalFenceProperties))+-- | VkExternalFenceHandleTypeFlags - Bitmask of+-- VkExternalFenceHandleTypeFlagBits+type VkExternalFenceHandleTypeFlags = VkExternalFenceHandleTypeFlagBits+-- | VkExternalFenceFeatureFlags - Bitmask of VkExternalFenceFeatureFlagBits+type VkExternalFenceFeatureFlags = VkExternalFenceFeatureFlagBits
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_external_memory.hs view
@@ -0,0 +1,116 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory+  ( pattern VK_ERROR_INVALID_EXTERNAL_HANDLE+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO+  , pattern VK_QUEUE_FAMILY_EXTERNAL+  , VkExternalMemoryImageCreateInfo(..)+  , VkExternalMemoryBufferCreateInfo(..)+  , VkExportMemoryAllocateInfo(..)+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlags+  )+++-- No documentation found for Nested "VkResult" "VK_ERROR_INVALID_EXTERNAL_HANDLE"+pattern VK_ERROR_INVALID_EXTERNAL_HANDLE :: VkResult+pattern VK_ERROR_INVALID_EXTERNAL_HANDLE = VkResult (-1000072003)+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = VkStructureType 1000072000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = VkStructureType 1000072001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = VkStructureType 1000072002+-- No documentation found for Nested "Word32" "VK_QUEUE_FAMILY_EXTERNAL"+pattern VK_QUEUE_FAMILY_EXTERNAL :: Word32+pattern VK_QUEUE_FAMILY_EXTERNAL = 0xfffffffe+-- | VkExternalMemoryImageCreateInfo - Specify that an image may be backed by+-- external memory+data VkExternalMemoryImageCreateInfo = VkExternalMemoryImageCreateInfo+  { -- No documentation found for Nested "VkExternalMemoryImageCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExternalMemoryImageCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExternalMemoryImageCreateInfo" "vkHandleTypes"+  vkHandleTypes :: VkExternalMemoryHandleTypeFlags+  }+  deriving (Eq, Show)++instance Storable VkExternalMemoryImageCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkExternalMemoryImageCreateInfo <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalMemoryImageCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalMemoryImageCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExternalMemoryImageCreateInfo))+-- | VkExternalMemoryBufferCreateInfo - Specify that a buffer may be backed+-- by external memory+data VkExternalMemoryBufferCreateInfo = VkExternalMemoryBufferCreateInfo+  { -- No documentation found for Nested "VkExternalMemoryBufferCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExternalMemoryBufferCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExternalMemoryBufferCreateInfo" "vkHandleTypes"+  vkHandleTypes :: VkExternalMemoryHandleTypeFlags+  }+  deriving (Eq, Show)++instance Storable VkExternalMemoryBufferCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkExternalMemoryBufferCreateInfo <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalMemoryBufferCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalMemoryBufferCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExternalMemoryBufferCreateInfo))+-- | VkExportMemoryAllocateInfo - Specify exportable handle types for a+-- device memory object+data VkExportMemoryAllocateInfo = VkExportMemoryAllocateInfo+  { -- No documentation found for Nested "VkExportMemoryAllocateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExportMemoryAllocateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExportMemoryAllocateInfo" "vkHandleTypes"+  vkHandleTypes :: VkExternalMemoryHandleTypeFlags+  }+  deriving (Eq, Show)++instance Storable VkExportMemoryAllocateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkExportMemoryAllocateInfo <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportMemoryAllocateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportMemoryAllocateInfo))+                *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExportMemoryAllocateInfo))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_external_memory_capabilities.hs view
@@ -0,0 +1,379 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagBits(..)+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT+  , VkExternalMemoryFeatureFlagBits(..)+  , pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT+  , pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT+  , pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES+  , VK_LUID_SIZE+  , pattern VK_LUID_SIZE+  , vkGetPhysicalDeviceExternalBufferProperties+  , VkExternalMemoryProperties(..)+  , VkPhysicalDeviceExternalImageFormatInfo(..)+  , VkExternalImageFormatProperties(..)+  , VkPhysicalDeviceExternalBufferInfo(..)+  , VkExternalBufferProperties(..)+  , VkPhysicalDeviceIDProperties(..)+  , VkExternalMemoryHandleTypeFlags+  , VkExternalMemoryFeatureFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  , Word8+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Buffer+  ( VkBufferUsageFlags+  , VkBufferCreateFlags+  )+import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VK_UUID_SIZE+  , VkPhysicalDevice+  )+++-- ** VkExternalMemoryHandleTypeFlagBits++-- | VkExternalMemoryHandleTypeFlagBits - Bit specifying external memory+-- handle types+newtype VkExternalMemoryHandleTypeFlagBits = VkExternalMemoryHandleTypeFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkExternalMemoryHandleTypeFlagBits where+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkExternalMemoryHandleTypeFlagBits 0x00000200) = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"+  showsPrec _ (VkExternalMemoryHandleTypeFlagBits 0x00000400) = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"+  showsPrec _ (VkExternalMemoryHandleTypeFlagBits 0x00000080) = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"+  showsPrec _ (VkExternalMemoryHandleTypeFlagBits 0x00000100) = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"+  showsPrec p (VkExternalMemoryHandleTypeFlagBits x) = showParen (p >= 11) (showString "VkExternalMemoryHandleTypeFlagBits " . showsPrec 11 x)++instance Read VkExternalMemoryHandleTypeFlagBits where+  readPrec = parens ( choose [ ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT",         pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT",      pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",  pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT",     pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT", pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT",        pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT",    pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT",                     pure (VkExternalMemoryHandleTypeFlagBits 0x00000200))+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID", pure (VkExternalMemoryHandleTypeFlagBits 0x00000400))+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT",             pure (VkExternalMemoryHandleTypeFlagBits 0x00000080))+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT",  pure (VkExternalMemoryHandleTypeFlagBits 0x00000100))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkExternalMemoryHandleTypeFlagBits")+                        v <- step readPrec+                        pure (VkExternalMemoryHandleTypeFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = VkExternalMemoryHandleTypeFlagBits 0x00000001++-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = VkExternalMemoryHandleTypeFlagBits 0x00000002++-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = VkExternalMemoryHandleTypeFlagBits 0x00000004++-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = VkExternalMemoryHandleTypeFlagBits 0x00000008++-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = VkExternalMemoryHandleTypeFlagBits 0x00000010++-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = VkExternalMemoryHandleTypeFlagBits 0x00000020++-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = VkExternalMemoryHandleTypeFlagBits 0x00000040+-- ** VkExternalMemoryFeatureFlagBits++-- | VkExternalMemoryFeatureFlagBits - Bitmask specifying features of an+-- external memory handle type+newtype VkExternalMemoryFeatureFlagBits = VkExternalMemoryFeatureFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkExternalMemoryFeatureFlagBits where+  showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = showString "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"+  showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = showString "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"+  showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = showString "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"+  showsPrec p (VkExternalMemoryFeatureFlagBits x) = showParen (p >= 11) (showString "VkExternalMemoryFeatureFlagBits " . showsPrec 11 x)++instance Read VkExternalMemoryFeatureFlagBits where+  readPrec = parens ( choose [ ("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT", pure VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT)+                             , ("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT",     pure VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT)+                             , ("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT",     pure VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkExternalMemoryFeatureFlagBits")+                        v <- step readPrec+                        pure (VkExternalMemoryFeatureFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkExternalMemoryFeatureFlagBits" "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT :: VkExternalMemoryFeatureFlagBits+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = VkExternalMemoryFeatureFlagBits 0x00000001++-- No documentation found for Nested "VkExternalMemoryFeatureFlagBits" "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT :: VkExternalMemoryFeatureFlagBits+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = VkExternalMemoryFeatureFlagBits 0x00000002++-- No documentation found for Nested "VkExternalMemoryFeatureFlagBits" "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT :: VkExternalMemoryFeatureFlagBits+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = VkExternalMemoryFeatureFlagBits 0x00000004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = VkStructureType 1000071000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"+pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = VkStructureType 1000071001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = VkStructureType 1000071002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"+pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = VkStructureType 1000071003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = VkStructureType 1000071004+-- No documentation found for TopLevel "VK_LUID_SIZE"+type VK_LUID_SIZE = 8+-- No documentation found for Nested "Integral a => a" "VK_LUID_SIZE"+pattern VK_LUID_SIZE :: Integral a => a+pattern VK_LUID_SIZE = 8+-- | vkGetPhysicalDeviceExternalBufferProperties - Query external handle+-- types supported by buffers+foreign import ccall "vkGetPhysicalDeviceExternalBufferProperties" vkGetPhysicalDeviceExternalBufferProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalBufferInfo" ::: Ptr VkPhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr VkExternalBufferProperties) -> IO ()+-- | VkExternalMemoryProperties - Structure specifying external memory handle+-- type capabilities+data VkExternalMemoryProperties = VkExternalMemoryProperties+  { -- No documentation found for Nested "VkExternalMemoryProperties" "vkExternalMemoryFeatures"+  vkExternalMemoryFeatures :: VkExternalMemoryFeatureFlags+  , -- No documentation found for Nested "VkExternalMemoryProperties" "vkExportFromImportedHandleTypes"+  vkExportFromImportedHandleTypes :: VkExternalMemoryHandleTypeFlags+  , -- No documentation found for Nested "VkExternalMemoryProperties" "vkCompatibleHandleTypes"+  vkCompatibleHandleTypes :: VkExternalMemoryHandleTypeFlags+  }+  deriving (Eq, Show)++instance Storable VkExternalMemoryProperties where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkExternalMemoryProperties <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 4)+                                        <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkExternalMemoryFeatures (poked :: VkExternalMemoryProperties))+                *> poke (ptr `plusPtr` 4) (vkExportFromImportedHandleTypes (poked :: VkExternalMemoryProperties))+                *> poke (ptr `plusPtr` 8) (vkCompatibleHandleTypes (poked :: VkExternalMemoryProperties))+-- | VkPhysicalDeviceExternalImageFormatInfo - Structure specifying external+-- image creation parameters+data VkPhysicalDeviceExternalImageFormatInfo = VkPhysicalDeviceExternalImageFormatInfo+  { -- No documentation found for Nested "VkPhysicalDeviceExternalImageFormatInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceExternalImageFormatInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceExternalImageFormatInfo" "vkHandleType"+  vkHandleType :: VkExternalMemoryHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceExternalImageFormatInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceExternalImageFormatInfo <$> peek (ptr `plusPtr` 0)+                                                     <*> peek (ptr `plusPtr` 8)+                                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceExternalImageFormatInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceExternalImageFormatInfo))+                *> poke (ptr `plusPtr` 16) (vkHandleType (poked :: VkPhysicalDeviceExternalImageFormatInfo))+-- | VkExternalImageFormatProperties - Structure specifying supported+-- external handle properties+data VkExternalImageFormatProperties = VkExternalImageFormatProperties+  { -- No documentation found for Nested "VkExternalImageFormatProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExternalImageFormatProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExternalImageFormatProperties" "vkExternalMemoryProperties"+  vkExternalMemoryProperties :: VkExternalMemoryProperties+  }+  deriving (Eq, Show)++instance Storable VkExternalImageFormatProperties where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkExternalImageFormatProperties <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalImageFormatProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalImageFormatProperties))+                *> poke (ptr `plusPtr` 16) (vkExternalMemoryProperties (poked :: VkExternalImageFormatProperties))+-- | VkPhysicalDeviceExternalBufferInfo - Structure specifying buffer+-- creation parameters+data VkPhysicalDeviceExternalBufferInfo = VkPhysicalDeviceExternalBufferInfo+  { -- No documentation found for Nested "VkPhysicalDeviceExternalBufferInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceExternalBufferInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceExternalBufferInfo" "vkFlags"+  vkFlags :: VkBufferCreateFlags+  , -- No documentation found for Nested "VkPhysicalDeviceExternalBufferInfo" "vkUsage"+  vkUsage :: VkBufferUsageFlags+  , -- No documentation found for Nested "VkPhysicalDeviceExternalBufferInfo" "vkHandleType"+  vkHandleType :: VkExternalMemoryHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceExternalBufferInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceExternalBufferInfo <$> peek (ptr `plusPtr` 0)+                                                <*> peek (ptr `plusPtr` 8)+                                                <*> peek (ptr `plusPtr` 16)+                                                <*> peek (ptr `plusPtr` 20)+                                                <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceExternalBufferInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceExternalBufferInfo))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPhysicalDeviceExternalBufferInfo))+                *> poke (ptr `plusPtr` 20) (vkUsage (poked :: VkPhysicalDeviceExternalBufferInfo))+                *> poke (ptr `plusPtr` 24) (vkHandleType (poked :: VkPhysicalDeviceExternalBufferInfo))+-- | VkExternalBufferProperties - Structure specifying supported external+-- handle capabilities+data VkExternalBufferProperties = VkExternalBufferProperties+  { -- No documentation found for Nested "VkExternalBufferProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExternalBufferProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExternalBufferProperties" "vkExternalMemoryProperties"+  vkExternalMemoryProperties :: VkExternalMemoryProperties+  }+  deriving (Eq, Show)++instance Storable VkExternalBufferProperties where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkExternalBufferProperties <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalBufferProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalBufferProperties))+                *> poke (ptr `plusPtr` 16) (vkExternalMemoryProperties (poked :: VkExternalBufferProperties))+-- | VkPhysicalDeviceIDProperties - Structure specifying IDs related to the+-- physical device+data VkPhysicalDeviceIDProperties = VkPhysicalDeviceIDProperties+  { -- No documentation found for Nested "VkPhysicalDeviceIDProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceIDProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceIDProperties" "vkDeviceUUID"+  vkDeviceUUID :: Vector VK_UUID_SIZE Word8+  , -- No documentation found for Nested "VkPhysicalDeviceIDProperties" "vkDriverUUID"+  vkDriverUUID :: Vector VK_UUID_SIZE Word8+  , -- No documentation found for Nested "VkPhysicalDeviceIDProperties" "vkDeviceLUID"+  vkDeviceLUID :: Vector VK_LUID_SIZE Word8+  , -- No documentation found for Nested "VkPhysicalDeviceIDProperties" "vkDeviceNodeMask"+  vkDeviceNodeMask :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceIDProperties" "vkDeviceLUIDValid"+  vkDeviceLUIDValid :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceIDProperties where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceIDProperties <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 16)+                                          <*> peek (ptr `plusPtr` 32)+                                          <*> peek (ptr `plusPtr` 48)+                                          <*> peek (ptr `plusPtr` 56)+                                          <*> peek (ptr `plusPtr` 60)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceIDProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceIDProperties))+                *> poke (ptr `plusPtr` 16) (vkDeviceUUID (poked :: VkPhysicalDeviceIDProperties))+                *> poke (ptr `plusPtr` 32) (vkDriverUUID (poked :: VkPhysicalDeviceIDProperties))+                *> poke (ptr `plusPtr` 48) (vkDeviceLUID (poked :: VkPhysicalDeviceIDProperties))+                *> poke (ptr `plusPtr` 56) (vkDeviceNodeMask (poked :: VkPhysicalDeviceIDProperties))+                *> poke (ptr `plusPtr` 60) (vkDeviceLUIDValid (poked :: VkPhysicalDeviceIDProperties))+-- | VkExternalMemoryHandleTypeFlags - Bitmask of+-- VkExternalMemoryHandleTypeFlagBits+type VkExternalMemoryHandleTypeFlags = VkExternalMemoryHandleTypeFlagBits+-- | VkExternalMemoryFeatureFlags - Bitmask of+-- VkExternalMemoryFeatureFlagBits+type VkExternalMemoryFeatureFlags = VkExternalMemoryFeatureFlagBits
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_external_semaphore.hs view
@@ -0,0 +1,103 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore+  ( VkSemaphoreImportFlagBits(..)+  , pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT+  , pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO+  , VkExportSemaphoreCreateInfo(..)+  , VkSemaphoreImportFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+  ( VkExternalSemaphoreHandleTypeFlags+  )+++-- ** VkSemaphoreImportFlagBits++-- | VkSemaphoreImportFlagBits - Bitmask specifying additional parameters of+-- semaphore payload import+newtype VkSemaphoreImportFlagBits = VkSemaphoreImportFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSemaphoreImportFlagBits where+  showsPrec _ VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = showString "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"+  showsPrec p (VkSemaphoreImportFlagBits x) = showParen (p >= 11) (showString "VkSemaphoreImportFlagBits " . showsPrec 11 x)++instance Read VkSemaphoreImportFlagBits where+  readPrec = parens ( choose [ ("VK_SEMAPHORE_IMPORT_TEMPORARY_BIT", pure VK_SEMAPHORE_IMPORT_TEMPORARY_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSemaphoreImportFlagBits")+                        v <- step readPrec+                        pure (VkSemaphoreImportFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkSemaphoreImportFlagBits" "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"+pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT :: VkSemaphoreImportFlagBits+pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = VkSemaphoreImportFlagBits 0x00000001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = VkStructureType 1000077000+-- | VkExportSemaphoreCreateInfo - Structure specifying handle types that can+-- be exported from a semaphore+data VkExportSemaphoreCreateInfo = VkExportSemaphoreCreateInfo+  { -- No documentation found for Nested "VkExportSemaphoreCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExportSemaphoreCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExportSemaphoreCreateInfo" "vkHandleTypes"+  vkHandleTypes :: VkExternalSemaphoreHandleTypeFlags+  }+  deriving (Eq, Show)++instance Storable VkExportSemaphoreCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkExportSemaphoreCreateInfo <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportSemaphoreCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportSemaphoreCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExportSemaphoreCreateInfo))+-- | VkSemaphoreImportFlags - Bitmask of VkSemaphoreImportFlagBits+type VkSemaphoreImportFlags = VkSemaphoreImportFlagBits
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_external_semaphore_capabilities.hs view
@@ -0,0 +1,212 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+  ( VkExternalSemaphoreHandleTypeFlagBits(..)+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT+  , VkExternalSemaphoreFeatureFlagBits(..)+  , pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES+  , vkGetPhysicalDeviceExternalSemaphoreProperties+  , VkPhysicalDeviceExternalSemaphoreInfo(..)+  , VkExternalSemaphoreProperties(..)+  , VkExternalSemaphoreHandleTypeFlags+  , VkExternalSemaphoreFeatureFlags+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+++-- ** VkExternalSemaphoreHandleTypeFlagBits++-- | VkExternalSemaphoreHandleTypeFlagBits - Bitmask of valid external+-- semaphore handle types+newtype VkExternalSemaphoreHandleTypeFlagBits = VkExternalSemaphoreHandleTypeFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkExternalSemaphoreHandleTypeFlagBits where+  showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"+  showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"+  showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"+  showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"+  showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"+  showsPrec p (VkExternalSemaphoreHandleTypeFlagBits x) = showParen (p >= 11) (showString "VkExternalSemaphoreHandleTypeFlagBits " . showsPrec 11 x)++instance Read VkExternalSemaphoreHandleTypeFlagBits where+  readPrec = parens ( choose [ ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT",        pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT)+                             , ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT",     pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT)+                             , ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT", pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT)+                             , ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT",      pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT)+                             , ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT",          pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkExternalSemaphoreHandleTypeFlagBits")+                        v <- step readPrec+                        pure (VkExternalSemaphoreHandleTypeFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkExternalSemaphoreHandleTypeFlagBits" "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = VkExternalSemaphoreHandleTypeFlagBits 0x00000001++-- No documentation found for Nested "VkExternalSemaphoreHandleTypeFlagBits" "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = VkExternalSemaphoreHandleTypeFlagBits 0x00000002++-- No documentation found for Nested "VkExternalSemaphoreHandleTypeFlagBits" "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = VkExternalSemaphoreHandleTypeFlagBits 0x00000004++-- No documentation found for Nested "VkExternalSemaphoreHandleTypeFlagBits" "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = VkExternalSemaphoreHandleTypeFlagBits 0x00000008++-- No documentation found for Nested "VkExternalSemaphoreHandleTypeFlagBits" "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = VkExternalSemaphoreHandleTypeFlagBits 0x00000010+-- ** VkExternalSemaphoreFeatureFlagBits++-- | VkExternalSemaphoreFeatureFlagBits - Bitfield describing features of an+-- external semaphore handle type+newtype VkExternalSemaphoreFeatureFlagBits = VkExternalSemaphoreFeatureFlagBits VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkExternalSemaphoreFeatureFlagBits where+  showsPrec _ VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = showString "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"+  showsPrec _ VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = showString "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"+  showsPrec p (VkExternalSemaphoreFeatureFlagBits x) = showParen (p >= 11) (showString "VkExternalSemaphoreFeatureFlagBits " . showsPrec 11 x)++instance Read VkExternalSemaphoreFeatureFlagBits where+  readPrec = parens ( choose [ ("VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT", pure VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT)+                             , ("VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT", pure VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkExternalSemaphoreFeatureFlagBits")+                        v <- step readPrec+                        pure (VkExternalSemaphoreFeatureFlagBits v)+                        )+                    )++-- No documentation found for Nested "VkExternalSemaphoreFeatureFlagBits" "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT :: VkExternalSemaphoreFeatureFlagBits+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = VkExternalSemaphoreFeatureFlagBits 0x00000001++-- No documentation found for Nested "VkExternalSemaphoreFeatureFlagBits" "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT :: VkExternalSemaphoreFeatureFlagBits+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = VkExternalSemaphoreFeatureFlagBits 0x00000002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = VkStructureType 1000076000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"+pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = VkStructureType 1000076001+-- | vkGetPhysicalDeviceExternalSemaphoreProperties - Function for querying+-- external semaphore handle capabilities.+foreign import ccall "vkGetPhysicalDeviceExternalSemaphoreProperties" vkGetPhysicalDeviceExternalSemaphoreProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalSemaphoreInfo" ::: Ptr VkPhysicalDeviceExternalSemaphoreInfo) -> ("pExternalSemaphoreProperties" ::: Ptr VkExternalSemaphoreProperties) -> IO ()+-- | VkPhysicalDeviceExternalSemaphoreInfo - Structure specifying semaphore+-- creation parameters.+data VkPhysicalDeviceExternalSemaphoreInfo = VkPhysicalDeviceExternalSemaphoreInfo+  { -- No documentation found for Nested "VkPhysicalDeviceExternalSemaphoreInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceExternalSemaphoreInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceExternalSemaphoreInfo" "vkHandleType"+  vkHandleType :: VkExternalSemaphoreHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceExternalSemaphoreInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceExternalSemaphoreInfo <$> peek (ptr `plusPtr` 0)+                                                   <*> peek (ptr `plusPtr` 8)+                                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceExternalSemaphoreInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceExternalSemaphoreInfo))+                *> poke (ptr `plusPtr` 16) (vkHandleType (poked :: VkPhysicalDeviceExternalSemaphoreInfo))+-- | VkExternalSemaphoreProperties - Structure describing supported external+-- semaphore handle features+data VkExternalSemaphoreProperties = VkExternalSemaphoreProperties+  { -- No documentation found for Nested "VkExternalSemaphoreProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExternalSemaphoreProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExternalSemaphoreProperties" "vkExportFromImportedHandleTypes"+  vkExportFromImportedHandleTypes :: VkExternalSemaphoreHandleTypeFlags+  , -- No documentation found for Nested "VkExternalSemaphoreProperties" "vkCompatibleHandleTypes"+  vkCompatibleHandleTypes :: VkExternalSemaphoreHandleTypeFlags+  , -- No documentation found for Nested "VkExternalSemaphoreProperties" "vkExternalSemaphoreFeatures"+  vkExternalSemaphoreFeatures :: VkExternalSemaphoreFeatureFlags+  }+  deriving (Eq, Show)++instance Storable VkExternalSemaphoreProperties where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkExternalSemaphoreProperties <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 20)+                                           <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalSemaphoreProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalSemaphoreProperties))+                *> poke (ptr `plusPtr` 16) (vkExportFromImportedHandleTypes (poked :: VkExternalSemaphoreProperties))+                *> poke (ptr `plusPtr` 20) (vkCompatibleHandleTypes (poked :: VkExternalSemaphoreProperties))+                *> poke (ptr `plusPtr` 24) (vkExternalSemaphoreFeatures (poked :: VkExternalSemaphoreProperties))+-- | VkExternalSemaphoreHandleTypeFlags - Bitmask of+-- VkExternalSemaphoreHandleTypeFlagBits+type VkExternalSemaphoreHandleTypeFlags = VkExternalSemaphoreHandleTypeFlagBits+-- | VkExternalSemaphoreFeatureFlags - Bitmask of+-- VkExternalSemaphoreFeatureFlagBitsKHR+type VkExternalSemaphoreFeatureFlags = VkExternalSemaphoreFeatureFlagBits
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_get_memory_requirements2.hs view
@@ -0,0 +1,179 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2+  ( pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2+  , pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2+  , pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2+  , pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2+  , pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2+  , vkGetBufferMemoryRequirements2+  , vkGetImageMemoryRequirements2+  , vkGetImageSparseMemoryRequirements2+  , VkBufferMemoryRequirementsInfo2(..)+  , VkImageMemoryRequirementsInfo2(..)+  , VkImageSparseMemoryRequirementsInfo2(..)+  , VkMemoryRequirements2(..)+  , VkSparseImageMemoryRequirements2(..)+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkMemoryRequirements(..)+  , VkImage+  , VkBuffer+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkSparseImageMemoryRequirements(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = VkStructureType 1000146000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = VkStructureType 1000146001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"+pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = VkStructureType 1000146002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"+pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = VkStructureType 1000146003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = VkStructureType 1000146004+-- | vkGetBufferMemoryRequirements2 - Returns the memory requirements for+-- specified Vulkan object+foreign import ccall "vkGetBufferMemoryRequirements2" vkGetBufferMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkBufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO ()+-- | vkGetImageMemoryRequirements2 - Returns the memory requirements for+-- specified Vulkan object+foreign import ccall "vkGetImageMemoryRequirements2" vkGetImageMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO ()+-- | vkGetImageSparseMemoryRequirements2 - Query the memory requirements for+-- a sparse image+foreign import ccall "vkGetImageSparseMemoryRequirements2" vkGetImageSparseMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements2) -> IO ()+-- | VkBufferMemoryRequirementsInfo2 - (None)+data VkBufferMemoryRequirementsInfo2 = VkBufferMemoryRequirementsInfo2+  { -- No documentation found for Nested "VkBufferMemoryRequirementsInfo2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBufferMemoryRequirementsInfo2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBufferMemoryRequirementsInfo2" "vkBuffer"+  vkBuffer :: VkBuffer+  }+  deriving (Eq, Show)++instance Storable VkBufferMemoryRequirementsInfo2 where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkBufferMemoryRequirementsInfo2 <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferMemoryRequirementsInfo2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferMemoryRequirementsInfo2))+                *> poke (ptr `plusPtr` 16) (vkBuffer (poked :: VkBufferMemoryRequirementsInfo2))+-- | VkImageMemoryRequirementsInfo2 - (None)+data VkImageMemoryRequirementsInfo2 = VkImageMemoryRequirementsInfo2+  { -- No documentation found for Nested "VkImageMemoryRequirementsInfo2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageMemoryRequirementsInfo2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageMemoryRequirementsInfo2" "vkImage"+  vkImage :: VkImage+  }+  deriving (Eq, Show)++instance Storable VkImageMemoryRequirementsInfo2 where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkImageMemoryRequirementsInfo2 <$> peek (ptr `plusPtr` 0)+                                            <*> peek (ptr `plusPtr` 8)+                                            <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageMemoryRequirementsInfo2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageMemoryRequirementsInfo2))+                *> poke (ptr `plusPtr` 16) (vkImage (poked :: VkImageMemoryRequirementsInfo2))+-- | VkImageSparseMemoryRequirementsInfo2 - (None)+data VkImageSparseMemoryRequirementsInfo2 = VkImageSparseMemoryRequirementsInfo2+  { -- No documentation found for Nested "VkImageSparseMemoryRequirementsInfo2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageSparseMemoryRequirementsInfo2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageSparseMemoryRequirementsInfo2" "vkImage"+  vkImage :: VkImage+  }+  deriving (Eq, Show)++instance Storable VkImageSparseMemoryRequirementsInfo2 where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkImageSparseMemoryRequirementsInfo2 <$> peek (ptr `plusPtr` 0)+                                                  <*> peek (ptr `plusPtr` 8)+                                                  <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageSparseMemoryRequirementsInfo2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageSparseMemoryRequirementsInfo2))+                *> poke (ptr `plusPtr` 16) (vkImage (poked :: VkImageSparseMemoryRequirementsInfo2))+-- | VkMemoryRequirements2 - Structure specifying memory requirements+data VkMemoryRequirements2 = VkMemoryRequirements2+  { -- No documentation found for Nested "VkMemoryRequirements2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryRequirements2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryRequirements2" "vkMemoryRequirements"+  vkMemoryRequirements :: VkMemoryRequirements+  }+  deriving (Eq, Show)++instance Storable VkMemoryRequirements2 where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkMemoryRequirements2 <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryRequirements2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryRequirements2))+                *> poke (ptr `plusPtr` 16) (vkMemoryRequirements (poked :: VkMemoryRequirements2))+-- | VkSparseImageMemoryRequirements2 - (None)+data VkSparseImageMemoryRequirements2 = VkSparseImageMemoryRequirements2+  { -- No documentation found for Nested "VkSparseImageMemoryRequirements2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSparseImageMemoryRequirements2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSparseImageMemoryRequirements2" "vkMemoryRequirements"+  vkMemoryRequirements :: VkSparseImageMemoryRequirements+  }+  deriving (Eq, Show)++instance Storable VkSparseImageMemoryRequirements2 where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkSparseImageMemoryRequirements2 <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSparseImageMemoryRequirements2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSparseImageMemoryRequirements2))+                *> poke (ptr `plusPtr` 16) (vkMemoryRequirements (poked :: VkSparseImageMemoryRequirements2))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_get_physical_device_properties2.hs view
@@ -0,0 +1,341 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2+  , pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2+  , vkGetPhysicalDeviceFeatures2+  , vkGetPhysicalDeviceProperties2+  , vkGetPhysicalDeviceFormatProperties2+  , vkGetPhysicalDeviceImageFormatProperties2+  , vkGetPhysicalDeviceQueueFamilyProperties2+  , vkGetPhysicalDeviceMemoryProperties2+  , vkGetPhysicalDeviceSparseImageFormatProperties2+  , VkPhysicalDeviceFeatures2(..)+  , VkPhysicalDeviceProperties2(..)+  , VkFormatProperties2(..)+  , VkImageFormatProperties2(..)+  , VkPhysicalDeviceImageFormatInfo2(..)+  , VkQueueFamilyProperties2(..)+  , VkPhysicalDeviceMemoryProperties2(..)+  , VkSparseImageFormatProperties2(..)+  , VkPhysicalDeviceSparseImageFormatInfo2(..)+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkFormat(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkSampleCountFlagBits(..)+  , VkPhysicalDeviceMemoryProperties(..)+  , VkQueueFamilyProperties(..)+  , VkImageCreateFlags+  , VkImageUsageFlags+  , VkImageTiling(..)+  , VkImageType(..)+  , VkImageFormatProperties(..)+  , VkFormatProperties(..)+  , VkPhysicalDeviceProperties(..)+  , VkPhysicalDeviceFeatures(..)+  , VkPhysicalDevice+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkSparseImageFormatProperties(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = VkStructureType 1000059000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = VkStructureType 1000059001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"+pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = VkStructureType 1000059002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"+pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = VkStructureType 1000059003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = VkStructureType 1000059004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"+pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = VkStructureType 1000059005+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = VkStructureType 1000059006+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = VkStructureType 1000059007+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = VkStructureType 1000059008+-- | vkGetPhysicalDeviceFeatures2 - Reports capabilities of a physical device+foreign import ccall "vkGetPhysicalDeviceFeatures2" vkGetPhysicalDeviceFeatures2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures2) -> IO ()+-- | vkGetPhysicalDeviceProperties2 - Returns properties of a physical device+foreign import ccall "vkGetPhysicalDeviceProperties2" vkGetPhysicalDeviceProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties2) -> IO ()+-- | vkGetPhysicalDeviceFormatProperties2 - Lists physical device’s format+-- capabilities+foreign import ccall "vkGetPhysicalDeviceFormatProperties2" vkGetPhysicalDeviceFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties2) -> IO ()+-- | vkGetPhysicalDeviceImageFormatProperties2 - Lists physical device’s+-- image format capabilities+foreign import ccall "vkGetPhysicalDeviceImageFormatProperties2" vkGetPhysicalDeviceImageFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pImageFormatInfo" ::: Ptr VkPhysicalDeviceImageFormatInfo2) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties2) -> IO VkResult+-- | vkGetPhysicalDeviceQueueFamilyProperties2 - Reports properties of the+-- queues of the specified physical device+foreign import ccall "vkGetPhysicalDeviceQueueFamilyProperties2" vkGetPhysicalDeviceQueueFamilyProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties2) -> IO ()+-- | vkGetPhysicalDeviceMemoryProperties2 - Reports memory information for+-- the specified physical device+foreign import ccall "vkGetPhysicalDeviceMemoryProperties2" vkGetPhysicalDeviceMemoryProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties2) -> IO ()+-- | vkGetPhysicalDeviceSparseImageFormatProperties2 - Retrieve properties of+-- an image format applied to sparse images+foreign import ccall "vkGetPhysicalDeviceSparseImageFormatProperties2" vkGetPhysicalDeviceSparseImageFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFormatInfo" ::: Ptr VkPhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties2) -> IO ()+-- | VkPhysicalDeviceFeatures2 - Structure describing the fine-grained+-- features that can be supported by an implementation+data VkPhysicalDeviceFeatures2 = VkPhysicalDeviceFeatures2+  { -- No documentation found for Nested "VkPhysicalDeviceFeatures2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceFeatures2" "vkFeatures"+  vkFeatures :: VkPhysicalDeviceFeatures+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceFeatures2 where+  sizeOf ~_ = 240+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceFeatures2 <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceFeatures2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceFeatures2))+                *> poke (ptr `plusPtr` 16) (vkFeatures (poked :: VkPhysicalDeviceFeatures2))+-- | VkPhysicalDeviceProperties2 - Structure specifying physical device+-- properties+data VkPhysicalDeviceProperties2 = VkPhysicalDeviceProperties2+  { -- No documentation found for Nested "VkPhysicalDeviceProperties2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceProperties2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceProperties2" "vkProperties"+  vkProperties :: VkPhysicalDeviceProperties+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceProperties2 where+  sizeOf ~_ = 840+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceProperties2 <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceProperties2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceProperties2))+                *> poke (ptr `plusPtr` 16) (vkProperties (poked :: VkPhysicalDeviceProperties2))+-- | VkFormatProperties2 - Structure specifying image format properties+data VkFormatProperties2 = VkFormatProperties2+  { -- No documentation found for Nested "VkFormatProperties2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkFormatProperties2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkFormatProperties2" "vkFormatProperties"+  vkFormatProperties :: VkFormatProperties+  }+  deriving (Eq, Show)++instance Storable VkFormatProperties2 where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkFormatProperties2 <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFormatProperties2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFormatProperties2))+                *> poke (ptr `plusPtr` 16) (vkFormatProperties (poked :: VkFormatProperties2))+-- | VkImageFormatProperties2 - Structure specifying a image format+-- properties+data VkImageFormatProperties2 = VkImageFormatProperties2+  { -- No documentation found for Nested "VkImageFormatProperties2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageFormatProperties2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageFormatProperties2" "vkImageFormatProperties"+  vkImageFormatProperties :: VkImageFormatProperties+  }+  deriving (Eq, Show)++instance Storable VkImageFormatProperties2 where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkImageFormatProperties2 <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageFormatProperties2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageFormatProperties2))+                *> poke (ptr `plusPtr` 16) (vkImageFormatProperties (poked :: VkImageFormatProperties2))+-- | VkPhysicalDeviceImageFormatInfo2 - Structure specifying image creation+-- parameters+data VkPhysicalDeviceImageFormatInfo2 = VkPhysicalDeviceImageFormatInfo2+  { -- No documentation found for Nested "VkPhysicalDeviceImageFormatInfo2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceImageFormatInfo2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceImageFormatInfo2" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkPhysicalDeviceImageFormatInfo2" "vkType"+  vkType :: VkImageType+  , -- No documentation found for Nested "VkPhysicalDeviceImageFormatInfo2" "vkTiling"+  vkTiling :: VkImageTiling+  , -- No documentation found for Nested "VkPhysicalDeviceImageFormatInfo2" "vkUsage"+  vkUsage :: VkImageUsageFlags+  , -- No documentation found for Nested "VkPhysicalDeviceImageFormatInfo2" "vkFlags"+  vkFlags :: VkImageCreateFlags+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceImageFormatInfo2 where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceImageFormatInfo2 <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+                                              <*> peek (ptr `plusPtr` 20)+                                              <*> peek (ptr `plusPtr` 24)+                                              <*> peek (ptr `plusPtr` 28)+                                              <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceImageFormatInfo2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceImageFormatInfo2))+                *> poke (ptr `plusPtr` 16) (vkFormat (poked :: VkPhysicalDeviceImageFormatInfo2))+                *> poke (ptr `plusPtr` 20) (vkType (poked :: VkPhysicalDeviceImageFormatInfo2))+                *> poke (ptr `plusPtr` 24) (vkTiling (poked :: VkPhysicalDeviceImageFormatInfo2))+                *> poke (ptr `plusPtr` 28) (vkUsage (poked :: VkPhysicalDeviceImageFormatInfo2))+                *> poke (ptr `plusPtr` 32) (vkFlags (poked :: VkPhysicalDeviceImageFormatInfo2))+-- | VkQueueFamilyProperties2 - Structure providing information about a queue+-- family+data VkQueueFamilyProperties2 = VkQueueFamilyProperties2+  { -- No documentation found for Nested "VkQueueFamilyProperties2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkQueueFamilyProperties2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkQueueFamilyProperties2" "vkQueueFamilyProperties"+  vkQueueFamilyProperties :: VkQueueFamilyProperties+  }+  deriving (Eq, Show)++instance Storable VkQueueFamilyProperties2 where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkQueueFamilyProperties2 <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkQueueFamilyProperties2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkQueueFamilyProperties2))+                *> poke (ptr `plusPtr` 16) (vkQueueFamilyProperties (poked :: VkQueueFamilyProperties2))+-- | VkPhysicalDeviceMemoryProperties2 - Structure specifying physical device+-- memory properties+data VkPhysicalDeviceMemoryProperties2 = VkPhysicalDeviceMemoryProperties2+  { -- No documentation found for Nested "VkPhysicalDeviceMemoryProperties2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceMemoryProperties2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceMemoryProperties2" "vkMemoryProperties"+  vkMemoryProperties :: VkPhysicalDeviceMemoryProperties+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceMemoryProperties2 where+  sizeOf ~_ = 536+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceMemoryProperties2 <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceMemoryProperties2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceMemoryProperties2))+                *> poke (ptr `plusPtr` 16) (vkMemoryProperties (poked :: VkPhysicalDeviceMemoryProperties2))+-- | VkSparseImageFormatProperties2 - Structure specifying sparse image+-- format properties+data VkSparseImageFormatProperties2 = VkSparseImageFormatProperties2+  { -- No documentation found for Nested "VkSparseImageFormatProperties2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSparseImageFormatProperties2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSparseImageFormatProperties2" "vkProperties"+  vkProperties :: VkSparseImageFormatProperties+  }+  deriving (Eq, Show)++instance Storable VkSparseImageFormatProperties2 where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkSparseImageFormatProperties2 <$> peek (ptr `plusPtr` 0)+                                            <*> peek (ptr `plusPtr` 8)+                                            <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSparseImageFormatProperties2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSparseImageFormatProperties2))+                *> poke (ptr `plusPtr` 16) (vkProperties (poked :: VkSparseImageFormatProperties2))+-- | VkPhysicalDeviceSparseImageFormatInfo2 - Structure specifying sparse+-- image format inputs+data VkPhysicalDeviceSparseImageFormatInfo2 = VkPhysicalDeviceSparseImageFormatInfo2+  { -- No documentation found for Nested "VkPhysicalDeviceSparseImageFormatInfo2" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceSparseImageFormatInfo2" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceSparseImageFormatInfo2" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkPhysicalDeviceSparseImageFormatInfo2" "vkType"+  vkType :: VkImageType+  , -- No documentation found for Nested "VkPhysicalDeviceSparseImageFormatInfo2" "vkSamples"+  vkSamples :: VkSampleCountFlagBits+  , -- No documentation found for Nested "VkPhysicalDeviceSparseImageFormatInfo2" "vkUsage"+  vkUsage :: VkImageUsageFlags+  , -- No documentation found for Nested "VkPhysicalDeviceSparseImageFormatInfo2" "vkTiling"+  vkTiling :: VkImageTiling+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceSparseImageFormatInfo2 where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceSparseImageFormatInfo2 <$> peek (ptr `plusPtr` 0)+                                                    <*> peek (ptr `plusPtr` 8)+                                                    <*> peek (ptr `plusPtr` 16)+                                                    <*> peek (ptr `plusPtr` 20)+                                                    <*> peek (ptr `plusPtr` 24)+                                                    <*> peek (ptr `plusPtr` 28)+                                                    <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceSparseImageFormatInfo2))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceSparseImageFormatInfo2))+                *> poke (ptr `plusPtr` 16) (vkFormat (poked :: VkPhysicalDeviceSparseImageFormatInfo2))+                *> poke (ptr `plusPtr` 20) (vkType (poked :: VkPhysicalDeviceSparseImageFormatInfo2))+                *> poke (ptr `plusPtr` 24) (vkSamples (poked :: VkPhysicalDeviceSparseImageFormatInfo2))+                *> poke (ptr `plusPtr` 28) (vkUsage (poked :: VkPhysicalDeviceSparseImageFormatInfo2))+                *> poke (ptr `plusPtr` 32) (vkTiling (poked :: VkPhysicalDeviceSparseImageFormatInfo2))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_maintenance1.hs view
@@ -0,0 +1,93 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1+  ( VkCommandPoolTrimFlags(..)+  , pattern VK_ERROR_OUT_OF_POOL_MEMORY+  , pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT+  , pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT+  , pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT+  , vkTrimCommandPool+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Foreign.Storable+  ( Storable(..)+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.CommandPool+  ( VkCommandPool+  )+import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  , VkFormatFeatureFlagBits(..)+  , VkImageCreateFlagBits(..)+  )+++-- ** VkCommandPoolTrimFlags++-- | VkCommandPoolTrimFlags - Reserved for future use+newtype VkCommandPoolTrimFlags = VkCommandPoolTrimFlags VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkCommandPoolTrimFlags where+  +  showsPrec p (VkCommandPoolTrimFlags x) = showParen (p >= 11) (showString "VkCommandPoolTrimFlags " . showsPrec 11 x)++instance Read VkCommandPoolTrimFlags where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCommandPoolTrimFlags")+                        v <- step readPrec+                        pure (VkCommandPoolTrimFlags v)+                        )+                    )+++-- No documentation found for Nested "VkResult" "VK_ERROR_OUT_OF_POOL_MEMORY"+pattern VK_ERROR_OUT_OF_POOL_MEMORY :: VkResult+pattern VK_ERROR_OUT_OF_POOL_MEMORY = VkResult (-1000069000)+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"+pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = VkImageCreateFlagBits 0x00000020+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"+pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = VkFormatFeatureFlagBits 0x00004000+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"+pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT = VkFormatFeatureFlagBits 0x00008000+-- | vkTrimCommandPool - Trim a command pool+foreign import ccall "vkTrimCommandPool" vkTrimCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolTrimFlags) -> IO ()
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_maintenance2.hs view
@@ -0,0 +1,265 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2+  ( VkPointClippingBehavior(..)+  , pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES+  , pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY+  , VkTessellationDomainOrigin(..)+  , pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT+  , pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT+  , pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL+  , pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO+  , pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT+  , pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT+  , VkInputAttachmentAspectReference(..)+  , VkRenderPassInputAttachmentAspectCreateInfo(..)+  , VkPhysicalDevicePointClippingProperties(..)+  , VkImageViewUsageCreateInfo(..)+  , VkPipelineTessellationDomainOriginStateCreateInfo(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageUsageFlags+  , VkImageCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.Image+  ( VkImageLayout(..)+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkImageAspectFlags+  )+++-- ** VkPointClippingBehavior++-- | VkPointClippingBehavior - Enum specifying the point clipping behaviour+newtype VkPointClippingBehavior = VkPointClippingBehavior Int32+  deriving (Eq, Ord, Storable)++instance Show VkPointClippingBehavior where+  showsPrec _ VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = showString "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"+  showsPrec _ VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = showString "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"+  showsPrec p (VkPointClippingBehavior x) = showParen (p >= 11) (showString "VkPointClippingBehavior " . showsPrec 11 x)++instance Read VkPointClippingBehavior where+  readPrec = parens ( choose [ ("VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES",       pure VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES)+                             , ("VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY", pure VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPointClippingBehavior")+                        v <- step readPrec+                        pure (VkPointClippingBehavior v)+                        )+                    )++-- No documentation found for Nested "VkPointClippingBehavior" "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"+pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES :: VkPointClippingBehavior+pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = VkPointClippingBehavior 0++-- No documentation found for Nested "VkPointClippingBehavior" "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"+pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY :: VkPointClippingBehavior+pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = VkPointClippingBehavior 1+-- ** VkTessellationDomainOrigin++-- | VkTessellationDomainOrigin - Enum describing tessellation domain origin+newtype VkTessellationDomainOrigin = VkTessellationDomainOrigin Int32+  deriving (Eq, Ord, Storable)++instance Show VkTessellationDomainOrigin where+  showsPrec _ VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = showString "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"+  showsPrec _ VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = showString "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"+  showsPrec p (VkTessellationDomainOrigin x) = showParen (p >= 11) (showString "VkTessellationDomainOrigin " . showsPrec 11 x)++instance Read VkTessellationDomainOrigin where+  readPrec = parens ( choose [ ("VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT", pure VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT)+                             , ("VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT", pure VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkTessellationDomainOrigin")+                        v <- step readPrec+                        pure (VkTessellationDomainOrigin v)+                        )+                    )++-- No documentation found for Nested "VkTessellationDomainOrigin" "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"+pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT :: VkTessellationDomainOrigin+pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = VkTessellationDomainOrigin 0++-- No documentation found for Nested "VkTessellationDomainOrigin" "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"+pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT :: VkTessellationDomainOrigin+pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = VkTessellationDomainOrigin 1+-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL"+pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = VkImageLayout 1000117000+-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL"+pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL :: VkImageLayout+pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = VkImageLayout 1000117001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = VkStructureType 1000117000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = VkStructureType 1000117001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = VkStructureType 1000117002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = VkStructureType 1000117003+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"+pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = VkImageCreateFlagBits 0x00000080+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"+pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = VkImageCreateFlagBits 0x00000100+-- | VkInputAttachmentAspectReference - Structure specifying a subpass\/input+-- attachment pair and an aspect mask that /can/ be read.+data VkInputAttachmentAspectReference = VkInputAttachmentAspectReference+  { -- No documentation found for Nested "VkInputAttachmentAspectReference" "vkSubpass"+  vkSubpass :: Word32+  , -- No documentation found for Nested "VkInputAttachmentAspectReference" "vkInputAttachmentIndex"+  vkInputAttachmentIndex :: Word32+  , -- No documentation found for Nested "VkInputAttachmentAspectReference" "vkAspectMask"+  vkAspectMask :: VkImageAspectFlags+  }+  deriving (Eq, Show)++instance Storable VkInputAttachmentAspectReference where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkInputAttachmentAspectReference <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 4)+                                              <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSubpass (poked :: VkInputAttachmentAspectReference))+                *> poke (ptr `plusPtr` 4) (vkInputAttachmentIndex (poked :: VkInputAttachmentAspectReference))+                *> poke (ptr `plusPtr` 8) (vkAspectMask (poked :: VkInputAttachmentAspectReference))+-- | VkRenderPassInputAttachmentAspectCreateInfo - Structure specifying, for+-- a given subpass\/input attachment pair, which aspect /can/ be read.+data VkRenderPassInputAttachmentAspectCreateInfo = VkRenderPassInputAttachmentAspectCreateInfo+  { -- No documentation found for Nested "VkRenderPassInputAttachmentAspectCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkRenderPassInputAttachmentAspectCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkRenderPassInputAttachmentAspectCreateInfo" "vkAspectReferenceCount"+  vkAspectReferenceCount :: Word32+  , -- No documentation found for Nested "VkRenderPassInputAttachmentAspectCreateInfo" "vkPAspectReferences"+  vkPAspectReferences :: Ptr VkInputAttachmentAspectReference+  }+  deriving (Eq, Show)++instance Storable VkRenderPassInputAttachmentAspectCreateInfo where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkRenderPassInputAttachmentAspectCreateInfo <$> peek (ptr `plusPtr` 0)+                                                         <*> peek (ptr `plusPtr` 8)+                                                         <*> peek (ptr `plusPtr` 16)+                                                         <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassInputAttachmentAspectCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassInputAttachmentAspectCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkAspectReferenceCount (poked :: VkRenderPassInputAttachmentAspectCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPAspectReferences (poked :: VkRenderPassInputAttachmentAspectCreateInfo))+-- | VkPhysicalDevicePointClippingProperties - Structure describing the point+-- clipping behavior supported by an implementation+data VkPhysicalDevicePointClippingProperties = VkPhysicalDevicePointClippingProperties+  { -- No documentation found for Nested "VkPhysicalDevicePointClippingProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDevicePointClippingProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDevicePointClippingProperties" "vkPointClippingBehavior"+  vkPointClippingBehavior :: VkPointClippingBehavior+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDevicePointClippingProperties where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDevicePointClippingProperties <$> peek (ptr `plusPtr` 0)+                                                     <*> peek (ptr `plusPtr` 8)+                                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDevicePointClippingProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDevicePointClippingProperties))+                *> poke (ptr `plusPtr` 16) (vkPointClippingBehavior (poked :: VkPhysicalDevicePointClippingProperties))+-- | VkImageViewUsageCreateInfo - Specify the intended usage of an image view+data VkImageViewUsageCreateInfo = VkImageViewUsageCreateInfo+  { -- No documentation found for Nested "VkImageViewUsageCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageViewUsageCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageViewUsageCreateInfo" "vkUsage"+  vkUsage :: VkImageUsageFlags+  }+  deriving (Eq, Show)++instance Storable VkImageViewUsageCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkImageViewUsageCreateInfo <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageViewUsageCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageViewUsageCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkUsage (poked :: VkImageViewUsageCreateInfo))+-- | VkPipelineTessellationDomainOriginStateCreateInfo - Structure specifying+-- the orientation of the tessellation domain+data VkPipelineTessellationDomainOriginStateCreateInfo = VkPipelineTessellationDomainOriginStateCreateInfo+  { -- No documentation found for Nested "VkPipelineTessellationDomainOriginStateCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineTessellationDomainOriginStateCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineTessellationDomainOriginStateCreateInfo" "vkDomainOrigin"+  vkDomainOrigin :: VkTessellationDomainOrigin+  }+  deriving (Eq, Show)++instance Storable VkPipelineTessellationDomainOriginStateCreateInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPipelineTessellationDomainOriginStateCreateInfo <$> peek (ptr `plusPtr` 0)+                                                               <*> peek (ptr `plusPtr` 8)+                                                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineTessellationDomainOriginStateCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineTessellationDomainOriginStateCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkDomainOrigin (poked :: VkPipelineTessellationDomainOriginStateCreateInfo))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_maintenance3.hs view
@@ -0,0 +1,99 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT+  , vkGetDescriptorSetLayoutSupport+  , VkPhysicalDeviceMaintenance3Properties(..)+  , VkDescriptorSetLayoutSupport(..)+  ) where++import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DescriptorSet+  ( VkDescriptorSetLayoutCreateInfo(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkDevice+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = VkStructureType 1000168000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = VkStructureType 1000168001+-- | vkGetDescriptorSetLayoutSupport - Query whether a descriptor set layout+-- can be created+foreign import ccall "vkGetDescriptorSetLayoutSupport" vkGetDescriptorSetLayoutSupport :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pSupport" ::: Ptr VkDescriptorSetLayoutSupport) -> IO ()+-- | VkPhysicalDeviceMaintenance3Properties - Structure describing descriptor+-- set properties+data VkPhysicalDeviceMaintenance3Properties = VkPhysicalDeviceMaintenance3Properties+  { -- No documentation found for Nested "VkPhysicalDeviceMaintenance3Properties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceMaintenance3Properties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceMaintenance3Properties" "vkMaxPerSetDescriptors"+  vkMaxPerSetDescriptors :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceMaintenance3Properties" "vkMaxMemoryAllocationSize"+  vkMaxMemoryAllocationSize :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceMaintenance3Properties where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceMaintenance3Properties <$> peek (ptr `plusPtr` 0)+                                                    <*> peek (ptr `plusPtr` 8)+                                                    <*> peek (ptr `plusPtr` 16)+                                                    <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceMaintenance3Properties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceMaintenance3Properties))+                *> poke (ptr `plusPtr` 16) (vkMaxPerSetDescriptors (poked :: VkPhysicalDeviceMaintenance3Properties))+                *> poke (ptr `plusPtr` 24) (vkMaxMemoryAllocationSize (poked :: VkPhysicalDeviceMaintenance3Properties))+-- | VkDescriptorSetLayoutSupport - Structure returning information about+-- whether a descriptor set layout can be supported+data VkDescriptorSetLayoutSupport = VkDescriptorSetLayoutSupport+  { -- No documentation found for Nested "VkDescriptorSetLayoutSupport" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDescriptorSetLayoutSupport" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDescriptorSetLayoutSupport" "vkSupported"+  vkSupported :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkDescriptorSetLayoutSupport where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDescriptorSetLayoutSupport <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetLayoutSupport))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetLayoutSupport))+                *> poke (ptr `plusPtr` 16) (vkSupported (poked :: VkDescriptorSetLayoutSupport))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_multiview.hs view
@@ -0,0 +1,147 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview+  ( pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES+  , pattern VK_DEPENDENCY_VIEW_LOCAL_BIT+  , VkPhysicalDeviceMultiviewFeatures(..)+  , VkPhysicalDeviceMultiviewProperties(..)+  , VkRenderPassMultiviewCreateInfo(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Pass+  ( VkDependencyFlagBits(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = VkStructureType 1000053000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = VkStructureType 1000053001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = VkStructureType 1000053002+-- No documentation found for Nested "VkDependencyFlagBits" "VK_DEPENDENCY_VIEW_LOCAL_BIT"+pattern VK_DEPENDENCY_VIEW_LOCAL_BIT :: VkDependencyFlagBits+pattern VK_DEPENDENCY_VIEW_LOCAL_BIT = VkDependencyFlagBits 0x00000002+-- | VkPhysicalDeviceMultiviewFeatures - Structure describing multiview+-- features that can be supported by an implementation+data VkPhysicalDeviceMultiviewFeatures = VkPhysicalDeviceMultiviewFeatures+  { -- No documentation found for Nested "VkPhysicalDeviceMultiviewFeatures" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewFeatures" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewFeatures" "vkMultiview"+  vkMultiview :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewFeatures" "vkMultiviewGeometryShader"+  vkMultiviewGeometryShader :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewFeatures" "vkMultiviewTessellationShader"+  vkMultiviewTessellationShader :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceMultiviewFeatures where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceMultiviewFeatures <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+                                               <*> peek (ptr `plusPtr` 20)+                                               <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceMultiviewFeatures))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceMultiviewFeatures))+                *> poke (ptr `plusPtr` 16) (vkMultiview (poked :: VkPhysicalDeviceMultiviewFeatures))+                *> poke (ptr `plusPtr` 20) (vkMultiviewGeometryShader (poked :: VkPhysicalDeviceMultiviewFeatures))+                *> poke (ptr `plusPtr` 24) (vkMultiviewTessellationShader (poked :: VkPhysicalDeviceMultiviewFeatures))+-- | VkPhysicalDeviceMultiviewProperties - Structure describing multiview+-- limits that can be supported by an implementation+data VkPhysicalDeviceMultiviewProperties = VkPhysicalDeviceMultiviewProperties+  { -- No documentation found for Nested "VkPhysicalDeviceMultiviewProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewProperties" "vkMaxMultiviewViewCount"+  vkMaxMultiviewViewCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewProperties" "vkMaxMultiviewInstanceIndex"+  vkMaxMultiviewInstanceIndex :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceMultiviewProperties where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceMultiviewProperties <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+                                                 <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceMultiviewProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceMultiviewProperties))+                *> poke (ptr `plusPtr` 16) (vkMaxMultiviewViewCount (poked :: VkPhysicalDeviceMultiviewProperties))+                *> poke (ptr `plusPtr` 20) (vkMaxMultiviewInstanceIndex (poked :: VkPhysicalDeviceMultiviewProperties))+-- | VkRenderPassMultiviewCreateInfo - Structure containing multiview info+-- for all subpasses+data VkRenderPassMultiviewCreateInfo = VkRenderPassMultiviewCreateInfo+  { -- No documentation found for Nested "VkRenderPassMultiviewCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkRenderPassMultiviewCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkRenderPassMultiviewCreateInfo" "vkSubpassCount"+  vkSubpassCount :: Word32+  , -- No documentation found for Nested "VkRenderPassMultiviewCreateInfo" "vkPViewMasks"+  vkPViewMasks :: Ptr Word32+  , -- No documentation found for Nested "VkRenderPassMultiviewCreateInfo" "vkDependencyCount"+  vkDependencyCount :: Word32+  , -- No documentation found for Nested "VkRenderPassMultiviewCreateInfo" "vkPViewOffsets"+  vkPViewOffsets :: Ptr Int32+  , -- No documentation found for Nested "VkRenderPassMultiviewCreateInfo" "vkCorrelationMaskCount"+  vkCorrelationMaskCount :: Word32+  , -- No documentation found for Nested "VkRenderPassMultiviewCreateInfo" "vkPCorrelationMasks"+  vkPCorrelationMasks :: Ptr Word32+  }+  deriving (Eq, Show)++instance Storable VkRenderPassMultiviewCreateInfo where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkRenderPassMultiviewCreateInfo <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 24)+                                             <*> peek (ptr `plusPtr` 32)+                                             <*> peek (ptr `plusPtr` 40)+                                             <*> peek (ptr `plusPtr` 48)+                                             <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassMultiviewCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassMultiviewCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkSubpassCount (poked :: VkRenderPassMultiviewCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkPViewMasks (poked :: VkRenderPassMultiviewCreateInfo))+                *> poke (ptr `plusPtr` 32) (vkDependencyCount (poked :: VkRenderPassMultiviewCreateInfo))+                *> poke (ptr `plusPtr` 40) (vkPViewOffsets (poked :: VkRenderPassMultiviewCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkCorrelationMaskCount (poked :: VkRenderPassMultiviewCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkPCorrelationMasks (poked :: VkRenderPassMultiviewCreateInfo))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -0,0 +1,566 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion+  ( VkSamplerYcbcrModelConversion(..)+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020+  , VkSamplerYcbcrRange(..)+  , pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL+  , pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW+  , VkChromaLocation(..)+  , pattern VK_CHROMA_LOCATION_COSITED_EVEN+  , pattern VK_CHROMA_LOCATION_MIDPOINT+  , pattern VK_FORMAT_G8B8G8R8_422_UNORM+  , pattern VK_FORMAT_B8G8R8G8_422_UNORM+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM+  , pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM+  , pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM+  , pattern VK_FORMAT_R10X6_UNORM_PACK16+  , pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16+  , pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16+  , pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16+  , pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16+  , pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16+  , pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16+  , pattern VK_FORMAT_R12X4_UNORM_PACK16+  , pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16+  , pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16+  , pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16+  , pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16+  , pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16+  , pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16+  , pattern VK_FORMAT_G16B16G16R16_422_UNORM+  , pattern VK_FORMAT_B16G16R16G16_422_UNORM+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM+  , pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM+  , pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO+  , pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES+  , pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION+  , pattern VK_IMAGE_CREATE_DISJOINT_BIT+  , pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+  , pattern VK_FORMAT_FEATURE_DISJOINT_BIT+  , pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT+  , pattern VK_IMAGE_ASPECT_PLANE_0_BIT+  , pattern VK_IMAGE_ASPECT_PLANE_1_BIT+  , pattern VK_IMAGE_ASPECT_PLANE_2_BIT+  , VkSamplerYcbcrConversion+  , vkCreateSamplerYcbcrConversion+  , vkDestroySamplerYcbcrConversion+  , VkSamplerYcbcrConversionInfo(..)+  , VkSamplerYcbcrConversionCreateInfo(..)+  , VkBindImagePlaneMemoryInfo(..)+  , VkImagePlaneMemoryRequirementsInfo(..)+  , VkPhysicalDeviceSamplerYcbcrConversionFeatures(..)+  , VkSamplerYcbcrConversionImageFormatProperties(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkObjectType(..)+  , VkStructureType(..)+  , VkFormat(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  , VkFormatFeatureFlagBits(..)+  , VkImageCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.ImageView+  ( VkComponentMapping(..)+  )+import Graphics.Vulkan.Core10.Sampler+  ( VkFilter(..)+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkImageAspectFlagBits(..)+  )+++-- ** VkSamplerYcbcrModelConversion++-- | VkSamplerYcbcrModelConversion - Color model component of a color space+newtype VkSamplerYcbcrModelConversion = VkSamplerYcbcrModelConversion Int32+  deriving (Eq, Ord, Storable)++instance Show VkSamplerYcbcrModelConversion where+  showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"+  showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"+  showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"+  showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"+  showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"+  showsPrec p (VkSamplerYcbcrModelConversion x) = showParen (p >= 11) (showString "VkSamplerYcbcrModelConversion " . showsPrec 11 x)++instance Read VkSamplerYcbcrModelConversion where+  readPrec = parens ( choose [ ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY",   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY)+                             , ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY", pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY)+                             , ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709",      pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709)+                             , ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601",      pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601)+                             , ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020",     pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSamplerYcbcrModelConversion")+                        v <- step readPrec+                        pure (VkSamplerYcbcrModelConversion v)+                        )+                    )++-- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = VkSamplerYcbcrModelConversion 0++-- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = VkSamplerYcbcrModelConversion 1++-- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = VkSamplerYcbcrModelConversion 2++-- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = VkSamplerYcbcrModelConversion 3++-- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = VkSamplerYcbcrModelConversion 4+-- ** VkSamplerYcbcrRange++-- | VkSamplerYcbcrRange - Range of encoded values in a color space+newtype VkSamplerYcbcrRange = VkSamplerYcbcrRange Int32+  deriving (Eq, Ord, Storable)++instance Show VkSamplerYcbcrRange where+  showsPrec _ VK_SAMPLER_YCBCR_RANGE_ITU_FULL = showString "VK_SAMPLER_YCBCR_RANGE_ITU_FULL"+  showsPrec _ VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = showString "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"+  showsPrec p (VkSamplerYcbcrRange x) = showParen (p >= 11) (showString "VkSamplerYcbcrRange " . showsPrec 11 x)++instance Read VkSamplerYcbcrRange where+  readPrec = parens ( choose [ ("VK_SAMPLER_YCBCR_RANGE_ITU_FULL",   pure VK_SAMPLER_YCBCR_RANGE_ITU_FULL)+                             , ("VK_SAMPLER_YCBCR_RANGE_ITU_NARROW", pure VK_SAMPLER_YCBCR_RANGE_ITU_NARROW)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSamplerYcbcrRange")+                        v <- step readPrec+                        pure (VkSamplerYcbcrRange v)+                        )+                    )++-- No documentation found for Nested "VkSamplerYcbcrRange" "VK_SAMPLER_YCBCR_RANGE_ITU_FULL"+pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL :: VkSamplerYcbcrRange+pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL = VkSamplerYcbcrRange 0++-- No documentation found for Nested "VkSamplerYcbcrRange" "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"+pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW :: VkSamplerYcbcrRange+pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = VkSamplerYcbcrRange 1+-- ** VkChromaLocation++-- | VkChromaLocation - Position of downsampled chroma samples+newtype VkChromaLocation = VkChromaLocation Int32+  deriving (Eq, Ord, Storable)++instance Show VkChromaLocation where+  showsPrec _ VK_CHROMA_LOCATION_COSITED_EVEN = showString "VK_CHROMA_LOCATION_COSITED_EVEN"+  showsPrec _ VK_CHROMA_LOCATION_MIDPOINT = showString "VK_CHROMA_LOCATION_MIDPOINT"+  showsPrec p (VkChromaLocation x) = showParen (p >= 11) (showString "VkChromaLocation " . showsPrec 11 x)++instance Read VkChromaLocation where+  readPrec = parens ( choose [ ("VK_CHROMA_LOCATION_COSITED_EVEN", pure VK_CHROMA_LOCATION_COSITED_EVEN)+                             , ("VK_CHROMA_LOCATION_MIDPOINT",     pure VK_CHROMA_LOCATION_MIDPOINT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkChromaLocation")+                        v <- step readPrec+                        pure (VkChromaLocation v)+                        )+                    )++-- No documentation found for Nested "VkChromaLocation" "VK_CHROMA_LOCATION_COSITED_EVEN"+pattern VK_CHROMA_LOCATION_COSITED_EVEN :: VkChromaLocation+pattern VK_CHROMA_LOCATION_COSITED_EVEN = VkChromaLocation 0++-- No documentation found for Nested "VkChromaLocation" "VK_CHROMA_LOCATION_MIDPOINT"+pattern VK_CHROMA_LOCATION_MIDPOINT :: VkChromaLocation+pattern VK_CHROMA_LOCATION_MIDPOINT = VkChromaLocation 1+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G8B8G8R8_422_UNORM"+pattern VK_FORMAT_G8B8G8R8_422_UNORM :: VkFormat+pattern VK_FORMAT_G8B8G8R8_422_UNORM = VkFormat 1000156000+-- No documentation found for Nested "VkFormat" "VK_FORMAT_B8G8R8G8_422_UNORM"+pattern VK_FORMAT_B8G8R8G8_422_UNORM :: VkFormat+pattern VK_FORMAT_B8G8R8G8_422_UNORM = VkFormat 1000156001+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM"+pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM :: VkFormat+pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = VkFormat 1000156002+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM"+pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM :: VkFormat+pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = VkFormat 1000156003+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM"+pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM :: VkFormat+pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = VkFormat 1000156004+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM"+pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM :: VkFormat+pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = VkFormat 1000156005+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM"+pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM :: VkFormat+pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = VkFormat 1000156006+-- No documentation found for Nested "VkFormat" "VK_FORMAT_R10X6_UNORM_PACK16"+pattern VK_FORMAT_R10X6_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_R10X6_UNORM_PACK16 = VkFormat 1000156007+-- No documentation found for Nested "VkFormat" "VK_FORMAT_R10X6G10X6_UNORM_2PACK16"+pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16 :: VkFormat+pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = VkFormat 1000156008+-- No documentation found for Nested "VkFormat" "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16"+pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 :: VkFormat+pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = VkFormat 1000156009+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16"+pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 :: VkFormat+pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = VkFormat 1000156010+-- No documentation found for Nested "VkFormat" "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16"+pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 :: VkFormat+pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = VkFormat 1000156011+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16"+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = VkFormat 1000156012+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16"+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = VkFormat 1000156013+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16"+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = VkFormat 1000156014+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16"+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = VkFormat 1000156015+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16"+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = VkFormat 1000156016+-- No documentation found for Nested "VkFormat" "VK_FORMAT_R12X4_UNORM_PACK16"+pattern VK_FORMAT_R12X4_UNORM_PACK16 :: VkFormat+pattern VK_FORMAT_R12X4_UNORM_PACK16 = VkFormat 1000156017+-- No documentation found for Nested "VkFormat" "VK_FORMAT_R12X4G12X4_UNORM_2PACK16"+pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16 :: VkFormat+pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = VkFormat 1000156018+-- No documentation found for Nested "VkFormat" "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16"+pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 :: VkFormat+pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = VkFormat 1000156019+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16"+pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 :: VkFormat+pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = VkFormat 1000156020+-- No documentation found for Nested "VkFormat" "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16"+pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 :: VkFormat+pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = VkFormat 1000156021+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16"+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = VkFormat 1000156022+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16"+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = VkFormat 1000156023+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16"+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = VkFormat 1000156024+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16"+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = VkFormat 1000156025+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16"+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 :: VkFormat+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = VkFormat 1000156026+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G16B16G16R16_422_UNORM"+pattern VK_FORMAT_G16B16G16R16_422_UNORM :: VkFormat+pattern VK_FORMAT_G16B16G16R16_422_UNORM = VkFormat 1000156027+-- No documentation found for Nested "VkFormat" "VK_FORMAT_B16G16R16G16_422_UNORM"+pattern VK_FORMAT_B16G16R16G16_422_UNORM :: VkFormat+pattern VK_FORMAT_B16G16R16G16_422_UNORM = VkFormat 1000156028+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM"+pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM :: VkFormat+pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = VkFormat 1000156029+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM"+pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM :: VkFormat+pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = VkFormat 1000156030+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM"+pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM :: VkFormat+pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = VkFormat 1000156031+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM"+pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM :: VkFormat+pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = VkFormat 1000156032+-- No documentation found for Nested "VkFormat" "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM"+pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM :: VkFormat+pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = VkFormat 1000156033+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = VkStructureType 1000156000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = VkStructureType 1000156001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = VkStructureType 1000156002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"+pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = VkStructureType 1000156003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = VkStructureType 1000156004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = VkStructureType 1000156005+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"+pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION :: VkObjectType+pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = VkObjectType 1000156000+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_DISJOINT_BIT"+pattern VK_IMAGE_CREATE_DISJOINT_BIT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_DISJOINT_BIT = VkImageCreateFlagBits 0x00000200+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"+pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = VkFormatFeatureFlagBits 0x00020000+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = VkFormatFeatureFlagBits 0x00040000+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = VkFormatFeatureFlagBits 0x00080000+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = VkFormatFeatureFlagBits 0x00100000+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = VkFormatFeatureFlagBits 0x00200000+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_DISJOINT_BIT"+pattern VK_FORMAT_FEATURE_DISJOINT_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_DISJOINT_BIT = VkFormatFeatureFlagBits 0x00400000+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"+pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = VkFormatFeatureFlagBits 0x00800000+-- No documentation found for Nested "VkImageAspectFlagBits" "VK_IMAGE_ASPECT_PLANE_0_BIT"+pattern VK_IMAGE_ASPECT_PLANE_0_BIT :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_PLANE_0_BIT = VkImageAspectFlagBits 0x00000010+-- No documentation found for Nested "VkImageAspectFlagBits" "VK_IMAGE_ASPECT_PLANE_1_BIT"+pattern VK_IMAGE_ASPECT_PLANE_1_BIT :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_PLANE_1_BIT = VkImageAspectFlagBits 0x00000020+-- No documentation found for Nested "VkImageAspectFlagBits" "VK_IMAGE_ASPECT_PLANE_2_BIT"+pattern VK_IMAGE_ASPECT_PLANE_2_BIT :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_PLANE_2_BIT = VkImageAspectFlagBits 0x00000040+-- | Dummy data to tag the 'Ptr' with+data VkSamplerYcbcrConversion_T+-- | VkSamplerYcbcrConversion - NO SHORT DESCRIPTION PROVIDED+type VkSamplerYcbcrConversion = Ptr VkSamplerYcbcrConversion_T+-- | vkCreateSamplerYcbcrConversion - Create a new Ycbcr conversion+foreign import ccall "vkCreateSamplerYcbcrConversion" vkCreateSamplerYcbcrConversion :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerYcbcrConversionCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr VkSamplerYcbcrConversion) -> IO VkResult+-- | vkDestroySamplerYcbcrConversion - Destroy a created Y’CbCr conversion+foreign import ccall "vkDestroySamplerYcbcrConversion" vkDestroySamplerYcbcrConversion :: ("device" ::: VkDevice) -> ("ycbcrConversion" ::: VkSamplerYcbcrConversion) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | VkSamplerYcbcrConversionInfo - Structure specifying Y’CbCr conversion to+-- a sampler or image view+data VkSamplerYcbcrConversionInfo = VkSamplerYcbcrConversionInfo+  { -- No documentation found for Nested "VkSamplerYcbcrConversionInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSamplerYcbcrConversionInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSamplerYcbcrConversionInfo" "vkConversion"+  vkConversion :: VkSamplerYcbcrConversion+  }+  deriving (Eq, Show)++instance Storable VkSamplerYcbcrConversionInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSamplerYcbcrConversionInfo <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSamplerYcbcrConversionInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSamplerYcbcrConversionInfo))+                *> poke (ptr `plusPtr` 16) (vkConversion (poked :: VkSamplerYcbcrConversionInfo))+-- | VkSamplerYcbcrConversionCreateInfo - Structure specifying the parameters+-- of the newly created conversion+data VkSamplerYcbcrConversionCreateInfo = VkSamplerYcbcrConversionCreateInfo+  { -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkYcbcrModel"+  vkYcbcrModel :: VkSamplerYcbcrModelConversion+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkYcbcrRange"+  vkYcbcrRange :: VkSamplerYcbcrRange+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkComponents"+  vkComponents :: VkComponentMapping+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkXChromaOffset"+  vkXChromaOffset :: VkChromaLocation+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkYChromaOffset"+  vkYChromaOffset :: VkChromaLocation+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkChromaFilter"+  vkChromaFilter :: VkFilter+  , -- No documentation found for Nested "VkSamplerYcbcrConversionCreateInfo" "vkForceExplicitReconstruction"+  vkForceExplicitReconstruction :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkSamplerYcbcrConversionCreateInfo where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkSamplerYcbcrConversionCreateInfo <$> peek (ptr `plusPtr` 0)+                                                <*> peek (ptr `plusPtr` 8)+                                                <*> peek (ptr `plusPtr` 16)+                                                <*> peek (ptr `plusPtr` 20)+                                                <*> peek (ptr `plusPtr` 24)+                                                <*> peek (ptr `plusPtr` 28)+                                                <*> peek (ptr `plusPtr` 44)+                                                <*> peek (ptr `plusPtr` 48)+                                                <*> peek (ptr `plusPtr` 52)+                                                <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 16) (vkFormat (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 20) (vkYcbcrModel (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 24) (vkYcbcrRange (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 28) (vkComponents (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 44) (vkXChromaOffset (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 48) (vkYChromaOffset (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 52) (vkChromaFilter (poked :: VkSamplerYcbcrConversionCreateInfo))+                *> poke (ptr `plusPtr` 56) (vkForceExplicitReconstruction (poked :: VkSamplerYcbcrConversionCreateInfo))+-- | VkBindImagePlaneMemoryInfo - Structure specifying how to bind an image+-- plane to memory+data VkBindImagePlaneMemoryInfo = VkBindImagePlaneMemoryInfo+  { -- No documentation found for Nested "VkBindImagePlaneMemoryInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBindImagePlaneMemoryInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBindImagePlaneMemoryInfo" "vkPlaneAspect"+  vkPlaneAspect :: VkImageAspectFlagBits+  }+  deriving (Eq, Show)++instance Storable VkBindImagePlaneMemoryInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkBindImagePlaneMemoryInfo <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindImagePlaneMemoryInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindImagePlaneMemoryInfo))+                *> poke (ptr `plusPtr` 16) (vkPlaneAspect (poked :: VkBindImagePlaneMemoryInfo))+-- | VkImagePlaneMemoryRequirementsInfo - Structure specifying image plane+-- for memory requirements+data VkImagePlaneMemoryRequirementsInfo = VkImagePlaneMemoryRequirementsInfo+  { -- No documentation found for Nested "VkImagePlaneMemoryRequirementsInfo" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImagePlaneMemoryRequirementsInfo" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImagePlaneMemoryRequirementsInfo" "vkPlaneAspect"+  vkPlaneAspect :: VkImageAspectFlagBits+  }+  deriving (Eq, Show)++instance Storable VkImagePlaneMemoryRequirementsInfo where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkImagePlaneMemoryRequirementsInfo <$> peek (ptr `plusPtr` 0)+                                                <*> peek (ptr `plusPtr` 8)+                                                <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImagePlaneMemoryRequirementsInfo))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImagePlaneMemoryRequirementsInfo))+                *> poke (ptr `plusPtr` 16) (vkPlaneAspect (poked :: VkImagePlaneMemoryRequirementsInfo))+-- | VkPhysicalDeviceSamplerYcbcrConversionFeatures - Structure describing+-- Y’CbCr conversion features that can be supported by an implementation+data VkPhysicalDeviceSamplerYcbcrConversionFeatures = VkPhysicalDeviceSamplerYcbcrConversionFeatures+  { -- No documentation found for Nested "VkPhysicalDeviceSamplerYcbcrConversionFeatures" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceSamplerYcbcrConversionFeatures" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceSamplerYcbcrConversionFeatures" "vkSamplerYcbcrConversion"+  vkSamplerYcbcrConversion :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceSamplerYcbcrConversionFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceSamplerYcbcrConversionFeatures <$> peek (ptr `plusPtr` 0)+                                                            <*> peek (ptr `plusPtr` 8)+                                                            <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceSamplerYcbcrConversionFeatures))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceSamplerYcbcrConversionFeatures))+                *> poke (ptr `plusPtr` 16) (vkSamplerYcbcrConversion (poked :: VkPhysicalDeviceSamplerYcbcrConversionFeatures))+-- | VkSamplerYcbcrConversionImageFormatProperties - Structure specifying+-- combined image sampler descriptor count for multi-planar images+data VkSamplerYcbcrConversionImageFormatProperties = VkSamplerYcbcrConversionImageFormatProperties+  { -- No documentation found for Nested "VkSamplerYcbcrConversionImageFormatProperties" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSamplerYcbcrConversionImageFormatProperties" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSamplerYcbcrConversionImageFormatProperties" "vkCombinedImageSamplerDescriptorCount"+  vkCombinedImageSamplerDescriptorCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkSamplerYcbcrConversionImageFormatProperties where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSamplerYcbcrConversionImageFormatProperties <$> peek (ptr `plusPtr` 0)+                                                           <*> peek (ptr `plusPtr` 8)+                                                           <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSamplerYcbcrConversionImageFormatProperties))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSamplerYcbcrConversionImageFormatProperties))+                *> poke (ptr `plusPtr` 16) (vkCombinedImageSamplerDescriptorCount (poked :: VkSamplerYcbcrConversionImageFormatProperties))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_shader_draw_parameters.hs view
@@ -0,0 +1,69 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES+  , VkPhysicalDeviceShaderDrawParameterFeatures(..)+  ) where++import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VkStructureType 1000063000+-- | VkPhysicalDeviceShaderDrawParameterFeatures - Structure describing+-- shader draw parameter features that can be supported by an+-- implementation+--+-- = Description+-- #_description#+--+-- If the @VkPhysicalDeviceShaderDrawParameterFeatures@ structure is+-- included in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2',+-- it is filled with a value indicating whether the feature is supported.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceShaderDrawParameterFeatures = VkPhysicalDeviceShaderDrawParameterFeatures+  { -- No documentation found for Nested "VkPhysicalDeviceShaderDrawParameterFeatures" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceShaderDrawParameterFeatures" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceShaderDrawParameterFeatures" "vkShaderDrawParameters"+  vkShaderDrawParameters :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceShaderDrawParameterFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceShaderDrawParameterFeatures <$> peek (ptr `plusPtr` 0)+                                                         <*> peek (ptr `plusPtr` 8)+                                                         <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceShaderDrawParameterFeatures))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceShaderDrawParameterFeatures))+                *> poke (ptr `plusPtr` 16) (vkShaderDrawParameters (poked :: VkPhysicalDeviceShaderDrawParameterFeatures))
+ src/Graphics/Vulkan/Core11/Promoted_from_VK_KHR_variable_pointers.hs view
@@ -0,0 +1,54 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES+  , VkPhysicalDeviceVariablePointerFeatures(..)+  ) where++import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VkStructureType 1000120000+-- | VkPhysicalDeviceVariablePointerFeatures - Structure describing variable+-- pointers features that can be supported by an implementation+data VkPhysicalDeviceVariablePointerFeatures = VkPhysicalDeviceVariablePointerFeatures+  { -- No documentation found for Nested "VkPhysicalDeviceVariablePointerFeatures" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceVariablePointerFeatures" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceVariablePointerFeatures" "vkVariablePointersStorageBuffer"+  vkVariablePointersStorageBuffer :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceVariablePointerFeatures" "vkVariablePointers"+  vkVariablePointers :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceVariablePointerFeatures where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceVariablePointerFeatures <$> peek (ptr `plusPtr` 0)+                                                     <*> peek (ptr `plusPtr` 8)+                                                     <*> peek (ptr `plusPtr` 16)+                                                     <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceVariablePointerFeatures))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceVariablePointerFeatures))+                *> poke (ptr `plusPtr` 16) (vkVariablePointersStorageBuffer (poked :: VkPhysicalDeviceVariablePointerFeatures))+                *> poke (ptr `plusPtr` 20) (vkVariablePointers (poked :: VkPhysicalDeviceVariablePointerFeatures))
− src/Graphics/Vulkan/DescriptorSet.hs
@@ -1,452 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.DescriptorSet where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Graphics.Vulkan.Buffer( VkBuffer(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Shader( VkShaderStageFlagBits(..)-                             , VkShaderStageFlags(..)-                             )-import Graphics.Vulkan.Sampler( VkSampler(..)-                              )-import Graphics.Vulkan.Image( VkImageLayout(..)-                            )-import Graphics.Vulkan.ImageView( VkImageView(..)-                                )-import Graphics.Vulkan.BufferView( VkBufferView(..)-                                 )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkDeviceSize(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---- ** vkUpdateDescriptorSets-foreign import ccall "vkUpdateDescriptorSets" vkUpdateDescriptorSets ::-  VkDevice ->-  Word32 ->-    Ptr VkWriteDescriptorSet ->-      Word32 -> Ptr VkCopyDescriptorSet -> IO ()---- ** VkDescriptorPoolResetFlags--- | Opaque flag-newtype VkDescriptorPoolResetFlags = VkDescriptorPoolResetFlags VkFlags-  deriving (Eq, Storable)---- ** vkAllocateDescriptorSets-foreign import ccall "vkAllocateDescriptorSets" vkAllocateDescriptorSets ::-  VkDevice ->-  Ptr VkDescriptorSetAllocateInfo ->-    Ptr VkDescriptorSet -> IO VkResult---data VkDescriptorBufferInfo =-  VkDescriptorBufferInfo{ vkBuffer :: VkBuffer -                        , vkOffset :: VkDeviceSize -                        , vkRange :: VkDeviceSize -                        }-  deriving (Eq)--instance Storable VkDescriptorBufferInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkDescriptorBufferInfo <$> peek (ptr `plusPtr` 0)-                                    <*> peek (ptr `plusPtr` 8)-                                    <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkBuffer (poked :: VkDescriptorBufferInfo))-                *> poke (ptr `plusPtr` 8) (vkOffset (poked :: VkDescriptorBufferInfo))-                *> poke (ptr `plusPtr` 16) (vkRange (poked :: VkDescriptorBufferInfo))----data VkDescriptorImageInfo =-  VkDescriptorImageInfo{ vkSampler :: VkSampler -                       , vkImageView :: VkImageView -                       , vkImageLayout :: VkImageLayout -                       }-  deriving (Eq)--instance Storable VkDescriptorImageInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkDescriptorImageInfo <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 8)-                                   <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSampler (poked :: VkDescriptorImageInfo))-                *> poke (ptr `plusPtr` 8) (vkImageView (poked :: VkDescriptorImageInfo))-                *> poke (ptr `plusPtr` 16) (vkImageLayout (poked :: VkDescriptorImageInfo))----data VkCopyDescriptorSet =-  VkCopyDescriptorSet{ vkSType :: VkStructureType -                     , vkPNext :: Ptr Void -                     , vkSrcSet :: VkDescriptorSet -                     , vkSrcBinding :: Word32 -                     , vkSrcArrayElement :: Word32 -                     , vkDstSet :: VkDescriptorSet -                     , vkDstBinding :: Word32 -                     , vkDstArrayElement :: Word32 -                     , vkDescriptorCount :: Word32 -                     }-  deriving (Eq)--instance Storable VkCopyDescriptorSet where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek ptr = VkCopyDescriptorSet <$> peek (ptr `plusPtr` 0)-                                 <*> peek (ptr `plusPtr` 8)-                                 <*> peek (ptr `plusPtr` 16)-                                 <*> peek (ptr `plusPtr` 24)-                                 <*> peek (ptr `plusPtr` 28)-                                 <*> peek (ptr `plusPtr` 32)-                                 <*> peek (ptr `plusPtr` 40)-                                 <*> peek (ptr `plusPtr` 44)-                                 <*> peek (ptr `plusPtr` 48)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCopyDescriptorSet))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCopyDescriptorSet))-                *> poke (ptr `plusPtr` 16) (vkSrcSet (poked :: VkCopyDescriptorSet))-                *> poke (ptr `plusPtr` 24) (vkSrcBinding (poked :: VkCopyDescriptorSet))-                *> poke (ptr `plusPtr` 28) (vkSrcArrayElement (poked :: VkCopyDescriptorSet))-                *> poke (ptr `plusPtr` 32) (vkDstSet (poked :: VkCopyDescriptorSet))-                *> poke (ptr `plusPtr` 40) (vkDstBinding (poked :: VkCopyDescriptorSet))-                *> poke (ptr `plusPtr` 44) (vkDstArrayElement (poked :: VkCopyDescriptorSet))-                *> poke (ptr `plusPtr` 48) (vkDescriptorCount (poked :: VkCopyDescriptorSet))----- ** vkDestroyDescriptorPool-foreign import ccall "vkDestroyDescriptorPool" vkDestroyDescriptorPool ::-  VkDevice -> VkDescriptorPool -> Ptr VkAllocationCallbacks -> IO ()---- ** vkCreateDescriptorSetLayout-foreign import ccall "vkCreateDescriptorSetLayout" vkCreateDescriptorSetLayout ::-  VkDevice ->-  Ptr VkDescriptorSetLayoutCreateInfo ->-    Ptr VkAllocationCallbacks ->-      Ptr VkDescriptorSetLayout -> IO VkResult--newtype VkDescriptorPool = VkDescriptorPool Word64-  deriving (Eq, Storable)---- ** vkResetDescriptorPool-foreign import ccall "vkResetDescriptorPool" vkResetDescriptorPool ::-  VkDevice ->-  VkDescriptorPool -> VkDescriptorPoolResetFlags -> IO VkResult--newtype VkDescriptorSetLayout = VkDescriptorSetLayout Word64-  deriving (Eq, Storable)---- ** vkFreeDescriptorSets-foreign import ccall "vkFreeDescriptorSets" vkFreeDescriptorSets ::-  VkDevice ->-  VkDescriptorPool -> Word32 -> Ptr VkDescriptorSet -> IO VkResult---data VkDescriptorPoolCreateInfo =-  VkDescriptorPoolCreateInfo{ vkSType :: VkStructureType -                            , vkPNext :: Ptr Void -                            , vkFlags :: VkDescriptorPoolCreateFlags -                            , vkMaxSets :: Word32 -                            , vkPoolSizeCount :: Word32 -                            , vkPPoolSizes :: Ptr VkDescriptorPoolSize -                            }-  deriving (Eq)--instance Storable VkDescriptorPoolCreateInfo where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkDescriptorPoolCreateInfo <$> peek (ptr `plusPtr` 0)-                                        <*> peek (ptr `plusPtr` 8)-                                        <*> peek (ptr `plusPtr` 16)-                                        <*> peek (ptr `plusPtr` 20)-                                        <*> peek (ptr `plusPtr` 24)-                                        <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorPoolCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorPoolCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDescriptorPoolCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkMaxSets (poked :: VkDescriptorPoolCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPoolSizeCount (poked :: VkDescriptorPoolCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPPoolSizes (poked :: VkDescriptorPoolCreateInfo))----- ** VkDescriptorSetLayoutCreateFlags--- | Opaque flag-newtype VkDescriptorSetLayoutCreateFlags = VkDescriptorSetLayoutCreateFlags VkFlags-  deriving (Eq, Storable)---data VkDescriptorSetLayoutCreateInfo =-  VkDescriptorSetLayoutCreateInfo{ vkSType :: VkStructureType -                                 , vkPNext :: Ptr Void -                                 , vkFlags :: VkDescriptorSetLayoutCreateFlags -                                 , vkBindingCount :: Word32 -                                 , vkPBindings :: Ptr VkDescriptorSetLayoutBinding -                                 }-  deriving (Eq)--instance Storable VkDescriptorSetLayoutCreateInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkDescriptorSetLayoutCreateInfo <$> peek (ptr `plusPtr` 0)-                                             <*> peek (ptr `plusPtr` 8)-                                             <*> peek (ptr `plusPtr` 16)-                                             <*> peek (ptr `plusPtr` 20)-                                             <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetLayoutCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetLayoutCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDescriptorSetLayoutCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkBindingCount (poked :: VkDescriptorSetLayoutCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPBindings (poked :: VkDescriptorSetLayoutCreateInfo))----- ** VkDescriptorPoolCreateFlags--newtype VkDescriptorPoolCreateFlagBits = VkDescriptorPoolCreateFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkDescriptorPoolCreateFlagBits-type VkDescriptorPoolCreateFlags = VkDescriptorPoolCreateFlagBits--instance Show VkDescriptorPoolCreateFlagBits where-  showsPrec _ VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = showString "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"-  -  showsPrec p (VkDescriptorPoolCreateFlagBits x) = showParen (p >= 11) (showString "VkDescriptorPoolCreateFlagBits " . showsPrec 11 x)--instance Read VkDescriptorPoolCreateFlagBits where-  readPrec = parens ( choose [ ("VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT", pure VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkDescriptorPoolCreateFlagBits")-                        v <- step readPrec-                        pure (VkDescriptorPoolCreateFlagBits v)-                        )-                    )---- | Descriptor sets may be freed individually-pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = VkDescriptorPoolCreateFlagBits 0x1----data VkDescriptorPoolSize =-  VkDescriptorPoolSize{ vkType :: VkDescriptorType -                      , vkDescriptorCount :: Word32 -                      }-  deriving (Eq)--instance Storable VkDescriptorPoolSize where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek ptr = VkDescriptorPoolSize <$> peek (ptr `plusPtr` 0)-                                  <*> peek (ptr `plusPtr` 4)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkDescriptorPoolSize))-                *> poke (ptr `plusPtr` 4) (vkDescriptorCount (poked :: VkDescriptorPoolSize))---newtype VkDescriptorSet = VkDescriptorSet Word64-  deriving (Eq, Storable)---data VkWriteDescriptorSet =-  VkWriteDescriptorSet{ vkSType :: VkStructureType -                      , vkPNext :: Ptr Void -                      , vkDstSet :: VkDescriptorSet -                      , vkDstBinding :: Word32 -                      , vkDstArrayElement :: Word32 -                      , vkDescriptorCount :: Word32 -                      , vkDescriptorType :: VkDescriptorType -                      , vkPImageInfo :: Ptr VkDescriptorImageInfo -                      , vkPBufferInfo :: Ptr VkDescriptorBufferInfo -                      , vkPTexelBufferView :: Ptr VkBufferView -                      }-  deriving (Eq)--instance Storable VkWriteDescriptorSet where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkWriteDescriptorSet <$> peek (ptr `plusPtr` 0)-                                  <*> peek (ptr `plusPtr` 8)-                                  <*> peek (ptr `plusPtr` 16)-                                  <*> peek (ptr `plusPtr` 24)-                                  <*> peek (ptr `plusPtr` 28)-                                  <*> peek (ptr `plusPtr` 32)-                                  <*> peek (ptr `plusPtr` 36)-                                  <*> peek (ptr `plusPtr` 40)-                                  <*> peek (ptr `plusPtr` 48)-                                  <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 16) (vkDstSet (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 24) (vkDstBinding (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 28) (vkDstArrayElement (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 32) (vkDescriptorCount (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 36) (vkDescriptorType (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 40) (vkPImageInfo (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 48) (vkPBufferInfo (poked :: VkWriteDescriptorSet))-                *> poke (ptr `plusPtr` 56) (vkPTexelBufferView (poked :: VkWriteDescriptorSet))----- ** vkCreateDescriptorPool-foreign import ccall "vkCreateDescriptorPool" vkCreateDescriptorPool ::-  VkDevice ->-  Ptr VkDescriptorPoolCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkDescriptorPool -> IO VkResult---- ** vkDestroyDescriptorSetLayout-foreign import ccall "vkDestroyDescriptorSetLayout" vkDestroyDescriptorSetLayout ::-  VkDevice ->-  VkDescriptorSetLayout -> Ptr VkAllocationCallbacks -> IO ()---data VkDescriptorSetLayoutBinding =-  VkDescriptorSetLayoutBinding{ vkBinding :: Word32 -                              , vkDescriptorType :: VkDescriptorType -                              , vkDescriptorCount :: Word32 -                              , vkStageFlags :: VkShaderStageFlags -                              , vkPImmutableSamplers :: Ptr VkSampler -                              }-  deriving (Eq)--instance Storable VkDescriptorSetLayoutBinding where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkDescriptorSetLayoutBinding <$> peek (ptr `plusPtr` 0)-                                          <*> peek (ptr `plusPtr` 4)-                                          <*> peek (ptr `plusPtr` 8)-                                          <*> peek (ptr `plusPtr` 12)-                                          <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkBinding (poked :: VkDescriptorSetLayoutBinding))-                *> poke (ptr `plusPtr` 4) (vkDescriptorType (poked :: VkDescriptorSetLayoutBinding))-                *> poke (ptr `plusPtr` 8) (vkDescriptorCount (poked :: VkDescriptorSetLayoutBinding))-                *> poke (ptr `plusPtr` 12) (vkStageFlags (poked :: VkDescriptorSetLayoutBinding))-                *> poke (ptr `plusPtr` 16) (vkPImmutableSamplers (poked :: VkDescriptorSetLayoutBinding))----- ** VkDescriptorType--newtype VkDescriptorType = VkDescriptorType Int32-  deriving (Eq, Storable)--instance Show VkDescriptorType where-  showsPrec _ VK_DESCRIPTOR_TYPE_SAMPLER = showString "VK_DESCRIPTOR_TYPE_SAMPLER"-  showsPrec _ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = showString "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"-  showsPrec _ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = showString "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"-  showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = showString "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"-  showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = showString "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"-  showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = showString "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"-  showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = showString "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"-  showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = showString "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"-  showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = showString "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"-  showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = showString "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"-  showsPrec _ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = showString "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"-  showsPrec p (VkDescriptorType x) = showParen (p >= 11) (showString "VkDescriptorType " . showsPrec 11 x)--instance Read VkDescriptorType where-  readPrec = parens ( choose [ ("VK_DESCRIPTOR_TYPE_SAMPLER", pure VK_DESCRIPTOR_TYPE_SAMPLER)-                             , ("VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER", pure VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)-                             , ("VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE", pure VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE)-                             , ("VK_DESCRIPTOR_TYPE_STORAGE_IMAGE", pure VK_DESCRIPTOR_TYPE_STORAGE_IMAGE)-                             , ("VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER", pure VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER)-                             , ("VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER", pure VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER)-                             , ("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER", pure VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER)-                             , ("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER", pure VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)-                             , ("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC", pure VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC)-                             , ("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", pure VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC)-                             , ("VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT", pure VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkDescriptorType")-                        v <- step readPrec-                        pure (VkDescriptorType v)-                        )-                    )---pattern VK_DESCRIPTOR_TYPE_SAMPLER = VkDescriptorType 0--pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = VkDescriptorType 1--pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = VkDescriptorType 2--pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = VkDescriptorType 3--pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = VkDescriptorType 4--pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = VkDescriptorType 5--pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = VkDescriptorType 6--pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = VkDescriptorType 7--pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = VkDescriptorType 8--pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = VkDescriptorType 9--pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = VkDescriptorType 10---data VkDescriptorSetAllocateInfo =-  VkDescriptorSetAllocateInfo{ vkSType :: VkStructureType -                             , vkPNext :: Ptr Void -                             , vkDescriptorPool :: VkDescriptorPool -                             , vkDescriptorSetCount :: Word32 -                             , vkPSetLayouts :: Ptr VkDescriptorSetLayout -                             }-  deriving (Eq)--instance Storable VkDescriptorSetAllocateInfo where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkDescriptorSetAllocateInfo <$> peek (ptr `plusPtr` 0)-                                         <*> peek (ptr `plusPtr` 8)-                                         <*> peek (ptr `plusPtr` 16)-                                         <*> peek (ptr `plusPtr` 24)-                                         <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetAllocateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetAllocateInfo))-                *> poke (ptr `plusPtr` 16) (vkDescriptorPool (poked :: VkDescriptorSetAllocateInfo))-                *> poke (ptr `plusPtr` 24) (vkDescriptorSetCount (poked :: VkDescriptorSetAllocateInfo))-                *> poke (ptr `plusPtr` 32) (vkPSetLayouts (poked :: VkDescriptorSetAllocateInfo))--
− src/Graphics/Vulkan/Device.hs
@@ -1,303 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Device where--import Data.Word( Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CFloat-                      , CFloat(..)-                      , CChar-                      , CSize(..)-                      )---- ** vkCreateDevice-foreign import ccall "vkCreateDevice" vkCreateDevice ::-  VkPhysicalDevice ->-  Ptr VkDeviceCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkDevice -> IO VkResult---data VkPhysicalDeviceFeatures =-  VkPhysicalDeviceFeatures{ vkRobustBufferAccess :: VkBool32 -                          , vkFullDrawIndexUint32 :: VkBool32 -                          , vkImageCubeArray :: VkBool32 -                          , vkIndependentBlend :: VkBool32 -                          , vkGeometryShader :: VkBool32 -                          , vkTessellationShader :: VkBool32 -                          , vkSampleRateShading :: VkBool32 -                          , vkDualSrcBlend :: VkBool32 -                          , vkLogicOp :: VkBool32 -                          , vkMultiDrawIndirect :: VkBool32 -                          , vkDrawIndirectFirstInstance :: VkBool32 -                          , vkDepthClamp :: VkBool32 -                          , vkDepthBiasClamp :: VkBool32 -                          , vkFillModeNonSolid :: VkBool32 -                          , vkDepthBounds :: VkBool32 -                          , vkWideLines :: VkBool32 -                          , vkLargePoints :: VkBool32 -                          , vkAlphaToOne :: VkBool32 -                          , vkMultiViewport :: VkBool32 -                          , vkSamplerAnisotropy :: VkBool32 -                          , vkTextureCompressionETC2 :: VkBool32 -                          , vkTextureCompressionASTC_LDR :: VkBool32 -                          , vkTextureCompressionBC :: VkBool32 -                          , vkOcclusionQueryPrecise :: VkBool32 -                          , vkPipelineStatisticsQuery :: VkBool32 -                          , vkVertexPipelineStoresAndAtomics :: VkBool32 -                          , vkFragmentStoresAndAtomics :: VkBool32 -                          , vkShaderTessellationAndGeometryPointSize :: VkBool32 -                          , vkShaderImageGatherExtended :: VkBool32 -                          , vkShaderStorageImageExtendedFormats :: VkBool32 -                          , vkShaderStorageImageMultisample :: VkBool32 -                          , vkShaderStorageImageReadWithoutFormat :: VkBool32 -                          , vkShaderStorageImageWriteWithoutFormat :: VkBool32 -                          , vkShaderUniformBufferArrayDynamicIndexing :: VkBool32 -                          , vkShaderSampledImageArrayDynamicIndexing :: VkBool32 -                          , vkShaderStorageBufferArrayDynamicIndexing :: VkBool32 -                          , vkShaderStorageImageArrayDynamicIndexing :: VkBool32 -                          , vkShaderClipDistance :: VkBool32 -                          , vkShaderCullDistance :: VkBool32 -                          , vkShaderFloat64 :: VkBool32 -                          , vkShaderInt64 :: VkBool32 -                          , vkShaderInt16 :: VkBool32 -                          , vkShaderResourceResidency :: VkBool32 -                          , vkShaderResourceMinLod :: VkBool32 -                          , vkSparseBinding :: VkBool32 -                          , vkSparseResidencyBuffer :: VkBool32 -                          , vkSparseResidencyImage2D :: VkBool32 -                          , vkSparseResidencyImage3D :: VkBool32 -                          , vkSparseResidency2Samples :: VkBool32 -                          , vkSparseResidency4Samples :: VkBool32 -                          , vkSparseResidency8Samples :: VkBool32 -                          , vkSparseResidency16Samples :: VkBool32 -                          , vkSparseResidencyAliased :: VkBool32 -                          , vkVariableMultisampleRate :: VkBool32 -                          , vkInheritedQueries :: VkBool32 -                          }-  deriving (Eq)--instance Storable VkPhysicalDeviceFeatures where-  sizeOf ~_ = 220-  alignment ~_ = 4-  peek ptr = VkPhysicalDeviceFeatures <$> peek (ptr `plusPtr` 0)-                                      <*> peek (ptr `plusPtr` 4)-                                      <*> peek (ptr `plusPtr` 8)-                                      <*> peek (ptr `plusPtr` 12)-                                      <*> peek (ptr `plusPtr` 16)-                                      <*> peek (ptr `plusPtr` 20)-                                      <*> peek (ptr `plusPtr` 24)-                                      <*> peek (ptr `plusPtr` 28)-                                      <*> peek (ptr `plusPtr` 32)-                                      <*> peek (ptr `plusPtr` 36)-                                      <*> peek (ptr `plusPtr` 40)-                                      <*> peek (ptr `plusPtr` 44)-                                      <*> peek (ptr `plusPtr` 48)-                                      <*> peek (ptr `plusPtr` 52)-                                      <*> peek (ptr `plusPtr` 56)-                                      <*> peek (ptr `plusPtr` 60)-                                      <*> peek (ptr `plusPtr` 64)-                                      <*> peek (ptr `plusPtr` 68)-                                      <*> peek (ptr `plusPtr` 72)-                                      <*> peek (ptr `plusPtr` 76)-                                      <*> peek (ptr `plusPtr` 80)-                                      <*> peek (ptr `plusPtr` 84)-                                      <*> peek (ptr `plusPtr` 88)-                                      <*> peek (ptr `plusPtr` 92)-                                      <*> peek (ptr `plusPtr` 96)-                                      <*> peek (ptr `plusPtr` 100)-                                      <*> peek (ptr `plusPtr` 104)-                                      <*> peek (ptr `plusPtr` 108)-                                      <*> peek (ptr `plusPtr` 112)-                                      <*> peek (ptr `plusPtr` 116)-                                      <*> peek (ptr `plusPtr` 120)-                                      <*> peek (ptr `plusPtr` 124)-                                      <*> peek (ptr `plusPtr` 128)-                                      <*> peek (ptr `plusPtr` 132)-                                      <*> peek (ptr `plusPtr` 136)-                                      <*> peek (ptr `plusPtr` 140)-                                      <*> peek (ptr `plusPtr` 144)-                                      <*> peek (ptr `plusPtr` 148)-                                      <*> peek (ptr `plusPtr` 152)-                                      <*> peek (ptr `plusPtr` 156)-                                      <*> peek (ptr `plusPtr` 160)-                                      <*> peek (ptr `plusPtr` 164)-                                      <*> peek (ptr `plusPtr` 168)-                                      <*> peek (ptr `plusPtr` 172)-                                      <*> peek (ptr `plusPtr` 176)-                                      <*> peek (ptr `plusPtr` 180)-                                      <*> peek (ptr `plusPtr` 184)-                                      <*> peek (ptr `plusPtr` 188)-                                      <*> peek (ptr `plusPtr` 192)-                                      <*> peek (ptr `plusPtr` 196)-                                      <*> peek (ptr `plusPtr` 200)-                                      <*> peek (ptr `plusPtr` 204)-                                      <*> peek (ptr `plusPtr` 208)-                                      <*> peek (ptr `plusPtr` 212)-                                      <*> peek (ptr `plusPtr` 216)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkRobustBufferAccess (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 4) (vkFullDrawIndexUint32 (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 8) (vkImageCubeArray (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 12) (vkIndependentBlend (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 16) (vkGeometryShader (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 20) (vkTessellationShader (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 24) (vkSampleRateShading (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 28) (vkDualSrcBlend (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 32) (vkLogicOp (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 36) (vkMultiDrawIndirect (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 40) (vkDrawIndirectFirstInstance (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 44) (vkDepthClamp (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 48) (vkDepthBiasClamp (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 52) (vkFillModeNonSolid (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 56) (vkDepthBounds (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 60) (vkWideLines (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 64) (vkLargePoints (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 68) (vkAlphaToOne (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 72) (vkMultiViewport (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 76) (vkSamplerAnisotropy (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 80) (vkTextureCompressionETC2 (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 84) (vkTextureCompressionASTC_LDR (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 88) (vkTextureCompressionBC (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 92) (vkOcclusionQueryPrecise (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 96) (vkPipelineStatisticsQuery (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 100) (vkVertexPipelineStoresAndAtomics (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 104) (vkFragmentStoresAndAtomics (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 108) (vkShaderTessellationAndGeometryPointSize (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 112) (vkShaderImageGatherExtended (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 116) (vkShaderStorageImageExtendedFormats (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 120) (vkShaderStorageImageMultisample (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 124) (vkShaderStorageImageReadWithoutFormat (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 128) (vkShaderStorageImageWriteWithoutFormat (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 132) (vkShaderUniformBufferArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 136) (vkShaderSampledImageArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 140) (vkShaderStorageBufferArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 144) (vkShaderStorageImageArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 148) (vkShaderClipDistance (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 152) (vkShaderCullDistance (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 156) (vkShaderFloat64 (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 160) (vkShaderInt64 (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 164) (vkShaderInt16 (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 168) (vkShaderResourceResidency (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 172) (vkShaderResourceMinLod (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 176) (vkSparseBinding (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 180) (vkSparseResidencyBuffer (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 184) (vkSparseResidencyImage2D (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 188) (vkSparseResidencyImage3D (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 192) (vkSparseResidency2Samples (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 196) (vkSparseResidency4Samples (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 200) (vkSparseResidency8Samples (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 204) (vkSparseResidency16Samples (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 208) (vkSparseResidencyAliased (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 212) (vkVariableMultisampleRate (poked :: VkPhysicalDeviceFeatures))-                *> poke (ptr `plusPtr` 216) (vkInheritedQueries (poked :: VkPhysicalDeviceFeatures))----- ** VkDeviceCreateFlags--- | Opaque flag-newtype VkDeviceCreateFlags = VkDeviceCreateFlags VkFlags-  deriving (Eq, Storable)---data VkDeviceQueueCreateInfo =-  VkDeviceQueueCreateInfo{ vkSType :: VkStructureType -                         , vkPNext :: Ptr Void -                         , vkFlags :: VkDeviceQueueCreateFlags -                         , vkQueueFamilyIndex :: Word32 -                         , vkQueueCount :: Word32 -                         , vkPQueuePriorities :: Ptr CFloat -                         }-  deriving (Eq)--instance Storable VkDeviceQueueCreateInfo where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkDeviceQueueCreateInfo <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 8)-                                     <*> peek (ptr `plusPtr` 16)-                                     <*> peek (ptr `plusPtr` 20)-                                     <*> peek (ptr `plusPtr` 24)-                                     <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceQueueCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceQueueCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDeviceQueueCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkQueueFamilyIndex (poked :: VkDeviceQueueCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkQueueCount (poked :: VkDeviceQueueCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPQueuePriorities (poked :: VkDeviceQueueCreateInfo))----- ** VkDeviceQueueCreateFlags--- | Opaque flag-newtype VkDeviceQueueCreateFlags = VkDeviceQueueCreateFlags VkFlags-  deriving (Eq, Storable)---- ** vkDestroyDevice-foreign import ccall "vkDestroyDevice" vkDestroyDevice ::-  VkDevice -> Ptr VkAllocationCallbacks -> IO ()--data VkPhysicalDevice_T-type VkPhysicalDevice = Ptr VkPhysicalDevice_T--data VkDevice_T-type VkDevice = Ptr VkDevice_T---data VkDeviceCreateInfo =-  VkDeviceCreateInfo{ vkSType :: VkStructureType -                    , vkPNext :: Ptr Void -                    , vkFlags :: VkDeviceCreateFlags -                    , vkQueueCreateInfoCount :: Word32 -                    , vkPQueueCreateInfos :: Ptr VkDeviceQueueCreateInfo -                    , vkEnabledLayerCount :: Word32 -                    , vkPpEnabledLayerNames :: Ptr (Ptr CChar) -                    , vkEnabledExtensionCount :: Word32 -                    , vkPpEnabledExtensionNames :: Ptr (Ptr CChar) -                    , vkPEnabledFeatures :: Ptr VkPhysicalDeviceFeatures -                    }-  deriving (Eq)--instance Storable VkDeviceCreateInfo where-  sizeOf ~_ = 72-  alignment ~_ = 8-  peek ptr = VkDeviceCreateInfo <$> peek (ptr `plusPtr` 0)-                                <*> peek (ptr `plusPtr` 8)-                                <*> peek (ptr `plusPtr` 16)-                                <*> peek (ptr `plusPtr` 20)-                                <*> peek (ptr `plusPtr` 24)-                                <*> peek (ptr `plusPtr` 32)-                                <*> peek (ptr `plusPtr` 40)-                                <*> peek (ptr `plusPtr` 48)-                                <*> peek (ptr `plusPtr` 56)-                                <*> peek (ptr `plusPtr` 64)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkQueueCreateInfoCount (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPQueueCreateInfos (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkEnabledLayerCount (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPpEnabledLayerNames (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkEnabledExtensionCount (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkPpEnabledExtensionNames (poked :: VkDeviceCreateInfo))-                *> poke (ptr `plusPtr` 64) (vkPEnabledFeatures (poked :: VkDeviceCreateInfo))--
− src/Graphics/Vulkan/Device.hs-boot
@@ -1,9 +0,0 @@--module Graphics.Vulkan.Device where--import Foreign.Ptr( Ptr-                  )--data VkDevice_T-type VkDevice = Ptr VkDevice_T-
− src/Graphics/Vulkan/DeviceInitialization.hs
@@ -1,939 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.DeviceInitialization where--import Data.Vector.Storable.Sized( Vector-                                 )-import Graphics.Vulkan.Device( VkPhysicalDeviceFeatures(..)-                             , VkPhysicalDevice(..)-                             , VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word8-                , Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , FunPtr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Graphics.Vulkan.Constants( VK_MAX_PHYSICAL_DEVICE_NAME_SIZE-                                , VK_MAX_MEMORY_HEAPS-                                , VK_UUID_SIZE-                                , VK_MAX_MEMORY_TYPES-                                )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Sampler( VkSampleCountFlagBits(..)-                              , VkSampleCountFlags(..)-                              )-import Graphics.Vulkan.Image( VkImageUsageFlags(..)-                            , VkImageType(..)-                            , VkImageUsageFlagBits(..)-                            , VkImageCreateFlags(..)-                            , VkImageTiling(..)-                            , VkImageCreateFlagBits(..)-                            )-import Graphics.Vulkan.Core( VkExtent3D(..)-                           , VkResult(..)-                           , VkDeviceSize(..)-                           , VkBool32(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize-                      , CFloat-                      , CFloat(..)-                      , CChar-                      , CSize(..)-                      )---- ** VkPhysicalDeviceType--newtype VkPhysicalDeviceType = VkPhysicalDeviceType Int32-  deriving (Eq, Storable)--instance Show VkPhysicalDeviceType where-  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_OTHER = showString "VK_PHYSICAL_DEVICE_TYPE_OTHER"-  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = showString "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU"-  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = showString "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU"-  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = showString "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU"-  showsPrec _ VK_PHYSICAL_DEVICE_TYPE_CPU = showString "VK_PHYSICAL_DEVICE_TYPE_CPU"-  showsPrec p (VkPhysicalDeviceType x) = showParen (p >= 11) (showString "VkPhysicalDeviceType " . showsPrec 11 x)--instance Read VkPhysicalDeviceType where-  readPrec = parens ( choose [ ("VK_PHYSICAL_DEVICE_TYPE_OTHER", pure VK_PHYSICAL_DEVICE_TYPE_OTHER)-                             , ("VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU", pure VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU)-                             , ("VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU", pure VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)-                             , ("VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU", pure VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU)-                             , ("VK_PHYSICAL_DEVICE_TYPE_CPU", pure VK_PHYSICAL_DEVICE_TYPE_CPU)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkPhysicalDeviceType")-                        v <- step readPrec-                        pure (VkPhysicalDeviceType v)-                        )-                    )---pattern VK_PHYSICAL_DEVICE_TYPE_OTHER = VkPhysicalDeviceType 0--pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = VkPhysicalDeviceType 1--pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = VkPhysicalDeviceType 2--pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = VkPhysicalDeviceType 3--pattern VK_PHYSICAL_DEVICE_TYPE_CPU = VkPhysicalDeviceType 4---data VkInstanceCreateInfo =-  VkInstanceCreateInfo{ vkSType :: VkStructureType -                      , vkPNext :: Ptr Void -                      , vkFlags :: VkInstanceCreateFlags -                      , vkPApplicationInfo :: Ptr VkApplicationInfo -                      , vkEnabledLayerCount :: Word32 -                      , vkPpEnabledLayerNames :: Ptr (Ptr CChar) -                      , vkEnabledExtensionCount :: Word32 -                      , vkPpEnabledExtensionNames :: Ptr (Ptr CChar) -                      }-  deriving (Eq)--instance Storable VkInstanceCreateInfo where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkInstanceCreateInfo <$> peek (ptr `plusPtr` 0)-                                  <*> peek (ptr `plusPtr` 8)-                                  <*> peek (ptr `plusPtr` 16)-                                  <*> peek (ptr `plusPtr` 24)-                                  <*> peek (ptr `plusPtr` 32)-                                  <*> peek (ptr `plusPtr` 40)-                                  <*> peek (ptr `plusPtr` 48)-                                  <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkInstanceCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkInstanceCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkInstanceCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPApplicationInfo (poked :: VkInstanceCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkEnabledLayerCount (poked :: VkInstanceCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPpEnabledLayerNames (poked :: VkInstanceCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkEnabledExtensionCount (poked :: VkInstanceCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkPpEnabledExtensionNames (poked :: VkInstanceCreateInfo))----- ** vkGetPhysicalDeviceImageFormatProperties-foreign import ccall "vkGetPhysicalDeviceImageFormatProperties" vkGetPhysicalDeviceImageFormatProperties ::-  VkPhysicalDevice ->-  VkFormat ->-    VkImageType ->-      VkImageTiling ->-        VkImageUsageFlags ->-          VkImageCreateFlags -> Ptr VkImageFormatProperties -> IO VkResult--type PFN_vkVoidFunction = FunPtr (IO ())---data VkApplicationInfo =-  VkApplicationInfo{ vkSType :: VkStructureType -                   , vkPNext :: Ptr Void -                   , vkPApplicationName :: Ptr CChar -                   , vkApplicationVersion :: Word32 -                   , vkPEngineName :: Ptr CChar -                   , vkEngineVersion :: Word32 -                   , vkApiVersion :: Word32 -                   }-  deriving (Eq)--instance Storable VkApplicationInfo where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkApplicationInfo <$> peek (ptr `plusPtr` 0)-                               <*> peek (ptr `plusPtr` 8)-                               <*> peek (ptr `plusPtr` 16)-                               <*> peek (ptr `plusPtr` 24)-                               <*> peek (ptr `plusPtr` 32)-                               <*> peek (ptr `plusPtr` 40)-                               <*> peek (ptr `plusPtr` 44)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkApplicationInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkApplicationInfo))-                *> poke (ptr `plusPtr` 16) (vkPApplicationName (poked :: VkApplicationInfo))-                *> poke (ptr `plusPtr` 24) (vkApplicationVersion (poked :: VkApplicationInfo))-                *> poke (ptr `plusPtr` 32) (vkPEngineName (poked :: VkApplicationInfo))-                *> poke (ptr `plusPtr` 40) (vkEngineVersion (poked :: VkApplicationInfo))-                *> poke (ptr `plusPtr` 44) (vkApiVersion (poked :: VkApplicationInfo))----data VkPhysicalDeviceLimits =-  VkPhysicalDeviceLimits{ vkMaxImageDimension1D :: Word32 -                        , vkMaxImageDimension2D :: Word32 -                        , vkMaxImageDimension3D :: Word32 -                        , vkMaxImageDimensionCube :: Word32 -                        , vkMaxImageArrayLayers :: Word32 -                        , vkMaxTexelBufferElements :: Word32 -                        , vkMaxUniformBufferRange :: Word32 -                        , vkMaxStorageBufferRange :: Word32 -                        , vkMaxPushConstantsSize :: Word32 -                        , vkMaxMemoryAllocationCount :: Word32 -                        , vkMaxSamplerAllocationCount :: Word32 -                        , vkBufferImageGranularity :: VkDeviceSize -                        , vkSparseAddressSpaceSize :: VkDeviceSize -                        , vkMaxBoundDescriptorSets :: Word32 -                        , vkMaxPerStageDescriptorSamplers :: Word32 -                        , vkMaxPerStageDescriptorUniformBuffers :: Word32 -                        , vkMaxPerStageDescriptorStorageBuffers :: Word32 -                        , vkMaxPerStageDescriptorSampledImages :: Word32 -                        , vkMaxPerStageDescriptorStorageImages :: Word32 -                        , vkMaxPerStageDescriptorInputAttachments :: Word32 -                        , vkMaxPerStageResources :: Word32 -                        , vkMaxDescriptorSetSamplers :: Word32 -                        , vkMaxDescriptorSetUniformBuffers :: Word32 -                        , vkMaxDescriptorSetUniformBuffersDynamic :: Word32 -                        , vkMaxDescriptorSetStorageBuffers :: Word32 -                        , vkMaxDescriptorSetStorageBuffersDynamic :: Word32 -                        , vkMaxDescriptorSetSampledImages :: Word32 -                        , vkMaxDescriptorSetStorageImages :: Word32 -                        , vkMaxDescriptorSetInputAttachments :: Word32 -                        , vkMaxVertexInputAttributes :: Word32 -                        , vkMaxVertexInputBindings :: Word32 -                        , vkMaxVertexInputAttributeOffset :: Word32 -                        , vkMaxVertexInputBindingStride :: Word32 -                        , vkMaxVertexOutputComponents :: Word32 -                        , vkMaxTessellationGenerationLevel :: Word32 -                        , vkMaxTessellationPatchSize :: Word32 -                        , vkMaxTessellationControlPerVertexInputComponents :: Word32 -                        , vkMaxTessellationControlPerVertexOutputComponents :: Word32 -                        , vkMaxTessellationControlPerPatchOutputComponents :: Word32 -                        , vkMaxTessellationControlTotalOutputComponents :: Word32 -                        , vkMaxTessellationEvaluationInputComponents :: Word32 -                        , vkMaxTessellationEvaluationOutputComponents :: Word32 -                        , vkMaxGeometryShaderInvocations :: Word32 -                        , vkMaxGeometryInputComponents :: Word32 -                        , vkMaxGeometryOutputComponents :: Word32 -                        , vkMaxGeometryOutputVertices :: Word32 -                        , vkMaxGeometryTotalOutputComponents :: Word32 -                        , vkMaxFragmentInputComponents :: Word32 -                        , vkMaxFragmentOutputAttachments :: Word32 -                        , vkMaxFragmentDualSrcAttachments :: Word32 -                        , vkMaxFragmentCombinedOutputResources :: Word32 -                        , vkMaxComputeSharedMemorySize :: Word32 -                        , vkMaxComputeWorkGroupCount :: Vector 3 Word32 -                        , vkMaxComputeWorkGroupInvocations :: Word32 -                        , vkMaxComputeWorkGroupSize :: Vector 3 Word32 -                        , vkSubPixelPrecisionBits :: Word32 -                        , vkSubTexelPrecisionBits :: Word32 -                        , vkMipmapPrecisionBits :: Word32 -                        , vkMaxDrawIndexedIndexValue :: Word32 -                        , vkMaxDrawIndirectCount :: Word32 -                        , vkMaxSamplerLodBias :: CFloat -                        , vkMaxSamplerAnisotropy :: CFloat -                        , vkMaxViewports :: Word32 -                        , vkMaxViewportDimensions :: Vector 2 Word32 -                        , vkViewportBoundsRange :: Vector 2 CFloat -                        , vkViewportSubPixelBits :: Word32 -                        , vkMinMemoryMapAlignment :: CSize -                        , vkMinTexelBufferOffsetAlignment :: VkDeviceSize -                        , vkMinUniformBufferOffsetAlignment :: VkDeviceSize -                        , vkMinStorageBufferOffsetAlignment :: VkDeviceSize -                        , vkMinTexelOffset :: Int32 -                        , vkMaxTexelOffset :: Word32 -                        , vkMinTexelGatherOffset :: Int32 -                        , vkMaxTexelGatherOffset :: Word32 -                        , vkMinInterpolationOffset :: CFloat -                        , vkMaxInterpolationOffset :: CFloat -                        , vkSubPixelInterpolationOffsetBits :: Word32 -                        , vkMaxFramebufferWidth :: Word32 -                        , vkMaxFramebufferHeight :: Word32 -                        , vkMaxFramebufferLayers :: Word32 -                        , vkFramebufferColorSampleCounts :: VkSampleCountFlags -                        , vkFramebufferDepthSampleCounts :: VkSampleCountFlags -                        , vkFramebufferStencilSampleCounts :: VkSampleCountFlags -                        , vkFramebufferNoAttachmentsSampleCounts :: VkSampleCountFlags -                        , vkMaxColorAttachments :: Word32 -                        , vkSampledImageColorSampleCounts :: VkSampleCountFlags -                        , vkSampledImageIntegerSampleCounts :: VkSampleCountFlags -                        , vkSampledImageDepthSampleCounts :: VkSampleCountFlags -                        , vkSampledImageStencilSampleCounts :: VkSampleCountFlags -                        , vkStorageImageSampleCounts :: VkSampleCountFlags -                        , vkMaxSampleMaskWords :: Word32 -                        , vkTimestampComputeAndGraphics :: VkBool32 -                        , vkTimestampPeriod :: CFloat -                        , vkMaxClipDistances :: Word32 -                        , vkMaxCullDistances :: Word32 -                        , vkMaxCombinedClipAndCullDistances :: Word32 -                        , vkDiscreteQueuePriorities :: Word32 -                        , vkPointSizeRange :: Vector 2 CFloat -                        , vkLineWidthRange :: Vector 2 CFloat -                        , vkPointSizeGranularity :: CFloat -                        , vkLineWidthGranularity :: CFloat -                        , vkStrictLines :: VkBool32 -                        , vkStandardSampleLocations :: VkBool32 -                        , vkOptimalBufferCopyOffsetAlignment :: VkDeviceSize -                        , vkOptimalBufferCopyRowPitchAlignment :: VkDeviceSize -                        , vkNonCoherentAtomSize :: VkDeviceSize -                        }-  deriving (Eq)--instance Storable VkPhysicalDeviceLimits where-  sizeOf ~_ = 504-  alignment ~_ = 8-  peek ptr = VkPhysicalDeviceLimits <$> peek (ptr `plusPtr` 0)-                                    <*> peek (ptr `plusPtr` 4)-                                    <*> peek (ptr `plusPtr` 8)-                                    <*> peek (ptr `plusPtr` 12)-                                    <*> peek (ptr `plusPtr` 16)-                                    <*> peek (ptr `plusPtr` 20)-                                    <*> peek (ptr `plusPtr` 24)-                                    <*> peek (ptr `plusPtr` 28)-                                    <*> peek (ptr `plusPtr` 32)-                                    <*> peek (ptr `plusPtr` 36)-                                    <*> peek (ptr `plusPtr` 40)-                                    <*> peek (ptr `plusPtr` 48)-                                    <*> peek (ptr `plusPtr` 56)-                                    <*> peek (ptr `plusPtr` 64)-                                    <*> peek (ptr `plusPtr` 68)-                                    <*> peek (ptr `plusPtr` 72)-                                    <*> peek (ptr `plusPtr` 76)-                                    <*> peek (ptr `plusPtr` 80)-                                    <*> peek (ptr `plusPtr` 84)-                                    <*> peek (ptr `plusPtr` 88)-                                    <*> peek (ptr `plusPtr` 92)-                                    <*> peek (ptr `plusPtr` 96)-                                    <*> peek (ptr `plusPtr` 100)-                                    <*> peek (ptr `plusPtr` 104)-                                    <*> peek (ptr `plusPtr` 108)-                                    <*> peek (ptr `plusPtr` 112)-                                    <*> peek (ptr `plusPtr` 116)-                                    <*> peek (ptr `plusPtr` 120)-                                    <*> peek (ptr `plusPtr` 124)-                                    <*> peek (ptr `plusPtr` 128)-                                    <*> peek (ptr `plusPtr` 132)-                                    <*> peek (ptr `plusPtr` 136)-                                    <*> peek (ptr `plusPtr` 140)-                                    <*> peek (ptr `plusPtr` 144)-                                    <*> peek (ptr `plusPtr` 148)-                                    <*> peek (ptr `plusPtr` 152)-                                    <*> peek (ptr `plusPtr` 156)-                                    <*> peek (ptr `plusPtr` 160)-                                    <*> peek (ptr `plusPtr` 164)-                                    <*> peek (ptr `plusPtr` 168)-                                    <*> peek (ptr `plusPtr` 172)-                                    <*> peek (ptr `plusPtr` 176)-                                    <*> peek (ptr `plusPtr` 180)-                                    <*> peek (ptr `plusPtr` 184)-                                    <*> peek (ptr `plusPtr` 188)-                                    <*> peek (ptr `plusPtr` 192)-                                    <*> peek (ptr `plusPtr` 196)-                                    <*> peek (ptr `plusPtr` 200)-                                    <*> peek (ptr `plusPtr` 204)-                                    <*> peek (ptr `plusPtr` 208)-                                    <*> peek (ptr `plusPtr` 212)-                                    <*> peek (ptr `plusPtr` 216)-                                    <*> peek (ptr `plusPtr` 220)-                                    <*> peek (ptr `plusPtr` 232)-                                    <*> peek (ptr `plusPtr` 236)-                                    <*> peek (ptr `plusPtr` 248)-                                    <*> peek (ptr `plusPtr` 252)-                                    <*> peek (ptr `plusPtr` 256)-                                    <*> peek (ptr `plusPtr` 260)-                                    <*> peek (ptr `plusPtr` 264)-                                    <*> peek (ptr `plusPtr` 268)-                                    <*> peek (ptr `plusPtr` 272)-                                    <*> peek (ptr `plusPtr` 276)-                                    <*> peek (ptr `plusPtr` 280)-                                    <*> peek (ptr `plusPtr` 288)-                                    <*> peek (ptr `plusPtr` 296)-                                    <*> peek (ptr `plusPtr` 304)-                                    <*> peek (ptr `plusPtr` 312)-                                    <*> peek (ptr `plusPtr` 320)-                                    <*> peek (ptr `plusPtr` 328)-                                    <*> peek (ptr `plusPtr` 336)-                                    <*> peek (ptr `plusPtr` 340)-                                    <*> peek (ptr `plusPtr` 344)-                                    <*> peek (ptr `plusPtr` 348)-                                    <*> peek (ptr `plusPtr` 352)-                                    <*> peek (ptr `plusPtr` 356)-                                    <*> peek (ptr `plusPtr` 360)-                                    <*> peek (ptr `plusPtr` 364)-                                    <*> peek (ptr `plusPtr` 368)-                                    <*> peek (ptr `plusPtr` 372)-                                    <*> peek (ptr `plusPtr` 376)-                                    <*> peek (ptr `plusPtr` 380)-                                    <*> peek (ptr `plusPtr` 384)-                                    <*> peek (ptr `plusPtr` 388)-                                    <*> peek (ptr `plusPtr` 392)-                                    <*> peek (ptr `plusPtr` 396)-                                    <*> peek (ptr `plusPtr` 400)-                                    <*> peek (ptr `plusPtr` 404)-                                    <*> peek (ptr `plusPtr` 408)-                                    <*> peek (ptr `plusPtr` 412)-                                    <*> peek (ptr `plusPtr` 416)-                                    <*> peek (ptr `plusPtr` 420)-                                    <*> peek (ptr `plusPtr` 424)-                                    <*> peek (ptr `plusPtr` 428)-                                    <*> peek (ptr `plusPtr` 432)-                                    <*> peek (ptr `plusPtr` 436)-                                    <*> peek (ptr `plusPtr` 440)-                                    <*> peek (ptr `plusPtr` 444)-                                    <*> peek (ptr `plusPtr` 452)-                                    <*> peek (ptr `plusPtr` 460)-                                    <*> peek (ptr `plusPtr` 464)-                                    <*> peek (ptr `plusPtr` 468)-                                    <*> peek (ptr `plusPtr` 472)-                                    <*> peek (ptr `plusPtr` 480)-                                    <*> peek (ptr `plusPtr` 488)-                                    <*> peek (ptr `plusPtr` 496)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkMaxImageDimension1D (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 4) (vkMaxImageDimension2D (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 8) (vkMaxImageDimension3D (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 12) (vkMaxImageDimensionCube (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 16) (vkMaxImageArrayLayers (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 20) (vkMaxTexelBufferElements (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 24) (vkMaxUniformBufferRange (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 28) (vkMaxStorageBufferRange (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 32) (vkMaxPushConstantsSize (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 36) (vkMaxMemoryAllocationCount (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 40) (vkMaxSamplerAllocationCount (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 48) (vkBufferImageGranularity (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 56) (vkSparseAddressSpaceSize (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 64) (vkMaxBoundDescriptorSets (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 68) (vkMaxPerStageDescriptorSamplers (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 72) (vkMaxPerStageDescriptorUniformBuffers (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 76) (vkMaxPerStageDescriptorStorageBuffers (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 80) (vkMaxPerStageDescriptorSampledImages (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 84) (vkMaxPerStageDescriptorStorageImages (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 88) (vkMaxPerStageDescriptorInputAttachments (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 92) (vkMaxPerStageResources (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 96) (vkMaxDescriptorSetSamplers (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 100) (vkMaxDescriptorSetUniformBuffers (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 104) (vkMaxDescriptorSetUniformBuffersDynamic (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 108) (vkMaxDescriptorSetStorageBuffers (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 112) (vkMaxDescriptorSetStorageBuffersDynamic (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 116) (vkMaxDescriptorSetSampledImages (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 120) (vkMaxDescriptorSetStorageImages (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 124) (vkMaxDescriptorSetInputAttachments (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 128) (vkMaxVertexInputAttributes (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 132) (vkMaxVertexInputBindings (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 136) (vkMaxVertexInputAttributeOffset (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 140) (vkMaxVertexInputBindingStride (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 144) (vkMaxVertexOutputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 148) (vkMaxTessellationGenerationLevel (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 152) (vkMaxTessellationPatchSize (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 156) (vkMaxTessellationControlPerVertexInputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 160) (vkMaxTessellationControlPerVertexOutputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 164) (vkMaxTessellationControlPerPatchOutputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 168) (vkMaxTessellationControlTotalOutputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 172) (vkMaxTessellationEvaluationInputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 176) (vkMaxTessellationEvaluationOutputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 180) (vkMaxGeometryShaderInvocations (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 184) (vkMaxGeometryInputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 188) (vkMaxGeometryOutputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 192) (vkMaxGeometryOutputVertices (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 196) (vkMaxGeometryTotalOutputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 200) (vkMaxFragmentInputComponents (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 204) (vkMaxFragmentOutputAttachments (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 208) (vkMaxFragmentDualSrcAttachments (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 212) (vkMaxFragmentCombinedOutputResources (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 216) (vkMaxComputeSharedMemorySize (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 220) (vkMaxComputeWorkGroupCount (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 232) (vkMaxComputeWorkGroupInvocations (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 236) (vkMaxComputeWorkGroupSize (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 248) (vkSubPixelPrecisionBits (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 252) (vkSubTexelPrecisionBits (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 256) (vkMipmapPrecisionBits (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 260) (vkMaxDrawIndexedIndexValue (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 264) (vkMaxDrawIndirectCount (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 268) (vkMaxSamplerLodBias (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 272) (vkMaxSamplerAnisotropy (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 276) (vkMaxViewports (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 280) (vkMaxViewportDimensions (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 288) (vkViewportBoundsRange (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 296) (vkViewportSubPixelBits (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 304) (vkMinMemoryMapAlignment (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 312) (vkMinTexelBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 320) (vkMinUniformBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 328) (vkMinStorageBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 336) (vkMinTexelOffset (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 340) (vkMaxTexelOffset (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 344) (vkMinTexelGatherOffset (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 348) (vkMaxTexelGatherOffset (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 352) (vkMinInterpolationOffset (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 356) (vkMaxInterpolationOffset (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 360) (vkSubPixelInterpolationOffsetBits (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 364) (vkMaxFramebufferWidth (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 368) (vkMaxFramebufferHeight (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 372) (vkMaxFramebufferLayers (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 376) (vkFramebufferColorSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 380) (vkFramebufferDepthSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 384) (vkFramebufferStencilSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 388) (vkFramebufferNoAttachmentsSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 392) (vkMaxColorAttachments (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 396) (vkSampledImageColorSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 400) (vkSampledImageIntegerSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 404) (vkSampledImageDepthSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 408) (vkSampledImageStencilSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 412) (vkStorageImageSampleCounts (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 416) (vkMaxSampleMaskWords (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 420) (vkTimestampComputeAndGraphics (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 424) (vkTimestampPeriod (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 428) (vkMaxClipDistances (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 432) (vkMaxCullDistances (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 436) (vkMaxCombinedClipAndCullDistances (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 440) (vkDiscreteQueuePriorities (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 444) (vkPointSizeRange (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 452) (vkLineWidthRange (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 460) (vkPointSizeGranularity (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 464) (vkLineWidthGranularity (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 468) (vkStrictLines (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 472) (vkStandardSampleLocations (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 480) (vkOptimalBufferCopyOffsetAlignment (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 488) (vkOptimalBufferCopyRowPitchAlignment (poked :: VkPhysicalDeviceLimits))-                *> poke (ptr `plusPtr` 496) (vkNonCoherentAtomSize (poked :: VkPhysicalDeviceLimits))----data VkMemoryHeap =-  VkMemoryHeap{ vkSize :: VkDeviceSize -              , vkFlags :: VkMemoryHeapFlags -              }-  deriving (Eq)--instance Storable VkMemoryHeap where-  sizeOf ~_ = 16-  alignment ~_ = 8-  peek ptr = VkMemoryHeap <$> peek (ptr `plusPtr` 0)-                          <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSize (poked :: VkMemoryHeap))-                *> poke (ptr `plusPtr` 8) (vkFlags (poked :: VkMemoryHeap))----- ** vkEnumeratePhysicalDevices-foreign import ccall "vkEnumeratePhysicalDevices" vkEnumeratePhysicalDevices ::-  VkInstance -> Ptr Word32 -> Ptr VkPhysicalDevice -> IO VkResult---- ** vkGetDeviceProcAddr-foreign import ccall "vkGetDeviceProcAddr" vkGetDeviceProcAddr ::-  VkDevice -> Ptr CChar -> IO PFN_vkVoidFunction---- ** vkCreateInstance-foreign import ccall "vkCreateInstance" vkCreateInstance ::-  Ptr VkInstanceCreateInfo ->-  Ptr VkAllocationCallbacks -> Ptr VkInstance -> IO VkResult---- ** VkFormatFeatureFlags--newtype VkFormatFeatureFlagBits = VkFormatFeatureFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkFormatFeatureFlagBits-type VkFormatFeatureFlags = VkFormatFeatureFlagBits--instance Show VkFormatFeatureFlagBits where-  showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"-  showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"-  showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"-  showsPrec _ VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = showString "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"-  showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"-  showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"-  showsPrec _ VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = showString "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"-  showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"-  showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"-  showsPrec _ VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = showString "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"-  showsPrec _ VK_FORMAT_FEATURE_BLIT_SRC_BIT = showString "VK_FORMAT_FEATURE_BLIT_SRC_BIT"-  showsPrec _ VK_FORMAT_FEATURE_BLIT_DST_BIT = showString "VK_FORMAT_FEATURE_BLIT_DST_BIT"-  showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"-  -  showsPrec p (VkFormatFeatureFlagBits x) = showParen (p >= 11) (showString "VkFormatFeatureFlagBits " . showsPrec 11 x)--instance Read VkFormatFeatureFlagBits where-  readPrec = parens ( choose [ ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)-                             , ("VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", pure VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT)-                             , ("VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", pure VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT)-                             , ("VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", pure VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT)-                             , ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT)-                             , ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT)-                             , ("VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT", pure VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT)-                             , ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT)-                             , ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT)-                             , ("VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", pure VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT)-                             , ("VK_FORMAT_FEATURE_BLIT_SRC_BIT", pure VK_FORMAT_FEATURE_BLIT_SRC_BIT)-                             , ("VK_FORMAT_FEATURE_BLIT_DST_BIT", pure VK_FORMAT_FEATURE_BLIT_DST_BIT)-                             , ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkFormatFeatureFlagBits")-                        v <- step readPrec-                        pure (VkFormatFeatureFlagBits v)-                        )-                    )---- | Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = VkFormatFeatureFlagBits 0x1--- | Format can be used for storage images (STORAGE_IMAGE descriptor type)-pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = VkFormatFeatureFlagBits 0x2--- | Format supports atomic operations in case it's used for storage images-pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = VkFormatFeatureFlagBits 0x4--- | Format can be used for uniform texel buffers (TBOs)-pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = VkFormatFeatureFlagBits 0x8--- | Format can be used for storage texel buffers (IBOs)-pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = VkFormatFeatureFlagBits 0x10--- | Format supports atomic operations in case it's used for storage texel buffers-pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = VkFormatFeatureFlagBits 0x20--- | Format can be used for vertex buffers (VBOs)-pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = VkFormatFeatureFlagBits 0x40--- | Format can be used for color attachment images-pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = VkFormatFeatureFlagBits 0x80--- | Format supports blending in case it's used for color attachment images-pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = VkFormatFeatureFlagBits 0x100--- | Format can be used for depth/stencil attachment images-pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = VkFormatFeatureFlagBits 0x200--- | Format can be used as the source image of blits with vkCmdBlitImage-pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT = VkFormatFeatureFlagBits 0x400--- | Format can be used as the destination image of blits with vkCmdBlitImage-pattern VK_FORMAT_FEATURE_BLIT_DST_BIT = VkFormatFeatureFlagBits 0x800--- | Format can be filtered with VK_FILTER_LINEAR when being sampled-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = VkFormatFeatureFlagBits 0x1000----data VkPhysicalDeviceMemoryProperties =-  VkPhysicalDeviceMemoryProperties{ vkMemoryTypeCount :: Word32 -                                  , vkMemoryTypes :: Vector VK_MAX_MEMORY_TYPES VkMemoryType -                                  , vkMemoryHeapCount :: Word32 -                                  , vkMemoryHeaps :: Vector VK_MAX_MEMORY_HEAPS VkMemoryHeap -                                  }-  deriving (Eq)--instance Storable VkPhysicalDeviceMemoryProperties where-  sizeOf ~_ = 520-  alignment ~_ = 8-  peek ptr = VkPhysicalDeviceMemoryProperties <$> peek (ptr `plusPtr` 0)-                                              <*> peek (ptr `plusPtr` 4)-                                              <*> peek (ptr `plusPtr` 260)-                                              <*> peek (ptr `plusPtr` 264)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkMemoryTypeCount (poked :: VkPhysicalDeviceMemoryProperties))-                *> poke (ptr `plusPtr` 4) (vkMemoryTypes (poked :: VkPhysicalDeviceMemoryProperties))-                *> poke (ptr `plusPtr` 260) (vkMemoryHeapCount (poked :: VkPhysicalDeviceMemoryProperties))-                *> poke (ptr `plusPtr` 264) (vkMemoryHeaps (poked :: VkPhysicalDeviceMemoryProperties))---data VkInstance_T-type VkInstance = Ptr VkInstance_T---- ** VkMemoryHeapFlags--newtype VkMemoryHeapFlagBits = VkMemoryHeapFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkMemoryHeapFlagBits-type VkMemoryHeapFlags = VkMemoryHeapFlagBits--instance Show VkMemoryHeapFlagBits where-  showsPrec _ VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = showString "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"-  -  showsPrec p (VkMemoryHeapFlagBits x) = showParen (p >= 11) (showString "VkMemoryHeapFlagBits " . showsPrec 11 x)--instance Read VkMemoryHeapFlagBits where-  readPrec = parens ( choose [ ("VK_MEMORY_HEAP_DEVICE_LOCAL_BIT", pure VK_MEMORY_HEAP_DEVICE_LOCAL_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkMemoryHeapFlagBits")-                        v <- step readPrec-                        pure (VkMemoryHeapFlagBits v)-                        )-                    )---- | If set, heap represents device memory-pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = VkMemoryHeapFlagBits 0x1----data VkQueueFamilyProperties =-  VkQueueFamilyProperties{ vkQueueFlags :: VkQueueFlags -                         , vkQueueCount :: Word32 -                         , vkTimestampValidBits :: Word32 -                         , vkMinImageTransferGranularity :: VkExtent3D -                         }-  deriving (Eq)--instance Storable VkQueueFamilyProperties where-  sizeOf ~_ = 24-  alignment ~_ = 4-  peek ptr = VkQueueFamilyProperties <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 4)-                                     <*> peek (ptr `plusPtr` 8)-                                     <*> peek (ptr `plusPtr` 12)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkQueueFlags (poked :: VkQueueFamilyProperties))-                *> poke (ptr `plusPtr` 4) (vkQueueCount (poked :: VkQueueFamilyProperties))-                *> poke (ptr `plusPtr` 8) (vkTimestampValidBits (poked :: VkQueueFamilyProperties))-                *> poke (ptr `plusPtr` 12) (vkMinImageTransferGranularity (poked :: VkQueueFamilyProperties))----data VkImageFormatProperties =-  VkImageFormatProperties{ vkMaxExtent :: VkExtent3D -                         , vkMaxMipLevels :: Word32 -                         , vkMaxArrayLayers :: Word32 -                         , vkSampleCounts :: VkSampleCountFlags -                         , vkMaxResourceSize :: VkDeviceSize -                         }-  deriving (Eq)--instance Storable VkImageFormatProperties where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkImageFormatProperties <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 12)-                                     <*> peek (ptr `plusPtr` 16)-                                     <*> peek (ptr `plusPtr` 20)-                                     <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkMaxExtent (poked :: VkImageFormatProperties))-                *> poke (ptr `plusPtr` 12) (vkMaxMipLevels (poked :: VkImageFormatProperties))-                *> poke (ptr `plusPtr` 16) (vkMaxArrayLayers (poked :: VkImageFormatProperties))-                *> poke (ptr `plusPtr` 20) (vkSampleCounts (poked :: VkImageFormatProperties))-                *> poke (ptr `plusPtr` 24) (vkMaxResourceSize (poked :: VkImageFormatProperties))----data VkPhysicalDeviceSparseProperties =-  VkPhysicalDeviceSparseProperties{ vkResidencyStandard2DBlockShape :: VkBool32 -                                  , vkResidencyStandard2DMultisampleBlockShape :: VkBool32 -                                  , vkResidencyStandard3DBlockShape :: VkBool32 -                                  , vkResidencyAlignedMipSize :: VkBool32 -                                  , vkResidencyNonResidentStrict :: VkBool32 -                                  }-  deriving (Eq)--instance Storable VkPhysicalDeviceSparseProperties where-  sizeOf ~_ = 20-  alignment ~_ = 4-  peek ptr = VkPhysicalDeviceSparseProperties <$> peek (ptr `plusPtr` 0)-                                              <*> peek (ptr `plusPtr` 4)-                                              <*> peek (ptr `plusPtr` 8)-                                              <*> peek (ptr `plusPtr` 12)-                                              <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkResidencyStandard2DBlockShape (poked :: VkPhysicalDeviceSparseProperties))-                *> poke (ptr `plusPtr` 4) (vkResidencyStandard2DMultisampleBlockShape (poked :: VkPhysicalDeviceSparseProperties))-                *> poke (ptr `plusPtr` 8) (vkResidencyStandard3DBlockShape (poked :: VkPhysicalDeviceSparseProperties))-                *> poke (ptr `plusPtr` 12) (vkResidencyAlignedMipSize (poked :: VkPhysicalDeviceSparseProperties))-                *> poke (ptr `plusPtr` 16) (vkResidencyNonResidentStrict (poked :: VkPhysicalDeviceSparseProperties))----- ** vkGetPhysicalDeviceFeatures-foreign import ccall "vkGetPhysicalDeviceFeatures" vkGetPhysicalDeviceFeatures ::-  VkPhysicalDevice -> Ptr VkPhysicalDeviceFeatures -> IO ()---- ** vkGetPhysicalDeviceMemoryProperties-foreign import ccall "vkGetPhysicalDeviceMemoryProperties" vkGetPhysicalDeviceMemoryProperties ::-  VkPhysicalDevice -> Ptr VkPhysicalDeviceMemoryProperties -> IO ()---data VkPhysicalDeviceProperties =-  VkPhysicalDeviceProperties{ vkApiVersion :: Word32 -                            , vkDriverVersion :: Word32 -                            , vkVendorID :: Word32 -                            , vkDeviceID :: Word32 -                            , vkDeviceType :: VkPhysicalDeviceType -                            , vkDeviceName :: Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar -                            , vkPipelineCacheUUID :: Vector VK_UUID_SIZE Word8 -                            , vkLimits :: VkPhysicalDeviceLimits -                            , vkSparseProperties :: VkPhysicalDeviceSparseProperties -                            }-  deriving (Eq)--instance Storable VkPhysicalDeviceProperties where-  sizeOf ~_ = 824-  alignment ~_ = 8-  peek ptr = VkPhysicalDeviceProperties <$> peek (ptr `plusPtr` 0)-                                        <*> peek (ptr `plusPtr` 4)-                                        <*> peek (ptr `plusPtr` 8)-                                        <*> peek (ptr `plusPtr` 12)-                                        <*> peek (ptr `plusPtr` 16)-                                        <*> peek (ptr `plusPtr` 20)-                                        <*> peek (ptr `plusPtr` 276)-                                        <*> peek (ptr `plusPtr` 296)-                                        <*> peek (ptr `plusPtr` 800)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkApiVersion (poked :: VkPhysicalDeviceProperties))-                *> poke (ptr `plusPtr` 4) (vkDriverVersion (poked :: VkPhysicalDeviceProperties))-                *> poke (ptr `plusPtr` 8) (vkVendorID (poked :: VkPhysicalDeviceProperties))-                *> poke (ptr `plusPtr` 12) (vkDeviceID (poked :: VkPhysicalDeviceProperties))-                *> poke (ptr `plusPtr` 16) (vkDeviceType (poked :: VkPhysicalDeviceProperties))-                *> poke (ptr `plusPtr` 20) (vkDeviceName (poked :: VkPhysicalDeviceProperties))-                *> poke (ptr `plusPtr` 276) (vkPipelineCacheUUID (poked :: VkPhysicalDeviceProperties))-                *> poke (ptr `plusPtr` 296) (vkLimits (poked :: VkPhysicalDeviceProperties))-                *> poke (ptr `plusPtr` 800) (vkSparseProperties (poked :: VkPhysicalDeviceProperties))----- ** vkGetPhysicalDeviceQueueFamilyProperties-foreign import ccall "vkGetPhysicalDeviceQueueFamilyProperties" vkGetPhysicalDeviceQueueFamilyProperties ::-  VkPhysicalDevice ->-  Ptr Word32 -> Ptr VkQueueFamilyProperties -> IO ()---data VkMemoryType =-  VkMemoryType{ vkPropertyFlags :: VkMemoryPropertyFlags -              , vkHeapIndex :: Word32 -              }-  deriving (Eq)--instance Storable VkMemoryType where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek ptr = VkMemoryType <$> peek (ptr `plusPtr` 0)-                          <*> peek (ptr `plusPtr` 4)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkPropertyFlags (poked :: VkMemoryType))-                *> poke (ptr `plusPtr` 4) (vkHeapIndex (poked :: VkMemoryType))----- ** vkGetInstanceProcAddr-foreign import ccall "vkGetInstanceProcAddr" vkGetInstanceProcAddr ::-  VkInstance -> Ptr CChar -> IO PFN_vkVoidFunction---- ** VkMemoryPropertyFlags--newtype VkMemoryPropertyFlagBits = VkMemoryPropertyFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkMemoryPropertyFlagBits-type VkMemoryPropertyFlags = VkMemoryPropertyFlagBits--instance Show VkMemoryPropertyFlagBits where-  showsPrec _ VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = showString "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"-  showsPrec _ VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = showString "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"-  showsPrec _ VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = showString "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"-  showsPrec _ VK_MEMORY_PROPERTY_HOST_CACHED_BIT = showString "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"-  showsPrec _ VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = showString "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"-  -  showsPrec p (VkMemoryPropertyFlagBits x) = showParen (p >= 11) (showString "VkMemoryPropertyFlagBits " . showsPrec 11 x)--instance Read VkMemoryPropertyFlagBits where-  readPrec = parens ( choose [ ("VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT", pure VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)-                             , ("VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT", pure VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)-                             , ("VK_MEMORY_PROPERTY_HOST_COHERENT_BIT", pure VK_MEMORY_PROPERTY_HOST_COHERENT_BIT)-                             , ("VK_MEMORY_PROPERTY_HOST_CACHED_BIT", pure VK_MEMORY_PROPERTY_HOST_CACHED_BIT)-                             , ("VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT", pure VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkMemoryPropertyFlagBits")-                        v <- step readPrec-                        pure (VkMemoryPropertyFlagBits v)-                        )-                    )---- | If otherwise stated, then allocate memory on device-pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = VkMemoryPropertyFlagBits 0x1--- | Memory is mappable by host-pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = VkMemoryPropertyFlagBits 0x2--- | Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache-pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = VkMemoryPropertyFlagBits 0x4--- | Memory will be cached by the host-pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT = VkMemoryPropertyFlagBits 0x8--- | Memory may be allocated by the driver when it is required-pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = VkMemoryPropertyFlagBits 0x10----- ** vkDestroyInstance-foreign import ccall "vkDestroyInstance" vkDestroyInstance ::-  VkInstance -> Ptr VkAllocationCallbacks -> IO ()---- ** VkQueueFlags--newtype VkQueueFlagBits = VkQueueFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkQueueFlagBits-type VkQueueFlags = VkQueueFlagBits--instance Show VkQueueFlagBits where-  showsPrec _ VK_QUEUE_GRAPHICS_BIT = showString "VK_QUEUE_GRAPHICS_BIT"-  showsPrec _ VK_QUEUE_COMPUTE_BIT = showString "VK_QUEUE_COMPUTE_BIT"-  showsPrec _ VK_QUEUE_TRANSFER_BIT = showString "VK_QUEUE_TRANSFER_BIT"-  showsPrec _ VK_QUEUE_SPARSE_BINDING_BIT = showString "VK_QUEUE_SPARSE_BINDING_BIT"-  -  showsPrec p (VkQueueFlagBits x) = showParen (p >= 11) (showString "VkQueueFlagBits " . showsPrec 11 x)--instance Read VkQueueFlagBits where-  readPrec = parens ( choose [ ("VK_QUEUE_GRAPHICS_BIT", pure VK_QUEUE_GRAPHICS_BIT)-                             , ("VK_QUEUE_COMPUTE_BIT", pure VK_QUEUE_COMPUTE_BIT)-                             , ("VK_QUEUE_TRANSFER_BIT", pure VK_QUEUE_TRANSFER_BIT)-                             , ("VK_QUEUE_SPARSE_BINDING_BIT", pure VK_QUEUE_SPARSE_BINDING_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkQueueFlagBits")-                        v <- step readPrec-                        pure (VkQueueFlagBits v)-                        )-                    )---- | Queue supports graphics operations-pattern VK_QUEUE_GRAPHICS_BIT = VkQueueFlagBits 0x1--- | Queue supports compute operations-pattern VK_QUEUE_COMPUTE_BIT = VkQueueFlagBits 0x2--- | Queue supports transfer operations-pattern VK_QUEUE_TRANSFER_BIT = VkQueueFlagBits 0x4--- | Queue supports sparse resource memory management operations-pattern VK_QUEUE_SPARSE_BINDING_BIT = VkQueueFlagBits 0x8----- ** vkGetPhysicalDeviceProperties-foreign import ccall "vkGetPhysicalDeviceProperties" vkGetPhysicalDeviceProperties ::-  VkPhysicalDevice -> Ptr VkPhysicalDeviceProperties -> IO ()---- ** VkInstanceCreateFlags--- | Opaque flag-newtype VkInstanceCreateFlags = VkInstanceCreateFlags VkFlags-  deriving (Eq, Storable)---- ** vkGetPhysicalDeviceFormatProperties-foreign import ccall "vkGetPhysicalDeviceFormatProperties" vkGetPhysicalDeviceFormatProperties ::-  VkPhysicalDevice -> VkFormat -> Ptr VkFormatProperties -> IO ()---data VkFormatProperties =-  VkFormatProperties{ vkLinearTilingFeatures :: VkFormatFeatureFlags -                    , vkOptimalTilingFeatures :: VkFormatFeatureFlags -                    , vkBufferFeatures :: VkFormatFeatureFlags -                    }-  deriving (Eq)--instance Storable VkFormatProperties where-  sizeOf ~_ = 12-  alignment ~_ = 4-  peek ptr = VkFormatProperties <$> peek (ptr `plusPtr` 0)-                                <*> peek (ptr `plusPtr` 4)-                                <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkLinearTilingFeatures (poked :: VkFormatProperties))-                *> poke (ptr `plusPtr` 4) (vkOptimalTilingFeatures (poked :: VkFormatProperties))-                *> poke (ptr `plusPtr` 8) (vkBufferFeatures (poked :: VkFormatProperties))--
− src/Graphics/Vulkan/EXT/DebugReport.hs
@@ -1,271 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.EXT.DebugReport where--import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , FunPtr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.DeviceInitialization( VkInstance(..)-                                           )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize-                      , CChar-                      , CSize(..)-                      )---- ** vkDebugReportMessageEXT-foreign import ccall "vkDebugReportMessageEXT" vkDebugReportMessageEXT ::-  VkInstance ->-  VkDebugReportFlagsEXT ->-    VkDebugReportObjectTypeEXT ->-      Word64 -> CSize -> Int32 -> Ptr CChar -> Ptr CChar -> IO ()--newtype VkDebugReportCallbackEXT = VkDebugReportCallbackEXT Word64-  deriving (Eq, Storable)---- ** VkDebugReportObjectTypeEXT--newtype VkDebugReportObjectTypeEXT = VkDebugReportObjectTypeEXT Int32-  deriving (Eq, Storable)--instance Show VkDebugReportObjectTypeEXT where-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"-  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"-  showsPrec p (VkDebugReportObjectTypeEXT x) = showParen (p >= 11) (showString "VkDebugReportObjectTypeEXT " . showsPrec 11 x)--instance Read VkDebugReportObjectTypeEXT where-  readPrec = parens ( choose [ ("VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT)-                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkDebugReportObjectTypeEXT")-                        v <- step readPrec-                        pure (VkDebugReportObjectTypeEXT v)-                        )-                    )---pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = VkDebugReportObjectTypeEXT 0--pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = VkDebugReportObjectTypeEXT 1--pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = VkDebugReportObjectTypeEXT 2--pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = VkDebugReportObjectTypeEXT 3--pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = VkDebugReportObjectTypeEXT 4--pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = VkDebugReportObjectTypeEXT 5--pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = VkDebugReportObjectTypeEXT 6--pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = VkDebugReportObjectTypeEXT 7--pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = VkDebugReportObjectTypeEXT 8--pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = VkDebugReportObjectTypeEXT 9--pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = VkDebugReportObjectTypeEXT 10--pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = VkDebugReportObjectTypeEXT 11--pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = VkDebugReportObjectTypeEXT 12--pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = VkDebugReportObjectTypeEXT 13--pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = VkDebugReportObjectTypeEXT 14--pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = VkDebugReportObjectTypeEXT 15--pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = VkDebugReportObjectTypeEXT 16--pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = VkDebugReportObjectTypeEXT 17--pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = VkDebugReportObjectTypeEXT 18--pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = VkDebugReportObjectTypeEXT 19--pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = VkDebugReportObjectTypeEXT 20--pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = VkDebugReportObjectTypeEXT 21--pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = VkDebugReportObjectTypeEXT 22--pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = VkDebugReportObjectTypeEXT 23--pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = VkDebugReportObjectTypeEXT 24--pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = VkDebugReportObjectTypeEXT 25--pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = VkDebugReportObjectTypeEXT 26--pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = VkDebugReportObjectTypeEXT 27--pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VkDebugReportObjectTypeEXT 28---- ** VkDebugReportErrorEXT--newtype VkDebugReportErrorEXT = VkDebugReportErrorEXT Int32-  deriving (Eq, Storable)--instance Show VkDebugReportErrorEXT where-  showsPrec _ VK_DEBUG_REPORT_ERROR_NONE_EXT = showString "VK_DEBUG_REPORT_ERROR_NONE_EXT"-  showsPrec _ VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = showString "VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT"-  showsPrec p (VkDebugReportErrorEXT x) = showParen (p >= 11) (showString "VkDebugReportErrorEXT " . showsPrec 11 x)--instance Read VkDebugReportErrorEXT where-  readPrec = parens ( choose [ ("VK_DEBUG_REPORT_ERROR_NONE_EXT", pure VK_DEBUG_REPORT_ERROR_NONE_EXT)-                             , ("VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT", pure VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkDebugReportErrorEXT")-                        v <- step readPrec-                        pure (VkDebugReportErrorEXT v)-                        )-                    )---pattern VK_DEBUG_REPORT_ERROR_NONE_EXT = VkDebugReportErrorEXT 0--pattern VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = VkDebugReportErrorEXT 1---data VkDebugReportCallbackCreateInfoEXT =-  VkDebugReportCallbackCreateInfoEXT{ vkSType :: VkStructureType -                                    , vkPNext :: Ptr Void -                                    , vkFlags :: VkDebugReportFlagsEXT -                                    , vkPfnCallback :: PFN_vkDebugReportCallbackEXT -                                    , vkPUserData :: Ptr Void -                                    }-  deriving (Eq)--instance Storable VkDebugReportCallbackCreateInfoEXT where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkDebugReportCallbackCreateInfoEXT <$> peek (ptr `plusPtr` 0)-                                                <*> peek (ptr `plusPtr` 8)-                                                <*> peek (ptr `plusPtr` 16)-                                                <*> peek (ptr `plusPtr` 24)-                                                <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugReportCallbackCreateInfoEXT))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugReportCallbackCreateInfoEXT))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDebugReportCallbackCreateInfoEXT))-                *> poke (ptr `plusPtr` 24) (vkPfnCallback (poked :: VkDebugReportCallbackCreateInfoEXT))-                *> poke (ptr `plusPtr` 32) (vkPUserData (poked :: VkDebugReportCallbackCreateInfoEXT))----- ** vkDestroyDebugReportCallbackEXT-foreign import ccall "vkDestroyDebugReportCallbackEXT" vkDestroyDebugReportCallbackEXT ::-  VkInstance ->-  VkDebugReportCallbackEXT -> Ptr VkAllocationCallbacks -> IO ()---- ** VkDebugReportFlagsEXT--- | Opaque flag-newtype VkDebugReportFlagsEXT = VkDebugReportFlagsEXT VkFlags-  deriving (Eq, Storable)--type PFN_vkDebugReportCallbackEXT = FunPtr-  (VkDebugReportFlagsEXT ->-     VkDebugReportObjectTypeEXT ->-       Word64 ->-         CSize ->-           Int32 -> Ptr CChar -> Ptr CChar -> Ptr Void -> IO VkBool32)---- ** vkCreateDebugReportCallbackEXT-foreign import ccall "vkCreateDebugReportCallbackEXT" vkCreateDebugReportCallbackEXT ::-  VkInstance ->-  Ptr VkDebugReportCallbackCreateInfoEXT ->-    Ptr VkAllocationCallbacks ->-      Ptr VkDebugReportCallbackEXT -> IO VkResult-
− src/Graphics/Vulkan/Event.hs
@@ -1,82 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Event where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---- ** vkDestroyEvent-foreign import ccall "vkDestroyEvent" vkDestroyEvent ::-  VkDevice -> VkEvent -> Ptr VkAllocationCallbacks -> IO ()---data VkEventCreateInfo =-  VkEventCreateInfo{ vkSType :: VkStructureType -                   , vkPNext :: Ptr Void -                   , vkFlags :: VkEventCreateFlags -                   }-  deriving (Eq)--instance Storable VkEventCreateInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkEventCreateInfo <$> peek (ptr `plusPtr` 0)-                               <*> peek (ptr `plusPtr` 8)-                               <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkEventCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkEventCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkEventCreateInfo))----- ** vkSetEvent-foreign import ccall "vkSetEvent" vkSetEvent ::-  VkDevice -> VkEvent -> IO VkResult---- ** vkGetEventStatus-foreign import ccall "vkGetEventStatus" vkGetEventStatus ::-  VkDevice -> VkEvent -> IO VkResult---- ** vkResetEvent-foreign import ccall "vkResetEvent" vkResetEvent ::-  VkDevice -> VkEvent -> IO VkResult---- ** vkCreateEvent-foreign import ccall "vkCreateEvent" vkCreateEvent ::-  VkDevice ->-  Ptr VkEventCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkEvent -> IO VkResult--newtype VkEvent = VkEvent Word64-  deriving (Eq, Storable)---- ** VkEventCreateFlags--- | Opaque flag-newtype VkEventCreateFlags = VkEventCreateFlags VkFlags-  deriving (Eq, Storable)-
− src/Graphics/Vulkan/ExtensionDiscovery.hs
@@ -1,48 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE Strict #-}-module Graphics.Vulkan.ExtensionDiscovery where--import Data.Vector.Storable.Sized( Vector-                                 )-import Graphics.Vulkan.Device( VkPhysicalDevice(..)-                             )-import Data.Word( Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Foreign.Storable( Storable(..)-                       )-import Graphics.Vulkan.Constants( VK_MAX_EXTENSION_NAME_SIZE-                                )-import Graphics.Vulkan.Core( VkResult(..)-                           )-import Foreign.C.Types( CChar-                      )---data VkExtensionProperties =-  VkExtensionProperties{ vkExtensionName :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar -                       , vkSpecVersion :: Word32 -                       }-  deriving (Eq)--instance Storable VkExtensionProperties where-  sizeOf ~_ = 260-  alignment ~_ = 4-  peek ptr = VkExtensionProperties <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 256)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkExtensionName (poked :: VkExtensionProperties))-                *> poke (ptr `plusPtr` 256) (vkSpecVersion (poked :: VkExtensionProperties))----- ** vkEnumerateInstanceExtensionProperties-foreign import ccall "vkEnumerateInstanceExtensionProperties" vkEnumerateInstanceExtensionProperties ::-  Ptr CChar -> Ptr Word32 -> Ptr VkExtensionProperties -> IO VkResult---- ** vkEnumerateDeviceExtensionProperties-foreign import ccall "vkEnumerateDeviceExtensionProperties" vkEnumerateDeviceExtensionProperties ::-  VkPhysicalDevice ->-  Ptr CChar -> Ptr Word32 -> Ptr VkExtensionProperties -> IO VkResult-
+ src/Graphics/Vulkan/Extensions.hs view
@@ -0,0 +1,307 @@+{-# language Strict #-}+{-# language CPP #-}+++module Graphics.Vulkan.Extensions+  (     module Graphics.Vulkan.Extensions.VK_KHR_surface+  , module Graphics.Vulkan.Extensions.VK_KHR_swapchain+  , module Graphics.Vulkan.Extensions.VK_KHR_display+  , module Graphics.Vulkan.Extensions.VK_KHR_display_swapchain+#if defined(VK_USE_PLATFORM_XLIB_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_xlib_surface+#endif+#if defined(VK_USE_PLATFORM_XCB_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_xcb_surface+#endif+#if defined(VK_USE_PLATFORM_WAYLAND_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_wayland_surface+#endif+#if defined(VK_USE_PLATFORM_MIR_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_mir_surface+#endif+#if defined(VK_USE_PLATFORM_ANDROID_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_android_surface+#endif+#if defined(VK_USE_PLATFORM_WIN32_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_win32_surface+#endif+  , module Graphics.Vulkan.Extensions.VK_EXT_debug_report+  , module Graphics.Vulkan.Extensions.VK_NV_glsl_shader+  , module Graphics.Vulkan.Extensions.VK_EXT_depth_range_unrestricted+  , module Graphics.Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge+  , module Graphics.Vulkan.Extensions.VK_IMG_filter_cubic+  , module Graphics.Vulkan.Extensions.VK_AMD_rasterization_order+  , module Graphics.Vulkan.Extensions.VK_AMD_shader_trinary_minmax+  , module Graphics.Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter+  , module Graphics.Vulkan.Extensions.VK_EXT_debug_marker+  , module Graphics.Vulkan.Extensions.VK_AMD_gcn_shader+  , module Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation+  , module Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count+  , module Graphics.Vulkan.Extensions.VK_AMD_negative_viewport_height+  , module Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_half_float+  , module Graphics.Vulkan.Extensions.VK_AMD_shader_ballot+  , module Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod+  , module Graphics.Vulkan.Extensions.VK_AMD_shader_info+  , module Graphics.Vulkan.Extensions.VK_AMD_shader_image_load_store_lod+  , module Graphics.Vulkan.Extensions.VK_KHR_multiview+  , module Graphics.Vulkan.Extensions.VK_IMG_format_pvrtc+  , module Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities+  , module Graphics.Vulkan.Extensions.VK_NV_external_memory+#if defined(VK_USE_PLATFORM_WIN32_KHR)+  , module Graphics.Vulkan.Extensions.VK_NV_external_memory_win32+#endif+#if defined(VK_USE_PLATFORM_WIN32_KHR)+  , module Graphics.Vulkan.Extensions.VK_NV_win32_keyed_mutex+#endif+  , module Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2+  , module Graphics.Vulkan.Extensions.VK_KHR_device_group+  , module Graphics.Vulkan.Extensions.VK_EXT_validation_flags+#if defined(VK_USE_PLATFORM_VI_NN)+  , module Graphics.Vulkan.Extensions.VK_NN_vi_surface+#endif+  , module Graphics.Vulkan.Extensions.VK_KHR_shader_draw_parameters+  , module Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_ballot+  , module Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_vote+  , module Graphics.Vulkan.Extensions.VK_KHR_maintenance1+  , module Graphics.Vulkan.Extensions.VK_KHR_device_group_creation+  , module Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities+  , module Graphics.Vulkan.Extensions.VK_KHR_external_memory+#if defined(VK_USE_PLATFORM_WIN32_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32+#endif+  , module Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd+#if defined(VK_USE_PLATFORM_WIN32_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_win32_keyed_mutex+#endif+  , module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities+  , module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore+#if defined(VK_USE_PLATFORM_WIN32_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32+#endif+  , module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd+  , module Graphics.Vulkan.Extensions.VK_KHR_push_descriptor+  , module Graphics.Vulkan.Extensions.VK_KHR_16bit_storage+  , module Graphics.Vulkan.Extensions.VK_KHR_incremental_present+  , module Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template+  , module Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands+  , module Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling+  , module Graphics.Vulkan.Extensions.VK_EXT_direct_mode_display+#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)+  , module Graphics.Vulkan.Extensions.VK_EXT_acquire_xlib_display+#endif+  , module Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter+  , module Graphics.Vulkan.Extensions.VK_EXT_display_control+  , module Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing+  , module Graphics.Vulkan.Extensions.VK_NV_sample_mask_override_coverage+  , module Graphics.Vulkan.Extensions.VK_NV_geometry_shader_passthrough+  , module Graphics.Vulkan.Extensions.VK_NV_viewport_array2+  , module Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes+  , module Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle+  , module Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles+  , module Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization+  , module Graphics.Vulkan.Extensions.VK_EXT_swapchain_colorspace+  , module Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata+  , module Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image+  , module Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities+  , module Graphics.Vulkan.Extensions.VK_KHR_external_fence+#if defined(VK_USE_PLATFORM_WIN32_KHR)+  , module Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32+#endif+  , module Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd+  , module Graphics.Vulkan.Extensions.VK_KHR_maintenance2+  , module Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2+  , module Graphics.Vulkan.Extensions.VK_KHR_variable_pointers+#if defined(VK_USE_PLATFORM_IOS_MVK)+  , module Graphics.Vulkan.Extensions.VK_MVK_ios_surface+#endif+#if defined(VK_USE_PLATFORM_MACOS_MVK)+  , module Graphics.Vulkan.Extensions.VK_MVK_macos_surface+#endif+  , module Graphics.Vulkan.Extensions.VK_EXT_external_memory_dma_buf+  , module Graphics.Vulkan.Extensions.VK_EXT_queue_family_foreign+  , module Graphics.Vulkan.Extensions.VK_KHR_dedicated_allocation+  , module Graphics.Vulkan.Extensions.VK_EXT_debug_utils+#if defined(VK_USE_PLATFORM_ANDROID_KHR)+  , module Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer+#endif+  , module Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax+  , module Graphics.Vulkan.Extensions.VK_KHR_storage_buffer_storage_class+  , module Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_int16+  , module Graphics.Vulkan.Extensions.VK_AMD_mixed_attachment_samples+  , module Graphics.Vulkan.Extensions.VK_AMD_shader_fragment_mask+  , module Graphics.Vulkan.Extensions.VK_EXT_shader_stencil_export+  , module Graphics.Vulkan.Extensions.VK_EXT_sample_locations+  , module Graphics.Vulkan.Extensions.VK_KHR_relaxed_block_layout+  , module Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2+  , module Graphics.Vulkan.Extensions.VK_KHR_image_format_list+  , module Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced+  , module Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color+  , module Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples+  , module Graphics.Vulkan.Extensions.VK_NV_fill_rectangle+  , module Graphics.Vulkan.Extensions.VK_EXT_post_depth_coverage+  , module Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion+  , module Graphics.Vulkan.Extensions.VK_KHR_bind_memory2+  , module Graphics.Vulkan.Extensions.VK_EXT_validation_cache+  , module Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing+  , module Graphics.Vulkan.Extensions.VK_EXT_shader_viewport_index_layer+  , module Graphics.Vulkan.Extensions.VK_KHR_maintenance3+  , module Graphics.Vulkan.Extensions.VK_EXT_global_priority+  , module Graphics.Vulkan.Extensions.VK_EXT_external_memory_host+  , module Graphics.Vulkan.Extensions.VK_AMD_buffer_marker+  , module Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties+  , module Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+  , module Graphics.Vulkan.Extensions.VK_NV_shader_subgroup_partitioned+  ) where+++import Graphics.Vulkan.Extensions.VK_KHR_surface+import Graphics.Vulkan.Extensions.VK_KHR_swapchain+import Graphics.Vulkan.Extensions.VK_KHR_display+import Graphics.Vulkan.Extensions.VK_KHR_display_swapchain+#if defined(VK_USE_PLATFORM_XLIB_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_xlib_surface+#endif+#if defined(VK_USE_PLATFORM_XCB_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_xcb_surface+#endif+#if defined(VK_USE_PLATFORM_WAYLAND_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_wayland_surface+#endif+#if defined(VK_USE_PLATFORM_MIR_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_mir_surface+#endif+#if defined(VK_USE_PLATFORM_ANDROID_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_android_surface+#endif+#if defined(VK_USE_PLATFORM_WIN32_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_win32_surface+#endif+import Graphics.Vulkan.Extensions.VK_EXT_debug_report+import Graphics.Vulkan.Extensions.VK_NV_glsl_shader+import Graphics.Vulkan.Extensions.VK_EXT_depth_range_unrestricted+import Graphics.Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge+import Graphics.Vulkan.Extensions.VK_IMG_filter_cubic+import Graphics.Vulkan.Extensions.VK_AMD_rasterization_order+import Graphics.Vulkan.Extensions.VK_AMD_shader_trinary_minmax+import Graphics.Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter+import Graphics.Vulkan.Extensions.VK_EXT_debug_marker+import Graphics.Vulkan.Extensions.VK_AMD_gcn_shader+import Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation+import Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count+import Graphics.Vulkan.Extensions.VK_AMD_negative_viewport_height+import Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_half_float+import Graphics.Vulkan.Extensions.VK_AMD_shader_ballot+import Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod+import Graphics.Vulkan.Extensions.VK_AMD_shader_info+import Graphics.Vulkan.Extensions.VK_AMD_shader_image_load_store_lod+import Graphics.Vulkan.Extensions.VK_KHR_multiview+import Graphics.Vulkan.Extensions.VK_IMG_format_pvrtc+import Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities+import Graphics.Vulkan.Extensions.VK_NV_external_memory+#if defined(VK_USE_PLATFORM_WIN32_KHR)+import Graphics.Vulkan.Extensions.VK_NV_external_memory_win32+#endif+#if defined(VK_USE_PLATFORM_WIN32_KHR)+import Graphics.Vulkan.Extensions.VK_NV_win32_keyed_mutex+#endif+import Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2+import Graphics.Vulkan.Extensions.VK_KHR_device_group+import Graphics.Vulkan.Extensions.VK_EXT_validation_flags+#if defined(VK_USE_PLATFORM_VI_NN)+import Graphics.Vulkan.Extensions.VK_NN_vi_surface+#endif+import Graphics.Vulkan.Extensions.VK_KHR_shader_draw_parameters+import Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_ballot+import Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_vote+import Graphics.Vulkan.Extensions.VK_KHR_maintenance1+import Graphics.Vulkan.Extensions.VK_KHR_device_group_creation+import Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities+import Graphics.Vulkan.Extensions.VK_KHR_external_memory+#if defined(VK_USE_PLATFORM_WIN32_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32+#endif+import Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd+#if defined(VK_USE_PLATFORM_WIN32_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_win32_keyed_mutex+#endif+import Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities+import Graphics.Vulkan.Extensions.VK_KHR_external_semaphore+#if defined(VK_USE_PLATFORM_WIN32_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32+#endif+import Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd+import Graphics.Vulkan.Extensions.VK_KHR_push_descriptor+import Graphics.Vulkan.Extensions.VK_KHR_16bit_storage+import Graphics.Vulkan.Extensions.VK_KHR_incremental_present+import Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template+import Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands+import Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling+import Graphics.Vulkan.Extensions.VK_EXT_direct_mode_display+#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)+import Graphics.Vulkan.Extensions.VK_EXT_acquire_xlib_display+#endif+import Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter+import Graphics.Vulkan.Extensions.VK_EXT_display_control+import Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing+import Graphics.Vulkan.Extensions.VK_NV_sample_mask_override_coverage+import Graphics.Vulkan.Extensions.VK_NV_geometry_shader_passthrough+import Graphics.Vulkan.Extensions.VK_NV_viewport_array2+import Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes+import Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle+import Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles+import Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization+import Graphics.Vulkan.Extensions.VK_EXT_swapchain_colorspace+import Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata+import Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image+import Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities+import Graphics.Vulkan.Extensions.VK_KHR_external_fence+#if defined(VK_USE_PLATFORM_WIN32_KHR)+import Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32+#endif+import Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd+import Graphics.Vulkan.Extensions.VK_KHR_maintenance2+import Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2+import Graphics.Vulkan.Extensions.VK_KHR_variable_pointers+#if defined(VK_USE_PLATFORM_IOS_MVK)+import Graphics.Vulkan.Extensions.VK_MVK_ios_surface+#endif+#if defined(VK_USE_PLATFORM_MACOS_MVK)+import Graphics.Vulkan.Extensions.VK_MVK_macos_surface+#endif+import Graphics.Vulkan.Extensions.VK_EXT_external_memory_dma_buf+import Graphics.Vulkan.Extensions.VK_EXT_queue_family_foreign+import Graphics.Vulkan.Extensions.VK_KHR_dedicated_allocation+import Graphics.Vulkan.Extensions.VK_EXT_debug_utils+#if defined(VK_USE_PLATFORM_ANDROID_KHR)+import Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer+#endif+import Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax+import Graphics.Vulkan.Extensions.VK_KHR_storage_buffer_storage_class+import Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_int16+import Graphics.Vulkan.Extensions.VK_AMD_mixed_attachment_samples+import Graphics.Vulkan.Extensions.VK_AMD_shader_fragment_mask+import Graphics.Vulkan.Extensions.VK_EXT_shader_stencil_export+import Graphics.Vulkan.Extensions.VK_EXT_sample_locations+import Graphics.Vulkan.Extensions.VK_KHR_relaxed_block_layout+import Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2+import Graphics.Vulkan.Extensions.VK_KHR_image_format_list+import Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced+import Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color+import Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples+import Graphics.Vulkan.Extensions.VK_NV_fill_rectangle+import Graphics.Vulkan.Extensions.VK_EXT_post_depth_coverage+import Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion+import Graphics.Vulkan.Extensions.VK_KHR_bind_memory2+import Graphics.Vulkan.Extensions.VK_EXT_validation_cache+import Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing+import Graphics.Vulkan.Extensions.VK_EXT_shader_viewport_index_layer+import Graphics.Vulkan.Extensions.VK_KHR_maintenance3+import Graphics.Vulkan.Extensions.VK_EXT_global_priority+import Graphics.Vulkan.Extensions.VK_EXT_external_memory_host+import Graphics.Vulkan.Extensions.VK_AMD_buffer_marker+import Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties+import Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+import Graphics.Vulkan.Extensions.VK_NV_shader_subgroup_partitioned+++
+ src/Graphics/Vulkan/Extensions/VK_AMD_buffer_marker.hs view
@@ -0,0 +1,152 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_AMD_buffer_marker+  ( pattern VK_AMD_BUFFER_MARKER_SPEC_VERSION+  , pattern VK_AMD_BUFFER_MARKER_EXTENSION_NAME+  , vkCmdWriteBufferMarkerAMD+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  )+import Graphics.Vulkan.Core10.Queue+  ( VkPipelineStageFlagBits(..)+  , VkCommandBuffer+  )+++-- No documentation found for TopLevel "VK_AMD_BUFFER_MARKER_SPEC_VERSION"+pattern VK_AMD_BUFFER_MARKER_SPEC_VERSION :: Integral a => a+pattern VK_AMD_BUFFER_MARKER_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_BUFFER_MARKER_EXTENSION_NAME"+pattern VK_AMD_BUFFER_MARKER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_BUFFER_MARKER_EXTENSION_NAME = "VK_AMD_buffer_marker"+-- | vkCmdWriteBufferMarkerAMD - Execute a pipelined write of a marker value+-- into a buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @pipelineStage@ is one of the+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' values,+--     specifying the pipeline stage whose completion triggers the marker+--     write.+--+-- -   @dstBuffer@ is the buffer where the marker will be written to.+--+-- -   @dstOffset@ is the byte offset into the buffer where the marker will+--     be written to.+--+-- -   @marker@ is the 32-bit value of the marker.+--+-- = Description+-- #_description#+--+-- The command will write the 32-bit marker value into the buffer only+-- after all preceding commands have finished executing up to at least the+-- specified pipeline stage. This includes the completion of other+-- preceding @vkCmdWriteBufferMarkerAMD@ commands so long as their+-- specified pipeline stages occur either at the same time or earlier than+-- this command’s specified @pipelineStage@.+--+-- While consecutive buffer marker writes with the same @pipelineStage@+-- parameter are implicitly complete in submission order, memory and+-- execution dependencies between buffer marker writes and other operations+-- must still be explicitly ordered using synchronization commands. The+-- access scope for buffer marker writes falls under the+-- @VK_ACCESS_TRANSFER_WRITE_BIT@, and the pipeline stages for identifying+-- the synchronization scope /must/ include both @pipelineStage@ and+-- @VK_PIPELINE_STAGE_TRANSFER_BIT@.+--+-- __Note__+--+-- Similar to @vkCmdWriteTimestamp@, if an implementation is unable to+-- write a marker at any specific pipeline stage, it /may/ instead do so at+-- any logically later stage.+--+-- __Note__+--+-- Implementations /may/ only support a limited number of pipelined marker+-- write operations in flight at a given time, thus excessive number of+-- marker write operations /may/ degrade command execution performance.+--+-- == Valid Usage+--+-- -   @dstOffset@ /must/ be less than or equal to the size of @dstBuffer@+--     minus @4@.+--+-- -   @dstBuffer@ /must/ have been created with+--     @VK_BUFFER_USAGE_TRANSFER_DST_BIT@ usage flag+--+-- -   If @dstBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @dstOffset@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pipelineStage@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits' value+--+-- -   @dstBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support transfer, graphics, or compute operations+--+-- -   Both of @commandBuffer@, and @dstBuffer@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Transfer        | Transfer        |+-- > | Secondary       |                 | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@,+-- 'Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits'+foreign import ccall "vkCmdWriteBufferMarkerAMD" vkCmdWriteBufferMarkerAMD :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineStage" ::: VkPipelineStageFlagBits) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("marker" ::: Word32) -> IO ()
+ src/Graphics/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs view
@@ -0,0 +1,469 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count+  ( pattern VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION+  , pattern VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME+  , vkCmdDrawIndirectCountAMD+  , vkCmdDrawIndexedIndirectCountAMD+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+++-- No documentation found for TopLevel "VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION"+pattern VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION :: Integral a => a+pattern VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME"+pattern VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME = "VK_AMD_draw_indirect_count"+-- | vkCmdDrawIndirectCountAMD - Perform an indirect draw with the draw count+-- sourced from a buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @buffer@ is the buffer containing draw parameters.+--+-- -   @offset@ is the byte offset into @buffer@ where parameters begin.+--+-- -   @countBuffer@ is the buffer containing the draw count.+--+-- -   @countBufferOffset@ is the byte offset into @countBuffer@ where the+--     draw count begins.+--+-- -   @maxDrawCount@ specifies the maximum number of draws that will be+--     executed. The actual number of executed draw calls is the minimum of+--     the count specified in @countBuffer@ and @maxDrawCount@.+--+-- -   @stride@ is the byte stride between successive sets of draw+--     parameters.+--+-- = Description+-- #_description#+--+-- @vkCmdDrawIndirectCountAMD@ behaves similarly to+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndirect' except+-- that the draw count is read by the device from a buffer during+-- execution. The command will read an unsigned 32-bit integer from+-- @countBuffer@ located at @countBufferOffset@ and use this as the draw+-- count.+--+-- == Valid Usage+--+-- -   If @buffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @buffer@ /must/ have been created with the+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set+--+-- -   If @countBuffer@ is non-sparse then it /must/ be bound completely+--     and contiguously to a single @VkDeviceMemory@ object+--+-- -   @countBuffer@ /must/ have been created with the+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set+--+-- -   @offset@ /must/ be a multiple of @4@+--+-- -   @countBufferOffset@ /must/ be a multiple of @4@+--+-- -   @stride@ /must/ be a multiple of @4@ and /must/ be greater than or+--     equal to @sizeof@(@VkDrawIndirectCommand@)+--+-- -   If @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×+--     (@maxDrawCount@ - 1) + @offset@ + @sizeof@(@VkDrawIndirectCommand@))+--     /must/ be less than or equal to the size of @buffer@+--+-- -   If the+--     <{html_spec_relative}#features-features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     feature is not enabled, all the @firstInstance@ members of the+--     @VkDrawIndirectCommand@ structures accessed by this command /must/+--     be @0@+--+-- -   The current render pass /must/ be+--     <{html_spec_relative}#renderpass-compatibility compatible> with the+--     @renderPass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   The subpass index of the current render pass /must/ be equal to the+--     @subpass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   For each set /n/ that is statically used by the @VkPipeline@ bound+--     to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a descriptor set /must/ have+--     been bound to /n/ at @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for set /n/, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   For each push constant that is statically used by the @VkPipeline@+--     bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a push constant value+--     /must/ have been set for @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for push constants, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   Descriptors in each bound descriptor set, specified via+--     @vkCmdBindDescriptorSets@, /must/ be valid if they are statically+--     used by the bound @VkPipeline@ object, specified via+--     @vkCmdBindPipeline@+--+-- -   All vertex input bindings accessed via vertex input variables+--     declared in the vertex shader entry point’s interface /must/ have+--     valid buffers bound+--+-- -   A valid graphics pipeline /must/ be bound to the current command+--     buffer with @VK_PIPELINE_BIND_POINT_GRAPHICS@+--+-- -   If the @VkPipeline@ object bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@ requires any dynamic state, that+--     state /must/ have been set on the current command buffer+--+-- -   If the count stored in @countBuffer@ is equal to @1@, (@offset@ ++--     @sizeof@(@VkDrawIndirectCommand@)) /must/ be less than or equal to+--     the size of @buffer@+--+-- -   If the count stored in @countBuffer@ is greater than @1@, (@stride@+--     × (@drawCount@ - 1) + @offset@ + @sizeof@(@VkDrawIndirectCommand@))+--     /must/ be less than or equal to the size of @buffer@+--+-- -   The count stored in @countBuffer@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDrawIndirectCount@+--+-- -   Every input attachment used by the current subpass /must/ be bound+--     to the pipeline via a descriptor set+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used to sample from any+--     @VkImage@ with a @VkImageView@ of the type @VK_IMAGE_VIEW_TYPE_3D@,+--     @VK_IMAGE_VIEW_TYPE_CUBE@, @VK_IMAGE_VIEW_TYPE_1D_ARRAY@,+--     @VK_IMAGE_VIEW_TYPE_2D_ARRAY@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@, in+--     any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a uniform+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a storage+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   Any @VkImageView@ being sampled with @VK_FILTER_LINEAR@ as a result+--     of this command /must/ be of a format which supports linear+--     filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- -   Image subresources used as attachments in the current render pass+--     /must/ not be accessed in any way other than as an attachment by+--     this command.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @countBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- -   Each of @buffer@, @commandBuffer@, and @countBuffer@ /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@+foreign import ccall "vkCmdDrawIndirectCountAMD" vkCmdDrawIndirectCountAMD :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("countBuffer" ::: VkBuffer) -> ("countBufferOffset" ::: VkDeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()+-- | vkCmdDrawIndexedIndirectCountAMD - Perform an indexed indirect draw with+-- the draw count sourced from a buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @buffer@ is the buffer containing draw parameters.+--+-- -   @offset@ is the byte offset into @buffer@ where parameters begin.+--+-- -   @countBuffer@ is the buffer containing the draw count.+--+-- -   @countBufferOffset@ is the byte offset into @countBuffer@ where the+--     draw count begins.+--+-- -   @maxDrawCount@ specifies the maximum number of draws that will be+--     executed. The actual number of executed draw calls is the minimum of+--     the count specified in @countBuffer@ and @maxDrawCount@.+--+-- -   @stride@ is the byte stride between successive sets of draw+--     parameters.+--+-- = Description+-- #_description#+--+-- @vkCmdDrawIndexedIndirectCountAMD@ behaves similarly to+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdDrawIndexedIndirect'+-- except that the draw count is read by the device from a buffer during+-- execution. The command will read an unsigned 32-bit integer from+-- @countBuffer@ located at @countBufferOffset@ and use this as the draw+-- count.+--+-- == Valid Usage+--+-- -   If @buffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single @VkDeviceMemory@ object+--+-- -   @buffer@ /must/ have been created with the+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set+--+-- -   If @countBuffer@ is non-sparse then it /must/ be bound completely+--     and contiguously to a single @VkDeviceMemory@ object+--+-- -   @countBuffer@ /must/ have been created with the+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set+--+-- -   @offset@ /must/ be a multiple of @4@+--+-- -   @countBufferOffset@ /must/ be a multiple of @4@+--+-- -   @stride@ /must/ be a multiple of @4@ and /must/ be greater than or+--     equal to @sizeof@(@VkDrawIndirectCommand@)+--+-- -   If @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×+--     (@maxDrawCount@ - 1) + @offset@ + @sizeof@(@VkDrawIndirectCommand@))+--     /must/ be less than or equal to the size of @buffer@+--+-- -   If the+--     <{html_spec_relative}#features-features-drawIndirectFirstInstance drawIndirectFirstInstance>+--     feature is not enabled, all the @firstInstance@ members of the+--     @VkDrawIndexedIndirectCommand@ structures accessed by this command+--     /must/ be @0@+--+-- -   The current render pass /must/ be+--     <{html_spec_relative}#renderpass-compatibility compatible> with the+--     @renderPass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   The subpass index of the current render pass /must/ be equal to the+--     @subpass@ member of the @VkGraphicsPipelineCreateInfo@ structure+--     specified when creating the @VkPipeline@ bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@.+--+-- -   For each set /n/ that is statically used by the @VkPipeline@ bound+--     to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a descriptor set /must/ have+--     been bound to /n/ at @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for set /n/, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   For each push constant that is statically used by the @VkPipeline@+--     bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@, a push constant value+--     /must/ have been set for @VK_PIPELINE_BIND_POINT_GRAPHICS@, with a+--     @VkPipelineLayout@ that is compatible for push constants, with the+--     @VkPipelineLayout@ used to create the current @VkPipeline@, as+--     described in+--     <{html_spec_relative}#descriptorsets-compatibility {html_spec_relative}#descriptorsets-compatibility>+--+-- -   Descriptors in each bound descriptor set, specified via+--     @vkCmdBindDescriptorSets@, /must/ be valid if they are statically+--     used by the bound @VkPipeline@ object, specified via+--     @vkCmdBindPipeline@+--+-- -   All vertex input bindings accessed via vertex input variables+--     declared in the vertex shader entry point’s interface /must/ have+--     valid buffers bound+--+-- -   A valid graphics pipeline /must/ be bound to the current command+--     buffer with @VK_PIPELINE_BIND_POINT_GRAPHICS@+--+-- -   If the @VkPipeline@ object bound to+--     @VK_PIPELINE_BIND_POINT_GRAPHICS@ requires any dynamic state, that+--     state /must/ have been set on the current command buffer+--+-- -   If count stored in @countBuffer@ is equal to @1@, (@offset@ ++--     @sizeof@(@VkDrawIndexedIndirectCommand@)) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   If count stored in @countBuffer@ is greater than @1@, (@stride@ ×+--     (@drawCount@ - 1) + @offset@ ++--     @sizeof@(@VkDrawIndexedIndirectCommand@)) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   @drawCount@ /must/ be less than or equal to+--     @VkPhysicalDeviceLimits@::@maxDrawIndirectCount@+--+-- -   Every input attachment used by the current subpass /must/ be bound+--     to the pipeline via a descriptor set+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used to sample from any+--     @VkImage@ with a @VkImageView@ of the type @VK_IMAGE_VIEW_TYPE_3D@,+--     @VK_IMAGE_VIEW_TYPE_CUBE@, @VK_IMAGE_VIEW_TYPE_1D_ARRAY@,+--     @VK_IMAGE_VIEW_TYPE_2D_ARRAY@ or @VK_IMAGE_VIEW_TYPE_CUBE_ARRAY@, in+--     any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   If any @VkSampler@ object that is accessed from a shader by the+--     @VkPipeline@ bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ uses+--     unnormalized coordinates, it /must/ not be used with any of the+--     SPIR-V @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a uniform+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   If the+--     <{html_spec_relative}#features-features-robustBufferAccess robust buffer access>+--     feature is not enabled, and any shader stage in the @VkPipeline@+--     object bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@ accesses a storage+--     buffer, it /must/ not access values outside of the range of that+--     buffer specified in the bound descriptor set+--+-- -   Any @VkImageView@ being sampled with @VK_FILTER_LINEAR@ as a result+--     of this command /must/ be of a format which supports linear+--     filtering, as specified by the+--     @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ flag in+--     @VkFormatProperties@::@linearTilingFeatures@ (for a linear image) or+--     @VkFormatProperties@::@optimalTilingFeatures@(for an optimally tiled+--     image) returned by @vkGetPhysicalDeviceFormatProperties@+--+-- -   Image subresources used as attachments in the current render pass+--     /must/ not be accessed in any way other than as an attachment by+--     this command.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @countBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- -   Each of @buffer@, @commandBuffer@, and @countBuffer@ /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        | Graphics        |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@+foreign import ccall "vkCmdDrawIndexedIndirectCountAMD" vkCmdDrawIndexedIndirectCountAMD :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("countBuffer" ::: VkBuffer) -> ("countBufferOffset" ::: VkDeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()
+ src/Graphics/Vulkan/Extensions/VK_AMD_gcn_shader.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_gcn_shader+  ( pattern VK_AMD_GCN_SHADER_SPEC_VERSION+  , pattern VK_AMD_GCN_SHADER_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_GCN_SHADER_SPEC_VERSION"+pattern VK_AMD_GCN_SHADER_SPEC_VERSION :: Integral a => a+pattern VK_AMD_GCN_SHADER_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_GCN_SHADER_EXTENSION_NAME"+pattern VK_AMD_GCN_SHADER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_GCN_SHADER_EXTENSION_NAME = "VK_AMD_gcn_shader"
+ src/Graphics/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_half_float+  ( pattern VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION+  , pattern VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION"+pattern VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION :: Integral a => a+pattern VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME"+pattern VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME = "VK_AMD_gpu_shader_half_float"
+ src/Graphics/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_int16+  ( pattern VK_AMD_GPU_SHADER_INT16_SPEC_VERSION+  , pattern VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_GPU_SHADER_INT16_SPEC_VERSION"+pattern VK_AMD_GPU_SHADER_INT16_SPEC_VERSION :: Integral a => a+pattern VK_AMD_GPU_SHADER_INT16_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME"+pattern VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME = "VK_AMD_gpu_shader_int16"
+ src/Graphics/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_mixed_attachment_samples+  ( pattern VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION+  , pattern VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION"+pattern VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION :: Integral a => a+pattern VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME"+pattern VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME = "VK_AMD_mixed_attachment_samples"
+ src/Graphics/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_negative_viewport_height+  ( pattern VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION+  , pattern VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION"+pattern VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION :: Integral a => a+pattern VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME"+pattern VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME = "VK_AMD_negative_viewport_height"
+ src/Graphics/Vulkan/Extensions/VK_AMD_rasterization_order.hs view
@@ -0,0 +1,146 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_AMD_rasterization_order+  ( VkRasterizationOrderAMD(..)+  , pattern VK_RASTERIZATION_ORDER_STRICT_AMD+  , pattern VK_RASTERIZATION_ORDER_RELAXED_AMD+  , pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD+  , pattern VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION+  , pattern VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME+  , VkPipelineRasterizationStateRasterizationOrderAMD(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+++-- ** VkRasterizationOrderAMD++-- | VkRasterizationOrderAMD - Specify rasterization order for a graphics+-- pipeline+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineRasterizationStateRasterizationOrderAMD'+newtype VkRasterizationOrderAMD = VkRasterizationOrderAMD Int32+  deriving (Eq, Ord, Storable)++instance Show VkRasterizationOrderAMD where+  showsPrec _ VK_RASTERIZATION_ORDER_STRICT_AMD = showString "VK_RASTERIZATION_ORDER_STRICT_AMD"+  showsPrec _ VK_RASTERIZATION_ORDER_RELAXED_AMD = showString "VK_RASTERIZATION_ORDER_RELAXED_AMD"+  showsPrec p (VkRasterizationOrderAMD x) = showParen (p >= 11) (showString "VkRasterizationOrderAMD " . showsPrec 11 x)++instance Read VkRasterizationOrderAMD where+  readPrec = parens ( choose [ ("VK_RASTERIZATION_ORDER_STRICT_AMD",  pure VK_RASTERIZATION_ORDER_STRICT_AMD)+                             , ("VK_RASTERIZATION_ORDER_RELAXED_AMD", pure VK_RASTERIZATION_ORDER_RELAXED_AMD)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkRasterizationOrderAMD")+                        v <- step readPrec+                        pure (VkRasterizationOrderAMD v)+                        )+                    )++-- | @VK_RASTERIZATION_ORDER_STRICT_AMD@ specifies that operations for each+-- primitive in a subpass /must/ occur in+-- <{html_spec_relative}#drawing-primitive-order primitive order>.+pattern VK_RASTERIZATION_ORDER_STRICT_AMD :: VkRasterizationOrderAMD+pattern VK_RASTERIZATION_ORDER_STRICT_AMD = VkRasterizationOrderAMD 0++-- | @VK_RASTERIZATION_ORDER_RELAXED_AMD@ specifies that operations for each+-- primitive in a subpass /may/ not occur in+-- <{html_spec_relative}#drawing-primitive-order primitive order>.+pattern VK_RASTERIZATION_ORDER_RELAXED_AMD :: VkRasterizationOrderAMD+pattern VK_RASTERIZATION_ORDER_RELAXED_AMD = VkRasterizationOrderAMD 1+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"+pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = VkStructureType 1000018000+-- No documentation found for TopLevel "VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION"+pattern VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION :: Integral a => a+pattern VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME"+pattern VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME = "VK_AMD_rasterization_order"+-- | VkPipelineRasterizationStateRasterizationOrderAMD - Structure defining+-- rasterization order for a graphics pipeline+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD@+--+-- -   @rasterizationOrder@ /must/ be a valid 'VkRasterizationOrderAMD'+--     value+--+-- If the @{html_spec_relative}#VK_AMD_rasterization_order@ device+-- extension is not enabled or the application does not request a+-- particular rasterization order through specifying a+-- @VkPipelineRasterizationStateRasterizationOrderAMD@ structure then the+-- rasterization order used by the graphics pipeline defaults to+-- @VK_RASTERIZATION_ORDER_STRICT_AMD@.+--+-- = See Also+-- #_see_also#+--+-- 'VkRasterizationOrderAMD', 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineRasterizationStateRasterizationOrderAMD = VkPipelineRasterizationStateRasterizationOrderAMD+  { -- No documentation found for Nested "VkPipelineRasterizationStateRasterizationOrderAMD" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineRasterizationStateRasterizationOrderAMD" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineRasterizationStateRasterizationOrderAMD" "vkRasterizationOrder"+  vkRasterizationOrder :: VkRasterizationOrderAMD+  }+  deriving (Eq, Show)++instance Storable VkPipelineRasterizationStateRasterizationOrderAMD where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPipelineRasterizationStateRasterizationOrderAMD <$> peek (ptr `plusPtr` 0)+                                                               <*> peek (ptr `plusPtr` 8)+                                                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineRasterizationStateRasterizationOrderAMD))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineRasterizationStateRasterizationOrderAMD))+                *> poke (ptr `plusPtr` 16) (vkRasterizationOrder (poked :: VkPipelineRasterizationStateRasterizationOrderAMD))
+ src/Graphics/Vulkan/Extensions/VK_AMD_shader_ballot.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_shader_ballot+  ( pattern VK_AMD_SHADER_BALLOT_SPEC_VERSION+  , pattern VK_AMD_SHADER_BALLOT_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_SHADER_BALLOT_SPEC_VERSION"+pattern VK_AMD_SHADER_BALLOT_SPEC_VERSION :: Integral a => a+pattern VK_AMD_SHADER_BALLOT_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_SHADER_BALLOT_EXTENSION_NAME"+pattern VK_AMD_SHADER_BALLOT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_SHADER_BALLOT_EXTENSION_NAME = "VK_AMD_shader_ballot"
+ src/Graphics/Vulkan/Extensions/VK_AMD_shader_core_properties.hs view
@@ -0,0 +1,188 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD+  , pattern VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION+  , pattern VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME+  , VkPhysicalDeviceShaderCorePropertiesAMD(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = VkStructureType 1000185000+-- No documentation found for TopLevel "VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION"+pattern VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION :: Integral a => a+pattern VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME"+pattern VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME = "VK_AMD_shader_core_properties"+-- | VkPhysicalDeviceShaderCorePropertiesAMD - Structure describing shader+-- core properties that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceShaderCorePropertiesAMD@ structure+-- describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @shaderEngineCount@ is an unsigned integer value indicating the+--     number of shader engines found inside the shader core of the+--     physical device.+--+-- -   @shaderArraysPerEngineCount@ is an unsigned integer value indicating+--     the number of shader arrays inside a shader engine. Each shader+--     array has its own scan converter, set of compute units, and a render+--     back end (color and depth buffers). Shader arrays within a shader+--     engine share shader processor input (wave launcher) and shader+--     export (export buffer) units. Currently, a shader engine can have+--     one or two shader arrays.+--+-- -   @computeUnitsPerShaderArray@ is an unsigned integer value indicating+--     the number of compute units within a shader array. A compute unit+--     houses a set of SIMDs along with a sequencer module and a local data+--     store.+--+-- -   @simdPerComputeUnit@ is an unsigned integer value indicating the+--     number of SIMDs inside a compute unit. Each SIMD processes a single+--     instruction at a time.+--+-- -   @wavefrontSize@ is an unsigned integer value indicating the number+--     of channels (or threads) in a wavefront.+--+-- -   @sgprsPerSimd@ is an unsigned integer value indicating the number of+--     physical Scalar General Purpose Registers (SGPRs) per SIMD.+--+-- -   @minSgprAllocation@ is an unsigned integer value indicating the+--     minimum number of SGPRs allocated for a wave.+--+-- -   @maxSgprAllocation@ is an unsigned integer value indicating the+--     maximum number of SGPRs allocated for a wave.+--+-- -   @sgprAllocationGranularity@ is an unsigned integer value indicating+--     the granularity of SGPR allocation for a wave.+--+-- -   @vgprsPerSimd@ is an unsigned integer value indicating the number of+--     physical Vector General Purpose Registers (VGPRs) per SIMD.+--+-- -   @minVgprAllocation@ is an unsigned integer value indicating the+--     minimum number of VGPRs allocated for a wave.+--+-- -   @maxVgprAllocation@ is an unsigned integer value indicating the+--     maximum number of VGPRs allocated for a wave.+--+-- -   @vgprAllocationGranularity@ is an unsigned integer value indicating+--     the granularity of VGPR allocation for a wave.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD@+--+-- If the @VkPhysicalDeviceShaderCorePropertiesAMD@ structure is included+-- in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceShaderCorePropertiesAMD = VkPhysicalDeviceShaderCorePropertiesAMD+  { -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkShaderEngineCount"+  vkShaderEngineCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkShaderArraysPerEngineCount"+  vkShaderArraysPerEngineCount :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkComputeUnitsPerShaderArray"+  vkComputeUnitsPerShaderArray :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkSimdPerComputeUnit"+  vkSimdPerComputeUnit :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkWavefrontsPerSimd"+  vkWavefrontsPerSimd :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkWavefrontSize"+  vkWavefrontSize :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkSgprsPerSimd"+  vkSgprsPerSimd :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkMinSgprAllocation"+  vkMinSgprAllocation :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkMaxSgprAllocation"+  vkMaxSgprAllocation :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkSgprAllocationGranularity"+  vkSgprAllocationGranularity :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkVgprsPerSimd"+  vkVgprsPerSimd :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkMinVgprAllocation"+  vkMinVgprAllocation :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkMaxVgprAllocation"+  vkMaxVgprAllocation :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceShaderCorePropertiesAMD" "vkVgprAllocationGranularity"+  vkVgprAllocationGranularity :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceShaderCorePropertiesAMD where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceShaderCorePropertiesAMD <$> peek (ptr `plusPtr` 0)+                                                     <*> peek (ptr `plusPtr` 8)+                                                     <*> peek (ptr `plusPtr` 16)+                                                     <*> peek (ptr `plusPtr` 20)+                                                     <*> peek (ptr `plusPtr` 24)+                                                     <*> peek (ptr `plusPtr` 28)+                                                     <*> peek (ptr `plusPtr` 32)+                                                     <*> peek (ptr `plusPtr` 36)+                                                     <*> peek (ptr `plusPtr` 40)+                                                     <*> peek (ptr `plusPtr` 44)+                                                     <*> peek (ptr `plusPtr` 48)+                                                     <*> peek (ptr `plusPtr` 52)+                                                     <*> peek (ptr `plusPtr` 56)+                                                     <*> peek (ptr `plusPtr` 60)+                                                     <*> peek (ptr `plusPtr` 64)+                                                     <*> peek (ptr `plusPtr` 68)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 16) (vkShaderEngineCount (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 20) (vkShaderArraysPerEngineCount (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 24) (vkComputeUnitsPerShaderArray (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 28) (vkSimdPerComputeUnit (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 32) (vkWavefrontsPerSimd (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 36) (vkWavefrontSize (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 40) (vkSgprsPerSimd (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 44) (vkMinSgprAllocation (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 48) (vkMaxSgprAllocation (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 52) (vkSgprAllocationGranularity (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 56) (vkVgprsPerSimd (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 60) (vkMinVgprAllocation (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 64) (vkMaxVgprAllocation (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))+                *> poke (ptr `plusPtr` 68) (vkVgprAllocationGranularity (poked :: VkPhysicalDeviceShaderCorePropertiesAMD))
+ src/Graphics/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter+  ( pattern VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION+  , pattern VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION"+pattern VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION :: Integral a => a+pattern VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME"+pattern VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME = "VK_AMD_shader_explicit_vertex_parameter"
+ src/Graphics/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_shader_fragment_mask+  ( pattern VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION+  , pattern VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION"+pattern VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION :: Integral a => a+pattern VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME"+pattern VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME = "VK_AMD_shader_fragment_mask"
+ src/Graphics/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_shader_image_load_store_lod+  ( pattern VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION+  , pattern VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION"+pattern VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION :: Integral a => a+pattern VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME"+pattern VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME = "VK_AMD_shader_image_load_store_lod"
+ src/Graphics/Vulkan/Extensions/VK_AMD_shader_info.hs view
@@ -0,0 +1,311 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_AMD_shader_info+  ( VkShaderInfoTypeAMD(..)+  , pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD+  , pattern VK_SHADER_INFO_TYPE_BINARY_AMD+  , pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD+  , pattern VK_AMD_SHADER_INFO_SPEC_VERSION+  , pattern VK_AMD_SHADER_INFO_EXTENSION_NAME+  , vkGetShaderInfoAMD+  , VkShaderResourceUsageAMD(..)+  , VkShaderStatisticsInfoAMD(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkShaderStageFlagBits(..)+  , VkPipeline+  )+import Graphics.Vulkan.Core10.PipelineLayout+  ( VkShaderStageFlags+  )+++-- ** VkShaderInfoTypeAMD++-- No documentation found for TopLevel "VkShaderInfoTypeAMD"+newtype VkShaderInfoTypeAMD = VkShaderInfoTypeAMD Int32+  deriving (Eq, Ord, Storable)++instance Show VkShaderInfoTypeAMD where+  showsPrec _ VK_SHADER_INFO_TYPE_STATISTICS_AMD = showString "VK_SHADER_INFO_TYPE_STATISTICS_AMD"+  showsPrec _ VK_SHADER_INFO_TYPE_BINARY_AMD = showString "VK_SHADER_INFO_TYPE_BINARY_AMD"+  showsPrec _ VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = showString "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD"+  showsPrec p (VkShaderInfoTypeAMD x) = showParen (p >= 11) (showString "VkShaderInfoTypeAMD " . showsPrec 11 x)++instance Read VkShaderInfoTypeAMD where+  readPrec = parens ( choose [ ("VK_SHADER_INFO_TYPE_STATISTICS_AMD",  pure VK_SHADER_INFO_TYPE_STATISTICS_AMD)+                             , ("VK_SHADER_INFO_TYPE_BINARY_AMD",      pure VK_SHADER_INFO_TYPE_BINARY_AMD)+                             , ("VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD", pure VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkShaderInfoTypeAMD")+                        v <- step readPrec+                        pure (VkShaderInfoTypeAMD v)+                        )+                    )++-- No documentation found for Nested "VkShaderInfoTypeAMD" "VK_SHADER_INFO_TYPE_STATISTICS_AMD"+pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD :: VkShaderInfoTypeAMD+pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD = VkShaderInfoTypeAMD 0++-- No documentation found for Nested "VkShaderInfoTypeAMD" "VK_SHADER_INFO_TYPE_BINARY_AMD"+pattern VK_SHADER_INFO_TYPE_BINARY_AMD :: VkShaderInfoTypeAMD+pattern VK_SHADER_INFO_TYPE_BINARY_AMD = VkShaderInfoTypeAMD 1++-- No documentation found for Nested "VkShaderInfoTypeAMD" "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD"+pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD :: VkShaderInfoTypeAMD+pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = VkShaderInfoTypeAMD 2+-- No documentation found for TopLevel "VK_AMD_SHADER_INFO_SPEC_VERSION"+pattern VK_AMD_SHADER_INFO_SPEC_VERSION :: Integral a => a+pattern VK_AMD_SHADER_INFO_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_SHADER_INFO_EXTENSION_NAME"+pattern VK_AMD_SHADER_INFO_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_SHADER_INFO_EXTENSION_NAME = "VK_AMD_shader_info"+-- | vkGetShaderInfoAMD - Get information about a shader in a pipeline+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device that created @pipeline@.+--+-- -   @pipeline@ is the target of the query.+--+-- -   @shaderStage@ identifies the particular shader within the pipeline+--     about which information is being queried.+--+-- -   @infoType@ describes what kind of information is being queried.+--+-- -   @pInfoSize@ is a pointer to a value related to the amount of data+--     the query returns, as described below.+--+-- -   @pInfo@ is either NULL or a pointer to a buffer.+--+-- = Description+-- #_description#+--+-- If @pInfo@ is @NULL@, then the maximum size of the information that+-- /can/ be retrieved about the shader, in bytes, is returned in+-- @pInfoSize@. Otherwise, @pInfoSize@ /must/ point to a variable set by+-- the user to the size of the buffer, in bytes, pointed to by @pInfo@, and+-- on return the variable is overwritten with the amount of data actually+-- written to @pInfo@.+--+-- If @pInfoSize@ is less than the maximum size that /can/ be retrieved by+-- the pipeline cache, then at most @pInfoSize@ bytes will be written to+-- @pInfo@, and @vkGetShaderInfoAMD@ will return @VK_INCOMPLETE@.+--+-- Not all information is available for every shader and implementations+-- may not support all kinds of information for any shader. When a certain+-- type of information is unavailable, the function returns+-- @VK_ERROR_FEATURE_NOT_PRESENT@.+--+-- If information is successfully and fully queried, the function will+-- return @VK_SUCCESS@.+--+-- For @VK_SHADER_INFO_TYPE_STATISTICS_AMD@, an instance of+-- @VkShaderStatisticsInfoAMD@ will be written to the buffer pointed to by+-- @pInfo@. This structure will be populated with statistics regarding the+-- physical device resources used by that shader along with other+-- miscellaneous information and is described in further detail below.+--+-- For @VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD@, @pInfo@ points to a UTF-8+-- null-terminated string containing human-readable disassembly. The exact+-- formatting and contents of the disassembly string are vendor-specific.+--+-- The formatting and contents of all other types of information, including+-- @VK_SHADER_INFO_TYPE_BINARY_AMD@, are left to the vendor and are not+-- further specified by this extension.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pipeline@ /must/ be a valid @VkPipeline@ handle+--+-- -   @shaderStage@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits' value+--+-- -   @infoType@ /must/ be a valid 'VkShaderInfoTypeAMD' value+--+-- -   @pInfoSize@ /must/ be a valid pointer to a @size_t@ value+--+-- -   If the value referenced by @pInfoSize@ is not @0@, and @pInfo@ is+--     not @NULL@, @pInfo@ /must/ be a valid pointer to an array of+--     @pInfoSize@ bytes+--+-- -   @pipeline@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_FEATURE_NOT_PRESENT@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipeline', 'VkShaderInfoTypeAMD',+-- 'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits'+foreign import ccall "vkGetShaderInfoAMD" vkGetShaderInfoAMD :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("shaderStage" ::: VkShaderStageFlagBits) -> ("infoType" ::: VkShaderInfoTypeAMD) -> ("pInfoSize" ::: Ptr CSize) -> ("pInfo" ::: Ptr ()) -> IO VkResult+-- | VkShaderResourceUsageAMD - Resource usage information about a particular+-- shader within a pipeline+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkShaderStatisticsInfoAMD'+data VkShaderResourceUsageAMD = VkShaderResourceUsageAMD+  { -- No documentation found for Nested "VkShaderResourceUsageAMD" "vkNumUsedVgprs"+  vkNumUsedVgprs :: Word32+  , -- No documentation found for Nested "VkShaderResourceUsageAMD" "vkNumUsedSgprs"+  vkNumUsedSgprs :: Word32+  , -- No documentation found for Nested "VkShaderResourceUsageAMD" "vkLdsSizePerLocalWorkGroup"+  vkLdsSizePerLocalWorkGroup :: Word32+  , -- No documentation found for Nested "VkShaderResourceUsageAMD" "vkLdsUsageSizeInBytes"+  vkLdsUsageSizeInBytes :: CSize+  , -- No documentation found for Nested "VkShaderResourceUsageAMD" "vkScratchMemUsageInBytes"+  vkScratchMemUsageInBytes :: CSize+  }+  deriving (Eq, Show)++instance Storable VkShaderResourceUsageAMD where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkShaderResourceUsageAMD <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 4)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+                                      <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkNumUsedVgprs (poked :: VkShaderResourceUsageAMD))+                *> poke (ptr `plusPtr` 4) (vkNumUsedSgprs (poked :: VkShaderResourceUsageAMD))+                *> poke (ptr `plusPtr` 8) (vkLdsSizePerLocalWorkGroup (poked :: VkShaderResourceUsageAMD))+                *> poke (ptr `plusPtr` 16) (vkLdsUsageSizeInBytes (poked :: VkShaderResourceUsageAMD))+                *> poke (ptr `plusPtr` 24) (vkScratchMemUsageInBytes (poked :: VkShaderResourceUsageAMD))+-- | VkShaderStatisticsInfoAMD - Statistical information about a particular+-- shader within a pipeline+--+-- = Description+-- #_description#+--+-- Some implementations may merge multiple logical shader stages together+-- in a single shader. In such cases, @shaderStageMask@ will contain a+-- bitmask of all of the stages that are active within that shader.+-- Consequently, if specifying those stages as input to+-- 'vkGetShaderInfoAMD', the same output information /may/ be returned for+-- all such shader stage queries.+--+-- The number of available VGPRs and SGPRs (@numAvailableVgprs@ and+-- @numAvailableSgprs@ respectively) are the shader-addressable subset of+-- physical registers that is given as a limit to the compiler for register+-- assignment. These values /may/ further be limited by implementations due+-- to performance optimizations where register pressure is a bottleneck.+--+-- = See Also+-- #_see_also#+--+-- 'VkShaderResourceUsageAMD',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkShaderStageFlags'+data VkShaderStatisticsInfoAMD = VkShaderStatisticsInfoAMD+  { -- No documentation found for Nested "VkShaderStatisticsInfoAMD" "vkShaderStageMask"+  vkShaderStageMask :: VkShaderStageFlags+  , -- No documentation found for Nested "VkShaderStatisticsInfoAMD" "vkResourceUsage"+  vkResourceUsage :: VkShaderResourceUsageAMD+  , -- No documentation found for Nested "VkShaderStatisticsInfoAMD" "vkNumPhysicalVgprs"+  vkNumPhysicalVgprs :: Word32+  , -- No documentation found for Nested "VkShaderStatisticsInfoAMD" "vkNumPhysicalSgprs"+  vkNumPhysicalSgprs :: Word32+  , -- No documentation found for Nested "VkShaderStatisticsInfoAMD" "vkNumAvailableVgprs"+  vkNumAvailableVgprs :: Word32+  , -- No documentation found for Nested "VkShaderStatisticsInfoAMD" "vkNumAvailableSgprs"+  vkNumAvailableSgprs :: Word32+  , -- No documentation found for Nested "VkShaderStatisticsInfoAMD" "vkComputeWorkGroupSize"+  vkComputeWorkGroupSize :: Vector 3 Word32+  }+  deriving (Eq, Show)++instance Storable VkShaderStatisticsInfoAMD where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkShaderStatisticsInfoAMD <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 40)+                                       <*> peek (ptr `plusPtr` 44)+                                       <*> peek (ptr `plusPtr` 48)+                                       <*> peek (ptr `plusPtr` 52)+                                       <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkShaderStageMask (poked :: VkShaderStatisticsInfoAMD))+                *> poke (ptr `plusPtr` 8) (vkResourceUsage (poked :: VkShaderStatisticsInfoAMD))+                *> poke (ptr `plusPtr` 40) (vkNumPhysicalVgprs (poked :: VkShaderStatisticsInfoAMD))+                *> poke (ptr `plusPtr` 44) (vkNumPhysicalSgprs (poked :: VkShaderStatisticsInfoAMD))+                *> poke (ptr `plusPtr` 48) (vkNumAvailableVgprs (poked :: VkShaderStatisticsInfoAMD))+                *> poke (ptr `plusPtr` 52) (vkNumAvailableSgprs (poked :: VkShaderStatisticsInfoAMD))+                *> poke (ptr `plusPtr` 56) (vkComputeWorkGroupSize (poked :: VkShaderStatisticsInfoAMD))
+ src/Graphics/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_AMD_shader_trinary_minmax+  ( pattern VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION+  , pattern VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION"+pattern VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION :: Integral a => a+pattern VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME"+pattern VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME = "VK_AMD_shader_trinary_minmax"
+ src/Graphics/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs view
@@ -0,0 +1,71 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod+  ( pattern VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD+  , pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION+  , pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME+  , VkTextureLODGatherFormatPropertiesAMD(..)+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"+pattern VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD :: VkStructureType+pattern VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = VkStructureType 1000041000+-- No documentation found for TopLevel "VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION"+pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION :: Integral a => a+pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME"+pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME = "VK_AMD_texture_gather_bias_lod"+-- | VkTextureLODGatherFormatPropertiesAMD - Structure informing whether or+-- not texture gather bias\/LOD functionality is supported for a given+-- image format and a given physical device.+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkTextureLODGatherFormatPropertiesAMD = VkTextureLODGatherFormatPropertiesAMD+  { -- No documentation found for Nested "VkTextureLODGatherFormatPropertiesAMD" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkTextureLODGatherFormatPropertiesAMD" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkTextureLODGatherFormatPropertiesAMD" "vkSupportsTextureGatherLODBiasAMD"+  vkSupportsTextureGatherLODBiasAMD :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkTextureLODGatherFormatPropertiesAMD where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkTextureLODGatherFormatPropertiesAMD <$> peek (ptr `plusPtr` 0)+                                                   <*> peek (ptr `plusPtr` 8)+                                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkTextureLODGatherFormatPropertiesAMD))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkTextureLODGatherFormatPropertiesAMD))+                *> poke (ptr `plusPtr` 16) (vkSupportsTextureGatherLODBiasAMD (poked :: VkTextureLODGatherFormatPropertiesAMD))
+ src/Graphics/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -0,0 +1,557 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer+  ( AHardwareBuffer+  , pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID+  , pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID+  , pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID+  , pattern VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID+  , pattern VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID+  , pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION+  , pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME+  , vkGetAndroidHardwareBufferPropertiesANDROID+  , vkGetMemoryAndroidHardwareBufferANDROID+  , VkImportAndroidHardwareBufferInfoANDROID(..)+  , VkAndroidHardwareBufferUsageANDROID(..)+  , VkAndroidHardwareBufferPropertiesANDROID(..)+  , VkMemoryGetAndroidHardwareBufferInfoANDROID(..)+  , VkAndroidHardwareBufferFormatPropertiesANDROID(..)+  , VkExternalFormatANDROID(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word64+  , Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkFormat(..)+  , VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkFormatFeatureFlags+  , VkDeviceSize+  , VkDevice+  )+import Graphics.Vulkan.Core10.ImageView+  ( VkComponentMapping(..)+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagBits(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion+  ( VkChromaLocation(..)+  , VkSamplerYcbcrRange(..)+  , VkSamplerYcbcrModelConversion(..)+  )+++-- | Opaque data+data AHardwareBuffer+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"+pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID :: VkStructureType+pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = VkStructureType 1000129000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"+pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID :: VkStructureType+pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = VkStructureType 1000129001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"+pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID :: VkStructureType+pattern VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = VkStructureType 1000129002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"+pattern VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = VkStructureType 1000129003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"+pattern VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = VkStructureType 1000129004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"+pattern VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = VkStructureType 1000129005+-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = VkExternalMemoryHandleTypeFlagBits 0x00000400+-- No documentation found for TopLevel "VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION"+pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION :: Integral a => a+pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION = 3+-- No documentation found for TopLevel "VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME"+pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME = "VK_ANDROID_external_memory_android_hardware_buffer"+-- | vkGetAndroidHardwareBufferPropertiesANDROID - Get Properties of External+-- Memory Android Hardware Buffers+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that will be importing @buffer@.+--+-- -   @buffer@ is the Android hardware buffer which will be imported.+--+-- -   @pProperties@ will return properties of @buffer@.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @buffer@ /must/ be a valid Android hardware buffer object with at+--     least one of the @AHARDWAREBUFFER_USAGE_GPU_@* usage flags.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @buffer@ /must/ be a valid pointer to a valid @AHardwareBuffer@+--     value+--+-- -   @pProperties@ /must/ be a valid pointer to a+--     @VkAndroidHardwareBufferPropertiesANDROID@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'VkAndroidHardwareBufferPropertiesANDROID',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkGetAndroidHardwareBufferPropertiesANDROID" vkGetAndroidHardwareBufferPropertiesANDROID :: ("device" ::: VkDevice) -> ("buffer" ::: Ptr AHardwareBuffer) -> ("pProperties" ::: Ptr VkAndroidHardwareBufferPropertiesANDROID) -> IO VkResult+-- | vkGetMemoryAndroidHardwareBufferANDROID - Get an Android hardware buffer+-- for a memory object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the device memory being+--     exported.+--+-- -   @pInfo@ is a pointer to an instance of the+--     'VkMemoryGetAndroidHardwareBufferInfoANDROID' structure containing+--     parameters of the export operation.+--+-- -   @pBuffer@ will return an Android hardware buffer representing the+--     underlying resources of the device memory object.+--+-- = Description+-- #_description#+--+-- Each call to @vkGetMemoryAndroidHardwareBufferANDROID@ /must/ return an+-- Android hardware buffer with a new reference acquired in addition to the+-- reference held by the @VkDeviceMemory@. To avoid leaking resources, the+-- application /must/ release the reference by calling+-- AHardwareBuffer_release when it is no longer needed. When called with+-- the same handle in+-- @VkMemoryGetAndroidHardwareBufferInfoANDROID@::@memory@,+-- @vkGetMemoryAndroidHardwareBufferANDROID@ /must/ return the same Android+-- hardware buffer object. If the device memory was created by importing an+-- Android hardware buffer, @vkGetMemoryAndroidHardwareBufferANDROID@+-- /must/ return that same Android hardware buffer object.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pInfo@ /must/ be a valid pointer to a valid+--     @VkMemoryGetAndroidHardwareBufferInfoANDROID@ structure+--+-- -   @pBuffer@ /must/ be a valid pointer to a valid pointer to a+--     @AHardwareBuffer@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkMemoryGetAndroidHardwareBufferInfoANDROID'+foreign import ccall "vkGetMemoryAndroidHardwareBufferANDROID" vkGetMemoryAndroidHardwareBufferANDROID :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkMemoryGetAndroidHardwareBufferInfoANDROID) -> ("pBuffer" ::: Ptr (Ptr AHardwareBuffer)) -> IO VkResult+-- | VkImportAndroidHardwareBufferInfoANDROID - Import memory from an Android+-- hardware buffer+--+-- = Description+-- #_description#+--+-- If the @vkAllocateMemory@ command succeeds, the implementation /must/+-- acquire a reference to the imported hardware buffer, which it /must/+-- release when the device memory object is freed. If the command fails,+-- the implementation /must/ not retain a reference.+--+-- == Valid Usage+--+-- -   If @buffer@ is not @NULL@, Android hardware buffers /must/ be+--     supported for import, as reported by+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties'+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties'.+--+-- -   If @buffer@ is not @NULL@, it /must/ be a valid Android hardware+--     buffer object with format and usage compatible with Vulkan as+--     described by+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID@+--+-- -   @buffer@ /must/ be a valid pointer to a @AHardwareBuffer@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkImportAndroidHardwareBufferInfoANDROID = VkImportAndroidHardwareBufferInfoANDROID+  { -- No documentation found for Nested "VkImportAndroidHardwareBufferInfoANDROID" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportAndroidHardwareBufferInfoANDROID" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportAndroidHardwareBufferInfoANDROID" "vkBuffer"+  vkBuffer :: Ptr AHardwareBuffer+  }+  deriving (Eq, Show)++instance Storable VkImportAndroidHardwareBufferInfoANDROID where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkImportAndroidHardwareBufferInfoANDROID <$> peek (ptr `plusPtr` 0)+                                                      <*> peek (ptr `plusPtr` 8)+                                                      <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportAndroidHardwareBufferInfoANDROID))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportAndroidHardwareBufferInfoANDROID))+                *> poke (ptr `plusPtr` 16) (vkBuffer (poked :: VkImportAndroidHardwareBufferInfoANDROID))+-- | VkAndroidHardwareBufferUsageANDROID - Struct containing Android hardware+-- buffer usage flags+--+-- = Description+-- #_description#+--+-- The @androidHardwareBufferUsage@ field /must/ include Android hardware+-- buffer usage flags listed in the+-- <{html_spec_relative}#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>+-- table when the corresponding Vulkan image usage or image creation flags+-- are included in the @usage@ or @flags@ fields of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2'.+-- It /must/ include at least one GPU usage flag+-- (@AHARDWAREBUFFER_USAGE_GPU_@*), even if none of the corresponding+-- Vulkan usages or flags are requested.+--+-- __Note__+--+-- Requiring at least one GPU usage flag ensures that Android hardware+-- buffer memory will be allocated in a memory pool accessible to the+-- Vulkan implementation, and that specializing the memory layout based on+-- usage flags doesn’t prevent it from being compatible with Vulkan.+-- Implementations /may/ avoid unnecessary restrictions caused by this+-- requirement by using vendor usage flags to indicate that only the Vulkan+-- uses indicated in+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2'+-- are required.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkAndroidHardwareBufferUsageANDROID = VkAndroidHardwareBufferUsageANDROID+  { -- No documentation found for Nested "VkAndroidHardwareBufferUsageANDROID" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkAndroidHardwareBufferUsageANDROID" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkAndroidHardwareBufferUsageANDROID" "vkAndroidHardwareBufferUsage"+  vkAndroidHardwareBufferUsage :: Word64+  }+  deriving (Eq, Show)++instance Storable VkAndroidHardwareBufferUsageANDROID where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkAndroidHardwareBufferUsageANDROID <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkAndroidHardwareBufferUsageANDROID))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkAndroidHardwareBufferUsageANDROID))+                *> poke (ptr `plusPtr` 16) (vkAndroidHardwareBufferUsage (poked :: VkAndroidHardwareBufferUsageANDROID))+-- | VkAndroidHardwareBufferPropertiesANDROID - Properties of External Memory+-- Android Hardware Buffers+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@, 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetAndroidHardwareBufferPropertiesANDROID'+data VkAndroidHardwareBufferPropertiesANDROID = VkAndroidHardwareBufferPropertiesANDROID+  { -- No documentation found for Nested "VkAndroidHardwareBufferPropertiesANDROID" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkAndroidHardwareBufferPropertiesANDROID" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkAndroidHardwareBufferPropertiesANDROID" "vkAllocationSize"+  vkAllocationSize :: VkDeviceSize+  , -- No documentation found for Nested "VkAndroidHardwareBufferPropertiesANDROID" "vkMemoryTypeBits"+  vkMemoryTypeBits :: Word32+  }+  deriving (Eq, Show)++instance Storable VkAndroidHardwareBufferPropertiesANDROID where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkAndroidHardwareBufferPropertiesANDROID <$> peek (ptr `plusPtr` 0)+                                                      <*> peek (ptr `plusPtr` 8)+                                                      <*> peek (ptr `plusPtr` 16)+                                                      <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkAndroidHardwareBufferPropertiesANDROID))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkAndroidHardwareBufferPropertiesANDROID))+                *> poke (ptr `plusPtr` 16) (vkAllocationSize (poked :: VkAndroidHardwareBufferPropertiesANDROID))+                *> poke (ptr `plusPtr` 24) (vkMemoryTypeBits (poked :: VkAndroidHardwareBufferPropertiesANDROID))+-- | VkMemoryGetAndroidHardwareBufferInfoANDROID - Structure describing an+-- Android hardware buffer memory export operation+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID@+--     /must/ have been included in+--     'Graphics.Vulkan.Extensions.VK_KHR_external_memory.VkExportMemoryAllocateInfoKHR'::@handleTypes@+--     when @memory@ was created.+--+-- -   If the @pNext@ chain of the @VkMemoryAllocateInfo@ used to allocate+--     @memory@ included a @VkMemoryDedicatedAllocateInfo@ with non-NULL+--     @image@ member, then that @image@ /must/ already be bound to+--     @memory@.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetMemoryAndroidHardwareBufferANDROID'+data VkMemoryGetAndroidHardwareBufferInfoANDROID = VkMemoryGetAndroidHardwareBufferInfoANDROID+  { -- No documentation found for Nested "VkMemoryGetAndroidHardwareBufferInfoANDROID" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryGetAndroidHardwareBufferInfoANDROID" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryGetAndroidHardwareBufferInfoANDROID" "vkMemory"+  vkMemory :: VkDeviceMemory+  }+  deriving (Eq, Show)++instance Storable VkMemoryGetAndroidHardwareBufferInfoANDROID where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMemoryGetAndroidHardwareBufferInfoANDROID <$> peek (ptr `plusPtr` 0)+                                                         <*> peek (ptr `plusPtr` 8)+                                                         <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryGetAndroidHardwareBufferInfoANDROID))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryGetAndroidHardwareBufferInfoANDROID))+                *> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkMemoryGetAndroidHardwareBufferInfoANDROID))+-- | VkAndroidHardwareBufferFormatPropertiesANDROID - Structure describing+-- the image format properties of an Android hardware buffer+--+-- = Description+-- #_description#+--+-- If the Android hardware buffer has one of the formats listed in the+-- <{html_spec_relative}#memory-external-android-hardware-buffer-formats Format Equivalence table>,+-- then @format@ /must/ have the equivalent Vulkan format listed in the+-- table. Otherwise, @format@ /may/ be @VK_FORMAT_UNDEFINED@, indicating+-- the Android hardware buffer can only be used with an external format.+--+-- The @formatFeatures@ member /must/ include+-- @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@ and at least one of+-- @VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT@ or+-- @VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT@, and /should/ include+-- @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@ and+-- @VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT@.+--+-- Android hardware buffers with the same external format /must/ have the+-- same support for @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT@,+-- @VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT@,+-- @VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT@,+-- @VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT@,+-- @VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT@,+-- and+-- @VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT@.+-- Other format features /may/ differ between Android hardware buffers that+-- have the same external format. This allows applications to use the same+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversion'+-- object (and samplers and pipelines created from them) for any Android+-- hardware buffers that have the same external format.+--+-- If @format@ is not @VK_FORMAT_UNDEFINED@, then the value of+-- @samplerYcbcrConversionComponents@ /must/ be valid when used as the+-- @components@ member of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo'+-- with that format. If @format@ is @VK_FORMAT_UNDEFINED@, all members of+-- @samplerYcbcrConversionComponents@ /must/ be+-- @VK_COMPONENT_SWIZZLE_IDENTITY@.+--+-- Implementations may not always be able to determine the color model,+-- numerical range, or chroma offsets of the image contents, so the values+-- in @VkAndroidHardwareBufferFormatPropertiesANDROID@ are only+-- suggestions. Applications /should/ treat these values as sensible+-- defaults to use in the absence of more reliable information obtained+-- through some other means. If the underlying physical device is also+-- usable via OpenGL ES with the GL_OES_EGL_image_external extension, the+-- implementation /should/ suggest values that will produce similar sampled+-- values as would be obtained by sampling the same external image via+-- @samplerExternalOES@ in OpenGL ES using equivalent sampler parameters.+--+-- __Note__+--+-- Since GL_OES_EGL_image_external does not require the same sampling and+-- conversion calculations as Vulkan does, achieving identical results+-- between APIs /may/ not be possible on some implementations.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation',+-- 'Graphics.Vulkan.Core10.ImageView.VkComponentMapping',+-- 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlags',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkAndroidHardwareBufferFormatPropertiesANDROID = VkAndroidHardwareBufferFormatPropertiesANDROID+  { -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkExternalFormat"+  vkExternalFormat :: Word64+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkFormatFeatures"+  vkFormatFeatures :: VkFormatFeatureFlags+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkSamplerYcbcrConversionComponents"+  vkSamplerYcbcrConversionComponents :: VkComponentMapping+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkSuggestedYcbcrModel"+  vkSuggestedYcbcrModel :: VkSamplerYcbcrModelConversion+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkSuggestedYcbcrRange"+  vkSuggestedYcbcrRange :: VkSamplerYcbcrRange+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkSuggestedXChromaOffset"+  vkSuggestedXChromaOffset :: VkChromaLocation+  , -- No documentation found for Nested "VkAndroidHardwareBufferFormatPropertiesANDROID" "vkSuggestedYChromaOffset"+  vkSuggestedYChromaOffset :: VkChromaLocation+  }+  deriving (Eq, Show)++instance Storable VkAndroidHardwareBufferFormatPropertiesANDROID where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkAndroidHardwareBufferFormatPropertiesANDROID <$> peek (ptr `plusPtr` 0)+                                                            <*> peek (ptr `plusPtr` 8)+                                                            <*> peek (ptr `plusPtr` 16)+                                                            <*> peek (ptr `plusPtr` 24)+                                                            <*> peek (ptr `plusPtr` 32)+                                                            <*> peek (ptr `plusPtr` 36)+                                                            <*> peek (ptr `plusPtr` 52)+                                                            <*> peek (ptr `plusPtr` 56)+                                                            <*> peek (ptr `plusPtr` 60)+                                                            <*> peek (ptr `plusPtr` 64)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 16) (vkFormat (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 24) (vkExternalFormat (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 32) (vkFormatFeatures (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 36) (vkSamplerYcbcrConversionComponents (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 52) (vkSuggestedYcbcrModel (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 56) (vkSuggestedYcbcrRange (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 60) (vkSuggestedXChromaOffset (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+                *> poke (ptr `plusPtr` 64) (vkSuggestedYChromaOffset (poked :: VkAndroidHardwareBufferFormatPropertiesANDROID))+-- | VkExternalFormatANDROID - Structure containing an Android hardware+-- buffer external format+--+-- = Description+-- #_description#+--+-- If @externalFormat@ is zero, the effect is as if the+-- @VkExternalFormatANDROID@ structure was not present. Otherwise, the+-- image will have the specified external format, and+-- @VkImageCreateInfo@::@format@ /must/ be @VK_FORMAT_UNDEFINED@.+--+-- == Valid Usage+--+-- -   @externalFormat@ /must/ be @0@ or a value returned in the+--     @externalFormat@ member of+--     'VkAndroidHardwareBufferFormatPropertiesANDROID' by an earlier call+--     to 'vkGetAndroidHardwareBufferPropertiesANDROID'+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkExternalFormatANDROID = VkExternalFormatANDROID+  { -- No documentation found for Nested "VkExternalFormatANDROID" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExternalFormatANDROID" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExternalFormatANDROID" "vkExternalFormat"+  vkExternalFormat :: Word64+  }+  deriving (Eq, Show)++instance Storable VkExternalFormatANDROID where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkExternalFormatANDROID <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalFormatANDROID))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalFormatANDROID))+                *> poke (ptr `plusPtr` 16) (vkExternalFormat (poked :: VkExternalFormatANDROID))
+ src/Graphics/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs view
@@ -0,0 +1,147 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_EXT_acquire_xlib_display+  ( RROutput+  , pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION+  , pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME+  , vkAcquireXlibDisplayEXT+  , vkGetRandROutputDisplayEXT+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word64+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+import Graphics.Vulkan.Extensions.VK_KHR_display+  ( VkDisplayKHR+  )+import Graphics.Vulkan.Extensions.VK_KHR_xlib_surface+  ( Display(..)+  )+++-- No documentation found for TopLevel "RROutput"+type RROutput = Word64+-- No documentation found for TopLevel "VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION"+pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION :: Integral a => a+pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME"+pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME = "VK_EXT_acquire_xlib_display"+-- | vkAcquireXlibDisplayEXT - Acquire access to a VkDisplayKHR using Xlib+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ The physical device the display is on.+--+-- -   @dpy@ A connection to the X11 server that currently owns @display@.+--+-- -   @display@ The display the caller wishes to control in Vulkan.+--+-- = Description+-- #_description#+--+-- All permissions necessary to control the display are granted to the+-- Vulkan instance associated with @physicalDevice@ until the display is+-- released or the X11 connection specified by @dpy@ is terminated.+-- Permission to access the display /may/ be temporarily revoked during+-- periods when the X11 server from which control was acquired itself+-- looses access to @display@. During such periods, operations which+-- require access to the display /must/ fail with an approriate error code.+-- If the X11 server associated with @dpy@ does not own @display@, or if+-- permission to access it has already been acquired by another entity, the+-- call /must/ return the error code @VK_ERROR_INITIALIZATION_FAILED@.+--+-- __Note__+--+-- One example of when an X11 server loses access to a display is when it+-- loses ownership of its virtual terminal.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @dpy@ /must/ be a valid pointer to a @Display@ value+--+-- -   @display@ /must/ be a valid @VkDisplayKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_INITIALIZATION_FAILED@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkAcquireXlibDisplayEXT" vkAcquireXlibDisplayEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("dpy" ::: Ptr Display) -> ("display" ::: VkDisplayKHR) -> IO VkResult+-- | vkGetRandROutputDisplayEXT - Query the VkDisplayKHR corresponding to an+-- X11 RandR Output+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ The physical device to query the display handle on.+--+-- -   @dpy@ A connection to the X11 server from which @rrOutput@ was+--     queried.+--+-- -   @rrOutput@ An X11 RandR output ID.+--+-- -   @pDisplay@ The corresponding+--     'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayKHR' handle will+--     be returned here.+--+-- = Description+-- #_description#+--+-- If there is no 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayKHR'+-- corresponding to @rrOutput@ on @physicalDevice@,+-- 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE' /must/ be returned in+-- @pDisplay@.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @dpy@ /must/ be a valid pointer to a @Display@ value+--+-- -   @pDisplay@ /must/ be a valid pointer to a @VkDisplayKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetRandROutputDisplayEXT" vkGetRandROutputDisplayEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("dpy" ::: Ptr Display) -> ("rrOutput" ::: RROutput) -> ("pDisplay" ::: Ptr VkDisplayKHR) -> IO VkResult
+ src/Graphics/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs view
@@ -0,0 +1,556 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced+  ( VkBlendOverlapEXT(..)+  , pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT+  , pattern VK_BLEND_OVERLAP_DISJOINT_EXT+  , pattern VK_BLEND_OVERLAP_CONJOINT_EXT+  , pattern VK_BLEND_OP_ZERO_EXT+  , pattern VK_BLEND_OP_SRC_EXT+  , pattern VK_BLEND_OP_DST_EXT+  , pattern VK_BLEND_OP_SRC_OVER_EXT+  , pattern VK_BLEND_OP_DST_OVER_EXT+  , pattern VK_BLEND_OP_SRC_IN_EXT+  , pattern VK_BLEND_OP_DST_IN_EXT+  , pattern VK_BLEND_OP_SRC_OUT_EXT+  , pattern VK_BLEND_OP_DST_OUT_EXT+  , pattern VK_BLEND_OP_SRC_ATOP_EXT+  , pattern VK_BLEND_OP_DST_ATOP_EXT+  , pattern VK_BLEND_OP_XOR_EXT+  , pattern VK_BLEND_OP_MULTIPLY_EXT+  , pattern VK_BLEND_OP_SCREEN_EXT+  , pattern VK_BLEND_OP_OVERLAY_EXT+  , pattern VK_BLEND_OP_DARKEN_EXT+  , pattern VK_BLEND_OP_LIGHTEN_EXT+  , pattern VK_BLEND_OP_COLORDODGE_EXT+  , pattern VK_BLEND_OP_COLORBURN_EXT+  , pattern VK_BLEND_OP_HARDLIGHT_EXT+  , pattern VK_BLEND_OP_SOFTLIGHT_EXT+  , pattern VK_BLEND_OP_DIFFERENCE_EXT+  , pattern VK_BLEND_OP_EXCLUSION_EXT+  , pattern VK_BLEND_OP_INVERT_EXT+  , pattern VK_BLEND_OP_INVERT_RGB_EXT+  , pattern VK_BLEND_OP_LINEARDODGE_EXT+  , pattern VK_BLEND_OP_LINEARBURN_EXT+  , pattern VK_BLEND_OP_VIVIDLIGHT_EXT+  , pattern VK_BLEND_OP_LINEARLIGHT_EXT+  , pattern VK_BLEND_OP_PINLIGHT_EXT+  , pattern VK_BLEND_OP_HARDMIX_EXT+  , pattern VK_BLEND_OP_HSL_HUE_EXT+  , pattern VK_BLEND_OP_HSL_SATURATION_EXT+  , pattern VK_BLEND_OP_HSL_COLOR_EXT+  , pattern VK_BLEND_OP_HSL_LUMINOSITY_EXT+  , pattern VK_BLEND_OP_PLUS_EXT+  , pattern VK_BLEND_OP_PLUS_CLAMPED_EXT+  , pattern VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT+  , pattern VK_BLEND_OP_PLUS_DARKER_EXT+  , pattern VK_BLEND_OP_MINUS_EXT+  , pattern VK_BLEND_OP_MINUS_CLAMPED_EXT+  , pattern VK_BLEND_OP_CONTRAST_EXT+  , pattern VK_BLEND_OP_INVERT_OVG_EXT+  , pattern VK_BLEND_OP_RED_EXT+  , pattern VK_BLEND_OP_GREEN_EXT+  , pattern VK_BLEND_OP_BLUE_EXT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT+  , pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT+  , pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT+  , pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION+  , pattern VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME+  , VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(..)+  , VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(..)+  , VkPipelineColorBlendAdvancedStateCreateInfoEXT(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Pass+  ( VkAccessFlagBits(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkBlendOp(..)+  )+++-- ** VkBlendOverlapEXT++-- | VkBlendOverlapEXT - Enumerant specifying the blend overlap parameter+--+-- = Description+-- #_description#+--+-- -   @VK_BLEND_OVERLAP_UNCORRELATED_EXT@ specifies that there is no+--     correlation between the source and destination coverage.+--+-- -   @VK_BLEND_OVERLAP_CONJOINT_EXT@ specifies that the source and+--     destination coverage are considered to have maximal overlap.+--+-- -   @VK_BLEND_OVERLAP_DISJOINT_EXT@ specifies that the source and+--     destination coverage are considered to have minimal overlap.+--+-- > +-----------------------------------+-----------------------------------++-- > | Overlap Mode                      | Weighting Equations               |+-- > +===================================+===================================++-- > | @VK_BLEND_OVERLAP_UNCORRELATED_EX |                                   |+-- > | T@                                |                                   |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_BLEND_OVERLAP_CONJOINT_EXT@   |                                   |+-- > +-----------------------------------+-----------------------------------++-- > | @VK_BLEND_OVERLAP_DISJOINT_EXT@   |                                   |+-- > +-----------------------------------+-----------------------------------++-- >+-- > Advanced Blend Overlap Modes+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineColorBlendAdvancedStateCreateInfoEXT'+newtype VkBlendOverlapEXT = VkBlendOverlapEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkBlendOverlapEXT where+  showsPrec _ VK_BLEND_OVERLAP_UNCORRELATED_EXT = showString "VK_BLEND_OVERLAP_UNCORRELATED_EXT"+  showsPrec _ VK_BLEND_OVERLAP_DISJOINT_EXT = showString "VK_BLEND_OVERLAP_DISJOINT_EXT"+  showsPrec _ VK_BLEND_OVERLAP_CONJOINT_EXT = showString "VK_BLEND_OVERLAP_CONJOINT_EXT"+  showsPrec p (VkBlendOverlapEXT x) = showParen (p >= 11) (showString "VkBlendOverlapEXT " . showsPrec 11 x)++instance Read VkBlendOverlapEXT where+  readPrec = parens ( choose [ ("VK_BLEND_OVERLAP_UNCORRELATED_EXT", pure VK_BLEND_OVERLAP_UNCORRELATED_EXT)+                             , ("VK_BLEND_OVERLAP_DISJOINT_EXT",     pure VK_BLEND_OVERLAP_DISJOINT_EXT)+                             , ("VK_BLEND_OVERLAP_CONJOINT_EXT",     pure VK_BLEND_OVERLAP_CONJOINT_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkBlendOverlapEXT")+                        v <- step readPrec+                        pure (VkBlendOverlapEXT v)+                        )+                    )++-- No documentation found for Nested "VkBlendOverlapEXT" "VK_BLEND_OVERLAP_UNCORRELATED_EXT"+pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT :: VkBlendOverlapEXT+pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT = VkBlendOverlapEXT 0++-- No documentation found for Nested "VkBlendOverlapEXT" "VK_BLEND_OVERLAP_DISJOINT_EXT"+pattern VK_BLEND_OVERLAP_DISJOINT_EXT :: VkBlendOverlapEXT+pattern VK_BLEND_OVERLAP_DISJOINT_EXT = VkBlendOverlapEXT 1++-- No documentation found for Nested "VkBlendOverlapEXT" "VK_BLEND_OVERLAP_CONJOINT_EXT"+pattern VK_BLEND_OVERLAP_CONJOINT_EXT :: VkBlendOverlapEXT+pattern VK_BLEND_OVERLAP_CONJOINT_EXT = VkBlendOverlapEXT 2+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_ZERO_EXT"+pattern VK_BLEND_OP_ZERO_EXT :: VkBlendOp+pattern VK_BLEND_OP_ZERO_EXT = VkBlendOp 1000148000+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_EXT"+pattern VK_BLEND_OP_SRC_EXT :: VkBlendOp+pattern VK_BLEND_OP_SRC_EXT = VkBlendOp 1000148001+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_EXT"+pattern VK_BLEND_OP_DST_EXT :: VkBlendOp+pattern VK_BLEND_OP_DST_EXT = VkBlendOp 1000148002+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_OVER_EXT"+pattern VK_BLEND_OP_SRC_OVER_EXT :: VkBlendOp+pattern VK_BLEND_OP_SRC_OVER_EXT = VkBlendOp 1000148003+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_OVER_EXT"+pattern VK_BLEND_OP_DST_OVER_EXT :: VkBlendOp+pattern VK_BLEND_OP_DST_OVER_EXT = VkBlendOp 1000148004+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_IN_EXT"+pattern VK_BLEND_OP_SRC_IN_EXT :: VkBlendOp+pattern VK_BLEND_OP_SRC_IN_EXT = VkBlendOp 1000148005+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_IN_EXT"+pattern VK_BLEND_OP_DST_IN_EXT :: VkBlendOp+pattern VK_BLEND_OP_DST_IN_EXT = VkBlendOp 1000148006+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_OUT_EXT"+pattern VK_BLEND_OP_SRC_OUT_EXT :: VkBlendOp+pattern VK_BLEND_OP_SRC_OUT_EXT = VkBlendOp 1000148007+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_OUT_EXT"+pattern VK_BLEND_OP_DST_OUT_EXT :: VkBlendOp+pattern VK_BLEND_OP_DST_OUT_EXT = VkBlendOp 1000148008+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_ATOP_EXT"+pattern VK_BLEND_OP_SRC_ATOP_EXT :: VkBlendOp+pattern VK_BLEND_OP_SRC_ATOP_EXT = VkBlendOp 1000148009+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_ATOP_EXT"+pattern VK_BLEND_OP_DST_ATOP_EXT :: VkBlendOp+pattern VK_BLEND_OP_DST_ATOP_EXT = VkBlendOp 1000148010+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_XOR_EXT"+pattern VK_BLEND_OP_XOR_EXT :: VkBlendOp+pattern VK_BLEND_OP_XOR_EXT = VkBlendOp 1000148011+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MULTIPLY_EXT"+pattern VK_BLEND_OP_MULTIPLY_EXT :: VkBlendOp+pattern VK_BLEND_OP_MULTIPLY_EXT = VkBlendOp 1000148012+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SCREEN_EXT"+pattern VK_BLEND_OP_SCREEN_EXT :: VkBlendOp+pattern VK_BLEND_OP_SCREEN_EXT = VkBlendOp 1000148013+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_OVERLAY_EXT"+pattern VK_BLEND_OP_OVERLAY_EXT :: VkBlendOp+pattern VK_BLEND_OP_OVERLAY_EXT = VkBlendOp 1000148014+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DARKEN_EXT"+pattern VK_BLEND_OP_DARKEN_EXT :: VkBlendOp+pattern VK_BLEND_OP_DARKEN_EXT = VkBlendOp 1000148015+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LIGHTEN_EXT"+pattern VK_BLEND_OP_LIGHTEN_EXT :: VkBlendOp+pattern VK_BLEND_OP_LIGHTEN_EXT = VkBlendOp 1000148016+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_COLORDODGE_EXT"+pattern VK_BLEND_OP_COLORDODGE_EXT :: VkBlendOp+pattern VK_BLEND_OP_COLORDODGE_EXT = VkBlendOp 1000148017+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_COLORBURN_EXT"+pattern VK_BLEND_OP_COLORBURN_EXT :: VkBlendOp+pattern VK_BLEND_OP_COLORBURN_EXT = VkBlendOp 1000148018+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HARDLIGHT_EXT"+pattern VK_BLEND_OP_HARDLIGHT_EXT :: VkBlendOp+pattern VK_BLEND_OP_HARDLIGHT_EXT = VkBlendOp 1000148019+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SOFTLIGHT_EXT"+pattern VK_BLEND_OP_SOFTLIGHT_EXT :: VkBlendOp+pattern VK_BLEND_OP_SOFTLIGHT_EXT = VkBlendOp 1000148020+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DIFFERENCE_EXT"+pattern VK_BLEND_OP_DIFFERENCE_EXT :: VkBlendOp+pattern VK_BLEND_OP_DIFFERENCE_EXT = VkBlendOp 1000148021+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_EXCLUSION_EXT"+pattern VK_BLEND_OP_EXCLUSION_EXT :: VkBlendOp+pattern VK_BLEND_OP_EXCLUSION_EXT = VkBlendOp 1000148022+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_EXT"+pattern VK_BLEND_OP_INVERT_EXT :: VkBlendOp+pattern VK_BLEND_OP_INVERT_EXT = VkBlendOp 1000148023+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_RGB_EXT"+pattern VK_BLEND_OP_INVERT_RGB_EXT :: VkBlendOp+pattern VK_BLEND_OP_INVERT_RGB_EXT = VkBlendOp 1000148024+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARDODGE_EXT"+pattern VK_BLEND_OP_LINEARDODGE_EXT :: VkBlendOp+pattern VK_BLEND_OP_LINEARDODGE_EXT = VkBlendOp 1000148025+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARBURN_EXT"+pattern VK_BLEND_OP_LINEARBURN_EXT :: VkBlendOp+pattern VK_BLEND_OP_LINEARBURN_EXT = VkBlendOp 1000148026+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_VIVIDLIGHT_EXT"+pattern VK_BLEND_OP_VIVIDLIGHT_EXT :: VkBlendOp+pattern VK_BLEND_OP_VIVIDLIGHT_EXT = VkBlendOp 1000148027+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARLIGHT_EXT"+pattern VK_BLEND_OP_LINEARLIGHT_EXT :: VkBlendOp+pattern VK_BLEND_OP_LINEARLIGHT_EXT = VkBlendOp 1000148028+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PINLIGHT_EXT"+pattern VK_BLEND_OP_PINLIGHT_EXT :: VkBlendOp+pattern VK_BLEND_OP_PINLIGHT_EXT = VkBlendOp 1000148029+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HARDMIX_EXT"+pattern VK_BLEND_OP_HARDMIX_EXT :: VkBlendOp+pattern VK_BLEND_OP_HARDMIX_EXT = VkBlendOp 1000148030+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_HUE_EXT"+pattern VK_BLEND_OP_HSL_HUE_EXT :: VkBlendOp+pattern VK_BLEND_OP_HSL_HUE_EXT = VkBlendOp 1000148031+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_SATURATION_EXT"+pattern VK_BLEND_OP_HSL_SATURATION_EXT :: VkBlendOp+pattern VK_BLEND_OP_HSL_SATURATION_EXT = VkBlendOp 1000148032+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_COLOR_EXT"+pattern VK_BLEND_OP_HSL_COLOR_EXT :: VkBlendOp+pattern VK_BLEND_OP_HSL_COLOR_EXT = VkBlendOp 1000148033+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_LUMINOSITY_EXT"+pattern VK_BLEND_OP_HSL_LUMINOSITY_EXT :: VkBlendOp+pattern VK_BLEND_OP_HSL_LUMINOSITY_EXT = VkBlendOp 1000148034+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_EXT"+pattern VK_BLEND_OP_PLUS_EXT :: VkBlendOp+pattern VK_BLEND_OP_PLUS_EXT = VkBlendOp 1000148035+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_CLAMPED_EXT"+pattern VK_BLEND_OP_PLUS_CLAMPED_EXT :: VkBlendOp+pattern VK_BLEND_OP_PLUS_CLAMPED_EXT = VkBlendOp 1000148036+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT"+pattern VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT :: VkBlendOp+pattern VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = VkBlendOp 1000148037+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_DARKER_EXT"+pattern VK_BLEND_OP_PLUS_DARKER_EXT :: VkBlendOp+pattern VK_BLEND_OP_PLUS_DARKER_EXT = VkBlendOp 1000148038+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MINUS_EXT"+pattern VK_BLEND_OP_MINUS_EXT :: VkBlendOp+pattern VK_BLEND_OP_MINUS_EXT = VkBlendOp 1000148039+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MINUS_CLAMPED_EXT"+pattern VK_BLEND_OP_MINUS_CLAMPED_EXT :: VkBlendOp+pattern VK_BLEND_OP_MINUS_CLAMPED_EXT = VkBlendOp 1000148040+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_CONTRAST_EXT"+pattern VK_BLEND_OP_CONTRAST_EXT :: VkBlendOp+pattern VK_BLEND_OP_CONTRAST_EXT = VkBlendOp 1000148041+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_OVG_EXT"+pattern VK_BLEND_OP_INVERT_OVG_EXT :: VkBlendOp+pattern VK_BLEND_OP_INVERT_OVG_EXT = VkBlendOp 1000148042+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_RED_EXT"+pattern VK_BLEND_OP_RED_EXT :: VkBlendOp+pattern VK_BLEND_OP_RED_EXT = VkBlendOp 1000148043+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_GREEN_EXT"+pattern VK_BLEND_OP_GREEN_EXT :: VkBlendOp+pattern VK_BLEND_OP_GREEN_EXT = VkBlendOp 1000148044+-- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_BLUE_EXT"+pattern VK_BLEND_OP_BLUE_EXT :: VkBlendOp+pattern VK_BLEND_OP_BLUE_EXT = VkBlendOp 1000148045+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = VkStructureType 1000148000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = VkStructureType 1000148001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = VkStructureType 1000148002+-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"+pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: VkAccessFlagBits+pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = VkAccessFlagBits 0x00080000+-- No documentation found for TopLevel "VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION"+pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION :: Integral a => a+pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME"+pattern VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME = "VK_EXT_blend_operation_advanced"+-- | VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - Structure describing+-- advanced blending features that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT@+-- structure describe the following features:+--+-- = Description+-- #_description#+--+-- -   @advancedBlendCoherentOperations@ specifies whether blending using+--     <{html_spec_relative}#framebuffer-blend-advanced advanced blend operations>+--     is guaranteed to execute atomically and in+--     <{html_spec_relative}#drawing-primitive-order primitive order>. If+--     this is @VK_TRUE@,+--     @VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT@ is treated the+--     same as @VK_ACCESS_COLOR_ATTACHMENT_READ_BIT@, and advanced blending+--     needs no additional synchronization over basic blending. If this is+--     @VK_FALSE@, then memory dependencies are required to guarantee order+--     between two advanced blending operations that occur on the same+--     sample.+--+-- If the @VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT@ structure is+-- included in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2',+-- it is filled with values indicating whether each feature is supported.+-- @VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT@ /can/ also be used+-- in @pNext@ chain of 'Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo'+-- to enable the features.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" "vkAdvancedBlendCoherentOperations"+  vkAdvancedBlendCoherentOperations :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT <$> peek (ptr `plusPtr` 0)+                                                               <*> peek (ptr `plusPtr` 8)+                                                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT))+                *> poke (ptr `plusPtr` 16) (vkAdvancedBlendCoherentOperations (poked :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT))+-- | VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - Structure+-- describing advanced blending limits that can be supported by an+-- implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT@+-- structure describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @advancedBlendMaxColorAttachments@ is one greater than the highest+--     color attachment index that /can/ be used in a subpass, for a+--     pipeline that uses an+--     <{html_spec_relative}#framebuffer-blend-advanced advanced blend operation>.+--+-- -   @advancedBlendIndependentBlend@ specifies whether advanced blend+--     operations /can/ vary per-attachment.+--+-- -   @advancedBlendNonPremultipliedSrcColor@ specifies whether the source+--     color /can/ be treated as non-premultiplied. If this is @VK_FALSE@,+--     then+--     'VkPipelineColorBlendAdvancedStateCreateInfoEXT'::@srcPremultiplied@+--     /must/ be @VK_TRUE@.+--+-- -   @advancedBlendNonPremultipliedDstColor@ specifies whether the+--     destination color /can/ be treated as non-premultiplied. If this is+--     @VK_FALSE@, then+--     'VkPipelineColorBlendAdvancedStateCreateInfoEXT'::@dstPremultiplied@+--     /must/ be @VK_TRUE@.+--+-- -   @advancedBlendCorrelatedOverlap@ specifies whether the overlap mode+--     /can/ be treated as correlated. If this is @VK_FALSE@, then+--     'VkPipelineColorBlendAdvancedStateCreateInfoEXT'::@blendOverlap@+--     /must/ be @VK_BLEND_OVERLAP_UNCORRELATED_EXT@.+--+-- -   @advancedBlendAllOperations@ specifies whether all advanced blend+--     operation enums are supported. See the valid usage of+--     'Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT@+--+-- If the @VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT@ structure+-- is included in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "vkAdvancedBlendMaxColorAttachments"+  vkAdvancedBlendMaxColorAttachments :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "vkAdvancedBlendIndependentBlend"+  vkAdvancedBlendIndependentBlend :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "vkAdvancedBlendNonPremultipliedSrcColor"+  vkAdvancedBlendNonPremultipliedSrcColor :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "vkAdvancedBlendNonPremultipliedDstColor"+  vkAdvancedBlendNonPremultipliedDstColor :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "vkAdvancedBlendCorrelatedOverlap"+  vkAdvancedBlendCorrelatedOverlap :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" "vkAdvancedBlendAllOperations"+  vkAdvancedBlendAllOperations :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT <$> peek (ptr `plusPtr` 0)+                                                                 <*> peek (ptr `plusPtr` 8)+                                                                 <*> peek (ptr `plusPtr` 16)+                                                                 <*> peek (ptr `plusPtr` 20)+                                                                 <*> peek (ptr `plusPtr` 24)+                                                                 <*> peek (ptr `plusPtr` 28)+                                                                 <*> peek (ptr `plusPtr` 32)+                                                                 <*> peek (ptr `plusPtr` 36)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkAdvancedBlendMaxColorAttachments (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT))+                *> poke (ptr `plusPtr` 20) (vkAdvancedBlendIndependentBlend (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT))+                *> poke (ptr `plusPtr` 24) (vkAdvancedBlendNonPremultipliedSrcColor (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT))+                *> poke (ptr `plusPtr` 28) (vkAdvancedBlendNonPremultipliedDstColor (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT))+                *> poke (ptr `plusPtr` 32) (vkAdvancedBlendCorrelatedOverlap (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT))+                *> poke (ptr `plusPtr` 36) (vkAdvancedBlendAllOperations (poked :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT))+-- | VkPipelineColorBlendAdvancedStateCreateInfoEXT - Structure specifying+-- parameters that affect advanced blend operations+--+-- = Description+-- #_description#+--+-- If this structure is not present, @srcPremultiplied@ and+-- @dstPremultiplied@ are both considered to be @VK_TRUE@, and+-- @blendOverlap@ is considered to be @VK_BLEND_OVERLAP_UNCORRELATED_EXT@.+--+-- == Valid Usage+--+-- -   If the+--     <{html_spec_relative}#features-limits-advancedBlendNonPremultipliedSrcColor non-premultiplied source color>+--     property is not supported, @srcPremultiplied@ /must/ be @VK_TRUE@+--+-- -   If the+--     <{html_spec_relative}#features-limits-advancedBlendNonPremultipliedDstColor non-premultiplied destination color>+--     property is not supported, @dstPremultiplied@ /must/ be @VK_TRUE@+--+-- -   If the+--     <{html_spec_relative}#features-limits-advancedBlendCorrelatedOverlap correlated overlap>+--     property is not supported, @blendOverlap@ /must/ be+--     @VK_BLEND_OVERLAP_UNCORRELATED_EXT@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT@+--+-- -   @blendOverlap@ /must/ be a valid 'VkBlendOverlapEXT' value+--+-- = See Also+-- #_see_also#+--+-- 'VkBlendOverlapEXT', @VkBool32@,+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineColorBlendAdvancedStateCreateInfoEXT = VkPipelineColorBlendAdvancedStateCreateInfoEXT+  { -- No documentation found for Nested "VkPipelineColorBlendAdvancedStateCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineColorBlendAdvancedStateCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineColorBlendAdvancedStateCreateInfoEXT" "vkSrcPremultiplied"+  vkSrcPremultiplied :: VkBool32+  , -- No documentation found for Nested "VkPipelineColorBlendAdvancedStateCreateInfoEXT" "vkDstPremultiplied"+  vkDstPremultiplied :: VkBool32+  , -- No documentation found for Nested "VkPipelineColorBlendAdvancedStateCreateInfoEXT" "vkBlendOverlap"+  vkBlendOverlap :: VkBlendOverlapEXT+  }+  deriving (Eq, Show)++instance Storable VkPipelineColorBlendAdvancedStateCreateInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPipelineColorBlendAdvancedStateCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                            <*> peek (ptr `plusPtr` 8)+                                                            <*> peek (ptr `plusPtr` 16)+                                                            <*> peek (ptr `plusPtr` 20)+                                                            <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkSrcPremultiplied (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 20) (vkDstPremultiplied (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkBlendOverlap (poked :: VkPipelineColorBlendAdvancedStateCreateInfoEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs view
@@ -0,0 +1,352 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization+  ( VkConservativeRasterizationModeEXT(..)+  , pattern VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT+  , pattern VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT+  , pattern VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT+  , VkPipelineRasterizationConservativeStateCreateFlagsEXT(..)+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT+  , pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT+  , pattern VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION+  , pattern VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME+  , VkPhysicalDeviceConservativeRasterizationPropertiesEXT(..)+  , VkPipelineRasterizationConservativeStateCreateInfoEXT(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Foreign.C.Types+  ( CFloat(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkFlags+  )+++-- ** VkConservativeRasterizationModeEXT++-- | VkConservativeRasterizationModeEXT - Specify the conservative+-- rasterization mode+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineRasterizationConservativeStateCreateInfoEXT'+newtype VkConservativeRasterizationModeEXT = VkConservativeRasterizationModeEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkConservativeRasterizationModeEXT where+  showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT"+  showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT"+  showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT"+  showsPrec p (VkConservativeRasterizationModeEXT x) = showParen (p >= 11) (showString "VkConservativeRasterizationModeEXT " . showsPrec 11 x)++instance Read VkConservativeRasterizationModeEXT where+  readPrec = parens ( choose [ ("VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT",      pure VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT)+                             , ("VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT",  pure VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT)+                             , ("VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT", pure VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkConservativeRasterizationModeEXT")+                        v <- step readPrec+                        pure (VkConservativeRasterizationModeEXT v)+                        )+                    )++-- | @VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT@ specifies that+-- conservative rasterization is disabled and rasterization proceeds as+-- normal.+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT :: VkConservativeRasterizationModeEXT+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = VkConservativeRasterizationModeEXT 0++-- | @VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT@ specifies that+-- conservative rasterization is enabled in overestimation mode.+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT :: VkConservativeRasterizationModeEXT+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = VkConservativeRasterizationModeEXT 1++-- | @VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT@ specifies that+-- conservative rasterization is enabled in underestimation mode.+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT :: VkConservativeRasterizationModeEXT+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = VkConservativeRasterizationModeEXT 2+-- ** VkPipelineRasterizationConservativeStateCreateFlagsEXT++-- | VkPipelineRasterizationConservativeStateCreateFlagsEXT - Reserved for+-- future use+--+-- = Description+-- #_description#+--+-- @VkPipelineRasterizationConservativeStateCreateFlagsEXT@ is a bitmask+-- type for setting a mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineRasterizationConservativeStateCreateInfoEXT'+newtype VkPipelineRasterizationConservativeStateCreateFlagsEXT = VkPipelineRasterizationConservativeStateCreateFlagsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineRasterizationConservativeStateCreateFlagsEXT where+  +  showsPrec p (VkPipelineRasterizationConservativeStateCreateFlagsEXT x) = showParen (p >= 11) (showString "VkPipelineRasterizationConservativeStateCreateFlagsEXT " . showsPrec 11 x)++instance Read VkPipelineRasterizationConservativeStateCreateFlagsEXT where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineRasterizationConservativeStateCreateFlagsEXT")+                        v <- step readPrec+                        pure (VkPipelineRasterizationConservativeStateCreateFlagsEXT v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = VkStructureType 1000101000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = VkStructureType 1000101001+-- No documentation found for TopLevel "VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION"+pattern VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION :: Integral a => a+pattern VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME"+pattern VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_conservative_rasterization"+-- | VkPhysicalDeviceConservativeRasterizationPropertiesEXT - Structure+-- describing conservative raster properties that can be supported by an+-- implementation+--+-- = Members+-- #_members#+--+-- The members of the+-- @VkPhysicalDeviceConservativeRasterizationPropertiesEXT@ structure+-- describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @primitiveOverestimationSize@ is the size in pixels the generating+--     primitive is increased at each of its edges during conservative+--     rasterization overestimation mode. Even with a size of 0.0,+--     conservative rasterization overestimation rules still apply and if+--     any part of the pixel rectangle is covered by the generating+--     primitive, fragments are generated for the entire pixel. However+--     implementations /may/ make the pixel coverage area even more+--     conservative by increasing the size of the generating primitive.+--+-- -   @maxExtraPrimitiveOverestimationSize@ is the maximum size in pixels+--     of extra overestimation the implementation supports in the pipeline+--     state. A value of 0.0 means the implementation does not support any+--     additional overestimation of the generating primitive during+--     conservative rasterization. A value above 0.0 allows the application+--     to further increase the size of the generating primitive during+--     conservative rasterization overestimation.+--+-- -   @extraPrimitiveOverestimationSizeGranularity@ is the granularity of+--     extra overestimation that can be specified in the pipeline state+--     between 0.0 and @maxExtraPrimitiveOverestimationSize@ inclusive. A+--     value of 0.0 means the implementation can use the smallest+--     representable non-zero value in the screen space pixel fixed-point+--     grid.+--+-- -   @primitiveUnderestimation@ is true if the implementation supports+--     the @VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT@+--     conservative rasterization mode in addition to+--     @VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT@. Otherwise the+--     implementation only supports+--     @VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT@.+--+-- -   @conservativePointAndLineRasterization@ is true if the+--     implementation supports conservative rasterization of point and line+--     primitives as well as triangle primitives. Otherwise the+--     implementation only supports triangle primitives.+--+-- -   @degenerateTrianglesRasterized@ is false if the implementation culls+--     primitives generated from triangles that become zero area after they+--     are quantized to the fixed-point rasterization pixel grid.+--     @degenerateTrianglesRasterized@ is true if these primitives are not+--     culled and the provoking vertex attributes and depth value are used+--     for the fragments. The primitive area calculation is done on the+--     primitive generated from the clipped triangle if applicable. Zero+--     area primitives are backfacing and the application /can/ enable+--     backface culling if desired.+--+-- -   @degenerateLinesRasterized@ is false if the implementation culls+--     lines that become zero length after they are quantized to the+--     fixed-point rasterization pixel grid. @degenerateLinesRasterized@ is+--     true if zero length lines are not culled and the provoking vertex+--     attributes and depth value are used for the fragments.+--+-- -   @fullyCoveredFragmentShaderInputVariable@ is true if the+--     implementation supports the SPIR-V builtin fragment shader input+--     variable FullyCoveredEXT which specifies that conservative+--     rasterization is enabled and the fragment pixel square is fully+--     covered by the generating primitive.+--+-- -   @conservativeRasterizationPostDepthCoverage@ /must/ be false.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT@+--+-- If the @VkPhysicalDeviceConservativeRasterizationPropertiesEXT@+-- structure is included in the @pNext@ chain of+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2KHR',+-- it is filled with the implementation-dependent limits and properties.+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceConservativeRasterizationPropertiesEXT = VkPhysicalDeviceConservativeRasterizationPropertiesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkPrimitiveOverestimationSize"+  vkPrimitiveOverestimationSize :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkMaxExtraPrimitiveOverestimationSize"+  vkMaxExtraPrimitiveOverestimationSize :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkExtraPrimitiveOverestimationSizeGranularity"+  vkExtraPrimitiveOverestimationSizeGranularity :: CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkPrimitiveUnderestimation"+  vkPrimitiveUnderestimation :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkConservativePointAndLineRasterization"+  vkConservativePointAndLineRasterization :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkDegenerateTrianglesRasterized"+  vkDegenerateTrianglesRasterized :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkDegenerateLinesRasterized"+  vkDegenerateLinesRasterized :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkFullyCoveredFragmentShaderInputVariable"+  vkFullyCoveredFragmentShaderInputVariable :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceConservativeRasterizationPropertiesEXT" "vkConservativeRasterizationPostDepthCoverage"+  vkConservativeRasterizationPostDepthCoverage :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceConservativeRasterizationPropertiesEXT where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceConservativeRasterizationPropertiesEXT <$> peek (ptr `plusPtr` 0)+                                                                    <*> peek (ptr `plusPtr` 8)+                                                                    <*> peek (ptr `plusPtr` 16)+                                                                    <*> peek (ptr `plusPtr` 20)+                                                                    <*> peek (ptr `plusPtr` 24)+                                                                    <*> peek (ptr `plusPtr` 28)+                                                                    <*> peek (ptr `plusPtr` 32)+                                                                    <*> peek (ptr `plusPtr` 36)+                                                                    <*> peek (ptr `plusPtr` 40)+                                                                    <*> peek (ptr `plusPtr` 44)+                                                                    <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkPrimitiveOverestimationSize (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 20) (vkMaxExtraPrimitiveOverestimationSize (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 24) (vkExtraPrimitiveOverestimationSizeGranularity (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 28) (vkPrimitiveUnderestimation (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 32) (vkConservativePointAndLineRasterization (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 36) (vkDegenerateTrianglesRasterized (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 40) (vkDegenerateLinesRasterized (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 44) (vkFullyCoveredFragmentShaderInputVariable (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+                *> poke (ptr `plusPtr` 48) (vkConservativeRasterizationPostDepthCoverage (poked :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT))+-- | VkPipelineRasterizationConservativeStateCreateInfoEXT - Structure+-- specifying conservative raster state+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @extraPrimitiveOverestimationSize@ /must/ be in the range of @0.0@+--     to+--     @VkPhysicalDeviceConservativeRasterizationPropertiesEXT@::@maxExtraPrimitiveOverestimationSize@+--     inclusive+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT@+--+-- -   @flags@ /must/ be @0@+--+-- -   @conservativeRasterizationMode@ /must/ be a valid+--     'VkConservativeRasterizationModeEXT' value+--+-- = See Also+-- #_see_also#+--+-- 'VkConservativeRasterizationModeEXT',+-- 'VkPipelineRasterizationConservativeStateCreateFlagsEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineRasterizationConservativeStateCreateInfoEXT = VkPipelineRasterizationConservativeStateCreateInfoEXT+  { -- No documentation found for Nested "VkPipelineRasterizationConservativeStateCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineRasterizationConservativeStateCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineRasterizationConservativeStateCreateInfoEXT" "vkFlags"+  vkFlags :: VkPipelineRasterizationConservativeStateCreateFlagsEXT+  , -- No documentation found for Nested "VkPipelineRasterizationConservativeStateCreateInfoEXT" "vkConservativeRasterizationMode"+  vkConservativeRasterizationMode :: VkConservativeRasterizationModeEXT+  , -- No documentation found for Nested "VkPipelineRasterizationConservativeStateCreateInfoEXT" "vkExtraPrimitiveOverestimationSize"+  vkExtraPrimitiveOverestimationSize :: CFloat+  }+  deriving (Eq, Show)++instance Storable VkPipelineRasterizationConservativeStateCreateInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPipelineRasterizationConservativeStateCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                                   <*> peek (ptr `plusPtr` 8)+                                                                   <*> peek (ptr `plusPtr` 16)+                                                                   <*> peek (ptr `plusPtr` 20)+                                                                   <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineRasterizationConservativeStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineRasterizationConservativeStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineRasterizationConservativeStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 20) (vkConservativeRasterizationMode (poked :: VkPipelineRasterizationConservativeStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkExtraPrimitiveOverestimationSize (poked :: VkPipelineRasterizationConservativeStateCreateInfoEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_debug_marker.hs view
@@ -0,0 +1,513 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_debug_marker+  ( pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT+  , pattern VK_EXT_DEBUG_MARKER_SPEC_VERSION+  , pattern VK_EXT_DEBUG_MARKER_EXTENSION_NAME+  , vkDebugMarkerSetObjectNameEXT+  , vkDebugMarkerSetObjectTagEXT+  , vkCmdDebugMarkerBeginEXT+  , vkCmdDebugMarkerEndEXT+  , vkCmdDebugMarkerInsertEXT+  , VkDebugMarkerObjectNameInfoEXT(..)+  , VkDebugMarkerObjectTagInfoEXT(..)+  , VkDebugMarkerMarkerInfoEXT(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word64+  )+import Foreign.C.Types+  ( CFloat(..)+  , CChar(..)+  , CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+import Graphics.Vulkan.Extensions.VK_EXT_debug_report+  ( VkDebugReportObjectTypeEXT(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = VkStructureType 1000022000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = VkStructureType 1000022001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = VkStructureType 1000022002+-- No documentation found for TopLevel "VK_EXT_DEBUG_MARKER_SPEC_VERSION"+pattern VK_EXT_DEBUG_MARKER_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DEBUG_MARKER_SPEC_VERSION = 4+-- No documentation found for TopLevel "VK_EXT_DEBUG_MARKER_EXTENSION_NAME"+pattern VK_EXT_DEBUG_MARKER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DEBUG_MARKER_EXTENSION_NAME = "VK_EXT_debug_marker"+-- | vkDebugMarkerSetObjectNameEXT - Give a user-friendly name to an object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device that created the object.+--+-- -   @pNameInfo@ is a pointer to an instance of the+--     'VkDebugMarkerObjectNameInfoEXT' structure specifying the parameters+--     of the name to set on the object.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pNameInfo@ /must/ be a valid pointer to a valid+--     @VkDebugMarkerObjectNameInfoEXT@ structure+--+-- == Host Synchronization+--+-- -   Host access to @pNameInfo.object@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugMarkerObjectNameInfoEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDebugMarkerSetObjectNameEXT" vkDebugMarkerSetObjectNameEXT :: ("device" ::: VkDevice) -> ("pNameInfo" ::: Ptr VkDebugMarkerObjectNameInfoEXT) -> IO VkResult+-- | vkDebugMarkerSetObjectTagEXT - Attach arbitrary data to an object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device that created the object.+--+-- -   @pTagInfo@ is a pointer to an instance of the+--     'VkDebugMarkerObjectTagInfoEXT' structure specifying the parameters+--     of the tag to attach to the object.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pTagInfo@ /must/ be a valid pointer to a valid+--     @VkDebugMarkerObjectTagInfoEXT@ structure+--+-- == Host Synchronization+--+-- -   Host access to @pTagInfo.object@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugMarkerObjectTagInfoEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkDebugMarkerSetObjectTagEXT" vkDebugMarkerSetObjectTagEXT :: ("device" ::: VkDevice) -> ("pTagInfo" ::: Ptr VkDebugMarkerObjectTagInfoEXT) -> IO VkResult+-- | vkCmdDebugMarkerBeginEXT - Open a command buffer marker region+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @pMarkerInfo@ is a pointer to an instance of the+--     'VkDebugMarkerMarkerInfoEXT' structure specifying the parameters of+--     the marker region to open.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pMarkerInfo@ /must/ be a valid pointer to a valid+--     @VkDebugMarkerMarkerInfoEXT@ structure+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- == Host Synchronization+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'VkDebugMarkerMarkerInfoEXT'+foreign import ccall "vkCmdDebugMarkerBeginEXT" vkCmdDebugMarkerBeginEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pMarkerInfo" ::: Ptr VkDebugMarkerMarkerInfoEXT) -> IO ()+-- | vkCmdDebugMarkerEndEXT - Close a command buffer marker region+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- = Description+-- #_description#+--+-- An application /may/ open a marker region in one command buffer and+-- close it in another, or otherwise split marker regions across multiple+-- command buffers or multiple queue submissions. When viewed from the+-- linear series of submissions to a single queue, the calls to+-- @vkCmdDebugMarkerBeginEXT@ and @vkCmdDebugMarkerEndEXT@ /must/ be+-- matched and balanced.+--+-- == Valid Usage+--+-- -   There /must/ be an outstanding 'vkCmdDebugMarkerBeginEXT' command+--     prior to the @vkCmdDebugMarkerEndEXT@ on the queue that+--     @commandBuffer@ is submitted to+--+-- -   If @commandBuffer@ is a secondary command buffer, there /must/ be an+--     outstanding 'vkCmdDebugMarkerBeginEXT' command recorded to+--     @commandBuffer@ that has not previously been ended by a call to+--     'vkCmdDebugMarkerEndEXT'.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- == Host Synchronization+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdDebugMarkerEndEXT" vkCmdDebugMarkerEndEXT :: ("commandBuffer" ::: VkCommandBuffer) -> IO ()+-- | vkCmdDebugMarkerInsertEXT - Insert a marker label into a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @pMarkerInfo@ is a pointer to an instance of the+--     'VkDebugMarkerMarkerInfoEXT' structure specifying the parameters of+--     the marker to insert.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pMarkerInfo@ /must/ be a valid pointer to a valid+--     @VkDebugMarkerMarkerInfoEXT@ structure+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- == Host Synchronization+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'VkDebugMarkerMarkerInfoEXT'+foreign import ccall "vkCmdDebugMarkerInsertEXT" vkCmdDebugMarkerInsertEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pMarkerInfo" ::: Ptr VkDebugMarkerMarkerInfoEXT) -> IO ()+-- | VkDebugMarkerObjectNameInfoEXT - Specify parameters of a name to give to+-- an object+--+-- = Description+-- #_description#+--+-- Applications /may/ change the name associated with an object simply by+-- calling @vkDebugMarkerSetObjectNameEXT@ again with a new string. To+-- remove a previously set name, @pObjectName@ /should/ be set to an empty+-- string.+--+-- == Valid Usage+--+-- -   @objectType@ /must/ not be @VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT@+--+-- -   @object@ /must/ not be+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   @object@ /must/ be a Vulkan object of the type associated with+--     @objectType@ as defined in+--     <{html_spec_relative}#debug-report-object-types {html_spec_relative}#debug-report-object-types>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @objectType@ /must/ be a valid+--     'Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT'+--     value+--+-- -   @pObjectName@ /must/ be a null-terminated UTF-8 string+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkDebugMarkerSetObjectNameEXT'+data VkDebugMarkerObjectNameInfoEXT = VkDebugMarkerObjectNameInfoEXT+  { -- No documentation found for Nested "VkDebugMarkerObjectNameInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugMarkerObjectNameInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugMarkerObjectNameInfoEXT" "vkObjectType"+  vkObjectType :: VkDebugReportObjectTypeEXT+  , -- No documentation found for Nested "VkDebugMarkerObjectNameInfoEXT" "vkObject"+  vkObject :: Word64+  , -- No documentation found for Nested "VkDebugMarkerObjectNameInfoEXT" "vkPObjectName"+  vkPObjectName :: Ptr CChar+  }+  deriving (Eq, Show)++instance Storable VkDebugMarkerObjectNameInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDebugMarkerObjectNameInfoEXT <$> peek (ptr `plusPtr` 0)+                                            <*> peek (ptr `plusPtr` 8)+                                            <*> peek (ptr `plusPtr` 16)+                                            <*> peek (ptr `plusPtr` 24)+                                            <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugMarkerObjectNameInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugMarkerObjectNameInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkObjectType (poked :: VkDebugMarkerObjectNameInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkObject (poked :: VkDebugMarkerObjectNameInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkPObjectName (poked :: VkDebugMarkerObjectNameInfoEXT))+-- | VkDebugMarkerObjectTagInfoEXT - Specify parameters of a tag to attach to+-- an object+--+-- = Description+-- #_description#+--+-- The @tagName@ parameter gives a name or identifier to the type of data+-- being tagged. This can be used by debugging layers to easily filter for+-- only data that can be used by that implementation.+--+-- == Valid Usage+--+-- -   @objectType@ /must/ not be @VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT@+--+-- -   @object@ /must/ not be+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   @object@ /must/ be a Vulkan object of the type associated with+--     @objectType@ as defined in+--     <{html_spec_relative}#debug-report-object-types {html_spec_relative}#debug-report-object-types>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @objectType@ /must/ be a valid+--     'Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT'+--     value+--+-- -   @pTag@ /must/ be a valid pointer to an array of @tagSize@ bytes+--+-- -   @tagSize@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkDebugMarkerSetObjectTagEXT'+data VkDebugMarkerObjectTagInfoEXT = VkDebugMarkerObjectTagInfoEXT+  { -- No documentation found for Nested "VkDebugMarkerObjectTagInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugMarkerObjectTagInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugMarkerObjectTagInfoEXT" "vkObjectType"+  vkObjectType :: VkDebugReportObjectTypeEXT+  , -- No documentation found for Nested "VkDebugMarkerObjectTagInfoEXT" "vkObject"+  vkObject :: Word64+  , -- No documentation found for Nested "VkDebugMarkerObjectTagInfoEXT" "vkTagName"+  vkTagName :: Word64+  , -- No documentation found for Nested "VkDebugMarkerObjectTagInfoEXT" "vkTagSize"+  vkTagSize :: CSize+  , -- No documentation found for Nested "VkDebugMarkerObjectTagInfoEXT" "vkPTag"+  vkPTag :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkDebugMarkerObjectTagInfoEXT where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkDebugMarkerObjectTagInfoEXT <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 24)+                                           <*> peek (ptr `plusPtr` 32)+                                           <*> peek (ptr `plusPtr` 40)+                                           <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugMarkerObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugMarkerObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkObjectType (poked :: VkDebugMarkerObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkObject (poked :: VkDebugMarkerObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkTagName (poked :: VkDebugMarkerObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 40) (vkTagSize (poked :: VkDebugMarkerObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 48) (vkPTag (poked :: VkDebugMarkerObjectTagInfoEXT))+-- | VkDebugMarkerMarkerInfoEXT - Specify parameters of a command buffer+-- marker region+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @pMarkerName@ /must/ be a null-terminated UTF-8 string+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCmdDebugMarkerBeginEXT', 'vkCmdDebugMarkerInsertEXT'+data VkDebugMarkerMarkerInfoEXT = VkDebugMarkerMarkerInfoEXT+  { -- No documentation found for Nested "VkDebugMarkerMarkerInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugMarkerMarkerInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugMarkerMarkerInfoEXT" "vkPMarkerName"+  vkPMarkerName :: Ptr CChar+  , -- No documentation found for Nested "VkDebugMarkerMarkerInfoEXT" "vkColor"+  vkColor :: Vector 4 CFloat+  }+  deriving (Eq, Show)++instance Storable VkDebugMarkerMarkerInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDebugMarkerMarkerInfoEXT <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+                                        <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugMarkerMarkerInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugMarkerMarkerInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkPMarkerName (poked :: VkDebugMarkerMarkerInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkColor (poked :: VkDebugMarkerMarkerInfoEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -0,0 +1,874 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_debug_report+  ( VkDebugReportObjectTypeEXT(..)+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT+  , VkDebugReportFlagBitsEXT(..)+  , pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT+  , pattern VK_DEBUG_REPORT_WARNING_BIT_EXT+  , pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT+  , pattern VK_DEBUG_REPORT_ERROR_BIT_EXT+  , pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT+  , pattern VK_ERROR_VALIDATION_FAILED_EXT+  , pattern VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT+  , pattern VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT+  , pattern VK_EXT_DEBUG_REPORT_SPEC_VERSION+  , pattern VK_EXT_DEBUG_REPORT_EXTENSION_NAME+  , pattern VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT+  , PFN_vkDebugReportCallbackEXT+  , VkDebugReportCallbackEXT+  , vkCreateDebugReportCallbackEXT+  , vkDestroyDebugReportCallbackEXT+  , vkDebugReportMessageEXT+  , VkDebugReportCallbackCreateInfoEXT(..)+  , VkDebugReportFlagsEXT+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word64+  )+import Foreign.C.Types+  ( CChar(..)+  , CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkObjectType(..)+  , VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkInstance+  )+++-- ** VkDebugReportObjectTypeEXT++-- | VkDebugReportObjectTypeEXT - Specify the type of an object handle+--+-- = Description+-- #_description#+--+-- > +------------------------------------------+---------------------------++-- > | 'VkDebugReportObjectTypeEXT'             | Vulkan Handle Type        |+-- > +==========================================+===========================++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT | Unknown\/Undefined Handle |+-- > | @                                        |                           |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EX | 'Graphics.Vulkan.Core10.D |+-- > | T@                                       | eviceInitialization.VkIns |+-- > |                                          | tance'                    |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DE | 'Graphics.Vulkan.Core10.D |+-- > | VICE_EXT@                                | eviceInitialization.VkPhy |+-- > |                                          | sicalDevice'              |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT@ | 'Graphics.Vulkan.Core10.D |+-- > |                                          | eviceInitialization.VkDev |+-- > |                                          | ice'                      |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT@  | 'Graphics.Vulkan.Core10.Q |+-- > |                                          | ueue.VkQueue'             |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_E | 'Graphics.Vulkan.Core10.Q |+-- > | XT@                                      | ueue.VkSemaphore'         |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUF | 'Graphics.Vulkan.Core10.Q |+-- > | FER_EXT@                                 | ueue.VkCommandBuffer'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT@  | 'Graphics.Vulkan.Core10.Q |+-- > |                                          | ueue.VkFence'             |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMO | 'Graphics.Vulkan.Core10.M |+-- > | RY_EXT@                                  | emory.VkDeviceMemory'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT@ | 'Graphics.Vulkan.Core10.M |+-- > |                                          | emoryManagement.VkBuffer' |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT@  | 'Graphics.Vulkan.Core10.M |+-- > |                                          | emoryManagement.VkImage'  |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT@  | 'Graphics.Vulkan.Core10.E |+-- > |                                          | vent.VkEvent'             |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_ | 'Graphics.Vulkan.Core10.Q |+-- > | EXT@                                     | uery.VkQueryPool'         |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW | 'Graphics.Vulkan.Core10.B |+-- > | _EXT@                                    | ufferView.VkBufferView'   |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_ | 'Graphics.Vulkan.Core10.I |+-- > | EXT@                                     | mageView.VkImageView'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODU | 'Graphics.Vulkan.Core10.S |+-- > | LE_EXT@                                  | hader.VkShaderModule'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CA | 'Graphics.Vulkan.Core10.P |+-- > | CHE_EXT@                                 | ipelineCache.VkPipelineCa |+-- > |                                          | che'                      |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LA | 'Graphics.Vulkan.Core10.P |+-- > | YOUT_EXT@                                | ipeline.VkPipelineLayout' |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS | 'Graphics.Vulkan.Core10.P |+-- > | _EXT@                                    | ipeline.VkRenderPass'     |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EX | 'Graphics.Vulkan.Core10.P |+-- > | T@                                       | ipeline.VkPipeline'       |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_ | 'Graphics.Vulkan.Core10.P |+-- > | SET_LAYOUT_EXT@                          | ipelineLayout.VkDescripto |+-- > |                                          | rSetLayout'               |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT | 'Graphics.Vulkan.Core10.S |+-- > | @                                        | ampler.VkSampler'         |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_ | 'Graphics.Vulkan.Core10.D |+-- > | POOL_EXT@                                | escriptorSet.VkDescriptor |+-- > |                                          | Pool'                     |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_ | 'Graphics.Vulkan.Core10.D |+-- > | SET_EXT@                                 | escriptorSet.VkDescriptor |+-- > |                                          | Set'                      |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER | 'Graphics.Vulkan.Core10.P |+-- > | _EXT@                                    | ass.VkFramebuffer'        |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POO | 'Graphics.Vulkan.Core10.C |+-- > | L_EXT@                                   | ommandPool.VkCommandPool' |+-- > +------------------------------------------+---------------------------++-- > | @VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPOR | 'VkDebugReportCallbackEXT |+-- > | T_CALLBACK_EXT_EXT@                      | '                         |+-- > +------------------------------------------+---------------------------++-- >+-- > VkDebugReportObjectTypeEXT and Vulkan Handle Relationship+--+-- __Note__+--+-- The primary expected use of @VK_ERROR_VALIDATION_FAILED_EXT@ is for+-- validation layer testing. It is not expected that an application would+-- see this error code during normal use of the validation layers.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectNameInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectTagInfoEXT',+-- 'vkDebugReportMessageEXT'+newtype VkDebugReportObjectTypeEXT = VkDebugReportObjectTypeEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkDebugReportObjectTypeEXT where+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT"+  showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = showString "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkDebugReportObjectTypeEXT 1000156000) = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"+  showsPrec _ (VkDebugReportObjectTypeEXT 1000085000) = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"+  showsPrec p (VkDebugReportObjectTypeEXT x) = showParen (p >= 11) (showString "VkDebugReportObjectTypeEXT " . showsPrec 11 x)++instance Read VkDebugReportObjectTypeEXT where+  readPrec = parens ( choose [ ("VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT",                      pure VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT",                     pure VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT",              pure VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT",                       pure VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT",                        pure VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT",                    pure VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT",               pure VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT",                        pure VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT",                pure VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT",                       pure VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT",                        pure VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT",                        pure VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT",                   pure VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT",                  pure VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT",                   pure VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT",                pure VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT",               pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT",              pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT",                  pure VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT",                     pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT",        pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT",                      pure VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT",              pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT",               pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT",                  pure VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT",                 pure VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT",                  pure VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT",                pure VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT",    pure VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT",                  pure VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT",             pure VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT",             pure VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT", pure VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT)+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT",         pure VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT",   pure (VkDebugReportObjectTypeEXT 1000156000))+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT", pure (VkDebugReportObjectTypeEXT 1000085000))+                             , ("VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT",   pure (VkDebugReportObjectTypeEXT 1000156000))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDebugReportObjectTypeEXT")+                        v <- step readPrec+                        pure (VkDebugReportObjectTypeEXT v)+                        )+                    )++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = VkDebugReportObjectTypeEXT 0++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = VkDebugReportObjectTypeEXT 1++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = VkDebugReportObjectTypeEXT 2++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = VkDebugReportObjectTypeEXT 3++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = VkDebugReportObjectTypeEXT 4++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = VkDebugReportObjectTypeEXT 5++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = VkDebugReportObjectTypeEXT 6++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = VkDebugReportObjectTypeEXT 7++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = VkDebugReportObjectTypeEXT 8++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = VkDebugReportObjectTypeEXT 9++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = VkDebugReportObjectTypeEXT 10++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = VkDebugReportObjectTypeEXT 11++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = VkDebugReportObjectTypeEXT 12++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = VkDebugReportObjectTypeEXT 13++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = VkDebugReportObjectTypeEXT 14++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = VkDebugReportObjectTypeEXT 15++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = VkDebugReportObjectTypeEXT 16++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = VkDebugReportObjectTypeEXT 17++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = VkDebugReportObjectTypeEXT 18++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = VkDebugReportObjectTypeEXT 19++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = VkDebugReportObjectTypeEXT 20++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = VkDebugReportObjectTypeEXT 21++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = VkDebugReportObjectTypeEXT 22++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = VkDebugReportObjectTypeEXT 23++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = VkDebugReportObjectTypeEXT 24++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = VkDebugReportObjectTypeEXT 25++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = VkDebugReportObjectTypeEXT 26++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = VkDebugReportObjectTypeEXT 27++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = VkDebugReportObjectTypeEXT 28++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = VkDebugReportObjectTypeEXT 29++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = VkDebugReportObjectTypeEXT 30++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = VkDebugReportObjectTypeEXT 31++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = VkDebugReportObjectTypeEXT 32++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = VkDebugReportObjectTypeEXT 33+-- ** VkDebugReportFlagBitsEXT++-- | VkDebugReportFlagBitsEXT - Bitmask specifying events which cause a debug+-- report callback+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugReportFlagsEXT'+newtype VkDebugReportFlagBitsEXT = VkDebugReportFlagBitsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDebugReportFlagBitsEXT where+  showsPrec _ VK_DEBUG_REPORT_INFORMATION_BIT_EXT = showString "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"+  showsPrec _ VK_DEBUG_REPORT_WARNING_BIT_EXT = showString "VK_DEBUG_REPORT_WARNING_BIT_EXT"+  showsPrec _ VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = showString "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"+  showsPrec _ VK_DEBUG_REPORT_ERROR_BIT_EXT = showString "VK_DEBUG_REPORT_ERROR_BIT_EXT"+  showsPrec _ VK_DEBUG_REPORT_DEBUG_BIT_EXT = showString "VK_DEBUG_REPORT_DEBUG_BIT_EXT"+  showsPrec p (VkDebugReportFlagBitsEXT x) = showParen (p >= 11) (showString "VkDebugReportFlagBitsEXT " . showsPrec 11 x)++instance Read VkDebugReportFlagBitsEXT where+  readPrec = parens ( choose [ ("VK_DEBUG_REPORT_INFORMATION_BIT_EXT",         pure VK_DEBUG_REPORT_INFORMATION_BIT_EXT)+                             , ("VK_DEBUG_REPORT_WARNING_BIT_EXT",             pure VK_DEBUG_REPORT_WARNING_BIT_EXT)+                             , ("VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT", pure VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT)+                             , ("VK_DEBUG_REPORT_ERROR_BIT_EXT",               pure VK_DEBUG_REPORT_ERROR_BIT_EXT)+                             , ("VK_DEBUG_REPORT_DEBUG_BIT_EXT",               pure VK_DEBUG_REPORT_DEBUG_BIT_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDebugReportFlagBitsEXT")+                        v <- step readPrec+                        pure (VkDebugReportFlagBitsEXT v)+                        )+                    )++-- | @VK_DEBUG_REPORT_INFORMATION_BIT_EXT@ specifies an informational message+-- such as resource details that may be handy when debugging an+-- application.+pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT :: VkDebugReportFlagBitsEXT+pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT = VkDebugReportFlagBitsEXT 0x00000001++-- | @VK_DEBUG_REPORT_WARNING_BIT_EXT@ specifies use of Vulkan that /may/+-- expose an app bug. Such cases may not be immediately harmful, such as a+-- fragment shader outputting to a location with no attachment. Other cases+-- /may/ point to behavior that is almost certainly bad when unintended+-- such as using an image whose memory has not been filled. In general if+-- you see a warning but you know that the behavior is intended\/desired,+-- then simply ignore the warning.+pattern VK_DEBUG_REPORT_WARNING_BIT_EXT :: VkDebugReportFlagBitsEXT+pattern VK_DEBUG_REPORT_WARNING_BIT_EXT = VkDebugReportFlagBitsEXT 0x00000002++-- | @VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT@ specifies a potentially+-- non-optimal use of Vulkan, e.g. using+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearColorImage' when+-- setting 'Graphics.Vulkan.Core10.Pass.VkAttachmentDescription'::@loadOp@+-- to @VK_ATTACHMENT_LOAD_OP_CLEAR@ would have worked.+pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT :: VkDebugReportFlagBitsEXT+pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = VkDebugReportFlagBitsEXT 0x00000004++-- | @VK_DEBUG_REPORT_ERROR_BIT_EXT@ specifies that an error that may cause+-- undefined results, including an application crash.+pattern VK_DEBUG_REPORT_ERROR_BIT_EXT :: VkDebugReportFlagBitsEXT+pattern VK_DEBUG_REPORT_ERROR_BIT_EXT = VkDebugReportFlagBitsEXT 0x00000008++-- | @VK_DEBUG_REPORT_DEBUG_BIT_EXT@ specifies diagnostic information from+-- the implementation and layers.+pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT :: VkDebugReportFlagBitsEXT+pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT = VkDebugReportFlagBitsEXT 0x00000010+-- No documentation found for Nested "VkResult" "VK_ERROR_VALIDATION_FAILED_EXT"+pattern VK_ERROR_VALIDATION_FAILED_EXT :: VkResult+pattern VK_ERROR_VALIDATION_FAILED_EXT = VkResult (-1000011001)+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = VkStructureType 1000011000+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT"+pattern VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT :: VkObjectType+pattern VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = VkObjectType 1000011000+-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = VkDebugReportObjectTypeEXT 1000156000+-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = VkDebugReportObjectTypeEXT 1000085000+-- No documentation found for TopLevel "VK_EXT_DEBUG_REPORT_SPEC_VERSION"+pattern VK_EXT_DEBUG_REPORT_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DEBUG_REPORT_SPEC_VERSION = 9+-- No documentation found for TopLevel "VK_EXT_DEBUG_REPORT_EXTENSION_NAME"+pattern VK_EXT_DEBUG_REPORT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report"+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT+-- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT+-- | PFN_vkDebugReportCallbackEXT - Application-defined debug report callback+-- function+--+-- = Parameters+-- #_parameters#+--+-- -   @flags@ specifies the 'VkDebugReportFlagBitsEXT' that triggered this+--     callback.+--+-- -   @objectType@ is a 'VkDebugReportObjectTypeEXT' value specifying the+--     type of object being used or created at the time the event was+--     triggered.+--+-- -   @object@ is the object where the issue was detected. If @objectType@+--     is @VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT@, @object@ is undefined.+--+-- -   @location@ is a component (layer, driver, loader) defined value that+--     specifies the /location/ of the trigger. This is an /optional/+--     value.+--+-- -   @messageCode@ is a layer-defined value indicating what test+--     triggered this callback.+--+-- -   @pLayerPrefix@ is a null-terminated string that is an abbreviation+--     of the name of the component making the callback. @pLayerPrefix@ is+--     only valid for the duration of the callback.+--+-- -   @pMessage@ is a null-terminated string detailing the trigger+--     conditions. @pMessage@ is only valid for the duration of the+--     callback.+--+-- -   @pUserData@ is the user data given when the+--     'VkDebugReportCallbackEXT' was created.+--+-- = Description+-- #_description#+--+-- The callback /must/ not call @vkDestroyDebugReportCallbackEXT@.+--+-- The callback returns a @VkBool32@, which is interpreted in a+-- layer-specified manner. The application /should/ always return+-- @VK_FALSE@. The @VK_TRUE@ value is reserved for use in layer+-- development.+--+-- @object@ /must/ be a Vulkan object or @VK_NULL_HANDLE@. If @objectType@+-- is not @VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT@ and @object@ is not+-- @VK_NULL_HANDLE@, @object@ /must/ be a Vulkan object of the+-- corresponding type associated with @objectType@ as defined in+-- <{html_spec_relative}#debug-report-object-types {html_spec_relative}#debug-report-object-types>.+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugReportCallbackCreateInfoEXT'+type PFN_vkDebugReportCallbackEXT = Ptr (("flags" ::: VkDebugReportFlagsEXT) -> ("objectType" ::: VkDebugReportObjectTypeEXT) -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> ("pUserData" ::: Ptr ()) -> IO VkBool32)+-- | Dummy data to tag the 'Ptr' with+data VkDebugReportCallbackEXT_T+-- | VkDebugReportCallbackEXT - Opaque handle to a debug report callback+-- object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'vkCreateDebugReportCallbackEXT', 'vkDestroyDebugReportCallbackEXT'+type VkDebugReportCallbackEXT = Ptr VkDebugReportCallbackEXT_T+-- | vkCreateDebugReportCallbackEXT - Create a debug report callback object+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ the instance the callback will be logged on.+--+-- -   @pCreateInfo@ points to a 'VkDebugReportCallbackCreateInfoEXT'+--     structure which defines the conditions under which this callback+--     will be called.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pCallback@ is a pointer to record the @VkDebugReportCallbackEXT@+--     object created.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkDebugReportCallbackCreateInfoEXT@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pCallback@ /must/ be a valid pointer to a+--     @VkDebugReportCallbackEXT@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkDebugReportCallbackCreateInfoEXT', 'VkDebugReportCallbackEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance'+foreign import ccall "vkCreateDebugReportCallbackEXT" vkCreateDebugReportCallbackEXT :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pCallback" ::: Ptr VkDebugReportCallbackEXT) -> IO VkResult+-- | vkDestroyDebugReportCallbackEXT - Destroy a debug report callback object+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ the instance where the callback was created.+--+-- -   @callback@ the @VkDebugReportCallbackEXT@ object to destroy.+--     @callback@ is an externally synchronized object and /must/ not be+--     used on more than one thread at a time. This means that+--     @vkDestroyDebugReportCallbackEXT@ /must/ not be called when a+--     callback is active.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @VkAllocationCallbacks@ were provided when @callback@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @callback@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @callback@ /must/ be a valid @VkDebugReportCallbackEXT@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @callback@ /must/ have been created, allocated, or retrieved from+--     @instance@+--+-- == Host Synchronization+--+-- -   Host access to @callback@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkDebugReportCallbackEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance'+foreign import ccall "vkDestroyDebugReportCallbackEXT" vkDestroyDebugReportCallbackEXT :: ("instance" ::: VkInstance) -> ("callback" ::: VkDebugReportCallbackEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkDebugReportMessageEXT - Inject a message into a debug stream+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the debug stream’s @VkInstance@.+--+-- -   @flags@ specifies the 'VkDebugReportFlagBitsEXT' classification of+--     this event\/message.+--+-- -   @objectType@ is a 'VkDebugReportObjectTypeEXT' specifying the type+--     of object being used or created at the time the event was triggered.+--+-- -   @object@ this is the object where the issue was detected. @object@+--     /can/ be @VK_NULL_HANDLE@ if there is no object associated with the+--     event.+--+-- -   @location@ is an application defined value.+--+-- -   @messageCode@ is an application defined value.+--+-- -   @pLayerPrefix@ is the abbreviation of the component making this+--     event\/message.+--+-- -   @pMessage@ is a null-terminated string detailing the trigger+--     conditions.+--+-- = Description+-- #_description#+--+-- The call will propagate through the layers and generate callback(s) as+-- indicated by the message’s flags. The parameters are passed on to the+-- callback in addition to the @pUserData@ value that was defined at the+-- time the callback was registered.+--+-- == Valid Usage+--+-- -   @object@ /must/ be a Vulkan object or @VK_NULL_HANDLE@+--+-- -   If @objectType@ is not @VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT@ and+--     @object@ is not @VK_NULL_HANDLE@, @object@ /must/ be a Vulkan object+--     of the corresponding type associated with @objectType@ as defined in+--     <{html_spec_relative}#debug-report-object-types {html_spec_relative}#debug-report-object-types>.+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @flags@ /must/ be a valid combination of 'VkDebugReportFlagBitsEXT'+--     values+--+-- -   @flags@ /must/ not be @0@+--+-- -   @objectType@ /must/ be a valid 'VkDebugReportObjectTypeEXT' value+--+-- -   @pLayerPrefix@ /must/ be a null-terminated UTF-8 string+--+-- -   @pMessage@ /must/ be a null-terminated UTF-8 string+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugReportFlagsEXT', 'VkDebugReportObjectTypeEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance'+foreign import ccall "vkDebugReportMessageEXT" vkDebugReportMessageEXT :: ("instance" ::: VkInstance) -> ("flags" ::: VkDebugReportFlagsEXT) -> ("objectType" ::: VkDebugReportObjectTypeEXT) -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> IO ()+-- | VkDebugReportCallbackCreateInfoEXT - Structure specifying parameters of+-- a newly created debug report callback+--+-- = Description+-- #_description#+--+-- For each @VkDebugReportCallbackEXT@ that is created the+-- @VkDebugReportCallbackCreateInfoEXT@::@flags@ determine when that+-- @VkDebugReportCallbackCreateInfoEXT@::@pfnCallback@ is called. When an+-- event happens, the implementation will do a bitwise AND of the event’s+-- 'VkDebugReportFlagBitsEXT' flags to each @VkDebugReportCallbackEXT@+-- object’s flags. For each non-zero result the corresponding callback will+-- be called. The callback will come directly from the component that+-- detected the event, unless some other layer intercepts the calls for its+-- own purposes (filter them in a different way, log to a system error log,+-- etc.).+--+-- An application /may/ receive multiple callbacks if multiple+-- @VkDebugReportCallbackEXT@ objects were created. A callback will always+-- be executed in the same thread as the originating Vulkan call.+--+-- A callback may be called from multiple threads simultaneously (if the+-- application is making Vulkan calls from multiple threads).+--+-- == Valid Usage+--+-- -   @pfnCallback@ /must/ be a valid 'PFN_vkDebugReportCallbackEXT'+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT@+--+-- -   @flags@ /must/ be a valid combination of 'VkDebugReportFlagBitsEXT'+--     values+--+-- = See Also+-- #_see_also#+--+-- 'PFN_vkDebugReportCallbackEXT', 'VkDebugReportFlagsEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateDebugReportCallbackEXT'+data VkDebugReportCallbackCreateInfoEXT = VkDebugReportCallbackCreateInfoEXT+  { -- No documentation found for Nested "VkDebugReportCallbackCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugReportCallbackCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugReportCallbackCreateInfoEXT" "vkFlags"+  vkFlags :: VkDebugReportFlagsEXT+  , -- No documentation found for Nested "VkDebugReportCallbackCreateInfoEXT" "vkPfnCallback"+  vkPfnCallback :: PFN_vkDebugReportCallbackEXT+  , -- No documentation found for Nested "VkDebugReportCallbackCreateInfoEXT" "vkPUserData"+  vkPUserData :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkDebugReportCallbackCreateInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDebugReportCallbackCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                <*> peek (ptr `plusPtr` 8)+                                                <*> peek (ptr `plusPtr` 16)+                                                <*> peek (ptr `plusPtr` 24)+                                                <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugReportCallbackCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugReportCallbackCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDebugReportCallbackCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkPfnCallback (poked :: VkDebugReportCallbackCreateInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkPUserData (poked :: VkDebugReportCallbackCreateInfoEXT))+-- | VkDebugReportFlagsEXT - Bitmask of VkDebugReportFlagBitsEXT+--+-- = Description+-- #_description#+--+-- @VkDebugReportFlagsEXT@ is a bitmask type for setting a mask of zero or+-- more 'VkDebugReportFlagBitsEXT'.+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugReportCallbackCreateInfoEXT', 'VkDebugReportFlagBitsEXT',+-- 'vkDebugReportMessageEXT'+type VkDebugReportFlagsEXT = VkDebugReportFlagBitsEXT
+ src/Graphics/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -0,0 +1,1256 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_debug_utils+  ( VkDebugUtilsMessageSeverityFlagBitsEXT(..)+  , pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT+  , pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT+  , pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT+  , pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT+  , VkDebugUtilsMessageTypeFlagBitsEXT(..)+  , pattern VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT+  , pattern VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT+  , pattern VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT+  , VkDebugUtilsMessengerCreateFlagsEXT(..)+  , VkDebugUtilsMessengerCallbackDataFlagsEXT(..)+  , pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT+  , pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT+  , pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT+  , pattern VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT+  , pattern VK_EXT_DEBUG_UTILS_SPEC_VERSION+  , pattern VK_EXT_DEBUG_UTILS_EXTENSION_NAME+  , PFN_vkDebugUtilsMessengerCallbackEXT+  , VkDebugUtilsMessengerEXT+  , vkSetDebugUtilsObjectNameEXT+  , vkSetDebugUtilsObjectTagEXT+  , vkQueueBeginDebugUtilsLabelEXT+  , vkQueueEndDebugUtilsLabelEXT+  , vkQueueInsertDebugUtilsLabelEXT+  , vkCmdBeginDebugUtilsLabelEXT+  , vkCmdEndDebugUtilsLabelEXT+  , vkCmdInsertDebugUtilsLabelEXT+  , vkCreateDebugUtilsMessengerEXT+  , vkDestroyDebugUtilsMessengerEXT+  , vkSubmitDebugUtilsMessageEXT+  , VkDebugUtilsObjectNameInfoEXT(..)+  , VkDebugUtilsObjectTagInfoEXT(..)+  , VkDebugUtilsLabelEXT(..)+  , VkDebugUtilsMessengerCreateInfoEXT(..)+  , VkDebugUtilsMessengerCallbackDataEXT(..)+  , VkDebugUtilsMessageSeverityFlagsEXT+  , VkDebugUtilsMessageTypeFlagsEXT+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  , Word64+  )+import Foreign.C.Types+  ( CChar(..)+  , CFloat(..)+  , CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkBool32(..)+  , VkObjectType(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkInstance+  , VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  , VkQueue+  )+++-- ** VkDebugUtilsMessageSeverityFlagBitsEXT++-- | VkDebugUtilsMessageSeverityFlagBitsEXT - Bitmask specifying which+-- severities of events cause a debug messenger callback+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsMessageSeverityFlagsEXT', 'vkSubmitDebugUtilsMessageEXT'+newtype VkDebugUtilsMessageSeverityFlagBitsEXT = VkDebugUtilsMessageSeverityFlagBitsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDebugUtilsMessageSeverityFlagBitsEXT where+  showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"+  showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"+  showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"+  showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"+  showsPrec p (VkDebugUtilsMessageSeverityFlagBitsEXT x) = showParen (p >= 11) (showString "VkDebugUtilsMessageSeverityFlagBitsEXT " . showsPrec 11 x)++instance Read VkDebugUtilsMessageSeverityFlagBitsEXT where+  readPrec = parens ( choose [ ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT", pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT)+                             , ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT",    pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT)+                             , ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT", pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT)+                             , ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT",   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDebugUtilsMessageSeverityFlagBitsEXT")+                        v <- step readPrec+                        pure (VkDebugUtilsMessageSeverityFlagBitsEXT v)+                        )+                    )++-- | @VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT@ specifies the most+-- verbose output indicating all diagnostic messages from the Vulkan+-- loader, layers, and drivers should be captured.+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT :: VkDebugUtilsMessageSeverityFlagBitsEXT+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = VkDebugUtilsMessageSeverityFlagBitsEXT 0x00000001++-- | @VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT@ specifies an+-- informational message such as resource details that may be handy when+-- debugging an application.+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT :: VkDebugUtilsMessageSeverityFlagBitsEXT+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = VkDebugUtilsMessageSeverityFlagBitsEXT 0x00000010++-- | @VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT@ specifies use of+-- Vulkan that /may/ expose an app bug. Such cases may not be immediately+-- harmful, such as a fragment shader outputting to a location with no+-- attachment. Other cases /may/ point to behavior that is almost certainly+-- bad when unintended such as using an image whose memory has not been+-- filled. In general if you see a warning but you know that the behavior+-- is intended\/desired, then simply ignore the warning.+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT :: VkDebugUtilsMessageSeverityFlagBitsEXT+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = VkDebugUtilsMessageSeverityFlagBitsEXT 0x00000100++-- | @VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT@ specifies that an error+-- that may cause undefined results, including an application crash.+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT :: VkDebugUtilsMessageSeverityFlagBitsEXT+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = VkDebugUtilsMessageSeverityFlagBitsEXT 0x00001000+-- ** VkDebugUtilsMessageTypeFlagBitsEXT++-- | VkDebugUtilsMessageTypeFlagBitsEXT - Bitmask specifying which types of+-- events cause a debug messenger callback+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsMessageTypeFlagsEXT'+newtype VkDebugUtilsMessageTypeFlagBitsEXT = VkDebugUtilsMessageTypeFlagBitsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDebugUtilsMessageTypeFlagBitsEXT where+  showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"+  showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"+  showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"+  showsPrec p (VkDebugUtilsMessageTypeFlagBitsEXT x) = showParen (p >= 11) (showString "VkDebugUtilsMessageTypeFlagBitsEXT " . showsPrec 11 x)++instance Read VkDebugUtilsMessageTypeFlagBitsEXT where+  readPrec = parens ( choose [ ("VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT",     pure VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT)+                             , ("VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT",  pure VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT)+                             , ("VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT", pure VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDebugUtilsMessageTypeFlagBitsEXT")+                        v <- step readPrec+                        pure (VkDebugUtilsMessageTypeFlagBitsEXT v)+                        )+                    )++-- | @VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT@ specifies that some+-- general event has occurred. This is typically a non-specification,+-- non-performance event.+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT :: VkDebugUtilsMessageTypeFlagBitsEXT+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = VkDebugUtilsMessageTypeFlagBitsEXT 0x00000001++-- | @VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT@ specifies that+-- something has occurred during validation against the Vulkan+-- specification that may indicate invalid behavior.+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT :: VkDebugUtilsMessageTypeFlagBitsEXT+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = VkDebugUtilsMessageTypeFlagBitsEXT 0x00000002++-- | @VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT@ specifies a+-- potentially non-optimal use of Vulkan, e.g. using+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.vkCmdClearColorImage' when+-- setting 'Graphics.Vulkan.Core10.Pass.VkAttachmentDescription'::@loadOp@+-- to @VK_ATTACHMENT_LOAD_OP_CLEAR@ would have worked.+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT :: VkDebugUtilsMessageTypeFlagBitsEXT+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = VkDebugUtilsMessageTypeFlagBitsEXT 0x00000004+-- ** VkDebugUtilsMessengerCreateFlagsEXT++-- No documentation found for TopLevel "VkDebugUtilsMessengerCreateFlagsEXT"+newtype VkDebugUtilsMessengerCreateFlagsEXT = VkDebugUtilsMessengerCreateFlagsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDebugUtilsMessengerCreateFlagsEXT where+  +  showsPrec p (VkDebugUtilsMessengerCreateFlagsEXT x) = showParen (p >= 11) (showString "VkDebugUtilsMessengerCreateFlagsEXT " . showsPrec 11 x)++instance Read VkDebugUtilsMessengerCreateFlagsEXT where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDebugUtilsMessengerCreateFlagsEXT")+                        v <- step readPrec+                        pure (VkDebugUtilsMessengerCreateFlagsEXT v)+                        )+                    )+++-- ** VkDebugUtilsMessengerCallbackDataFlagsEXT++-- No documentation found for TopLevel "VkDebugUtilsMessengerCallbackDataFlagsEXT"+newtype VkDebugUtilsMessengerCallbackDataFlagsEXT = VkDebugUtilsMessengerCallbackDataFlagsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDebugUtilsMessengerCallbackDataFlagsEXT where+  +  showsPrec p (VkDebugUtilsMessengerCallbackDataFlagsEXT x) = showParen (p >= 11) (showString "VkDebugUtilsMessengerCallbackDataFlagsEXT " . showsPrec 11 x)++instance Read VkDebugUtilsMessengerCallbackDataFlagsEXT where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDebugUtilsMessengerCallbackDataFlagsEXT")+                        v <- step readPrec+                        pure (VkDebugUtilsMessengerCallbackDataFlagsEXT v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = VkStructureType 1000128000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = VkStructureType 1000128001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = VkStructureType 1000128002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = VkStructureType 1000128003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = VkStructureType 1000128004+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT"+pattern VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT :: VkObjectType+pattern VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = VkObjectType 1000128000+-- No documentation found for TopLevel "VK_EXT_DEBUG_UTILS_SPEC_VERSION"+pattern VK_EXT_DEBUG_UTILS_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DEBUG_UTILS_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_DEBUG_UTILS_EXTENSION_NAME"+pattern VK_EXT_DEBUG_UTILS_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DEBUG_UTILS_EXTENSION_NAME = "VK_EXT_debug_utils"+-- | PFN_vkDebugUtilsMessengerCallbackEXT - Application-defined debug+-- messenger callback function+--+-- = Parameters+-- #_parameters#+--+-- -   @messageSeverity@ specifies the+--     'VkDebugUtilsMessageSeverityFlagBitsEXT' that triggered this+--     callback.+--+-- -   @messageTypes@ specifies the 'VkDebugUtilsMessageTypeFlagBitsEXT'+--     that triggered this callback.+--+-- -   @pCallbackData@ contains all the callback related data in the+--     'VkDebugUtilsMessengerCallbackDataEXT' structure.+--+-- -   @pUserData@ is the user data provided when the+--     'VkDebugUtilsMessengerEXT' was created.+--+-- = Description+-- #_description#+--+-- The callback /must/ not call 'vkDestroyDebugUtilsMessengerEXT'.+--+-- The callback returns a @VkBool32@, which is interpreted in a+-- layer-specified manner. The application /should/ always return+-- @VK_FALSE@. The @VK_TRUE@ value is reserved for use in layer+-- development.+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsMessengerCreateInfoEXT'+type PFN_vkDebugUtilsMessengerCallbackEXT = Ptr (("messageSeverity" ::: VkDebugUtilsMessageSeverityFlagBitsEXT) -> ("messageType" ::: VkDebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr VkDebugUtilsMessengerCallbackDataEXT) -> ("pUserData" ::: Ptr ()) -> IO VkBool32)+-- | Dummy data to tag the 'Ptr' with+data VkDebugUtilsMessengerEXT_T+-- | VkDebugUtilsMessengerEXT - Opaque handle to a debug messenger object+--+-- = Description+-- #_description#+--+-- The debug messenger will provide detailed feedback on the application’s+-- use of Vulkan when events of interest occur. When an event of interest+-- does occur, the debug messenger will submit a debug message to the debug+-- callback that was provided during its creation. Additionally, the debug+-- messenger is responsible with filtering out debug messages that the+-- callback isn’t interested in and will only provide desired debug+-- messages.+--+-- = See Also+-- #_see_also#+--+-- 'vkCreateDebugUtilsMessengerEXT', 'vkDestroyDebugUtilsMessengerEXT'+type VkDebugUtilsMessengerEXT = Ptr VkDebugUtilsMessengerEXT_T+-- | vkSetDebugUtilsObjectNameEXT - Give a user-friendly name to an object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device that created the object.+--+-- -   @pNameInfo@ is a pointer to an instance of the+--     'VkDebugUtilsObjectNameInfoEXT' structure specifying the parameters+--     of the name to set on the object.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pNameInfo@ /must/ be a valid pointer to a valid+--     @VkDebugUtilsObjectNameInfoEXT@ structure+--+-- == Host Synchronization+--+-- -   Host access to @pNameInfo.objectHandle@ /must/ be externally+--     synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsObjectNameInfoEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkSetDebugUtilsObjectNameEXT" vkSetDebugUtilsObjectNameEXT :: ("device" ::: VkDevice) -> ("pNameInfo" ::: Ptr VkDebugUtilsObjectNameInfoEXT) -> IO VkResult+-- | vkSetDebugUtilsObjectTagEXT - Attach arbitrary data to an object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device that created the object.+--+-- -   @pTagInfo@ is a pointer to an instance of the+--     'VkDebugUtilsObjectTagInfoEXT' structure specifying the parameters+--     of the tag to attach to the object.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pTagInfo@ /must/ be a valid pointer to a valid+--     @VkDebugUtilsObjectTagInfoEXT@ structure+--+-- == Host Synchronization+--+-- -   Host access to @pTagInfo.objectHandle@ /must/ be externally+--     synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsObjectTagInfoEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkSetDebugUtilsObjectTagEXT" vkSetDebugUtilsObjectTagEXT :: ("device" ::: VkDevice) -> ("pTagInfo" ::: Ptr VkDebugUtilsObjectTagInfoEXT) -> IO VkResult+-- | vkQueueBeginDebugUtilsLabelEXT - Open a queue debug label region+--+-- = Parameters+-- #_parameters#+--+-- -   @queue@ is the queue in which to start a debug label region.+--+-- -   @pLabelInfo@ is a pointer to an instance of the+--     'VkDebugUtilsLabelEXT' structure specifying the parameters of the+--     label region to open.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @queue@ /must/ be a valid @VkQueue@ handle+--+-- -   @pLabelInfo@ /must/ be a valid pointer to a valid+--     @VkDebugUtilsLabelEXT@ structure+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | -               | -               | Any             | -               |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsLabelEXT', 'Graphics.Vulkan.Core10.Queue.VkQueue'+foreign import ccall "vkQueueBeginDebugUtilsLabelEXT" vkQueueBeginDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO ()+-- | vkQueueEndDebugUtilsLabelEXT - Close a queue debug label region+--+-- = Parameters+-- #_parameters#+--+-- -   @queue@ is the queue in which a debug label region should be closed.+--+-- = Description+-- #_description#+--+-- The calls to 'vkQueueBeginDebugUtilsLabelEXT' and+-- 'vkQueueEndDebugUtilsLabelEXT' /must/ be matched and balanced.+--+-- == Valid Usage+--+-- -   There /must/ be an outstanding @vkQueueBeginDebugUtilsLabelEXT@+--     command prior to the @vkQueueEndDebugUtilsLabelEXT@ on the queue+--+-- == Valid Usage (Implicit)+--+-- -   @queue@ /must/ be a valid @VkQueue@ handle+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | -               | -               | Any             | -               |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkQueue'+foreign import ccall "vkQueueEndDebugUtilsLabelEXT" vkQueueEndDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> IO ()+-- | vkQueueInsertDebugUtilsLabelEXT - Insert a label into a queue+--+-- = Parameters+-- #_parameters#+--+-- -   @queue@ is the queue into which a debug label will be inserted.+--+-- -   @pLabelInfo@ is a pointer to an instance of the+--     'VkDebugUtilsLabelEXT' structure specifying the parameters of the+--     label to insert.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @queue@ /must/ be a valid @VkQueue@ handle+--+-- -   @pLabelInfo@ /must/ be a valid pointer to a valid+--     @VkDebugUtilsLabelEXT@ structure+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | -               | -               | Any             | -               |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsLabelEXT', 'Graphics.Vulkan.Core10.Queue.VkQueue'+foreign import ccall "vkQueueInsertDebugUtilsLabelEXT" vkQueueInsertDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO ()+-- | vkCmdBeginDebugUtilsLabelEXT - Open a command buffer debug label region+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @pLabelInfo@ is a pointer to an instance of the+--     'VkDebugUtilsLabelEXT' structure specifying the parameters of the+--     label region to open.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pLabelInfo@ /must/ be a valid pointer to a valid+--     @VkDebugUtilsLabelEXT@ structure+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- == Host Synchronization+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', 'VkDebugUtilsLabelEXT'+foreign import ccall "vkCmdBeginDebugUtilsLabelEXT" vkCmdBeginDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO ()+-- | vkCmdEndDebugUtilsLabelEXT - Close a command buffer label region+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- = Description+-- #_description#+--+-- An application /may/ open a debug label region in one command buffer and+-- close it in another, or otherwise split debug label regions across+-- multiple command buffers or multiple queue submissions. When viewed from+-- the linear series of submissions to a single queue, the calls to+-- 'vkCmdBeginDebugUtilsLabelEXT' and 'vkCmdEndDebugUtilsLabelEXT' /must/+-- be matched and balanced.+--+-- == Valid Usage+--+-- -   There /must/ be an outstanding @vkCmdBeginDebugUtilsLabelEXT@+--     command prior to the @vkCmdEndDebugUtilsLabelEXT@ on the queue that+--     @commandBuffer@ is submitted to+--+-- -   If @commandBuffer@ is a secondary command buffer, there /must/ be an+--     outstanding @vkCmdBeginDebugUtilsLabelEXT@ command recorded to+--     @commandBuffer@ that has not previously been ended by a call to+--     @vkCmdEndDebugUtilsLabelEXT@.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- == Host Synchronization+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdEndDebugUtilsLabelEXT" vkCmdEndDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> IO ()+-- | vkCmdInsertDebugUtilsLabelEXT - Insert a label into a command buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command is+--     recorded.+--+-- -   @pInfo@ is a pointer to an instance of the 'VkDebugUtilsLabelEXT'+--     structure specifying the parameters of the label to insert.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pLabelInfo@ /must/ be a valid pointer to a valid+--     @VkDebugUtilsLabelEXT@ structure+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- == Host Synchronization+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', 'VkDebugUtilsLabelEXT'+foreign import ccall "vkCmdInsertDebugUtilsLabelEXT" vkCmdInsertDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO ()+-- | vkCreateDebugUtilsMessengerEXT - Create a debug messenger object+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ the instance the messenger will be used with.+--+-- -   @pCreateInfo@ points to a 'VkDebugUtilsMessengerCreateInfoEXT'+--     structure which contains the callback pointer as well as defines the+--     conditions under which this messenger will trigger the callback.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pMessenger@ is a pointer to record the @VkDebugUtilsMessengerEXT@+--     object created.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkDebugUtilsMessengerCreateInfoEXT@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pMessenger@ /must/ be a valid pointer to a+--     @VkDebugUtilsMessengerEXT@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkDebugUtilsMessengerCreateInfoEXT', 'VkDebugUtilsMessengerEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance'+foreign import ccall "vkCreateDebugUtilsMessengerEXT" vkCreateDebugUtilsMessengerEXT :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMessenger" ::: Ptr VkDebugUtilsMessengerEXT) -> IO VkResult+-- | vkDestroyDebugUtilsMessengerEXT - Destroy a debug messenger object+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ the instance where the callback was created.+--+-- -   @messenger@ the @VkDebugUtilsMessengerEXT@ object to destroy.+--     @messenger@ is an externally synchronized object and /must/ not be+--     used on more than one thread at a time. This means that+--     @vkDestroyDebugUtilsMessengerEXT@ /must/ not be called when a+--     callback is active.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @VkAllocationCallbacks@ were provided when @messenger@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @messenger@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @messenger@ /must/ be a valid @VkDebugUtilsMessengerEXT@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @messenger@ /must/ have been created, allocated, or retrieved from+--     @instance@+--+-- == Host Synchronization+--+-- -   Host access to @messenger@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkDebugUtilsMessengerEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance'+foreign import ccall "vkDestroyDebugUtilsMessengerEXT" vkDestroyDebugUtilsMessengerEXT :: ("instance" ::: VkInstance) -> ("messenger" ::: VkDebugUtilsMessengerEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkSubmitDebugUtilsMessageEXT - Inject a message into a debug stream+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the debug stream’s @VkInstance@.+--+-- -   @messageSeverity@ is the 'VkDebugUtilsMessageSeverityFlagBitsEXT'+--     severity of this event\/message.+--+-- -   @messageTypes@ is a bitmask of 'VkDebugUtilsMessageTypeFlagBitsEXT'+--     specifying which type of event(s) to identify with this message.+--+-- -   @pCallbackData@ contains all the callback related data in the+--     'VkDebugUtilsMessengerCallbackDataEXT' structure.+--+-- = Description+-- #_description#+--+-- The call will propagate through the layers and generate callback(s) as+-- indicated by the message’s flags. The parameters are passed on to the+-- callback in addition to the @pUserData@ value that was defined at the+-- time the messenger was registered.+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @messageSeverity@ /must/ be a valid+--     'VkDebugUtilsMessageSeverityFlagBitsEXT' value+--+-- -   @messageTypes@ /must/ be a valid combination of+--     'VkDebugUtilsMessageTypeFlagBitsEXT' values+--+-- -   @messageTypes@ /must/ not be @0@+--+-- -   @pCallbackData@ /must/ be a valid pointer to a valid+--     @VkDebugUtilsMessengerCallbackDataEXT@ structure+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsMessageSeverityFlagBitsEXT',+-- 'VkDebugUtilsMessageTypeFlagsEXT',+-- 'VkDebugUtilsMessengerCallbackDataEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance'+foreign import ccall "vkSubmitDebugUtilsMessageEXT" vkSubmitDebugUtilsMessageEXT :: ("instance" ::: VkInstance) -> ("messageSeverity" ::: VkDebugUtilsMessageSeverityFlagBitsEXT) -> ("messageTypes" ::: VkDebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr VkDebugUtilsMessengerCallbackDataEXT) -> IO ()+-- | VkDebugUtilsObjectNameInfoEXT - Specify parameters of a name to give to+-- an object+--+-- = Description+-- #_description#+--+-- Applications /may/ change the name associated with an object simply by+-- calling @vkSetDebugUtilsObjectNameEXT@ again with a new string. If+-- @pObjectName@ is an empty string, then any previously set name is+-- removed.+--+-- == Valid Usage+--+-- -   @objectType@ /must/ not be @VK_OBJECT_TYPE_UNKNOWN@+--+-- -   @objectHandle@ /must/ not be+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   @objectHandle@ /must/ be a Vulkan object of the type associated with+--     @objectType@ as defined in+--     <{html_spec_relative}#debugging-object-types {html_spec_relative}#debugging-object-types>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @objectType@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Core.VkObjectType' value+--+-- -   If @pObjectName@ is not @NULL@, @pObjectName@ /must/ be a+--     null-terminated UTF-8 string+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsMessengerCallbackDataEXT',+-- 'Graphics.Vulkan.Core10.Core.VkObjectType',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkSetDebugUtilsObjectNameEXT'+data VkDebugUtilsObjectNameInfoEXT = VkDebugUtilsObjectNameInfoEXT+  { -- No documentation found for Nested "VkDebugUtilsObjectNameInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugUtilsObjectNameInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugUtilsObjectNameInfoEXT" "vkObjectType"+  vkObjectType :: VkObjectType+  , -- No documentation found for Nested "VkDebugUtilsObjectNameInfoEXT" "vkObjectHandle"+  vkObjectHandle :: Word64+  , -- No documentation found for Nested "VkDebugUtilsObjectNameInfoEXT" "vkPObjectName"+  vkPObjectName :: Ptr CChar+  }+  deriving (Eq, Show)++instance Storable VkDebugUtilsObjectNameInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDebugUtilsObjectNameInfoEXT <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 24)+                                           <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugUtilsObjectNameInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugUtilsObjectNameInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkObjectType (poked :: VkDebugUtilsObjectNameInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkObjectHandle (poked :: VkDebugUtilsObjectNameInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkPObjectName (poked :: VkDebugUtilsObjectNameInfoEXT))+-- | VkDebugUtilsObjectTagInfoEXT - Specify parameters of a tag to attach to+-- an object+--+-- = Description+-- #_description#+--+-- The @tagName@ parameter gives a name or identifier to the type of data+-- being tagged. This can be used by debugging layers to easily filter for+-- only data that can be used by that implementation.+--+-- == Valid Usage+--+-- -   @objectType@ /must/ not be @VK_OBJECT_TYPE_UNKNOWN@+--+-- -   @objectHandle@ /must/ not be+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   @objectHandle@ /must/ be a Vulkan object of the type associated with+--     @objectType@ as defined in+--     <{html_spec_relative}#debugging-object-types {html_spec_relative}#debugging-object-types>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @objectType@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Core.VkObjectType' value+--+-- -   @pTag@ /must/ be a valid pointer to an array of @tagSize@ bytes+--+-- -   @tagSize@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkObjectType',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkSetDebugUtilsObjectTagEXT'+data VkDebugUtilsObjectTagInfoEXT = VkDebugUtilsObjectTagInfoEXT+  { -- No documentation found for Nested "VkDebugUtilsObjectTagInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugUtilsObjectTagInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugUtilsObjectTagInfoEXT" "vkObjectType"+  vkObjectType :: VkObjectType+  , -- No documentation found for Nested "VkDebugUtilsObjectTagInfoEXT" "vkObjectHandle"+  vkObjectHandle :: Word64+  , -- No documentation found for Nested "VkDebugUtilsObjectTagInfoEXT" "vkTagName"+  vkTagName :: Word64+  , -- No documentation found for Nested "VkDebugUtilsObjectTagInfoEXT" "vkTagSize"+  vkTagSize :: CSize+  , -- No documentation found for Nested "VkDebugUtilsObjectTagInfoEXT" "vkPTag"+  vkPTag :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkDebugUtilsObjectTagInfoEXT where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkDebugUtilsObjectTagInfoEXT <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 16)+                                          <*> peek (ptr `plusPtr` 24)+                                          <*> peek (ptr `plusPtr` 32)+                                          <*> peek (ptr `plusPtr` 40)+                                          <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugUtilsObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugUtilsObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkObjectType (poked :: VkDebugUtilsObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkObjectHandle (poked :: VkDebugUtilsObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkTagName (poked :: VkDebugUtilsObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 40) (vkTagSize (poked :: VkDebugUtilsObjectTagInfoEXT))+                *> poke (ptr `plusPtr` 48) (vkPTag (poked :: VkDebugUtilsObjectTagInfoEXT))+-- | VkDebugUtilsLabelEXT - Specify parameters of a label region+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @pLabelName@ /must/ be a null-terminated UTF-8 string+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsMessengerCallbackDataEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCmdBeginDebugUtilsLabelEXT', 'vkCmdInsertDebugUtilsLabelEXT',+-- 'vkQueueBeginDebugUtilsLabelEXT', 'vkQueueInsertDebugUtilsLabelEXT'+data VkDebugUtilsLabelEXT = VkDebugUtilsLabelEXT+  { -- No documentation found for Nested "VkDebugUtilsLabelEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugUtilsLabelEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugUtilsLabelEXT" "vkPLabelName"+  vkPLabelName :: Ptr CChar+  , -- No documentation found for Nested "VkDebugUtilsLabelEXT" "vkColor"+  vkColor :: Vector 4 CFloat+  }+  deriving (Eq, Show)++instance Storable VkDebugUtilsLabelEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDebugUtilsLabelEXT <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugUtilsLabelEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugUtilsLabelEXT))+                *> poke (ptr `plusPtr` 16) (vkPLabelName (poked :: VkDebugUtilsLabelEXT))+                *> poke (ptr `plusPtr` 24) (vkColor (poked :: VkDebugUtilsLabelEXT))+-- | VkDebugUtilsMessengerCreateInfoEXT - Structure specifying parameters of+-- a newly created debug messenger+--+-- = Description+-- #_description#+--+-- For each @VkDebugUtilsMessengerEXT@ that is created the+-- @VkDebugUtilsMessengerCreateInfoEXT@::@messageSeverity@ and+-- @VkDebugUtilsMessengerCreateInfoEXT@::@messageTypes@ determine when that+-- @VkDebugUtilsMessengerCreateInfoEXT@::@pfnUserCallback@ is called. The+-- process to determine if the user’s pfnUserCallback is triggered when an+-- event occurs is as follows:+--+-- 1.  The implementation will perform a bitwise AND of the event’s+--     'VkDebugUtilsMessageSeverityFlagBitsEXT' with the @messageSeverity@+--     provided during creation of the 'VkDebugUtilsMessengerEXT' object.+--+--     1.  If the value is 0, the message is skipped.+--+-- 2.  The implementation will perform bitwise AND of the event’s+--     'VkDebugUtilsMessageTypeFlagBitsEXT' with the @messageType@ provided+--     during the creation of the 'VkDebugUtilsMessengerEXT' object.+--+--     1.  If the value is 0, the message is skipped.+--+-- 3.  The callback will trigger a debug message for the current event+--+-- The callback will come directly from the component that detected the+-- event, unless some other layer intercepts the calls for its own purposes+-- (filter them in a different way, log to a system error log, etc.).+--+-- An application /can/ receive multiple callbacks if multiple+-- @VkDebugUtilsMessengerEXT@ objects are created. A callback will always+-- be executed in the same thread as the originating Vulkan call.+--+-- A callback /can/ be called from multiple threads simultaneously (if the+-- application is making Vulkan calls from multiple threads).+--+-- == Valid Usage+--+-- -   @pfnUserCallback@ /must/ be a valid+--     'PFN_vkDebugUtilsMessengerCallbackEXT'+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT@+--+-- -   @flags@ /must/ be @0@+--+-- -   @messageSeverity@ /must/ be a valid combination of+--     'VkDebugUtilsMessageSeverityFlagBitsEXT' values+--+-- -   @messageSeverity@ /must/ not be @0@+--+-- -   @messageType@ /must/ be a valid combination of+--     'VkDebugUtilsMessageTypeFlagBitsEXT' values+--+-- -   @messageType@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'PFN_vkDebugUtilsMessengerCallbackEXT',+-- 'VkDebugUtilsMessageSeverityFlagsEXT',+-- 'VkDebugUtilsMessageTypeFlagsEXT',+-- 'VkDebugUtilsMessengerCreateFlagsEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateDebugUtilsMessengerEXT'+data VkDebugUtilsMessengerCreateInfoEXT = VkDebugUtilsMessengerCreateInfoEXT+  { -- No documentation found for Nested "VkDebugUtilsMessengerCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugUtilsMessengerCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugUtilsMessengerCreateInfoEXT" "vkFlags"+  vkFlags :: VkDebugUtilsMessengerCreateFlagsEXT+  , -- No documentation found for Nested "VkDebugUtilsMessengerCreateInfoEXT" "vkMessageSeverity"+  vkMessageSeverity :: VkDebugUtilsMessageSeverityFlagsEXT+  , -- No documentation found for Nested "VkDebugUtilsMessengerCreateInfoEXT" "vkMessageType"+  vkMessageType :: VkDebugUtilsMessageTypeFlagsEXT+  , -- No documentation found for Nested "VkDebugUtilsMessengerCreateInfoEXT" "vkPfnUserCallback"+  vkPfnUserCallback :: PFN_vkDebugUtilsMessengerCallbackEXT+  , -- No documentation found for Nested "VkDebugUtilsMessengerCreateInfoEXT" "vkPUserData"+  vkPUserData :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkDebugUtilsMessengerCreateInfoEXT where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkDebugUtilsMessengerCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                <*> peek (ptr `plusPtr` 8)+                                                <*> peek (ptr `plusPtr` 16)+                                                <*> peek (ptr `plusPtr` 20)+                                                <*> peek (ptr `plusPtr` 24)+                                                <*> peek (ptr `plusPtr` 32)+                                                <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugUtilsMessengerCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugUtilsMessengerCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDebugUtilsMessengerCreateInfoEXT))+                *> poke (ptr `plusPtr` 20) (vkMessageSeverity (poked :: VkDebugUtilsMessengerCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkMessageType (poked :: VkDebugUtilsMessengerCreateInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkPfnUserCallback (poked :: VkDebugUtilsMessengerCreateInfoEXT))+                *> poke (ptr `plusPtr` 40) (vkPUserData (poked :: VkDebugUtilsMessengerCreateInfoEXT))+-- | VkDebugUtilsMessengerCallbackDataEXT - Structure specifying parameters+-- returned to the callback+--+-- = Description+-- #_description#+--+-- __Note__+--+-- This structure should only be considered valid during the lifetime of+-- the triggered callback.+--+-- Since adding queue and command buffer labels behaves like pushing and+-- popping onto a stack, the order of both @pQueueLabels@ and+-- @pCmdBufLabels@ is based on the order the labels were defined. The+-- result is that the first label in either @pQueueLabels@ or+-- @pCmdBufLabels@ will be the first defined (and therefore the oldest)+-- while the last label in each list will be the most recent.+--+-- __Note__+--+-- @pQueueLabels@ will only be non-NULL if one of the objects in @pObjects@+-- can be related directly to a defined @VkQueue@ which has had one or more+-- labels associated with it.+--+-- Likewise, @pCmdBufLabels@ will only be non-NULL if one of the objects in+-- @pObjects@ can be related directly to a defined @VkCommandBuffer@ which+-- has had one or more labels associated with it. Additionally, while+-- command buffer labels allow for beginning and ending across different+-- command buffers, the debug messaging framework /cannot/ guarantee that+-- labels in @pCmdBufLables@ will contain those defined outside of the+-- associated command buffer. This is partially due to the fact that the+-- association of one command buffer with another may not have been defined+-- at the time the debug message is triggered.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   If @pMessageIdName@ is not @NULL@, @pMessageIdName@ /must/ be a+--     null-terminated UTF-8 string+--+-- -   @pMessage@ /must/ be a null-terminated UTF-8 string+--+-- -   @objectCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkDebugUtilsLabelEXT', 'VkDebugUtilsMessengerCallbackDataFlagsEXT',+-- 'VkDebugUtilsObjectNameInfoEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkSubmitDebugUtilsMessageEXT'+data VkDebugUtilsMessengerCallbackDataEXT = VkDebugUtilsMessengerCallbackDataEXT+  { -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkFlags"+  vkFlags :: VkDebugUtilsMessengerCallbackDataFlagsEXT+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkPMessageIdName"+  vkPMessageIdName :: Ptr CChar+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkMessageIdNumber"+  vkMessageIdNumber :: Int32+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkPMessage"+  vkPMessage :: Ptr CChar+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkQueueLabelCount"+  vkQueueLabelCount :: Word32+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkPQueueLabels"+  vkPQueueLabels :: Ptr VkDebugUtilsLabelEXT+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkCmdBufLabelCount"+  vkCmdBufLabelCount :: Word32+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkPCmdBufLabels"+  vkPCmdBufLabels :: Ptr VkDebugUtilsLabelEXT+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkObjectCount"+  vkObjectCount :: Word32+  , -- No documentation found for Nested "VkDebugUtilsMessengerCallbackDataEXT" "vkPObjects"+  vkPObjects :: Ptr VkDebugUtilsObjectNameInfoEXT+  }+  deriving (Eq, Show)++instance Storable VkDebugUtilsMessengerCallbackDataEXT where+  sizeOf ~_ = 96+  alignment ~_ = 8+  peek ptr = VkDebugUtilsMessengerCallbackDataEXT <$> peek (ptr `plusPtr` 0)+                                                  <*> peek (ptr `plusPtr` 8)+                                                  <*> peek (ptr `plusPtr` 16)+                                                  <*> peek (ptr `plusPtr` 24)+                                                  <*> peek (ptr `plusPtr` 32)+                                                  <*> peek (ptr `plusPtr` 40)+                                                  <*> peek (ptr `plusPtr` 48)+                                                  <*> peek (ptr `plusPtr` 56)+                                                  <*> peek (ptr `plusPtr` 64)+                                                  <*> peek (ptr `plusPtr` 72)+                                                  <*> peek (ptr `plusPtr` 80)+                                                  <*> peek (ptr `plusPtr` 88)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 24) (vkPMessageIdName (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 32) (vkMessageIdNumber (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 40) (vkPMessage (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 48) (vkQueueLabelCount (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 56) (vkPQueueLabels (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 64) (vkCmdBufLabelCount (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 72) (vkPCmdBufLabels (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 80) (vkObjectCount (poked :: VkDebugUtilsMessengerCallbackDataEXT))+                *> poke (ptr `plusPtr` 88) (vkPObjects (poked :: VkDebugUtilsMessengerCallbackDataEXT))+-- No documentation found for TopLevel "VkDebugUtilsMessageSeverityFlagsEXT"+type VkDebugUtilsMessageSeverityFlagsEXT = VkDebugUtilsMessageSeverityFlagBitsEXT+-- No documentation found for TopLevel "VkDebugUtilsMessageTypeFlagsEXT"+type VkDebugUtilsMessageTypeFlagsEXT = VkDebugUtilsMessageTypeFlagBitsEXT
+ src/Graphics/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_depth_range_unrestricted+  ( pattern VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION+  , pattern VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION"+pattern VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME"+pattern VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME = "VK_EXT_depth_range_unrestricted"
+ src/Graphics/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs view
@@ -0,0 +1,1015 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing+  ( VkDescriptorBindingFlagBitsEXT(..)+  , pattern VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT+  , pattern VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT+  , pattern VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT+  , pattern VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT+  , pattern VK_ERROR_FRAGMENTATION_EXT+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT+  , pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT+  , pattern VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT+  , pattern VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION+  , pattern VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+  , VkPhysicalDeviceDescriptorIndexingFeaturesEXT(..)+  , VkPhysicalDeviceDescriptorIndexingPropertiesEXT(..)+  , VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(..)+  , VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(..)+  , VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(..)+  , VkDescriptorBindingFlagsEXT+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DescriptorSet+  ( VkDescriptorPoolCreateFlagBits(..)+  , VkDescriptorSetLayoutCreateFlagBits(..)+  )+++-- ** VkDescriptorBindingFlagBitsEXT++-- | VkDescriptorBindingFlagBitsEXT - Bitmask specifying descriptor set+-- layout binding properties+--+-- = Description+-- #_description#+--+-- -   @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ indicates that if+--     descriptors in this binding are updated between when the descriptor+--     set is bound in a command buffer and when that command buffer is+--     submitted to a queue, then the submission will use the most recently+--     set descriptors for this binding and the updates do not invalidate+--     the command buffer. Descriptor bindings created with this flag are+--     also partially exempt from the external synchronization requirement+--     in 'Graphics.Vulkan.Core10.DescriptorSet.vkUpdateDescriptorSets'.+--     They /can/ be updated concurrently with the set being bound to a+--     command buffer in another thread, but not concurrently with the set+--     being reset or freed.+--+-- -   @VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT@ indicates that+--     descriptors in this binding that are not /dynamically used/ need not+--     contain valid descriptors at the time the descriptors are consumed.+--     A descriptor is dynamically used if any shader invocation executes+--     an instruction that performs any memory access using the descriptor.+--+-- -   @VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT@+--     indicates that descriptors in this binding /can/ be updated after a+--     command buffer has bound this descriptor set, or while a command+--     buffer that uses this descriptor set is pending execution, as long+--     as the descriptors that are updated are not used by those command+--     buffers. If @VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT@ is also+--     set, then descriptors /can/ be updated as long as they are not+--     dynamically used by any shader invocations. If+--     @VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT@ is not set, then+--     descriptors /can/ be updated as long as they are not statically used+--     by any shader invocations.+--+-- -   @VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT@ indicates+--     that this descriptor binding has a variable size that will be+--     specified when a descriptor set is allocated using this layout. The+--     value of @descriptorCount@ is treated as an upper bound on the size+--     of the binding. This /must/ only be used for the last binding in the+--     descriptor set layout (i.e. the binding with the largest value of+--     @binding@). For the purposes of counting against limits such as+--     @maxDescriptorSet@* and @maxPerStageDescriptor@*, the full value of+--     @descriptorCount@ is counted.+--+-- __Note__+--+-- Note that while @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ and+-- @VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT@ both involve+-- updates to descriptor sets after they are bound,+-- @VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT@ is a weaker+-- requirement since it is only about descriptors that are not used,+-- whereas @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ requires the+-- implementation to observe updates to descriptors that are used.+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorBindingFlagsEXT'+newtype VkDescriptorBindingFlagBitsEXT = VkDescriptorBindingFlagBitsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDescriptorBindingFlagBitsEXT where+  showsPrec _ VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = showString "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT"+  showsPrec _ VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = showString "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT"+  showsPrec _ VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = showString "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"+  showsPrec _ VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = showString "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"+  showsPrec p (VkDescriptorBindingFlagBitsEXT x) = showParen (p >= 11) (showString "VkDescriptorBindingFlagBitsEXT " . showsPrec 11 x)++instance Read VkDescriptorBindingFlagBitsEXT where+  readPrec = parens ( choose [ ("VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT",           pure VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT)+                             , ("VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT", pure VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT)+                             , ("VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT",             pure VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT)+                             , ("VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT",   pure VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDescriptorBindingFlagBitsEXT")+                        v <- step readPrec+                        pure (VkDescriptorBindingFlagBitsEXT v)+                        )+                    )++-- No documentation found for Nested "VkDescriptorBindingFlagBitsEXT" "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT"+pattern VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT :: VkDescriptorBindingFlagBitsEXT+pattern VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VkDescriptorBindingFlagBitsEXT 0x00000001++-- No documentation found for Nested "VkDescriptorBindingFlagBitsEXT" "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT"+pattern VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT :: VkDescriptorBindingFlagBitsEXT+pattern VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VkDescriptorBindingFlagBitsEXT 0x00000002++-- No documentation found for Nested "VkDescriptorBindingFlagBitsEXT" "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"+pattern VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT :: VkDescriptorBindingFlagBitsEXT+pattern VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VkDescriptorBindingFlagBitsEXT 0x00000004++-- No documentation found for Nested "VkDescriptorBindingFlagBitsEXT" "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"+pattern VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT :: VkDescriptorBindingFlagBitsEXT+pattern VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VkDescriptorBindingFlagBitsEXT 0x00000008+-- No documentation found for Nested "VkResult" "VK_ERROR_FRAGMENTATION_EXT"+pattern VK_ERROR_FRAGMENTATION_EXT :: VkResult+pattern VK_ERROR_FRAGMENTATION_EXT = VkResult (-1000161000)+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VkStructureType 1000161000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VkStructureType 1000161001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VkStructureType 1000161002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VkStructureType 1000161003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VkStructureType 1000161004+-- No documentation found for Nested "VkDescriptorSetLayoutCreateFlagBits" "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT"+pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT :: VkDescriptorSetLayoutCreateFlagBits+pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VkDescriptorSetLayoutCreateFlagBits 0x00000002+-- No documentation found for Nested "VkDescriptorPoolCreateFlagBits" "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"+pattern VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT :: VkDescriptorPoolCreateFlagBits+pattern VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VkDescriptorPoolCreateFlagBits 0x00000002+-- No documentation found for TopLevel "VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION"+pattern VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME"+pattern VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME = "VK_EXT_descriptor_indexing"+-- | VkPhysicalDeviceDescriptorIndexingFeaturesEXT - Structure describing+-- descriptor indexing features that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceDescriptorIndexingFeaturesEXT@+-- structure describe the following features:+--+-- = Description+-- #_description#+--+-- -   @shaderInputAttachmentArrayDynamicIndexing@ indicates whether arrays+--     of input attachments /can/ be indexed by dynamically uniform integer+--     expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ /must/ be indexed only by+--     constant integral expressions when aggregated into arrays in shader+--     code. This also indicates whether shader modules /can/ declare the+--     @InputAttachmentArrayDynamicIndexingEXT@ capability.+--+-- -   @shaderUniformTexelBufferArrayDynamicIndexing@ indicates whether+--     arrays of uniform texel buffers /can/ be indexed by dynamically+--     uniform integer expressions in shader code. If this feature is not+--     enabled, resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ /must/ be indexed only by+--     constant integral expressions when aggregated into arrays in shader+--     code. This also indicates whether shader modules /can/ declare the+--     @UniformTexelBufferArrayDynamicIndexingEXT@ capability.+--+-- -   @shaderStorageTexelBufferArrayDynamicIndexing@ indicates whether+--     arrays of storage texel buffers /can/ be indexed by dynamically+--     uniform integer expressions in shader code. If this feature is not+--     enabled, resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ /must/ be indexed only by+--     constant integral expressions when aggregated into arrays in shader+--     code. This also indicates whether shader modules /can/ declare the+--     @StorageTexelBufferArrayDynamicIndexingEXT@ capability.+--+-- -   @shaderUniformBufferArrayNonUniformIndexing@ indicates whether+--     arrays of uniform buffers /can/ be indexed by non-uniform integer+--     expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ /must/ not be indexed by+--     non-uniform integer expressions when aggregated into arrays in+--     shader code. This also indicates whether shader modules /can/+--     declare the @UniformBufferArrayNonUniformIndexingEXT@ capability.+--+-- -   @shaderSampledImageArrayNonUniformIndexing@ indicates whether arrays+--     of samplers or sampled images /can/ be indexed by non-uniform+--     integer expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of @VK_DESCRIPTOR_TYPE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, or+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@ /must/ not be indexed by+--     non-uniform integer expressions when aggregated into arrays in+--     shader code. This also indicates whether shader modules /can/+--     declare the @SampledImageArrayNonUniformIndexingEXT@ capability.+--+-- -   @shaderStorageBufferArrayNonUniformIndexing@ indicates whether+--     arrays of storage buffers /can/ be indexed by non-uniform integer+--     expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ /must/ not be indexed by+--     non-uniform integer expressions when aggregated into arrays in+--     shader code. This also indicates whether shader modules /can/+--     declare the @StorageBufferArrayNonUniformIndexingEXT@ capability.+--+-- -   @shaderStorageImageArrayNonUniformIndexing@ indicates whether arrays+--     of storage images /can/ be indexed by non-uniform integer+--     expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@ /must/ not be indexed by+--     non-uniform integer expressions when aggregated into arrays in+--     shader code. This also indicates whether shader modules /can/+--     declare the @StorageImageArrayNonUniformIndexingEXT@ capability.+--+-- -   @shaderInputAttachmentArrayNonUniformIndexing@ indicates whether+--     arrays of input attachments /can/ be indexed by non-uniform integer+--     expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@ /must/ not be indexed by+--     non-uniform integer expressions when aggregated into arrays in+--     shader code. This also indicates whether shader modules /can/+--     declare the @InputAttachmentArrayNonUniformIndexingEXT@ capability.+--+-- -   @shaderUniformTexelBufferArrayNonUniformIndexing@ indicates whether+--     arrays of uniform texel buffers /can/ be indexed by non-uniform+--     integer expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ /must/ not be indexed by+--     non-uniform integer expressions when aggregated into arrays in+--     shader code. This also indicates whether shader modules /can/+--     declare the @UniformTexelBufferArrayNonUniformIndexingEXT@+--     capability.+--+-- -   @shaderStorageTexelBufferArrayNonUniformIndexing@ indicates whether+--     arrays of storage texel buffers /can/ be indexed by non-uniform+--     integer expressions in shader code. If this feature is not enabled,+--     resources with a descriptor type of+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ /must/ not be indexed by+--     non-uniform integer expressions when aggregated into arrays in+--     shader code. This also indicates whether shader modules /can/+--     declare the @StorageTexelBufferArrayNonUniformIndexingEXT@+--     capability.+--+-- -   @descriptorBindingUniformBufferUpdateAfterBind@ indicates whether+--     the implementation supports updating uniform buffer descriptors+--     after a set is bound. If this feature is not enabled,+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ /must/ not be used+--     with @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@.+--+-- -   @descriptorBindingSampledImageUpdateAfterBind@ indicates whether the+--     implementation supports updating sampled image descriptors after a+--     set is bound. If this feature is not enabled,+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ /must/ not be used+--     with @VK_DESCRIPTOR_TYPE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, or+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@.+--+-- -   @descriptorBindingStorageImageUpdateAfterBind@ indicates whether the+--     implementation supports updating storage image descriptors after a+--     set is bound. If this feature is not enabled,+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ /must/ not be used+--     with @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@.+--+-- -   @descriptorBindingStorageBufferUpdateAfterBind@ indicates whether+--     the implementation supports updating storage buffer descriptors+--     after a set is bound. If this feature is not enabled,+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ /must/ not be used+--     with @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@.+--+-- -   @descriptorBindingUniformTexelBufferUpdateAfterBind@ indicates+--     whether the implementation supports updating uniform texel buffer+--     descriptors after a set is bound. If this feature is not enabled,+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ /must/ not be used+--     with @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@.+--+-- -   @descriptorBindingStorageTexelBufferUpdateAfterBind@ indicates+--     whether the implementation supports updating storage texel buffer+--     descriptors after a set is bound. If this feature is not enabled,+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@ /must/ not be used+--     with @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@.+--+-- -   @descriptorBindingUpdateUnusedWhilePending@ indicates whether the+--     implementation supports updating descriptors while the set is in+--     use. If this feature is not enabled,+--     @VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT@ /must/+--     not be used.+--+-- -   @descriptorBindingPartiallyBound@ indicates whether the+--     implementation supports statically using a descriptor set binding in+--     which some descriptors are not valid. If this feature is not+--     enabled, @VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT@ /must/ not+--     be used.+--+-- -   @descriptorBindingVariableDescriptorCount@ indicates whether the+--     implementation supports descriptor sets with a variable-sized last+--     binding. If this feature is not enabled,+--     @VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT@ /must/ not+--     be used.+--+-- -   @runtimeDescriptorArray@ indicates whether the implementation+--     supports the SPIR-V RuntimeDescriptorArrayEXT capability. If this+--     feature is not enabled, descriptors /must/ not be declared in+--     runtime arrays.+--+-- If the @VkPhysicalDeviceDescriptorIndexingFeaturesEXT@ structure is+-- included in the @pNext@ chain of+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2KHR',+-- it is filled with values indicating whether each feature is supported.+-- @VkPhysicalDeviceDescriptorIndexingFeaturesEXT@ /can/ also be used in+-- the @pNext@ chain of 'Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo'+-- to enable features.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeaturesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderInputAttachmentArrayDynamicIndexing"+  vkShaderInputAttachmentArrayDynamicIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderUniformTexelBufferArrayDynamicIndexing"+  vkShaderUniformTexelBufferArrayDynamicIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderStorageTexelBufferArrayDynamicIndexing"+  vkShaderStorageTexelBufferArrayDynamicIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderUniformBufferArrayNonUniformIndexing"+  vkShaderUniformBufferArrayNonUniformIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderSampledImageArrayNonUniformIndexing"+  vkShaderSampledImageArrayNonUniformIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderStorageBufferArrayNonUniformIndexing"+  vkShaderStorageBufferArrayNonUniformIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderStorageImageArrayNonUniformIndexing"+  vkShaderStorageImageArrayNonUniformIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderInputAttachmentArrayNonUniformIndexing"+  vkShaderInputAttachmentArrayNonUniformIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderUniformTexelBufferArrayNonUniformIndexing"+  vkShaderUniformTexelBufferArrayNonUniformIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkShaderStorageTexelBufferArrayNonUniformIndexing"+  vkShaderStorageTexelBufferArrayNonUniformIndexing :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingUniformBufferUpdateAfterBind"+  vkDescriptorBindingUniformBufferUpdateAfterBind :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingSampledImageUpdateAfterBind"+  vkDescriptorBindingSampledImageUpdateAfterBind :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingStorageImageUpdateAfterBind"+  vkDescriptorBindingStorageImageUpdateAfterBind :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingStorageBufferUpdateAfterBind"+  vkDescriptorBindingStorageBufferUpdateAfterBind :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingUniformTexelBufferUpdateAfterBind"+  vkDescriptorBindingUniformTexelBufferUpdateAfterBind :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingStorageTexelBufferUpdateAfterBind"+  vkDescriptorBindingStorageTexelBufferUpdateAfterBind :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingUpdateUnusedWhilePending"+  vkDescriptorBindingUpdateUnusedWhilePending :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingPartiallyBound"+  vkDescriptorBindingPartiallyBound :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkDescriptorBindingVariableDescriptorCount"+  vkDescriptorBindingVariableDescriptorCount :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingFeaturesEXT" "vkRuntimeDescriptorArray"+  vkRuntimeDescriptorArray :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceDescriptorIndexingFeaturesEXT where+  sizeOf ~_ = 96+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceDescriptorIndexingFeaturesEXT <$> peek (ptr `plusPtr` 0)+                                                           <*> peek (ptr `plusPtr` 8)+                                                           <*> peek (ptr `plusPtr` 16)+                                                           <*> peek (ptr `plusPtr` 20)+                                                           <*> peek (ptr `plusPtr` 24)+                                                           <*> peek (ptr `plusPtr` 28)+                                                           <*> peek (ptr `plusPtr` 32)+                                                           <*> peek (ptr `plusPtr` 36)+                                                           <*> peek (ptr `plusPtr` 40)+                                                           <*> peek (ptr `plusPtr` 44)+                                                           <*> peek (ptr `plusPtr` 48)+                                                           <*> peek (ptr `plusPtr` 52)+                                                           <*> peek (ptr `plusPtr` 56)+                                                           <*> peek (ptr `plusPtr` 60)+                                                           <*> peek (ptr `plusPtr` 64)+                                                           <*> peek (ptr `plusPtr` 68)+                                                           <*> peek (ptr `plusPtr` 72)+                                                           <*> peek (ptr `plusPtr` 76)+                                                           <*> peek (ptr `plusPtr` 80)+                                                           <*> peek (ptr `plusPtr` 84)+                                                           <*> peek (ptr `plusPtr` 88)+                                                           <*> peek (ptr `plusPtr` 92)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 16) (vkShaderInputAttachmentArrayDynamicIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 20) (vkShaderUniformTexelBufferArrayDynamicIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 24) (vkShaderStorageTexelBufferArrayDynamicIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 28) (vkShaderUniformBufferArrayNonUniformIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 32) (vkShaderSampledImageArrayNonUniformIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 36) (vkShaderStorageBufferArrayNonUniformIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 40) (vkShaderStorageImageArrayNonUniformIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 44) (vkShaderInputAttachmentArrayNonUniformIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 48) (vkShaderUniformTexelBufferArrayNonUniformIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 52) (vkShaderStorageTexelBufferArrayNonUniformIndexing (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 56) (vkDescriptorBindingUniformBufferUpdateAfterBind (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 60) (vkDescriptorBindingSampledImageUpdateAfterBind (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 64) (vkDescriptorBindingStorageImageUpdateAfterBind (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 68) (vkDescriptorBindingStorageBufferUpdateAfterBind (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 72) (vkDescriptorBindingUniformTexelBufferUpdateAfterBind (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 76) (vkDescriptorBindingStorageTexelBufferUpdateAfterBind (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 80) (vkDescriptorBindingUpdateUnusedWhilePending (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 84) (vkDescriptorBindingPartiallyBound (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 88) (vkDescriptorBindingVariableDescriptorCount (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+                *> poke (ptr `plusPtr` 92) (vkRuntimeDescriptorArray (poked :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT))+-- | VkPhysicalDeviceDescriptorIndexingPropertiesEXT - Structure describing+-- descriptor indexing properties that can be supported by an+-- implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceDescriptorIndexingPropertiesEXT@+-- structure describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @maxUpdateAfterBindDescriptorsInAllPools@ is the maximum number of+--     descriptors (summed over all descriptor types) that /can/ be created+--     across all pools that are created with the+--     @VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT@ bit set. Pool+--     creation /may/ fail when this limit is exceeded, or when the space+--     this limit represents can’t satisfy a pool creation due to+--     fragmentation.+--+-- -   @shaderUniformBufferArrayNonUniformIndexingNative@ is a boolean+--     value indicating whether uniform buffer descriptors natively support+--     nonuniform indexing. If this is @VK_FALSE@, then a single dynamic+--     instance of an instruction that nonuniformly indexes an array of+--     uniform buffers /may/ execute multiple times in order to access all+--     the descriptors.+--+-- -   @shaderSampledImageArrayNonUniformIndexingNative@ is a boolean value+--     indicating whether sampler and image descriptors natively support+--     nonuniform indexing. If this is @VK_FALSE@, then a single dynamic+--     instance of an instruction that nonuniformly indexes an array of+--     samplers or images /may/ execute multiple times in order to access+--     all the descriptors.+--+-- -   @shaderStorageBufferArrayNonUniformIndexingNative@ is a boolean+--     value indicating whether storage buffer descriptors natively support+--     nonuniform indexing. If this is @VK_FALSE@, then a single dynamic+--     instance of an instruction that nonuniformly indexes an array of+--     storage buffers /may/ execute multiple times in order to access all+--     the descriptors.+--+-- -   @shaderStorageImageArrayNonUniformIndexingNative@ is a boolean value+--     indicating whether storage image descriptors natively support+--     nonuniform indexing. If this is @VK_FALSE@, then a single dynamic+--     instance of an instruction that nonuniformly indexes an array of+--     storage images /may/ execute multiple times in order to access all+--     the descriptors.+--+-- -   @shaderInputAttachmentArrayNonUniformIndexingNative@ is a boolean+--     value indicating whether input attachment descriptors natively+--     support nonuniform indexing. If this is @VK_FALSE@, then a single+--     dynamic instance of an instruction that nonuniformly indexes an+--     array of input attachments /may/ execute multiple times in order to+--     access all the descriptors.+--+-- -   @robustBufferAccessUpdateAfterBind@ is a boolean value indicating+--     whether+--     <{html_spec_relative}#features-features-robustBufferAccess robustBufferAccess>+--     /can/ be enabled in a device simultaneously with+--     @descriptorBindingUniformBufferUpdateAfterBind@,+--     @descriptorBindingStorageBufferUpdateAfterBind@,+--     @descriptorBindingUniformTexelBufferUpdateAfterBind@, and\/or+--     @descriptorBindingStorageTexelBufferUpdateAfterBind@. If this is+--     @VK_FALSE@, then either @robustBufferAccess@ /must/ be disabled or+--     all of these update-after-bind features /must/ be disabled.+--+-- -   @quadDivergentImplicitLod@ is a boolean value indicating whether+--     implicit level of detail calculations for image operations have+--     well-defined results when the image and\/or sampler objects used for+--     the instruction are not uniform within a quad. See+--     <{html_spec_relative}#textures-derivative-image-operations Derivative Image Operations>.+--+-- -   @maxPerStageDescriptorUpdateAfterBindSamplers@ is similar to+--     @maxPerStageDescriptorSamplers@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxPerStageDescriptorUpdateAfterBindUniformBuffers@ is similar to+--     @maxPerStageDescriptorUniformBuffers@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxPerStageDescriptorUpdateAfterBindStorageBuffers@ is similar to+--     @maxPerStageDescriptorStorageBuffers@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxPerStageDescriptorUpdateAfterBindSampledImages@ is similar to+--     @maxPerStageDescriptorSampledImages@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxPerStageDescriptorUpdateAfterBindStorageImages@ is similar to+--     @maxPerStageDescriptorStorageImages@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxPerStageDescriptorUpdateAfterBindInputAttachments@ is similar to+--     @maxPerStageDescriptorInputAttachments@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxPerStageUpdateAfterBindResources@ is similar to+--     @maxPerStageResources@ but counts descriptors from descriptor sets+--     created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxDescriptorSetUpdateAfterBindSamplers@ is similar to+--     @maxDescriptorSetSamplers@ but counts descriptors from descriptor+--     sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxDescriptorSetUpdateAfterBindUniformBuffers@ is similar to+--     @maxDescriptorSetUniformBuffers@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxDescriptorSetUpdateAfterBindUniformBuffersDynamic@ is similar to+--     @maxDescriptorSetUniformBuffersDynamic@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxDescriptorSetUpdateAfterBindStorageBuffers@ is similar to+--     @maxDescriptorSetStorageBuffers@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxDescriptorSetUpdateAfterBindStorageBuffersDynamic@ is similar to+--     @maxDescriptorSetStorageBuffersDynamic@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxDescriptorSetUpdateAfterBindSampledImages@ is similar to+--     @maxDescriptorSetSampledImages@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxDescriptorSetUpdateAfterBindStorageImages@ is similar to+--     @maxDescriptorSetStorageImages@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- -   @maxDescriptorSetUpdateAfterBindInputAttachments@ is similar to+--     @maxDescriptorSetInputAttachments@ but counts descriptors from+--     descriptor sets created with or without the+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT@ bit+--     set.+--+-- If the @VkPhysicalDeviceDescriptorIndexingPropertiesEXT@ structure is+-- included in the @pNext@ chain of+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2KHR',+-- it is filled with the implementation-dependent limits.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingPropertiesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxUpdateAfterBindDescriptorsInAllPools"+  vkMaxUpdateAfterBindDescriptorsInAllPools :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkShaderUniformBufferArrayNonUniformIndexingNative"+  vkShaderUniformBufferArrayNonUniformIndexingNative :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkShaderSampledImageArrayNonUniformIndexingNative"+  vkShaderSampledImageArrayNonUniformIndexingNative :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkShaderStorageBufferArrayNonUniformIndexingNative"+  vkShaderStorageBufferArrayNonUniformIndexingNative :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkShaderStorageImageArrayNonUniformIndexingNative"+  vkShaderStorageImageArrayNonUniformIndexingNative :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkShaderInputAttachmentArrayNonUniformIndexingNative"+  vkShaderInputAttachmentArrayNonUniformIndexingNative :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkRobustBufferAccessUpdateAfterBind"+  vkRobustBufferAccessUpdateAfterBind :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkQuadDivergentImplicitLod"+  vkQuadDivergentImplicitLod :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxPerStageDescriptorUpdateAfterBindSamplers"+  vkMaxPerStageDescriptorUpdateAfterBindSamplers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxPerStageDescriptorUpdateAfterBindUniformBuffers"+  vkMaxPerStageDescriptorUpdateAfterBindUniformBuffers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxPerStageDescriptorUpdateAfterBindStorageBuffers"+  vkMaxPerStageDescriptorUpdateAfterBindStorageBuffers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxPerStageDescriptorUpdateAfterBindSampledImages"+  vkMaxPerStageDescriptorUpdateAfterBindSampledImages :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxPerStageDescriptorUpdateAfterBindStorageImages"+  vkMaxPerStageDescriptorUpdateAfterBindStorageImages :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxPerStageDescriptorUpdateAfterBindInputAttachments"+  vkMaxPerStageDescriptorUpdateAfterBindInputAttachments :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxPerStageUpdateAfterBindResources"+  vkMaxPerStageUpdateAfterBindResources :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxDescriptorSetUpdateAfterBindSamplers"+  vkMaxDescriptorSetUpdateAfterBindSamplers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxDescriptorSetUpdateAfterBindUniformBuffers"+  vkMaxDescriptorSetUpdateAfterBindUniformBuffers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic"+  vkMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxDescriptorSetUpdateAfterBindStorageBuffers"+  vkMaxDescriptorSetUpdateAfterBindStorageBuffers :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic"+  vkMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxDescriptorSetUpdateAfterBindSampledImages"+  vkMaxDescriptorSetUpdateAfterBindSampledImages :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxDescriptorSetUpdateAfterBindStorageImages"+  vkMaxDescriptorSetUpdateAfterBindStorageImages :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceDescriptorIndexingPropertiesEXT" "vkMaxDescriptorSetUpdateAfterBindInputAttachments"+  vkMaxDescriptorSetUpdateAfterBindInputAttachments :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceDescriptorIndexingPropertiesEXT where+  sizeOf ~_ = 112+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceDescriptorIndexingPropertiesEXT <$> peek (ptr `plusPtr` 0)+                                                             <*> peek (ptr `plusPtr` 8)+                                                             <*> peek (ptr `plusPtr` 16)+                                                             <*> peek (ptr `plusPtr` 20)+                                                             <*> peek (ptr `plusPtr` 24)+                                                             <*> peek (ptr `plusPtr` 28)+                                                             <*> peek (ptr `plusPtr` 32)+                                                             <*> peek (ptr `plusPtr` 36)+                                                             <*> peek (ptr `plusPtr` 40)+                                                             <*> peek (ptr `plusPtr` 44)+                                                             <*> peek (ptr `plusPtr` 48)+                                                             <*> peek (ptr `plusPtr` 52)+                                                             <*> peek (ptr `plusPtr` 56)+                                                             <*> peek (ptr `plusPtr` 60)+                                                             <*> peek (ptr `plusPtr` 64)+                                                             <*> peek (ptr `plusPtr` 68)+                                                             <*> peek (ptr `plusPtr` 72)+                                                             <*> peek (ptr `plusPtr` 76)+                                                             <*> peek (ptr `plusPtr` 80)+                                                             <*> peek (ptr `plusPtr` 84)+                                                             <*> peek (ptr `plusPtr` 88)+                                                             <*> peek (ptr `plusPtr` 92)+                                                             <*> peek (ptr `plusPtr` 96)+                                                             <*> peek (ptr `plusPtr` 100)+                                                             <*> peek (ptr `plusPtr` 104)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkMaxUpdateAfterBindDescriptorsInAllPools (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 20) (vkShaderUniformBufferArrayNonUniformIndexingNative (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 24) (vkShaderSampledImageArrayNonUniformIndexingNative (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 28) (vkShaderStorageBufferArrayNonUniformIndexingNative (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 32) (vkShaderStorageImageArrayNonUniformIndexingNative (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 36) (vkShaderInputAttachmentArrayNonUniformIndexingNative (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 40) (vkRobustBufferAccessUpdateAfterBind (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 44) (vkQuadDivergentImplicitLod (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 48) (vkMaxPerStageDescriptorUpdateAfterBindSamplers (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 52) (vkMaxPerStageDescriptorUpdateAfterBindUniformBuffers (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 56) (vkMaxPerStageDescriptorUpdateAfterBindStorageBuffers (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 60) (vkMaxPerStageDescriptorUpdateAfterBindSampledImages (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 64) (vkMaxPerStageDescriptorUpdateAfterBindStorageImages (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 68) (vkMaxPerStageDescriptorUpdateAfterBindInputAttachments (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 72) (vkMaxPerStageUpdateAfterBindResources (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 76) (vkMaxDescriptorSetUpdateAfterBindSamplers (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 80) (vkMaxDescriptorSetUpdateAfterBindUniformBuffers (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 84) (vkMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 88) (vkMaxDescriptorSetUpdateAfterBindStorageBuffers (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 92) (vkMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 96) (vkMaxDescriptorSetUpdateAfterBindSampledImages (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 100) (vkMaxDescriptorSetUpdateAfterBindStorageImages (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+                *> poke (ptr `plusPtr` 104) (vkMaxDescriptorSetUpdateAfterBindInputAttachments (poked :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT))+-- | VkDescriptorSetLayoutBindingFlagsCreateInfoEXT - Structure specifying+-- creation flags for descriptor set layout bindings+--+-- = Description+-- #_description#+--+-- If @bindingCount@ is zero or if this structure is not in the @pNext@+-- chain, the 'VkDescriptorBindingFlagsEXT' for each descriptor set layout+-- binding is considered to be zero. Otherwise, the descriptor set layout+-- binding at+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo'::@pBindings@[i]+-- uses the flags in @pBindingFlags@[i].+--+-- == Valid Usage+--+-- -   If @bindingCount@ is not zero, @bindingCount@ /must/ equal+--     'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo'::@bindingCount@+--+-- -   If an element of @pBindingFlags@ includes+--     @VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT@, then all+--     other elements of+--     'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo'::@pBindings@+--     /must/ have a smaller value of @binding@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingUniformBufferUpdateAfterBind@+--     is not enabled, all bindings with descriptor type+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER@ /must/ not use+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingSampledImageUpdateAfterBind@+--     is not enabled, all bindings with descriptor type+--     @VK_DESCRIPTOR_TYPE_SAMPLER@,+--     @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, or+--     @VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE@ /must/ not use+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingStorageImageUpdateAfterBind@+--     is not enabled, all bindings with descriptor type+--     @VK_DESCRIPTOR_TYPE_STORAGE_IMAGE@ /must/ not use+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingStorageBufferUpdateAfterBind@+--     is not enabled, all bindings with descriptor type+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER@ /must/ not use+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingUniformTexelBufferUpdateAfterBind@+--     is not enabled, all bindings with descriptor type+--     @VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER@ /must/ not use+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingStorageTexelBufferUpdateAfterBind@+--     is not enabled, all bindings with descriptor type+--     @VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER@ /must/ not use+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@+--+-- -   All bindings with descriptor type+--     @VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT@,+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@, or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@ /must/ not use+--     @VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingUpdateUnusedWhilePending@+--     is not enabled, all elements of @pBindingFlags@ /must/ not include+--     @VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingPartiallyBound@+--     is not enabled, all elements of @pBindingFlags@ /must/ not include+--     @VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT@+--+-- -   If+--     'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingVariableDescriptorCount@+--     is not enabled, all elements of @pBindingFlags@ /must/ not include+--     @VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT@+--+-- -   If an element of @pBindingFlags@ includes+--     @VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT@, that+--     element’s @descriptorType@ /must/ not be+--     @VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC@ or+--     @VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT@+--+-- -   If @bindingCount@ is not @0@, @pBindingFlags@ /must/ be a valid+--     pointer to an array of @bindingCount@ valid combinations of+--     'VkDescriptorBindingFlagBitsEXT' values+--+-- -   Each element of @pBindingFlags@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkDescriptorBindingFlagsEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfoEXT+  { -- No documentation found for Nested "VkDescriptorSetLayoutBindingFlagsCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDescriptorSetLayoutBindingFlagsCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDescriptorSetLayoutBindingFlagsCreateInfoEXT" "vkBindingCount"+  vkBindingCount :: Word32+  , -- No documentation found for Nested "VkDescriptorSetLayoutBindingFlagsCreateInfoEXT" "vkPBindingFlags"+  vkPBindingFlags :: Ptr VkDescriptorBindingFlagsEXT+  }+  deriving (Eq, Show)++instance Storable VkDescriptorSetLayoutBindingFlagsCreateInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDescriptorSetLayoutBindingFlagsCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                            <*> peek (ptr `plusPtr` 8)+                                                            <*> peek (ptr `plusPtr` 16)+                                                            <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkBindingCount (poked :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkPBindingFlags (poked :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT))+-- | VkDescriptorSetVariableDescriptorCountAllocateInfoEXT - Structure+-- specifying additional allocation parameters for descriptor sets+--+-- = Description+-- #_description#+--+-- If @descriptorSetCount@ is zero or this structure is not included in the+-- @pNext@ chain, then the variable lengths are considered to be zero.+-- Otherwise, @pDescriptorCounts@[i] is the number of descriptors in the+-- variable count descriptor binding in the corresponding descriptor set+-- layout. If+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo'::@pSetLayouts@[i]+-- does not include a variable count descriptor binding, then+-- @pDescriptorCounts@[i] is ignored.+--+-- == Valid Usage+--+-- -   If @descriptorSetCount@ is not zero, @descriptorSetCount@ /must/+--     equal+--     'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo'::@descriptorSetCount@+--+-- -   If+--     'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo'::@pSetLayouts@[i]+--     has a variable descriptor count binding, then @pDescriptorCounts@[i]+--     /must/ be less than or equal to the descriptor count specified for+--     that binding when the descriptor set layout was created.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT@+--+-- -   If @descriptorSetCount@ is not @0@, @pDescriptorCounts@ /must/ be a+--     valid pointer to an array of @descriptorSetCount@ @uint32_t@ values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfoEXT+  { -- No documentation found for Nested "VkDescriptorSetVariableDescriptorCountAllocateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDescriptorSetVariableDescriptorCountAllocateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDescriptorSetVariableDescriptorCountAllocateInfoEXT" "vkDescriptorSetCount"+  vkDescriptorSetCount :: Word32+  , -- No documentation found for Nested "VkDescriptorSetVariableDescriptorCountAllocateInfoEXT" "vkPDescriptorCounts"+  vkPDescriptorCounts :: Ptr Word32+  }+  deriving (Eq, Show)++instance Storable VkDescriptorSetVariableDescriptorCountAllocateInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDescriptorSetVariableDescriptorCountAllocateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                                   <*> peek (ptr `plusPtr` 8)+                                                                   <*> peek (ptr `plusPtr` 16)+                                                                   <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkDescriptorSetCount (poked :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkPDescriptorCounts (poked :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT))+-- | VkDescriptorSetVariableDescriptorCountLayoutSupportEXT - Structure+-- returning information about whether a descriptor set layout can be+-- supported+--+-- = Description+-- #_description#+--+-- If the create info includes a variable-sized descriptor, then+-- @supported@ is determined assuming the requested size of the+-- variable-sized descriptor, and @maxVariableDescriptorCount@ is set to+-- the maximum size of that descriptor that /can/ be successfully created+-- (which is greater than or equal to the requested size passed in). If the+-- create info does not include a variable-sized descriptor or if the+-- 'VkPhysicalDeviceDescriptorIndexingFeaturesEXT'::@descriptorBindingVariableDescriptorCount@+-- feature is not enabled, then @maxVariableDescriptorCount@ is set to+-- zero. For the purposes of this command, a variable-sized descriptor+-- binding with a @descriptorCount@ of zero is treated as if the+-- @descriptorCount@ is one, and thus the binding is not ignored and the+-- maximum descriptor count will be returned. If the layout is not+-- supported, then the value written to @maxVariableDescriptorCount@ is+-- undefined.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupportEXT+  { -- No documentation found for Nested "VkDescriptorSetVariableDescriptorCountLayoutSupportEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDescriptorSetVariableDescriptorCountLayoutSupportEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDescriptorSetVariableDescriptorCountLayoutSupportEXT" "vkMaxVariableDescriptorCount"+  vkMaxVariableDescriptorCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDescriptorSetVariableDescriptorCountLayoutSupportEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDescriptorSetVariableDescriptorCountLayoutSupportEXT <$> peek (ptr `plusPtr` 0)+                                                                    <*> peek (ptr `plusPtr` 8)+                                                                    <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT))+                *> poke (ptr `plusPtr` 16) (vkMaxVariableDescriptorCount (poked :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT))+-- No documentation found for TopLevel "VkDescriptorBindingFlagsEXT"+type VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlagBitsEXT
+ src/Graphics/Vulkan/Extensions/VK_EXT_direct_mode_display.hs view
@@ -0,0 +1,67 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_EXT_direct_mode_display+  ( pattern VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION+  , pattern VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME+  , vkReleaseDisplayEXT+  ) where++import Data.String+  ( IsString+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+import Graphics.Vulkan.Extensions.VK_KHR_display+  ( VkDisplayKHR+  )+++-- No documentation found for TopLevel "VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION"+pattern VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME"+pattern VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME = "VK_EXT_direct_mode_display"+-- | vkReleaseDisplayEXT - Release access to an acquired VkDisplayKHR+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ The physical device the display is on.+--+-- -   @display@ The display to release control of.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @display@ /must/ be a valid @VkDisplayKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkReleaseDisplayEXT" vkReleaseDisplayEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("display" ::: VkDisplayKHR) -> IO VkResult
+ src/Graphics/Vulkan/Extensions/VK_EXT_discard_rectangles.hs view
@@ -0,0 +1,358 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles+  ( VkDiscardRectangleModeEXT(..)+  , pattern VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT+  , pattern VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT+  , VkPipelineDiscardRectangleStateCreateFlagsEXT(..)+  , pattern VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT+  , pattern VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT+  , pattern VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION+  , pattern VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME+  , vkCmdSetDiscardRectangleEXT+  , VkPhysicalDeviceDiscardRectanglePropertiesEXT(..)+  , VkPipelineDiscardRectangleStateCreateInfoEXT(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkRect2D(..)+  , VkDynamicState(..)+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+++-- ** VkDiscardRectangleModeEXT++-- | VkDiscardRectangleModeEXT - Specify the discard rectangle mode+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineDiscardRectangleStateCreateInfoEXT'+newtype VkDiscardRectangleModeEXT = VkDiscardRectangleModeEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkDiscardRectangleModeEXT where+  showsPrec _ VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = showString "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT"+  showsPrec _ VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = showString "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT"+  showsPrec p (VkDiscardRectangleModeEXT x) = showParen (p >= 11) (showString "VkDiscardRectangleModeEXT " . showsPrec 11 x)++instance Read VkDiscardRectangleModeEXT where+  readPrec = parens ( choose [ ("VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT", pure VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT)+                             , ("VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT", pure VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDiscardRectangleModeEXT")+                        v <- step readPrec+                        pure (VkDiscardRectangleModeEXT v)+                        )+                    )++-- | @VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT@ specifies that a fragment+-- within any discard rectangle satisfies the test.+pattern VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT :: VkDiscardRectangleModeEXT+pattern VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = VkDiscardRectangleModeEXT 0++-- | @VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT@ specifies that a fragment not+-- within any of the discard rectangles satisfies the test.+pattern VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT :: VkDiscardRectangleModeEXT+pattern VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = VkDiscardRectangleModeEXT 1+-- ** VkPipelineDiscardRectangleStateCreateFlagsEXT++-- | VkPipelineDiscardRectangleStateCreateFlagsEXT - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineDiscardRectangleStateCreateFlagsEXT@ is a bitmask type for+-- setting a mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineDiscardRectangleStateCreateInfoEXT'+newtype VkPipelineDiscardRectangleStateCreateFlagsEXT = VkPipelineDiscardRectangleStateCreateFlagsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineDiscardRectangleStateCreateFlagsEXT where+  +  showsPrec p (VkPipelineDiscardRectangleStateCreateFlagsEXT x) = showParen (p >= 11) (showString "VkPipelineDiscardRectangleStateCreateFlagsEXT " . showsPrec 11 x)++instance Read VkPipelineDiscardRectangleStateCreateFlagsEXT where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineDiscardRectangleStateCreateFlagsEXT")+                        v <- step readPrec+                        pure (VkPipelineDiscardRectangleStateCreateFlagsEXT v)+                        )+                    )+++-- No documentation found for Nested "VkDynamicState" "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT"+pattern VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT :: VkDynamicState+pattern VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = VkDynamicState 1000099000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = VkStructureType 1000099000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = VkStructureType 1000099001+-- No documentation found for TopLevel "VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION"+pattern VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME"+pattern VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME = "VK_EXT_discard_rectangles"+-- | vkCmdSetDiscardRectangleEXT - Set discard rectangles dynamically+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @firstDiscardRectangle@ is the index of the first discard rectangle+--     whose state is updated by the command.+--+-- -   @discardRectangleCount@ is the number of discard rectangles whose+--     state are updated by the command.+--+-- -   @pDiscardRectangles@ is a pointer to an array of+--     'Graphics.Vulkan.Core10.Pipeline.VkRect2D' structures specifying+--     discard rectangles.+--+-- = Description+-- #_description#+--+-- The discard rectangle taken from element i of @pDiscardRectangles@+-- replace the current state for the discard rectangle index+-- @firstDiscardRectangle@ + i, for i in [0, @discardRectangleCount@).+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT@ dynamic state enabled+--+-- -   The sum of @firstDiscardRectangle@ and @discardRectangleCount@+--     /must/ be less than or equal to+--     'VkPhysicalDeviceDiscardRectanglePropertiesEXT'::@maxDiscardRectangles@+--+-- -   The @x@ and @y@ member of @offset@ in each+--     'Graphics.Vulkan.Core10.Pipeline.VkRect2D' element of+--     @pDiscardRectangles@ /must/ be greater than or equal to @0@+--+-- -   Evaluation of (@offset.x@ + @extent.width@) in each+--     'Graphics.Vulkan.Core10.Pipeline.VkRect2D' element of+--     @pDiscardRectangles@ /must/ not cause a signed integer addition+--     overflow+--+-- -   Evaluation of (@offset.y@ + @extent.height@) in each+--     'Graphics.Vulkan.Core10.Pipeline.VkRect2D' element of+--     @pDiscardRectangles@ /must/ not cause a signed integer addition+--     overflow+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pDiscardRectangles@ /must/ be a valid pointer to an array of+--     @discardRectangleCount@ @VkRect2D@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   @discardRectangleCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRect2D'+foreign import ccall "vkCmdSetDiscardRectangleEXT" vkCmdSetDiscardRectangleEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstDiscardRectangle" ::: Word32) -> ("discardRectangleCount" ::: Word32) -> ("pDiscardRectangles" ::: Ptr VkRect2D) -> IO ()+-- | VkPhysicalDeviceDiscardRectanglePropertiesEXT - Structure describing+-- discard rectangle limits that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceDiscardRectanglePropertiesEXT@+-- structure describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @maxDiscardRectangles@ is the maximum number of discard rectangles+--     that /can/ be specified.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT@+--+-- If the @VkPhysicalDeviceDiscardRectanglePropertiesEXT@ structure is+-- included in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceDiscardRectanglePropertiesEXT = VkPhysicalDeviceDiscardRectanglePropertiesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceDiscardRectanglePropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceDiscardRectanglePropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceDiscardRectanglePropertiesEXT" "vkMaxDiscardRectangles"+  vkMaxDiscardRectangles :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceDiscardRectanglePropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceDiscardRectanglePropertiesEXT <$> peek (ptr `plusPtr` 0)+                                                           <*> peek (ptr `plusPtr` 8)+                                                           <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceDiscardRectanglePropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceDiscardRectanglePropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkMaxDiscardRectangles (poked :: VkPhysicalDeviceDiscardRectanglePropertiesEXT))+-- | VkPipelineDiscardRectangleStateCreateInfoEXT - Structure specifying+-- discard rectangle+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @discardRectangleCount@ /must/ be between @0@ and+--     @VkPhysicalDeviceDiscardRectanglePropertiesEXT@::@maxDiscardRectangles@,+--     inclusive+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT@+--+-- -   @flags@ /must/ be @0@+--+-- -   @discardRectangleMode@ /must/ be a valid 'VkDiscardRectangleModeEXT'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'VkDiscardRectangleModeEXT',+-- 'VkPipelineDiscardRectangleStateCreateFlagsEXT',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRect2D',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineDiscardRectangleStateCreateInfoEXT = VkPipelineDiscardRectangleStateCreateInfoEXT+  { -- No documentation found for Nested "VkPipelineDiscardRectangleStateCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineDiscardRectangleStateCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineDiscardRectangleStateCreateInfoEXT" "vkFlags"+  vkFlags :: VkPipelineDiscardRectangleStateCreateFlagsEXT+  , -- No documentation found for Nested "VkPipelineDiscardRectangleStateCreateInfoEXT" "vkDiscardRectangleMode"+  vkDiscardRectangleMode :: VkDiscardRectangleModeEXT+  , -- No documentation found for Nested "VkPipelineDiscardRectangleStateCreateInfoEXT" "vkDiscardRectangleCount"+  vkDiscardRectangleCount :: Word32+  , -- No documentation found for Nested "VkPipelineDiscardRectangleStateCreateInfoEXT" "vkPDiscardRectangles"+  vkPDiscardRectangles :: Ptr VkRect2D+  }+  deriving (Eq, Show)++instance Storable VkPipelineDiscardRectangleStateCreateInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkPipelineDiscardRectangleStateCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                          <*> peek (ptr `plusPtr` 8)+                                                          <*> peek (ptr `plusPtr` 16)+                                                          <*> peek (ptr `plusPtr` 20)+                                                          <*> peek (ptr `plusPtr` 24)+                                                          <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineDiscardRectangleStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineDiscardRectangleStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineDiscardRectangleStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 20) (vkDiscardRectangleMode (poked :: VkPipelineDiscardRectangleStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkDiscardRectangleCount (poked :: VkPipelineDiscardRectangleStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkPDiscardRectangles (poked :: VkPipelineDiscardRectangleStateCreateInfoEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_display_control.hs view
@@ -0,0 +1,562 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_display_control+  ( VkDisplayPowerStateEXT(..)+  , pattern VK_DISPLAY_POWER_STATE_OFF_EXT+  , pattern VK_DISPLAY_POWER_STATE_SUSPEND_EXT+  , pattern VK_DISPLAY_POWER_STATE_ON_EXT+  , VkDeviceEventTypeEXT(..)+  , pattern VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT+  , VkDisplayEventTypeEXT(..)+  , pattern VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT+  , pattern VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT+  , pattern VK_EXT_DISPLAY_CONTROL_SPEC_VERSION+  , pattern VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME+  , vkDisplayPowerControlEXT+  , vkRegisterDeviceEventEXT+  , vkRegisterDisplayEventEXT+  , vkGetSwapchainCounterEXT+  , VkDisplayPowerInfoEXT(..)+  , VkDeviceEventInfoEXT(..)+  , VkDisplayEventInfoEXT(..)+  , VkSwapchainCounterCreateInfoEXT(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word64+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkFence+  )+import Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter+  ( VkSurfaceCounterFlagsEXT+  , VkSurfaceCounterFlagBitsEXT(..)+  )+import Graphics.Vulkan.Extensions.VK_KHR_display+  ( VkDisplayKHR+  )+import Graphics.Vulkan.Extensions.VK_KHR_swapchain+  ( VkSwapchainKHR+  )+++-- ** VkDisplayPowerStateEXT++-- | VkDisplayPowerStateEXT - Possible power states for a display+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayPowerInfoEXT'+newtype VkDisplayPowerStateEXT = VkDisplayPowerStateEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkDisplayPowerStateEXT where+  showsPrec _ VK_DISPLAY_POWER_STATE_OFF_EXT = showString "VK_DISPLAY_POWER_STATE_OFF_EXT"+  showsPrec _ VK_DISPLAY_POWER_STATE_SUSPEND_EXT = showString "VK_DISPLAY_POWER_STATE_SUSPEND_EXT"+  showsPrec _ VK_DISPLAY_POWER_STATE_ON_EXT = showString "VK_DISPLAY_POWER_STATE_ON_EXT"+  showsPrec p (VkDisplayPowerStateEXT x) = showParen (p >= 11) (showString "VkDisplayPowerStateEXT " . showsPrec 11 x)++instance Read VkDisplayPowerStateEXT where+  readPrec = parens ( choose [ ("VK_DISPLAY_POWER_STATE_OFF_EXT",     pure VK_DISPLAY_POWER_STATE_OFF_EXT)+                             , ("VK_DISPLAY_POWER_STATE_SUSPEND_EXT", pure VK_DISPLAY_POWER_STATE_SUSPEND_EXT)+                             , ("VK_DISPLAY_POWER_STATE_ON_EXT",      pure VK_DISPLAY_POWER_STATE_ON_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDisplayPowerStateEXT")+                        v <- step readPrec+                        pure (VkDisplayPowerStateEXT v)+                        )+                    )++-- | @VK_DISPLAY_POWER_STATE_OFF_EXT@ specifies that the display is powered+-- down.+pattern VK_DISPLAY_POWER_STATE_OFF_EXT :: VkDisplayPowerStateEXT+pattern VK_DISPLAY_POWER_STATE_OFF_EXT = VkDisplayPowerStateEXT 0++-- | @VK_DISPLAY_POWER_STATE_SUSPEND_EXT@ specifies that the display is put+-- into a low power mode, from which it /may/ be able to transition back to+-- @VK_DISPLAY_POWER_STATE_ON_EXT@ more quickly than if it were in+-- @VK_DISPLAY_POWER_STATE_OFF_EXT@. This state /may/ be the same as+-- @VK_DISPLAY_POWER_STATE_OFF_EXT@.+pattern VK_DISPLAY_POWER_STATE_SUSPEND_EXT :: VkDisplayPowerStateEXT+pattern VK_DISPLAY_POWER_STATE_SUSPEND_EXT = VkDisplayPowerStateEXT 1++-- | @VK_DISPLAY_POWER_STATE_ON_EXT@ specifies that the display is powered+-- on.+pattern VK_DISPLAY_POWER_STATE_ON_EXT :: VkDisplayPowerStateEXT+pattern VK_DISPLAY_POWER_STATE_ON_EXT = VkDisplayPowerStateEXT 2+-- ** VkDeviceEventTypeEXT++-- | VkDeviceEventTypeEXT - Events that can occur on a device object+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceEventInfoEXT'+newtype VkDeviceEventTypeEXT = VkDeviceEventTypeEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkDeviceEventTypeEXT where+  showsPrec _ VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = showString "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT"+  showsPrec p (VkDeviceEventTypeEXT x) = showParen (p >= 11) (showString "VkDeviceEventTypeEXT " . showsPrec 11 x)++instance Read VkDeviceEventTypeEXT where+  readPrec = parens ( choose [ ("VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT", pure VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDeviceEventTypeEXT")+                        v <- step readPrec+                        pure (VkDeviceEventTypeEXT v)+                        )+                    )++-- | @VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT@ specifies that the fence is+-- signaled when a display is plugged into or unplugged from the specified+-- device. Applications /can/ use this notification to determine when they+-- need to re-enumerate the available displays on a device.+pattern VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT :: VkDeviceEventTypeEXT+pattern VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = VkDeviceEventTypeEXT 0+-- ** VkDisplayEventTypeEXT++-- | VkDisplayEventTypeEXT - Events that can occur on a display object+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayEventInfoEXT'+newtype VkDisplayEventTypeEXT = VkDisplayEventTypeEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkDisplayEventTypeEXT where+  showsPrec _ VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = showString "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT"+  showsPrec p (VkDisplayEventTypeEXT x) = showParen (p >= 11) (showString "VkDisplayEventTypeEXT " . showsPrec 11 x)++instance Read VkDisplayEventTypeEXT where+  readPrec = parens ( choose [ ("VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT", pure VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDisplayEventTypeEXT")+                        v <- step readPrec+                        pure (VkDisplayEventTypeEXT v)+                        )+                    )++-- | @VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT@ specifies that the fence is+-- signaled when the first pixel of the next display refresh cycle leaves+-- the display engine for the display.+pattern VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT :: VkDisplayEventTypeEXT+pattern VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = VkDisplayEventTypeEXT 0+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = VkStructureType 1000091000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = VkStructureType 1000091001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = VkStructureType 1000091002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = VkStructureType 1000091003+-- No documentation found for TopLevel "VK_EXT_DISPLAY_CONTROL_SPEC_VERSION"+pattern VK_EXT_DISPLAY_CONTROL_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DISPLAY_CONTROL_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME"+pattern VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME = "VK_EXT_display_control"+-- | vkDisplayPowerControlEXT - Set the power state of a display+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is a logical device associated with @display@.+--+-- -   @display@ is the display whose power state is modified.+--+-- -   @pDisplayPowerInfo@ is an instance of 'VkDisplayPowerInfoEXT'+--     specifying the new power state of @display@.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @display@ /must/ be a valid @VkDisplayKHR@ handle+--+-- -   @pDisplayPowerInfo@ /must/ be a valid pointer to a valid+--     @VkDisplayPowerInfoEXT@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayKHR',+-- 'VkDisplayPowerInfoEXT'+foreign import ccall "vkDisplayPowerControlEXT" vkDisplayPowerControlEXT :: ("device" ::: VkDevice) -> ("display" ::: VkDisplayKHR) -> ("pDisplayPowerInfo" ::: Ptr VkDisplayPowerInfoEXT) -> IO VkResult+-- | vkRegisterDeviceEventEXT - Signal a fence when a device event occurs+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is a logical device on which the event /may/ occur.+--+-- -   @pDeviceEventInfo@ is a pointer to an instance of the+--     'VkDeviceEventInfoEXT' structure describing the event of interest to+--     the application.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pFence@ points to a handle in which the resulting fence object is+--     returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pDeviceEventInfo@ /must/ be a valid pointer to a valid+--     @VkDeviceEventInfoEXT@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pFence@ /must/ be a valid pointer to a @VkFence@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDeviceEventInfoEXT', 'Graphics.Vulkan.Core10.Queue.VkFence'+foreign import ccall "vkRegisterDeviceEventEXT" vkRegisterDeviceEventEXT :: ("device" ::: VkDevice) -> ("pDeviceEventInfo" ::: Ptr VkDeviceEventInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFence" ::: Ptr VkFence) -> IO VkResult+-- | vkRegisterDisplayEventEXT - Signal a fence when a display event occurs+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is a logical device associated with @display@+--+-- -   @display@ is the display on which the event /may/ occur.+--+-- -   @pDisplayEventInfo@ is a pointer to an instance of the+--     'VkDisplayEventInfoEXT' structure describing the event of interest+--     to the application.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pFence@ points to a handle in which the resulting fence object is+--     returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @display@ /must/ be a valid @VkDisplayKHR@ handle+--+-- -   @pDisplayEventInfo@ /must/ be a valid pointer to a valid+--     @VkDisplayEventInfoEXT@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pFence@ /must/ be a valid pointer to a @VkFence@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDisplayEventInfoEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayKHR',+-- 'Graphics.Vulkan.Core10.Queue.VkFence'+foreign import ccall "vkRegisterDisplayEventEXT" vkRegisterDisplayEventEXT :: ("device" ::: VkDevice) -> ("display" ::: VkDisplayKHR) -> ("pDisplayEventInfo" ::: Ptr VkDisplayEventInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFence" ::: Ptr VkFence) -> IO VkResult+-- | vkGetSwapchainCounterEXT - Query the current value of a surface counter+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the @VkDevice@ associated with @swapchain@.+--+-- -   @swapchain@ is the swapchain from which to query the counter value.+--+-- -   @counter@ is the counter to query.+--+-- -   @pCounterValue@ will return the current value of the counter.+--+-- = Description+-- #_description#+--+-- If a counter is not available because the swapchain is out of date, the+-- implementation /may/ return @VK_ERROR_OUT_OF_DATE_KHR@.+--+-- == Valid Usage+--+-- -   One or more present commands on @swapchain@ /must/ have been+--     processed by the presentation engine.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @swapchain@ /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   @counter@ /must/ be a valid+--     'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT'+--     value+--+-- -   @pCounterValue@ /must/ be a valid pointer to a @uint64_t@ value+--+-- -   Both of @device@, and @swapchain@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_OUT_OF_DATE_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainKHR'+foreign import ccall "vkGetSwapchainCounterEXT" vkGetSwapchainCounterEXT :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("counter" ::: VkSurfaceCounterFlagBitsEXT) -> ("pCounterValue" ::: Ptr Word64) -> IO VkResult+-- | VkDisplayPowerInfoEXT - Describe the power state of a display+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @powerState@ /must/ be a valid 'VkDisplayPowerStateEXT' value+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayPowerStateEXT', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkDisplayPowerControlEXT'+data VkDisplayPowerInfoEXT = VkDisplayPowerInfoEXT+  { -- No documentation found for Nested "VkDisplayPowerInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDisplayPowerInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDisplayPowerInfoEXT" "vkPowerState"+  vkPowerState :: VkDisplayPowerStateEXT+  }+  deriving (Eq, Show)++instance Storable VkDisplayPowerInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDisplayPowerInfoEXT <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayPowerInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayPowerInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkPowerState (poked :: VkDisplayPowerInfoEXT))+-- | VkDeviceEventInfoEXT - Describe a device event to create+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @deviceEvent@ /must/ be a valid 'VkDeviceEventTypeEXT' value+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceEventTypeEXT', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkRegisterDeviceEventEXT'+data VkDeviceEventInfoEXT = VkDeviceEventInfoEXT+  { -- No documentation found for Nested "VkDeviceEventInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceEventInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceEventInfoEXT" "vkDeviceEvent"+  vkDeviceEvent :: VkDeviceEventTypeEXT+  }+  deriving (Eq, Show)++instance Storable VkDeviceEventInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDeviceEventInfoEXT <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceEventInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceEventInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkDeviceEvent (poked :: VkDeviceEventInfoEXT))+-- | VkDisplayEventInfoEXT - Describe a display event to create+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @displayEvent@ /must/ be a valid 'VkDisplayEventTypeEXT' value+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayEventTypeEXT', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkRegisterDisplayEventEXT'+data VkDisplayEventInfoEXT = VkDisplayEventInfoEXT+  { -- No documentation found for Nested "VkDisplayEventInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDisplayEventInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDisplayEventInfoEXT" "vkDisplayEvent"+  vkDisplayEvent :: VkDisplayEventTypeEXT+  }+  deriving (Eq, Show)++instance Storable VkDisplayEventInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDisplayEventInfoEXT <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 8)+                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayEventInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayEventInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkDisplayEvent (poked :: VkDisplayEventInfoEXT))+-- | VkSwapchainCounterCreateInfoEXT - Specify the surface counters desired+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The bits in @surfaceCounters@ /must/ be supported by+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR'::@surface@,+--     as reported by+--     'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.vkGetPhysicalDeviceSurfaceCapabilities2EXT'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT@+--+-- -   @surfaceCounters@ /must/ be a valid combination of+--     'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT'+--     values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagsEXT'+data VkSwapchainCounterCreateInfoEXT = VkSwapchainCounterCreateInfoEXT+  { -- No documentation found for Nested "VkSwapchainCounterCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSwapchainCounterCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSwapchainCounterCreateInfoEXT" "vkSurfaceCounters"+  vkSurfaceCounters :: VkSurfaceCounterFlagsEXT+  }+  deriving (Eq, Show)++instance Storable VkSwapchainCounterCreateInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSwapchainCounterCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSwapchainCounterCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSwapchainCounterCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkSurfaceCounters (poked :: VkSwapchainCounterCreateInfoEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_display_surface_counter.hs view
@@ -0,0 +1,295 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter+  ( VkSurfaceCounterFlagBitsEXT(..)+  , pattern VK_SURFACE_COUNTER_VBLANK_EXT+  , pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT+  , pattern VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION+  , pattern VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME+  , pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT+  , vkGetPhysicalDeviceSurfaceCapabilities2EXT+  , VkSurfaceCapabilities2EXT(..)+  , VkSurfaceCounterFlagsEXT+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageUsageFlags+  , VkPhysicalDevice+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkExtent2D(..)+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkCompositeAlphaFlagsKHR+  , VkSurfaceTransformFlagBitsKHR(..)+  , VkSurfaceTransformFlagsKHR+  , VkSurfaceKHR+  )+++-- ** VkSurfaceCounterFlagBitsEXT++-- | VkSurfaceCounterFlagBitsEXT - Surface-relative counter types+--+-- = See Also+-- #_see_also#+--+-- 'VkSurfaceCounterFlagsEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkGetSwapchainCounterEXT'+newtype VkSurfaceCounterFlagBitsEXT = VkSurfaceCounterFlagBitsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSurfaceCounterFlagBitsEXT where+  showsPrec _ VK_SURFACE_COUNTER_VBLANK_EXT = showString "VK_SURFACE_COUNTER_VBLANK_EXT"+  showsPrec p (VkSurfaceCounterFlagBitsEXT x) = showParen (p >= 11) (showString "VkSurfaceCounterFlagBitsEXT " . showsPrec 11 x)++instance Read VkSurfaceCounterFlagBitsEXT where+  readPrec = parens ( choose [ ("VK_SURFACE_COUNTER_VBLANK_EXT", pure VK_SURFACE_COUNTER_VBLANK_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSurfaceCounterFlagBitsEXT")+                        v <- step readPrec+                        pure (VkSurfaceCounterFlagBitsEXT v)+                        )+                    )++-- | @VK_SURFACE_COUNTER_VBLANK_EXT@ specifies a counter incrementing once+-- every time a vertical blanking period occurs on the display associated+-- with the surface.+pattern VK_SURFACE_COUNTER_VBLANK_EXT :: VkSurfaceCounterFlagBitsEXT+pattern VK_SURFACE_COUNTER_VBLANK_EXT = VkSurfaceCounterFlagBitsEXT 0x00000001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"+pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = VkStructureType 1000090000+-- No documentation found for TopLevel "VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION"+pattern VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION :: Integral a => a+pattern VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME"+pattern VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME = "VK_EXT_display_surface_counter"+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT"+pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT+-- | vkGetPhysicalDeviceSurfaceCapabilities2EXT - Query surface capabilities+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device that will be associated with+--     the swapchain to be created, as described for+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @surface@ is the surface that will be associated with the swapchain.+--+-- -   @pSurfaceCapabilities@ is a pointer to an instance of the+--     'VkSurfaceCapabilities2EXT' structure in which the capabilities are+--     returned.+--+-- = Description+-- #_description#+--+-- @vkGetPhysicalDeviceSurfaceCapabilities2EXT@ behaves similarly to+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR',+-- with the ability to return extended information by adding extension+-- structures to the @pNext@ chain of its @pSurfaceCapabilities@ parameter.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- -   @pSurfaceCapabilities@ /must/ be a valid pointer to a+--     @VkSurfaceCapabilities2EXT@ structure+--+-- -   Both of @physicalDevice@, and @surface@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'VkSurfaceCapabilities2EXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR'+foreign import ccall "vkGetPhysicalDeviceSurfaceCapabilities2EXT" vkGetPhysicalDeviceSurfaceCapabilities2EXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilities2EXT) -> IO VkResult+-- | VkSurfaceCapabilities2EXT - Structure describing capabilities of a+-- surface+--+-- = Members+-- #_members#+--+-- All members of @VkSurfaceCapabilities2EXT@ are identical to the+-- corresponding members of+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR'+-- where one exists. The remaining members are:+--+-- = Description+-- #_description#+--+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to an extension-specific structure.+--+-- -   @supportedSurfaceCounters@ is a bitmask of+--     'VkSurfaceCounterFlagBitsEXT' indicating the supported surface+--     counter types.+--+-- == Valid Usage+--+-- -   @supportedSurfaceCounters@ /must/ not include+--     @VK_SURFACE_COUNTER_VBLANK_EXT@ unless the surface queried is a+--     <{html_spec_relative}#wsi-display-surfaces display surface>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagsKHR',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkSurfaceCounterFlagsEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagsKHR',+-- 'vkGetPhysicalDeviceSurfaceCapabilities2EXT'+data VkSurfaceCapabilities2EXT = VkSurfaceCapabilities2EXT+  { -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkMinImageCount"+  vkMinImageCount :: Word32+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkMaxImageCount"+  vkMaxImageCount :: Word32+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkCurrentExtent"+  vkCurrentExtent :: VkExtent2D+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkMinImageExtent"+  vkMinImageExtent :: VkExtent2D+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkMaxImageExtent"+  vkMaxImageExtent :: VkExtent2D+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkMaxImageArrayLayers"+  vkMaxImageArrayLayers :: Word32+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkSupportedTransforms"+  vkSupportedTransforms :: VkSurfaceTransformFlagsKHR+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkCurrentTransform"+  vkCurrentTransform :: VkSurfaceTransformFlagBitsKHR+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkSupportedCompositeAlpha"+  vkSupportedCompositeAlpha :: VkCompositeAlphaFlagsKHR+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkSupportedUsageFlags"+  vkSupportedUsageFlags :: VkImageUsageFlags+  , -- No documentation found for Nested "VkSurfaceCapabilities2EXT" "vkSupportedSurfaceCounters"+  vkSupportedSurfaceCounters :: VkSurfaceCounterFlagsEXT+  }+  deriving (Eq, Show)++instance Storable VkSurfaceCapabilities2EXT where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkSurfaceCapabilities2EXT <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 20)+                                       <*> peek (ptr `plusPtr` 24)+                                       <*> peek (ptr `plusPtr` 32)+                                       <*> peek (ptr `plusPtr` 40)+                                       <*> peek (ptr `plusPtr` 48)+                                       <*> peek (ptr `plusPtr` 52)+                                       <*> peek (ptr `plusPtr` 56)+                                       <*> peek (ptr `plusPtr` 60)+                                       <*> peek (ptr `plusPtr` 64)+                                       <*> peek (ptr `plusPtr` 68)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 16) (vkMinImageCount (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 20) (vkMaxImageCount (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 24) (vkCurrentExtent (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 32) (vkMinImageExtent (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 40) (vkMaxImageExtent (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 48) (vkMaxImageArrayLayers (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 52) (vkSupportedTransforms (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 56) (vkCurrentTransform (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 60) (vkSupportedCompositeAlpha (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 64) (vkSupportedUsageFlags (poked :: VkSurfaceCapabilities2EXT))+                *> poke (ptr `plusPtr` 68) (vkSupportedSurfaceCounters (poked :: VkSurfaceCapabilities2EXT))+-- | VkSurfaceCounterFlagsEXT - Bitmask of VkSurfaceCounterFlagBitsEXT+--+-- = Description+-- #_description#+--+-- @VkSurfaceCounterFlagsEXT@ is a bitmask type for setting a mask of zero+-- or more 'VkSurfaceCounterFlagBitsEXT'.+--+-- = See Also+-- #_see_also#+--+-- 'VkSurfaceCapabilities2EXT', 'VkSurfaceCounterFlagBitsEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT'+type VkSurfaceCounterFlagsEXT = VkSurfaceCounterFlagBitsEXT
+ src/Graphics/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs view
@@ -0,0 +1,30 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_external_memory_dma_buf+  ( pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT+  , pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION+  , pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+++import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagBits(..)+  )+++-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = VkExternalMemoryHandleTypeFlagBits 0x00000200+-- No documentation found for TopLevel "VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION"+pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION :: Integral a => a+pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME"+pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME = "VK_EXT_external_memory_dma_buf"
+ src/Graphics/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -0,0 +1,293 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_external_memory_host+  ( pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT+  , pattern VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION+  , pattern VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME+  , vkGetMemoryHostPointerPropertiesEXT+  , VkImportMemoryHostPointerInfoEXT(..)+  , VkMemoryHostPointerPropertiesEXT(..)+  , VkPhysicalDeviceExternalMemoryHostPropertiesEXT(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkDevice+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagBits(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"+pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = VkStructureType 1000178000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = VkStructureType 1000178001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = VkStructureType 1000178002+-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = VkExternalMemoryHandleTypeFlagBits 0x00000080+-- No documentation found for Nested "VkExternalMemoryHandleTypeFlagBits" "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = VkExternalMemoryHandleTypeFlagBits 0x00000100+-- No documentation found for TopLevel "VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION"+pattern VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION :: Integral a => a+pattern VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME"+pattern VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME = "VK_EXT_external_memory_host"+-- | vkGetMemoryHostPointerPropertiesEXT - Get properties of external memory+-- host pointer+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that will be importing+--     @pHostPointer@.+--+-- -   @handleType@ is the type of the handle @pHostPointer@.+--+-- -   @pHostPointer@ is the host pointer to import from.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @handleType@ /must/ be+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT@ or+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT@+--+-- -   @pHostPointer@ /must/ be a pointer aligned to an integer multiple of+--     @VkPhysicalDeviceExternalMemoryHostPropertiesEXT@::@minImportedHostPointerAlignment@+--+-- -   If @handleType@ is+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT@,+--     @pHostPointer@ /must/ be a pointer to host memory+--+-- -   If @handleType@ is+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT@,+--     @pHostPointer@ /must/ be a pointer to host mapped foreign memory+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+--     value+--+-- -   @pMemoryHostPointerProperties@ /must/ be a valid pointer to a+--     @VkMemoryHostPointerPropertiesEXT@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits',+-- 'VkMemoryHostPointerPropertiesEXT'+foreign import ccall "vkGetMemoryHostPointerPropertiesEXT" vkGetMemoryHostPointerPropertiesEXT :: ("device" ::: VkDevice) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> ("pHostPointer" ::: Ptr ()) -> ("pMemoryHostPointerProperties" ::: Ptr VkMemoryHostPointerPropertiesEXT) -> IO VkResult+-- | VkImportMemoryHostPointerInfoEXT - import memory from a host pointer+--+-- = Description+-- #_description#+--+-- Importing memory from a host pointer shares ownership of the memory+-- between the host and the Vulkan implementation. The application /can/+-- continue to access the memory through the host pointer but it is the+-- application’s responsibility to synchronize device and non-device access+-- to the underlying memory as defined in+-- <{html_spec_relative}#memory-device-hostaccess Host Access to Device Memory Objects>.+--+-- Applications /can/ import the same underlying memory into multiple+-- instances of Vulkan and multiple times into a given Vulkan instance.+-- However, implementations /may/ fail to import the same underlying memory+-- multiple times into a given physical device due to platform constraints.+--+-- Importing memory from a particular host pointer /may/ not be possible+-- due to additional platform-specific restrictions beyond the scope of+-- this specification in which case the implementation /must/ fail the+-- memory import operation with the error code+-- @VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR@.+--+-- The application /must/ ensure that the imported memory range remains+-- valid and accessible for the lifetime of the imported memory object.+--+-- == Valid Usage+--+-- -   If @handleType@ is not @0@, it /must/ be supported for import, as+--     reported in+--     'Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities.VkExternalMemoryPropertiesKHR'+--+-- -   If @handleType@ is not @0@, it /must/ be+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT@ or+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT@+--+-- -   @pHostPointer@ /must/ be a pointer aligned to an integer multiple of+--     @VkPhysicalDeviceExternalMemoryHostPropertiesEXT@::@minImportedHostPointerAlignment@+--+-- -   If @handleType@ is+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT@,+--     @pHostPointer@ /must/ be a pointer to @allocationSize@ number of+--     bytes of host memory, where @allocationSize@ is the member of the+--     @VkMemoryAllocateInfo@ structure this structure is chained to+--+-- -   If @handleType@ is+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT@,+--     @pHostPointer@ /must/ be a pointer to @allocationSize@ number of+--     bytes of host mapped foreign memory, where @allocationSize@ is the+--     member of the @VkMemoryAllocateInfo@ structure this structure is+--     chained to+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT@+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkImportMemoryHostPointerInfoEXT = VkImportMemoryHostPointerInfoEXT+  { -- No documentation found for Nested "VkImportMemoryHostPointerInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportMemoryHostPointerInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportMemoryHostPointerInfoEXT" "vkHandleType"+  vkHandleType :: VkExternalMemoryHandleTypeFlagBits+  , -- No documentation found for Nested "VkImportMemoryHostPointerInfoEXT" "vkPHostPointer"+  vkPHostPointer :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkImportMemoryHostPointerInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkImportMemoryHostPointerInfoEXT <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+                                              <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportMemoryHostPointerInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportMemoryHostPointerInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkHandleType (poked :: VkImportMemoryHostPointerInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkPHostPointer (poked :: VkImportMemoryHostPointerInfoEXT))+-- No documentation found for TopLevel "VkMemoryHostPointerPropertiesEXT"+data VkMemoryHostPointerPropertiesEXT = VkMemoryHostPointerPropertiesEXT+  { -- No documentation found for Nested "VkMemoryHostPointerPropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryHostPointerPropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryHostPointerPropertiesEXT" "vkMemoryTypeBits"+  vkMemoryTypeBits :: Word32+  }+  deriving (Eq, Show)++instance Storable VkMemoryHostPointerPropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMemoryHostPointerPropertiesEXT <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryHostPointerPropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryHostPointerPropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkMemoryTypeBits (poked :: VkMemoryHostPointerPropertiesEXT))+-- | VkPhysicalDeviceExternalMemoryHostPropertiesEXT - Structure describing+-- external memory host pointer limits that can be supported by an+-- implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceExternalMemoryHostPropertiesEXT@+-- structure describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @minImportedHostPointerAlignment@ is the minimum /required/+--     alignment, in bytes, for the base address and size of host pointers+--     that /can/ be imported to a Vulkan memory object.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT@+--+-- If the @VkPhysicalDeviceExternalMemoryHostPropertiesEXT@ structure is+-- included in the @pNext@ chain of+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2KHR',+-- it is filled with the implementation-dependent limits.+--+-- = See Also+-- #_see_also#+--+-- @VkDeviceSize@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceExternalMemoryHostPropertiesEXT = VkPhysicalDeviceExternalMemoryHostPropertiesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceExternalMemoryHostPropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceExternalMemoryHostPropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceExternalMemoryHostPropertiesEXT" "vkMinImportedHostPointerAlignment"+  vkMinImportedHostPointerAlignment :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceExternalMemoryHostPropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceExternalMemoryHostPropertiesEXT <$> peek (ptr `plusPtr` 0)+                                                             <*> peek (ptr `plusPtr` 8)+                                                             <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkMinImportedHostPointerAlignment (poked :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_global_priority.hs view
@@ -0,0 +1,175 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_global_priority+  ( VkQueueGlobalPriorityEXT(..)+  , pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT+  , pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT+  , pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT+  , pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT+  , pattern VK_ERROR_NOT_PERMITTED_EXT+  , pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT+  , pattern VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION+  , pattern VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME+  , VkDeviceQueueGlobalPriorityCreateInfoEXT(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  )+++-- ** VkQueueGlobalPriorityEXT++-- | VkQueueGlobalPriorityEXT - Values specifying a system-wide queue+-- priority+--+-- = Description+-- #_description#+--+-- Priority values are sorted in ascending order. A comparison operation on+-- the enum values can be used to determine the priority order.+--+-- -   @VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT@ is below the system default.+--     Useful for non-interactive tasks.+--+-- -   @VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT@ is the system default+--     priority.+--+-- -   @VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT@ is above the system default.+--+-- -   @VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT@ is the highest priority.+--     Useful for critical tasks.+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceQueueGlobalPriorityCreateInfoEXT'+newtype VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkQueueGlobalPriorityEXT where+  showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = showString "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT"+  showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = showString "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT"+  showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = showString "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT"+  showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = showString "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT"+  showsPrec p (VkQueueGlobalPriorityEXT x) = showParen (p >= 11) (showString "VkQueueGlobalPriorityEXT " . showsPrec 11 x)++instance Read VkQueueGlobalPriorityEXT where+  readPrec = parens ( choose [ ("VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT",      pure VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT)+                             , ("VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT",   pure VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT)+                             , ("VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT",     pure VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT)+                             , ("VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT", pure VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkQueueGlobalPriorityEXT")+                        v <- step readPrec+                        pure (VkQueueGlobalPriorityEXT v)+                        )+                    )++-- No documentation found for Nested "VkQueueGlobalPriorityEXT" "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT"+pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT :: VkQueueGlobalPriorityEXT+pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VkQueueGlobalPriorityEXT 128++-- No documentation found for Nested "VkQueueGlobalPriorityEXT" "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT"+pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT :: VkQueueGlobalPriorityEXT+pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VkQueueGlobalPriorityEXT 256++-- No documentation found for Nested "VkQueueGlobalPriorityEXT" "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT"+pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT :: VkQueueGlobalPriorityEXT+pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VkQueueGlobalPriorityEXT 512++-- No documentation found for Nested "VkQueueGlobalPriorityEXT" "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT"+pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT :: VkQueueGlobalPriorityEXT+pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VkQueueGlobalPriorityEXT 1024+-- No documentation found for Nested "VkResult" "VK_ERROR_NOT_PERMITTED_EXT"+pattern VK_ERROR_NOT_PERMITTED_EXT :: VkResult+pattern VK_ERROR_NOT_PERMITTED_EXT = VkResult (-1000174001)+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VkStructureType 1000174000+-- No documentation found for TopLevel "VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION"+pattern VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION :: Integral a => a+pattern VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME"+pattern VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_EXT_global_priority"+-- | VkDeviceQueueGlobalPriorityCreateInfoEXT - Specify a system wide+-- priority+--+-- = Description+-- #_description#+--+-- A queue created without specifying+-- @VkDeviceQueueGlobalPriorityCreateInfoEXT@ will default to+-- @VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT@+--+-- -   @globalPriority@ /must/ be a valid 'VkQueueGlobalPriorityEXT' value+--+-- = See Also+-- #_see_also#+--+-- 'VkQueueGlobalPriorityEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoEXT+  { -- No documentation found for Nested "VkDeviceQueueGlobalPriorityCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceQueueGlobalPriorityCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceQueueGlobalPriorityCreateInfoEXT" "vkGlobalPriority"+  vkGlobalPriority :: VkQueueGlobalPriorityEXT+  }+  deriving (Eq, Show)++instance Storable VkDeviceQueueGlobalPriorityCreateInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDeviceQueueGlobalPriorityCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                      <*> peek (ptr `plusPtr` 8)+                                                      <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceQueueGlobalPriorityCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceQueueGlobalPriorityCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkGlobalPriority (poked :: VkDeviceQueueGlobalPriorityCreateInfoEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -0,0 +1,189 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata+  ( pattern VK_STRUCTURE_TYPE_HDR_METADATA_EXT+  , pattern VK_EXT_HDR_METADATA_SPEC_VERSION+  , pattern VK_EXT_HDR_METADATA_EXTENSION_NAME+  , vkSetHdrMetadataEXT+  , VkXYColorEXT(..)+  , VkHdrMetadataEXT(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CFloat(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Extensions.VK_KHR_swapchain+  ( VkSwapchainKHR+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HDR_METADATA_EXT"+pattern VK_STRUCTURE_TYPE_HDR_METADATA_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_HDR_METADATA_EXT = VkStructureType 1000105000+-- No documentation found for TopLevel "VK_EXT_HDR_METADATA_SPEC_VERSION"+pattern VK_EXT_HDR_METADATA_SPEC_VERSION :: Integral a => a+pattern VK_EXT_HDR_METADATA_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_HDR_METADATA_EXTENSION_NAME"+pattern VK_EXT_HDR_METADATA_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_HDR_METADATA_EXTENSION_NAME = "VK_EXT_hdr_metadata"+-- | vkSetHdrMetadataEXT - function to set Hdr metadata+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device where the swapchain(s) were created.+--+-- -   @swapchainCount@ is the number of swapchains included in+--     @pSwapchains@.+--+-- -   @pSwapchains@ is a pointer to the array of @swapchainCount@+--     @VkSwapchainKHR@ handles.+--+-- -   @pMetadata@ is a pointer to the array of @swapchainCount@+--     @VkHdrMetadataEXT@ structures.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pSwapchains@ /must/ be a valid pointer to an array of+--     @swapchainCount@ valid @VkSwapchainKHR@ handles+--+-- -   @pMetadata@ /must/ be a valid pointer to an array of+--     @swapchainCount@ valid @VkHdrMetadataEXT@ structures+--+-- -   @swapchainCount@ /must/ be greater than @0@+--+-- -   Both of @device@, and the elements of @pSwapchains@ /must/ have been+--     created, allocated, or retrieved from the same @VkInstance@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkHdrMetadataEXT',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainKHR'+foreign import ccall "vkSetHdrMetadataEXT" vkSetHdrMetadataEXT :: ("device" ::: VkDevice) -> ("swapchainCount" ::: Word32) -> ("pSwapchains" ::: Ptr VkSwapchainKHR) -> ("pMetadata" ::: Ptr VkHdrMetadataEXT) -> IO ()+-- | VkXYColorEXT - structure to specify X,Y chromaticity coordinates+--+-- = Members+-- #_members#+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkHdrMetadataEXT'+data VkXYColorEXT = VkXYColorEXT+  { -- No documentation found for Nested "VkXYColorEXT" "vkX"+  vkX :: CFloat+  , -- No documentation found for Nested "VkXYColorEXT" "vkY"+  vkY :: CFloat+  }+  deriving (Eq, Show)++instance Storable VkXYColorEXT where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkXYColorEXT <$> peek (ptr `plusPtr` 0)+                          <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkXYColorEXT))+                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkXYColorEXT))+-- | VkHdrMetadataEXT - structure to specify Hdr metadata+--+-- = Description+-- #_description#+--+-- __Note__+--+-- The validity and use of this data is outside the scope of Vulkan and+-- thus no Valid Usage is given.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkXYColorEXT',+-- 'vkSetHdrMetadataEXT'+data VkHdrMetadataEXT = VkHdrMetadataEXT+  { -- No documentation found for Nested "VkHdrMetadataEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkDisplayPrimaryRed"+  vkDisplayPrimaryRed :: VkXYColorEXT+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkDisplayPrimaryGreen"+  vkDisplayPrimaryGreen :: VkXYColorEXT+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkDisplayPrimaryBlue"+  vkDisplayPrimaryBlue :: VkXYColorEXT+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkWhitePoint"+  vkWhitePoint :: VkXYColorEXT+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkMaxLuminance"+  vkMaxLuminance :: CFloat+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkMinLuminance"+  vkMinLuminance :: CFloat+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkMaxContentLightLevel"+  vkMaxContentLightLevel :: CFloat+  , -- No documentation found for Nested "VkHdrMetadataEXT" "vkMaxFrameAverageLightLevel"+  vkMaxFrameAverageLightLevel :: CFloat+  }+  deriving (Eq, Show)++instance Storable VkHdrMetadataEXT where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkHdrMetadataEXT <$> peek (ptr `plusPtr` 0)+                              <*> peek (ptr `plusPtr` 8)+                              <*> peek (ptr `plusPtr` 16)+                              <*> peek (ptr `plusPtr` 24)+                              <*> peek (ptr `plusPtr` 32)+                              <*> peek (ptr `plusPtr` 40)+                              <*> peek (ptr `plusPtr` 48)+                              <*> peek (ptr `plusPtr` 52)+                              <*> peek (ptr `plusPtr` 56)+                              <*> peek (ptr `plusPtr` 60)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 16) (vkDisplayPrimaryRed (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 24) (vkDisplayPrimaryGreen (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 32) (vkDisplayPrimaryBlue (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 40) (vkWhitePoint (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 48) (vkMaxLuminance (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 52) (vkMinLuminance (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 56) (vkMaxContentLightLevel (poked :: VkHdrMetadataEXT))+                *> poke (ptr `plusPtr` 60) (vkMaxFrameAverageLightLevel (poked :: VkHdrMetadataEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_post_depth_coverage+  ( pattern VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION+  , pattern VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION"+pattern VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION :: Integral a => a+pattern VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME"+pattern VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME = "VK_EXT_post_depth_coverage"
+ src/Graphics/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs view
@@ -0,0 +1,31 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_queue_family_foreign+  ( pattern VK_QUEUE_FAMILY_FOREIGN_EXT+  , pattern VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION+  , pattern VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )++++++-- No documentation found for Nested "Word32" "VK_QUEUE_FAMILY_FOREIGN_EXT"+pattern VK_QUEUE_FAMILY_FOREIGN_EXT :: Word32+pattern VK_QUEUE_FAMILY_FOREIGN_EXT = 0xfffffffd+-- No documentation found for TopLevel "VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION"+pattern VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION :: Integral a => a+pattern VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME"+pattern VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME = "VK_EXT_queue_family_foreign"
+ src/Graphics/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -0,0 +1,636 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_sample_locations+  ( pattern VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT+  , pattern VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT+  , pattern VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT+  , pattern VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT+  , pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION+  , pattern VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME+  , vkCmdSetSampleLocationsEXT+  , vkGetPhysicalDeviceMultisamplePropertiesEXT+  , VkSampleLocationEXT(..)+  , VkSampleLocationsInfoEXT(..)+  , VkAttachmentSampleLocationsEXT(..)+  , VkSubpassSampleLocationsEXT(..)+  , VkRenderPassSampleLocationsBeginInfoEXT(..)+  , VkPipelineSampleLocationsStateCreateInfoEXT(..)+  , VkPhysicalDeviceSampleLocationsPropertiesEXT(..)+  , VkMultisamplePropertiesEXT(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CFloat(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkSampleCountFlags+  , VkSampleCountFlagBits(..)+  , VkPhysicalDevice+  , VkImageCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkExtent2D(..)+  , VkDynamicState(..)+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+++-- No documentation found for Nested "VkDynamicState" "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT"+pattern VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT :: VkDynamicState+pattern VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = VkDynamicState 1000143000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"+pattern VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = VkStructureType 1000143000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"+pattern VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = VkStructureType 1000143001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = VkStructureType 1000143002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = VkStructureType 1000143003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = VkStructureType 1000143004+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"+pattern VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = VkImageCreateFlagBits 0x00001000+-- No documentation found for TopLevel "VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION"+pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION :: Integral a => a+pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME"+pattern VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME = "VK_EXT_sample_locations"+-- | vkCmdSetSampleLocationsEXT - Set the dynamic sample locations state+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @pSampleLocationsInfo@ is the sample locations state to set.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT@ dynamic state enabled+--+-- -   The @sampleLocationsPerPixel@ member of @pSampleLocationsInfo@+--     /must/ equal the @rasterizationSamples@ member of the+--     'Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   If+--     'VkPhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@+--     is @VK_FALSE@ then the current render pass /must/ have been begun by+--     specifying a 'VkRenderPassSampleLocationsBeginInfoEXT' structure+--     whose @pPostSubpassSampleLocations@ member contains an element with+--     a @subpassIndex@ matching the current subpass index and the+--     @sampleLocationsInfo@ member of that element /must/ match the sample+--     locations state pointed to by @pSampleLocationsInfo@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pSampleLocationsInfo@ /must/ be a valid pointer to a valid+--     @VkSampleLocationsInfoEXT@ structure+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'VkSampleLocationsInfoEXT'+foreign import ccall "vkCmdSetSampleLocationsEXT" vkCmdSetSampleLocationsEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pSampleLocationsInfo" ::: Ptr VkSampleLocationsInfoEXT) -> IO ()+-- | vkGetPhysicalDeviceMultisamplePropertiesEXT - Report sample count+-- specific multisampling capabilities of a physical device+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device from which to query the+--     additional multisampling capabilities.+--+-- -   @samples@ is the sample count to query the capabilities for.+--+-- -   @pMultisampleProperties@ is a pointer to a structure of type+--     'VkMultisamplePropertiesEXT', in which information about the+--     additional multisampling capabilities specific to the sample count+--     is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @samples@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+--     value+--+-- -   @pMultisampleProperties@ /must/ be a valid pointer to a+--     @VkMultisamplePropertiesEXT@ structure+--+-- = See Also+-- #_see_also#+--+-- 'VkMultisamplePropertiesEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+foreign import ccall "vkGetPhysicalDeviceMultisamplePropertiesEXT" vkGetPhysicalDeviceMultisamplePropertiesEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("samples" ::: VkSampleCountFlagBits) -> ("pMultisampleProperties" ::: Ptr VkMultisamplePropertiesEXT) -> IO ()+-- | VkSampleLocationEXT - Structure specifying the coordinates of a sample+-- location+--+-- = Description+-- #_description#+--+-- The domain space of the sample location coordinates has an upper-left+-- origin within the pixel in framebuffer space.+--+-- The values specified in a @VkSampleLocationEXT@ structure are always+-- clamped to the implementation-dependent sample location coordinate range+-- [@sampleLocationCoordinateRange@[0],@sampleLocationCoordinateRange@[1]]+-- that /can/ be queried by chaining the+-- 'VkPhysicalDeviceSampleLocationsPropertiesEXT' structure to the @pNext@+-- chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2'.+--+-- = See Also+-- #_see_also#+--+-- 'VkSampleLocationsInfoEXT'+data VkSampleLocationEXT = VkSampleLocationEXT+  { -- No documentation found for Nested "VkSampleLocationEXT" "vkX"+  vkX :: CFloat+  , -- No documentation found for Nested "VkSampleLocationEXT" "vkY"+  vkY :: CFloat+  }+  deriving (Eq, Show)++instance Storable VkSampleLocationEXT where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkSampleLocationEXT <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkSampleLocationEXT))+                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkSampleLocationEXT))+-- | VkSampleLocationsInfoEXT - Structure specifying a set of sample+-- locations+--+-- = Description+-- #_description#+--+-- This structure /can/ be used either to specify the sample locations to+-- be used for rendering or to specify the set of sample locations an image+-- subresource has been last rendered with for the purposes of layout+-- transitions of depth\/stencil images created with+-- @VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT@.+--+-- The sample locations in @pSampleLocations@ specify+-- @sampleLocationsPerPixel@ number of sample locations for each pixel in+-- the grid of the size specified in @sampleLocationGridSize@. The sample+-- location for sample i at the pixel grid location (x,y) is taken from+-- @pSampleLocations@[(x + y * @sampleLocationGridSize.width@) *+-- @sampleLocationsPerPixel@ + i].+--+-- == Valid Usage+--+-- -   @sampleLocationsPerPixel@ /must/ be a bit value that is set in+--     'VkPhysicalDeviceSampleLocationsPropertiesEXT'::@sampleLocationSampleCounts@+--+-- -   @sampleLocationsCount@ /must/ equal @sampleLocationsPerPixel@ ×+--     @sampleLocationGridSize.width@ × @sampleLocationGridSize.height@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT@+--+-- -   @sampleLocationsPerPixel@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+--     value+--+-- -   @pSampleLocations@ /must/ be a valid pointer to an array of+--     @sampleLocationsCount@ @VkSampleLocationEXT@ structures+--+-- -   @sampleLocationsCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentSampleLocationsEXT',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'VkPipelineSampleLocationsStateCreateInfoEXT',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits',+-- 'VkSampleLocationEXT', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkSubpassSampleLocationsEXT', 'vkCmdSetSampleLocationsEXT'+data VkSampleLocationsInfoEXT = VkSampleLocationsInfoEXT+  { -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkSampleLocationsPerPixel"+  vkSampleLocationsPerPixel :: VkSampleCountFlagBits+  , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkSampleLocationGridSize"+  vkSampleLocationGridSize :: VkExtent2D+  , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkSampleLocationsCount"+  vkSampleLocationsCount :: Word32+  , -- No documentation found for Nested "VkSampleLocationsInfoEXT" "vkPSampleLocations"+  vkPSampleLocations :: Ptr VkSampleLocationEXT+  }+  deriving (Eq, Show)++instance Storable VkSampleLocationsInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkSampleLocationsInfoEXT <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+                                      <*> peek (ptr `plusPtr` 20)+                                      <*> peek (ptr `plusPtr` 28)+                                      <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSampleLocationsInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSampleLocationsInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkSampleLocationsPerPixel (poked :: VkSampleLocationsInfoEXT))+                *> poke (ptr `plusPtr` 20) (vkSampleLocationGridSize (poked :: VkSampleLocationsInfoEXT))+                *> poke (ptr `plusPtr` 28) (vkSampleLocationsCount (poked :: VkSampleLocationsInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkPSampleLocations (poked :: VkSampleLocationsInfoEXT))+-- | VkAttachmentSampleLocationsEXT - Structure specifying the sample+-- locations state to use in the initial layout transition of attachments+--+-- = Description+-- #_description#+--+-- If the image referenced by the framebuffer attachment at index+-- @attachmentIndex@ was not created with+-- @VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT@ then the+-- values specified in @sampleLocationsInfo@ are ignored.+--+-- == Valid Usage+--+-- -   @attachmentIndex@ /must/ be less than the @attachmentCount@+--     specified in 'Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo'+--     the render pass specified by+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo'::@renderPass@+--     was created with+--+-- == Valid Usage (Implicit)+--+-- -   @sampleLocationsInfo@ /must/ be a valid @VkSampleLocationsInfoEXT@+--     structure+--+-- = See Also+-- #_see_also#+--+-- 'VkRenderPassSampleLocationsBeginInfoEXT', 'VkSampleLocationsInfoEXT'+data VkAttachmentSampleLocationsEXT = VkAttachmentSampleLocationsEXT+  { -- No documentation found for Nested "VkAttachmentSampleLocationsEXT" "vkAttachmentIndex"+  vkAttachmentIndex :: Word32+  , -- No documentation found for Nested "VkAttachmentSampleLocationsEXT" "vkSampleLocationsInfo"+  vkSampleLocationsInfo :: VkSampleLocationsInfoEXT+  }+  deriving (Eq, Show)++instance Storable VkAttachmentSampleLocationsEXT where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkAttachmentSampleLocationsEXT <$> peek (ptr `plusPtr` 0)+                                            <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkAttachmentIndex (poked :: VkAttachmentSampleLocationsEXT))+                *> poke (ptr `plusPtr` 8) (vkSampleLocationsInfo (poked :: VkAttachmentSampleLocationsEXT))+-- | VkSubpassSampleLocationsEXT - Structure specifying the sample locations+-- state to use for layout transitions of attachments performed after a+-- given subpass+--+-- = Description+-- #_description#+--+-- If the image referenced by the depth\/stencil attachment used in the+-- subpass identified by @subpassIndex@ was not created with+-- @VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT@ or if the+-- subpass does not use a depth\/stencil attachment, and+-- 'VkPhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@+-- is @VK_TRUE@ then the values specified in @sampleLocationsInfo@ are+-- ignored.+--+-- == Valid Usage+--+-- -   @subpassIndex@ /must/ be less than the @subpassCount@ specified in+--     'Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo' the render pass+--     specified by+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo'::@renderPass@+--     was created with+--+-- == Valid Usage (Implicit)+--+-- -   @sampleLocationsInfo@ /must/ be a valid @VkSampleLocationsInfoEXT@+--     structure+--+-- = See Also+-- #_see_also#+--+-- 'VkRenderPassSampleLocationsBeginInfoEXT', 'VkSampleLocationsInfoEXT'+data VkSubpassSampleLocationsEXT = VkSubpassSampleLocationsEXT+  { -- No documentation found for Nested "VkSubpassSampleLocationsEXT" "vkSubpassIndex"+  vkSubpassIndex :: Word32+  , -- No documentation found for Nested "VkSubpassSampleLocationsEXT" "vkSampleLocationsInfo"+  vkSampleLocationsInfo :: VkSampleLocationsInfoEXT+  }+  deriving (Eq, Show)++instance Storable VkSubpassSampleLocationsEXT where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkSubpassSampleLocationsEXT <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSubpassIndex (poked :: VkSubpassSampleLocationsEXT))+                *> poke (ptr `plusPtr` 8) (vkSampleLocationsInfo (poked :: VkSubpassSampleLocationsEXT))+-- | VkRenderPassSampleLocationsBeginInfoEXT - Structure specifying sample+-- locations to use for the layout transition of custom sample locations+-- compatible depth\/stencil attachments+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT@+--+-- -   If @attachmentInitialSampleLocationsCount@ is not @0@,+--     @pAttachmentInitialSampleLocations@ /must/ be a valid pointer to an+--     array of @attachmentInitialSampleLocationsCount@ valid+--     @VkAttachmentSampleLocationsEXT@ structures+--+-- -   If @postSubpassSampleLocationsCount@ is not @0@,+--     @pPostSubpassSampleLocations@ /must/ be a valid pointer to an array+--     of @postSubpassSampleLocationsCount@ valid+--     @VkSubpassSampleLocationsEXT@ structures+--+-- = See Also+-- #_see_also#+--+-- 'VkAttachmentSampleLocationsEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkSubpassSampleLocationsEXT'+data VkRenderPassSampleLocationsBeginInfoEXT = VkRenderPassSampleLocationsBeginInfoEXT+  { -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkAttachmentInitialSampleLocationsCount"+  vkAttachmentInitialSampleLocationsCount :: Word32+  , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkPAttachmentInitialSampleLocations"+  vkPAttachmentInitialSampleLocations :: Ptr VkAttachmentSampleLocationsEXT+  , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkPostSubpassSampleLocationsCount"+  vkPostSubpassSampleLocationsCount :: Word32+  , -- No documentation found for Nested "VkRenderPassSampleLocationsBeginInfoEXT" "vkPPostSubpassSampleLocations"+  vkPPostSubpassSampleLocations :: Ptr VkSubpassSampleLocationsEXT+  }+  deriving (Eq, Show)++instance Storable VkRenderPassSampleLocationsBeginInfoEXT where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkRenderPassSampleLocationsBeginInfoEXT <$> peek (ptr `plusPtr` 0)+                                                     <*> peek (ptr `plusPtr` 8)+                                                     <*> peek (ptr `plusPtr` 16)+                                                     <*> peek (ptr `plusPtr` 24)+                                                     <*> peek (ptr `plusPtr` 32)+                                                     <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassSampleLocationsBeginInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassSampleLocationsBeginInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkAttachmentInitialSampleLocationsCount (poked :: VkRenderPassSampleLocationsBeginInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkPAttachmentInitialSampleLocations (poked :: VkRenderPassSampleLocationsBeginInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkPostSubpassSampleLocationsCount (poked :: VkRenderPassSampleLocationsBeginInfoEXT))+                *> poke (ptr `plusPtr` 40) (vkPPostSubpassSampleLocations (poked :: VkRenderPassSampleLocationsBeginInfoEXT))+-- | VkPipelineSampleLocationsStateCreateInfoEXT - Structure specifying+-- sample locations for a pipeline+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT@+--+-- -   @sampleLocationsInfo@ /must/ be a valid @VkSampleLocationsInfoEXT@+--     structure+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkSampleLocationsInfoEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineSampleLocationsStateCreateInfoEXT = VkPipelineSampleLocationsStateCreateInfoEXT+  { -- No documentation found for Nested "VkPipelineSampleLocationsStateCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineSampleLocationsStateCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineSampleLocationsStateCreateInfoEXT" "vkSampleLocationsEnable"+  vkSampleLocationsEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineSampleLocationsStateCreateInfoEXT" "vkSampleLocationsInfo"+  vkSampleLocationsInfo :: VkSampleLocationsInfoEXT+  }+  deriving (Eq, Show)++instance Storable VkPipelineSampleLocationsStateCreateInfoEXT where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkPipelineSampleLocationsStateCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                         <*> peek (ptr `plusPtr` 8)+                                                         <*> peek (ptr `plusPtr` 16)+                                                         <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineSampleLocationsStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineSampleLocationsStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkSampleLocationsEnable (poked :: VkPipelineSampleLocationsStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkSampleLocationsInfo (poked :: VkPipelineSampleLocationsStateCreateInfoEXT))+-- | VkPhysicalDeviceSampleLocationsPropertiesEXT - Structure describing+-- sample location limits that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceSampleLocationsPropertiesEXT@+-- structure describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @sampleLocationSampleCounts@ is a bitmask of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'+--     indicating the sample counts supporting custom sample locations.+--+-- -   @maxSampleLocationGridSize@ is the maximum size of the pixel grid in+--     which sample locations /can/ vary that is supported for all sample+--     counts in @sampleLocationSampleCounts@.+--+-- -   @sampleLocationCoordinateRange@[2] is the range of supported sample+--     location coordinates.+--+-- -   @sampleLocationSubPixelBits@ is the number of bits of subpixel+--     precision for sample locations.+--+-- -   @variableSampleLocations@ specifies whether the sample locations+--     used by all pipelines that will be bound to a command buffer during+--     a subpass /must/ match. If set to @VK_TRUE@, the implementation+--     supports variable sample locations in a subpass. If set to+--     @VK_FALSE@, then the sample locations /must/ stay constant in each+--     subpass.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT@+--+-- If the @VkPhysicalDeviceSampleLocationsPropertiesEXT@ structure is+-- included in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceSampleLocationsPropertiesEXT = VkPhysicalDeviceSampleLocationsPropertiesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkSampleLocationSampleCounts"+  vkSampleLocationSampleCounts :: VkSampleCountFlags+  , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkMaxSampleLocationGridSize"+  vkMaxSampleLocationGridSize :: VkExtent2D+  , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkSampleLocationCoordinateRange"+  vkSampleLocationCoordinateRange :: Vector 2 CFloat+  , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkSampleLocationSubPixelBits"+  vkSampleLocationSubPixelBits :: Word32+  , -- No documentation found for Nested "VkPhysicalDeviceSampleLocationsPropertiesEXT" "vkVariableSampleLocations"+  vkVariableSampleLocations :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceSampleLocationsPropertiesEXT where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceSampleLocationsPropertiesEXT <$> peek (ptr `plusPtr` 0)+                                                          <*> peek (ptr `plusPtr` 8)+                                                          <*> peek (ptr `plusPtr` 16)+                                                          <*> peek (ptr `plusPtr` 20)+                                                          <*> peek (ptr `plusPtr` 28)+                                                          <*> peek (ptr `plusPtr` 36)+                                                          <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkSampleLocationSampleCounts (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT))+                *> poke (ptr `plusPtr` 20) (vkMaxSampleLocationGridSize (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT))+                *> poke (ptr `plusPtr` 28) (vkSampleLocationCoordinateRange (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT))+                *> poke (ptr `plusPtr` 36) (vkSampleLocationSubPixelBits (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT))+                *> poke (ptr `plusPtr` 40) (vkVariableSampleLocations (poked :: VkPhysicalDeviceSampleLocationsPropertiesEXT))+-- | VkMultisamplePropertiesEXT - Structure returning information about+-- sample count specific additional multisampling capabilities+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetPhysicalDeviceMultisamplePropertiesEXT'+data VkMultisamplePropertiesEXT = VkMultisamplePropertiesEXT+  { -- No documentation found for Nested "VkMultisamplePropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMultisamplePropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMultisamplePropertiesEXT" "vkMaxSampleLocationGridSize"+  vkMaxSampleLocationGridSize :: VkExtent2D+  }+  deriving (Eq, Show)++instance Storable VkMultisamplePropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMultisamplePropertiesEXT <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMultisamplePropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMultisamplePropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkMaxSampleLocationGridSize (poked :: VkMultisamplePropertiesEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs view
@@ -0,0 +1,264 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax+  ( VkSamplerReductionModeEXT(..)+  , pattern VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT+  , pattern VK_SAMPLER_REDUCTION_MODE_MIN_EXT+  , pattern VK_SAMPLER_REDUCTION_MODE_MAX_EXT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT+  , pattern VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT+  , pattern VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION+  , pattern VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME+  , VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(..)+  , VkSamplerReductionModeCreateInfoEXT(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkFormatFeatureFlagBits(..)+  )+++-- ** VkSamplerReductionModeEXT++-- | VkSamplerReductionModeEXT - Specify reduction mode for texture filtering+--+-- = See Also+-- #_see_also#+--+-- 'VkSamplerReductionModeCreateInfoEXT'+newtype VkSamplerReductionModeEXT = VkSamplerReductionModeEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkSamplerReductionModeEXT where+  showsPrec _ VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = showString "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT"+  showsPrec _ VK_SAMPLER_REDUCTION_MODE_MIN_EXT = showString "VK_SAMPLER_REDUCTION_MODE_MIN_EXT"+  showsPrec _ VK_SAMPLER_REDUCTION_MODE_MAX_EXT = showString "VK_SAMPLER_REDUCTION_MODE_MAX_EXT"+  showsPrec p (VkSamplerReductionModeEXT x) = showParen (p >= 11) (showString "VkSamplerReductionModeEXT " . showsPrec 11 x)++instance Read VkSamplerReductionModeEXT where+  readPrec = parens ( choose [ ("VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT", pure VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT)+                             , ("VK_SAMPLER_REDUCTION_MODE_MIN_EXT",              pure VK_SAMPLER_REDUCTION_MODE_MIN_EXT)+                             , ("VK_SAMPLER_REDUCTION_MODE_MAX_EXT",              pure VK_SAMPLER_REDUCTION_MODE_MAX_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSamplerReductionModeEXT")+                        v <- step readPrec+                        pure (VkSamplerReductionModeEXT v)+                        )+                    )++-- | @VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT@ specifies that texel+-- values are combined by computing a weighted average of values in the+-- footprint, using weights as specified in+-- <{html_spec_relative}#textures-unnormalized-to-integer the image operations chapter>.+pattern VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT :: VkSamplerReductionModeEXT+pattern VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VkSamplerReductionModeEXT 0++-- | @VK_SAMPLER_REDUCTION_MODE_MIN_EXT@ specifies that texel values are+-- combined by taking the component-wise minimum of values in the footprint+-- with non-zero weights.+pattern VK_SAMPLER_REDUCTION_MODE_MIN_EXT :: VkSamplerReductionModeEXT+pattern VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VkSamplerReductionModeEXT 1++-- | @VK_SAMPLER_REDUCTION_MODE_MAX_EXT@ specifies that texel values are+-- combined by taking the component-wise maximum of values in the footprint+-- with non-zero weights.+pattern VK_SAMPLER_REDUCTION_MODE_MAX_EXT :: VkSamplerReductionModeEXT+pattern VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VkSamplerReductionModeEXT 2+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VkStructureType 1000130000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VkStructureType 1000130001+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VkFormatFeatureFlagBits 0x00010000+-- No documentation found for TopLevel "VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION"+pattern VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION :: Integral a => a+pattern VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME"+pattern VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME = "VK_EXT_sampler_filter_minmax"+-- | VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT - Structure describing+-- sampler filter minmax limits that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT@+-- structure describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @filterMinmaxSingleComponentFormats@ is a boolean value indicating+--     whether a minimum set of required formats support min\/max+--     filtering.+--+-- -   @filterMinmaxImageComponentMapping@ is a boolean value indicating+--     whether the implementation supports non-identity component mapping+--     of the image when doing min\/max filtering.+--+-- If the @VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT@ structure is+-- included in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- If @filterMinmaxSingleComponentFormats@ is @VK_TRUE@, the following+-- formats /must/ support the+-- @VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT@ feature with+-- @VK_IMAGE_TILING_OPTIMAL@, if they support+-- @VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT@.+--+-- -   @VK_FORMAT_R8_UNORM@+--+-- -   @VK_FORMAT_R8_SNORM@+--+-- -   @VK_FORMAT_R16_UNORM@+--+-- -   @VK_FORMAT_R16_SNORM@+--+-- -   @VK_FORMAT_R16_SFLOAT@+--+-- -   @VK_FORMAT_R32_SFLOAT@+--+-- -   @VK_FORMAT_D16_UNORM@+--+-- -   @VK_FORMAT_X8_D24_UNORM_PACK32@+--+-- -   @VK_FORMAT_D32_SFLOAT@+--+-- -   @VK_FORMAT_D16_UNORM_S8_UINT@+--+-- -   @VK_FORMAT_D24_UNORM_S8_UINT@+--+-- -   @VK_FORMAT_D32_SFLOAT_S8_UINT@+--+-- If the format is a depth\/stencil format, this bit only specifies that+-- the depth aspect (not the stencil aspect) of an image of this format+-- supports min\/max filtering, and that min\/max filtering of the depth+-- aspect is supported when depth compare is disabled in the sampler.+--+-- If @filterMinmaxImageComponentMapping@ is @VK_FALSE@ the component+-- mapping of the image view used with min\/max filtering /must/ have been+-- created with the @r@ component set to @VK_COMPONENT_SWIZZLE_IDENTITY@.+-- Only the @r@ component of the sampled image value is defined and the+-- other component values are undefined. If+-- @filterMinmaxImageComponentMapping@ is @VK_TRUE@ this restriction does+-- not apply and image component mapping works as normal.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT" "vkFilterMinmaxSingleComponentFormats"+  vkFilterMinmaxSingleComponentFormats :: VkBool32+  , -- No documentation found for Nested "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT" "vkFilterMinmaxImageComponentMapping"+  vkFilterMinmaxImageComponentMapping :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT <$> peek (ptr `plusPtr` 0)+                                                              <*> peek (ptr `plusPtr` 8)+                                                              <*> peek (ptr `plusPtr` 16)+                                                              <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkFilterMinmaxSingleComponentFormats (poked :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT))+                *> poke (ptr `plusPtr` 20) (vkFilterMinmaxImageComponentMapping (poked :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT))+-- | VkSamplerReductionModeCreateInfoEXT - Structure specifying sampler+-- reduction mode+--+-- = Description+-- #_description#+--+-- If this structure is not present, @reductionMode@ is considered to be+-- @VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT@+--+-- -   @reductionMode@ /must/ be a valid 'VkSamplerReductionModeEXT' value+--+-- = See Also+-- #_see_also#+--+-- 'VkSamplerReductionModeEXT',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfoEXT+  { -- No documentation found for Nested "VkSamplerReductionModeCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSamplerReductionModeCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSamplerReductionModeCreateInfoEXT" "vkReductionMode"+  vkReductionMode :: VkSamplerReductionModeEXT+  }+  deriving (Eq, Show)++instance Storable VkSamplerReductionModeCreateInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSamplerReductionModeCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSamplerReductionModeCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSamplerReductionModeCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkReductionMode (poked :: VkSamplerReductionModeCreateInfoEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_shader_stencil_export+  ( pattern VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION+  , pattern VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION"+pattern VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION :: Integral a => a+pattern VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME"+pattern VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME = "VK_EXT_shader_stencil_export"
+ src/Graphics/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_ballot+  ( pattern VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION+  , pattern VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION"+pattern VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION :: Integral a => a+pattern VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME"+pattern VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME = "VK_EXT_shader_subgroup_ballot"
+ src/Graphics/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_vote+  ( pattern VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION+  , pattern VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION"+pattern VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION :: Integral a => a+pattern VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME"+pattern VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME = "VK_EXT_shader_subgroup_vote"
+ src/Graphics/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_shader_viewport_index_layer+  ( pattern VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION+  , pattern VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION"+pattern VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION :: Integral a => a+pattern VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME"+pattern VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME = "VK_EXT_shader_viewport_index_layer"
+ src/Graphics/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs view
@@ -0,0 +1,82 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_EXT_swapchain_colorspace+  ( pattern VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT+  , pattern VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT+  , pattern VK_COLOR_SPACE_DCI_P3_LINEAR_EXT+  , pattern VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT+  , pattern VK_COLOR_SPACE_BT709_LINEAR_EXT+  , pattern VK_COLOR_SPACE_BT709_NONLINEAR_EXT+  , pattern VK_COLOR_SPACE_BT2020_LINEAR_EXT+  , pattern VK_COLOR_SPACE_HDR10_ST2084_EXT+  , pattern VK_COLOR_SPACE_DOLBYVISION_EXT+  , pattern VK_COLOR_SPACE_HDR10_HLG_EXT+  , pattern VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT+  , pattern VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT+  , pattern VK_COLOR_SPACE_PASS_THROUGH_EXT+  , pattern VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT+  , pattern VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION+  , pattern VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+++import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkColorSpaceKHR(..)+  )+++-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT"+pattern VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = VkColorSpaceKHR 1000104001+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT"+pattern VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = VkColorSpaceKHR 1000104002+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_DCI_P3_LINEAR_EXT"+pattern VK_COLOR_SPACE_DCI_P3_LINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VkColorSpaceKHR 1000104003+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT"+pattern VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = VkColorSpaceKHR 1000104004+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_BT709_LINEAR_EXT"+pattern VK_COLOR_SPACE_BT709_LINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_BT709_LINEAR_EXT = VkColorSpaceKHR 1000104005+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_BT709_NONLINEAR_EXT"+pattern VK_COLOR_SPACE_BT709_NONLINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_BT709_NONLINEAR_EXT = VkColorSpaceKHR 1000104006+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_BT2020_LINEAR_EXT"+pattern VK_COLOR_SPACE_BT2020_LINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_BT2020_LINEAR_EXT = VkColorSpaceKHR 1000104007+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_HDR10_ST2084_EXT"+pattern VK_COLOR_SPACE_HDR10_ST2084_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_HDR10_ST2084_EXT = VkColorSpaceKHR 1000104008+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_DOLBYVISION_EXT"+pattern VK_COLOR_SPACE_DOLBYVISION_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_DOLBYVISION_EXT = VkColorSpaceKHR 1000104009+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_HDR10_HLG_EXT"+pattern VK_COLOR_SPACE_HDR10_HLG_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_HDR10_HLG_EXT = VkColorSpaceKHR 1000104010+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT"+pattern VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = VkColorSpaceKHR 1000104011+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT"+pattern VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = VkColorSpaceKHR 1000104012+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_PASS_THROUGH_EXT"+pattern VK_COLOR_SPACE_PASS_THROUGH_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_PASS_THROUGH_EXT = VkColorSpaceKHR 1000104013+-- No documentation found for Nested "VkColorSpaceKHR" "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT"+pattern VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = VkColorSpaceKHR 1000104014+-- No documentation found for TopLevel "VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION"+pattern VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION :: Integral a => a+pattern VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION = 3+-- No documentation found for TopLevel "VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME"+pattern VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME = "VK_EXT_swapchain_colorspace"
+ src/Graphics/Vulkan/Extensions/VK_EXT_validation_cache.hs view
@@ -0,0 +1,582 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_validation_cache+  ( VkValidationCacheHeaderVersionEXT(..)+  , pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT+  , VkValidationCacheCreateFlagsEXT(..)+  , pattern VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT+  , pattern VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT+  , pattern VK_OBJECT_TYPE_VALIDATION_CACHE_EXT+  , pattern VK_EXT_VALIDATION_CACHE_SPEC_VERSION+  , pattern VK_EXT_VALIDATION_CACHE_EXTENSION_NAME+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT+  , VkValidationCacheEXT+  , vkCreateValidationCacheEXT+  , vkDestroyValidationCacheEXT+  , vkGetValidationCacheDataEXT+  , vkMergeValidationCachesEXT+  , VkValidationCacheCreateInfoEXT(..)+  , VkShaderModuleValidationCacheCreateInfoEXT(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CSize(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkObjectType(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Extensions.VK_EXT_debug_report+  ( VkDebugReportObjectTypeEXT(..)+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT+  )+++-- ** VkValidationCacheHeaderVersionEXT++-- | VkValidationCacheHeaderVersionEXT - Encode validation cache version+--+-- = See Also+-- #_see_also#+--+-- UNKNOWN:vkCreateValdiationCacheEXT, 'vkGetValidationCacheDataEXT'+newtype VkValidationCacheHeaderVersionEXT = VkValidationCacheHeaderVersionEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkValidationCacheHeaderVersionEXT where+  showsPrec _ VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = showString "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"+  showsPrec p (VkValidationCacheHeaderVersionEXT x) = showParen (p >= 11) (showString "VkValidationCacheHeaderVersionEXT " . showsPrec 11 x)++instance Read VkValidationCacheHeaderVersionEXT where+  readPrec = parens ( choose [ ("VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT", pure VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkValidationCacheHeaderVersionEXT")+                        v <- step readPrec+                        pure (VkValidationCacheHeaderVersionEXT v)+                        )+                    )++-- | @VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT@ specifies version one of+-- the validation cache.+pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT :: VkValidationCacheHeaderVersionEXT+pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = VkValidationCacheHeaderVersionEXT 1+-- ** VkValidationCacheCreateFlagsEXT++-- | VkValidationCacheCreateFlagsEXT - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkValidationCacheCreateFlagsEXT@ is a bitmask type for setting a mask,+-- but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkValidationCacheCreateInfoEXT'+newtype VkValidationCacheCreateFlagsEXT = VkValidationCacheCreateFlagsEXT VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkValidationCacheCreateFlagsEXT where+  +  showsPrec p (VkValidationCacheCreateFlagsEXT x) = showParen (p >= 11) (showString "VkValidationCacheCreateFlagsEXT " . showsPrec 11 x)++instance Read VkValidationCacheCreateFlagsEXT where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkValidationCacheCreateFlagsEXT")+                        v <- step readPrec+                        pure (VkValidationCacheCreateFlagsEXT v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = VkStructureType 1000160000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = VkStructureType 1000160001+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT"+pattern VK_OBJECT_TYPE_VALIDATION_CACHE_EXT :: VkObjectType+pattern VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = VkObjectType 1000160000+-- No documentation found for TopLevel "VK_EXT_VALIDATION_CACHE_SPEC_VERSION"+pattern VK_EXT_VALIDATION_CACHE_SPEC_VERSION :: Integral a => a+pattern VK_EXT_VALIDATION_CACHE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_VALIDATION_CACHE_EXTENSION_NAME"+pattern VK_EXT_VALIDATION_CACHE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_VALIDATION_CACHE_EXTENSION_NAME = "VK_EXT_validation_cache"+-- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT+-- | Dummy data to tag the 'Ptr' with+data VkValidationCacheEXT_T+-- | VkValidationCacheEXT - Opaque handle to a validation cache object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkShaderModuleValidationCacheCreateInfoEXT',+-- 'vkCreateValidationCacheEXT', 'vkDestroyValidationCacheEXT',+-- 'vkGetValidationCacheDataEXT', 'vkMergeValidationCachesEXT'+type VkValidationCacheEXT = Ptr VkValidationCacheEXT_T+-- | vkCreateValidationCacheEXT - Creates a new validation cache+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the validation cache+--     object.+--+-- -   @pCreateInfo@ is a pointer to a @VkValidationCacheCreateInfoEXT@+--     structure that contains the initial parameters for the validation+--     cache object.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pValidationCache@ is a pointer to a @VkValidationCacheEXT@ handle+--     in which the resulting validation cache object is returned.+--+-- = Description+-- #_description#+--+-- __Note__+--+-- Applications /can/ track and manage the total host memory size of a+-- validation cache object using the @pAllocator@. Applications /can/ limit+-- the amount of data retrieved from a validation cache object in+-- @vkGetValidationCacheDataEXT@. Implementations /should/ not internally+-- limit the total number of entries added to a validation cache object or+-- the total host memory consumed.+--+-- Once created, a validation cache /can/ be passed to the+-- @vkCreateShaderModule@ command as part of the @VkShaderModuleCreateInfo@+-- @pNext@ chain. If a @VkShaderModuleValidationCacheCreateInfoEXT@ object+-- is part of the @VkShaderModuleCreateInfo@::@pNext@ chain, and its+-- @validationCache@ field is not+-- 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', the implementation+-- will query it for possible reuse opportunities and update it with new+-- content. The use of the validation cache object in these commands is+-- internally synchronized, and the same validation cache object /can/ be+-- used in multiple threads simultaneously.+--+-- __Note__+--+-- Implementations /should/ make every effort to limit any critical+-- sections to the actual accesses to the cache, which is expected to be+-- significantly shorter than the duration of the @vkCreateShaderModule@+-- command.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkValidationCacheCreateInfoEXT@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pValidationCache@ /must/ be a valid pointer to a+--     @VkValidationCacheEXT@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkValidationCacheCreateInfoEXT', 'VkValidationCacheEXT'+foreign import ccall "vkCreateValidationCacheEXT" vkCreateValidationCacheEXT :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkValidationCacheCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pValidationCache" ::: Ptr VkValidationCacheEXT) -> IO VkResult+-- | vkDestroyValidationCacheEXT - Destroy a validation cache object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the validation cache+--     object.+--+-- -   @validationCache@ is the handle of the validation cache to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @VkAllocationCallbacks@ were provided when @validationCache@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @validationCache@+--     was created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @validationCache@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @validationCache@+--     /must/ be a valid @VkValidationCacheEXT@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @validationCache@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @validationCache@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkValidationCacheEXT'+foreign import ccall "vkDestroyValidationCacheEXT" vkDestroyValidationCacheEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkGetValidationCacheDataEXT - Get the data store from a validation cache+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the validation cache.+--+-- -   @validationCache@ is the validation cache to retrieve data from.+--+-- -   @pDataSize@ is a pointer to a value related to the amount of data in+--     the validation cache, as described below.+--+-- -   @pData@ is either @NULL@ or a pointer to a buffer.+--+-- = Description+-- #_description#+--+-- If @pData@ is @NULL@, then the maximum size of the data that /can/ be+-- retrieved from the validation cache, in bytes, is returned in+-- @pDataSize@. Otherwise, @pDataSize@ /must/ point to a variable set by+-- the user to the size of the buffer, in bytes, pointed to by @pData@, and+-- on return the variable is overwritten with the amount of data actually+-- written to @pData@.+--+-- If @pDataSize@ is less than the maximum size that /can/ be retrieved by+-- the validation cache, at most @pDataSize@ bytes will be written to+-- @pData@, and @vkGetValidationCacheDataEXT@ will return @VK_INCOMPLETE@.+-- Any data written to @pData@ is valid and /can/ be provided as the+-- @pInitialData@ member of the @VkValidationCacheCreateInfoEXT@ structure+-- passed to @vkCreateValidationCacheEXT@.+--+-- Two calls to @vkGetValidationCacheDataEXT@ with the same parameters+-- /must/ retrieve the same data unless a command that modifies the+-- contents of the cache is called between them.+--+-- Applications /can/ store the data retrieved from the validation cache,+-- and use these data, possibly in a future run of the application, to+-- populate new validation cache objects. The results of validation,+-- however, /may/ depend on the vendor ID, device ID, driver version, and+-- other details of the device. To enable applications to detect when+-- previously retrieved data is incompatible with the device, the initial+-- bytes written to @pData@ /must/ be a header consisting of the following+-- members:+--+-- > +----+--------------+--------------------------------------------------++-- > | Of | Size         | Meaning                                          |+-- > | fs |              |                                                  |+-- > | et |              |                                                  |+-- > +====+==============+==================================================++-- > | 0  | 4            | length in bytes of the entire validation cache   |+-- > |    |              | header written as a stream of bytes, with the    |+-- > |    |              | least significant byte first                     |+-- > +----+--------------+--------------------------------------------------++-- > | 4  | 4            | a 'VkValidationCacheHeaderVersionEXT' value      |+-- > |    |              | written as a stream of bytes, with the least     |+-- > |    |              | significant byte first                           |+-- > +----+--------------+--------------------------------------------------++-- > | 8  | @VK_UUID_SIZ | a layer commit ID expressed as a UUID, which     |+-- > |    | E@           | uniquely identifies the version of the           |+-- > |    |              | validation layers used to generate these         |+-- > |    |              | validation results                               |+-- > +----+--------------+--------------------------------------------------++-- >+-- > Layout for validation cache header version+-- > @VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT@+--+-- The first four bytes encode the length of the entire validation cache+-- header, in bytes. This value includes all fields in the header including+-- the validation cache version field and the size of the length field.+--+-- The next four bytes encode the validation cache version, as described+-- for 'VkValidationCacheHeaderVersionEXT'. A consumer of the validation+-- cache /should/ use the cache version to interpret the remainder of the+-- cache header.+--+-- If @pDataSize@ is less than what is necessary to store this header,+-- nothing will be written to @pData@ and zero will be written to+-- @pDataSize@.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @validationCache@ /must/ be a valid @VkValidationCacheEXT@ handle+--+-- -   @pDataSize@ /must/ be a valid pointer to a @size_t@ value+--+-- -   If the value referenced by @pDataSize@ is not @0@, and @pData@ is+--     not @NULL@, @pData@ /must/ be a valid pointer to an array of+--     @pDataSize@ bytes+--+-- -   @validationCache@ /must/ have been created, allocated, or retrieved+--     from @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkValidationCacheEXT'+foreign import ccall "vkGetValidationCacheDataEXT" vkGetValidationCacheDataEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO VkResult+-- | vkMergeValidationCachesEXT - Combine the data stores of validation+-- caches+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the validation cache+--     objects.+--+-- -   @dstCache@ is the handle of the validation cache to merge results+--     into.+--+-- -   @srcCacheCount@ is the length of the @pSrcCaches@ array.+--+-- -   @pSrcCaches@ is an array of validation cache handles, which will be+--     merged into @dstCache@. The previous contents of @dstCache@ are+--     included after the merge.+--+-- = Description+-- #_description#+--+-- __Note__+--+-- The details of the merge operation are implementation dependent, but+-- implementations /should/ merge the contents of the specified validation+-- caches and prune duplicate entries.+--+-- == Valid Usage+--+-- -   @dstCache@ /must/ not appear in the list of source caches+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @dstCache@ /must/ be a valid @VkValidationCacheEXT@ handle+--+-- -   @pSrcCaches@ /must/ be a valid pointer to an array of+--     @srcCacheCount@ valid @VkValidationCacheEXT@ handles+--+-- -   @srcCacheCount@ /must/ be greater than @0@+--+-- -   @dstCache@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- -   Each element of @pSrcCaches@ /must/ have been created, allocated, or+--     retrieved from @device@+--+-- == Host Synchronization+--+-- -   Host access to @dstCache@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkValidationCacheEXT'+foreign import ccall "vkMergeValidationCachesEXT" vkMergeValidationCachesEXT :: ("device" ::: VkDevice) -> ("dstCache" ::: VkValidationCacheEXT) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr VkValidationCacheEXT) -> IO VkResult+-- | VkValidationCacheCreateInfoEXT - Structure specifying parameters of a+-- newly created validation cache+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @initialDataSize@ is not @0@, it /must/ be equal to the size of+--     @pInitialData@, as returned by @vkGetValidationCacheDataEXT@ when+--     @pInitialData@ was originally retrieved+--+-- -   If @initialDataSize@ is not @0@, @pInitialData@ /must/ have been+--     retrieved from a previous call to @vkGetValidationCacheDataEXT@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   If @initialDataSize@ is not @0@, @pInitialData@ /must/ be a valid+--     pointer to an array of @initialDataSize@ bytes+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkValidationCacheCreateFlagsEXT', 'vkCreateValidationCacheEXT'+data VkValidationCacheCreateInfoEXT = VkValidationCacheCreateInfoEXT+  { -- No documentation found for Nested "VkValidationCacheCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkValidationCacheCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkValidationCacheCreateInfoEXT" "vkFlags"+  vkFlags :: VkValidationCacheCreateFlagsEXT+  , -- No documentation found for Nested "VkValidationCacheCreateInfoEXT" "vkInitialDataSize"+  vkInitialDataSize :: CSize+  , -- No documentation found for Nested "VkValidationCacheCreateInfoEXT" "vkPInitialData"+  vkPInitialData :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkValidationCacheCreateInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkValidationCacheCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                            <*> peek (ptr `plusPtr` 8)+                                            <*> peek (ptr `plusPtr` 16)+                                            <*> peek (ptr `plusPtr` 24)+                                            <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkValidationCacheCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkValidationCacheCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkValidationCacheCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkInitialDataSize (poked :: VkValidationCacheCreateInfoEXT))+                *> poke (ptr `plusPtr` 32) (vkPInitialData (poked :: VkValidationCacheCreateInfoEXT))+-- | VkShaderModuleValidationCacheCreateInfoEXT - Specify validation cache to+-- use during shader module creation+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT@+--+-- -   @validationCache@ /must/ be a valid @VkValidationCacheEXT@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkValidationCacheEXT'+data VkShaderModuleValidationCacheCreateInfoEXT = VkShaderModuleValidationCacheCreateInfoEXT+  { -- No documentation found for Nested "VkShaderModuleValidationCacheCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkShaderModuleValidationCacheCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkShaderModuleValidationCacheCreateInfoEXT" "vkValidationCache"+  vkValidationCache :: VkValidationCacheEXT+  }+  deriving (Eq, Show)++instance Storable VkShaderModuleValidationCacheCreateInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkShaderModuleValidationCacheCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                        <*> peek (ptr `plusPtr` 8)+                                                        <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkShaderModuleValidationCacheCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkShaderModuleValidationCacheCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkValidationCache (poked :: VkShaderModuleValidationCacheCreateInfoEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_validation_flags.hs view
@@ -0,0 +1,144 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_validation_flags+  ( VkValidationCheckEXT(..)+  , pattern VK_VALIDATION_CHECK_ALL_EXT+  , pattern VK_VALIDATION_CHECK_SHADERS_EXT+  , pattern VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT+  , pattern VK_EXT_VALIDATION_FLAGS_SPEC_VERSION+  , pattern VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME+  , VkValidationFlagsEXT(..)+  ) where++import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+++-- ** VkValidationCheckEXT++-- | VkValidationCheckEXT - Specify validation checks to disable+--+-- = See Also+-- #_see_also#+--+-- 'VkValidationFlagsEXT'+newtype VkValidationCheckEXT = VkValidationCheckEXT Int32+  deriving (Eq, Ord, Storable)++instance Show VkValidationCheckEXT where+  showsPrec _ VK_VALIDATION_CHECK_ALL_EXT = showString "VK_VALIDATION_CHECK_ALL_EXT"+  showsPrec _ VK_VALIDATION_CHECK_SHADERS_EXT = showString "VK_VALIDATION_CHECK_SHADERS_EXT"+  showsPrec p (VkValidationCheckEXT x) = showParen (p >= 11) (showString "VkValidationCheckEXT " . showsPrec 11 x)++instance Read VkValidationCheckEXT where+  readPrec = parens ( choose [ ("VK_VALIDATION_CHECK_ALL_EXT",     pure VK_VALIDATION_CHECK_ALL_EXT)+                             , ("VK_VALIDATION_CHECK_SHADERS_EXT", pure VK_VALIDATION_CHECK_SHADERS_EXT)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkValidationCheckEXT")+                        v <- step readPrec+                        pure (VkValidationCheckEXT v)+                        )+                    )++-- | @VK_VALIDATION_CHECK_ALL_EXT@ specifies that all validation checks are+-- disabled.+pattern VK_VALIDATION_CHECK_ALL_EXT :: VkValidationCheckEXT+pattern VK_VALIDATION_CHECK_ALL_EXT = VkValidationCheckEXT 0++-- | @VK_VALIDATION_CHECK_SHADERS_EXT@ specifies that shader validation is+-- disabled.+pattern VK_VALIDATION_CHECK_SHADERS_EXT :: VkValidationCheckEXT+pattern VK_VALIDATION_CHECK_SHADERS_EXT = VkValidationCheckEXT 1+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"+pattern VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = VkStructureType 1000061000+-- No documentation found for TopLevel "VK_EXT_VALIDATION_FLAGS_SPEC_VERSION"+pattern VK_EXT_VALIDATION_FLAGS_SPEC_VERSION :: Integral a => a+pattern VK_EXT_VALIDATION_FLAGS_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME"+pattern VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME = "VK_EXT_validation_flags"+-- | VkValidationFlagsEXT - Specify validation checks to disable for a Vulkan+-- instance+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT@+--+-- -   @pDisabledValidationChecks@ /must/ be a valid pointer to an array of+--     @disabledValidationCheckCount@ 'VkValidationCheckEXT' values+--+-- -   @disabledValidationCheckCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkValidationCheckEXT'+data VkValidationFlagsEXT = VkValidationFlagsEXT+  { -- No documentation found for Nested "VkValidationFlagsEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkValidationFlagsEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkValidationFlagsEXT" "vkDisabledValidationCheckCount"+  vkDisabledValidationCheckCount :: Word32+  , -- No documentation found for Nested "VkValidationFlagsEXT" "vkPDisabledValidationChecks"+  vkPDisabledValidationChecks :: Ptr VkValidationCheckEXT+  }+  deriving (Eq, Show)++instance Storable VkValidationFlagsEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkValidationFlagsEXT <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkValidationFlagsEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkValidationFlagsEXT))+                *> poke (ptr `plusPtr` 16) (vkDisabledValidationCheckCount (poked :: VkValidationFlagsEXT))+                *> poke (ptr `plusPtr` 24) (vkPDisabledValidationChecks (poked :: VkValidationFlagsEXT))
+ src/Graphics/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs view
@@ -0,0 +1,180 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT+  , pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT+  , pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION+  , pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME+  , VkVertexInputBindingDivisorDescriptionEXT(..)+  , VkPipelineVertexInputDivisorStateCreateInfoEXT(..)+  , VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = VkStructureType 1000190000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"+pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VkStructureType 1000190001+-- No documentation found for TopLevel "VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"+pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION :: Integral a => a+pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME"+pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME = "VK_EXT_vertex_attribute_divisor"+-- | VkVertexInputBindingDivisorDescriptionEXT - Structure specifying a+-- divisor used in instanced rendering+--+-- = Description+-- #_description#+--+-- If this structure is not used to define a divisor value for an attribute+-- then the divisor has a logical default value of 1.+--+-- == Valid Usage+--+-- -   @binding@ /must/ be less than+--     @VkPhysicalDeviceLimits@::@maxVertexInputBindings@+--+-- -   @divisor@ /must/ be a value between @0@ and+--     @VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT@::@maxVertexAttribDivisor@,+--     inclusive.+--+-- -   'Graphics.Vulkan.Core10.Pipeline.VkVertexInputBindingDescription'::@inputRate@+--     /must/ be of type @VK_VERTEX_INPUT_RATE_INSTANCE@ for this+--     @binding@.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineVertexInputDivisorStateCreateInfoEXT'+data VkVertexInputBindingDivisorDescriptionEXT = VkVertexInputBindingDivisorDescriptionEXT+  { -- No documentation found for Nested "VkVertexInputBindingDivisorDescriptionEXT" "vkBinding"+  vkBinding :: Word32+  , -- No documentation found for Nested "VkVertexInputBindingDivisorDescriptionEXT" "vkDivisor"+  vkDivisor :: Word32+  }+  deriving (Eq, Show)++instance Storable VkVertexInputBindingDivisorDescriptionEXT where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkVertexInputBindingDivisorDescriptionEXT <$> peek (ptr `plusPtr` 0)+                                                       <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkBinding (poked :: VkVertexInputBindingDivisorDescriptionEXT))+                *> poke (ptr `plusPtr` 4) (vkDivisor (poked :: VkVertexInputBindingDivisorDescriptionEXT))+-- | VkPipelineVertexInputDivisorStateCreateInfoEXT - Structure specifying+-- vertex attributes assignment during instanced rendering+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT@+--+-- -   @pVertexBindingDivisors@ /must/ be a valid pointer to an array of+--     @vertexBindingDivisorCount@+--     @VkVertexInputBindingDivisorDescriptionEXT@ structures+--+-- -   @vertexBindingDivisorCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkVertexInputBindingDivisorDescriptionEXT'+data VkPipelineVertexInputDivisorStateCreateInfoEXT = VkPipelineVertexInputDivisorStateCreateInfoEXT+  { -- No documentation found for Nested "VkPipelineVertexInputDivisorStateCreateInfoEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineVertexInputDivisorStateCreateInfoEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineVertexInputDivisorStateCreateInfoEXT" "vkVertexBindingDivisorCount"+  vkVertexBindingDivisorCount :: Word32+  , -- No documentation found for Nested "VkPipelineVertexInputDivisorStateCreateInfoEXT" "vkPVertexBindingDivisors"+  vkPVertexBindingDivisors :: Ptr VkVertexInputBindingDivisorDescriptionEXT+  }+  deriving (Eq, Show)++instance Storable VkPipelineVertexInputDivisorStateCreateInfoEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPipelineVertexInputDivisorStateCreateInfoEXT <$> peek (ptr `plusPtr` 0)+                                                            <*> peek (ptr `plusPtr` 8)+                                                            <*> peek (ptr `plusPtr` 16)+                                                            <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineVertexInputDivisorStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineVertexInputDivisorStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 16) (vkVertexBindingDivisorCount (poked :: VkPipelineVertexInputDivisorStateCreateInfoEXT))+                *> poke (ptr `plusPtr` 24) (vkPVertexBindingDivisors (poked :: VkPipelineVertexInputDivisorStateCreateInfoEXT))+-- | VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - Structure+-- describing max value of vertex attribute divisor that can be supported+-- by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT@+-- structure describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @maxVertexAttribDivisor@ is the maximum value of the number of+--     instances that will repeat the value of vertex attribute data when+--     instanced rendering is enabled.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT+  { -- No documentation found for Nested "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT" "vkMaxVertexAttribDivisor"+  vkMaxVertexAttribDivisor :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT <$> peek (ptr `plusPtr` 0)+                                                                 <*> peek (ptr `plusPtr` 8)+                                                                 <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT))+                *> poke (ptr `plusPtr` 16) (vkMaxVertexAttribDivisor (poked :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT))
+ src/Graphics/Vulkan/Extensions/VK_GOOGLE_display_timing.hs view
@@ -0,0 +1,338 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing+  ( pattern VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE+  , pattern VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION+  , pattern VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME+  , vkGetRefreshCycleDurationGOOGLE+  , vkGetPastPresentationTimingGOOGLE+  , VkRefreshCycleDurationGOOGLE(..)+  , VkPastPresentationTimingGOOGLE(..)+  , VkPresentTimesInfoGOOGLE(..)+  , VkPresentTimeGOOGLE(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word64+  , Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Extensions.VK_KHR_swapchain+  ( VkSwapchainKHR+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"+pattern VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE :: VkStructureType+pattern VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = VkStructureType 1000092000+-- No documentation found for TopLevel "VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION"+pattern VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION :: Integral a => a+pattern VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME"+pattern VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME = "VK_GOOGLE_display_timing"+-- | vkGetRefreshCycleDurationGOOGLE - Obtain the RC duration of the PE’s+-- display+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device associated with @swapchain@.+--+-- -   @swapchain@ is the swapchain to obtain the refresh duration for.+--+-- -   @pDisplayTimingProperties@ is a pointer to an instance of the+--     @VkRefreshCycleDurationGOOGLE@ structure.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @swapchain@ /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   @pDisplayTimingProperties@ /must/ be a valid pointer to a+--     @VkRefreshCycleDurationGOOGLE@ structure+--+-- -   Both of @device@, and @swapchain@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkRefreshCycleDurationGOOGLE',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainKHR'+foreign import ccall "vkGetRefreshCycleDurationGOOGLE" vkGetRefreshCycleDurationGOOGLE :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pDisplayTimingProperties" ::: Ptr VkRefreshCycleDurationGOOGLE) -> IO VkResult+-- | vkGetPastPresentationTimingGOOGLE - Obtain timing of a+-- previously-presented image+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device associated with @swapchain@.+--+-- -   @swapchain@ is the swapchain to obtain presentation timing+--     information duration for.+--+-- -   @pPresentationTimingCount@ is a pointer to an integer related to the+--     number of @VkPastPresentationTimingGOOGLE@ structures to query, as+--     described below.+--+-- -   @pPresentationTimings@ is either @NULL@ or a pointer to an an array+--     of @VkPastPresentationTimingGOOGLE@ structures.+--+-- = Description+-- #_description#+--+-- If @pPresentationTimings@ is @NULL@, then the number of newly-available+-- timing records for the given @swapchain@ is returned in+-- @pPresentationTimingCount@. Otherwise, @pPresentationTimingCount@ /must/+-- point to a variable set by the user to the number of elements in the+-- @pPresentationTimings@ array, and on return the variable is overwritten+-- with the number of structures actually written to+-- @pPresentationTimings@. If the value of @pPresentationTimingCount@ is+-- less than the number of newly-available timing records, at most+-- @pPresentationTimingCount@ structures will be written. If+-- @pPresentationTimingCount@ is smaller than the number of newly-available+-- timing records for the given @swapchain@, @VK_INCOMPLETE@ will be+-- returned instead of @VK_SUCCESS@ to indicate that not all the available+-- values were returned.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @swapchain@ /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   @pPresentationTimingCount@ /must/ be a valid pointer to a @uint32_t@+--     value+--+-- -   If the value referenced by @pPresentationTimingCount@ is not @0@,+--     and @pPresentationTimings@ is not @NULL@, @pPresentationTimings@+--     /must/ be a valid pointer to an array of @pPresentationTimingCount@+--     @VkPastPresentationTimingGOOGLE@ structures+--+-- -   Both of @device@, and @swapchain@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_OUT_OF_DATE_KHR@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkPastPresentationTimingGOOGLE',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainKHR'+foreign import ccall "vkGetPastPresentationTimingGOOGLE" vkGetPastPresentationTimingGOOGLE :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pPresentationTimingCount" ::: Ptr Word32) -> ("pPresentationTimings" ::: Ptr VkPastPresentationTimingGOOGLE) -> IO VkResult+-- | VkRefreshCycleDurationGOOGLE - Structure containing the RC duration of a+-- display+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'vkGetRefreshCycleDurationGOOGLE'+data VkRefreshCycleDurationGOOGLE = VkRefreshCycleDurationGOOGLE+  { -- No documentation found for Nested "VkRefreshCycleDurationGOOGLE" "vkRefreshDuration"+  vkRefreshDuration :: Word64+  }+  deriving (Eq, Show)++instance Storable VkRefreshCycleDurationGOOGLE where+  sizeOf ~_ = 8+  alignment ~_ = 8+  peek ptr = VkRefreshCycleDurationGOOGLE <$> peek (ptr `plusPtr` 0)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkRefreshDuration (poked :: VkRefreshCycleDurationGOOGLE))+-- | VkPastPresentationTimingGOOGLE - Structure containing timing information+-- about a previously-presented image+--+-- = Description+-- #_description#+--+-- The results for a given @swapchain@ and @presentID@ are only returned+-- once from @vkGetPastPresentationTimingGOOGLE@.+--+-- The application /can/ use the @VkPastPresentationTimingGOOGLE@ values to+-- occasionally adjust its timing. For example, if @actualPresentTime@ is+-- later than expected (e.g. one @refreshDuration@ late), the application+-- may increase its target IPD to a higher multiple of @refreshDuration@+-- (e.g. decrease its frame rate from 60Hz to 30Hz). If @actualPresentTime@+-- and @earliestPresentTime@ are consistently different, and if+-- @presentMargin@ is consistently large enough, the application may+-- decrease its target IPD to a smaller multiple of @refreshDuration@ (e.g.+-- increase its frame rate from 30Hz to 60Hz). If @actualPresentTime@ and+-- @earliestPresentTime@ are same, and if @presentMargin@ is consistently+-- high, the application may delay the start of its input-render-present+-- loop in order to decrease the latency between user input and the+-- corresponding present (always leaving some margin in case a new image+-- takes longer to render than the previous image). An application that+-- desires its target IPD to always be the same as @refreshDuration@, can+-- also adjust features until @actualPresentTime@ is never late and+-- @presentMargin@ is satisfactory.+--+-- = See Also+-- #_see_also#+--+-- 'vkGetPastPresentationTimingGOOGLE'+data VkPastPresentationTimingGOOGLE = VkPastPresentationTimingGOOGLE+  { -- No documentation found for Nested "VkPastPresentationTimingGOOGLE" "vkPresentID"+  vkPresentID :: Word32+  , -- No documentation found for Nested "VkPastPresentationTimingGOOGLE" "vkDesiredPresentTime"+  vkDesiredPresentTime :: Word64+  , -- No documentation found for Nested "VkPastPresentationTimingGOOGLE" "vkActualPresentTime"+  vkActualPresentTime :: Word64+  , -- No documentation found for Nested "VkPastPresentationTimingGOOGLE" "vkEarliestPresentTime"+  vkEarliestPresentTime :: Word64+  , -- No documentation found for Nested "VkPastPresentationTimingGOOGLE" "vkPresentMargin"+  vkPresentMargin :: Word64+  }+  deriving (Eq, Show)++instance Storable VkPastPresentationTimingGOOGLE where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkPastPresentationTimingGOOGLE <$> peek (ptr `plusPtr` 0)+                                            <*> peek (ptr `plusPtr` 8)+                                            <*> peek (ptr `plusPtr` 16)+                                            <*> peek (ptr `plusPtr` 24)+                                            <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkPresentID (poked :: VkPastPresentationTimingGOOGLE))+                *> poke (ptr `plusPtr` 8) (vkDesiredPresentTime (poked :: VkPastPresentationTimingGOOGLE))+                *> poke (ptr `plusPtr` 16) (vkActualPresentTime (poked :: VkPastPresentationTimingGOOGLE))+                *> poke (ptr `plusPtr` 24) (vkEarliestPresentTime (poked :: VkPastPresentationTimingGOOGLE))+                *> poke (ptr `plusPtr` 32) (vkPresentMargin (poked :: VkPastPresentationTimingGOOGLE))+-- | VkPresentTimesInfoGOOGLE - The earliest time each image should be+-- presented+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @swapchainCount@ /must/ be the same value as+--     @VkPresentInfoKHR@::@swapchainCount@, where @VkPresentInfoKHR@ is in+--     the @pNext@ chain of this @VkPresentTimesInfoGOOGLE@ structure.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE@+--+-- -   If @pTimes@ is not @NULL@, @pTimes@ /must/ be a valid pointer to an+--     array of @swapchainCount@ @VkPresentTimeGOOGLE@ structures+--+-- -   @swapchainCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkPresentTimeGOOGLE', 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPresentTimesInfoGOOGLE = VkPresentTimesInfoGOOGLE+  { -- No documentation found for Nested "VkPresentTimesInfoGOOGLE" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPresentTimesInfoGOOGLE" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPresentTimesInfoGOOGLE" "vkSwapchainCount"+  vkSwapchainCount :: Word32+  , -- No documentation found for Nested "VkPresentTimesInfoGOOGLE" "vkPTimes"+  vkPTimes :: Ptr VkPresentTimeGOOGLE+  }+  deriving (Eq, Show)++instance Storable VkPresentTimesInfoGOOGLE where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPresentTimesInfoGOOGLE <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+                                      <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPresentTimesInfoGOOGLE))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPresentTimesInfoGOOGLE))+                *> poke (ptr `plusPtr` 16) (vkSwapchainCount (poked :: VkPresentTimesInfoGOOGLE))+                *> poke (ptr `plusPtr` 24) (vkPTimes (poked :: VkPresentTimesInfoGOOGLE))+-- | VkPresentTimeGOOGLE - The earliest time image should be presented+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkPresentTimesInfoGOOGLE'+data VkPresentTimeGOOGLE = VkPresentTimeGOOGLE+  { -- No documentation found for Nested "VkPresentTimeGOOGLE" "vkPresentID"+  vkPresentID :: Word32+  , -- No documentation found for Nested "VkPresentTimeGOOGLE" "vkDesiredPresentTime"+  vkDesiredPresentTime :: Word64+  }+  deriving (Eq, Show)++instance Storable VkPresentTimeGOOGLE where+  sizeOf ~_ = 16+  alignment ~_ = 8+  peek ptr = VkPresentTimeGOOGLE <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkPresentID (poked :: VkPresentTimeGOOGLE))+                *> poke (ptr `plusPtr` 8) (vkDesiredPresentTime (poked :: VkPresentTimeGOOGLE))
+ src/Graphics/Vulkan/Extensions/VK_IMG_filter_cubic.hs view
@@ -0,0 +1,37 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_IMG_filter_cubic+  ( pattern VK_FILTER_CUBIC_IMG+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG+  , pattern VK_IMG_FILTER_CUBIC_SPEC_VERSION+  , pattern VK_IMG_FILTER_CUBIC_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+++import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkFormatFeatureFlagBits(..)+  )+import Graphics.Vulkan.Core10.Sampler+  ( VkFilter(..)+  )+++-- No documentation found for Nested "VkFilter" "VK_FILTER_CUBIC_IMG"+pattern VK_FILTER_CUBIC_IMG :: VkFilter+pattern VK_FILTER_CUBIC_IMG = VkFilter 1000015000+-- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VkFormatFeatureFlagBits 0x00002000+-- No documentation found for TopLevel "VK_IMG_FILTER_CUBIC_SPEC_VERSION"+pattern VK_IMG_FILTER_CUBIC_SPEC_VERSION :: Integral a => a+pattern VK_IMG_FILTER_CUBIC_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_IMG_FILTER_CUBIC_EXTENSION_NAME"+pattern VK_IMG_FILTER_CUBIC_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_IMG_FILTER_CUBIC_EXTENSION_NAME = "VK_IMG_filter_cubic"
+ src/Graphics/Vulkan/Extensions/VK_IMG_format_pvrtc.hs view
@@ -0,0 +1,58 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_IMG_format_pvrtc+  ( pattern VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG+  , pattern VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG+  , pattern VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG+  , pattern VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG+  , pattern VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG+  , pattern VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG+  , pattern VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG+  , pattern VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG+  , pattern VK_IMG_FORMAT_PVRTC_SPEC_VERSION+  , pattern VK_IMG_FORMAT_PVRTC_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+++import Graphics.Vulkan.Core10.Core+  ( VkFormat(..)+  )+++-- No documentation found for Nested "VkFormat" "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG"+pattern VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG :: VkFormat+pattern VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = VkFormat 1000054000+-- No documentation found for Nested "VkFormat" "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG"+pattern VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG :: VkFormat+pattern VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = VkFormat 1000054001+-- No documentation found for Nested "VkFormat" "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG"+pattern VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG :: VkFormat+pattern VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = VkFormat 1000054002+-- No documentation found for Nested "VkFormat" "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG"+pattern VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG :: VkFormat+pattern VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = VkFormat 1000054003+-- No documentation found for Nested "VkFormat" "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG"+pattern VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG :: VkFormat+pattern VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = VkFormat 1000054004+-- No documentation found for Nested "VkFormat" "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG"+pattern VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG :: VkFormat+pattern VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = VkFormat 1000054005+-- No documentation found for Nested "VkFormat" "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG"+pattern VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG :: VkFormat+pattern VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = VkFormat 1000054006+-- No documentation found for Nested "VkFormat" "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG"+pattern VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG :: VkFormat+pattern VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = VkFormat 1000054007+-- No documentation found for TopLevel "VK_IMG_FORMAT_PVRTC_SPEC_VERSION"+pattern VK_IMG_FORMAT_PVRTC_SPEC_VERSION :: Integral a => a+pattern VK_IMG_FORMAT_PVRTC_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_IMG_FORMAT_PVRTC_EXTENSION_NAME"+pattern VK_IMG_FORMAT_PVRTC_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_IMG_FORMAT_PVRTC_EXTENSION_NAME = "VK_IMG_format_pvrtc"
+ src/Graphics/Vulkan/Extensions/VK_KHR_16bit_storage.hs view
@@ -0,0 +1,52 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_16bit_storage+  ( pattern VK_KHR_16BIT_STORAGE_SPEC_VERSION+  , pattern VK_KHR_16BIT_STORAGE_EXTENSION_NAME+  , VkPhysicalDevice16BitStorageFeaturesKHR+  , pattern VkPhysicalDevice16BitStorageFeaturesKHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES+  , VkPhysicalDevice16BitStorageFeatures(..)+  )+++-- No documentation found for TopLevel "VK_KHR_16BIT_STORAGE_SPEC_VERSION"+pattern VK_KHR_16BIT_STORAGE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_16BIT_STORAGE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_16BIT_STORAGE_EXTENSION_NAME"+pattern VK_KHR_16BIT_STORAGE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_16BIT_STORAGE_EXTENSION_NAME = "VK_KHR_16bit_storage"+-- No documentation found for TopLevel "VkPhysicalDevice16BitStorageFeaturesKHR"+type VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures+++-- No documentation found for TopLevel "VkPhysicalDevice16BitStorageFeaturesKHR"+pattern VkPhysicalDevice16BitStorageFeaturesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("storageBuffer16BitAccess" ::: VkBool32) -> ("uniformAndStorageBuffer16BitAccess" ::: VkBool32) -> ("storagePushConstant16" ::: VkBool32) -> ("storageInputOutput16" ::: VkBool32) -> VkPhysicalDevice16BitStorageFeaturesKHR+pattern VkPhysicalDevice16BitStorageFeaturesKHR vkSType vkPNext vkStorageBuffer16BitAccess vkUniformAndStorageBuffer16BitAccess vkStoragePushConstant16 vkStorageInputOutput16 = VkPhysicalDevice16BitStorageFeatures vkSType vkPNext vkStorageBuffer16BitAccess vkUniformAndStorageBuffer16BitAccess vkStoragePushConstant16 vkStorageInputOutput16+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
+ src/Graphics/Vulkan/Extensions/VK_KHR_android_surface.hs view
@@ -0,0 +1,226 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_android_surface+  ( ANativeWindow+  , VkAndroidSurfaceCreateFlagsKHR(..)+  , pattern VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR+  , pattern VK_KHR_ANDROID_SURFACE_SPEC_VERSION+  , pattern VK_KHR_ANDROID_SURFACE_EXTENSION_NAME+  , vkCreateAndroidSurfaceKHR+  , VkAndroidSurfaceCreateInfoKHR(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- | Opaque data+data ANativeWindow+-- ** VkAndroidSurfaceCreateFlagsKHR++-- No documentation found for TopLevel "VkAndroidSurfaceCreateFlagsKHR"+newtype VkAndroidSurfaceCreateFlagsKHR = VkAndroidSurfaceCreateFlagsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkAndroidSurfaceCreateFlagsKHR where+  +  showsPrec p (VkAndroidSurfaceCreateFlagsKHR x) = showParen (p >= 11) (showString "VkAndroidSurfaceCreateFlagsKHR " . showsPrec 11 x)++instance Read VkAndroidSurfaceCreateFlagsKHR where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkAndroidSurfaceCreateFlagsKHR")+                        v <- step readPrec+                        pure (VkAndroidSurfaceCreateFlagsKHR v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = VkStructureType 1000008000+-- No documentation found for TopLevel "VK_KHR_ANDROID_SURFACE_SPEC_VERSION"+pattern VK_KHR_ANDROID_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_ANDROID_SURFACE_SPEC_VERSION = 6+-- No documentation found for TopLevel "VK_KHR_ANDROID_SURFACE_EXTENSION_NAME"+pattern VK_KHR_ANDROID_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_ANDROID_SURFACE_EXTENSION_NAME = "VK_KHR_android_surface"+-- | vkCreateAndroidSurfaceKHR - Create a+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR' object for an+-- Android native window+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance to associate the surface with.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkAndroidSurfaceCreateInfoKHR@ structure containing parameters+--     affecting the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- During the lifetime of a surface created using a particular+-- @ANativeWindow@ handle any attempts to create another surface for the+-- same @ANativeWindow@ and any attempts to connect to the same+-- @ANativeWindow@ through other platform mechanisms will fail.+--+-- __Note__+--+-- In particular, only one @VkSurfaceKHR@ /can/ exist at a time for a given+-- window. Similarly, a native window /cannot/ be used by both a+-- @VkSurfaceKHR@ and @EGLSurface@ simultaneously.+--+-- If successful, @vkCreateAndroidSurfaceKHR@ increments the+-- @ANativeWindow@’s reference count, and @vkDestroySurfaceKHR@ will+-- decrement it.+--+-- On Android, when a swapchain’s @imageExtent@ does not match the+-- surface’s @currentExtent@, the presentable images will be scaled to the+-- surface’s dimensions during presentation. @minImageExtent@ is (1,1), and+-- @maxImageExtent@ is the maximum image size supported by the consumer.+-- For the system compositor, @currentExtent@ is the window size (i.e. the+-- consumer’s preferred size).+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkAndroidSurfaceCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_NATIVE_WINDOW_IN_USE_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkAndroidSurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR'+foreign import ccall "vkCreateAndroidSurfaceKHR" vkCreateAndroidSurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkAndroidSurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | VkAndroidSurfaceCreateInfoKHR - Structure specifying parameters of a+-- newly created Android surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @window@ /must/ point to a valid Android @ANativeWindow@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkAndroidSurfaceCreateFlagsKHR',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateAndroidSurfaceKHR'+data VkAndroidSurfaceCreateInfoKHR = VkAndroidSurfaceCreateInfoKHR+  { -- No documentation found for Nested "VkAndroidSurfaceCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkAndroidSurfaceCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkAndroidSurfaceCreateInfoKHR" "vkFlags"+  vkFlags :: VkAndroidSurfaceCreateFlagsKHR+  , -- No documentation found for Nested "VkAndroidSurfaceCreateInfoKHR" "vkWindow"+  vkWindow :: Ptr ANativeWindow+  }+  deriving (Eq, Show)++instance Storable VkAndroidSurfaceCreateInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkAndroidSurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkAndroidSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkAndroidSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkAndroidSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkWindow (poked :: VkAndroidSurfaceCreateInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_bind_memory2.hs view
@@ -0,0 +1,97 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_bind_memory2+  ( pattern VK_KHR_BIND_MEMORY_2_SPEC_VERSION+  , pattern VK_KHR_BIND_MEMORY_2_EXTENSION_NAME+  , vkBindBufferMemory2KHR+  , vkBindImageMemory2KHR+  , VkBindBufferMemoryInfoKHR+  , pattern VkBindBufferMemoryInfoKHR+  , VkBindImageMemoryInfoKHR+  , pattern VkBindImageMemoryInfoKHR+  , pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR+  , pattern VK_IMAGE_CREATE_ALIAS_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageCreateFlagBits(..)+  , VkDeviceSize+  , VkDevice+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkImage+  , VkBuffer+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2+  ( pattern VK_IMAGE_CREATE_ALIAS_BIT+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO+  , pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO+  , VkBindImageMemoryInfo(..)+  , vkBindImageMemory2+  , VkBindBufferMemoryInfo(..)+  , vkBindBufferMemory2+  )+++-- No documentation found for TopLevel "VK_KHR_BIND_MEMORY_2_SPEC_VERSION"+pattern VK_KHR_BIND_MEMORY_2_SPEC_VERSION :: Integral a => a+pattern VK_KHR_BIND_MEMORY_2_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_BIND_MEMORY_2_EXTENSION_NAME"+pattern VK_KHR_BIND_MEMORY_2_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_BIND_MEMORY_2_EXTENSION_NAME = "VK_KHR_bind_memory2"+-- No documentation found for TopLevel "vkBindBufferMemory2KHR"+vkBindBufferMemory2KHR :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindBufferMemoryInfo) -> IO VkResult+vkBindBufferMemory2KHR = vkBindBufferMemory2+-- No documentation found for TopLevel "vkBindImageMemory2KHR"+vkBindImageMemory2KHR :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindImageMemoryInfo) -> IO VkResult+vkBindImageMemory2KHR = vkBindImageMemory2+-- No documentation found for TopLevel "VkBindBufferMemoryInfoKHR"+type VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo+++-- No documentation found for TopLevel "VkBindBufferMemoryInfoKHR"+pattern VkBindBufferMemoryInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("buffer" ::: VkBuffer) -> ("memory" ::: VkDeviceMemory) -> ("memoryOffset" ::: VkDeviceSize) -> VkBindBufferMemoryInfoKHR+pattern VkBindBufferMemoryInfoKHR vkSType vkPNext vkBuffer vkMemory vkMemoryOffset = VkBindBufferMemoryInfo vkSType vkPNext vkBuffer vkMemory vkMemoryOffset+-- No documentation found for TopLevel "VkBindImageMemoryInfoKHR"+type VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo+++-- No documentation found for TopLevel "VkBindImageMemoryInfoKHR"+pattern VkBindImageMemoryInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("image" ::: VkImage) -> ("memory" ::: VkDeviceMemory) -> ("memoryOffset" ::: VkDeviceSize) -> VkBindImageMemoryInfoKHR+pattern VkBindImageMemoryInfoKHR vkSType vkPNext vkImage vkMemory vkMemoryOffset = VkBindImageMemoryInfo vkSType vkPNext vkImage vkMemory vkMemoryOffset+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR"+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR"+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO+-- No documentation found for TopLevel "VK_IMAGE_CREATE_ALIAS_BIT_KHR"+pattern VK_IMAGE_CREATE_ALIAS_BIT_KHR :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs view
@@ -0,0 +1,71 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_dedicated_allocation+  ( pattern VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION+  , pattern VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME+  , VkMemoryDedicatedRequirementsKHR+  , pattern VkMemoryDedicatedRequirementsKHR+  , VkMemoryDedicatedAllocateInfoKHR+  , pattern VkMemoryDedicatedAllocateInfoKHR+  , pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR+  , pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  , VkImage+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation+  ( pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO+  , pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS+  , VkMemoryDedicatedAllocateInfo(..)+  , VkMemoryDedicatedRequirements(..)+  )+++-- No documentation found for TopLevel "VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION"+pattern VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION :: Integral a => a+pattern VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION = 3+-- No documentation found for TopLevel "VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME"+pattern VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME = "VK_KHR_dedicated_allocation"+-- No documentation found for TopLevel "VkMemoryDedicatedRequirementsKHR"+type VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements+++-- No documentation found for TopLevel "VkMemoryDedicatedRequirementsKHR"+pattern VkMemoryDedicatedRequirementsKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("prefersDedicatedAllocation" ::: VkBool32) -> ("requiresDedicatedAllocation" ::: VkBool32) -> VkMemoryDedicatedRequirementsKHR+pattern VkMemoryDedicatedRequirementsKHR vkSType vkPNext vkPrefersDedicatedAllocation vkRequiresDedicatedAllocation = VkMemoryDedicatedRequirements vkSType vkPNext vkPrefersDedicatedAllocation vkRequiresDedicatedAllocation+-- No documentation found for TopLevel "VkMemoryDedicatedAllocateInfoKHR"+type VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo+++-- No documentation found for TopLevel "VkMemoryDedicatedAllocateInfoKHR"+pattern VkMemoryDedicatedAllocateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("image" ::: VkImage) -> ("buffer" ::: VkBuffer) -> VkMemoryDedicatedAllocateInfoKHR+pattern VkMemoryDedicatedAllocateInfoKHR vkSType vkPNext vkImage vkBuffer = VkMemoryDedicatedAllocateInfo vkSType vkPNext vkImage vkBuffer+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR"+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
+ src/Graphics/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs view
@@ -0,0 +1,131 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template+  ( pattern VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION+  , pattern VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME+  , vkCreateDescriptorUpdateTemplateKHR+  , vkDestroyDescriptorUpdateTemplateKHR+  , vkUpdateDescriptorSetWithTemplateKHR+  , VkDescriptorUpdateTemplateTypeKHR+  , VkDescriptorUpdateTemplateCreateFlagsKHR+  , VkDescriptorUpdateTemplateKHR+  , VkDescriptorUpdateTemplateEntryKHR+  , pattern VkDescriptorUpdateTemplateEntryKHR+  , VkDescriptorUpdateTemplateCreateInfoKHR+  , pattern VkDescriptorUpdateTemplateCreateInfoKHR+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR+  , pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR+  , pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CSize(..)+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkObjectType(..)+  , VkStructureType(..)+  , VkResult(..)+  )+import Graphics.Vulkan.Core10.DescriptorSet+  ( VkDescriptorType(..)+  , VkDescriptorSet+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Pass+  ( VkPipelineBindPoint(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkPipelineLayout+  )+import Graphics.Vulkan.Core10.PipelineLayout+  ( VkDescriptorSetLayout+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template+  ( pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET+  , pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO+  , VkDescriptorUpdateTemplateEntry(..)+  , VkDescriptorUpdateTemplateCreateFlags(..)+  , VkDescriptorUpdateTemplateType(..)+  , vkUpdateDescriptorSetWithTemplate+  , vkDestroyDescriptorUpdateTemplate+  , VkDescriptorUpdateTemplate+  , VkDescriptorUpdateTemplateCreateInfo(..)+  , vkCreateDescriptorUpdateTemplate+  )+import Graphics.Vulkan.Extensions.VK_EXT_debug_report+  ( VkDebugReportObjectTypeEXT(..)+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT+  )+++-- No documentation found for TopLevel "VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION"+pattern VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME"+pattern VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME = "VK_KHR_descriptor_update_template"+-- No documentation found for TopLevel "vkCreateDescriptorUpdateTemplateKHR"+vkCreateDescriptorUpdateTemplateKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorUpdateTemplateCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorUpdateTemplate" ::: Ptr VkDescriptorUpdateTemplate) -> IO VkResult+vkCreateDescriptorUpdateTemplateKHR = vkCreateDescriptorUpdateTemplate+-- No documentation found for TopLevel "vkDestroyDescriptorUpdateTemplateKHR"+vkDestroyDescriptorUpdateTemplateKHR :: ("device" ::: VkDevice) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+vkDestroyDescriptorUpdateTemplateKHR = vkDestroyDescriptorUpdateTemplate+-- No documentation found for TopLevel "vkUpdateDescriptorSetWithTemplateKHR"+vkUpdateDescriptorSetWithTemplateKHR :: ("device" ::: VkDevice) -> ("descriptorSet" ::: VkDescriptorSet) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pData" ::: Ptr ()) -> IO ()+vkUpdateDescriptorSetWithTemplateKHR = vkUpdateDescriptorSetWithTemplate+-- No documentation found for TopLevel "VkDescriptorUpdateTemplateTypeKHR"+type VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType+-- No documentation found for TopLevel "VkDescriptorUpdateTemplateCreateFlagsKHR"+type VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags+-- No documentation found for TopLevel "VkDescriptorUpdateTemplateKHR"+type VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate+-- No documentation found for TopLevel "VkDescriptorUpdateTemplateEntryKHR"+type VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry+++-- No documentation found for TopLevel "VkDescriptorUpdateTemplateEntryKHR"+pattern VkDescriptorUpdateTemplateEntryKHR :: ("dstBinding" ::: Word32) -> ("dstArrayElement" ::: Word32) -> ("descriptorCount" ::: Word32) -> ("descriptorType" ::: VkDescriptorType) -> ("offset" ::: CSize) -> ("stride" ::: CSize) -> VkDescriptorUpdateTemplateEntryKHR+pattern VkDescriptorUpdateTemplateEntryKHR vkDstBinding vkDstArrayElement vkDescriptorCount vkDescriptorType vkOffset vkStride = VkDescriptorUpdateTemplateEntry vkDstBinding vkDstArrayElement vkDescriptorCount vkDescriptorType vkOffset vkStride+-- No documentation found for TopLevel "VkDescriptorUpdateTemplateCreateInfoKHR"+type VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo+++-- No documentation found for TopLevel "VkDescriptorUpdateTemplateCreateInfoKHR"+pattern VkDescriptorUpdateTemplateCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("flags" ::: VkDescriptorUpdateTemplateCreateFlags) -> ("descriptorUpdateEntryCount" ::: Word32) -> ("pDescriptorUpdateEntries" ::: Ptr VkDescriptorUpdateTemplateEntry) -> ("templateType" ::: VkDescriptorUpdateTemplateType) -> ("descriptorSetLayout" ::: VkDescriptorSetLayout) -> ("pipelineBindPoint" ::: VkPipelineBindPoint) -> ("pipelineLayout" ::: VkPipelineLayout) -> ("set" ::: Word32) -> VkDescriptorUpdateTemplateCreateInfoKHR+pattern VkDescriptorUpdateTemplateCreateInfoKHR vkSType vkPNext vkFlags vkDescriptorUpdateEntryCount vkPDescriptorUpdateEntries vkTemplateType vkDescriptorSetLayout vkPipelineBindPoint vkPipelineLayout vkSet = VkDescriptorUpdateTemplateCreateInfo vkSType vkPNext vkFlags vkDescriptorUpdateEntryCount vkPDescriptorUpdateEntries vkTemplateType vkDescriptorSetLayout vkPipelineBindPoint vkPipelineLayout vkSet+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO+-- No documentation found for TopLevel "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR"+pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR :: VkObjectType+pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE+-- No documentation found for TopLevel "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR"+pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR :: VkDescriptorUpdateTemplateType+pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET+-- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT
+ src/Graphics/Vulkan/Extensions/VK_KHR_device_group.hs view
@@ -0,0 +1,236 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_device_group+  ( pattern VK_KHR_DEVICE_GROUP_SPEC_VERSION+  , pattern VK_KHR_DEVICE_GROUP_EXTENSION_NAME+  , vkGetDeviceGroupPeerMemoryFeaturesKHR+  , vkCmdSetDeviceMaskKHR+  , vkCmdDispatchBaseKHR+  , VkPeerMemoryFeatureFlagBitsKHR+  , VkMemoryAllocateFlagBitsKHR+  , VkPeerMemoryFeatureFlagsKHR+  , VkMemoryAllocateFlagsKHR+  , VkMemoryAllocateFlagsInfoKHR+  , pattern VkMemoryAllocateFlagsInfoKHR+  , VkBindBufferMemoryDeviceGroupInfoKHR+  , pattern VkBindBufferMemoryDeviceGroupInfoKHR+  , VkBindImageMemoryDeviceGroupInfoKHR+  , pattern VkBindImageMemoryDeviceGroupInfoKHR+  , VkDeviceGroupRenderPassBeginInfoKHR+  , pattern VkDeviceGroupRenderPassBeginInfoKHR+  , VkDeviceGroupCommandBufferBeginInfoKHR+  , pattern VkDeviceGroupCommandBufferBeginInfoKHR+  , VkDeviceGroupSubmitInfoKHR+  , pattern VkDeviceGroupSubmitInfoKHR+  , VkDeviceGroupBindSparseInfoKHR+  , pattern VkDeviceGroupBindSparseInfoKHR+  , pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR+  , pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR+  , pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR+  , pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR+  , pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR+  , pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR+  , pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR+  , pattern VK_PIPELINE_CREATE_DISPATCH_BASE_KHR+  , pattern VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR+  , pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR+  , pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageCreateFlagBits(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Pass+  ( VkDependencyFlagBits(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkPipelineCreateFlagBits(..)+  , VkRect2D(..)+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group+  ( pattern VK_DEPENDENCY_DEVICE_GROUP_BIT+  , pattern VK_PIPELINE_CREATE_DISPATCH_BASE+  , pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT+  , pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT+  , pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT+  , pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT+  , pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT+  , pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO+  , pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO+  , VkDeviceGroupBindSparseInfo(..)+  , VkDeviceGroupSubmitInfo(..)+  , VkDeviceGroupCommandBufferBeginInfo(..)+  , VkDeviceGroupRenderPassBeginInfo(..)+  , VkMemoryAllocateFlagsInfo(..)+  , VkMemoryAllocateFlags+  , VkMemoryAllocateFlagBits(..)+  , VkPeerMemoryFeatureFlagBits(..)+  , vkCmdDispatchBase+  , vkCmdSetDeviceMask+  , VkPeerMemoryFeatureFlags+  , vkGetDeviceGroupPeerMemoryFeatures+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2+  ( pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO+  , pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO+  , VkBindImageMemoryDeviceGroupInfo(..)+  , VkBindBufferMemoryDeviceGroupInfo(..)+  )+++-- No documentation found for TopLevel "VK_KHR_DEVICE_GROUP_SPEC_VERSION"+pattern VK_KHR_DEVICE_GROUP_SPEC_VERSION :: Integral a => a+pattern VK_KHR_DEVICE_GROUP_SPEC_VERSION = 3+-- No documentation found for TopLevel "VK_KHR_DEVICE_GROUP_EXTENSION_NAME"+pattern VK_KHR_DEVICE_GROUP_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_DEVICE_GROUP_EXTENSION_NAME = "VK_KHR_device_group"+-- No documentation found for TopLevel "vkGetDeviceGroupPeerMemoryFeaturesKHR"+vkGetDeviceGroupPeerMemoryFeaturesKHR :: ("device" ::: VkDevice) -> ("heapIndex" ::: Word32) -> ("localDeviceIndex" ::: Word32) -> ("remoteDeviceIndex" ::: Word32) -> ("pPeerMemoryFeatures" ::: Ptr VkPeerMemoryFeatureFlags) -> IO ()+vkGetDeviceGroupPeerMemoryFeaturesKHR = vkGetDeviceGroupPeerMemoryFeatures+-- No documentation found for TopLevel "vkCmdSetDeviceMaskKHR"+vkCmdSetDeviceMaskKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("deviceMask" ::: Word32) -> IO ()+vkCmdSetDeviceMaskKHR = vkCmdSetDeviceMask+-- No documentation found for TopLevel "vkCmdDispatchBaseKHR"+vkCmdDispatchBaseKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("baseGroupX" ::: Word32) -> ("baseGroupY" ::: Word32) -> ("baseGroupZ" ::: Word32) -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()+vkCmdDispatchBaseKHR = vkCmdDispatchBase+-- No documentation found for TopLevel "VkPeerMemoryFeatureFlagBitsKHR"+type VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits+-- No documentation found for TopLevel "VkMemoryAllocateFlagBitsKHR"+type VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits+-- No documentation found for TopLevel "VkPeerMemoryFeatureFlagsKHR"+type VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags+-- No documentation found for TopLevel "VkMemoryAllocateFlagsKHR"+type VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags+-- No documentation found for TopLevel "VkMemoryAllocateFlagsInfoKHR"+type VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo+++-- No documentation found for TopLevel "VkMemoryAllocateFlagsInfoKHR"+pattern VkMemoryAllocateFlagsInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("flags" ::: VkMemoryAllocateFlags) -> ("deviceMask" ::: Word32) -> VkMemoryAllocateFlagsInfoKHR+pattern VkMemoryAllocateFlagsInfoKHR vkSType vkPNext vkFlags vkDeviceMask = VkMemoryAllocateFlagsInfo vkSType vkPNext vkFlags vkDeviceMask+-- No documentation found for TopLevel "VkBindBufferMemoryDeviceGroupInfoKHR"+type VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo+++-- No documentation found for TopLevel "VkBindBufferMemoryDeviceGroupInfoKHR"+pattern VkBindBufferMemoryDeviceGroupInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("deviceIndexCount" ::: Word32) -> ("pDeviceIndices" ::: Ptr Word32) -> VkBindBufferMemoryDeviceGroupInfoKHR+pattern VkBindBufferMemoryDeviceGroupInfoKHR vkSType vkPNext vkDeviceIndexCount vkPDeviceIndices = VkBindBufferMemoryDeviceGroupInfo vkSType vkPNext vkDeviceIndexCount vkPDeviceIndices+-- No documentation found for TopLevel "VkBindImageMemoryDeviceGroupInfoKHR"+type VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo+++-- No documentation found for TopLevel "VkBindImageMemoryDeviceGroupInfoKHR"+pattern VkBindImageMemoryDeviceGroupInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("deviceIndexCount" ::: Word32) -> ("pDeviceIndices" ::: Ptr Word32) -> ("splitInstanceBindRegionCount" ::: Word32) -> ("pSplitInstanceBindRegions" ::: Ptr VkRect2D) -> VkBindImageMemoryDeviceGroupInfoKHR+pattern VkBindImageMemoryDeviceGroupInfoKHR vkSType vkPNext vkDeviceIndexCount vkPDeviceIndices vkSplitInstanceBindRegionCount vkPSplitInstanceBindRegions = VkBindImageMemoryDeviceGroupInfo vkSType vkPNext vkDeviceIndexCount vkPDeviceIndices vkSplitInstanceBindRegionCount vkPSplitInstanceBindRegions+-- No documentation found for TopLevel "VkDeviceGroupRenderPassBeginInfoKHR"+type VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo+++-- No documentation found for TopLevel "VkDeviceGroupRenderPassBeginInfoKHR"+pattern VkDeviceGroupRenderPassBeginInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("deviceMask" ::: Word32) -> ("deviceRenderAreaCount" ::: Word32) -> ("pDeviceRenderAreas" ::: Ptr VkRect2D) -> VkDeviceGroupRenderPassBeginInfoKHR+pattern VkDeviceGroupRenderPassBeginInfoKHR vkSType vkPNext vkDeviceMask vkDeviceRenderAreaCount vkPDeviceRenderAreas = VkDeviceGroupRenderPassBeginInfo vkSType vkPNext vkDeviceMask vkDeviceRenderAreaCount vkPDeviceRenderAreas+-- No documentation found for TopLevel "VkDeviceGroupCommandBufferBeginInfoKHR"+type VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo+++-- No documentation found for TopLevel "VkDeviceGroupCommandBufferBeginInfoKHR"+pattern VkDeviceGroupCommandBufferBeginInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("deviceMask" ::: Word32) -> VkDeviceGroupCommandBufferBeginInfoKHR+pattern VkDeviceGroupCommandBufferBeginInfoKHR vkSType vkPNext vkDeviceMask = VkDeviceGroupCommandBufferBeginInfo vkSType vkPNext vkDeviceMask+-- No documentation found for TopLevel "VkDeviceGroupSubmitInfoKHR"+type VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo+++-- No documentation found for TopLevel "VkDeviceGroupSubmitInfoKHR"+pattern VkDeviceGroupSubmitInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("waitSemaphoreCount" ::: Word32) -> ("pWaitSemaphoreDeviceIndices" ::: Ptr Word32) -> ("commandBufferCount" ::: Word32) -> ("pCommandBufferDeviceMasks" ::: Ptr Word32) -> ("signalSemaphoreCount" ::: Word32) -> ("pSignalSemaphoreDeviceIndices" ::: Ptr Word32) -> VkDeviceGroupSubmitInfoKHR+pattern VkDeviceGroupSubmitInfoKHR vkSType vkPNext vkWaitSemaphoreCount vkPWaitSemaphoreDeviceIndices vkCommandBufferCount vkPCommandBufferDeviceMasks vkSignalSemaphoreCount vkPSignalSemaphoreDeviceIndices = VkDeviceGroupSubmitInfo vkSType vkPNext vkWaitSemaphoreCount vkPWaitSemaphoreDeviceIndices vkCommandBufferCount vkPCommandBufferDeviceMasks vkSignalSemaphoreCount vkPSignalSemaphoreDeviceIndices+-- No documentation found for TopLevel "VkDeviceGroupBindSparseInfoKHR"+type VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo+++-- No documentation found for TopLevel "VkDeviceGroupBindSparseInfoKHR"+pattern VkDeviceGroupBindSparseInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("resourceDeviceIndex" ::: Word32) -> ("memoryDeviceIndex" ::: Word32) -> VkDeviceGroupBindSparseInfoKHR+pattern VkDeviceGroupBindSparseInfoKHR vkSType vkPNext vkResourceDeviceIndex vkMemoryDeviceIndex = VkDeviceGroupBindSparseInfo vkSType vkPNext vkResourceDeviceIndex vkMemoryDeviceIndex+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR"+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO+-- No documentation found for TopLevel "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR"+pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR :: VkPeerMemoryFeatureFlagBits+pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT+-- No documentation found for TopLevel "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR"+pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR :: VkPeerMemoryFeatureFlagBits+pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT+-- No documentation found for TopLevel "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR"+pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR :: VkPeerMemoryFeatureFlagBits+pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT+-- No documentation found for TopLevel "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR"+pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR :: VkPeerMemoryFeatureFlagBits+pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT+-- No documentation found for TopLevel "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR"+pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR :: VkMemoryAllocateFlagBits+pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT+-- No documentation found for TopLevel "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"+pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR :: VkPipelineCreateFlagBits+pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT+-- No documentation found for TopLevel "VK_PIPELINE_CREATE_DISPATCH_BASE_KHR"+pattern VK_PIPELINE_CREATE_DISPATCH_BASE_KHR :: VkPipelineCreateFlagBits+pattern VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE+-- No documentation found for TopLevel "VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR"+pattern VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR :: VkDependencyFlagBits+pattern VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR"+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR"+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO+-- No documentation found for TopLevel "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"+pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_device_group_creation.hs view
@@ -0,0 +1,100 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_device_group_creation+  ( pattern VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION+  , pattern VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME+  , vkEnumeratePhysicalDeviceGroupsKHR+  , VkPhysicalDeviceGroupPropertiesKHR+  , pattern VkPhysicalDeviceGroupPropertiesKHR+  , VkDeviceGroupDeviceCreateInfoKHR+  , pattern VkDeviceGroupDeviceCreateInfoKHR+  , pattern VK_MAX_DEVICE_GROUP_SIZE_KHR+  , VK_MAX_DEVICE_GROUP_SIZE_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR+  , pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkMemoryHeapFlagBits(..)+  , VkPhysicalDevice+  , VkInstance+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation+  ( pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES+  , pattern VK_MAX_DEVICE_GROUP_SIZE+  , VkDeviceGroupDeviceCreateInfo(..)+  , VK_MAX_DEVICE_GROUP_SIZE+  , VkPhysicalDeviceGroupProperties(..)+  , vkEnumeratePhysicalDeviceGroups+  )+++-- No documentation found for TopLevel "VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION"+pattern VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION :: Integral a => a+pattern VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME"+pattern VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME = "VK_KHR_device_group_creation"+-- No documentation found for TopLevel "vkEnumeratePhysicalDeviceGroupsKHR"+vkEnumeratePhysicalDeviceGroupsKHR :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceGroupCount" ::: Ptr Word32) -> ("pPhysicalDeviceGroupProperties" ::: Ptr VkPhysicalDeviceGroupProperties) -> IO VkResult+vkEnumeratePhysicalDeviceGroupsKHR = vkEnumeratePhysicalDeviceGroups+-- No documentation found for TopLevel "VkPhysicalDeviceGroupPropertiesKHR"+type VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties+++-- No documentation found for TopLevel "VkPhysicalDeviceGroupPropertiesKHR"+pattern VkPhysicalDeviceGroupPropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("physicalDeviceCount" ::: Word32) -> ("physicalDevices" ::: Vector VK_MAX_DEVICE_GROUP_SIZE VkPhysicalDevice) -> ("subsetAllocation" ::: VkBool32) -> VkPhysicalDeviceGroupPropertiesKHR+pattern VkPhysicalDeviceGroupPropertiesKHR vkSType vkPNext vkPhysicalDeviceCount vkPhysicalDevices vkSubsetAllocation = VkPhysicalDeviceGroupProperties vkSType vkPNext vkPhysicalDeviceCount vkPhysicalDevices vkSubsetAllocation+-- No documentation found for TopLevel "VkDeviceGroupDeviceCreateInfoKHR"+type VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo+++-- No documentation found for TopLevel "VkDeviceGroupDeviceCreateInfoKHR"+pattern VkDeviceGroupDeviceCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("physicalDeviceCount" ::: Word32) -> ("pPhysicalDevices" ::: Ptr VkPhysicalDevice) -> VkDeviceGroupDeviceCreateInfoKHR+pattern VkDeviceGroupDeviceCreateInfoKHR vkSType vkPNext vkPhysicalDeviceCount vkPPhysicalDevices = VkDeviceGroupDeviceCreateInfo vkSType vkPNext vkPhysicalDeviceCount vkPPhysicalDevices+-- No documentation found for TopLevel "VK_MAX_DEVICE_GROUP_SIZE_KHR"+pattern VK_MAX_DEVICE_GROUP_SIZE_KHR :: Integral a => a+pattern VK_MAX_DEVICE_GROUP_SIZE_KHR = VK_MAX_DEVICE_GROUP_SIZE+++-- No documentation found for TopLevel "VK_MAX_DEVICE_GROUP_SIZE_KHR"+type VK_MAX_DEVICE_GROUP_SIZE_KHR = VK_MAX_DEVICE_GROUP_SIZE+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO+-- No documentation found for TopLevel "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"+pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR :: VkMemoryHeapFlagBits+pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_display.hs view
@@ -0,0 +1,1080 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_display+  ( VkDisplayPlaneAlphaFlagBitsKHR(..)+  , pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR+  , pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR+  , pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR+  , pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR+  , VkDisplayModeCreateFlagsKHR(..)+  , VkDisplaySurfaceCreateFlagsKHR(..)+  , pattern VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR+  , pattern VK_OBJECT_TYPE_DISPLAY_KHR+  , pattern VK_OBJECT_TYPE_DISPLAY_MODE_KHR+  , pattern VK_KHR_DISPLAY_SPEC_VERSION+  , pattern VK_KHR_DISPLAY_EXTENSION_NAME+  , VkDisplayKHR+  , VkDisplayModeKHR+  , vkGetPhysicalDeviceDisplayPropertiesKHR+  , vkGetPhysicalDeviceDisplayPlanePropertiesKHR+  , vkGetDisplayPlaneSupportedDisplaysKHR+  , vkGetDisplayModePropertiesKHR+  , vkCreateDisplayModeKHR+  , vkGetDisplayPlaneCapabilitiesKHR+  , vkCreateDisplayPlaneSurfaceKHR+  , VkDisplayPropertiesKHR(..)+  , VkDisplayPlanePropertiesKHR(..)+  , VkDisplayModeParametersKHR(..)+  , VkDisplayModePropertiesKHR(..)+  , VkDisplayModeCreateInfoKHR(..)+  , VkDisplayPlaneCapabilitiesKHR(..)+  , VkDisplaySurfaceCreateInfoKHR(..)+  , VkDisplayPlaneAlphaFlagsKHR+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CFloat(..)+  , CChar(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkObjectType(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkInstance+  , VkAllocationCallbacks(..)+  , VkPhysicalDevice+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkOffset2D(..)+  , VkExtent2D(..)+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceTransformFlagBitsKHR(..)+  , VkSurfaceTransformFlagsKHR+  , VkSurfaceKHR+  )+++-- ** VkDisplayPlaneAlphaFlagBitsKHR++-- | VkDisplayPlaneAlphaFlagBitsKHR - Alpha blending type+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayPlaneAlphaFlagsKHR', 'VkDisplaySurfaceCreateInfoKHR'+newtype VkDisplayPlaneAlphaFlagBitsKHR = VkDisplayPlaneAlphaFlagBitsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDisplayPlaneAlphaFlagBitsKHR where+  showsPrec _ VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = showString "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"+  showsPrec _ VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = showString "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"+  showsPrec _ VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = showString "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"+  showsPrec _ VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = showString "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"+  showsPrec p (VkDisplayPlaneAlphaFlagBitsKHR x) = showParen (p >= 11) (showString "VkDisplayPlaneAlphaFlagBitsKHR " . showsPrec 11 x)++instance Read VkDisplayPlaneAlphaFlagBitsKHR where+  readPrec = parens ( choose [ ("VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR",                  pure VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR)+                             , ("VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR",                  pure VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR)+                             , ("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR",               pure VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR)+                             , ("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR", pure VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDisplayPlaneAlphaFlagBitsKHR")+                        v <- step readPrec+                        pure (VkDisplayPlaneAlphaFlagBitsKHR v)+                        )+                    )++-- | @VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR@ specifies that the source image+-- will be treated as opaque.+pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR :: VkDisplayPlaneAlphaFlagBitsKHR+pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x00000001++-- | @VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR@ specifies that a global alpha+-- value /must/ be specified that will be applied to all pixels in the+-- source image.+pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR :: VkDisplayPlaneAlphaFlagBitsKHR+pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x00000002++-- | @VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR@ specifies that the alpha+-- value will be determined by the alpha channel of the source image’s+-- pixels. If the source format contains no alpha values, no blending will+-- be applied. The source alpha values are not premultiplied into the+-- source image’s other color channels.+pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR :: VkDisplayPlaneAlphaFlagBitsKHR+pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x00000004++-- | @VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR@ is equivalent+-- to @VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR@, except the source alpha+-- values are assumed to be premultiplied into the source image’s other+-- color channels.+pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR :: VkDisplayPlaneAlphaFlagBitsKHR+pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x00000008+-- ** VkDisplayModeCreateFlagsKHR++-- No documentation found for TopLevel "VkDisplayModeCreateFlagsKHR"+newtype VkDisplayModeCreateFlagsKHR = VkDisplayModeCreateFlagsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDisplayModeCreateFlagsKHR where+  +  showsPrec p (VkDisplayModeCreateFlagsKHR x) = showParen (p >= 11) (showString "VkDisplayModeCreateFlagsKHR " . showsPrec 11 x)++instance Read VkDisplayModeCreateFlagsKHR where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDisplayModeCreateFlagsKHR")+                        v <- step readPrec+                        pure (VkDisplayModeCreateFlagsKHR v)+                        )+                    )+++-- ** VkDisplaySurfaceCreateFlagsKHR++-- No documentation found for TopLevel "VkDisplaySurfaceCreateFlagsKHR"+newtype VkDisplaySurfaceCreateFlagsKHR = VkDisplaySurfaceCreateFlagsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDisplaySurfaceCreateFlagsKHR where+  +  showsPrec p (VkDisplaySurfaceCreateFlagsKHR x) = showParen (p >= 11) (showString "VkDisplaySurfaceCreateFlagsKHR " . showsPrec 11 x)++instance Read VkDisplaySurfaceCreateFlagsKHR where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDisplaySurfaceCreateFlagsKHR")+                        v <- step readPrec+                        pure (VkDisplaySurfaceCreateFlagsKHR v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = VkStructureType 1000002000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = VkStructureType 1000002001+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DISPLAY_KHR"+pattern VK_OBJECT_TYPE_DISPLAY_KHR :: VkObjectType+pattern VK_OBJECT_TYPE_DISPLAY_KHR = VkObjectType 1000002000+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DISPLAY_MODE_KHR"+pattern VK_OBJECT_TYPE_DISPLAY_MODE_KHR :: VkObjectType+pattern VK_OBJECT_TYPE_DISPLAY_MODE_KHR = VkObjectType 1000002001+-- No documentation found for TopLevel "VK_KHR_DISPLAY_SPEC_VERSION"+pattern VK_KHR_DISPLAY_SPEC_VERSION :: Integral a => a+pattern VK_KHR_DISPLAY_SPEC_VERSION = 21+-- No documentation found for TopLevel "VK_KHR_DISPLAY_EXTENSION_NAME"+pattern VK_KHR_DISPLAY_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_DISPLAY_EXTENSION_NAME = "VK_KHR_display"+-- | Dummy data to tag the 'Ptr' with+data VkDisplayKHR_T+-- | VkDisplayKHR - Opaque handle to a display object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayPlanePropertiesKHR', 'VkDisplayPropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_acquire_xlib_display.vkAcquireXlibDisplayEXT',+-- 'vkCreateDisplayModeKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkDisplayPowerControlEXT',+-- 'vkGetDisplayModePropertiesKHR',+-- 'vkGetDisplayPlaneSupportedDisplaysKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_acquire_xlib_display.vkGetRandROutputDisplayEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkRegisterDisplayEventEXT',+-- 'Graphics.Vulkan.Extensions.VK_EXT_direct_mode_display.vkReleaseDisplayEXT'+type VkDisplayKHR = Ptr VkDisplayKHR_T+-- | Dummy data to tag the 'Ptr' with+data VkDisplayModeKHR_T+-- | VkDisplayModeKHR - Opaque handle to a display mode object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayModePropertiesKHR', 'VkDisplaySurfaceCreateInfoKHR',+-- 'vkCreateDisplayModeKHR', 'vkGetDisplayPlaneCapabilitiesKHR'+type VkDisplayModeKHR = Ptr VkDisplayModeKHR_T+-- | vkGetPhysicalDeviceDisplayPropertiesKHR - Query information about the+-- available displays+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is a physical device.+--+-- -   @pPropertyCount@ is a pointer to an integer related to the number of+--     display devices available or queried, as described below.+--+-- -   @pProperties@ is either @NULL@ or a pointer to an array of+--     @VkDisplayPropertiesKHR@ structures.+--+-- = Description+-- #_description#+--+-- If @pProperties@ is @NULL@, then the number of display devices available+-- for @physicalDevice@ is returned in @pPropertyCount@. Otherwise,+-- @pPropertyCount@ /must/ point to a variable set by the user to the+-- number of elements in the @pProperties@ array, and on return the+-- variable is overwritten with the number of structures actually written+-- to @pProperties@. If the value of @pPropertyCount@ is less than the+-- number of display devices for @physicalDevice@, at most @pPropertyCount@+-- structures will be written. If @pPropertyCount@ is smaller than the+-- number of display devices available for @physicalDevice@,+-- @VK_INCOMPLETE@ will be returned instead of @VK_SUCCESS@ to indicate+-- that not all the available values were returned.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPropertyCount@ is not @0@, and+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+--     to an array of @pPropertyCount@ @VkDisplayPropertiesKHR@ structures+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayPropertiesKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceDisplayPropertiesKHR" vkGetPhysicalDeviceDisplayPropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayPropertiesKHR) -> IO VkResult+-- | vkGetPhysicalDeviceDisplayPlanePropertiesKHR - Query the plane+-- properties+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is a physical device.+--+-- -   @pPropertyCount@ is a pointer to an integer related to the number of+--     display planes available or queried, as described below.+--+-- -   @pProperties@ is either @NULL@ or a pointer to an array of+--     @VkDisplayPlanePropertiesKHR@ structures.+--+-- = Description+-- #_description#+--+-- If @pProperties@ is @NULL@, then the number of display planes available+-- for @physicalDevice@ is returned in @pPropertyCount@. Otherwise,+-- @pPropertyCount@ /must/ point to a variable set by the user to the+-- number of elements in the @pProperties@ array, and on return the+-- variable is overwritten with the number of structures actually written+-- to @pProperties@. If the value of @pPropertyCount@ is less than the+-- number of display planes for @physicalDevice@, at most @pPropertyCount@+-- structures will be written.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPropertyCount@ is not @0@, and+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+--     to an array of @pPropertyCount@ @VkDisplayPlanePropertiesKHR@+--     structures+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayPlanePropertiesKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" vkGetPhysicalDeviceDisplayPlanePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayPlanePropertiesKHR) -> IO VkResult+-- | vkGetDisplayPlaneSupportedDisplaysKHR - Query the list of displays a+-- plane supports+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is a physical device.+--+-- -   @planeIndex@ is the plane which the application wishes to use, and+--     /must/ be in the range [0, physical device plane count - 1].+--+-- -   @pDisplayCount@ is a pointer to an integer related to the number of+--     displays available or queried, as described below.+--+-- -   @pDisplays@ is either @NULL@ or a pointer to an array of+--     @VkDisplayKHR@ handles.+--+-- = Description+-- #_description#+--+-- If @pDisplays@ is @NULL@, then the number of displays usable with the+-- specified @planeIndex@ for @physicalDevice@ is returned in+-- @pDisplayCount@. Otherwise, @pDisplayCount@ /must/ point to a variable+-- set by the user to the number of elements in the @pDisplays@ array, and+-- on return the variable is overwritten with the number of handles+-- actually written to @pDisplays@. If the value of @pDisplayCount@ is less+-- than the number of display planes for @physicalDevice@, at most+-- @pDisplayCount@ handles will be written. If @pDisplayCount@ is smaller+-- than the number of displays usable with the specified @planeIndex@ for+-- @physicalDevice@, @VK_INCOMPLETE@ will be returned instead of+-- @VK_SUCCESS@ to indicate that not all the available values were+-- returned.+--+-- == Valid Usage+--+-- -   @planeIndex@ /must/ be less than the number of display planes+--     supported by the device as determined by calling+--     @vkGetPhysicalDeviceDisplayPlanePropertiesKHR@+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pDisplayCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pDisplayCount@ is not @0@, and+--     @pDisplays@ is not @NULL@, @pDisplays@ /must/ be a valid pointer to+--     an array of @pDisplayCount@ @VkDisplayKHR@ handles+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetDisplayPlaneSupportedDisplaysKHR" vkGetDisplayPlaneSupportedDisplaysKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("planeIndex" ::: Word32) -> ("pDisplayCount" ::: Ptr Word32) -> ("pDisplays" ::: Ptr VkDisplayKHR) -> IO VkResult+-- | vkGetDisplayModePropertiesKHR - Query the set of mode properties+-- supported by the display+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device associated with @display@.+--+-- -   @display@ is the display to query.+--+-- -   @pPropertyCount@ is a pointer to an integer related to the number of+--     display modes available or queried, as described below.+--+-- -   @pProperties@ is either @NULL@ or a pointer to an array of+--     @VkDisplayModePropertiesKHR@ structures.+--+-- = Description+-- #_description#+--+-- If @pProperties@ is @NULL@, then the number of display modes available+-- on the specified @display@ for @physicalDevice@ is returned in+-- @pPropertyCount@. Otherwise, @pPropertyCount@ /must/ point to a variable+-- set by the user to the number of elements in the @pProperties@ array,+-- and on return the variable is overwritten with the number of structures+-- actually written to @pProperties@. If the value of @pPropertyCount@ is+-- less than the number of display modes for @physicalDevice@, at most+-- @pPropertyCount@ structures will be written. If @pPropertyCount@ is+-- smaller than the number of display modes available on the specified+-- @display@ for @physicalDevice@, @VK_INCOMPLETE@ will be returned instead+-- of @VK_SUCCESS@ to indicate that not all the available values were+-- returned.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @display@ /must/ be a valid @VkDisplayKHR@ handle+--+-- -   @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPropertyCount@ is not @0@, and+--     @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+--     to an array of @pPropertyCount@ @VkDisplayModePropertiesKHR@+--     structures+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayKHR', 'VkDisplayModePropertiesKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetDisplayModePropertiesKHR" vkGetDisplayModePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("display" ::: VkDisplayKHR) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayModePropertiesKHR) -> IO VkResult+-- | vkCreateDisplayModeKHR - Create a display mode+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device associated with @display@.+--+-- -   @display@ is the display to create an additional mode for.+--+-- -   @pCreateInfo@ is a 'VkDisplayModeCreateInfoKHR' structure describing+--     the new mode to create.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     display mode object when there is no more specific allocator+--     available (see+--     <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pMode@ returns the handle of the mode created.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @display@ /must/ be a valid @VkDisplayKHR@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkDisplayModeCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pMode@ /must/ be a valid pointer to a @VkDisplayModeKHR@ handle+--+-- == Host Synchronization+--+-- -   Host access to @display@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_INITIALIZATION_FAILED@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkDisplayKHR', 'VkDisplayModeCreateInfoKHR', 'VkDisplayModeKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkCreateDisplayModeKHR" vkCreateDisplayModeKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("display" ::: VkDisplayKHR) -> ("pCreateInfo" ::: Ptr VkDisplayModeCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMode" ::: Ptr VkDisplayModeKHR) -> IO VkResult+-- | vkGetDisplayPlaneCapabilitiesKHR - Query capabilities of a mode and+-- plane combination+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device associated with @display@+--+-- -   @mode@ is the display mode the application intends to program when+--     using the specified plane. Note this parameter also implicitly+--     specifies a display.+--+-- -   @planeIndex@ is the plane which the application intends to use with+--     the display, and is less than the number of display planes supported+--     by the device.+--+-- -   @pCapabilities@ is a pointer to a 'VkDisplayPlaneCapabilitiesKHR'+--     structure in which the capabilities are returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @mode@ /must/ be a valid @VkDisplayModeKHR@ handle+--+-- -   @pCapabilities@ /must/ be a valid pointer to a+--     @VkDisplayPlaneCapabilitiesKHR@ structure+--+-- == Host Synchronization+--+-- -   Host access to @mode@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayModeKHR', 'VkDisplayPlaneCapabilitiesKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetDisplayPlaneCapabilitiesKHR" vkGetDisplayPlaneCapabilitiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("mode" ::: VkDisplayModeKHR) -> ("planeIndex" ::: Word32) -> ("pCapabilities" ::: Ptr VkDisplayPlaneCapabilitiesKHR) -> IO VkResult+-- | vkCreateDisplayPlaneSurfaceKHR - Create a+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR' structure+-- representing a display plane and mode+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance corresponding to the physical device the+--     targeted display is on.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkDisplaySurfaceCreateInfoKHR' structure specifying which mode,+--     plane, and other parameters to use, as described below.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkDisplaySurfaceCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkDisplaySurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR'+foreign import ccall "vkCreateDisplayPlaneSurfaceKHR" vkCreateDisplayPlaneSurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDisplaySurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | VkDisplayPropertiesKHR - Structure describing an available display+-- device+--+-- = Description+-- #_description#+--+-- __Note__+--+-- For devices which have no natural value to return here, implementations+-- /should/ return the maximum resolution supported.+--+-- -   @supportedTransforms@ tells which transforms are supported by this+--     display. This will contain one or more of the bits from+--     @VkSurfaceTransformFlagsKHR@.+--+-- -   @planeReorderPossible@ tells whether the planes on this display+--     /can/ have their z order changed. If this is @VK_TRUE@, the+--     application /can/ re-arrange the planes on this display in any order+--     relative to each other.+--+-- -   @persistentContent@ tells whether the display supports+--     self-refresh\/internal buffering. If this is true, the application+--     /can/ submit persistent present operations on swapchains created+--     against this display.+--+-- __Note__+--+-- Persistent presents /may/ have higher latency, and /may/ use less power+-- when the screen content is updated infrequently, or when only a portion+-- of the screen needs to be updated in most frames.+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkDisplayKHR',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagsKHR',+-- 'vkGetPhysicalDeviceDisplayPropertiesKHR'+data VkDisplayPropertiesKHR = VkDisplayPropertiesKHR+  { -- No documentation found for Nested "VkDisplayPropertiesKHR" "vkDisplay"+  vkDisplay :: VkDisplayKHR+  , -- No documentation found for Nested "VkDisplayPropertiesKHR" "vkDisplayName"+  vkDisplayName :: Ptr CChar+  , -- No documentation found for Nested "VkDisplayPropertiesKHR" "vkPhysicalDimensions"+  vkPhysicalDimensions :: VkExtent2D+  , -- No documentation found for Nested "VkDisplayPropertiesKHR" "vkPhysicalResolution"+  vkPhysicalResolution :: VkExtent2D+  , -- No documentation found for Nested "VkDisplayPropertiesKHR" "vkSupportedTransforms"+  vkSupportedTransforms :: VkSurfaceTransformFlagsKHR+  , -- No documentation found for Nested "VkDisplayPropertiesKHR" "vkPlaneReorderPossible"+  vkPlaneReorderPossible :: VkBool32+  , -- No documentation found for Nested "VkDisplayPropertiesKHR" "vkPersistentContent"+  vkPersistentContent :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkDisplayPropertiesKHR where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkDisplayPropertiesKHR <$> peek (ptr `plusPtr` 0)+                                    <*> peek (ptr `plusPtr` 8)+                                    <*> peek (ptr `plusPtr` 16)+                                    <*> peek (ptr `plusPtr` 24)+                                    <*> peek (ptr `plusPtr` 32)+                                    <*> peek (ptr `plusPtr` 36)+                                    <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkDisplay (poked :: VkDisplayPropertiesKHR))+                *> poke (ptr `plusPtr` 8) (vkDisplayName (poked :: VkDisplayPropertiesKHR))+                *> poke (ptr `plusPtr` 16) (vkPhysicalDimensions (poked :: VkDisplayPropertiesKHR))+                *> poke (ptr `plusPtr` 24) (vkPhysicalResolution (poked :: VkDisplayPropertiesKHR))+                *> poke (ptr `plusPtr` 32) (vkSupportedTransforms (poked :: VkDisplayPropertiesKHR))+                *> poke (ptr `plusPtr` 36) (vkPlaneReorderPossible (poked :: VkDisplayPropertiesKHR))+                *> poke (ptr `plusPtr` 40) (vkPersistentContent (poked :: VkDisplayPropertiesKHR))+-- | VkDisplayPlanePropertiesKHR - Structure describing display plane+-- properties+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayKHR', 'vkGetPhysicalDeviceDisplayPlanePropertiesKHR'+data VkDisplayPlanePropertiesKHR = VkDisplayPlanePropertiesKHR+  { -- No documentation found for Nested "VkDisplayPlanePropertiesKHR" "vkCurrentDisplay"+  vkCurrentDisplay :: VkDisplayKHR+  , -- No documentation found for Nested "VkDisplayPlanePropertiesKHR" "vkCurrentStackIndex"+  vkCurrentStackIndex :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDisplayPlanePropertiesKHR where+  sizeOf ~_ = 16+  alignment ~_ = 8+  peek ptr = VkDisplayPlanePropertiesKHR <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkCurrentDisplay (poked :: VkDisplayPlanePropertiesKHR))+                *> poke (ptr `plusPtr` 8) (vkCurrentStackIndex (poked :: VkDisplayPlanePropertiesKHR))+-- | VkDisplayModeParametersKHR - Structure describing display parameters+-- associated with a display mode+--+-- = Description+-- #_description#+--+-- __Note__+--+-- For example, a 60Hz display mode would report a @refreshRate@ of 60,000.+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayModeCreateInfoKHR', 'VkDisplayModePropertiesKHR',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D'+data VkDisplayModeParametersKHR = VkDisplayModeParametersKHR+  { -- No documentation found for Nested "VkDisplayModeParametersKHR" "vkVisibleRegion"+  vkVisibleRegion :: VkExtent2D+  , -- No documentation found for Nested "VkDisplayModeParametersKHR" "vkRefreshRate"+  vkRefreshRate :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDisplayModeParametersKHR where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek ptr = VkDisplayModeParametersKHR <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkVisibleRegion (poked :: VkDisplayModeParametersKHR))+                *> poke (ptr `plusPtr` 8) (vkRefreshRate (poked :: VkDisplayModeParametersKHR))+-- | VkDisplayModePropertiesKHR - Structure describing display mode+-- properties+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayModeKHR', 'VkDisplayModeParametersKHR',+-- 'vkGetDisplayModePropertiesKHR'+data VkDisplayModePropertiesKHR = VkDisplayModePropertiesKHR+  { -- No documentation found for Nested "VkDisplayModePropertiesKHR" "vkDisplayMode"+  vkDisplayMode :: VkDisplayModeKHR+  , -- No documentation found for Nested "VkDisplayModePropertiesKHR" "vkParameters"+  vkParameters :: VkDisplayModeParametersKHR+  }+  deriving (Eq, Show)++instance Storable VkDisplayModePropertiesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDisplayModePropertiesKHR <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkDisplayMode (poked :: VkDisplayModePropertiesKHR))+                *> poke (ptr `plusPtr` 8) (vkParameters (poked :: VkDisplayModePropertiesKHR))+-- | VkDisplayModeCreateInfoKHR - Structure specifying parameters of a newly+-- created display mode object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The @width@ and @height@ members of the @visibleRegion@ member of+--     @parameters@ /must/ be greater than @0@+--+-- -   The @refreshRate@ member of @parameters@ /must/ be greater than @0@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayModeCreateFlagsKHR', 'VkDisplayModeParametersKHR',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateDisplayModeKHR'+data VkDisplayModeCreateInfoKHR = VkDisplayModeCreateInfoKHR+  { -- No documentation found for Nested "VkDisplayModeCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDisplayModeCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDisplayModeCreateInfoKHR" "vkFlags"+  vkFlags :: VkDisplayModeCreateFlagsKHR+  , -- No documentation found for Nested "VkDisplayModeCreateInfoKHR" "vkParameters"+  vkParameters :: VkDisplayModeParametersKHR+  }+  deriving (Eq, Show)++instance Storable VkDisplayModeCreateInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDisplayModeCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+                                        <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayModeCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayModeCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDisplayModeCreateInfoKHR))+                *> poke (ptr `plusPtr` 20) (vkParameters (poked :: VkDisplayModeCreateInfoKHR))+-- | VkDisplayPlaneCapabilitiesKHR - Structure describing capabilities of a+-- mode and plane combination+--+-- = Description+-- #_description#+--+-- The minimum and maximum position and extent fields describe the+-- implementation limits, if any, as they apply to the specified display+-- mode and plane. Vendors /may/ support displaying a subset of a+-- swapchain’s presentable images on the specified display plane. This is+-- expressed by returning @minSrcPosition@, @maxSrcPosition@,+-- @minSrcExtent@, and @maxSrcExtent@ values that indicate a range of+-- possible positions and sizes /may/ be used to specify the region within+-- the presentable images that source pixels will be read from when+-- creating a swapchain on the specified display mode and plane.+--+-- Vendors /may/ also support mapping the presentable images’ content to a+-- subset or superset of the visible region in the specified display mode.+-- This is expressed by returning @minDstPosition@, @maxDstPosition@,+-- @minDstExtent@ and @maxDstExtent@ values that indicate a range of+-- possible positions and sizes /may/ be used to describe the region within+-- the display mode that the source pixels will be mapped to.+--+-- Other vendors /may/ support only a 1-1 mapping between pixels in the+-- presentable images and the display mode. This /may/ be indicated by+-- returning (0,0) for @minSrcPosition@, @maxSrcPosition@,+-- @minDstPosition@, and @maxDstPosition@, and (display mode width, display+-- mode height) for @minSrcExtent@, @maxSrcExtent@, @minDstExtent@, and+-- @maxDstExtent@.+--+-- These values indicate the limits of the implementation’s individual+-- fields. Not all combinations of values within the offset and extent+-- ranges returned in @VkDisplayPlaneCapabilitiesKHR@ are guaranteed to be+-- supported. Vendors /may/ still fail presentation requests that specify+-- unsupported combinations.+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayPlaneAlphaFlagsKHR',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.Pipeline.VkOffset2D',+-- 'vkGetDisplayPlaneCapabilitiesKHR'+data VkDisplayPlaneCapabilitiesKHR = VkDisplayPlaneCapabilitiesKHR+  { -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkSupportedAlpha"+  vkSupportedAlpha :: VkDisplayPlaneAlphaFlagsKHR+  , -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkMinSrcPosition"+  vkMinSrcPosition :: VkOffset2D+  , -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkMaxSrcPosition"+  vkMaxSrcPosition :: VkOffset2D+  , -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkMinSrcExtent"+  vkMinSrcExtent :: VkExtent2D+  , -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkMaxSrcExtent"+  vkMaxSrcExtent :: VkExtent2D+  , -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkMinDstPosition"+  vkMinDstPosition :: VkOffset2D+  , -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkMaxDstPosition"+  vkMaxDstPosition :: VkOffset2D+  , -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkMinDstExtent"+  vkMinDstExtent :: VkExtent2D+  , -- No documentation found for Nested "VkDisplayPlaneCapabilitiesKHR" "vkMaxDstExtent"+  vkMaxDstExtent :: VkExtent2D+  }+  deriving (Eq, Show)++instance Storable VkDisplayPlaneCapabilitiesKHR where+  sizeOf ~_ = 68+  alignment ~_ = 4+  peek ptr = VkDisplayPlaneCapabilitiesKHR <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 4)+                                           <*> peek (ptr `plusPtr` 12)+                                           <*> peek (ptr `plusPtr` 20)+                                           <*> peek (ptr `plusPtr` 28)+                                           <*> peek (ptr `plusPtr` 36)+                                           <*> peek (ptr `plusPtr` 44)+                                           <*> peek (ptr `plusPtr` 52)+                                           <*> peek (ptr `plusPtr` 60)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSupportedAlpha (poked :: VkDisplayPlaneCapabilitiesKHR))+                *> poke (ptr `plusPtr` 4) (vkMinSrcPosition (poked :: VkDisplayPlaneCapabilitiesKHR))+                *> poke (ptr `plusPtr` 12) (vkMaxSrcPosition (poked :: VkDisplayPlaneCapabilitiesKHR))+                *> poke (ptr `plusPtr` 20) (vkMinSrcExtent (poked :: VkDisplayPlaneCapabilitiesKHR))+                *> poke (ptr `plusPtr` 28) (vkMaxSrcExtent (poked :: VkDisplayPlaneCapabilitiesKHR))+                *> poke (ptr `plusPtr` 36) (vkMinDstPosition (poked :: VkDisplayPlaneCapabilitiesKHR))+                *> poke (ptr `plusPtr` 44) (vkMaxDstPosition (poked :: VkDisplayPlaneCapabilitiesKHR))+                *> poke (ptr `plusPtr` 52) (vkMinDstExtent (poked :: VkDisplayPlaneCapabilitiesKHR))+                *> poke (ptr `plusPtr` 60) (vkMaxDstExtent (poked :: VkDisplayPlaneCapabilitiesKHR))+-- | VkDisplaySurfaceCreateInfoKHR - Structure specifying parameters of a+-- newly created display plane surface object+--+-- = Description+-- #_description#+--+-- __Note__+--+-- Creating a display surface /must/ not modify the state of the displays,+-- planes, or other resources it names. For example, it /must/ not apply+-- the specified mode to be set on the associated display. Application of+-- display configuration occurs as a side effect of presenting to a display+-- surface.+--+-- == Valid Usage+--+-- -   @planeIndex@ /must/ be less than the number of display planes+--     supported by the device as determined by calling+--     @vkGetPhysicalDeviceDisplayPlanePropertiesKHR@+--+-- -   If the @planeReorderPossible@ member of the @VkDisplayPropertiesKHR@+--     structure returned by @vkGetPhysicalDeviceDisplayPropertiesKHR@ for+--     the display corresponding to @displayMode@ is @VK_TRUE@ then+--     @planeStackIndex@ /must/ be less than the number of display planes+--     supported by the device as determined by calling+--     @vkGetPhysicalDeviceDisplayPlanePropertiesKHR@; otherwise+--     @planeStackIndex@ /must/ equal the @currentStackIndex@ member of+--     @VkDisplayPlanePropertiesKHR@ returned by+--     @vkGetPhysicalDeviceDisplayPlanePropertiesKHR@ for the display plane+--     corresponding to @displayMode@+--+-- -   If @alphaMode@ is @VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR@ then+--     @globalAlpha@ /must/ be between @0@ and @1@, inclusive+--+-- -   @alphaMode@ /must/ be @0@ or one of the bits present in the+--     @supportedAlpha@ member of @VkDisplayPlaneCapabilitiesKHR@ returned+--     by @vkGetDisplayPlaneCapabilitiesKHR@ for the display plane+--     corresponding to @displayMode@+--+-- -   The @width@ and @height@ members of @imageExtent@ /must/ be less+--     than the @maxImageDimensions2D@ member of @VkPhysicalDeviceLimits@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- -   @displayMode@ /must/ be a valid @VkDisplayModeKHR@ handle+--+-- -   @transform@ /must/ be a valid+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR'+--     value+--+-- -   @alphaMode@ /must/ be a valid 'VkDisplayPlaneAlphaFlagBitsKHR' value+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayModeKHR', 'VkDisplayPlaneAlphaFlagBitsKHR',+-- 'VkDisplaySurfaceCreateFlagsKHR',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR',+-- 'vkCreateDisplayPlaneSurfaceKHR'+data VkDisplaySurfaceCreateInfoKHR = VkDisplaySurfaceCreateInfoKHR+  { -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkFlags"+  vkFlags :: VkDisplaySurfaceCreateFlagsKHR+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkDisplayMode"+  vkDisplayMode :: VkDisplayModeKHR+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkPlaneIndex"+  vkPlaneIndex :: Word32+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkPlaneStackIndex"+  vkPlaneStackIndex :: Word32+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkTransform"+  vkTransform :: VkSurfaceTransformFlagBitsKHR+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkGlobalAlpha"+  vkGlobalAlpha :: CFloat+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkAlphaMode"+  vkAlphaMode :: VkDisplayPlaneAlphaFlagBitsKHR+  , -- No documentation found for Nested "VkDisplaySurfaceCreateInfoKHR" "vkImageExtent"+  vkImageExtent :: VkExtent2D+  }+  deriving (Eq, Show)++instance Storable VkDisplaySurfaceCreateInfoKHR where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkDisplaySurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 24)+                                           <*> peek (ptr `plusPtr` 32)+                                           <*> peek (ptr `plusPtr` 36)+                                           <*> peek (ptr `plusPtr` 40)+                                           <*> peek (ptr `plusPtr` 44)+                                           <*> peek (ptr `plusPtr` 48)+                                           <*> peek (ptr `plusPtr` 52)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkDisplayMode (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkPlaneIndex (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 36) (vkPlaneStackIndex (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 40) (vkTransform (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 44) (vkGlobalAlpha (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 48) (vkAlphaMode (poked :: VkDisplaySurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 52) (vkImageExtent (poked :: VkDisplaySurfaceCreateInfoKHR))+-- | VkDisplayPlaneAlphaFlagsKHR - Bitmask of VkDisplayPlaneAlphaFlagBitsKHR+--+-- = Description+-- #_description#+--+-- @VkDisplayPlaneAlphaFlagsKHR@ is a bitmask type for setting a mask of+-- zero or more 'VkDisplayPlaneAlphaFlagBitsKHR'.+--+-- = See Also+-- #_see_also#+--+-- 'VkDisplayPlaneAlphaFlagBitsKHR', 'VkDisplayPlaneCapabilitiesKHR'+type VkDisplayPlaneAlphaFlagsKHR = VkDisplayPlaneAlphaFlagBitsKHR
+ src/Graphics/Vulkan/Extensions/VK_KHR_display_swapchain.hs view
@@ -0,0 +1,213 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_display_swapchain+  ( pattern VK_ERROR_INCOMPATIBLE_DISPLAY_KHR+  , pattern VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR+  , pattern VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION+  , pattern VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME+  , vkCreateSharedSwapchainsKHR+  , VkDisplayPresentInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkRect2D(..)+  )+import Graphics.Vulkan.Extensions.VK_KHR_swapchain+  ( VkSwapchainKHR+  , VkSwapchainCreateInfoKHR(..)+  )+++-- No documentation found for Nested "VkResult" "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR"+pattern VK_ERROR_INCOMPATIBLE_DISPLAY_KHR :: VkResult+pattern VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = VkResult (-1000003001)+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = VkStructureType 1000003000+-- No documentation found for TopLevel "VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION"+pattern VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION :: Integral a => a+pattern VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION = 9+-- No documentation found for TopLevel "VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME"+pattern VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_display_swapchain"+-- | vkCreateSharedSwapchainsKHR - Create multiple swapchains that share+-- presentable images+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device to create the swapchains for.+--+-- -   @swapchainCount@ is the number of swapchains to create.+--+-- -   @pCreateInfos@ is a pointer to an array of+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR'+--     structures specifying the parameters of the created swapchains.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     swapchain objects when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSwapchains@ is a pointer to an array of @VkSwapchainKHR@ handles+--     in which the created swapchain objects will be returned.+--+-- = Description+-- #_description#+--+-- @vkCreateSharedSwapchains@ is similar to+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR',+-- except that it takes an array of @VkSwapchainCreateInfoKHR@ structures,+-- and returns an array of swapchain objects.+--+-- The swapchain creation parameters that affect the properties and number+-- of presentable images /must/ match between all the swapchains. If the+-- displays used by any of the swapchains do not use the same presentable+-- image layout or are incompatible in a way that prevents sharing images,+-- swapchain creation will fail with the result code+-- @VK_ERROR_INCOMPATIBLE_DISPLAY_KHR@. If any error occurs, no swapchains+-- will be created. Images presented to multiple swapchains /must/ be+-- re-acquired from all of them before transitioning away from+-- @VK_IMAGE_LAYOUT_PRESENT_SRC_KHR@. After destroying one or more of the+-- swapchains, the remaining swapchains and the presentable images /can/+-- continue to be used.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfos@ /must/ be a valid pointer to an array of+--     @swapchainCount@ valid @VkSwapchainCreateInfoKHR@ structures+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSwapchains@ /must/ be a valid pointer to an array of+--     @swapchainCount@ @VkSwapchainKHR@ handles+--+-- -   @swapchainCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @pCreateInfos@[].surface /must/ be externally+--     synchronized+--+-- -   Host access to @pCreateInfos@[].oldSwapchain /must/ be externally+--     synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_INCOMPATIBLE_DISPLAY_KHR@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainKHR'+foreign import ccall "vkCreateSharedSwapchainsKHR" vkCreateSharedSwapchainsKHR :: ("device" ::: VkDevice) -> ("swapchainCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkSwapchainCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSwapchains" ::: Ptr VkSwapchainKHR) -> IO VkResult+-- | VkDisplayPresentInfoKHR - Structure describing parameters of a queue+-- presentation to a swapchain+--+-- = Description+-- #_description#+--+-- If the extent of the @srcRect@ and @dstRect@ are not equal, the+-- presented pixels will be scaled accordingly.+--+-- == Valid Usage+--+-- -   @srcRect@ /must/ specify a rectangular region that is a subset of+--     the image being presented+--+-- -   @dstRect@ /must/ specify a rectangular region that is a subset of+--     the @visibleRegion@ parameter of the display mode the swapchain+--     being presented uses+--+-- -   If the @persistentContent@ member of the @VkDisplayPropertiesKHR@+--     structure returned by @vkGetPhysicalDeviceDisplayPropertiesKHR@ for+--     the display the present operation targets then @persistent@ /must/+--     be @VK_FALSE@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Pipeline.VkRect2D',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDisplayPresentInfoKHR = VkDisplayPresentInfoKHR+  { -- No documentation found for Nested "VkDisplayPresentInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDisplayPresentInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDisplayPresentInfoKHR" "vkSrcRect"+  vkSrcRect :: VkRect2D+  , -- No documentation found for Nested "VkDisplayPresentInfoKHR" "vkDstRect"+  vkDstRect :: VkRect2D+  , -- No documentation found for Nested "VkDisplayPresentInfoKHR" "vkPersistent"+  vkPersistent :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkDisplayPresentInfoKHR where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkDisplayPresentInfoKHR <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 32)+                                     <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayPresentInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayPresentInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSrcRect (poked :: VkDisplayPresentInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkDstRect (poked :: VkDisplayPresentInfoKHR))+                *> poke (ptr `plusPtr` 48) (vkPersistent (poked :: VkDisplayPresentInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_fence.hs view
@@ -0,0 +1,67 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_fence+  ( pattern VK_KHR_EXTERNAL_FENCE_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME+  , VkFenceImportFlagBitsKHR+  , VkFenceImportFlagsKHR+  , VkExportFenceCreateInfoKHR+  , pattern VkExportFenceCreateInfoKHR+  , pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR+  , pattern VK_FENCE_IMPORT_TEMPORARY_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence+  ( pattern VK_FENCE_IMPORT_TEMPORARY_BIT+  , pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO+  , VkExportFenceCreateInfo(..)+  , VkFenceImportFlags+  , VkFenceImportFlagBits(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+  ( VkExternalFenceHandleTypeFlags+  )+++-- No documentation found for TopLevel "VK_KHR_EXTERNAL_FENCE_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_FENCE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_FENCE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME = "VK_KHR_external_fence"+-- No documentation found for TopLevel "VkFenceImportFlagBitsKHR"+type VkFenceImportFlagBitsKHR = VkFenceImportFlagBits+-- No documentation found for TopLevel "VkFenceImportFlagsKHR"+type VkFenceImportFlagsKHR = VkFenceImportFlags+-- No documentation found for TopLevel "VkExportFenceCreateInfoKHR"+type VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo+++-- No documentation found for TopLevel "VkExportFenceCreateInfoKHR"+pattern VkExportFenceCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("handleTypes" ::: VkExternalFenceHandleTypeFlags) -> VkExportFenceCreateInfoKHR+pattern VkExportFenceCreateInfoKHR vkSType vkPNext vkHandleTypes = VkExportFenceCreateInfo vkSType vkPNext vkHandleTypes+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO+-- No documentation found for TopLevel "VK_FENCE_IMPORT_TEMPORARY_BIT_KHR"+pattern VK_FENCE_IMPORT_TEMPORARY_BIT_KHR :: VkFenceImportFlagBits+pattern VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs view
@@ -0,0 +1,120 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities+  ( pattern VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME+  , vkGetPhysicalDeviceExternalFencePropertiesKHR+  , VkExternalFenceHandleTypeFlagBitsKHR+  , VkExternalFenceFeatureFlagBitsKHR+  , VkExternalFenceHandleTypeFlagsKHR+  , VkExternalFenceFeatureFlagsKHR+  , VkPhysicalDeviceExternalFenceInfoKHR+  , pattern VkPhysicalDeviceExternalFenceInfoKHR+  , VkExternalFencePropertiesKHR+  , pattern VkExternalFencePropertiesKHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR+  , pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR+  , pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+  ( pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT+  , pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT+  , pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO+  , VkExternalFenceFeatureFlags+  , VkExternalFenceHandleTypeFlags+  , VkExternalFenceFeatureFlagBits(..)+  , VkExternalFenceHandleTypeFlagBits(..)+  , VkExternalFenceProperties(..)+  , VkPhysicalDeviceExternalFenceInfo(..)+  , vkGetPhysicalDeviceExternalFenceProperties+  )+++-- No documentation found for TopLevel "VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_fence_capabilities"+-- No documentation found for TopLevel "vkGetPhysicalDeviceExternalFencePropertiesKHR"+vkGetPhysicalDeviceExternalFencePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalFenceInfo" ::: Ptr VkPhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr VkExternalFenceProperties) -> IO ()+vkGetPhysicalDeviceExternalFencePropertiesKHR = vkGetPhysicalDeviceExternalFenceProperties+-- No documentation found for TopLevel "VkExternalFenceHandleTypeFlagBitsKHR"+type VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits+-- No documentation found for TopLevel "VkExternalFenceFeatureFlagBitsKHR"+type VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits+-- No documentation found for TopLevel "VkExternalFenceHandleTypeFlagsKHR"+type VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags+-- No documentation found for TopLevel "VkExternalFenceFeatureFlagsKHR"+type VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags+-- No documentation found for TopLevel "VkPhysicalDeviceExternalFenceInfoKHR"+type VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo+++-- No documentation found for TopLevel "VkPhysicalDeviceExternalFenceInfoKHR"+pattern VkPhysicalDeviceExternalFenceInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("handleType" ::: VkExternalFenceHandleTypeFlagBits) -> VkPhysicalDeviceExternalFenceInfoKHR+pattern VkPhysicalDeviceExternalFenceInfoKHR vkSType vkPNext vkHandleType = VkPhysicalDeviceExternalFenceInfo vkSType vkPNext vkHandleType+-- No documentation found for TopLevel "VkExternalFencePropertiesKHR"+type VkExternalFencePropertiesKHR = VkExternalFenceProperties+++-- No documentation found for TopLevel "VkExternalFencePropertiesKHR"+pattern VkExternalFencePropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("exportFromImportedHandleTypes" ::: VkExternalFenceHandleTypeFlags) -> ("compatibleHandleTypes" ::: VkExternalFenceHandleTypeFlags) -> ("externalFenceFeatures" ::: VkExternalFenceFeatureFlags) -> VkExternalFencePropertiesKHR+pattern VkExternalFencePropertiesKHR vkSType vkPNext vkExportFromImportedHandleTypes vkCompatibleHandleTypes vkExternalFenceFeatures = VkExternalFenceProperties vkSType vkPNext vkExportFromImportedHandleTypes vkCompatibleHandleTypes vkExternalFenceFeatures+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES+-- No documentation found for TopLevel "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR :: VkExternalFenceHandleTypeFlagBits+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR :: VkExternalFenceHandleTypeFlagBits+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR :: VkExternalFenceHandleTypeFlagBits+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR"+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR :: VkExternalFenceHandleTypeFlagBits+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR"+pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR :: VkExternalFenceFeatureFlagBits+pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR"+pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR :: VkExternalFenceFeatureFlagBits+pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_fence_fd.hs view
@@ -0,0 +1,364 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd+  ( pattern VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR+  , pattern VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME+  , vkGetFenceFdKHR+  , vkImportFenceFdKHR+  , VkImportFenceFdInfoKHR(..)+  , VkFenceGetFdInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Foreign.C.Types+  ( CInt(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkFence+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence+  ( VkFenceImportFlags+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+  ( VkExternalFenceHandleTypeFlagBits(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = VkStructureType 1000115000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"+pattern VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = VkStructureType 1000115001+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME = "VK_KHR_external_fence_fd"+-- | vkGetFenceFdKHR - Get a POSIX file descriptor handle for a fence+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the fence being+--     exported.+--+-- -   @pGetFdInfo@ is a pointer to an instance of the+--     'VkFenceGetFdInfoKHR' structure containing parameters of the export+--     operation.+--+-- -   @pFd@ will return the file descriptor representing the fence+--     payload.+--+-- = Description+-- #_description#+--+-- Each call to @vkGetFenceFdKHR@ /must/ create a new file descriptor and+-- transfer ownership of it to the application. To avoid leaking resources,+-- the application /must/ release ownership of the file descriptor when it+-- is no longer needed.+--+-- __Note__+--+-- Ownership can be released in many ways. For example, the application can+-- call @close@() on the file descriptor, or transfer ownership back to+-- Vulkan by using the file descriptor to import a fence payload.+--+-- If @pGetFdInfo@::@handleType@ is+-- @VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT@ and the fence is signaled at+-- the time @vkGetFenceFdKHR@ is called, @pFd@ /may/ return the value @-1@+-- instead of a valid file descriptor.+--+-- Where supported by the operating system, the implementation /must/ set+-- the file descriptor to be closed automatically when an @execve@ system+-- call is made.+--+-- Exporting a file descriptor from a fence /may/ have side effects+-- depending on the transference of the specified handle type, as described+-- in+-- <{html_spec_relative}#synchronization-fences-importing Importing Fence State>.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pGetFdInfo@ /must/ be a valid pointer to a valid+--     @VkFenceGetFdInfoKHR@ structure+--+-- -   @pFd@ /must/ be a valid pointer to a @int@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkFenceGetFdInfoKHR'+foreign import ccall "vkGetFenceFdKHR" vkGetFenceFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkFenceGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult+-- | vkImportFenceFdKHR - Import a fence from a POSIX file descriptor+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the fence.+--+-- -   @pImportFenceFdInfo@ points to a 'VkImportFenceFdInfoKHR' structure+--     specifying the fence and import parameters.+--+-- = Description+-- #_description#+--+-- Importing a fence payload from a file descriptor transfers ownership of+-- the file descriptor from the application to the Vulkan implementation.+-- The application /must/ not perform any operations on the file descriptor+-- after a successful import.+--+-- Applications /can/ import the same fence payload into multiple instances+-- of Vulkan, into the same instance from which it was exported, and+-- multiple times into a given Vulkan instance.+--+-- == Valid Usage+--+-- -   @fence@ /must/ not be associated with any queue command that has not+--     yet completed execution on that queue+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pImportFenceFdInfo@ /must/ be a valid pointer to a valid+--     @VkImportFenceFdInfoKHR@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkImportFenceFdInfoKHR'+foreign import ccall "vkImportFenceFdKHR" vkImportFenceFdKHR :: ("device" ::: VkDevice) -> ("pImportFenceFdInfo" ::: Ptr VkImportFenceFdInfoKHR) -> IO VkResult+-- | VkImportFenceFdInfoKHR - (None)+--+-- = Description+-- #_description#+--+-- The handle types supported by @handleType@ are:+--+-- > +-----------------------+-----------------------+-----------------------++-- > | Handle Type           | Transference          | Permanence Supported  |+-- > +=======================+=======================+=======================++-- > | @VK_EXTERNAL_FENCE_HA | Reference             | Temporary,Permanent   |+-- > | NDLE_TYPE_OPAQUE_FD_B |                       |                       |+-- > | IT@                   |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | @VK_EXTERNAL_FENCE_HA | Copy                  | Temporary             |+-- > | NDLE_TYPE_SYNC_FD_BIT |                       |                       |+-- > | @                     |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- >+-- > Handle Types Supported by VkImportFenceFdInfoKHR+--+-- == Valid Usage+--+-- -   @handleType@ /must/ be a value included in the+--     <{html_spec_relative}#synchronization-fence-handletypes-fd Handle Types Supported by VkImportFenceFdInfoKHR>+--     table.+--+-- -   @fd@ /must/ obey any requirements listed for @handleType@ in+--     <{html_spec_relative}#external-fence-handle-types-compatibility external fence handle types compatibility>.+--+-- If @handleType@ is @VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT@, the+-- special value @-1@ for @fd@ is treated like a valid sync file descriptor+-- referring to an object that has already signaled. The import operation+-- will succeed and the @VkFence@ will have a temporarily imported payload+-- as if a valid file descriptor had been provided.+--+-- __Note__+--+-- This special behavior for importing an invalid sync file descriptor+-- allows easier interoperability with other system APIs which use the+-- convention that an invalid sync file descriptor represents work that has+-- already completed and doesn’t need to be waited for. It is consistent+-- with the option for implementations to return a @-1@ file descriptor+-- when exporting a @VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT@ from a+-- @VkFence@ which is signaled.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @fence@ /must/ be a valid @VkFence@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits'+--     values+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits'+--     value+--+-- == Host Synchronization+--+-- -   Host access to @fence@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Queue.VkFence',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkImportFenceFdKHR'+data VkImportFenceFdInfoKHR = VkImportFenceFdInfoKHR+  { -- No documentation found for Nested "VkImportFenceFdInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportFenceFdInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportFenceFdInfoKHR" "vkFence"+  vkFence :: VkFence+  , -- No documentation found for Nested "VkImportFenceFdInfoKHR" "vkFlags"+  vkFlags :: VkFenceImportFlags+  , -- No documentation found for Nested "VkImportFenceFdInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalFenceHandleTypeFlagBits+  , -- No documentation found for Nested "VkImportFenceFdInfoKHR" "vkFd"+  vkFd :: CInt+  }+  deriving (Eq, Show)++instance Storable VkImportFenceFdInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkImportFenceFdInfoKHR <$> peek (ptr `plusPtr` 0)+                                    <*> peek (ptr `plusPtr` 8)+                                    <*> peek (ptr `plusPtr` 16)+                                    <*> peek (ptr `plusPtr` 24)+                                    <*> peek (ptr `plusPtr` 28)+                                    <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportFenceFdInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportFenceFdInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFence (poked :: VkImportFenceFdInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkFlags (poked :: VkImportFenceFdInfoKHR))+                *> poke (ptr `plusPtr` 28) (vkHandleType (poked :: VkImportFenceFdInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkFd (poked :: VkImportFenceFdInfoKHR))+-- | VkFenceGetFdInfoKHR - Structure describing a POSIX FD fence export+-- operation+--+-- = Description+-- #_description#+--+-- The properties of the file descriptor returned depend on the value of+-- @handleType@. See+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits'+-- for a description of the properties of the defined external fence handle+-- types.+--+-- == Valid Usage+--+-- -   @handleType@ /must/ have been included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo'::@handleTypes@+--     when @fence@’s current payload was created.+--+-- -   If @handleType@ refers to a handle type with copy payload+--     transference semantics, @fence@ /must/ be signaled, or have an+--     associated+--     <{html_spec_relative}#synchronization-fences-signaling fence signal operation>+--     pending execution.+--+-- -   @fence@ /must/ not currently have its payload replaced by an+--     imported payload as described below in+--     <{html_spec_relative}#synchronization-fences-importing Importing Fence Payloads>+--     unless that imported payload’s handle type was included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties'::@exportFromImportedHandleTypes@+--     for @handleType@.+--+-- -   @handleType@ /must/ be defined as a POSIX file descriptor handle.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @fence@ /must/ be a valid @VkFence@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Queue.VkFence',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkGetFenceFdKHR'+data VkFenceGetFdInfoKHR = VkFenceGetFdInfoKHR+  { -- No documentation found for Nested "VkFenceGetFdInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkFenceGetFdInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkFenceGetFdInfoKHR" "vkFence"+  vkFence :: VkFence+  , -- No documentation found for Nested "VkFenceGetFdInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalFenceHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkFenceGetFdInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkFenceGetFdInfoKHR <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 16)+                                 <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFenceGetFdInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFenceGetFdInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFence (poked :: VkFenceGetFdInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkHandleType (poked :: VkFenceGetFdInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -0,0 +1,439 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32+  ( pattern VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR+  , pattern VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME+  , vkGetFenceWin32HandleKHR+  , vkImportFenceWin32HandleKHR+  , VkImportFenceWin32HandleInfoKHR(..)+  , VkExportFenceWin32HandleInfoKHR(..)+  , VkFenceGetWin32HandleInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkFence+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence+  ( VkFenceImportFlags+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+  ( VkExternalFenceHandleTypeFlagBits(..)+  )+import Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32+  ( LPCWSTR+  )+import Graphics.Vulkan.Extensions.VK_NV_external_memory_win32+  ( DWORD+  , SECURITY_ATTRIBUTES+  , HANDLE+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = VkStructureType 1000114000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = VkStructureType 1000114001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = VkStructureType 1000114002+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME = "VK_KHR_external_fence_win32"+-- | vkGetFenceWin32HandleKHR - Get a Windows HANDLE for a fence+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the fence being+--     exported.+--+-- -   @pGetWin32HandleInfo@ is a pointer to an instance of the+--     'VkFenceGetWin32HandleInfoKHR' structure containing parameters of+--     the export operation.+--+-- -   @pHandle@ will return the Windows handle representing the fence+--     state.+--+-- = Description+-- #_description#+--+-- For handle types defined as NT handles, the handles returned by+-- @vkGetFenceWin32HandleKHR@ are owned by the application. To avoid+-- leaking resources, the application /must/ release ownership of them+-- using the @CloseHandle@ system call when they are no longer needed.+--+-- Exporting a Windows handle from a fence /may/ have side effects+-- depending on the transference of the specified handle type, as described+-- in+-- <{html_spec_relative}#synchronization-fences-importing Importing Fence Payloads>.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pGetWin32HandleInfo@ /must/ be a valid pointer to a valid+--     @VkFenceGetWin32HandleInfoKHR@ structure+--+-- -   @pHandle@ /must/ be a valid pointer to a @HANDLE@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkFenceGetWin32HandleInfoKHR'+foreign import ccall "vkGetFenceWin32HandleKHR" vkGetFenceWin32HandleKHR :: ("device" ::: VkDevice) -> ("pGetWin32HandleInfo" ::: Ptr VkFenceGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO VkResult+-- | vkImportFenceWin32HandleKHR - Import a fence from a Windows HANDLE+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the fence.+--+-- -   @pImportFenceWin32HandleInfo@ points to a+--     'VkImportFenceWin32HandleInfoKHR' structure specifying the fence and+--     import parameters.+--+-- = Description+-- #_description#+--+-- Importing a fence payload from Windows handles does not transfer+-- ownership of the handle to the Vulkan implementation. For handle types+-- defined as NT handles, the application /must/ release ownership using+-- the @CloseHandle@ system call when the handle is no longer needed.+--+-- Applications /can/ import the same fence payload into multiple instances+-- of Vulkan, into the same instance from which it was exported, and+-- multiple times into a given Vulkan instance.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pImportFenceWin32HandleInfo@ /must/ be a valid pointer to a valid+--     @VkImportFenceWin32HandleInfoKHR@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkImportFenceWin32HandleInfoKHR'+foreign import ccall "vkImportFenceWin32HandleKHR" vkImportFenceWin32HandleKHR :: ("device" ::: VkDevice) -> ("pImportFenceWin32HandleInfo" ::: Ptr VkImportFenceWin32HandleInfoKHR) -> IO VkResult+-- | VkImportFenceWin32HandleInfoKHR - (None)+--+-- = Description+-- #_description#+--+-- The handle types supported by @handleType@ are:+--+-- > +-----------------------+-----------------------+-----------------------++-- > | Handle Type           | Transference          | Permanence Supported  |+-- > +=======================+=======================+=======================++-- > | @VK_EXTERNAL_FENCE_HA | Reference             | Temporary,Permanent   |+-- > | NDLE_TYPE_OPAQUE_WIN3 |                       |                       |+-- > | 2_BIT@                |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | @VK_EXTERNAL_FENCE_HA | Reference             | Temporary,Permanent   |+-- > | NDLE_TYPE_OPAQUE_WIN3 |                       |                       |+-- > | 2_KMT_BIT@            |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- >+-- > Handle Types Supported by VkImportFenceWin32HandleInfoKHR+--+-- == Valid Usage+--+-- -   @handleType@ /must/ be a value included in the+--     <{html_spec_relative}#synchronization-fence-handletypes-win32 Handle Types Supported by VkImportFenceWin32HandleInfoKHR>+--     table.+--+-- -   If @handleType@ is not+--     @VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT@, @name@ /must/ be+--     @NULL@.+--+-- -   If @handleType@ is not @0@ and @handle@ is @NULL@, @name@ /must/+--     name a valid synchronization primitive of the type specified by+--     @handleType@.+--+-- -   If @handleType@ is not @0@ and @name@ is @NULL@, @handle@ /must/ be+--     a valid handle of the type specified by @handleType@.+--+-- -   If @handle@ is not @NULL@, @name@ must be @NULL@.+--+-- -   If @handle@ is not @NULL@, it /must/ obey any requirements listed+--     for @handleType@ in+--     <{html_spec_relative}#external-fence-handle-types-compatibility external fence handle types compatibility>.+--+-- -   If @name@ is not @NULL@, it /must/ obey any requirements listed for+--     @handleType@ in+--     <{html_spec_relative}#external-fence-handle-types-compatibility external fence handle types compatibility>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @fence@ /must/ be a valid @VkFence@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits'+--     values+--+-- -   If @handleType@ is not @0@, @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits'+--     value+--+-- == Host Synchronization+--+-- -   Host access to @fence@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Queue.VkFence',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkImportFenceWin32HandleKHR'+data VkImportFenceWin32HandleInfoKHR = VkImportFenceWin32HandleInfoKHR+  { -- No documentation found for Nested "VkImportFenceWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportFenceWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportFenceWin32HandleInfoKHR" "vkFence"+  vkFence :: VkFence+  , -- No documentation found for Nested "VkImportFenceWin32HandleInfoKHR" "vkFlags"+  vkFlags :: VkFenceImportFlags+  , -- No documentation found for Nested "VkImportFenceWin32HandleInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalFenceHandleTypeFlagBits+  , -- No documentation found for Nested "VkImportFenceWin32HandleInfoKHR" "vkHandle"+  vkHandle :: HANDLE+  , -- No documentation found for Nested "VkImportFenceWin32HandleInfoKHR" "vkName"+  vkName :: LPCWSTR+  }+  deriving (Eq, Show)++instance Storable VkImportFenceWin32HandleInfoKHR where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkImportFenceWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 24)+                                             <*> peek (ptr `plusPtr` 28)+                                             <*> peek (ptr `plusPtr` 32)+                                             <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFence (poked :: VkImportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkFlags (poked :: VkImportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 28) (vkHandleType (poked :: VkImportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkHandle (poked :: VkImportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 40) (vkName (poked :: VkImportFenceWin32HandleInfoKHR))+-- | VkExportFenceWin32HandleInfoKHR - Structure specifying additional+-- attributes of Windows handles exported from a fence+--+-- = Description+-- #_description#+--+-- If this structure is not present, or if @pAttributes@ is set to @NULL@,+-- default security descriptor values will be used, and child processes+-- created by the application will not inherit the handle, as described in+-- the MSDN documentation for “Synchronization Object Security and Access+-- Rights”1. Further, if the structure is not present, the access rights+-- will be+--+-- @DXGI_SHARED_RESOURCE_READ@ | @DXGI_SHARED_RESOURCE_WRITE@+--+-- for handles of the following types:+--+-- @VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT@+--+-- [1]+--     <https://msdn.microsoft.com/en-us/library/windows/desktop/ms686670.aspx>+--+-- == Valid Usage+--+-- -   If+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo'::@handleTypes@+--     does not include @VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT@,+--     VkExportFenceWin32HandleInfoKHR /must/ not be in the @pNext@ chain+--     of 'Graphics.Vulkan.Core10.Fence.VkFenceCreateInfo'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR@+--+-- -   If @pAttributes@ is not @NULL@, @pAttributes@ /must/ be a valid+--     pointer to a valid @SECURITY_ATTRIBUTES@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkExportFenceWin32HandleInfoKHR = VkExportFenceWin32HandleInfoKHR+  { -- No documentation found for Nested "VkExportFenceWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExportFenceWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExportFenceWin32HandleInfoKHR" "vkPAttributes"+  vkPAttributes :: Ptr SECURITY_ATTRIBUTES+  , -- No documentation found for Nested "VkExportFenceWin32HandleInfoKHR" "vkDwAccess"+  vkDwAccess :: DWORD+  , -- No documentation found for Nested "VkExportFenceWin32HandleInfoKHR" "vkName"+  vkName :: LPCWSTR+  }+  deriving (Eq, Show)++instance Storable VkExportFenceWin32HandleInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkExportFenceWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 24)+                                             <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkPAttributes (poked :: VkExportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkDwAccess (poked :: VkExportFenceWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkName (poked :: VkExportFenceWin32HandleInfoKHR))+-- | VkFenceGetWin32HandleInfoKHR - Structure describing a Win32 handle fence+-- export operation+--+-- = Description+-- #_description#+--+-- The properties of the handle returned depend on the value of+-- @handleType@. See+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits'+-- for a description of the properties of the defined external fence handle+-- types.+--+-- == Valid Usage+--+-- -   @handleType@ /must/ have been included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo'::@handleTypes@+--     when the @fence@’s current payload was created.+--+-- -   If @handleType@ is defined as an NT handle,+--     'vkGetFenceWin32HandleKHR' /must/ be called no more than once for+--     each valid unique combination of @fence@ and @handleType@.+--+-- -   @fence@ /must/ not currently have its payload replaced by an+--     imported payload as described below in+--     <{html_spec_relative}#synchronization-fences-importing Importing Fence Payloads>+--     unless that imported payload’s handle type was included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties'::@exportFromImportedHandleTypes@+--     for @handleType@.+--+-- -   If @handleType@ refers to a handle type with copy payload+--     transference semantics, @fence@ /must/ be signaled, or have an+--     associated+--     <{html_spec_relative}#synchronization-fences-signaling fence signal operation>+--     pending execution.+--+-- -   @handleType@ /must/ be defined as an NT handle or a global share+--     handle.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @fence@ /must/ be a valid @VkFence@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Queue.VkFence',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetFenceWin32HandleKHR'+data VkFenceGetWin32HandleInfoKHR = VkFenceGetWin32HandleInfoKHR+  { -- No documentation found for Nested "VkFenceGetWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkFenceGetWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkFenceGetWin32HandleInfoKHR" "vkFence"+  vkFence :: VkFence+  , -- No documentation found for Nested "VkFenceGetWin32HandleInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalFenceHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkFenceGetWin32HandleInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkFenceGetWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 16)+                                          <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFenceGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFenceGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFence (poked :: VkFenceGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkHandleType (poked :: VkFenceGetWin32HandleInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_memory.hs view
@@ -0,0 +1,98 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_memory+  ( pattern VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME+  , VkExternalMemoryImageCreateInfoKHR+  , pattern VkExternalMemoryImageCreateInfoKHR+  , VkExternalMemoryBufferCreateInfoKHR+  , pattern VkExternalMemoryBufferCreateInfoKHR+  , VkExportMemoryAllocateInfoKHR+  , pattern VkExportMemoryAllocateInfoKHR+  , pattern VK_QUEUE_FAMILY_EXTERNAL_KHR+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR+  , pattern VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory+  ( pattern VK_ERROR_INVALID_EXTERNAL_HANDLE+  , pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO+  , pattern VK_QUEUE_FAMILY_EXTERNAL+  , VkExportMemoryAllocateInfo(..)+  , VkExternalMemoryBufferCreateInfo(..)+  , VkExternalMemoryImageCreateInfo(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlags+  )+++-- No documentation found for TopLevel "VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_KHR_external_memory"+-- No documentation found for TopLevel "VkExternalMemoryImageCreateInfoKHR"+type VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo+++-- No documentation found for TopLevel "VkExternalMemoryImageCreateInfoKHR"+pattern VkExternalMemoryImageCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("handleTypes" ::: VkExternalMemoryHandleTypeFlags) -> VkExternalMemoryImageCreateInfoKHR+pattern VkExternalMemoryImageCreateInfoKHR vkSType vkPNext vkHandleTypes = VkExternalMemoryImageCreateInfo vkSType vkPNext vkHandleTypes+-- No documentation found for TopLevel "VkExternalMemoryBufferCreateInfoKHR"+type VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo+++-- No documentation found for TopLevel "VkExternalMemoryBufferCreateInfoKHR"+pattern VkExternalMemoryBufferCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("handleTypes" ::: VkExternalMemoryHandleTypeFlags) -> VkExternalMemoryBufferCreateInfoKHR+pattern VkExternalMemoryBufferCreateInfoKHR vkSType vkPNext vkHandleTypes = VkExternalMemoryBufferCreateInfo vkSType vkPNext vkHandleTypes+-- No documentation found for TopLevel "VkExportMemoryAllocateInfoKHR"+type VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo+++-- No documentation found for TopLevel "VkExportMemoryAllocateInfoKHR"+pattern VkExportMemoryAllocateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("handleTypes" ::: VkExternalMemoryHandleTypeFlags) -> VkExportMemoryAllocateInfoKHR+pattern VkExportMemoryAllocateInfoKHR vkSType vkPNext vkHandleTypes = VkExportMemoryAllocateInfo vkSType vkPNext vkHandleTypes+-- No documentation found for TopLevel "VK_QUEUE_FAMILY_EXTERNAL_KHR"+pattern VK_QUEUE_FAMILY_EXTERNAL_KHR :: Word32+pattern VK_QUEUE_FAMILY_EXTERNAL_KHR = VK_QUEUE_FAMILY_EXTERNAL+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO+-- No documentation found for TopLevel "VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR"+pattern VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR :: VkResult+pattern VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs view
@@ -0,0 +1,219 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities+  ( pattern VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME+  , vkGetPhysicalDeviceExternalBufferPropertiesKHR+  , VkExternalMemoryHandleTypeFlagBitsKHR+  , VkExternalMemoryFeatureFlagBitsKHR+  , VkExternalMemoryHandleTypeFlagsKHR+  , VkExternalMemoryFeatureFlagsKHR+  , VkExternalMemoryPropertiesKHR+  , pattern VkExternalMemoryPropertiesKHR+  , VkPhysicalDeviceExternalImageFormatInfoKHR+  , pattern VkPhysicalDeviceExternalImageFormatInfoKHR+  , VkExternalImageFormatPropertiesKHR+  , pattern VkExternalImageFormatPropertiesKHR+  , VkPhysicalDeviceExternalBufferInfoKHR+  , pattern VkPhysicalDeviceExternalBufferInfoKHR+  , VkExternalBufferPropertiesKHR+  , pattern VkExternalBufferPropertiesKHR+  , VkPhysicalDeviceIDPropertiesKHR+  , pattern VkPhysicalDeviceIDPropertiesKHR+  , pattern VK_LUID_SIZE_KHR+  , VK_LUID_SIZE_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR+  , pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  , Word8+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Buffer+  ( VkBufferUsageFlags+  , VkBufferCreateFlags+  )+import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VK_UUID_SIZE+  , VkPhysicalDevice+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT+  , pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT+  , pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO+  , pattern VK_LUID_SIZE+  , VK_LUID_SIZE+  , VkPhysicalDeviceIDProperties(..)+  , VkExternalImageFormatProperties(..)+  , VkPhysicalDeviceExternalImageFormatInfo(..)+  , VkExternalMemoryProperties(..)+  , VkExternalMemoryFeatureFlags+  , VkExternalMemoryHandleTypeFlags+  , VkExternalMemoryFeatureFlagBits(..)+  , VkExternalMemoryHandleTypeFlagBits(..)+  , VkExternalBufferProperties(..)+  , VkPhysicalDeviceExternalBufferInfo(..)+  , vkGetPhysicalDeviceExternalBufferProperties+  )+++-- No documentation found for TopLevel "VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_memory_capabilities"+-- No documentation found for TopLevel "vkGetPhysicalDeviceExternalBufferPropertiesKHR"+vkGetPhysicalDeviceExternalBufferPropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalBufferInfo" ::: Ptr VkPhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr VkExternalBufferProperties) -> IO ()+vkGetPhysicalDeviceExternalBufferPropertiesKHR = vkGetPhysicalDeviceExternalBufferProperties+-- No documentation found for TopLevel "VkExternalMemoryHandleTypeFlagBitsKHR"+type VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits+-- No documentation found for TopLevel "VkExternalMemoryFeatureFlagBitsKHR"+type VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits+-- No documentation found for TopLevel "VkExternalMemoryHandleTypeFlagsKHR"+type VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags+-- No documentation found for TopLevel "VkExternalMemoryFeatureFlagsKHR"+type VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags+-- No documentation found for TopLevel "VkExternalMemoryPropertiesKHR"+type VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties+++-- No documentation found for TopLevel "VkExternalMemoryPropertiesKHR"+pattern VkExternalMemoryPropertiesKHR :: ("externalMemoryFeatures" ::: VkExternalMemoryFeatureFlags) -> ("exportFromImportedHandleTypes" ::: VkExternalMemoryHandleTypeFlags) -> ("compatibleHandleTypes" ::: VkExternalMemoryHandleTypeFlags) -> VkExternalMemoryPropertiesKHR+pattern VkExternalMemoryPropertiesKHR vkExternalMemoryFeatures vkExportFromImportedHandleTypes vkCompatibleHandleTypes = VkExternalMemoryProperties vkExternalMemoryFeatures vkExportFromImportedHandleTypes vkCompatibleHandleTypes+-- No documentation found for TopLevel "VkPhysicalDeviceExternalImageFormatInfoKHR"+type VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo+++-- No documentation found for TopLevel "VkPhysicalDeviceExternalImageFormatInfoKHR"+pattern VkPhysicalDeviceExternalImageFormatInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> VkPhysicalDeviceExternalImageFormatInfoKHR+pattern VkPhysicalDeviceExternalImageFormatInfoKHR vkSType vkPNext vkHandleType = VkPhysicalDeviceExternalImageFormatInfo vkSType vkPNext vkHandleType+-- No documentation found for TopLevel "VkExternalImageFormatPropertiesKHR"+type VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties+++-- No documentation found for TopLevel "VkExternalImageFormatPropertiesKHR"+pattern VkExternalImageFormatPropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("externalMemoryProperties" ::: VkExternalMemoryProperties) -> VkExternalImageFormatPropertiesKHR+pattern VkExternalImageFormatPropertiesKHR vkSType vkPNext vkExternalMemoryProperties = VkExternalImageFormatProperties vkSType vkPNext vkExternalMemoryProperties+-- No documentation found for TopLevel "VkPhysicalDeviceExternalBufferInfoKHR"+type VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo+++-- No documentation found for TopLevel "VkPhysicalDeviceExternalBufferInfoKHR"+pattern VkPhysicalDeviceExternalBufferInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("flags" ::: VkBufferCreateFlags) -> ("usage" ::: VkBufferUsageFlags) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> VkPhysicalDeviceExternalBufferInfoKHR+pattern VkPhysicalDeviceExternalBufferInfoKHR vkSType vkPNext vkFlags vkUsage vkHandleType = VkPhysicalDeviceExternalBufferInfo vkSType vkPNext vkFlags vkUsage vkHandleType+-- No documentation found for TopLevel "VkExternalBufferPropertiesKHR"+type VkExternalBufferPropertiesKHR = VkExternalBufferProperties+++-- No documentation found for TopLevel "VkExternalBufferPropertiesKHR"+pattern VkExternalBufferPropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("externalMemoryProperties" ::: VkExternalMemoryProperties) -> VkExternalBufferPropertiesKHR+pattern VkExternalBufferPropertiesKHR vkSType vkPNext vkExternalMemoryProperties = VkExternalBufferProperties vkSType vkPNext vkExternalMemoryProperties+-- No documentation found for TopLevel "VkPhysicalDeviceIDPropertiesKHR"+type VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties+++-- No documentation found for TopLevel "VkPhysicalDeviceIDPropertiesKHR"+pattern VkPhysicalDeviceIDPropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("deviceUUID" ::: Vector VK_UUID_SIZE Word8) -> ("driverUUID" ::: Vector VK_UUID_SIZE Word8) -> ("deviceLUID" ::: Vector VK_LUID_SIZE Word8) -> ("deviceNodeMask" ::: Word32) -> ("deviceLUIDValid" ::: VkBool32) -> VkPhysicalDeviceIDPropertiesKHR+pattern VkPhysicalDeviceIDPropertiesKHR vkSType vkPNext vkDeviceUUID vkDriverUUID vkDeviceLUID vkDeviceNodeMask vkDeviceLUIDValid = VkPhysicalDeviceIDProperties vkSType vkPNext vkDeviceUUID vkDriverUUID vkDeviceLUID vkDeviceNodeMask vkDeviceLUIDValid+-- No documentation found for TopLevel "VK_LUID_SIZE_KHR"+pattern VK_LUID_SIZE_KHR :: Integral a => a+pattern VK_LUID_SIZE_KHR = VK_LUID_SIZE+++-- No documentation found for TopLevel "VK_LUID_SIZE_KHR"+type VK_LUID_SIZE_KHR = VK_LUID_SIZE+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR :: VkExternalMemoryHandleTypeFlagBits+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR :: VkExternalMemoryFeatureFlagBits+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR :: VkExternalMemoryFeatureFlagBits+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR"+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR :: VkExternalMemoryFeatureFlagBits+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -0,0 +1,342 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd+  ( pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR+  , pattern VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR+  , pattern VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME+  , vkGetMemoryFdKHR+  , vkGetMemoryFdPropertiesKHR+  , VkImportMemoryFdInfoKHR(..)+  , VkMemoryFdPropertiesKHR(..)+  , VkMemoryGetFdInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CInt(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagBits(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = VkStructureType 1000074000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = VkStructureType 1000074001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"+pattern VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = VkStructureType 1000074002+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME = "VK_KHR_external_memory_fd"+-- | vkGetMemoryFdKHR - Get a POSIX file descriptor for a memory object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the device memory being+--     exported.+--+-- -   @pGetFdInfo@ is a pointer to an instance of the+--     'VkMemoryGetFdInfoKHR' structure containing parameters of the export+--     operation.+--+-- -   @pFd@ will return a file descriptor representing the underlying+--     resources of the device memory object.+--+-- = Description+-- #_description#+--+-- Each call to @vkGetMemoryFdKHR@ /must/ create a new file descriptor and+-- transfer ownership of it to the application. To avoid leaking resources,+-- the application /must/ release ownership of the file descriptor using+-- the @close@ system call when it is no longer needed, or by importing a+-- Vulkan memory object from it. Where supported by the operating system,+-- the implementation /must/ set the file descriptor to be closed+-- automatically when an @execve@ system call is made.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pGetFdInfo@ /must/ be a valid pointer to a valid+--     @VkMemoryGetFdInfoKHR@ structure+--+-- -   @pFd@ /must/ be a valid pointer to a @int@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkMemoryGetFdInfoKHR'+foreign import ccall "vkGetMemoryFdKHR" vkGetMemoryFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkMemoryGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult+-- | vkGetMemoryFdPropertiesKHR - Get Properties of External Memory File+-- Descriptors+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that will be importing @fd@.+--+-- -   @handleType@ is the type of the handle @fd@.+--+-- -   @fd@ is the handle which will be imported.+--+-- -   @pMemoryFdProperties@ will return properties of the handle @fd@.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @fd@ /must/ be an external memory handle created outside of the+--     Vulkan API.+--+-- -   @handleType@ /must/ not be+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR@.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+--     value+--+-- -   @pMemoryFdProperties@ /must/ be a valid pointer to a+--     @VkMemoryFdPropertiesKHR@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits',+-- 'VkMemoryFdPropertiesKHR'+foreign import ccall "vkGetMemoryFdPropertiesKHR" vkGetMemoryFdPropertiesKHR :: ("device" ::: VkDevice) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr VkMemoryFdPropertiesKHR) -> IO VkResult+-- | VkImportMemoryFdInfoKHR - import memory created on the same physical+-- device from a file descriptor+--+-- = Description+-- #_description#+--+-- Importing memory from a file descriptor transfers ownership of the file+-- descriptor from the application to the Vulkan implementation. The+-- application /must/ not perform any operations on the file descriptor+-- after a successful import.+--+-- Applications /can/ import the same underlying memory into multiple+-- instances of Vulkan, into the same instance from which it was exported,+-- and multiple times into a given Vulkan instance. In all cases, each+-- import operation /must/ create a distinct @VkDeviceMemory@ object.+--+-- == Valid Usage+--+-- -   If @handleType@ is not @0@, it /must/ be supported for import, as+--     reported by+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties'+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties'.+--+-- -   The memory from which @fd@ was exported /must/ have been created on+--     the same underlying physical device as @device@.+--+-- -   If @handleType@ is not @0@, it /must/ be defined as a POSIX file+--     descriptor handle.+--+-- -   If @handleType@ is not @0@, @fd@ /must/ be a valid handle of the+--     type specified by @handleType@.+--+-- -   The memory represented by @fd@ /must/ have been created from a+--     physical device and driver that is compatible with @device@ and+--     @handleType@, as described in+--     <{html_spec_relative}#external-memory-handle-types-compatibility {html_spec_relative}#external-memory-handle-types-compatibility>.+--+-- -   @fd@ /must/ obey any requirements listed for @handleType@ in+--     <{html_spec_relative}#external-memory-handle-types-compatibility external memory handle types compatibility>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR@+--+-- -   If @handleType@ is not @0@, @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkImportMemoryFdInfoKHR = VkImportMemoryFdInfoKHR+  { -- No documentation found for Nested "VkImportMemoryFdInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportMemoryFdInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportMemoryFdInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalMemoryHandleTypeFlagBits+  , -- No documentation found for Nested "VkImportMemoryFdInfoKHR" "vkFd"+  vkFd :: CInt+  }+  deriving (Eq, Show)++instance Storable VkImportMemoryFdInfoKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkImportMemoryFdInfoKHR <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 20)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportMemoryFdInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportMemoryFdInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkHandleType (poked :: VkImportMemoryFdInfoKHR))+                *> poke (ptr `plusPtr` 20) (vkFd (poked :: VkImportMemoryFdInfoKHR))+-- | VkMemoryFdPropertiesKHR - Properties of External Memory File Descriptors+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetMemoryFdPropertiesKHR'+data VkMemoryFdPropertiesKHR = VkMemoryFdPropertiesKHR+  { -- No documentation found for Nested "VkMemoryFdPropertiesKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryFdPropertiesKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryFdPropertiesKHR" "vkMemoryTypeBits"+  vkMemoryTypeBits :: Word32+  }+  deriving (Eq, Show)++instance Storable VkMemoryFdPropertiesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMemoryFdPropertiesKHR <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryFdPropertiesKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryFdPropertiesKHR))+                *> poke (ptr `plusPtr` 16) (vkMemoryTypeBits (poked :: VkMemoryFdPropertiesKHR))+-- | VkMemoryGetFdInfoKHR - Structure describing a POSIX FD semaphore export+-- operation+--+-- = Description+-- #_description#+--+-- The properties of the file descriptor exported depend on the value of+-- @handleType@. See+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+-- for a description of the properties of the defined external memory+-- handle types.+--+-- == Valid Usage+--+-- -   @handleType@ /must/ have been included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo'::@handleTypes@+--     when @memory@ was created.+--+-- -   @handleType@ /must/ be defined as a POSIX file descriptor handle.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkGetMemoryFdKHR'+data VkMemoryGetFdInfoKHR = VkMemoryGetFdInfoKHR+  { -- No documentation found for Nested "VkMemoryGetFdInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryGetFdInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryGetFdInfoKHR" "vkMemory"+  vkMemory :: VkDeviceMemory+  , -- No documentation found for Nested "VkMemoryGetFdInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalMemoryHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkMemoryGetFdInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkMemoryGetFdInfoKHR <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 8)+                                  <*> peek (ptr `plusPtr` 16)+                                  <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryGetFdInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryGetFdInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkMemoryGetFdInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkHandleType (poked :: VkMemoryGetFdInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -0,0 +1,460 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32+  ( LPCWSTR+  , pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR+  , pattern VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR+  , pattern VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME+  , vkGetMemoryWin32HandleKHR+  , vkGetMemoryWin32HandlePropertiesKHR+  , VkImportMemoryWin32HandleInfoKHR(..)+  , VkExportMemoryWin32HandleInfoKHR(..)+  , VkMemoryWin32HandlePropertiesKHR(..)+  , VkMemoryGetWin32HandleInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CWchar+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagBits(..)+  )+import Graphics.Vulkan.Extensions.VK_NV_external_memory_win32+  ( DWORD+  , SECURITY_ATTRIBUTES+  , HANDLE+  )+++-- No documentation found for TopLevel "LPCWSTR"+type LPCWSTR = Ptr CWchar+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = VkStructureType 1000073000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = VkStructureType 1000073001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = VkStructureType 1000073002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = VkStructureType 1000073003+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME = "VK_KHR_external_memory_win32"+-- | vkGetMemoryWin32HandleKHR - Get a Windows HANDLE for a memory object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the device memory being+--     exported.+--+-- -   @pGetWin32HandleInfo@ is a pointer to an instance of the+--     'VkMemoryGetWin32HandleInfoKHR' structure containing parameters of+--     the export operation.+--+-- -   @pHandle@ will return the Windows handle representing the underlying+--     resources of the device memory object.+--+-- = Description+-- #_description#+--+-- For handle types defined as NT handles, the handles returned by+-- @vkGetMemoryWin32HandleKHR@ are owned by the application. To avoid+-- leaking resources, the application /must/ release ownership of them+-- using the @CloseHandle@ system call when they are no longer needed.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pGetWin32HandleInfo@ /must/ be a valid pointer to a valid+--     @VkMemoryGetWin32HandleInfoKHR@ structure+--+-- -   @pHandle@ /must/ be a valid pointer to a @HANDLE@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkMemoryGetWin32HandleInfoKHR'+foreign import ccall "vkGetMemoryWin32HandleKHR" vkGetMemoryWin32HandleKHR :: ("device" ::: VkDevice) -> ("pGetWin32HandleInfo" ::: Ptr VkMemoryGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO VkResult+-- | vkGetMemoryWin32HandlePropertiesKHR - Get Properties of External Memory+-- Win32 Handles+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that will be importing @handle@.+--+-- -   @handleType@ is the type of the handle @handle@.+--+-- -   @handle@ is the handle which will be imported.+--+-- -   @pMemoryWin32HandleProperties@ will return properties of @handle@.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @handle@ /must/ be an external memory handle created outside of the+--     Vulkan API.+--+-- -   @handleType@ /must/ not be one of the handle types defined as+--     opaque.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+--     value+--+-- -   @pMemoryWin32HandleProperties@ /must/ be a valid pointer to a+--     @VkMemoryWin32HandlePropertiesKHR@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits',+-- 'VkMemoryWin32HandlePropertiesKHR'+foreign import ccall "vkGetMemoryWin32HandlePropertiesKHR" vkGetMemoryWin32HandlePropertiesKHR :: ("device" ::: VkDevice) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> ("handle" ::: HANDLE) -> ("pMemoryWin32HandleProperties" ::: Ptr VkMemoryWin32HandlePropertiesKHR) -> IO VkResult+-- | VkImportMemoryWin32HandleInfoKHR - import Win32 memory created on the+-- same physical device+--+-- = Description+-- #_description#+--+-- Importing memory objects from Windows handles does not transfer+-- ownership of the handle to the Vulkan implementation. For handle types+-- defined as NT handles, the application /must/ release ownership using+-- the @CloseHandle@ system call when the handle is no longer needed.+--+-- Applications /can/ import the same underlying memory into multiple+-- instances of Vulkan, into the same instance from which it was exported,+-- and multiple times into a given Vulkan instance. In all cases, each+-- import operation /must/ create a distinct @VkDeviceMemory@ object.+--+-- == Valid Usage+--+-- -   If @handleType@ is not @0@, it /must/ be supported for import, as+--     reported by+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties'+--     or+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties'.+--+-- -   The memory from which @handle@ was exported, or the memory named by+--     @name@ /must/ have been created on the same underlying physical+--     device as @device@.+--+-- -   If @handleType@ is not @0@, it /must/ be defined as an NT handle or+--     a global share handle.+--+-- -   If @handleType@ is not+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT@,+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT@,+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT@, or+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT@, @name@ /must/+--     be @NULL@.+--+-- -   If @handleType@ is not @0@ and @handle@ is @NULL@, @name@ /must/+--     name a valid memory resource of the type specified by @handleType@.+--+-- -   If @handleType@ is not @0@ and @name@ is @NULL@, @handle@ /must/ be+--     a valid handle of the type specified by @handleType@.+--+-- -   if @handle@ is not @NULL@, @name@ must be @NULL@.+--+-- -   If @handle@ is not @NULL@, it /must/ obey any requirements listed+--     for @handleType@ in+--     <{html_spec_relative}#external-memory-handle-types-compatibility external memory handle types compatibility>.+--+-- -   If @name@ is not @NULL@, it /must/ obey any requirements listed for+--     @handleType@ in+--     <{html_spec_relative}#external-memory-handle-types-compatibility external memory handle types compatibility>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR@+--+-- -   If @handleType@ is not @0@, @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkImportMemoryWin32HandleInfoKHR = VkImportMemoryWin32HandleInfoKHR+  { -- No documentation found for Nested "VkImportMemoryWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportMemoryWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportMemoryWin32HandleInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalMemoryHandleTypeFlagBits+  , -- No documentation found for Nested "VkImportMemoryWin32HandleInfoKHR" "vkHandle"+  vkHandle :: HANDLE+  , -- No documentation found for Nested "VkImportMemoryWin32HandleInfoKHR" "vkName"+  vkName :: LPCWSTR+  }+  deriving (Eq, Show)++instance Storable VkImportMemoryWin32HandleInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkImportMemoryWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+                                              <*> peek (ptr `plusPtr` 24)+                                              <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportMemoryWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportMemoryWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkHandleType (poked :: VkImportMemoryWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkHandle (poked :: VkImportMemoryWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkName (poked :: VkImportMemoryWin32HandleInfoKHR))+-- | VkExportMemoryWin32HandleInfoKHR - Structure specifying additional+-- attributes of Windows handles exported from a memory+--+-- = Description+-- #_description#+--+-- If this structure is not present, or if @pAttributes@ is set to @NULL@,+-- default security descriptor values will be used, and child processes+-- created by the application will not inherit the handle, as described in+-- the MSDN documentation for “Synchronization Object Security and Access+-- Rights”1. Further, if the structure is not present, the access rights+-- will be+--+-- @DXGI_SHARED_RESOURCE_READ@ | @DXGI_SHARED_RESOURCE_WRITE@+--+-- for handles of the following types:+--+-- @VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT@+-- @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT@+--+-- And+--+-- @GENERIC_ALL@+--+-- for handles of the following types:+--+-- @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT@+-- @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT@+--+-- [1]+--     <https://msdn.microsoft.com/en-us/library/windows/desktop/ms686670.aspx>+--+-- == Valid Usage+--+-- -   If+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo'::@handleTypes@+--     does not include @VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT@,+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT@,+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT@, or+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT@,+--     VkExportMemoryWin32HandleInfoKHR /must/ not be in the @pNext@ chain+--     of 'Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR@+--+-- -   If @pAttributes@ is not @NULL@, @pAttributes@ /must/ be a valid+--     pointer to a valid @SECURITY_ATTRIBUTES@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkExportMemoryWin32HandleInfoKHR = VkExportMemoryWin32HandleInfoKHR+  { -- No documentation found for Nested "VkExportMemoryWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExportMemoryWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExportMemoryWin32HandleInfoKHR" "vkPAttributes"+  vkPAttributes :: Ptr SECURITY_ATTRIBUTES+  , -- No documentation found for Nested "VkExportMemoryWin32HandleInfoKHR" "vkDwAccess"+  vkDwAccess :: DWORD+  , -- No documentation found for Nested "VkExportMemoryWin32HandleInfoKHR" "vkName"+  vkName :: LPCWSTR+  }+  deriving (Eq, Show)++instance Storable VkExportMemoryWin32HandleInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkExportMemoryWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+                                              <*> peek (ptr `plusPtr` 24)+                                              <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportMemoryWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportMemoryWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkPAttributes (poked :: VkExportMemoryWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkDwAccess (poked :: VkExportMemoryWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkName (poked :: VkExportMemoryWin32HandleInfoKHR))+-- | VkMemoryWin32HandlePropertiesKHR - Properties of External Memory Windows+-- Handles+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetMemoryWin32HandlePropertiesKHR'+data VkMemoryWin32HandlePropertiesKHR = VkMemoryWin32HandlePropertiesKHR+  { -- No documentation found for Nested "VkMemoryWin32HandlePropertiesKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryWin32HandlePropertiesKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryWin32HandlePropertiesKHR" "vkMemoryTypeBits"+  vkMemoryTypeBits :: Word32+  }+  deriving (Eq, Show)++instance Storable VkMemoryWin32HandlePropertiesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkMemoryWin32HandlePropertiesKHR <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryWin32HandlePropertiesKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryWin32HandlePropertiesKHR))+                *> poke (ptr `plusPtr` 16) (vkMemoryTypeBits (poked :: VkMemoryWin32HandlePropertiesKHR))+-- | VkMemoryGetWin32HandleInfoKHR - Structure describing a Win32 handle+-- semaphore export operation+--+-- = Description+-- #_description#+--+-- The properties of the handle returned depend on the value of+-- @handleType@. See+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+-- for a description of the properties of the defined external memory+-- handle types.+--+-- == Valid Usage+--+-- -   @handleType@ /must/ have been included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo'::@handleTypes@+--     when @memory@ was created.+--+-- -   If @handleType@ is defined as an NT handle,+--     'vkGetMemoryWin32HandleKHR' /must/ be called no more than once for+--     each valid unique combination of @memory@ and @handleType@.+--+-- -   @handleType@ /must/ be defined as an NT handle or a global share+--     handle.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetMemoryWin32HandleKHR'+data VkMemoryGetWin32HandleInfoKHR = VkMemoryGetWin32HandleInfoKHR+  { -- No documentation found for Nested "VkMemoryGetWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMemoryGetWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMemoryGetWin32HandleInfoKHR" "vkMemory"+  vkMemory :: VkDeviceMemory+  , -- No documentation found for Nested "VkMemoryGetWin32HandleInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalMemoryHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkMemoryGetWin32HandleInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkMemoryGetWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkMemoryGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkHandleType (poked :: VkMemoryGetWin32HandleInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_semaphore.hs view
@@ -0,0 +1,67 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore+  ( pattern VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME+  , VkSemaphoreImportFlagBitsKHR+  , VkSemaphoreImportFlagsKHR+  , VkExportSemaphoreCreateInfoKHR+  , pattern VkExportSemaphoreCreateInfoKHR+  , pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR+  , pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore+  ( pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT+  , pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO+  , VkExportSemaphoreCreateInfo(..)+  , VkSemaphoreImportFlags+  , VkSemaphoreImportFlagBits(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+  ( VkExternalSemaphoreHandleTypeFlags+  )+++-- No documentation found for TopLevel "VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME = "VK_KHR_external_semaphore"+-- No documentation found for TopLevel "VkSemaphoreImportFlagBitsKHR"+type VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits+-- No documentation found for TopLevel "VkSemaphoreImportFlagsKHR"+type VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags+-- No documentation found for TopLevel "VkExportSemaphoreCreateInfoKHR"+type VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo+++-- No documentation found for TopLevel "VkExportSemaphoreCreateInfoKHR"+pattern VkExportSemaphoreCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("handleTypes" ::: VkExternalSemaphoreHandleTypeFlags) -> VkExportSemaphoreCreateInfoKHR+pattern VkExportSemaphoreCreateInfoKHR vkSType vkPNext vkHandleTypes = VkExportSemaphoreCreateInfo vkSType vkPNext vkHandleTypes+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO+-- No documentation found for TopLevel "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR"+pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR :: VkSemaphoreImportFlagBits+pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs view
@@ -0,0 +1,125 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities+  ( pattern VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME+  , vkGetPhysicalDeviceExternalSemaphorePropertiesKHR+  , VkExternalSemaphoreHandleTypeFlagBitsKHR+  , VkExternalSemaphoreFeatureFlagBitsKHR+  , VkExternalSemaphoreHandleTypeFlagsKHR+  , VkExternalSemaphoreFeatureFlagsKHR+  , VkPhysicalDeviceExternalSemaphoreInfoKHR+  , pattern VkPhysicalDeviceExternalSemaphoreInfoKHR+  , VkExternalSemaphorePropertiesKHR+  , pattern VkExternalSemaphorePropertiesKHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR+  , pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR+  , pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+  ( pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT+  , pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT+  , pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO+  , VkExternalSemaphoreFeatureFlags+  , VkExternalSemaphoreHandleTypeFlags+  , VkExternalSemaphoreFeatureFlagBits(..)+  , VkExternalSemaphoreHandleTypeFlagBits(..)+  , VkExternalSemaphoreProperties(..)+  , VkPhysicalDeviceExternalSemaphoreInfo(..)+  , vkGetPhysicalDeviceExternalSemaphoreProperties+  )+++-- No documentation found for TopLevel "VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_semaphore_capabilities"+-- No documentation found for TopLevel "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"+vkGetPhysicalDeviceExternalSemaphorePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalSemaphoreInfo" ::: Ptr VkPhysicalDeviceExternalSemaphoreInfo) -> ("pExternalSemaphoreProperties" ::: Ptr VkExternalSemaphoreProperties) -> IO ()+vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = vkGetPhysicalDeviceExternalSemaphoreProperties+-- No documentation found for TopLevel "VkExternalSemaphoreHandleTypeFlagBitsKHR"+type VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits+-- No documentation found for TopLevel "VkExternalSemaphoreFeatureFlagBitsKHR"+type VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits+-- No documentation found for TopLevel "VkExternalSemaphoreHandleTypeFlagsKHR"+type VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags+-- No documentation found for TopLevel "VkExternalSemaphoreFeatureFlagsKHR"+type VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags+-- No documentation found for TopLevel "VkPhysicalDeviceExternalSemaphoreInfoKHR"+type VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo+++-- No documentation found for TopLevel "VkPhysicalDeviceExternalSemaphoreInfoKHR"+pattern VkPhysicalDeviceExternalSemaphoreInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("handleType" ::: VkExternalSemaphoreHandleTypeFlagBits) -> VkPhysicalDeviceExternalSemaphoreInfoKHR+pattern VkPhysicalDeviceExternalSemaphoreInfoKHR vkSType vkPNext vkHandleType = VkPhysicalDeviceExternalSemaphoreInfo vkSType vkPNext vkHandleType+-- No documentation found for TopLevel "VkExternalSemaphorePropertiesKHR"+type VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties+++-- No documentation found for TopLevel "VkExternalSemaphorePropertiesKHR"+pattern VkExternalSemaphorePropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("exportFromImportedHandleTypes" ::: VkExternalSemaphoreHandleTypeFlags) -> ("compatibleHandleTypes" ::: VkExternalSemaphoreHandleTypeFlags) -> ("externalSemaphoreFeatures" ::: VkExternalSemaphoreFeatureFlags) -> VkExternalSemaphorePropertiesKHR+pattern VkExternalSemaphorePropertiesKHR vkSType vkPNext vkExportFromImportedHandleTypes vkCompatibleHandleTypes vkExternalSemaphoreFeatures = VkExternalSemaphoreProperties vkSType vkPNext vkExportFromImportedHandleTypes vkCompatibleHandleTypes vkExternalSemaphoreFeatures+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES+-- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR"+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR :: VkExternalSemaphoreHandleTypeFlagBits+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR"+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR :: VkExternalSemaphoreFeatureFlagBits+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT+-- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR"+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR :: VkExternalSemaphoreFeatureFlagBits+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs view
@@ -0,0 +1,349 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd+  ( pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR+  , pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME+  , vkGetSemaphoreFdKHR+  , vkImportSemaphoreFdKHR+  , VkImportSemaphoreFdInfoKHR(..)+  , VkSemaphoreGetFdInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Foreign.C.Types+  ( CInt(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkSemaphore+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore+  ( VkSemaphoreImportFlags+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+  ( VkExternalSemaphoreHandleTypeFlagBits(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = VkStructureType 1000079000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"+pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = VkStructureType 1000079001+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME = "VK_KHR_external_semaphore_fd"+-- | vkGetSemaphoreFdKHR - Get a POSIX file descriptor handle for a semaphore+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the semaphore being+--     exported.+--+-- -   @pGetFdInfo@ is a pointer to an instance of the+--     'VkSemaphoreGetFdInfoKHR' structure containing parameters of the+--     export operation.+--+-- -   @pFd@ will return the file descriptor representing the semaphore+--     payload.+--+-- = Description+-- #_description#+--+-- Each call to @vkGetSemaphoreFdKHR@ /must/ create a new file descriptor+-- and transfer ownership of it to the application. To avoid leaking+-- resources, the application /must/ release ownership of the file+-- descriptor when it is no longer needed.+--+-- __Note__+--+-- Ownership can be released in many ways. For example, the application can+-- call @close@() on the file descriptor, or transfer ownership back to+-- Vulkan by using the file descriptor to import a semaphore payload.+--+-- Where supported by the operating system, the implementation /must/ set+-- the file descriptor to be closed automatically when an @execve@ system+-- call is made.+--+-- Exporting a file descriptor from a semaphore /may/ have side effects+-- depending on the transference of the specified handle type, as described+-- in+-- <{html_spec_relative}#synchronization-semaphores-importing Importing Semaphore State>.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pGetFdInfo@ /must/ be a valid pointer to a valid+--     @VkSemaphoreGetFdInfoKHR@ structure+--+-- -   @pFd@ /must/ be a valid pointer to a @int@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkSemaphoreGetFdInfoKHR'+foreign import ccall "vkGetSemaphoreFdKHR" vkGetSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkSemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult+-- | vkImportSemaphoreFdKHR - Import a semaphore from a POSIX file descriptor+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the semaphore.+--+-- -   @pImportSemaphoreFdInfo@ points to a 'VkImportSemaphoreFdInfoKHR'+--     structure specifying the semaphore and import parameters.+--+-- = Description+-- #_description#+--+-- Importing a semaphore payload from a file descriptor transfers ownership+-- of the file descriptor from the application to the Vulkan+-- implementation. The application /must/ not perform any operations on the+-- file descriptor after a successful import.+--+-- Applications /can/ import the same semaphore payload into multiple+-- instances of Vulkan, into the same instance from which it was exported,+-- and multiple times into a given Vulkan instance.+--+-- == Valid Usage+--+-- -   @semaphore@ /must/ not be associated with any queue command that has+--     not yet completed execution on that queue+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pImportSemaphoreFdInfo@ /must/ be a valid pointer to a valid+--     @VkImportSemaphoreFdInfoKHR@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkImportSemaphoreFdInfoKHR'+foreign import ccall "vkImportSemaphoreFdKHR" vkImportSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreFdInfo" ::: Ptr VkImportSemaphoreFdInfoKHR) -> IO VkResult+-- | VkImportSemaphoreFdInfoKHR - Structure specifying POSIX file descriptor+-- to import to a semaphore+--+-- = Description+-- #_description#+--+-- The handle types supported by @handleType@ are:+--+-- > +-----------------------+-----------------------+-----------------------++-- > | Handle Type           | Transference          | Permanence Supported  |+-- > +=======================+=======================+=======================++-- > | @VK_EXTERNAL_SEMAPHOR | Reference             | Temporary,Permanent   |+-- > | E_HANDLE_TYPE_OPAQUE_ |                       |                       |+-- > | FD_BIT@               |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | @VK_EXTERNAL_SEMAPHOR | Copy                  | Temporary             |+-- > | E_HANDLE_TYPE_SYNC_FD |                       |                       |+-- > | _BIT@                 |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- >+-- > Handle Types Supported by VkImportSemaphoreFdInfoKHR+--+-- == Valid Usage+--+-- -   @handleType@ /must/ be a value included in the+--     <{html_spec_relative}#synchronization-semaphore-handletypes-fd Handle Types Supported by VkImportSemaphoreFdInfoKHR>+--     table.+--+-- -   @fd@ /must/ obey any requirements listed for @handleType@ in+--     <{html_spec_relative}#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @semaphore@ /must/ be a valid @VkSemaphore@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits'+--     values+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits'+--     value+--+-- == Host Synchronization+--+-- -   Host access to @semaphore@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkImportSemaphoreFdKHR'+data VkImportSemaphoreFdInfoKHR = VkImportSemaphoreFdInfoKHR+  { -- No documentation found for Nested "VkImportSemaphoreFdInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportSemaphoreFdInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportSemaphoreFdInfoKHR" "vkSemaphore"+  vkSemaphore :: VkSemaphore+  , -- No documentation found for Nested "VkImportSemaphoreFdInfoKHR" "vkFlags"+  vkFlags :: VkSemaphoreImportFlags+  , -- No documentation found for Nested "VkImportSemaphoreFdInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalSemaphoreHandleTypeFlagBits+  , -- No documentation found for Nested "VkImportSemaphoreFdInfoKHR" "vkFd"+  vkFd :: CInt+  }+  deriving (Eq, Show)++instance Storable VkImportSemaphoreFdInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkImportSemaphoreFdInfoKHR <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+                                        <*> peek (ptr `plusPtr` 24)+                                        <*> peek (ptr `plusPtr` 28)+                                        <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportSemaphoreFdInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportSemaphoreFdInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSemaphore (poked :: VkImportSemaphoreFdInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkFlags (poked :: VkImportSemaphoreFdInfoKHR))+                *> poke (ptr `plusPtr` 28) (vkHandleType (poked :: VkImportSemaphoreFdInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkFd (poked :: VkImportSemaphoreFdInfoKHR))+-- | VkSemaphoreGetFdInfoKHR - Structure describing a POSIX FD semaphore+-- export operation+--+-- = Description+-- #_description#+--+-- The properties of the file descriptor returned depend on the value of+-- @handleType@. See+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits'+-- for a description of the properties of the defined external semaphore+-- handle types.+--+-- == Valid Usage+--+-- -   @handleType@ /must/ have been included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo'::@handleTypes@+--     when @semaphore@’s current payload was created.+--+-- -   @semaphore@ /must/ not currently have its payload replaced by an+--     imported payload as described below in+--     <{html_spec_relative}#synchronization-semaphores-importing Importing Semaphore Payloads>+--     unless that imported payload’s handle type was included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties'::@exportFromImportedHandleTypes@+--     for @handleType@.+--+-- -   If @handleType@ refers to a handle type with copy payload+--     transference semantics, as defined below in+--     <{html_spec_relative}#synchronization-semaphores-importing Importing Semaphore Payloads>,+--     there /must/ be no queue waiting on @semaphore@.+--+-- -   If @handleType@ refers to a handle type with copy payload+--     transference semantics, @semaphore@ /must/ be signaled, or have an+--     associated+--     <{html_spec_relative}#synchronization-semaphores-signaling semaphore signal operation>+--     pending execution.+--+-- -   @handleType@ /must/ be defined as a POSIX file descriptor handle.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @semaphore@ /must/ be a valid @VkSemaphore@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkGetSemaphoreFdKHR'+data VkSemaphoreGetFdInfoKHR = VkSemaphoreGetFdInfoKHR+  { -- No documentation found for Nested "VkSemaphoreGetFdInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSemaphoreGetFdInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSemaphoreGetFdInfoKHR" "vkSemaphore"+  vkSemaphore :: VkSemaphore+  , -- No documentation found for Nested "VkSemaphoreGetFdInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalSemaphoreHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkSemaphoreGetFdInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkSemaphoreGetFdInfoKHR <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSemaphoreGetFdInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSemaphoreGetFdInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSemaphore (poked :: VkSemaphoreGetFdInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkHandleType (poked :: VkSemaphoreGetFdInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -0,0 +1,544 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32+  ( pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR+  , pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION+  , pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME+  , vkGetSemaphoreWin32HandleKHR+  , vkImportSemaphoreWin32HandleKHR+  , VkImportSemaphoreWin32HandleInfoKHR(..)+  , VkExportSemaphoreWin32HandleInfoKHR(..)+  , VkD3D12FenceSubmitInfoKHR(..)+  , VkSemaphoreGetWin32HandleInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word64+  , Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Queue+  ( VkSemaphore+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore+  ( VkSemaphoreImportFlags+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+  ( VkExternalSemaphoreHandleTypeFlagBits(..)+  )+import Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32+  ( LPCWSTR+  )+import Graphics.Vulkan.Extensions.VK_NV_external_memory_win32+  ( DWORD+  , SECURITY_ATTRIBUTES+  , HANDLE+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = VkStructureType 1000078000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = VkStructureType 1000078001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"+pattern VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = VkStructureType 1000078002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = VkStructureType 1000078003+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION"+pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION :: Integral a => a+pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME"+pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME = "VK_KHR_external_semaphore_win32"+-- | vkGetSemaphoreWin32HandleKHR - Get a Windows HANDLE for a semaphore+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the semaphore being+--     exported.+--+-- -   @pGetWin32HandleInfo@ is a pointer to an instance of the+--     'VkSemaphoreGetWin32HandleInfoKHR' structure containing parameters+--     of the export operation.+--+-- -   @pHandle@ will return the Windows handle representing the semaphore+--     state.+--+-- = Description+-- #_description#+--+-- For handle types defined as NT handles, the handles returned by+-- @vkGetSemaphoreWin32HandleKHR@ are owned by the application. To avoid+-- leaking resources, the application /must/ release ownership of them+-- using the @CloseHandle@ system call when they are no longer needed.+--+-- Exporting a Windows handle from a semaphore /may/ have side effects+-- depending on the transference of the specified handle type, as described+-- in+-- <{html_spec_relative}#synchronization-semaphores-importing Importing Semaphore Payloads>.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pGetWin32HandleInfo@ /must/ be a valid pointer to a valid+--     @VkSemaphoreGetWin32HandleInfoKHR@ structure+--+-- -   @pHandle@ /must/ be a valid pointer to a @HANDLE@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkSemaphoreGetWin32HandleInfoKHR'+foreign import ccall "vkGetSemaphoreWin32HandleKHR" vkGetSemaphoreWin32HandleKHR :: ("device" ::: VkDevice) -> ("pGetWin32HandleInfo" ::: Ptr VkSemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO VkResult+-- | vkImportSemaphoreWin32HandleKHR - Import a semaphore from a Windows+-- HANDLE+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that created the semaphore.+--+-- -   @pImportSemaphoreWin32HandleInfo@ points to a+--     'VkImportSemaphoreWin32HandleInfoKHR' structure specifying the+--     semaphore and import parameters.+--+-- = Description+-- #_description#+--+-- Importing a semaphore payload from Windows handles does not transfer+-- ownership of the handle to the Vulkan implementation. For handle types+-- defined as NT handles, the application /must/ release ownership using+-- the @CloseHandle@ system call when the handle is no longer needed.+--+-- Applications /can/ import the same semaphore payload into multiple+-- instances of Vulkan, into the same instance from which it was exported,+-- and multiple times into a given Vulkan instance.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pImportSemaphoreWin32HandleInfo@ /must/ be a valid pointer to a+--     valid @VkImportSemaphoreWin32HandleInfoKHR@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_INVALID_EXTERNAL_HANDLE@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkImportSemaphoreWin32HandleInfoKHR'+foreign import ccall "vkImportSemaphoreWin32HandleKHR" vkImportSemaphoreWin32HandleKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr VkImportSemaphoreWin32HandleInfoKHR) -> IO VkResult+-- | VkImportSemaphoreWin32HandleInfoKHR - Structure specifying Windows+-- handle to import to a semaphore+--+-- = Description+-- #_description#+--+-- The handle types supported by @handleType@ are:+--+-- > +-----------------------+-----------------------+-----------------------++-- > | Handle Type           | Transference          | Permanence Supported  |+-- > +=======================+=======================+=======================++-- > | @VK_EXTERNAL_SEMAPHOR | Reference             | Temporary,Permanent   |+-- > | E_HANDLE_TYPE_OPAQUE_ |                       |                       |+-- > | WIN32_BIT@            |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | @VK_EXTERNAL_SEMAPHOR | Reference             | Temporary,Permanent   |+-- > | E_HANDLE_TYPE_OPAQUE_ |                       |                       |+-- > | WIN32_KMT_BIT@        |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- > | @VK_EXTERNAL_SEMAPHOR | Reference             | Temporary,Permanent   |+-- > | E_HANDLE_TYPE_D3D12_F |                       |                       |+-- > | ENCE_BIT@             |                       |                       |+-- > +-----------------------+-----------------------+-----------------------++-- >+-- > Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR+--+-- == Valid Usage+--+-- -   @handleType@ /must/ be a value included in the+--     <{html_spec_relative}#synchronization-semaphore-handletypes-win32 Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR>+--     table.+--+-- -   If @handleType@ is not+--     @VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT@ or+--     @VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT@, @name@ /must/+--     be @NULL@.+--+-- -   If @handleType@ is not @0@ and @handle@ is @NULL@, @name@ /must/+--     name a valid synchronization primitive of the type specified by+--     @handleType@.+--+-- -   If @handleType@ is not @0@ and @name@ is @NULL@, @handle@ /must/ be+--     a valid handle of the type specified by @handleType@.+--+-- -   If @handle@ is not @NULL@, @name@ must be @NULL@.+--+-- -   If @handle@ is not @NULL@, it /must/ obey any requirements listed+--     for @handleType@ in+--     <{html_spec_relative}#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>.+--+-- -   If @name@ is not @NULL@, it /must/ obey any requirements listed for+--     @handleType@ in+--     <{html_spec_relative}#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @semaphore@ /must/ be a valid @VkSemaphore@ handle+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits'+--     values+--+-- -   If @handleType@ is not @0@, @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits'+--     value+--+-- == Host Synchronization+--+-- -   Host access to @semaphore@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkImportSemaphoreWin32HandleKHR'+data VkImportSemaphoreWin32HandleInfoKHR = VkImportSemaphoreWin32HandleInfoKHR+  { -- No documentation found for Nested "VkImportSemaphoreWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportSemaphoreWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportSemaphoreWin32HandleInfoKHR" "vkSemaphore"+  vkSemaphore :: VkSemaphore+  , -- No documentation found for Nested "VkImportSemaphoreWin32HandleInfoKHR" "vkFlags"+  vkFlags :: VkSemaphoreImportFlags+  , -- No documentation found for Nested "VkImportSemaphoreWin32HandleInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalSemaphoreHandleTypeFlagBits+  , -- No documentation found for Nested "VkImportSemaphoreWin32HandleInfoKHR" "vkHandle"+  vkHandle :: HANDLE+  , -- No documentation found for Nested "VkImportSemaphoreWin32HandleInfoKHR" "vkName"+  vkName :: LPCWSTR+  }+  deriving (Eq, Show)++instance Storable VkImportSemaphoreWin32HandleInfoKHR where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkImportSemaphoreWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+                                                 <*> peek (ptr `plusPtr` 24)+                                                 <*> peek (ptr `plusPtr` 28)+                                                 <*> peek (ptr `plusPtr` 32)+                                                 <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSemaphore (poked :: VkImportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkFlags (poked :: VkImportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 28) (vkHandleType (poked :: VkImportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkHandle (poked :: VkImportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 40) (vkName (poked :: VkImportSemaphoreWin32HandleInfoKHR))+-- | VkExportSemaphoreWin32HandleInfoKHR - Structure specifying additional+-- attributes of Windows handles exported from a semaphore+--+-- = Description+-- #_description#+--+-- If this structure is not present, or if @pAttributes@ is set to @NULL@,+-- default security descriptor values will be used, and child processes+-- created by the application will not inherit the handle, as described in+-- the MSDN documentation for “Synchronization Object Security and Access+-- Rights”1. Further, if the structure is not present, the access rights+-- will be+--+-- @DXGI_SHARED_RESOURCE_READ@ | @DXGI_SHARED_RESOURCE_WRITE@+--+-- for handles of the following types:+--+-- @VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT@+--+-- And+--+-- @GENERIC_ALL@+--+-- for handles of the following types:+--+-- @VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT@+--+-- [1]+--     <https://msdn.microsoft.com/en-us/library/windows/desktop/ms686670.aspx>+--+-- == Valid Usage+--+-- -   If+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo'::@handleTypes@+--     does not include+--     @VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT@ or+--     @VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT@,+--     @VkExportSemaphoreWin32HandleInfoKHR@ /must/ not be in the @pNext@+--     chain of+--     'Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateInfo'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR@+--+-- -   If @pAttributes@ is not @NULL@, @pAttributes@ /must/ be a valid+--     pointer to a valid @SECURITY_ATTRIBUTES@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkExportSemaphoreWin32HandleInfoKHR = VkExportSemaphoreWin32HandleInfoKHR+  { -- No documentation found for Nested "VkExportSemaphoreWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExportSemaphoreWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExportSemaphoreWin32HandleInfoKHR" "vkPAttributes"+  vkPAttributes :: Ptr SECURITY_ATTRIBUTES+  , -- No documentation found for Nested "VkExportSemaphoreWin32HandleInfoKHR" "vkDwAccess"+  vkDwAccess :: DWORD+  , -- No documentation found for Nested "VkExportSemaphoreWin32HandleInfoKHR" "vkName"+  vkName :: LPCWSTR+  }+  deriving (Eq, Show)++instance Storable VkExportSemaphoreWin32HandleInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkExportSemaphoreWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+                                                 <*> peek (ptr `plusPtr` 24)+                                                 <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkPAttributes (poked :: VkExportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkDwAccess (poked :: VkExportSemaphoreWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkName (poked :: VkExportSemaphoreWin32HandleInfoKHR))+-- | VkD3D12FenceSubmitInfoKHR - Structure specifying values for Direct3D 12+-- fence-backed semaphores+--+-- = Description+-- #_description#+--+-- If the semaphore in+-- 'Graphics.Vulkan.Core10.Queue.VkSubmitInfo'::@pWaitSemaphores@ or+-- 'Graphics.Vulkan.Core10.Queue.VkSubmitInfo'::@pSignalSemaphores@+-- corresponding to an entry in @pWaitSemaphoreValues@ or+-- @pSignalSemaphoreValues@ respectively does not currently have a+-- <{html_spec_relative}#synchronization-semaphores-payloads payload>+-- referring to a Direct3D 12 fence, the implementation /must/ ignore the+-- value in the @pWaitSemaphoreValues@ or @pSignalSemaphoreValues@ entry.+--+-- == Valid Usage+--+-- -   @waitSemaphoreValuesCount@ /must/ be the same value as+--     @VkSubmitInfo@::@waitSemaphoreCount@, where @VkSubmitInfo@ is in the+--     @pNext@ chain of this @VkD3D12FenceSubmitInfoKHR@ structure.+--+-- -   @signalSemaphoreValuesCount@ /must/ be the same value as+--     @VkSubmitInfo@::@signalSemaphoreCount@, where @VkSubmitInfo@ is in+--     the @pNext@ chain of this @VkD3D12FenceSubmitInfoKHR@ structure.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR@+--+-- -   If @waitSemaphoreValuesCount@ is not @0@, and @pWaitSemaphoreValues@+--     is not @NULL@, @pWaitSemaphoreValues@ /must/ be a valid pointer to+--     an array of @waitSemaphoreValuesCount@ @uint64_t@ values+--+-- -   If @signalSemaphoreValuesCount@ is not @0@, and+--     @pSignalSemaphoreValues@ is not @NULL@, @pSignalSemaphoreValues@+--     /must/ be a valid pointer to an array of+--     @signalSemaphoreValuesCount@ @uint64_t@ values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkD3D12FenceSubmitInfoKHR = VkD3D12FenceSubmitInfoKHR+  { -- No documentation found for Nested "VkD3D12FenceSubmitInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkD3D12FenceSubmitInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkD3D12FenceSubmitInfoKHR" "vkWaitSemaphoreValuesCount"+  vkWaitSemaphoreValuesCount :: Word32+  , -- No documentation found for Nested "VkD3D12FenceSubmitInfoKHR" "vkPWaitSemaphoreValues"+  vkPWaitSemaphoreValues :: Ptr Word64+  , -- No documentation found for Nested "VkD3D12FenceSubmitInfoKHR" "vkSignalSemaphoreValuesCount"+  vkSignalSemaphoreValuesCount :: Word32+  , -- No documentation found for Nested "VkD3D12FenceSubmitInfoKHR" "vkPSignalSemaphoreValues"+  vkPSignalSemaphoreValues :: Ptr Word64+  }+  deriving (Eq, Show)++instance Storable VkD3D12FenceSubmitInfoKHR where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkD3D12FenceSubmitInfoKHR <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 24)+                                       <*> peek (ptr `plusPtr` 32)+                                       <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkD3D12FenceSubmitInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkD3D12FenceSubmitInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkWaitSemaphoreValuesCount (poked :: VkD3D12FenceSubmitInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkPWaitSemaphoreValues (poked :: VkD3D12FenceSubmitInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkSignalSemaphoreValuesCount (poked :: VkD3D12FenceSubmitInfoKHR))+                *> poke (ptr `plusPtr` 40) (vkPSignalSemaphoreValues (poked :: VkD3D12FenceSubmitInfoKHR))+-- | VkSemaphoreGetWin32HandleInfoKHR - Structure describing a Win32 handle+-- semaphore export operation+--+-- = Description+-- #_description#+--+-- The properties of the handle returned depend on the value of+-- @handleType@. See+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits'+-- for a description of the properties of the defined external semaphore+-- handle types.+--+-- == Valid Usage+--+-- -   @handleType@ /must/ have been included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo'::@handleTypes@+--     when the @semaphore@’s current payload was created.+--+-- -   If @handleType@ is defined as an NT handle,+--     'vkGetSemaphoreWin32HandleKHR' /must/ be called no more than once+--     for each valid unique combination of @semaphore@ and @handleType@.+--+-- -   @semaphore@ /must/ not currently have its payload replaced by an+--     imported payload as described below in+--     <{html_spec_relative}#synchronization-semaphores-importing Importing Semaphore Payloads>+--     unless that imported payload’s handle type was included in+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties'::@exportFromImportedHandleTypes@+--     for @handleType@.+--+-- -   If @handleType@ refers to a handle type with copy payload+--     transference semantics, as defined below in+--     <{html_spec_relative}#synchronization-semaphores-importing Importing Semaphore Payloads>,+--     there /must/ be no queue waiting on @semaphore@.+--+-- -   If @handleType@ refers to a handle type with copy payload+--     transference semantics, @semaphore@ /must/ be signaled, or have an+--     associated+--     <{html_spec_relative}#synchronization-semaphores-signaling semaphore signal operation>+--     pending execution.+--+-- -   @handleType@ /must/ be defined as an NT handle or a global share+--     handle.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @semaphore@ /must/ be a valid @VkSemaphore@ handle+--+-- -   @handleType@ /must/ be a valid+--     'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits'+--     value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetSemaphoreWin32HandleKHR'+data VkSemaphoreGetWin32HandleInfoKHR = VkSemaphoreGetWin32HandleInfoKHR+  { -- No documentation found for Nested "VkSemaphoreGetWin32HandleInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSemaphoreGetWin32HandleInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSemaphoreGetWin32HandleInfoKHR" "vkSemaphore"+  vkSemaphore :: VkSemaphore+  , -- No documentation found for Nested "VkSemaphoreGetWin32HandleInfoKHR" "vkHandleType"+  vkHandleType :: VkExternalSemaphoreHandleTypeFlagBits+  }+  deriving (Eq, Show)++instance Storable VkSemaphoreGetWin32HandleInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkSemaphoreGetWin32HandleInfoKHR <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+                                              <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSemaphoreGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSemaphoreGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSemaphore (poked :: VkSemaphoreGetWin32HandleInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkHandleType (poked :: VkSemaphoreGetWin32HandleInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs view
@@ -0,0 +1,140 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2+  ( pattern VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION+  , pattern VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME+  , vkGetBufferMemoryRequirements2KHR+  , vkGetImageMemoryRequirements2KHR+  , vkGetImageSparseMemoryRequirements2KHR+  , VkBufferMemoryRequirementsInfo2KHR+  , pattern VkBufferMemoryRequirementsInfo2KHR+  , VkImageMemoryRequirementsInfo2KHR+  , pattern VkImageMemoryRequirementsInfo2KHR+  , VkImageSparseMemoryRequirementsInfo2KHR+  , pattern VkImageSparseMemoryRequirementsInfo2KHR+  , VkMemoryRequirements2KHR+  , pattern VkMemoryRequirements2KHR+  , VkSparseImageMemoryRequirements2KHR+  , pattern VkSparseImageMemoryRequirements2KHR+  , pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR+  , pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR+  , pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR+  , pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR+  , pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkMemoryRequirements(..)+  , VkImage+  , VkBuffer+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkSparseImageMemoryRequirements(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2+  ( pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2+  , pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2+  , pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2+  , pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2+  , pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2+  , VkSparseImageMemoryRequirements2(..)+  , VkImageSparseMemoryRequirementsInfo2(..)+  , vkGetImageSparseMemoryRequirements2+  , VkImageMemoryRequirementsInfo2(..)+  , vkGetImageMemoryRequirements2+  , VkMemoryRequirements2(..)+  , VkBufferMemoryRequirementsInfo2(..)+  , vkGetBufferMemoryRequirements2+  )+++-- No documentation found for TopLevel "VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION"+pattern VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION :: Integral a => a+pattern VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME"+pattern VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME = "VK_KHR_get_memory_requirements2"+-- No documentation found for TopLevel "vkGetBufferMemoryRequirements2KHR"+vkGetBufferMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkBufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO ()+vkGetBufferMemoryRequirements2KHR = vkGetBufferMemoryRequirements2+-- No documentation found for TopLevel "vkGetImageMemoryRequirements2KHR"+vkGetImageMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO ()+vkGetImageMemoryRequirements2KHR = vkGetImageMemoryRequirements2+-- No documentation found for TopLevel "vkGetImageSparseMemoryRequirements2KHR"+vkGetImageSparseMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements2) -> IO ()+vkGetImageSparseMemoryRequirements2KHR = vkGetImageSparseMemoryRequirements2+-- No documentation found for TopLevel "VkBufferMemoryRequirementsInfo2KHR"+type VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2+++-- No documentation found for TopLevel "VkBufferMemoryRequirementsInfo2KHR"+pattern VkBufferMemoryRequirementsInfo2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("buffer" ::: VkBuffer) -> VkBufferMemoryRequirementsInfo2KHR+pattern VkBufferMemoryRequirementsInfo2KHR vkSType vkPNext vkBuffer = VkBufferMemoryRequirementsInfo2 vkSType vkPNext vkBuffer+-- No documentation found for TopLevel "VkImageMemoryRequirementsInfo2KHR"+type VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2+++-- No documentation found for TopLevel "VkImageMemoryRequirementsInfo2KHR"+pattern VkImageMemoryRequirementsInfo2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("image" ::: VkImage) -> VkImageMemoryRequirementsInfo2KHR+pattern VkImageMemoryRequirementsInfo2KHR vkSType vkPNext vkImage = VkImageMemoryRequirementsInfo2 vkSType vkPNext vkImage+-- No documentation found for TopLevel "VkImageSparseMemoryRequirementsInfo2KHR"+type VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2+++-- No documentation found for TopLevel "VkImageSparseMemoryRequirementsInfo2KHR"+pattern VkImageSparseMemoryRequirementsInfo2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("image" ::: VkImage) -> VkImageSparseMemoryRequirementsInfo2KHR+pattern VkImageSparseMemoryRequirementsInfo2KHR vkSType vkPNext vkImage = VkImageSparseMemoryRequirementsInfo2 vkSType vkPNext vkImage+-- No documentation found for TopLevel "VkMemoryRequirements2KHR"+type VkMemoryRequirements2KHR = VkMemoryRequirements2+++-- No documentation found for TopLevel "VkMemoryRequirements2KHR"+pattern VkMemoryRequirements2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("memoryRequirements" ::: VkMemoryRequirements) -> VkMemoryRequirements2KHR+pattern VkMemoryRequirements2KHR vkSType vkPNext vkMemoryRequirements = VkMemoryRequirements2 vkSType vkPNext vkMemoryRequirements+-- No documentation found for TopLevel "VkSparseImageMemoryRequirements2KHR"+type VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2+++-- No documentation found for TopLevel "VkSparseImageMemoryRequirements2KHR"+pattern VkSparseImageMemoryRequirements2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("memoryRequirements" ::: VkSparseImageMemoryRequirements) -> VkSparseImageMemoryRequirements2KHR+pattern VkSparseImageMemoryRequirements2KHR vkSType vkPNext vkMemoryRequirements = VkSparseImageMemoryRequirements2 vkSType vkPNext vkMemoryRequirements+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR"+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR"+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR"+pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR"+pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR"+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
+ src/Graphics/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs view
@@ -0,0 +1,228 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2+  ( pattern VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION+  , pattern VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+  , vkGetPhysicalDeviceFeatures2KHR+  , vkGetPhysicalDeviceProperties2KHR+  , vkGetPhysicalDeviceFormatProperties2KHR+  , vkGetPhysicalDeviceImageFormatProperties2KHR+  , vkGetPhysicalDeviceQueueFamilyProperties2KHR+  , vkGetPhysicalDeviceMemoryProperties2KHR+  , vkGetPhysicalDeviceSparseImageFormatProperties2KHR+  , VkPhysicalDeviceFeatures2KHR+  , pattern VkPhysicalDeviceFeatures2KHR+  , VkPhysicalDeviceProperties2KHR+  , pattern VkPhysicalDeviceProperties2KHR+  , VkFormatProperties2KHR+  , pattern VkFormatProperties2KHR+  , VkImageFormatProperties2KHR+  , pattern VkImageFormatProperties2KHR+  , VkPhysicalDeviceImageFormatInfo2KHR+  , pattern VkPhysicalDeviceImageFormatInfo2KHR+  , VkQueueFamilyProperties2KHR+  , pattern VkQueueFamilyProperties2KHR+  , VkPhysicalDeviceMemoryProperties2KHR+  , pattern VkPhysicalDeviceMemoryProperties2KHR+  , VkSparseImageFormatProperties2KHR+  , pattern VkSparseImageFormatProperties2KHR+  , VkPhysicalDeviceSparseImageFormatInfo2KHR+  , pattern VkPhysicalDeviceSparseImageFormatInfo2KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR+  , pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR+  , pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR+  , pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR+  , pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkResult(..)+  , VkFormat(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkSampleCountFlagBits(..)+  , VkPhysicalDeviceMemoryProperties(..)+  , VkQueueFamilyProperties(..)+  , VkImageCreateFlags+  , VkImageUsageFlags+  , VkImageTiling(..)+  , VkImageType(..)+  , VkImageFormatProperties(..)+  , VkFormatProperties(..)+  , VkPhysicalDeviceProperties(..)+  , VkPhysicalDeviceFeatures(..)+  , VkPhysicalDevice+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkSparseImageFormatProperties(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2+  , pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2+  , pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2+  , VkSparseImageFormatProperties2(..)+  , VkPhysicalDeviceSparseImageFormatInfo2(..)+  , vkGetPhysicalDeviceSparseImageFormatProperties2+  , VkPhysicalDeviceMemoryProperties2(..)+  , vkGetPhysicalDeviceMemoryProperties2+  , VkQueueFamilyProperties2(..)+  , vkGetPhysicalDeviceQueueFamilyProperties2+  , VkImageFormatProperties2(..)+  , VkPhysicalDeviceImageFormatInfo2(..)+  , vkGetPhysicalDeviceImageFormatProperties2+  , VkFormatProperties2(..)+  , vkGetPhysicalDeviceFormatProperties2+  , VkPhysicalDeviceProperties2(..)+  , vkGetPhysicalDeviceProperties2+  , VkPhysicalDeviceFeatures2(..)+  , vkGetPhysicalDeviceFeatures2+  )+++-- No documentation found for TopLevel "VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION"+pattern VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION :: Integral a => a+pattern VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME"+pattern VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME = "VK_KHR_get_physical_device_properties2"+-- No documentation found for TopLevel "vkGetPhysicalDeviceFeatures2KHR"+vkGetPhysicalDeviceFeatures2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures2) -> IO ()+vkGetPhysicalDeviceFeatures2KHR = vkGetPhysicalDeviceFeatures2+-- No documentation found for TopLevel "vkGetPhysicalDeviceProperties2KHR"+vkGetPhysicalDeviceProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties2) -> IO ()+vkGetPhysicalDeviceProperties2KHR = vkGetPhysicalDeviceProperties2+-- No documentation found for TopLevel "vkGetPhysicalDeviceFormatProperties2KHR"+vkGetPhysicalDeviceFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties2) -> IO ()+vkGetPhysicalDeviceFormatProperties2KHR = vkGetPhysicalDeviceFormatProperties2+-- No documentation found for TopLevel "vkGetPhysicalDeviceImageFormatProperties2KHR"+vkGetPhysicalDeviceImageFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pImageFormatInfo" ::: Ptr VkPhysicalDeviceImageFormatInfo2) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties2) -> IO VkResult+vkGetPhysicalDeviceImageFormatProperties2KHR = vkGetPhysicalDeviceImageFormatProperties2+-- No documentation found for TopLevel "vkGetPhysicalDeviceQueueFamilyProperties2KHR"+vkGetPhysicalDeviceQueueFamilyProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties2) -> IO ()+vkGetPhysicalDeviceQueueFamilyProperties2KHR = vkGetPhysicalDeviceQueueFamilyProperties2+-- No documentation found for TopLevel "vkGetPhysicalDeviceMemoryProperties2KHR"+vkGetPhysicalDeviceMemoryProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties2) -> IO ()+vkGetPhysicalDeviceMemoryProperties2KHR = vkGetPhysicalDeviceMemoryProperties2+-- No documentation found for TopLevel "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"+vkGetPhysicalDeviceSparseImageFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFormatInfo" ::: Ptr VkPhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties2) -> IO ()+vkGetPhysicalDeviceSparseImageFormatProperties2KHR = vkGetPhysicalDeviceSparseImageFormatProperties2+-- No documentation found for TopLevel "VkPhysicalDeviceFeatures2KHR"+type VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2+++-- No documentation found for TopLevel "VkPhysicalDeviceFeatures2KHR"+pattern VkPhysicalDeviceFeatures2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("features" ::: VkPhysicalDeviceFeatures) -> VkPhysicalDeviceFeatures2KHR+pattern VkPhysicalDeviceFeatures2KHR vkSType vkPNext vkFeatures = VkPhysicalDeviceFeatures2 vkSType vkPNext vkFeatures+-- No documentation found for TopLevel "VkPhysicalDeviceProperties2KHR"+type VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2+++-- No documentation found for TopLevel "VkPhysicalDeviceProperties2KHR"+pattern VkPhysicalDeviceProperties2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("properties" ::: VkPhysicalDeviceProperties) -> VkPhysicalDeviceProperties2KHR+pattern VkPhysicalDeviceProperties2KHR vkSType vkPNext vkProperties = VkPhysicalDeviceProperties2 vkSType vkPNext vkProperties+-- No documentation found for TopLevel "VkFormatProperties2KHR"+type VkFormatProperties2KHR = VkFormatProperties2+++-- No documentation found for TopLevel "VkFormatProperties2KHR"+pattern VkFormatProperties2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("formatProperties" ::: VkFormatProperties) -> VkFormatProperties2KHR+pattern VkFormatProperties2KHR vkSType vkPNext vkFormatProperties = VkFormatProperties2 vkSType vkPNext vkFormatProperties+-- No documentation found for TopLevel "VkImageFormatProperties2KHR"+type VkImageFormatProperties2KHR = VkImageFormatProperties2+++-- No documentation found for TopLevel "VkImageFormatProperties2KHR"+pattern VkImageFormatProperties2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("imageFormatProperties" ::: VkImageFormatProperties) -> VkImageFormatProperties2KHR+pattern VkImageFormatProperties2KHR vkSType vkPNext vkImageFormatProperties = VkImageFormatProperties2 vkSType vkPNext vkImageFormatProperties+-- No documentation found for TopLevel "VkPhysicalDeviceImageFormatInfo2KHR"+type VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2+++-- No documentation found for TopLevel "VkPhysicalDeviceImageFormatInfo2KHR"+pattern VkPhysicalDeviceImageFormatInfo2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("tiling" ::: VkImageTiling) -> ("usage" ::: VkImageUsageFlags) -> ("flags" ::: VkImageCreateFlags) -> VkPhysicalDeviceImageFormatInfo2KHR+pattern VkPhysicalDeviceImageFormatInfo2KHR vkSType vkPNext vkFormat vkType vkTiling vkUsage vkFlags = VkPhysicalDeviceImageFormatInfo2 vkSType vkPNext vkFormat vkType vkTiling vkUsage vkFlags+-- No documentation found for TopLevel "VkQueueFamilyProperties2KHR"+type VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2+++-- No documentation found for TopLevel "VkQueueFamilyProperties2KHR"+pattern VkQueueFamilyProperties2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("queueFamilyProperties" ::: VkQueueFamilyProperties) -> VkQueueFamilyProperties2KHR+pattern VkQueueFamilyProperties2KHR vkSType vkPNext vkQueueFamilyProperties = VkQueueFamilyProperties2 vkSType vkPNext vkQueueFamilyProperties+-- No documentation found for TopLevel "VkPhysicalDeviceMemoryProperties2KHR"+type VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2+++-- No documentation found for TopLevel "VkPhysicalDeviceMemoryProperties2KHR"+pattern VkPhysicalDeviceMemoryProperties2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("memoryProperties" ::: VkPhysicalDeviceMemoryProperties) -> VkPhysicalDeviceMemoryProperties2KHR+pattern VkPhysicalDeviceMemoryProperties2KHR vkSType vkPNext vkMemoryProperties = VkPhysicalDeviceMemoryProperties2 vkSType vkPNext vkMemoryProperties+-- No documentation found for TopLevel "VkSparseImageFormatProperties2KHR"+type VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2+++-- No documentation found for TopLevel "VkSparseImageFormatProperties2KHR"+pattern VkSparseImageFormatProperties2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("properties" ::: VkSparseImageFormatProperties) -> VkSparseImageFormatProperties2KHR+pattern VkSparseImageFormatProperties2KHR vkSType vkPNext vkProperties = VkSparseImageFormatProperties2 vkSType vkPNext vkProperties+-- No documentation found for TopLevel "VkPhysicalDeviceSparseImageFormatInfo2KHR"+type VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2+++-- No documentation found for TopLevel "VkPhysicalDeviceSparseImageFormatInfo2KHR"+pattern VkPhysicalDeviceSparseImageFormatInfo2KHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("samples" ::: VkSampleCountFlagBits) -> ("usage" ::: VkImageUsageFlags) -> ("tiling" ::: VkImageTiling) -> VkPhysicalDeviceSparseImageFormatInfo2KHR+pattern VkPhysicalDeviceSparseImageFormatInfo2KHR vkSType vkPNext vkFormat vkType vkSamples vkUsage vkTiling = VkPhysicalDeviceSparseImageFormatInfo2 vkSType vkPNext vkFormat vkType vkSamples vkUsage vkTiling+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR"+pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR"+pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR"+pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR"+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
+ src/Graphics/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -0,0 +1,319 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR+  , pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR+  , pattern VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR+  , pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION+  , pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME+  , vkGetPhysicalDeviceSurfaceCapabilities2KHR+  , vkGetPhysicalDeviceSurfaceFormats2KHR+  , VkPhysicalDeviceSurfaceInfo2KHR(..)+  , VkSurfaceCapabilities2KHR(..)+  , VkSurfaceFormat2KHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceFormatKHR(..)+  , VkSurfaceCapabilitiesKHR(..)+  , VkSurfaceKHR+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = VkStructureType 1000119000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"+pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = VkStructureType 1000119001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"+pattern VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = VkStructureType 1000119002+-- No documentation found for TopLevel "VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION"+pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION :: Integral a => a+pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME"+pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME = "VK_KHR_get_surface_capabilities2"+-- | vkGetPhysicalDeviceSurfaceCapabilities2KHR - Reports capabilities of a+-- surface on a physical device+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device that will be associated with+--     the swapchain to be created, as described for+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @pSurfaceInfo@ points to an instance of the+--     'VkPhysicalDeviceSurfaceInfo2KHR' structure, describing the surface+--     and other fixed parameters that would be consumed by+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @pSurfaceCapabilities@ points to an instance of the+--     'VkSurfaceCapabilities2KHR' structure in which the capabilities are+--     returned.+--+-- = Description+-- #_description#+--+-- @vkGetPhysicalDeviceSurfaceCapabilities2KHR@ behaves similarly to+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR',+-- with the ability to specify extended inputs via chained input+-- structures, and to return extended information via chained output+-- structures.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pSurfaceInfo@ /must/ be a valid pointer to a valid+--     @VkPhysicalDeviceSurfaceInfo2KHR@ structure+--+-- -   @pSurfaceCapabilities@ /must/ be a valid pointer to a+--     @VkSurfaceCapabilities2KHR@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'VkPhysicalDeviceSurfaceInfo2KHR', 'VkSurfaceCapabilities2KHR'+foreign import ccall "vkGetPhysicalDeviceSurfaceCapabilities2KHR" vkGetPhysicalDeviceSurfaceCapabilities2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pSurfaceInfo" ::: Ptr VkPhysicalDeviceSurfaceInfo2KHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilities2KHR) -> IO VkResult+-- | vkGetPhysicalDeviceSurfaceFormats2KHR - Query color formats supported by+-- surface+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device that will be associated with+--     the swapchain to be created, as described for+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @pSurfaceInfo@ points to an instance of the+--     'VkPhysicalDeviceSurfaceInfo2KHR' structure, describing the surface+--     and other fixed parameters that would be consumed by+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @pSurfaceFormatCount@ is a pointer to an integer related to the+--     number of format tuples available or queried, as described below.+--+-- -   @pSurfaceFormats@ is either @NULL@ or a pointer to an array of+--     'VkSurfaceFormat2KHR' structures.+--+-- = Description+-- #_description#+--+-- If @pSurfaceFormats@ is @NULL@, then the number of format tuples+-- supported for the given @surface@ is returned in @pSurfaceFormatCount@.+-- The number of format tuples supported will be greater than or equal to+-- 1. Otherwise, @pSurfaceFormatCount@ /must/ point to a variable set by+-- the user to the number of elements in the @pSurfaceFormats@ array, and+-- on return the variable is overwritten with the number of structures+-- actually written to @pSurfaceFormats@. If the value of+-- @pSurfaceFormatCount@ is less than the number of format tuples+-- supported, at most @pSurfaceFormatCount@ structures will be written. If+-- @pSurfaceFormatCount@ is smaller than the number of format tuples+-- supported for the surface parameters described in @pSurfaceInfo@,+-- @VK_INCOMPLETE@ will be returned instead of @VK_SUCCESS@ to indicate+-- that not all the available values were returned.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pSurfaceInfo@ /must/ be a valid pointer to a valid+--     @VkPhysicalDeviceSurfaceInfo2KHR@ structure+--+-- -   @pSurfaceFormatCount@ /must/ be a valid pointer to a @uint32_t@+--     value+--+-- -   If the value referenced by @pSurfaceFormatCount@ is not @0@, and+--     @pSurfaceFormats@ is not @NULL@, @pSurfaceFormats@ /must/ be a valid+--     pointer to an array of @pSurfaceFormatCount@ @VkSurfaceFormat2KHR@+--     structures+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'VkPhysicalDeviceSurfaceInfo2KHR', 'VkSurfaceFormat2KHR'+foreign import ccall "vkGetPhysicalDeviceSurfaceFormats2KHR" vkGetPhysicalDeviceSurfaceFormats2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pSurfaceInfo" ::: Ptr VkPhysicalDeviceSurfaceInfo2KHR) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr VkSurfaceFormat2KHR) -> IO VkResult+-- | VkPhysicalDeviceSurfaceInfo2KHR - Structure specifying a surface and+-- related swapchain creation parameters+--+-- = Description+-- #_description#+--+-- The members of @VkPhysicalDeviceSurfaceInfo2KHR@ correspond to the+-- arguments to+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.vkGetPhysicalDeviceSurfaceCapabilitiesKHR',+-- with @sType@ and @pNext@ added for extensibility.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR',+-- 'vkGetPhysicalDeviceSurfaceCapabilities2KHR',+-- 'vkGetPhysicalDeviceSurfaceFormats2KHR'+data VkPhysicalDeviceSurfaceInfo2KHR = VkPhysicalDeviceSurfaceInfo2KHR+  { -- No documentation found for Nested "VkPhysicalDeviceSurfaceInfo2KHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceSurfaceInfo2KHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceSurfaceInfo2KHR" "vkSurface"+  vkSurface :: VkSurfaceKHR+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceSurfaceInfo2KHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceSurfaceInfo2KHR <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceSurfaceInfo2KHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceSurfaceInfo2KHR))+                *> poke (ptr `plusPtr` 16) (vkSurface (poked :: VkPhysicalDeviceSurfaceInfo2KHR))+-- | VkSurfaceCapabilities2KHR - Structure describing capabilities of a+-- surface+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR@+--+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR'+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR',+-- 'vkGetPhysicalDeviceSurfaceCapabilities2KHR'+data VkSurfaceCapabilities2KHR = VkSurfaceCapabilities2KHR+  { -- No documentation found for Nested "VkSurfaceCapabilities2KHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSurfaceCapabilities2KHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSurfaceCapabilities2KHR" "vkSurfaceCapabilities"+  vkSurfaceCapabilities :: VkSurfaceCapabilitiesKHR+  }+  deriving (Eq, Show)++instance Storable VkSurfaceCapabilities2KHR where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkSurfaceCapabilities2KHR <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSurfaceCapabilities2KHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSurfaceCapabilities2KHR))+                *> poke (ptr `plusPtr` 16) (vkSurfaceCapabilities (poked :: VkSurfaceCapabilities2KHR))+-- | VkSurfaceFormat2KHR - Structure describing a supported swapchain format+-- tuple+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceFormatKHR',+-- 'vkGetPhysicalDeviceSurfaceFormats2KHR'+data VkSurfaceFormat2KHR = VkSurfaceFormat2KHR+  { -- No documentation found for Nested "VkSurfaceFormat2KHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSurfaceFormat2KHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSurfaceFormat2KHR" "vkSurfaceFormat"+  vkSurfaceFormat :: VkSurfaceFormatKHR+  }+  deriving (Eq, Show)++instance Storable VkSurfaceFormat2KHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSurfaceFormat2KHR <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSurfaceFormat2KHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSurfaceFormat2KHR))+                *> poke (ptr `plusPtr` 16) (vkSurfaceFormat (poked :: VkSurfaceFormat2KHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_image_format_list.hs view
@@ -0,0 +1,106 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_image_format_list+  ( pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR+  , pattern VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION+  , pattern VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME+  , VkImageFormatListCreateInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkFormat(..)+  , VkStructureType(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VkStructureType 1000147000+-- No documentation found for TopLevel "VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION"+pattern VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION :: Integral a => a+pattern VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME"+pattern VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME = "VK_KHR_image_format_list"+-- | VkImageFormatListCreateInfoKHR - Specify that an image /can/ be used+-- with a particular set of formats+--+-- = Description+-- #_description#+--+-- If @viewFormatCount@ is zero, @pViewFormats@ is ignored and the image is+-- created as if the @VkImageFormatListCreateInfoKHR@ structure were not+-- included in the @pNext@ list of+-- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'.+--+-- == Valid Usage+--+-- -   If @viewFormatCount@ is not @0@, all of the formats in the+--     @pViewFormats@ array /must/ be compatible with the format specified+--     in the @format@ field of @VkImageCreateInfo@, as described in the+--     <{html_spec_relative}#resources-image-views-compatibility compatibility table>.+--+-- -   If @VkImageCreateInfo@::@flags@ does not contain+--     @VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT@, @viewFormatCount@ /must/ be+--     @0@ or @1@.+--+-- -   If @viewFormatCount@ is not @0@, @VkImageCreateInfo@::@format@+--     /must/ be in @pViewFormats@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR@+--+-- -   If @viewFormatCount@ is not @0@, @pViewFormats@ /must/ be a valid+--     pointer to an array of @viewFormatCount@ valid+--     'Graphics.Vulkan.Core10.Core.VkFormat' values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfoKHR+  { -- No documentation found for Nested "VkImageFormatListCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageFormatListCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageFormatListCreateInfoKHR" "vkViewFormatCount"+  vkViewFormatCount :: Word32+  , -- No documentation found for Nested "VkImageFormatListCreateInfoKHR" "vkPViewFormats"+  vkPViewFormats :: Ptr VkFormat+  }+  deriving (Eq, Show)++instance Storable VkImageFormatListCreateInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkImageFormatListCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                            <*> peek (ptr `plusPtr` 8)+                                            <*> peek (ptr `plusPtr` 16)+                                            <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageFormatListCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageFormatListCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkViewFormatCount (poked :: VkImageFormatListCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkPViewFormats (poked :: VkImageFormatListCreateInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_incremental_present.hs view
@@ -0,0 +1,174 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_incremental_present+  ( pattern VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR+  , pattern VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION+  , pattern VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME+  , VkPresentRegionsKHR(..)+  , VkPresentRegionKHR(..)+  , VkRectLayerKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkExtent2D(..)+  , VkOffset2D(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"+pattern VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = VkStructureType 1000084000+-- No documentation found for TopLevel "VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION"+pattern VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION :: Integral a => a+pattern VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME"+pattern VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME = "VK_KHR_incremental_present"+-- | VkPresentRegionsKHR - Structure hint of rectangular regions changed by+-- vkQueuePresentKHR+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @swapchainCount@ /must/ be the same value as+--     @VkPresentInfoKHR@::@swapchainCount@, where @VkPresentInfoKHR@ is in+--     the pNext-chain of this @VkPresentRegionsKHR@ structure.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR@+--+-- -   If @pRegions@ is not @NULL@, @pRegions@ /must/ be a valid pointer to+--     an array of @swapchainCount@ valid @VkPresentRegionKHR@ structures+--+-- -   @swapchainCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkPresentRegionKHR', 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPresentRegionsKHR = VkPresentRegionsKHR+  { -- No documentation found for Nested "VkPresentRegionsKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPresentRegionsKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPresentRegionsKHR" "vkSwapchainCount"+  vkSwapchainCount :: Word32+  , -- No documentation found for Nested "VkPresentRegionsKHR" "vkPRegions"+  vkPRegions :: Ptr VkPresentRegionKHR+  }+  deriving (Eq, Show)++instance Storable VkPresentRegionsKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPresentRegionsKHR <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 16)+                                 <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPresentRegionsKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPresentRegionsKHR))+                *> poke (ptr `plusPtr` 16) (vkSwapchainCount (poked :: VkPresentRegionsKHR))+                *> poke (ptr `plusPtr` 24) (vkPRegions (poked :: VkPresentRegionsKHR))+-- | VkPresentRegionKHR - Structure containing rectangular region changed by+-- vkQueuePresentKHR for a given VkImage+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   If @rectangleCount@ is not @0@, and @pRectangles@ is not @NULL@,+--     @pRectangles@ /must/ be a valid pointer to an array of+--     @rectangleCount@ @VkRectLayerKHR@ structures+--+-- = See Also+-- #_see_also#+--+-- 'VkPresentRegionsKHR', 'VkRectLayerKHR'+data VkPresentRegionKHR = VkPresentRegionKHR+  { -- No documentation found for Nested "VkPresentRegionKHR" "vkRectangleCount"+  vkRectangleCount :: Word32+  , -- No documentation found for Nested "VkPresentRegionKHR" "vkPRectangles"+  vkPRectangles :: Ptr VkRectLayerKHR+  }+  deriving (Eq, Show)++instance Storable VkPresentRegionKHR where+  sizeOf ~_ = 16+  alignment ~_ = 8+  peek ptr = VkPresentRegionKHR <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkRectangleCount (poked :: VkPresentRegionKHR))+                *> poke (ptr `plusPtr` 8) (vkPRectangles (poked :: VkPresentRegionKHR))+-- | VkRectLayerKHR - Structure containing a rectangle, including layer,+-- changed by vkQueuePresentKHR for a given VkImage+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The sum of @offset@ and @extent@ /must/ be no greater than the+--     @imageExtent@ member of the @VkSwapchainCreateInfoKHR@ structure+--     given to+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @layer@ /must/ be less than @imageArrayLayers@ member of the+--     @VkSwapchainCreateInfoKHR@ structure given to+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- Some platforms allow the size of a surface to change, and then scale the+-- pixels of the image to fit the surface. @VkRectLayerKHR@ specifies+-- pixels of the swapchain’s image(s), which will be constant for the life+-- of the swapchain.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.Pipeline.VkOffset2D', 'VkPresentRegionKHR'+data VkRectLayerKHR = VkRectLayerKHR+  { -- No documentation found for Nested "VkRectLayerKHR" "vkOffset"+  vkOffset :: VkOffset2D+  , -- No documentation found for Nested "VkRectLayerKHR" "vkExtent"+  vkExtent :: VkExtent2D+  , -- No documentation found for Nested "VkRectLayerKHR" "vkLayer"+  vkLayer :: Word32+  }+  deriving (Eq, Show)++instance Storable VkRectLayerKHR where+  sizeOf ~_ = 20+  alignment ~_ = 4+  peek ptr = VkRectLayerKHR <$> peek (ptr `plusPtr` 0)+                            <*> peek (ptr `plusPtr` 8)+                            <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkRectLayerKHR))+                *> poke (ptr `plusPtr` 8) (vkExtent (poked :: VkRectLayerKHR))+                *> poke (ptr `plusPtr` 16) (vkLayer (poked :: VkRectLayerKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_maintenance1.hs view
@@ -0,0 +1,70 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_maintenance1+  ( pattern VK_KHR_MAINTENANCE1_SPEC_VERSION+  , pattern VK_KHR_MAINTENANCE1_EXTENSION_NAME+  , vkTrimCommandPoolKHR+  , VkCommandPoolTrimFlagsKHR+  , pattern VK_ERROR_OUT_OF_POOL_MEMORY_KHR+  , pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR+  , pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR+  , pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR+  ) where++import Data.String+  ( IsString+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.CommandPool+  ( VkCommandPool+  )+import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageCreateFlagBits(..)+  , VkFormatFeatureFlagBits(..)+  , VkDevice+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1+  ( pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT+  , pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT+  , pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT+  , pattern VK_ERROR_OUT_OF_POOL_MEMORY+  , VkCommandPoolTrimFlags(..)+  , vkTrimCommandPool+  )+++-- No documentation found for TopLevel "VK_KHR_MAINTENANCE1_SPEC_VERSION"+pattern VK_KHR_MAINTENANCE1_SPEC_VERSION :: Integral a => a+pattern VK_KHR_MAINTENANCE1_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_KHR_MAINTENANCE1_EXTENSION_NAME"+pattern VK_KHR_MAINTENANCE1_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_MAINTENANCE1_EXTENSION_NAME = "VK_KHR_maintenance1"+-- No documentation found for TopLevel "vkTrimCommandPoolKHR"+vkTrimCommandPoolKHR :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolTrimFlags) -> IO ()+vkTrimCommandPoolKHR = vkTrimCommandPool+-- No documentation found for TopLevel "VkCommandPoolTrimFlagsKHR"+type VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags+-- No documentation found for TopLevel "VK_ERROR_OUT_OF_POOL_MEMORY_KHR"+pattern VK_ERROR_OUT_OF_POOL_MEMORY_KHR :: VkResult+pattern VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR"+pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR"+pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT+-- No documentation found for TopLevel "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR"+pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_maintenance2.hs view
@@ -0,0 +1,167 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_maintenance2+  ( pattern VK_KHR_MAINTENANCE2_SPEC_VERSION+  , pattern VK_KHR_MAINTENANCE2_EXTENSION_NAME+  , VkPointClippingBehaviorKHR+  , VkTessellationDomainOriginKHR+  , VkInputAttachmentAspectReferenceKHR+  , pattern VkInputAttachmentAspectReferenceKHR+  , VkRenderPassInputAttachmentAspectCreateInfoKHR+  , pattern VkRenderPassInputAttachmentAspectCreateInfoKHR+  , VkPhysicalDevicePointClippingPropertiesKHR+  , pattern VkPhysicalDevicePointClippingPropertiesKHR+  , VkImageViewUsageCreateInfoKHR+  , pattern VkImageViewUsageCreateInfoKHR+  , VkPipelineTessellationDomainOriginStateCreateInfoKHR+  , pattern VkPipelineTessellationDomainOriginStateCreateInfoKHR+  , pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR+  , pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR+  , pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR+  , pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR+  , pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR+  , pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR+  , pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR+  , pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR+  , pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageCreateFlagBits(..)+  , VkImageUsageFlags+  )+import Graphics.Vulkan.Core10.Image+  ( VkImageLayout(..)+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkImageAspectFlags+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2+  ( pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT+  , pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT+  , pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY+  , pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES+  , pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL+  , pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL+  , pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES+  , pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT+  , pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT+  , VkPipelineTessellationDomainOriginStateCreateInfo(..)+  , VkImageViewUsageCreateInfo(..)+  , VkPhysicalDevicePointClippingProperties(..)+  , VkRenderPassInputAttachmentAspectCreateInfo(..)+  , VkInputAttachmentAspectReference(..)+  , VkTessellationDomainOrigin(..)+  , VkPointClippingBehavior(..)+  )+++-- No documentation found for TopLevel "VK_KHR_MAINTENANCE2_SPEC_VERSION"+pattern VK_KHR_MAINTENANCE2_SPEC_VERSION :: Integral a => a+pattern VK_KHR_MAINTENANCE2_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_MAINTENANCE2_EXTENSION_NAME"+pattern VK_KHR_MAINTENANCE2_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_MAINTENANCE2_EXTENSION_NAME = "VK_KHR_maintenance2"+-- No documentation found for TopLevel "VkPointClippingBehaviorKHR"+type VkPointClippingBehaviorKHR = VkPointClippingBehavior+-- No documentation found for TopLevel "VkTessellationDomainOriginKHR"+type VkTessellationDomainOriginKHR = VkTessellationDomainOrigin+-- No documentation found for TopLevel "VkInputAttachmentAspectReferenceKHR"+type VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference+++-- No documentation found for TopLevel "VkInputAttachmentAspectReferenceKHR"+pattern VkInputAttachmentAspectReferenceKHR :: ("subpass" ::: Word32) -> ("inputAttachmentIndex" ::: Word32) -> ("aspectMask" ::: VkImageAspectFlags) -> VkInputAttachmentAspectReferenceKHR+pattern VkInputAttachmentAspectReferenceKHR vkSubpass vkInputAttachmentIndex vkAspectMask = VkInputAttachmentAspectReference vkSubpass vkInputAttachmentIndex vkAspectMask+-- No documentation found for TopLevel "VkRenderPassInputAttachmentAspectCreateInfoKHR"+type VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo+++-- No documentation found for TopLevel "VkRenderPassInputAttachmentAspectCreateInfoKHR"+pattern VkRenderPassInputAttachmentAspectCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("aspectReferenceCount" ::: Word32) -> ("pAspectReferences" ::: Ptr VkInputAttachmentAspectReference) -> VkRenderPassInputAttachmentAspectCreateInfoKHR+pattern VkRenderPassInputAttachmentAspectCreateInfoKHR vkSType vkPNext vkAspectReferenceCount vkPAspectReferences = VkRenderPassInputAttachmentAspectCreateInfo vkSType vkPNext vkAspectReferenceCount vkPAspectReferences+-- No documentation found for TopLevel "VkPhysicalDevicePointClippingPropertiesKHR"+type VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties+++-- No documentation found for TopLevel "VkPhysicalDevicePointClippingPropertiesKHR"+pattern VkPhysicalDevicePointClippingPropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("pointClippingBehavior" ::: VkPointClippingBehavior) -> VkPhysicalDevicePointClippingPropertiesKHR+pattern VkPhysicalDevicePointClippingPropertiesKHR vkSType vkPNext vkPointClippingBehavior = VkPhysicalDevicePointClippingProperties vkSType vkPNext vkPointClippingBehavior+-- No documentation found for TopLevel "VkImageViewUsageCreateInfoKHR"+type VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo+++-- No documentation found for TopLevel "VkImageViewUsageCreateInfoKHR"+pattern VkImageViewUsageCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("usage" ::: VkImageUsageFlags) -> VkImageViewUsageCreateInfoKHR+pattern VkImageViewUsageCreateInfoKHR vkSType vkPNext vkUsage = VkImageViewUsageCreateInfo vkSType vkPNext vkUsage+-- No documentation found for TopLevel "VkPipelineTessellationDomainOriginStateCreateInfoKHR"+type VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo+++-- No documentation found for TopLevel "VkPipelineTessellationDomainOriginStateCreateInfoKHR"+pattern VkPipelineTessellationDomainOriginStateCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("domainOrigin" ::: VkTessellationDomainOrigin) -> VkPipelineTessellationDomainOriginStateCreateInfoKHR+pattern VkPipelineTessellationDomainOriginStateCreateInfoKHR vkSType vkPNext vkDomainOrigin = VkPipelineTessellationDomainOriginStateCreateInfo vkSType vkPNext vkDomainOrigin+-- No documentation found for TopLevel "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR"+pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT+-- No documentation found for TopLevel "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR"+pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO+-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR"+pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR :: VkImageLayout+pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL+-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR"+pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR :: VkImageLayout+pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL+-- No documentation found for TopLevel "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR"+pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR :: VkPointClippingBehavior+pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES+-- No documentation found for TopLevel "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR"+pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR :: VkPointClippingBehavior+pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY+-- No documentation found for TopLevel "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR"+pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR :: VkTessellationDomainOrigin+pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT+-- No documentation found for TopLevel "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR"+pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR :: VkTessellationDomainOrigin+pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
+ src/Graphics/Vulkan/Extensions/VK_KHR_maintenance3.hs view
@@ -0,0 +1,82 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_maintenance3+  ( pattern VK_KHR_MAINTENANCE3_SPEC_VERSION+  , pattern VK_KHR_MAINTENANCE3_EXTENSION_NAME+  , vkGetDescriptorSetLayoutSupportKHR+  , VkPhysicalDeviceMaintenance3PropertiesKHR+  , pattern VkPhysicalDeviceMaintenance3PropertiesKHR+  , VkDescriptorSetLayoutSupportKHR+  , pattern VkDescriptorSetLayoutSupportKHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR+  , pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DescriptorSet+  ( VkDescriptorSetLayoutCreateInfo(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkDevice+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3+  ( pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES+  , VkPhysicalDeviceMaintenance3Properties(..)+  , VkDescriptorSetLayoutSupport(..)+  , vkGetDescriptorSetLayoutSupport+  )+++-- No documentation found for TopLevel "VK_KHR_MAINTENANCE3_SPEC_VERSION"+pattern VK_KHR_MAINTENANCE3_SPEC_VERSION :: Integral a => a+pattern VK_KHR_MAINTENANCE3_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_MAINTENANCE3_EXTENSION_NAME"+pattern VK_KHR_MAINTENANCE3_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_MAINTENANCE3_EXTENSION_NAME = "VK_KHR_maintenance3"+-- No documentation found for TopLevel "vkGetDescriptorSetLayoutSupportKHR"+vkGetDescriptorSetLayoutSupportKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pSupport" ::: Ptr VkDescriptorSetLayoutSupport) -> IO ()+vkGetDescriptorSetLayoutSupportKHR = vkGetDescriptorSetLayoutSupport+-- No documentation found for TopLevel "VkPhysicalDeviceMaintenance3PropertiesKHR"+type VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties+++-- No documentation found for TopLevel "VkPhysicalDeviceMaintenance3PropertiesKHR"+pattern VkPhysicalDeviceMaintenance3PropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("maxPerSetDescriptors" ::: Word32) -> ("maxMemoryAllocationSize" ::: VkDeviceSize) -> VkPhysicalDeviceMaintenance3PropertiesKHR+pattern VkPhysicalDeviceMaintenance3PropertiesKHR vkSType vkPNext vkMaxPerSetDescriptors vkMaxMemoryAllocationSize = VkPhysicalDeviceMaintenance3Properties vkSType vkPNext vkMaxPerSetDescriptors vkMaxMemoryAllocationSize+-- No documentation found for TopLevel "VkDescriptorSetLayoutSupportKHR"+type VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport+++-- No documentation found for TopLevel "VkDescriptorSetLayoutSupportKHR"+pattern VkDescriptorSetLayoutSupportKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("supported" ::: VkBool32) -> VkDescriptorSetLayoutSupportKHR+pattern VkDescriptorSetLayoutSupportKHR vkSType vkPNext vkSupported = VkDescriptorSetLayoutSupport vkSType vkPNext vkSupported+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR"+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
+ src/Graphics/Vulkan/Extensions/VK_KHR_mir_surface.hs view
@@ -0,0 +1,251 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_mir_surface+  ( MirConnection+  , MirSurface+  , VkMirSurfaceCreateFlagsKHR(..)+  , pattern VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR+  , pattern VK_KHR_MIR_SURFACE_SPEC_VERSION+  , pattern VK_KHR_MIR_SURFACE_EXTENSION_NAME+  , vkCreateMirSurfaceKHR+  , vkGetPhysicalDeviceMirPresentationSupportKHR+  , VkMirSurfaceCreateInfoKHR(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  , VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- | Opaque data+data MirConnection+-- | Opaque data+data MirSurface+-- ** VkMirSurfaceCreateFlagsKHR++-- No documentation found for TopLevel "VkMirSurfaceCreateFlagsKHR"+newtype VkMirSurfaceCreateFlagsKHR = VkMirSurfaceCreateFlagsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkMirSurfaceCreateFlagsKHR where+  +  showsPrec p (VkMirSurfaceCreateFlagsKHR x) = showParen (p >= 11) (showString "VkMirSurfaceCreateFlagsKHR " . showsPrec 11 x)++instance Read VkMirSurfaceCreateFlagsKHR where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkMirSurfaceCreateFlagsKHR")+                        v <- step readPrec+                        pure (VkMirSurfaceCreateFlagsKHR v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = VkStructureType 1000007000+-- No documentation found for TopLevel "VK_KHR_MIR_SURFACE_SPEC_VERSION"+pattern VK_KHR_MIR_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_MIR_SURFACE_SPEC_VERSION = 4+-- No documentation found for TopLevel "VK_KHR_MIR_SURFACE_EXTENSION_NAME"+pattern VK_KHR_MIR_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_MIR_SURFACE_EXTENSION_NAME = "VK_KHR_mir_surface"+-- | vkCreateMirSurfaceKHR - Create a+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR' object for a+-- Mir window+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance to associate the surface with.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkMirSurfaceCreateInfoKHR' structure containing parameters+--     affecting the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkMirSurfaceCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'VkMirSurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR'+foreign import ccall "vkCreateMirSurfaceKHR" vkCreateMirSurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkMirSurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | vkGetPhysicalDeviceMirPresentationSupportKHR - Query physical device for+-- presentation to Mir+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device.+--+-- -   @queueFamilyIndex@ is the queue family index.+--+-- -   @connection@ is a pointer to the @MirConnection@, and identifies the+--     desired Mir compositor.+--+-- = Description+-- #_description#+--+-- This platform-specific function /can/ be called prior to creating a+-- surface.+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+--     returned by @vkGetPhysicalDeviceQueueFamilyProperties@ for the given+--     @physicalDevice@+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @connection@ /must/ be a valid pointer to a @MirConnection@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceMirPresentationSupportKHR" vkGetPhysicalDeviceMirPresentationSupportKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("queueFamilyIndex" ::: Word32) -> ("connection" ::: Ptr MirConnection) -> IO VkBool32+-- | VkMirSurfaceCreateInfoKHR - Structure specifying parameters of a newly+-- created Mir surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @connection@ /must/ point to a valid @MirConnection@.+--+-- -   @surface@ /must/ point to a valid @MirSurface@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkMirSurfaceCreateFlagsKHR',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateMirSurfaceKHR'+data VkMirSurfaceCreateInfoKHR = VkMirSurfaceCreateInfoKHR+  { -- No documentation found for Nested "VkMirSurfaceCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMirSurfaceCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMirSurfaceCreateInfoKHR" "vkFlags"+  vkFlags :: VkMirSurfaceCreateFlagsKHR+  , -- No documentation found for Nested "VkMirSurfaceCreateInfoKHR" "vkConnection"+  vkConnection :: Ptr MirConnection+  , -- No documentation found for Nested "VkMirSurfaceCreateInfoKHR" "vkMirSurface"+  vkMirSurface :: Ptr MirSurface+  }+  deriving (Eq, Show)++instance Storable VkMirSurfaceCreateInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkMirSurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 24)+                                       <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMirSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMirSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkMirSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkConnection (poked :: VkMirSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkMirSurface (poked :: VkMirSurfaceCreateInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_multiview.hs view
@@ -0,0 +1,96 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_multiview+  ( pattern VK_KHR_MULTIVIEW_SPEC_VERSION+  , pattern VK_KHR_MULTIVIEW_EXTENSION_NAME+  , VkPhysicalDeviceMultiviewFeaturesKHR+  , pattern VkPhysicalDeviceMultiviewFeaturesKHR+  , VkPhysicalDeviceMultiviewPropertiesKHR+  , pattern VkPhysicalDeviceMultiviewPropertiesKHR+  , VkRenderPassMultiviewCreateInfoKHR+  , pattern VkRenderPassMultiviewCreateInfoKHR+  , pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR+  , pattern VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR+  ) where++import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Pass+  ( VkDependencyFlagBits(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview+  ( pattern VK_DEPENDENCY_VIEW_LOCAL_BIT+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES+  , pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO+  , VkRenderPassMultiviewCreateInfo(..)+  , VkPhysicalDeviceMultiviewProperties(..)+  , VkPhysicalDeviceMultiviewFeatures(..)+  )+++-- No documentation found for TopLevel "VK_KHR_MULTIVIEW_SPEC_VERSION"+pattern VK_KHR_MULTIVIEW_SPEC_VERSION :: Integral a => a+pattern VK_KHR_MULTIVIEW_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_MULTIVIEW_EXTENSION_NAME"+pattern VK_KHR_MULTIVIEW_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_MULTIVIEW_EXTENSION_NAME = "VK_KHR_multiview"+-- No documentation found for TopLevel "VkPhysicalDeviceMultiviewFeaturesKHR"+type VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures+++-- No documentation found for TopLevel "VkPhysicalDeviceMultiviewFeaturesKHR"+pattern VkPhysicalDeviceMultiviewFeaturesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("multiview" ::: VkBool32) -> ("multiviewGeometryShader" ::: VkBool32) -> ("multiviewTessellationShader" ::: VkBool32) -> VkPhysicalDeviceMultiviewFeaturesKHR+pattern VkPhysicalDeviceMultiviewFeaturesKHR vkSType vkPNext vkMultiview vkMultiviewGeometryShader vkMultiviewTessellationShader = VkPhysicalDeviceMultiviewFeatures vkSType vkPNext vkMultiview vkMultiviewGeometryShader vkMultiviewTessellationShader+-- No documentation found for TopLevel "VkPhysicalDeviceMultiviewPropertiesKHR"+type VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties+++-- No documentation found for TopLevel "VkPhysicalDeviceMultiviewPropertiesKHR"+pattern VkPhysicalDeviceMultiviewPropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("maxMultiviewViewCount" ::: Word32) -> ("maxMultiviewInstanceIndex" ::: Word32) -> VkPhysicalDeviceMultiviewPropertiesKHR+pattern VkPhysicalDeviceMultiviewPropertiesKHR vkSType vkPNext vkMaxMultiviewViewCount vkMaxMultiviewInstanceIndex = VkPhysicalDeviceMultiviewProperties vkSType vkPNext vkMaxMultiviewViewCount vkMaxMultiviewInstanceIndex+-- No documentation found for TopLevel "VkRenderPassMultiviewCreateInfoKHR"+type VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo+++-- No documentation found for TopLevel "VkRenderPassMultiviewCreateInfoKHR"+pattern VkRenderPassMultiviewCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("subpassCount" ::: Word32) -> ("pViewMasks" ::: Ptr Word32) -> ("dependencyCount" ::: Word32) -> ("pViewOffsets" ::: Ptr Int32) -> ("correlationMaskCount" ::: Word32) -> ("pCorrelationMasks" ::: Ptr Word32) -> VkRenderPassMultiviewCreateInfoKHR+pattern VkRenderPassMultiviewCreateInfoKHR vkSType vkPNext vkSubpassCount vkPViewMasks vkDependencyCount vkPViewOffsets vkCorrelationMaskCount vkPCorrelationMasks = VkRenderPassMultiviewCreateInfo vkSType vkPNext vkSubpassCount vkPViewMasks vkDependencyCount vkPViewOffsets vkCorrelationMaskCount vkPCorrelationMasks+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES+-- No documentation found for TopLevel "VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR"+pattern VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR :: VkDependencyFlagBits+pattern VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT
+ src/Graphics/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -0,0 +1,397 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_push_descriptor+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR+  , pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR+  , pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR+  , pattern VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION+  , pattern VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME+  , vkCmdPushDescriptorSetKHR+  , vkCmdPushDescriptorSetWithTemplateKHR+  , VkPhysicalDevicePushDescriptorPropertiesKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DescriptorSet+  ( VkWriteDescriptorSet(..)+  , VkDescriptorSetLayoutCreateFlagBits(..)+  )+import Graphics.Vulkan.Core10.Pass+  ( VkPipelineBindPoint(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkPipelineLayout+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template+  ( VkDescriptorUpdateTemplate+  , VkDescriptorUpdateTemplateType(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VkStructureType 1000080000+-- No documentation found for Nested "VkDescriptorUpdateTemplateType" "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR"+pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR :: VkDescriptorUpdateTemplateType+pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VkDescriptorUpdateTemplateType 1+-- No documentation found for Nested "VkDescriptorSetLayoutCreateFlagBits" "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"+pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR :: VkDescriptorSetLayoutCreateFlagBits+pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VkDescriptorSetLayoutCreateFlagBits 0x00000001+-- No documentation found for TopLevel "VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION"+pattern VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION :: Integral a => a+pattern VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME"+pattern VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME = "VK_KHR_push_descriptor"+-- | vkCmdPushDescriptorSetKHR - Pushes descriptor updates into a command+-- buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer that the descriptors will be+--     recorded in.+--+-- -   @pipelineBindPoint@ is a+--     'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint' indicating whether+--     the descriptors will be used by graphics pipelines or compute+--     pipelines. There is a separate set of push descriptor bindings for+--     each of graphics and compute, so binding one does not disturb the+--     other.+--+-- -   @layout@ is a @VkPipelineLayout@ object used to program the+--     bindings.+--+-- -   @set@ is the set number of the descriptor set in the pipeline layout+--     that will be updated.+--+-- -   @descriptorWriteCount@ is the number of elements in the+--     @pDescriptorWrites@ array.+--+-- -   @pDescriptorWrites@ is a pointer to an array of+--     'Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet'+--     structures describing the descriptors to be updated.+--+-- = Description+-- #_description#+--+-- /Push descriptors/ are a small bank of descriptors whose storage is+-- internally managed by the command buffer rather than being written into+-- a descriptor set and later bound to a command buffer. Push descriptors+-- allow for incremental updates of descriptors without managing the+-- lifetime of descriptor sets.+--+-- When a command buffer begins recording, all push descriptors have+-- undefined contents. Push descriptors /can/ be updated incrementally and+-- cause shaders to use the updated descriptors for subsequent rendering+-- commands (either compute or graphics, according to the+-- @pipelineBindPoint@) until the descriptor is overwritten, or else until+-- the set is disturbed as described in+-- <{html_spec_relative}#descriptorsets-compatibility Pipeline Layout Compatibility>.+-- When the set is disturbed or push descriptors with a different+-- descriptor set layout are set, all push descriptors become invalid.+--+-- Valid descriptors /must/ be pushed for all bindings that any shaders in+-- a pipeline access, at the time that a draw or dispatch command is+-- recorded to execute using that pipeline. This includes immutable sampler+-- descriptors, which /must/ be pushed before they are accessed by a+-- pipeline. However, if none of the shaders in a pipeline statically use+-- certain bindings in the push descriptor set, then those descriptors need+-- not be valid.+--+-- Push descriptors do not use dynamic offsets. Instead, the corresponding+-- non-dynamic descriptor types /can/ be used and the @offset@ member of+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo' /can/ be+-- changed each time the descriptor is written.+--+-- Each element of @pDescriptorWrites@ is interpreted as in+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet', except the+-- @dstSet@ member is ignored.+--+-- To push an immutable sampler, use a+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet' with+-- @dstBinding@ and @dstArrayElement@ selecting the immutable sampler’s+-- binding. If the descriptor type is @VK_DESCRIPTOR_TYPE_SAMPLER@, the+-- @pImageInfo@ parameter is ignored and the immutable sampler is taken+-- from the push descriptor set layout in the pipeline layout. If the+-- descriptor type is @VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER@, the+-- @sampler@ member of the @pImageInfo@ parameter is ignored and the+-- immutable sampler is taken from the push descriptor set layout in the+-- pipeline layout.+--+-- == Valid Usage+--+-- -   @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s+--     parent @VkCommandPool@’s queue family+--+-- -   @set@ /must/ be less than+--     @VkPipelineLayoutCreateInfo@::@setLayoutCount@ provided when+--     @layout@ was created+--+-- -   @set@ /must/ be the unique set number in the pipeline layout that+--     uses a descriptor set layout that was created with+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pipelineBindPoint@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint' value+--+-- -   @layout@ /must/ be a valid @VkPipelineLayout@ handle+--+-- -   @pDescriptorWrites@ /must/ be a valid pointer to an array of+--     @descriptorWriteCount@ valid @VkWriteDescriptorSet@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   @descriptorWriteCount@ /must/ be greater than @0@+--+-- -   Both of @commandBuffer@, and @layout@ /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineLayout',+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet'+foreign import ccall "vkCmdPushDescriptorSetKHR" vkCmdPushDescriptorSetKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineBindPoint" ::: VkPipelineBindPoint) -> ("layout" ::: VkPipelineLayout) -> ("set" ::: Word32) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr VkWriteDescriptorSet) -> IO ()+-- | vkCmdPushDescriptorSetWithTemplateKHR - Pushes descriptor updates into a+-- command buffer using a descriptor update template+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer that the descriptors will be+--     recorded in.+--+-- -   @descriptorUpdateTemplate@ A descriptor update template which+--     defines how to interpret the descriptor information in pData.+--+-- -   @layout@ is a @VkPipelineLayout@ object used to program the+--     bindings. It /must/ be compatible with the layout used to create the+--     @descriptorUpdateTemplate@ handle.+--+-- -   @set@ is the set number of the descriptor set in the pipeline layout+--     that will be updated. This /must/ be the same number used to create+--     the @descriptorUpdateTemplate@ handle.+--+-- -   @pData@ Points to memory which contains the descriptors for the+--     templated update.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The pipelineBindPoint specified during the creation of the+--     descriptor update template /must/ be supported by the+--     @commandBuffer@’s parent @VkCommandPool@’s queue family+--+-- -   @pData@ /must/ be a valid pointer to a memory that contains one or+--     more valid instances of+--     'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo',+--     'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo', or+--     'Graphics.Vulkan.Core10.BufferView.VkBufferView' in a layout defined+--     by @descriptorUpdateTemplate@ when it was created with+--     'Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template.vkCreateDescriptorUpdateTemplateKHR'+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @descriptorUpdateTemplate@ /must/ be a valid+--     @VkDescriptorUpdateTemplate@ handle+--+-- -   @layout@ /must/ be a valid @VkPipelineLayout@ handle+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   Each of @commandBuffer@, @descriptorUpdateTemplate@, and @layout@+--     /must/ have been created, allocated, or retrieved from the same+--     @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- __API example.__+--+-- > struct AppBufferView {+-- >     VkBufferView bufferView;+-- >     uint32_t     applicationRelatedInformation;+-- > };+-- >+-- > struct AppDataStructure+-- > {+-- >     VkDescriptorImageInfo  imageInfo;          // a single image info+-- >     // ... some more application related data+-- > };+-- >+-- > const VkDescriptorUpdateTemplateEntry descriptorUpdateTemplateEntries[] =+-- > {+-- >     // binding to a single image descriptor+-- >     {+-- >         0,                                           // binding+-- >         0,                                           // dstArrayElement+-- >         1,                                           // descriptorCount+-- >         VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,   // descriptorType+-- >         offsetof(AppDataStructure, imageInfo),       // offset+-- >         0                                            // stride is not required if descriptorCount is 1.+-- >     }+-- >+-- > };+-- >+-- > // create an descriptor update template for descriptor set updates+-- > const VkDescriptorUpdateTemplateCreateInfo createInfo =+-- > {+-- >     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,  // sType+-- >     NULL,                                                          // pNext+-- >     0,                                                             // flags+-- >     1,                                                             // descriptorUpdateEntryCount+-- >     descriptorUpdateTemplateEntries,                               // pDescriptorUpdateEntries+-- >     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,       // templateType+-- >     0,                                                             // descriptorSetLayout, ignored by given templateType+-- >     VK_PIPELINE_BIND_POINT_GRAPHICS,                               // pipelineBindPoint+-- >     myPipelineLayout,                                              // pipelineLayout+-- >     0,                                                             // set+-- > };+-- >+-- > VkDescriptorUpdateTemplate myDescriptorUpdateTemplate;+-- > myResult = vkCreateDescriptorUpdateTemplate(+-- >     myDevice,+-- >     &createInfo,+-- >     NULL,+-- >     &myDescriptorUpdateTemplate);+-- > }+-- >+-- > AppDataStructure appData;+-- > // fill appData here or cache it in your engine+-- > vkCmdPushDescriptorSetWithTemplateKHR(myCmdBuffer, myDescriptorUpdateTemplate, myPipelineLayout, 0,&appData);+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer',+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplate',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineLayout'+foreign import ccall "vkCmdPushDescriptorSetWithTemplateKHR" vkCmdPushDescriptorSetWithTemplateKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("layout" ::: VkPipelineLayout) -> ("set" ::: Word32) -> ("pData" ::: Ptr ()) -> IO ()+-- | VkPhysicalDevicePushDescriptorPropertiesKHR - Structure describing push+-- descriptor limits that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the @VkPhysicalDevicePushDescriptorPropertiesKHR@+-- structure describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @maxPushDescriptors@ is the maximum number of descriptors that /can/+--     be used in a descriptor set created with+--     @VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR@ set.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDevicePushDescriptorPropertiesKHR = VkPhysicalDevicePushDescriptorPropertiesKHR+  { -- No documentation found for Nested "VkPhysicalDevicePushDescriptorPropertiesKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDevicePushDescriptorPropertiesKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDevicePushDescriptorPropertiesKHR" "vkMaxPushDescriptors"+  vkMaxPushDescriptors :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDevicePushDescriptorPropertiesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDevicePushDescriptorPropertiesKHR <$> peek (ptr `plusPtr` 0)+                                                         <*> peek (ptr `plusPtr` 8)+                                                         <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDevicePushDescriptorPropertiesKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDevicePushDescriptorPropertiesKHR))+                *> poke (ptr `plusPtr` 16) (vkMaxPushDescriptors (poked :: VkPhysicalDevicePushDescriptorPropertiesKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_KHR_relaxed_block_layout+  ( pattern VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION+  , pattern VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION"+pattern VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION :: Integral a => a+pattern VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME"+pattern VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME = "VK_KHR_relaxed_block_layout"
+ src/Graphics/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs view
@@ -0,0 +1,33 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge+  ( pattern VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE+  , pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION+  , pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+++import Graphics.Vulkan.Core10.Sampler+  ( VkSamplerAddressMode(..)+  )+++-- | @VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE@ specifies that the mirror+-- clamp to edge wrap mode will be used. This is only valid if the+-- @{html_spec_relative}#VK_KHR_sampler_mirror_clamp_to_edge@ extension is+-- enabled.+pattern VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE :: VkSamplerAddressMode+pattern VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = VkSamplerAddressMode 4+-- No documentation found for TopLevel "VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION"+pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME"+pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge"
+ src/Graphics/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs view
@@ -0,0 +1,457 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion+  ( pattern VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION+  , pattern VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME+  , vkCreateSamplerYcbcrConversionKHR+  , vkDestroySamplerYcbcrConversionKHR+  , VkSamplerYcbcrModelConversionKHR+  , VkSamplerYcbcrRangeKHR+  , VkChromaLocationKHR+  , VkSamplerYcbcrConversionKHR+  , VkSamplerYcbcrConversionInfoKHR+  , pattern VkSamplerYcbcrConversionInfoKHR+  , VkSamplerYcbcrConversionCreateInfoKHR+  , pattern VkSamplerYcbcrConversionCreateInfoKHR+  , VkBindImagePlaneMemoryInfoKHR+  , pattern VkBindImagePlaneMemoryInfoKHR+  , VkImagePlaneMemoryRequirementsInfoKHR+  , pattern VkImagePlaneMemoryRequirementsInfoKHR+  , VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR+  , pattern VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR+  , VkSamplerYcbcrConversionImageFormatPropertiesKHR+  , pattern VkSamplerYcbcrConversionImageFormatPropertiesKHR+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT+  , pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR+  , pattern VK_FORMAT_G8B8G8R8_422_UNORM_KHR+  , pattern VK_FORMAT_B8G8R8G8_422_UNORM_KHR+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR+  , pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR+  , pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR+  , pattern VK_FORMAT_R10X6_UNORM_PACK16_KHR+  , pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR+  , pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR+  , pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR+  , pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_R12X4_UNORM_PACK16_KHR+  , pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR+  , pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR+  , pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR+  , pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR+  , pattern VK_FORMAT_G16B16G16R16_422_UNORM_KHR+  , pattern VK_FORMAT_B16G16R16G16_422_UNORM_KHR+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR+  , pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR+  , pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR+  , pattern VK_IMAGE_ASPECT_PLANE_0_BIT_KHR+  , pattern VK_IMAGE_ASPECT_PLANE_1_BIT_KHR+  , pattern VK_IMAGE_ASPECT_PLANE_2_BIT_KHR+  , pattern VK_IMAGE_CREATE_DISJOINT_BIT_KHR+  , pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR+  , pattern VK_FORMAT_FEATURE_DISJOINT_BIT_KHR+  , pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR+  , pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR+  , pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR+  , pattern VK_CHROMA_LOCATION_COSITED_EVEN_KHR+  , pattern VK_CHROMA_LOCATION_MIDPOINT_KHR+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkObjectType(..)+  , VkBool32(..)+  , VkFormat(..)+  , VkStructureType(..)+  , VkResult(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkFormatFeatureFlagBits(..)+  , VkImageCreateFlagBits(..)+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.ImageView+  ( VkComponentMapping(..)+  )+import Graphics.Vulkan.Core10.Sampler+  ( VkFilter(..)+  )+import Graphics.Vulkan.Core10.SparseResourceMemoryManagement+  ( VkImageAspectFlagBits(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion+  ( pattern VK_CHROMA_LOCATION_MIDPOINT+  , pattern VK_CHROMA_LOCATION_COSITED_EVEN+  , pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW+  , pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY+  , pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY+  , pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT+  , pattern VK_FORMAT_FEATURE_DISJOINT_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+  , pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+  , pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT+  , pattern VK_IMAGE_CREATE_DISJOINT_BIT+  , pattern VK_IMAGE_ASPECT_PLANE_2_BIT+  , pattern VK_IMAGE_ASPECT_PLANE_1_BIT+  , pattern VK_IMAGE_ASPECT_PLANE_0_BIT+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM+  , pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM+  , pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM+  , pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM+  , pattern VK_FORMAT_B16G16R16G16_422_UNORM+  , pattern VK_FORMAT_G16B16G16R16_422_UNORM+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16+  , pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16+  , pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16+  , pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16+  , pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16+  , pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16+  , pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16+  , pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16+  , pattern VK_FORMAT_R12X4_UNORM_PACK16+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16+  , pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16+  , pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16+  , pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16+  , pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16+  , pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16+  , pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16+  , pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16+  , pattern VK_FORMAT_R10X6_UNORM_PACK16+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM+  , pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM+  , pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM+  , pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM+  , pattern VK_FORMAT_B8G8R8G8_422_UNORM+  , pattern VK_FORMAT_G8B8G8R8_422_UNORM+  , pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES+  , pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO+  , pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO+  , VkSamplerYcbcrConversionImageFormatProperties(..)+  , VkPhysicalDeviceSamplerYcbcrConversionFeatures(..)+  , VkImagePlaneMemoryRequirementsInfo(..)+  , VkBindImagePlaneMemoryInfo(..)+  , VkSamplerYcbcrConversionInfo(..)+  , VkChromaLocation(..)+  , VkSamplerYcbcrRange(..)+  , VkSamplerYcbcrModelConversion(..)+  , vkDestroySamplerYcbcrConversion+  , VkSamplerYcbcrConversion+  , VkSamplerYcbcrConversionCreateInfo(..)+  , vkCreateSamplerYcbcrConversion+  )+import Graphics.Vulkan.Extensions.VK_EXT_debug_report+  ( VkDebugReportObjectTypeEXT(..)+  , pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT+  )+++-- No documentation found for TopLevel "VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION"+pattern VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION :: Integral a => a+pattern VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME"+pattern VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME = "VK_KHR_sampler_ycbcr_conversion"+-- No documentation found for TopLevel "vkCreateSamplerYcbcrConversionKHR"+vkCreateSamplerYcbcrConversionKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerYcbcrConversionCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr VkSamplerYcbcrConversion) -> IO VkResult+vkCreateSamplerYcbcrConversionKHR = vkCreateSamplerYcbcrConversion+-- No documentation found for TopLevel "vkDestroySamplerYcbcrConversionKHR"+vkDestroySamplerYcbcrConversionKHR :: ("device" ::: VkDevice) -> ("ycbcrConversion" ::: VkSamplerYcbcrConversion) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+vkDestroySamplerYcbcrConversionKHR = vkDestroySamplerYcbcrConversion+-- No documentation found for TopLevel "VkSamplerYcbcrModelConversionKHR"+type VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion+-- No documentation found for TopLevel "VkSamplerYcbcrRangeKHR"+type VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange+-- No documentation found for TopLevel "VkChromaLocationKHR"+type VkChromaLocationKHR = VkChromaLocation+-- No documentation found for TopLevel "VkSamplerYcbcrConversionKHR"+type VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion+-- No documentation found for TopLevel "VkSamplerYcbcrConversionInfoKHR"+type VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo+++-- No documentation found for TopLevel "VkSamplerYcbcrConversionInfoKHR"+pattern VkSamplerYcbcrConversionInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("conversion" ::: VkSamplerYcbcrConversion) -> VkSamplerYcbcrConversionInfoKHR+pattern VkSamplerYcbcrConversionInfoKHR vkSType vkPNext vkConversion = VkSamplerYcbcrConversionInfo vkSType vkPNext vkConversion+-- No documentation found for TopLevel "VkSamplerYcbcrConversionCreateInfoKHR"+type VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo+++-- No documentation found for TopLevel "VkSamplerYcbcrConversionCreateInfoKHR"+pattern VkSamplerYcbcrConversionCreateInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("format" ::: VkFormat) -> ("ycbcrModel" ::: VkSamplerYcbcrModelConversion) -> ("ycbcrRange" ::: VkSamplerYcbcrRange) -> ("components" ::: VkComponentMapping) -> ("xChromaOffset" ::: VkChromaLocation) -> ("yChromaOffset" ::: VkChromaLocation) -> ("chromaFilter" ::: VkFilter) -> ("forceExplicitReconstruction" ::: VkBool32) -> VkSamplerYcbcrConversionCreateInfoKHR+pattern VkSamplerYcbcrConversionCreateInfoKHR vkSType vkPNext vkFormat vkYcbcrModel vkYcbcrRange vkComponents vkXChromaOffset vkYChromaOffset vkChromaFilter vkForceExplicitReconstruction = VkSamplerYcbcrConversionCreateInfo vkSType vkPNext vkFormat vkYcbcrModel vkYcbcrRange vkComponents vkXChromaOffset vkYChromaOffset vkChromaFilter vkForceExplicitReconstruction+-- No documentation found for TopLevel "VkBindImagePlaneMemoryInfoKHR"+type VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo+++-- No documentation found for TopLevel "VkBindImagePlaneMemoryInfoKHR"+pattern VkBindImagePlaneMemoryInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("planeAspect" ::: VkImageAspectFlagBits) -> VkBindImagePlaneMemoryInfoKHR+pattern VkBindImagePlaneMemoryInfoKHR vkSType vkPNext vkPlaneAspect = VkBindImagePlaneMemoryInfo vkSType vkPNext vkPlaneAspect+-- No documentation found for TopLevel "VkImagePlaneMemoryRequirementsInfoKHR"+type VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo+++-- No documentation found for TopLevel "VkImagePlaneMemoryRequirementsInfoKHR"+pattern VkImagePlaneMemoryRequirementsInfoKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("planeAspect" ::: VkImageAspectFlagBits) -> VkImagePlaneMemoryRequirementsInfoKHR+pattern VkImagePlaneMemoryRequirementsInfoKHR vkSType vkPNext vkPlaneAspect = VkImagePlaneMemoryRequirementsInfo vkSType vkPNext vkPlaneAspect+-- No documentation found for TopLevel "VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR"+type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures+++-- No documentation found for TopLevel "VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR"+pattern VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("samplerYcbcrConversion" ::: VkBool32) -> VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR+pattern VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR vkSType vkPNext vkSamplerYcbcrConversion = VkPhysicalDeviceSamplerYcbcrConversionFeatures vkSType vkPNext vkSamplerYcbcrConversion+-- No documentation found for TopLevel "VkSamplerYcbcrConversionImageFormatPropertiesKHR"+type VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties+++-- No documentation found for TopLevel "VkSamplerYcbcrConversionImageFormatPropertiesKHR"+pattern VkSamplerYcbcrConversionImageFormatPropertiesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("combinedImageSamplerDescriptorCount" ::: Word32) -> VkSamplerYcbcrConversionImageFormatPropertiesKHR+pattern VkSamplerYcbcrConversionImageFormatPropertiesKHR vkSType vkPNext vkCombinedImageSamplerDescriptorCount = VkSamplerYcbcrConversionImageFormatProperties vkSType vkPNext vkCombinedImageSamplerDescriptorCount+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR"+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR"+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR"+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES+-- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT"+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT :: VkDebugReportObjectTypeEXT+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT+-- No documentation found for TopLevel "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR"+pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR :: VkObjectType+pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION+-- No documentation found for TopLevel "VK_FORMAT_G8B8G8R8_422_UNORM_KHR"+pattern VK_FORMAT_G8B8G8R8_422_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM+-- No documentation found for TopLevel "VK_FORMAT_B8G8R8G8_422_UNORM_KHR"+pattern VK_FORMAT_B8G8R8G8_422_UNORM_KHR :: VkFormat+pattern VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR"+pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR"+pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR"+pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR"+pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR"+pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM+-- No documentation found for TopLevel "VK_FORMAT_R10X6_UNORM_PACK16_KHR"+pattern VK_FORMAT_R10X6_UNORM_PACK16_KHR :: VkFormat+pattern VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16+-- No documentation found for TopLevel "VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR"+pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR :: VkFormat+pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16+-- No documentation found for TopLevel "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR"+pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR :: VkFormat+pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16+-- No documentation found for TopLevel "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR"+pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR :: VkFormat+pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16+-- No documentation found for TopLevel "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR"+pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR :: VkFormat+pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16+-- No documentation found for TopLevel "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_R12X4_UNORM_PACK16_KHR"+pattern VK_FORMAT_R12X4_UNORM_PACK16_KHR :: VkFormat+pattern VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16+-- No documentation found for TopLevel "VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR"+pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR :: VkFormat+pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16+-- No documentation found for TopLevel "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR"+pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR :: VkFormat+pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16+-- No documentation found for TopLevel "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR"+pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR :: VkFormat+pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16+-- No documentation found for TopLevel "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR"+pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR :: VkFormat+pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16+-- No documentation found for TopLevel "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR"+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR :: VkFormat+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16+-- No documentation found for TopLevel "VK_FORMAT_G16B16G16R16_422_UNORM_KHR"+pattern VK_FORMAT_G16B16G16R16_422_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM+-- No documentation found for TopLevel "VK_FORMAT_B16G16R16G16_422_UNORM_KHR"+pattern VK_FORMAT_B16G16R16G16_422_UNORM_KHR :: VkFormat+pattern VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR"+pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR"+pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR"+pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR"+pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM+-- No documentation found for TopLevel "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR"+pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR :: VkFormat+pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM+-- No documentation found for TopLevel "VK_IMAGE_ASPECT_PLANE_0_BIT_KHR"+pattern VK_IMAGE_ASPECT_PLANE_0_BIT_KHR :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT+-- No documentation found for TopLevel "VK_IMAGE_ASPECT_PLANE_1_BIT_KHR"+pattern VK_IMAGE_ASPECT_PLANE_1_BIT_KHR :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT+-- No documentation found for TopLevel "VK_IMAGE_ASPECT_PLANE_2_BIT_KHR"+pattern VK_IMAGE_ASPECT_PLANE_2_BIT_KHR :: VkImageAspectFlagBits+pattern VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT+-- No documentation found for TopLevel "VK_IMAGE_CREATE_DISJOINT_BIT_KHR"+pattern VK_IMAGE_CREATE_DISJOINT_BIT_KHR :: VkImageCreateFlagBits+pattern VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR"+pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_DISJOINT_BIT_KHR"+pattern VK_FORMAT_FEATURE_DISJOINT_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT+-- No documentation found for TopLevel "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR"+pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR :: VkFormatFeatureFlagBits+pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT+-- No documentation found for TopLevel "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY+-- No documentation found for TopLevel "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY+-- No documentation found for TopLevel "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709+-- No documentation found for TopLevel "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601+-- No documentation found for TopLevel "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR"+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR :: VkSamplerYcbcrModelConversion+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020+-- No documentation found for TopLevel "VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR"+pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR :: VkSamplerYcbcrRange+pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL+-- No documentation found for TopLevel "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR"+pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR :: VkSamplerYcbcrRange+pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW+-- No documentation found for TopLevel "VK_CHROMA_LOCATION_COSITED_EVEN_KHR"+pattern VK_CHROMA_LOCATION_COSITED_EVEN_KHR :: VkChromaLocation+pattern VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN+-- No documentation found for TopLevel "VK_CHROMA_LOCATION_MIDPOINT_KHR"+pattern VK_CHROMA_LOCATION_MIDPOINT_KHR :: VkChromaLocation+pattern VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT
+ src/Graphics/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_KHR_shader_draw_parameters+  ( pattern VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION+  , pattern VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION"+pattern VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION :: Integral a => a+pattern VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME"+pattern VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME = "VK_KHR_shader_draw_parameters"
+ src/Graphics/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs view
@@ -0,0 +1,156 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image+  ( pattern VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR+  , pattern VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR+  , pattern VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR+  , pattern VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR+  , pattern VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION+  , pattern VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME+  , vkGetSwapchainStatusKHR+  , VkSharedPresentSurfaceCapabilitiesKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageUsageFlags+  , VkDevice+  )+import Graphics.Vulkan.Core10.Image+  ( VkImageLayout(..)+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkPresentModeKHR(..)+  )+import Graphics.Vulkan.Extensions.VK_KHR_swapchain+  ( VkSwapchainKHR+  )+++-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR"+pattern VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR :: VkImageLayout+pattern VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = VkImageLayout 1000111000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"+pattern VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = VkStructureType 1000111000+-- No documentation found for Nested "VkPresentModeKHR" "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR"+pattern VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR :: VkPresentModeKHR+pattern VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = VkPresentModeKHR 1000111000+-- No documentation found for Nested "VkPresentModeKHR" "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR"+pattern VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR :: VkPresentModeKHR+pattern VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = VkPresentModeKHR 1000111001+-- No documentation found for TopLevel "VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION"+pattern VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME"+pattern VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME = "VK_KHR_shared_presentable_image"+-- | vkGetSwapchainStatusKHR - Get a swapchain’s status+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device associated with @swapchain@.+--+-- -   @swapchain@ is the swapchain to query.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @swapchain@ /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   Both of @device@, and @swapchain@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_SUBOPTIMAL_KHR@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_OUT_OF_DATE_KHR@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainKHR'+foreign import ccall "vkGetSwapchainStatusKHR" vkGetSwapchainStatusKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> IO VkResult+-- | VkSharedPresentSurfaceCapabilitiesKHR - structure describing+-- capabilities of a surface for shared presentation+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkSharedPresentSurfaceCapabilitiesKHR = VkSharedPresentSurfaceCapabilitiesKHR+  { -- No documentation found for Nested "VkSharedPresentSurfaceCapabilitiesKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSharedPresentSurfaceCapabilitiesKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSharedPresentSurfaceCapabilitiesKHR" "vkSharedPresentSupportedUsageFlags"+  vkSharedPresentSupportedUsageFlags :: VkImageUsageFlags+  }+  deriving (Eq, Show)++instance Storable VkSharedPresentSurfaceCapabilitiesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkSharedPresentSurfaceCapabilitiesKHR <$> peek (ptr `plusPtr` 0)+                                                   <*> peek (ptr `plusPtr` 8)+                                                   <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSharedPresentSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSharedPresentSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 16) (vkSharedPresentSupportedUsageFlags (poked :: VkSharedPresentSurfaceCapabilitiesKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_KHR_storage_buffer_storage_class+  ( pattern VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION+  , pattern VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION"+pattern VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION :: Integral a => a+pattern VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME"+pattern VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME = "VK_KHR_storage_buffer_storage_class"
+ src/Graphics/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -0,0 +1,924 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkColorSpaceKHR(..)+  , pattern VK_COLOR_SPACE_SRGB_NONLINEAR_KHR+  , VkPresentModeKHR(..)+  , pattern VK_PRESENT_MODE_IMMEDIATE_KHR+  , pattern VK_PRESENT_MODE_MAILBOX_KHR+  , pattern VK_PRESENT_MODE_FIFO_KHR+  , pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR+  , VkCompositeAlphaFlagBitsKHR(..)+  , pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR+  , pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR+  , pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR+  , pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR+  , VkSurfaceTransformFlagBitsKHR(..)+  , pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR+  , pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR+  , pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR+  , pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR+  , pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR+  , pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR+  , pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR+  , pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR+  , pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR+  , pattern VK_ERROR_SURFACE_LOST_KHR+  , pattern VK_ERROR_NATIVE_WINDOW_IN_USE_KHR+  , pattern VK_OBJECT_TYPE_SURFACE_KHR+  , pattern VK_KHR_SURFACE_SPEC_VERSION+  , pattern VK_KHR_SURFACE_EXTENSION_NAME+  , pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR+  , VkSurfaceKHR+  , vkDestroySurfaceKHR+  , vkGetPhysicalDeviceSurfaceSupportKHR+  , vkGetPhysicalDeviceSurfaceCapabilitiesKHR+  , vkGetPhysicalDeviceSurfaceFormatsKHR+  , vkGetPhysicalDeviceSurfacePresentModesKHR+  , VkSurfaceCapabilitiesKHR(..)+  , VkSurfaceFormatKHR(..)+  , VkCompositeAlphaFlagsKHR+  , VkSurfaceTransformFlagsKHR+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkFormat(..)+  , VkBool32(..)+  , VkObjectType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageUsageFlags+  , VkPhysicalDevice+  , VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkExtent2D(..)+  )+++-- ** VkColorSpaceKHR++-- | VkColorSpaceKHR - supported color space of the presentation engine+--+-- = See Also+-- #_see_also#+--+-- 'VkSurfaceFormatKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR'+newtype VkColorSpaceKHR = VkColorSpaceKHR Int32+  deriving (Eq, Ord, Storable)++instance Show VkColorSpaceKHR where+  showsPrec _ VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = showString "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkColorSpaceKHR 1000104001) = showString "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104002) = showString "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104003) = showString "VK_COLOR_SPACE_DCI_P3_LINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104004) = showString "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104005) = showString "VK_COLOR_SPACE_BT709_LINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104006) = showString "VK_COLOR_SPACE_BT709_NONLINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104007) = showString "VK_COLOR_SPACE_BT2020_LINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104008) = showString "VK_COLOR_SPACE_HDR10_ST2084_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104009) = showString "VK_COLOR_SPACE_DOLBYVISION_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104010) = showString "VK_COLOR_SPACE_HDR10_HLG_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104011) = showString "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104012) = showString "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104013) = showString "VK_COLOR_SPACE_PASS_THROUGH_EXT"+  showsPrec _ (VkColorSpaceKHR 1000104014) = showString "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT"+  showsPrec p (VkColorSpaceKHR x) = showParen (p >= 11) (showString "VkColorSpaceKHR " . showsPrec 11 x)++instance Read VkColorSpaceKHR where+  readPrec = parens ( choose [ ("VK_COLOR_SPACE_SRGB_NONLINEAR_KHR", pure VK_COLOR_SPACE_SRGB_NONLINEAR_KHR)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT",    pure (VkColorSpaceKHR 1000104001))+                             , ("VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT",    pure (VkColorSpaceKHR 1000104002))+                             , ("VK_COLOR_SPACE_DCI_P3_LINEAR_EXT",           pure (VkColorSpaceKHR 1000104003))+                             , ("VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT",        pure (VkColorSpaceKHR 1000104004))+                             , ("VK_COLOR_SPACE_BT709_LINEAR_EXT",            pure (VkColorSpaceKHR 1000104005))+                             , ("VK_COLOR_SPACE_BT709_NONLINEAR_EXT",         pure (VkColorSpaceKHR 1000104006))+                             , ("VK_COLOR_SPACE_BT2020_LINEAR_EXT",           pure (VkColorSpaceKHR 1000104007))+                             , ("VK_COLOR_SPACE_HDR10_ST2084_EXT",            pure (VkColorSpaceKHR 1000104008))+                             , ("VK_COLOR_SPACE_DOLBYVISION_EXT",             pure (VkColorSpaceKHR 1000104009))+                             , ("VK_COLOR_SPACE_HDR10_HLG_EXT",               pure (VkColorSpaceKHR 1000104010))+                             , ("VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT",         pure (VkColorSpaceKHR 1000104011))+                             , ("VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT",      pure (VkColorSpaceKHR 1000104012))+                             , ("VK_COLOR_SPACE_PASS_THROUGH_EXT",            pure (VkColorSpaceKHR 1000104013))+                             , ("VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT", pure (VkColorSpaceKHR 1000104014))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkColorSpaceKHR")+                        v <- step readPrec+                        pure (VkColorSpaceKHR v)+                        )+                    )++-- | @VK_COLOR_SPACE_SRGB_NONLINEAR_KHR@ specifies support for the sRGB color+-- space.+pattern VK_COLOR_SPACE_SRGB_NONLINEAR_KHR :: VkColorSpaceKHR+pattern VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = VkColorSpaceKHR 0+-- ** VkPresentModeKHR++-- | VkPresentModeKHR - presentation mode supported for a surface+--+-- = Description+-- #_description#+--+-- -   @VK_PRESENT_MODE_IMMEDIATE_KHR@ specifies that the presentation+--     engine does not wait for a vertical blanking period to update the+--     current image, meaning this mode /may/ result in visible tearing. No+--     internal queuing of presentation requests is needed, as the requests+--     are applied immediately.+--+-- -   @VK_PRESENT_MODE_MAILBOX_KHR@ specifies that the presentation engine+--     waits for the next vertical blanking period to update the current+--     image. Tearing /cannot/ be observed. An internal single-entry queue+--     is used to hold pending presentation requests. If the queue is full+--     when a new presentation request is received, the new request+--     replaces the existing entry, and any images associated with the+--     prior entry become available for re-use by the application. One+--     request is removed from the queue and processed during each vertical+--     blanking period in which the queue is non-empty.+--+-- -   @VK_PRESENT_MODE_FIFO_KHR@ specifies that the presentation engine+--     waits for the next vertical blanking period to update the current+--     image. Tearing /cannot/ be observed. An internal queue is used to+--     hold pending presentation requests. New requests are appended to the+--     end of the queue, and one request is removed from the beginning of+--     the queue and processed during each vertical blanking period in+--     which the queue is non-empty. This is the only value of+--     @presentMode@ that is /required/ to be supported.+--+-- -   @VK_PRESENT_MODE_FIFO_RELAXED_KHR@ specifies that the presentation+--     engine generally waits for the next vertical blanking period to+--     update the current image. If a vertical blanking period has already+--     passed since the last update of the current image then the+--     presentation engine does not wait for another vertical blanking+--     period for the update, meaning this mode /may/ result in visible+--     tearing in this case. This mode is useful for reducing visual+--     stutter with an application that will mostly present a new image+--     before the next vertical blanking period, but may occasionally be+--     late, and present a new image just after the next vertical blanking+--     period. An internal queue is used to hold pending presentation+--     requests. New requests are appended to the end of the queue, and one+--     request is removed from the beginning of the queue and processed+--     during or after each vertical blanking period in which the queue is+--     non-empty.+--+-- __Note__+--+-- For reference, the mode indicated by @VK_PRESENT_MODE_FIFO_KHR@ is+-- equivalent to the behavior of {wgl|glX|egl}SwapBuffers with a swap+-- interval of 1, while the mode indicated by+-- @VK_PRESENT_MODE_FIFO_RELAXED_KHR@ is equivalent to the behavior of+-- {wgl|glX}SwapBuffers with a swap interval of -1 (from the+-- {WGL|GLX}_EXT_swap_control_tear extensions).+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR',+-- 'vkGetPhysicalDeviceSurfacePresentModesKHR'+newtype VkPresentModeKHR = VkPresentModeKHR Int32+  deriving (Eq, Ord, Storable)++instance Show VkPresentModeKHR where+  showsPrec _ VK_PRESENT_MODE_IMMEDIATE_KHR = showString "VK_PRESENT_MODE_IMMEDIATE_KHR"+  showsPrec _ VK_PRESENT_MODE_MAILBOX_KHR = showString "VK_PRESENT_MODE_MAILBOX_KHR"+  showsPrec _ VK_PRESENT_MODE_FIFO_KHR = showString "VK_PRESENT_MODE_FIFO_KHR"+  showsPrec _ VK_PRESENT_MODE_FIFO_RELAXED_KHR = showString "VK_PRESENT_MODE_FIFO_RELAXED_KHR"+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkPresentModeKHR 1000111000) = showString "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR"+  showsPrec _ (VkPresentModeKHR 1000111001) = showString "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR"+  showsPrec p (VkPresentModeKHR x) = showParen (p >= 11) (showString "VkPresentModeKHR " . showsPrec 11 x)++instance Read VkPresentModeKHR where+  readPrec = parens ( choose [ ("VK_PRESENT_MODE_IMMEDIATE_KHR",    pure VK_PRESENT_MODE_IMMEDIATE_KHR)+                             , ("VK_PRESENT_MODE_MAILBOX_KHR",      pure VK_PRESENT_MODE_MAILBOX_KHR)+                             , ("VK_PRESENT_MODE_FIFO_KHR",         pure VK_PRESENT_MODE_FIFO_KHR)+                             , ("VK_PRESENT_MODE_FIFO_RELAXED_KHR", pure VK_PRESENT_MODE_FIFO_RELAXED_KHR)+                             , -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR",     pure (VkPresentModeKHR 1000111000))+                             , ("VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR", pure (VkPresentModeKHR 1000111001))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPresentModeKHR")+                        v <- step readPrec+                        pure (VkPresentModeKHR v)+                        )+                    )++-- No documentation found for Nested "VkPresentModeKHR" "VK_PRESENT_MODE_IMMEDIATE_KHR"+pattern VK_PRESENT_MODE_IMMEDIATE_KHR :: VkPresentModeKHR+pattern VK_PRESENT_MODE_IMMEDIATE_KHR = VkPresentModeKHR 0++-- No documentation found for Nested "VkPresentModeKHR" "VK_PRESENT_MODE_MAILBOX_KHR"+pattern VK_PRESENT_MODE_MAILBOX_KHR :: VkPresentModeKHR+pattern VK_PRESENT_MODE_MAILBOX_KHR = VkPresentModeKHR 1++-- No documentation found for Nested "VkPresentModeKHR" "VK_PRESENT_MODE_FIFO_KHR"+pattern VK_PRESENT_MODE_FIFO_KHR :: VkPresentModeKHR+pattern VK_PRESENT_MODE_FIFO_KHR = VkPresentModeKHR 2++-- No documentation found for Nested "VkPresentModeKHR" "VK_PRESENT_MODE_FIFO_RELAXED_KHR"+pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR :: VkPresentModeKHR+pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR = VkPresentModeKHR 3+-- ** VkCompositeAlphaFlagBitsKHR++-- | VkCompositeAlphaFlagBitsKHR - alpha compositing modes supported on a+-- device+--+-- = Description+-- #_description#+--+-- These values are described as follows:+--+-- -   @VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR@: The alpha channel, if it+--     exists, of the images is ignored in the compositing process.+--     Instead, the image is treated as if it has a constant alpha of 1.0.+--+-- -   @VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR@: The alpha channel, if+--     it exists, of the images is respected in the compositing process.+--     The non-alpha channels of the image are expected to already be+--     multiplied by the alpha channel by the application.+--+-- -   @VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR@: The alpha channel, if+--     it exists, of the images is respected in the compositing process.+--     The non-alpha channels of the image are not expected to already be+--     multiplied by the alpha channel by the application; instead, the+--     compositor will multiply the non-alpha channels of the image by the+--     alpha channel during compositing.+--+-- -   @VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR@: The way in which the+--     presentation engine treats the alpha channel in the images is+--     unknown to the Vulkan API. Instead, the application is responsible+--     for setting the composite alpha blending mode using native window+--     system commands. If the application does not set the blending mode+--     using native window system commands, then a platform-specific+--     default will be used.+--+-- = See Also+-- #_see_also#+--+-- 'VkCompositeAlphaFlagsKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR'+newtype VkCompositeAlphaFlagBitsKHR = VkCompositeAlphaFlagBitsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkCompositeAlphaFlagBitsKHR where+  showsPrec _ VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = showString "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"+  showsPrec _ VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = showString "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"+  showsPrec _ VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = showString "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"+  showsPrec _ VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = showString "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"+  showsPrec p (VkCompositeAlphaFlagBitsKHR x) = showParen (p >= 11) (showString "VkCompositeAlphaFlagBitsKHR " . showsPrec 11 x)++instance Read VkCompositeAlphaFlagBitsKHR where+  readPrec = parens ( choose [ ("VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR",          pure VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR)+                             , ("VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR",  pure VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR)+                             , ("VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR", pure VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR)+                             , ("VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR",         pure VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCompositeAlphaFlagBitsKHR")+                        v <- step readPrec+                        pure (VkCompositeAlphaFlagBitsKHR v)+                        )+                    )++-- No documentation found for Nested "VkCompositeAlphaFlagBitsKHR" "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"+pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR :: VkCompositeAlphaFlagBitsKHR+pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x00000001++-- No documentation found for Nested "VkCompositeAlphaFlagBitsKHR" "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"+pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR :: VkCompositeAlphaFlagBitsKHR+pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x00000002++-- No documentation found for Nested "VkCompositeAlphaFlagBitsKHR" "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"+pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR :: VkCompositeAlphaFlagBitsKHR+pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x00000004++-- No documentation found for Nested "VkCompositeAlphaFlagBitsKHR" "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"+pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR :: VkCompositeAlphaFlagBitsKHR+pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x00000008+-- ** VkSurfaceTransformFlagBitsKHR++-- | VkSurfaceTransformFlagBitsKHR - presentation transforms supported on a+-- device+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT',+-- 'VkSurfaceCapabilitiesKHR', 'VkSurfaceTransformFlagsKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR'+newtype VkSurfaceTransformFlagBitsKHR = VkSurfaceTransformFlagBitsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSurfaceTransformFlagBitsKHR where+  showsPrec _ VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = showString "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"+  showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = showString "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"+  showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = showString "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"+  showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = showString "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"+  showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"+  showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"+  showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"+  showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"+  showsPrec _ VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = showString "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"+  showsPrec p (VkSurfaceTransformFlagBitsKHR x) = showParen (p >= 11) (showString "VkSurfaceTransformFlagBitsKHR " . showsPrec 11 x)++instance Read VkSurfaceTransformFlagBitsKHR where+  readPrec = parens ( choose [ ("VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR",                     pure VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR)+                             , ("VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR",                    pure VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR)+                             , ("VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR",                   pure VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR)+                             , ("VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR",                   pure VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR)+                             , ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR",            pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR)+                             , ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR",  pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR)+                             , ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR", pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR)+                             , ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR", pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR)+                             , ("VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR",                      pure VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSurfaceTransformFlagBitsKHR")+                        v <- step readPrec+                        pure (VkSurfaceTransformFlagBitsKHR v)+                        )+                    )++-- | @VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR@ specifies that image content is+-- presented without being transformed.+pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000001++-- | @VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR@ specifies that image content is+-- rotated 90 degrees clockwise.+pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000002++-- | @VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR@ specifies that image content+-- is rotated 180 degrees clockwise.+pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000004++-- | @VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR@ specifies that image content+-- is rotated 270 degrees clockwise.+pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000008++-- | @VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR@ specifies that image+-- content is mirrored horizontally.+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000010++-- | @VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR@ specifies+-- that image content is mirrored horizontally, then rotated 90 degrees+-- clockwise.+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000020++-- | @VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR@ specifies+-- that image content is mirrored horizontally, then rotated 180 degrees+-- clockwise.+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000040++-- | @VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR@ specifies+-- that image content is mirrored horizontally, then rotated 270 degrees+-- clockwise.+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000080++-- | @VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR@ specifies that the presentation+-- transform is not specified, and is instead determined by+-- platform-specific considerations and mechanisms outside Vulkan.+pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR :: VkSurfaceTransformFlagBitsKHR+pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x00000100+-- No documentation found for Nested "VkResult" "VK_ERROR_SURFACE_LOST_KHR"+pattern VK_ERROR_SURFACE_LOST_KHR :: VkResult+pattern VK_ERROR_SURFACE_LOST_KHR = VkResult (-1000000000)+-- No documentation found for Nested "VkResult" "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"+pattern VK_ERROR_NATIVE_WINDOW_IN_USE_KHR :: VkResult+pattern VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = VkResult (-1000000001)+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SURFACE_KHR"+pattern VK_OBJECT_TYPE_SURFACE_KHR :: VkObjectType+pattern VK_OBJECT_TYPE_SURFACE_KHR = VkObjectType 1000000000+-- No documentation found for TopLevel "VK_KHR_SURFACE_SPEC_VERSION"+pattern VK_KHR_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_SURFACE_SPEC_VERSION = 25+-- No documentation found for TopLevel "VK_KHR_SURFACE_EXTENSION_NAME"+pattern VK_KHR_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_SURFACE_EXTENSION_NAME = "VK_KHR_surface"+-- No documentation found for TopLevel "VK_COLORSPACE_SRGB_NONLINEAR_KHR"+pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR :: VkColorSpaceKHR+pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR+-- | Dummy data to tag the 'Ptr' with+data VkSurfaceKHR_T+-- | VkSurfaceKHR - Opaque handle to a surface object+--+-- = Description+-- #_description#+--+-- The @VK_KHR_surface@ extension declares the @VkSurfaceKHR@ object, and+-- provides a function for destroying @VkSurfaceKHR@ objects. Separate+-- platform-specific extensions each provide a function for creating a+-- @VkSurfaceKHR@ object for the respective platform. From the+-- application’s perspective this is an opaque handle, just like the+-- handles of other Vulkan objects.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkPhysicalDeviceSurfaceInfo2KHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_android_surface.vkCreateAndroidSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.vkCreateDisplayPlaneSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_MVK_ios_surface.vkCreateIOSSurfaceMVK',+-- 'Graphics.Vulkan.Extensions.VK_MVK_macos_surface.vkCreateMacOSSurfaceMVK',+-- 'Graphics.Vulkan.Extensions.VK_KHR_mir_surface.vkCreateMirSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_NN_vi_surface.vkCreateViSurfaceNN',+-- 'Graphics.Vulkan.Extensions.VK_KHR_wayland_surface.vkCreateWaylandSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_win32_surface.vkCreateWin32SurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xcb_surface.vkCreateXcbSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_xlib_surface.vkCreateXlibSurfaceKHR',+-- 'vkDestroySurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkGetDeviceGroupSurfacePresentModesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkGetPhysicalDevicePresentRectanglesKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.vkGetPhysicalDeviceSurfaceCapabilities2EXT',+-- 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',+-- 'vkGetPhysicalDeviceSurfaceFormatsKHR',+-- 'vkGetPhysicalDeviceSurfacePresentModesKHR',+-- 'vkGetPhysicalDeviceSurfaceSupportKHR'+type VkSurfaceKHR = Ptr VkSurfaceKHR_T+-- | vkDestroySurfaceKHR - Destroy a VkSurfaceKHR object+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance used to create the surface.+--+-- -   @surface@ is the surface to destroy.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- = Description+-- #_description#+--+-- Destroying a @VkSurfaceKHR@ merely severs the connection between Vulkan+-- and the native surface, and does not imply destroying the native+-- surface, closing a window, or similar behavior.+--+-- == Valid Usage+--+-- -   All @VkSwapchainKHR@ objects created for @surface@ /must/ have been+--     destroyed prior to destroying @surface@+--+-- -   If @VkAllocationCallbacks@ were provided when @surface@ was created,+--     a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @surface@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   If @surface@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @surface@ /must/+--     be a valid @VkSurfaceKHR@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   If @surface@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @instance@+--+-- == Host Synchronization+--+-- -   Host access to @surface@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance', 'VkSurfaceKHR'+foreign import ccall "vkDestroySurfaceKHR" vkDestroySurfaceKHR :: ("instance" ::: VkInstance) -> ("surface" ::: VkSurfaceKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkGetPhysicalDeviceSurfaceSupportKHR - Query if presentation is+-- supported+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device.+--+-- -   @queueFamilyIndex@ is the queue family.+--+-- -   @surface@ is the surface.+--+-- -   @pSupported@ is a pointer to a @VkBool32@, which is set to @VK_TRUE@+--     to indicate support, and @VK_FALSE@ otherwise.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+--     returned by @vkGetPhysicalDeviceQueueFamilyProperties@ for the given+--     @physicalDevice@+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- -   @pSupported@ /must/ be a valid pointer to a @VkBool32@ value+--+-- -   Both of @physicalDevice@, and @surface@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@,+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'VkSurfaceKHR'+foreign import ccall "vkGetPhysicalDeviceSurfaceSupportKHR" vkGetPhysicalDeviceSurfaceSupportKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("queueFamilyIndex" ::: Word32) -> ("surface" ::: VkSurfaceKHR) -> ("pSupported" ::: Ptr VkBool32) -> IO VkResult+-- | vkGetPhysicalDeviceSurfaceCapabilitiesKHR - Query surface capabilities+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device that will be associated with+--     the swapchain to be created, as described for+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @surface@ is the surface that will be associated with the swapchain.+--+-- -   @pSurfaceCapabilities@ is a pointer to an instance of the+--     'VkSurfaceCapabilitiesKHR' structure in which the capabilities are+--     returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- -   @pSurfaceCapabilities@ /must/ be a valid pointer to a+--     @VkSurfaceCapabilitiesKHR@ structure+--+-- -   Both of @physicalDevice@, and @surface@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'VkSurfaceCapabilitiesKHR', 'VkSurfaceKHR'+foreign import ccall "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" vkGetPhysicalDeviceSurfaceCapabilitiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilitiesKHR) -> IO VkResult+-- | vkGetPhysicalDeviceSurfaceFormatsKHR - Query color formats supported by+-- surface+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device that will be associated with+--     the swapchain to be created, as described for+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @surface@ is the surface that will be associated with the swapchain.+--+-- -   @pSurfaceFormatCount@ is a pointer to an integer related to the+--     number of format pairs available or queried, as described below.+--+-- -   @pSurfaceFormats@ is either @NULL@ or a pointer to an array of+--     @VkSurfaceFormatKHR@ structures.+--+-- = Description+-- #_description#+--+-- If @pSurfaceFormats@ is @NULL@, then the number of format pairs+-- supported for the given @surface@ is returned in @pSurfaceFormatCount@.+-- The number of format pairs supported will be greater than or equal to 1.+-- Otherwise, @pSurfaceFormatCount@ /must/ point to a variable set by the+-- user to the number of elements in the @pSurfaceFormats@ array, and on+-- return the variable is overwritten with the number of structures+-- actually written to @pSurfaceFormats@. If the value of+-- @pSurfaceFormatCount@ is less than the number of format pairs supported,+-- at most @pSurfaceFormatCount@ structures will be written. If+-- @pSurfaceFormatCount@ is smaller than the number of format pairs+-- supported for the given @surface@, @VK_INCOMPLETE@ will be returned+-- instead of @VK_SUCCESS@ to indicate that not all the available values+-- were returned.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- -   @pSurfaceFormatCount@ /must/ be a valid pointer to a @uint32_t@+--     value+--+-- -   If the value referenced by @pSurfaceFormatCount@ is not @0@, and+--     @pSurfaceFormats@ is not @NULL@, @pSurfaceFormats@ /must/ be a valid+--     pointer to an array of @pSurfaceFormatCount@ @VkSurfaceFormatKHR@+--     structures+--+-- -   Both of @physicalDevice@, and @surface@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'VkSurfaceFormatKHR', 'VkSurfaceKHR'+foreign import ccall "vkGetPhysicalDeviceSurfaceFormatsKHR" vkGetPhysicalDeviceSurfaceFormatsKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr VkSurfaceFormatKHR) -> IO VkResult+-- | vkGetPhysicalDeviceSurfacePresentModesKHR - Query supported presentation+-- modes+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device that will be associated with+--     the swapchain to be created, as described for+--     'Graphics.Vulkan.Extensions.VK_KHR_swapchain.vkCreateSwapchainKHR'.+--+-- -   @surface@ is the surface that will be associated with the swapchain.+--+-- -   @pPresentModeCount@ is a pointer to an integer related to the number+--     of presentation modes available or queried, as described below.+--+-- -   @pPresentModes@ is either @NULL@ or a pointer to an array of+--     'VkPresentModeKHR' values, indicating the supported presentation+--     modes.+--+-- = Description+-- #_description#+--+-- If @pPresentModes@ is @NULL@, then the number of presentation modes+-- supported for the given @surface@ is returned in @pPresentModeCount@.+-- Otherwise, @pPresentModeCount@ /must/ point to a variable set by the+-- user to the number of elements in the @pPresentModes@ array, and on+-- return the variable is overwritten with the number of values actually+-- written to @pPresentModes@. If the value of @pPresentModeCount@ is less+-- than the number of presentation modes supported, at most+-- @pPresentModeCount@ values will be written. If @pPresentModeCount@ is+-- smaller than the number of presentation modes supported for the given+-- @surface@, @VK_INCOMPLETE@ will be returned instead of @VK_SUCCESS@ to+-- indicate that not all the available values were returned.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- -   @pPresentModeCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pPresentModeCount@ is not @0@, and+--     @pPresentModes@ is not @NULL@, @pPresentModes@ /must/ be a valid+--     pointer to an array of @pPresentModeCount@ 'VkPresentModeKHR' values+--+-- -   Both of @physicalDevice@, and @surface@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'VkPresentModeKHR', 'VkSurfaceKHR'+foreign import ccall "vkGetPhysicalDeviceSurfacePresentModesKHR" vkGetPhysicalDeviceSurfacePresentModesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pPresentModeCount" ::: Ptr Word32) -> ("pPresentModes" ::: Ptr VkPresentModeKHR) -> IO VkResult+-- | VkSurfaceCapabilitiesKHR - Structure describing capabilities of a+-- surface+--+-- = Description+-- #_description#+--+-- __Note__+--+-- Formulas such as min(N, @maxImageCount@) are not correct, since+-- @maxImageCount@ /may/ be zero.+--+-- = See Also+-- #_see_also#+--+-- 'VkCompositeAlphaFlagsKHR',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceCapabilities2KHR',+-- 'VkSurfaceTransformFlagBitsKHR', 'VkSurfaceTransformFlagsKHR',+-- 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR'+data VkSurfaceCapabilitiesKHR = VkSurfaceCapabilitiesKHR+  { -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkMinImageCount"+  vkMinImageCount :: Word32+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkMaxImageCount"+  vkMaxImageCount :: Word32+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkCurrentExtent"+  vkCurrentExtent :: VkExtent2D+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkMinImageExtent"+  vkMinImageExtent :: VkExtent2D+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkMaxImageExtent"+  vkMaxImageExtent :: VkExtent2D+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkMaxImageArrayLayers"+  vkMaxImageArrayLayers :: Word32+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkSupportedTransforms"+  vkSupportedTransforms :: VkSurfaceTransformFlagsKHR+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkCurrentTransform"+  vkCurrentTransform :: VkSurfaceTransformFlagBitsKHR+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkSupportedCompositeAlpha"+  vkSupportedCompositeAlpha :: VkCompositeAlphaFlagsKHR+  , -- No documentation found for Nested "VkSurfaceCapabilitiesKHR" "vkSupportedUsageFlags"+  vkSupportedUsageFlags :: VkImageUsageFlags+  }+  deriving (Eq, Show)++instance Storable VkSurfaceCapabilitiesKHR where+  sizeOf ~_ = 52+  alignment ~_ = 4+  peek ptr = VkSurfaceCapabilitiesKHR <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 4)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+                                      <*> peek (ptr `plusPtr` 24)+                                      <*> peek (ptr `plusPtr` 32)+                                      <*> peek (ptr `plusPtr` 36)+                                      <*> peek (ptr `plusPtr` 40)+                                      <*> peek (ptr `plusPtr` 44)+                                      <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkMinImageCount (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 4) (vkMaxImageCount (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 8) (vkCurrentExtent (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 16) (vkMinImageExtent (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 24) (vkMaxImageExtent (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 32) (vkMaxImageArrayLayers (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 36) (vkSupportedTransforms (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 40) (vkCurrentTransform (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 44) (vkSupportedCompositeAlpha (poked :: VkSurfaceCapabilitiesKHR))+                *> poke (ptr `plusPtr` 48) (vkSupportedUsageFlags (poked :: VkSurfaceCapabilitiesKHR))+-- | VkSurfaceFormatKHR - Structure describing a supported swapchain+-- format-color space pair+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkColorSpaceKHR', 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceFormat2KHR',+-- 'vkGetPhysicalDeviceSurfaceFormatsKHR'+data VkSurfaceFormatKHR = VkSurfaceFormatKHR+  { -- No documentation found for Nested "VkSurfaceFormatKHR" "vkFormat"+  vkFormat :: VkFormat+  , -- No documentation found for Nested "VkSurfaceFormatKHR" "vkColorSpace"+  vkColorSpace :: VkColorSpaceKHR+  }+  deriving (Eq, Show)++instance Storable VkSurfaceFormatKHR where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkSurfaceFormatKHR <$> peek (ptr `plusPtr` 0)+                                <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkFormat (poked :: VkSurfaceFormatKHR))+                *> poke (ptr `plusPtr` 4) (vkColorSpace (poked :: VkSurfaceFormatKHR))+-- | VkCompositeAlphaFlagsKHR - Bitmask of VkCompositeAlphaFlagBitsKHR+--+-- = Description+-- #_description#+--+-- @VkCompositeAlphaFlagsKHR@ is a bitmask type for setting a mask of zero+-- or more 'VkCompositeAlphaFlagBitsKHR'.+--+-- = See Also+-- #_see_also#+--+-- 'VkCompositeAlphaFlagBitsKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT',+-- 'VkSurfaceCapabilitiesKHR'+type VkCompositeAlphaFlagsKHR = VkCompositeAlphaFlagBitsKHR+-- | VkSurfaceTransformFlagsKHR - Bitmask of VkSurfaceTransformFlagBitsKHR+--+-- = Description+-- #_description#+--+-- @VkSurfaceTransformFlagsKHR@ is a bitmask type for setting a mask of+-- zero or more 'VkSurfaceTransformFlagBitsKHR'.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT',+-- 'VkSurfaceCapabilitiesKHR', 'VkSurfaceTransformFlagBitsKHR'+type VkSurfaceTransformFlagsKHR = VkSurfaceTransformFlagBitsKHR
+ src/Graphics/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -0,0 +1,1900 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_swapchain+  ( VkSwapchainCreateFlagBitsKHR(..)+  , VkDeviceGroupPresentModeFlagBitsKHR(..)+  , pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR+  , pattern VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR+  , pattern VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR+  , pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR+  , pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR+  , pattern VK_SUBOPTIMAL_KHR+  , pattern VK_ERROR_OUT_OF_DATE_KHR+  , pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR+  , pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR+  , pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR+  , pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR+  , pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR+  , pattern VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR+  , pattern VK_KHR_SWAPCHAIN_SPEC_VERSION+  , pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME+  , VkSwapchainKHR+  , vkCreateSwapchainKHR+  , vkDestroySwapchainKHR+  , vkGetSwapchainImagesKHR+  , vkAcquireNextImageKHR+  , vkQueuePresentKHR+  , vkGetDeviceGroupPresentCapabilitiesKHR+  , vkGetDeviceGroupSurfacePresentModesKHR+  , vkAcquireNextImage2KHR+  , vkGetPhysicalDevicePresentRectanglesKHR+  , VkSwapchainCreateInfoKHR(..)+  , VkPresentInfoKHR(..)+  , VkDeviceGroupPresentCapabilitiesKHR(..)+  , VkImageSwapchainCreateInfoKHR(..)+  , VkBindImageMemorySwapchainInfoKHR(..)+  , VkAcquireNextImageInfoKHR(..)+  , VkDeviceGroupPresentInfoKHR(..)+  , VkDeviceGroupSwapchainCreateInfoKHR(..)+  , VkSwapchainCreateFlagsKHR+  , VkDeviceGroupPresentModeFlagsKHR+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Vector.Storable.Sized+  ( Vector+  )+import Data.Word+  ( Word32+  , Word64+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Buffer+  ( VkSharingMode(..)+  )+import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkFormat(..)+  , VkObjectType(..)+  , VkStructureType(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageUsageFlags+  , VkPhysicalDevice+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.Image+  ( VkImageLayout(..)+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkImage+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkExtent2D(..)+  , VkRect2D(..)+  )+import Graphics.Vulkan.Core10.Queue+  ( VkQueue+  , VkFence+  , VkSemaphore+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation+  ( VK_MAX_DEVICE_GROUP_SIZE+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkPresentModeKHR(..)+  , VkCompositeAlphaFlagBitsKHR(..)+  , VkSurfaceTransformFlagBitsKHR(..)+  , VkColorSpaceKHR(..)+  , VkSurfaceKHR+  )+++-- ** VkSwapchainCreateFlagBitsKHR++-- | VkSwapchainCreateFlagBitsKHR - Bitmask controlling swapchain creation+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkSwapchainCreateFlagsKHR'+newtype VkSwapchainCreateFlagBitsKHR = VkSwapchainCreateFlagBitsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkSwapchainCreateFlagBitsKHR where+  -- The following values are from extensions, the patterns themselves are exported from the extension modules+  showsPrec _ (VkSwapchainCreateFlagBitsKHR 0x00000001) = showString "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"+  showsPrec _ (VkSwapchainCreateFlagBitsKHR 0x00000002) = showString "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"+  showsPrec p (VkSwapchainCreateFlagBitsKHR x) = showParen (p >= 11) (showString "VkSwapchainCreateFlagBitsKHR " . showsPrec 11 x)++instance Read VkSwapchainCreateFlagBitsKHR where+  readPrec = parens ( choose [ -- The following values are from extensions, the patterns themselves are exported from the extension modules+                               ("VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR", pure (VkSwapchainCreateFlagBitsKHR 0x00000001))+                             , ("VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR",                   pure (VkSwapchainCreateFlagBitsKHR 0x00000002))+                             , ("VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR", pure (VkSwapchainCreateFlagBitsKHR 0x00000001))+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkSwapchainCreateFlagBitsKHR")+                        v <- step readPrec+                        pure (VkSwapchainCreateFlagBitsKHR v)+                        )+                    )+++-- ** VkDeviceGroupPresentModeFlagBitsKHR++-- | VkDeviceGroupPresentModeFlagBitsKHR - Bitmask specifying supported+-- device group present modes+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceGroupPresentInfoKHR', 'VkDeviceGroupPresentModeFlagsKHR'+newtype VkDeviceGroupPresentModeFlagBitsKHR = VkDeviceGroupPresentModeFlagBitsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkDeviceGroupPresentModeFlagBitsKHR where+  showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = showString "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"+  showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = showString "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"+  showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = showString "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"+  showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = showString "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"+  showsPrec p (VkDeviceGroupPresentModeFlagBitsKHR x) = showParen (p >= 11) (showString "VkDeviceGroupPresentModeFlagBitsKHR " . showsPrec 11 x)++instance Read VkDeviceGroupPresentModeFlagBitsKHR where+  readPrec = parens ( choose [ ("VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR",              pure VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR)+                             , ("VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR",             pure VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR)+                             , ("VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR",                pure VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR)+                             , ("VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR", pure VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkDeviceGroupPresentModeFlagBitsKHR")+                        v <- step readPrec+                        pure (VkDeviceGroupPresentModeFlagBitsKHR v)+                        )+                    )++-- | @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR@ specifies that any physical+-- device with a presentation engine /can/ present its own swapchain+-- images.+pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR :: VkDeviceGroupPresentModeFlagBitsKHR+pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = VkDeviceGroupPresentModeFlagBitsKHR 0x00000001++-- | @VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR@ specifies that any+-- physical device with a presentation engine /can/ present swapchain+-- images from any physical device in its @presentMask@.+pattern VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR :: VkDeviceGroupPresentModeFlagBitsKHR+pattern VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = VkDeviceGroupPresentModeFlagBitsKHR 0x00000002++-- | @VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR@ specifies that any physical+-- device with a presentation engine /can/ present the sum of swapchain+-- images from any physical devices in its @presentMask@.+pattern VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR :: VkDeviceGroupPresentModeFlagBitsKHR+pattern VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = VkDeviceGroupPresentModeFlagBitsKHR 0x00000004++-- | @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR@ specifies that+-- multiple physical devices with a presentation engine /can/ each present+-- their own swapchain images.+pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR :: VkDeviceGroupPresentModeFlagBitsKHR+pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = VkDeviceGroupPresentModeFlagBitsKHR 0x00000008+-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR"+pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR :: VkImageLayout+pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = VkImageLayout 1000001002+-- No documentation found for Nested "VkResult" "VK_SUBOPTIMAL_KHR"+pattern VK_SUBOPTIMAL_KHR :: VkResult+pattern VK_SUBOPTIMAL_KHR = VkResult 1000001003+-- No documentation found for Nested "VkResult" "VK_ERROR_OUT_OF_DATE_KHR"+pattern VK_ERROR_OUT_OF_DATE_KHR :: VkResult+pattern VK_ERROR_OUT_OF_DATE_KHR = VkResult (-1000001004)+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = VkStructureType 1000001000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"+pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = VkStructureType 1000001001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = VkStructureType 1000060007+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = VkStructureType 1000060008+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = VkStructureType 1000060009+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = VkStructureType 1000060010+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = VkStructureType 1000060011+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = VkStructureType 1000060012+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SWAPCHAIN_KHR"+pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR :: VkObjectType+pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR = VkObjectType 1000001000+-- No documentation found for Nested "VkSwapchainCreateFlagBitsKHR" "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"+pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR :: VkSwapchainCreateFlagBitsKHR+pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VkSwapchainCreateFlagBitsKHR 0x00000001+-- No documentation found for Nested "VkSwapchainCreateFlagBitsKHR" "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"+pattern VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR :: VkSwapchainCreateFlagBitsKHR+pattern VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = VkSwapchainCreateFlagBitsKHR 0x00000002+-- No documentation found for TopLevel "VK_KHR_SWAPCHAIN_SPEC_VERSION"+pattern VK_KHR_SWAPCHAIN_SPEC_VERSION :: Integral a => a+pattern VK_KHR_SWAPCHAIN_SPEC_VERSION = 70+-- No documentation found for TopLevel "VK_KHR_SWAPCHAIN_EXTENSION_NAME"+pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain"+-- | Dummy data to tag the 'Ptr' with+data VkSwapchainKHR_T+-- | VkSwapchainKHR - Opaque handle to a swapchain object+--+-- = Description+-- #_description#+--+-- A swapchain is an abstraction for an array of presentable images that+-- are associated with a surface. The presentable images are represented by+-- @VkImage@ objects created by the platform. One image (which /can/ be an+-- array image for multiview\/stereoscopic-3D surfaces) is displayed at a+-- time, but multiple images /can/ be queued for presentation. An+-- application renders to the image, and then queues the image for+-- presentation to the surface.+--+-- A native window /cannot/ be associated with more than one swapchain at a+-- time. Further, swapchains /cannot/ be created for native windows that+-- have a non-Vulkan graphics API surface associated with them.+--+-- __Note__+--+-- The presentation engine is an abstraction for the platform’s compositor+-- or display engine.+--+-- The presentation engine /may/ be synchronous or asynchronous with+-- respect to the application and\/or logical device.+--+-- Some implementations /may/ use the device’s graphics queue or dedicated+-- presentation hardware to perform presentation.+--+-- The presentable images of a swapchain are owned by the presentation+-- engine. An application /can/ acquire use of a presentable image from the+-- presentation engine. Use of a presentable image /must/ occur only after+-- the image is returned by @vkAcquireNextImageKHR@, and before it is+-- presented by @vkQueuePresentKHR@. This includes transitioning the image+-- layout and rendering commands.+--+-- An application /can/ acquire use of a presentable image with+-- @vkAcquireNextImageKHR@. After acquiring a presentable image and before+-- modifying it, the application /must/ use a synchronization primitive to+-- ensure that the presentation engine has finished reading from the image.+-- The application /can/ then transition the image’s layout, queue+-- rendering commands to it, etc. Finally, the application presents the+-- image with @vkQueuePresentKHR@, which releases the acquisition of the+-- image.+--+-- The presentation engine controls the order in which presentable images+-- are acquired for use by the application.+--+-- __Note__+--+-- This allows the platform to handle situations which require out-of-order+-- return of images after presentation. At the same time, it allows the+-- application to generate command buffers referencing all of the images in+-- the swapchain at initialization time, rather than in its main loop.+--+-- = See Also+-- #_see_also#+--+-- 'VkAcquireNextImageInfoKHR', 'VkBindImageMemorySwapchainInfoKHR',+-- 'VkImageSwapchainCreateInfoKHR', 'VkPresentInfoKHR',+-- 'VkSwapchainCreateInfoKHR', 'vkAcquireNextImageKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.vkCreateSharedSwapchainsKHR',+-- 'vkCreateSwapchainKHR', 'vkDestroySwapchainKHR',+-- 'Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.vkGetPastPresentationTimingGOOGLE',+-- 'Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.vkGetRefreshCycleDurationGOOGLE',+-- 'Graphics.Vulkan.Extensions.VK_EXT_display_control.vkGetSwapchainCounterEXT',+-- 'vkGetSwapchainImagesKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.vkGetSwapchainStatusKHR',+-- 'Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.vkSetHdrMetadataEXT'+type VkSwapchainKHR = Ptr VkSwapchainKHR_T+-- | vkCreateSwapchainKHR - Create a swapchain+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device to create the swapchain for.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkSwapchainCreateInfoKHR' structure specifying the parameters of+--     the created swapchain.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     swapchain object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSwapchain@ is a pointer to a @VkSwapchainKHR@ handle in which the+--     created swapchain object will be returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkSwapchainCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSwapchain@ /must/ be a valid pointer to a @VkSwapchainKHR@ handle+--+-- == Host Synchronization+--+-- -   Host access to @pCreateInfo.surface@ /must/ be externally+--     synchronized+--+-- -   Host access to @pCreateInfo.oldSwapchain@ /must/ be externally+--     synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+--     -   @VK_ERROR_NATIVE_WINDOW_IN_USE_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkSwapchainCreateInfoKHR', 'VkSwapchainKHR'+foreign import ccall "vkCreateSwapchainKHR" vkCreateSwapchainKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSwapchainCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSwapchain" ::: Ptr VkSwapchainKHR) -> IO VkResult+-- | vkDestroySwapchainKHR - Destroy a swapchain object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the @VkDevice@ associated with @swapchain@.+--+-- -   @swapchain@ is the swapchain to destroy.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     swapchain object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- = Description+-- #_description#+--+-- The application /must/ not destroy a swapchain until after completion of+-- all outstanding operations on images that were acquired from the+-- swapchain. @swapchain@ and all associated @VkImage@ handles are+-- destroyed, and /must/ not be acquired or used any more by the+-- application. The memory of each @VkImage@ will only be freed after that+-- image is no longer used by the presentation engine. For example, if one+-- image of the swapchain is being displayed in a window, the memory for+-- that image /may/ not be freed until the window is destroyed, or another+-- swapchain is created for the window. Destroying the swapchain does not+-- invalidate the parent @VkSurfaceKHR@, and a new swapchain /can/ be+-- created with it.+--+-- == Valid Usage+--+-- -   All uses of presentable images acquired from @swapchain@ /must/ have+--     completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @swapchain@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @swapchain@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   If @swapchain@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @swapchain@+--     /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   Both of @device@, and @swapchain@ that are valid handles /must/ have+--     been created, allocated, or retrieved from the same @VkInstance@+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice', 'VkSwapchainKHR'+foreign import ccall "vkDestroySwapchainKHR" vkDestroySwapchainKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkGetSwapchainImagesKHR - Obtain the array of presentable images+-- associated with a swapchain+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device associated with @swapchain@.+--+-- -   @swapchain@ is the swapchain to query.+--+-- -   @pSwapchainImageCount@ is a pointer to an integer related to the+--     number of presentable images available or queried, as described+--     below.+--+-- -   @pSwapchainImages@ is either @NULL@ or a pointer to an array of+--     @VkImage@ handles.+--+-- = Description+-- #_description#+--+-- If @pSwapchainImages@ is @NULL@, then the number of presentable images+-- for @swapchain@ is returned in @pSwapchainImageCount@. Otherwise,+-- @pSwapchainImageCount@ /must/ point to a variable set by the user to the+-- number of elements in the @pSwapchainImages@ array, and on return the+-- variable is overwritten with the number of structures actually written+-- to @pSwapchainImages@. If the value of @pSwapchainImageCount@ is less+-- than the number of presentable images for @swapchain@, at most+-- @pSwapchainImageCount@ structures will be written. If+-- @pSwapchainImageCount@ is smaller than the number of presentable images+-- for @swapchain@, @VK_INCOMPLETE@ will be returned instead of+-- @VK_SUCCESS@ to indicate that not all the available values were+-- returned.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @swapchain@ /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   @pSwapchainImageCount@ /must/ be a valid pointer to a @uint32_t@+--     value+--+-- -   If the value referenced by @pSwapchainImageCount@ is not @0@, and+--     @pSwapchainImages@ is not @NULL@, @pSwapchainImages@ /must/ be a+--     valid pointer to an array of @pSwapchainImageCount@ @VkImage@+--     handles+--+-- -   Both of @device@, and @swapchain@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage', 'VkSwapchainKHR'+foreign import ccall "vkGetSwapchainImagesKHR" vkGetSwapchainImagesKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pSwapchainImageCount" ::: Ptr Word32) -> ("pSwapchainImages" ::: Ptr VkImage) -> IO VkResult+-- | vkAcquireNextImageKHR - Retrieve the index of the next available+-- presentable image+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device associated with @swapchain@.+--+-- -   @swapchain@ is the non-retired swapchain from which an image is+--     being acquired.+--+-- -   @timeout@ specifies how long the function waits, in nanoseconds, if+--     no image is available.+--+-- -   @semaphore@ is 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE' or+--     a semaphore to signal.+--+-- -   @fence@ is 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE' or a+--     fence to signal.+--+-- -   @pImageIndex@ is a pointer to a @uint32_t@ that is set to the index+--     of the next image to use (i.e. an index into the array of images+--     returned by @vkGetSwapchainImagesKHR@).+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @swapchain@ /must/ not be in the retired state+--+-- -   If @semaphore@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE' it /must/ be+--     unsignaled+--+-- -   If @semaphore@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE' it /must/ not have+--     any uncompleted signal or wait operations pending+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--     it /must/ be unsignaled and /must/ not be associated with any other+--     queue command that has not yet completed execution on that queue+--+-- -   @semaphore@ and @fence@ /must/ not both be equal to+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   If the number of currently acquired images is greater than the+--     difference between the number of images in @swapchain@ and the value+--     of+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR'::@minImageCount@+--     as returned by a call to+--     'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.vkGetPhysicalDeviceSurfaceCapabilities2KHR'+--     with the @surface@ used to create @swapchain@, @timeout@ /must/ not+--     be @UINT64_MAX@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @swapchain@ /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   If @semaphore@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @semaphore@+--     /must/ be a valid @VkSemaphore@ handle+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ be a valid @VkFence@ handle+--+-- -   @pImageIndex@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If @semaphore@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- -   If @fence@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- -   Both of @device@, and @swapchain@ that are valid handles /must/ have+--     been created, allocated, or retrieved from the same @VkInstance@+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- -   Host access to @semaphore@ /must/ be externally synchronized+--+-- -   Host access to @fence@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_TIMEOUT@+--+--     -   @VK_NOT_READY@+--+--     -   @VK_SUBOPTIMAL_KHR@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_OUT_OF_DATE_KHR@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Queue.VkFence',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore', 'VkSwapchainKHR'+foreign import ccall "vkAcquireNextImageKHR" vkAcquireNextImageKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("timeout" ::: Word64) -> ("semaphore" ::: VkSemaphore) -> ("fence" ::: VkFence) -> ("pImageIndex" ::: Ptr Word32) -> IO VkResult+-- | vkQueuePresentKHR - Queue an image for presentation+--+-- = Parameters+-- #_parameters#+--+-- -   @queue@ is a queue that is capable of presentation to the target+--     surface’s platform on the same device as the image’s swapchain.+--+-- -   @pPresentInfo@ is a pointer to an instance of the 'VkPresentInfoKHR'+--     structure specifying the parameters of the presentation.+--+-- = Description+-- #_description#+--+-- __Note__+--+-- There is no requirement for an application to present images in the same+-- order that they were acquired - applications can arbitrarily present any+-- image that is currently acquired.+--+-- == Valid Usage+--+-- -   Each element of @pSwapchains@ member of @pPresentInfo@ /must/ be a+--     swapchain that is created for a surface for which presentation is+--     supported from @queue@ as determined using a call to+--     @vkGetPhysicalDeviceSurfaceSupportKHR@+--+-- -   When a semaphore unsignal operation defined by the elements of the+--     @pWaitSemaphores@ member of @pPresentInfo@ executes on @queue@, no+--     other queue /must/ be waiting on the same semaphore.+--+-- -   All elements of the @pWaitSemaphores@ member of @pPresentInfo@+--     /must/ be semaphores that are signaled, or have+--     <{html_spec_relative}#synchronization-semaphores-signaling semaphore signal operations>+--     previously submitted for execution.+--+-- Any writes to memory backing the images referenced by the+-- @pImageIndices@ and @pSwapchains@ members of @pPresentInfo@, that are+-- available before 'vkQueuePresentKHR' is executed, are automatically made+-- visible to the read access performed by the presentation engine. This+-- automatic visibility operation for an image happens-after the semaphore+-- signal operation, and happens-before the presentation engine accesses+-- the image.+--+-- Queueing an image for presentation defines a set of /queue operations/,+-- including waiting on the semaphores and submitting a presentation+-- request to the presentation engine. However, the scope of this set of+-- queue operations does not include the actual processing of the image by+-- the presentation engine.+--+-- If @vkQueuePresentKHR@ fails to enqueue the corresponding set of queue+-- operations, it /may/ return @VK_ERROR_OUT_OF_HOST_MEMORY@ or+-- @VK_ERROR_OUT_OF_DEVICE_MEMORY@. If it does, the implementation /must/+-- ensure that the state and contents of any resources or synchronization+-- primitives referenced is unaffected by the call or its failure.+--+-- If @vkQueuePresentKHR@ fails in such a way that the implementation is+-- unable to make that guarantee, the implementation /must/ return+-- @VK_ERROR_DEVICE_LOST@.+--+-- However, if the presentation request is rejected by the presentation+-- engine with an error @VK_ERROR_OUT_OF_DATE_KHR@ or+-- @VK_ERROR_SURFACE_LOST_KHR@, the set of queue operations are still+-- considered to be enqueued and thus any semaphore to be waited on gets+-- unsignaled when the corresponding queue operation is complete.+--+-- == Valid Usage (Implicit)+--+-- -   @queue@ /must/ be a valid @VkQueue@ handle+--+-- -   @pPresentInfo@ /must/ be a valid pointer to a valid+--     @VkPresentInfoKHR@ structure+--+-- == Host Synchronization+--+-- -   Host access to @queue@ /must/ be externally synchronized+--+-- -   Host access to @pPresentInfo.pWaitSemaphores@[] /must/ be externally+--     synchronized+--+-- -   Host access to @pPresentInfo.pSwapchains@[] /must/ be externally+--     synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | -               | -               | Any             | -               |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_SUBOPTIMAL_KHR@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_OUT_OF_DATE_KHR@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'VkPresentInfoKHR', 'Graphics.Vulkan.Core10.Queue.VkQueue'+foreign import ccall "vkQueuePresentKHR" vkQueuePresentKHR :: ("queue" ::: VkQueue) -> ("pPresentInfo" ::: Ptr VkPresentInfoKHR) -> IO VkResult+-- | vkGetDeviceGroupPresentCapabilitiesKHR - Query present capabilities from+-- other physical devices+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device.+--+-- -   @pDeviceGroupPresentCapabilities@ is a pointer to a structure of+--     type 'VkDeviceGroupPresentCapabilitiesKHR' that is filled with the+--     logical device’s capabilities.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pDeviceGroupPresentCapabilities@ /must/ be a valid pointer to a+--     @VkDeviceGroupPresentCapabilitiesKHR@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDeviceGroupPresentCapabilitiesKHR'+foreign import ccall "vkGetDeviceGroupPresentCapabilitiesKHR" vkGetDeviceGroupPresentCapabilitiesKHR :: ("device" ::: VkDevice) -> ("pDeviceGroupPresentCapabilities" ::: Ptr VkDeviceGroupPresentCapabilitiesKHR) -> IO VkResult+-- | vkGetDeviceGroupSurfacePresentModesKHR - Query present capabilities for+-- a surface+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device.+--+-- -   @surface@ is the surface.+--+-- -   @pModes@ is a pointer to a value of type+--     @VkDeviceGroupPresentModeFlagsKHR@ that is filled with the supported+--     device group present modes for the surface.+--+-- = Description+-- #_description#+--+-- The modes returned by this command are not invariant, and /may/ change+-- in response to the surface being moved, resized, or occluded. These+-- modes /must/ be a subset of the modes returned by+-- 'vkGetDeviceGroupPresentCapabilitiesKHR'.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- -   @pModes@ /must/ be a valid pointer to a+--     'VkDeviceGroupPresentModeFlagsKHR' value+--+-- -   Both of @device@, and @surface@ /must/ have been created, allocated,+--     or retrieved from the same @VkInstance@+--+-- == Host Synchronization+--+-- -   Host access to @surface@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkDeviceGroupPresentModeFlagsKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR'+foreign import ccall "vkGetDeviceGroupSurfacePresentModesKHR" vkGetDeviceGroupSurfacePresentModesKHR :: ("device" ::: VkDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pModes" ::: Ptr VkDeviceGroupPresentModeFlagsKHR) -> IO VkResult+-- | vkAcquireNextImage2KHR - Retrieve the index of the next available+-- presentable image+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the device associated with @swapchain@.+--+-- -   @pAcquireInfo@ is a pointer to a structure of type+--     'VkAcquireNextImageInfoKHR' containing parameters of the acquire.+--+-- -   @pImageIndex@ is a pointer to a @uint32_t@ that is set to the index+--     of the next image to use.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the number of currently acquired images is greater than the+--     difference between the number of images in the @swapchain@ member of+--     @pAcquireInfo@ and the value of+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR'::@minImageCount@+--     as returned by a call to+--     'Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.vkGetPhysicalDeviceSurfaceCapabilities2KHR'+--     with the @surface@ used to create @swapchain@, the @timeout@ member+--     of @pAcquireInfo@ /must/ not be @UINT64_MAX@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pAcquireInfo@ /must/ be a valid pointer to a valid+--     @VkAcquireNextImageInfoKHR@ structure+--+-- -   @pImageIndex@ /must/ be a valid pointer to a @uint32_t@ value+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_TIMEOUT@+--+--     -   @VK_NOT_READY@+--+--     -   @VK_SUBOPTIMAL_KHR@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_DEVICE_LOST@+--+--     -   @VK_ERROR_OUT_OF_DATE_KHR@+--+--     -   @VK_ERROR_SURFACE_LOST_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'VkAcquireNextImageInfoKHR',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice'+foreign import ccall "vkAcquireNextImage2KHR" vkAcquireNextImage2KHR :: ("device" ::: VkDevice) -> ("pAcquireInfo" ::: Ptr VkAcquireNextImageInfoKHR) -> ("pImageIndex" ::: Ptr Word32) -> IO VkResult+-- | vkGetPhysicalDevicePresentRectanglesKHR - Query present rectangles for a+-- surface on a physical device+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device.+--+-- -   @surface@ is the surface.+--+-- -   @pRectCount@ is a pointer to an integer related to the number of+--     rectangles available or queried, as described below.+--+-- -   @pRects@ is either @NULL@ or a pointer to an array of @VkRect2D@+--     structures.+--+-- = Description+-- #_description#+--+-- If @pRects@ is @NULL@, then the number of rectangles used when+-- presenting the given @surface@ is returned in @pRectCount@. Otherwise,+-- @pRectCount@ /must/ point to a variable set by the user to the number of+-- elements in the @pRects@ array, and on return the variable is+-- overwritten with the number of structures actually written to @pRects@.+-- If the value of @pRectCount@ is less than the number of rectangles, at+-- most @pRectCount@ structures will be written. If @pRectCount@ is smaller+-- than the number of rectangles used for the given @surface@,+-- @VK_INCOMPLETE@ will be returned instead of @VK_SUCCESS@ to indicate+-- that not all the available values were returned.+--+-- The values returned by this command are not invariant, and /may/ change+-- in response to the surface being moved, resized, or occluded.+--+-- The rectangles returned by this command /must/ not overlap.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- -   @pRectCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   If the value referenced by @pRectCount@ is not @0@, and @pRects@ is+--     not @NULL@, @pRects@ /must/ be a valid pointer to an array of+--     @pRectCount@ @VkRect2D@ structures+--+-- -   Both of @physicalDevice@, and @surface@ /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- == Host Synchronization+--+-- -   Host access to @surface@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+--     -   @VK_INCOMPLETE@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice',+-- 'Graphics.Vulkan.Core10.Pipeline.VkRect2D',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR'+foreign import ccall "vkGetPhysicalDevicePresentRectanglesKHR" vkGetPhysicalDevicePresentRectanglesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pRectCount" ::: Ptr Word32) -> ("pRects" ::: Ptr VkRect2D) -> IO VkResult+-- | VkSwapchainCreateInfoKHR - Structure specifying parameters of a newly+-- created swapchain object+--+-- = Description+-- #_description#+--+-- __Note__+--+-- On some platforms, it is normal that @maxImageExtent@ /may/ become @(0,+-- 0)@, for example when the window is minimized. In such a case, it is not+-- possible to create a swapchain due to the Valid Usage requirements.+--+-- -   @imageArrayLayers@ is the number of views in a multiview\/stereo+--     surface. For non-stereoscopic-3D applications, this value is 1.+--+-- -   @imageUsage@ is a bitmask of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits'+--     describing the intended usage of the (acquired) swapchain images.+--+-- -   @imageSharingMode@ is the sharing mode used for the image(s) of the+--     swapchain.+--+-- -   @queueFamilyIndexCount@ is the number of queue families having+--     access to the image(s) of the swapchain when @imageSharingMode@ is+--     @VK_SHARING_MODE_CONCURRENT@.+--+-- -   @pQueueFamilyIndices@ is an array of queue family indices having+--     access to the images(s) of the swapchain when @imageSharingMode@ is+--     @VK_SHARING_MODE_CONCURRENT@.+--+-- -   @preTransform@ is a+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR'+--     value describing the transform, relative to the presentation+--     engine’s natural orientation, applied to the image content prior to+--     presentation. If it does not match the @currentTransform@ value+--     returned by @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@, the+--     presentation engine will transform the image content as part of the+--     presentation operation.+--+-- -   @compositeAlpha@ is a+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR'+--     value indicating the alpha compositing mode to use when this surface+--     is composited together with other surfaces on certain window+--     systems.+--+-- -   @presentMode@ is the presentation mode the swapchain will use. A+--     swapchain’s present mode determines how incoming present requests+--     will be processed and queued internally.+--+-- -   @clipped@ specifies whether the Vulkan implementation is allowed to+--     discard rendering operations that affect regions of the surface that+--     are not visible.+--+--     -   If set to @VK_TRUE@, the presentable images associated with the+--         swapchain /may/ not own all of their pixels. Pixels in the+--         presentable images that correspond to regions of the target+--         surface obscured by another window on the desktop, or subject to+--         some other clipping mechanism will have undefined content when+--         read back. Pixel shaders /may/ not execute for these pixels, and+--         thus any side effects they would have had will not occur.+--         @VK_TRUE@ value does not guarantee any clipping will occur, but+--         allows more optimal presentation methods to be used on some+--         platforms.+--+--     -   If set to @VK_FALSE@, presentable images associated with the+--         swapchain will own all of the pixels they contain.+--+-- __Note__+--+-- Applications /should/ set this value to @VK_TRUE@ if they do not expect+-- to read back the content of presentable images before presenting them or+-- after reacquiring them, and if their pixel shaders do not have any side+-- effects that require them to run for all pixels in the presentable+-- image.+--+-- -   @oldSwapchain@ is 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     or the existing non-retired swapchain currently associated with+--     @surface@. Providing a valid @oldSwapchain@ /may/ aid in the+--     resource reuse, and also allows the application to still present any+--     images that are already acquired from it.+--+-- Upon calling @vkCreateSwapchainKHR@ with an @oldSwapchain@ that is not+-- 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @oldSwapchain@ is+-- retired — even if creation of the new swapchain fails. The new swapchain+-- is created in the non-retired state whether or not @oldSwapchain@ is+-- 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'.+--+-- Upon calling @vkCreateSwapchainKHR@ with an @oldSwapchain@ that is not+-- 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', any images from+-- @oldSwapchain@ that are not acquired by the application /may/ be freed+-- by the implementation, which /may/ occur even if creation of the new+-- swapchain fails. The application /can/ destroy @oldSwapchain@ to free+-- all memory associated with @oldSwapchain@.+--+-- __Note__+--+-- Multiple retired swapchains /can/ be associated with the same+-- @VkSurfaceKHR@ through multiple uses of @oldSwapchain@ that outnumber+-- calls to 'vkDestroySwapchainKHR'.+--+-- After @oldSwapchain@ is retired, the application /can/ pass to+-- 'vkQueuePresentKHR' any images it had already acquired from+-- @oldSwapchain@. E.g., an application may present an image from the old+-- swapchain before an image from the new swapchain is ready to be+-- presented. As usual, 'vkQueuePresentKHR' /may/ fail if @oldSwapchain@+-- has entered a state that causes @VK_ERROR_OUT_OF_DATE_KHR@ to be+-- returned.+--+-- == Valid Usage+--+-- -   @surface@ /must/ be a surface that is supported by the device as+--     determined using @vkGetPhysicalDeviceSurfaceSupportKHR@+--+-- -   @minImageCount@ /must/ be greater than or equal to the value+--     returned in the @minImageCount@ member of the+--     @VkSurfaceCapabilitiesKHR@ structure returned by+--     @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@ for the surface+--+-- -   @minImageCount@ /must/ be less than or equal to the value returned+--     in the @maxImageCount@ member of the @VkSurfaceCapabilitiesKHR@+--     structure returned by @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@+--     for the surface if the returned @maxImageCount@ is not zero+--+-- -   @imageFormat@ and @imageColorSpace@ /must/ match the @format@ and+--     @colorSpace@ members, respectively, of one of the+--     @VkSurfaceFormatKHR@ structures returned by+--     @vkGetPhysicalDeviceSurfaceFormatsKHR@ for the surface+--+-- -   @imageExtent@ /must/ be between @minImageExtent@ and+--     @maxImageExtent@, inclusive, where @minImageExtent@ and+--     @maxImageExtent@ are members of the @VkSurfaceCapabilitiesKHR@+--     structure returned by @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@+--     for the surface+--+-- -   @imageExtent@ members @width@ and @height@ /must/ both be non-zero+--+-- -   @imageArrayLayers@ /must/ be greater than @0@ and less than or equal+--     to the @maxImageArrayLayers@ member of the+--     @VkSurfaceCapabilitiesKHR@ structure returned by+--     @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@ for the surface+--+-- -   @imageUsage@ /must/ be a subset of the supported usage flags present+--     in the @supportedUsageFlags@ member of the+--     @VkSurfaceCapabilitiesKHR@ structure returned by+--     @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@ for the surface+--+-- -   If @imageSharingMode@ is @VK_SHARING_MODE_CONCURRENT@,+--     @pQueueFamilyIndices@ /must/ be a valid pointer to an array of+--     @queueFamilyIndexCount@ @uint32_t@ values+--+-- -   If @imageSharingMode@ is @VK_SHARING_MODE_CONCURRENT@,+--     @queueFamilyIndexCount@ /must/ be greater than @1@+--+-- -   If @imageSharingMode@ is @VK_SHARING_MODE_CONCURRENT@, each element+--     of @pQueueFamilyIndices@ /must/ be unique and /must/ be less than+--     @pQueueFamilyPropertyCount@ returned by+--     'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceQueueFamilyProperties'+--     for the @physicalDevice@ that was used to create @device@+--+-- -   @preTransform@ /must/ be one of the bits present in the+--     @supportedTransforms@ member of the @VkSurfaceCapabilitiesKHR@+--     structure returned by @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@+--     for the surface+--+-- -   @compositeAlpha@ /must/ be one of the bits present in the+--     @supportedCompositeAlpha@ member of the @VkSurfaceCapabilitiesKHR@+--     structure returned by @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@+--     for the surface+--+-- -   @presentMode@ /must/ be one of the+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR' values+--     returned by @vkGetPhysicalDeviceSurfacePresentModesKHR@ for the+--     surface+--+-- -   @oldSwapchain@ /must/ not be in the retired state+--+-- -   @imageFormat@, @imageUsage@, @imageExtent@, and @imageArrayLayers@+--     /must/ be supported for @VK_IMAGE_TYPE_2D@ @VK_IMAGE_TILING_OPTIMAL@+--     images as reported by+--     'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceImageFormatProperties'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of 'VkDeviceGroupSwapchainCreateInfoKHR' or+--     'Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   @flags@ /must/ be a valid combination of+--     'VkSwapchainCreateFlagBitsKHR' values+--+-- -   @surface@ /must/ be a valid @VkSurfaceKHR@ handle+--+-- -   @imageFormat@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Core.VkFormat' value+--+-- -   @imageColorSpace@ /must/ be a valid+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR' value+--+-- -   @imageUsage@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits'+--     values+--+-- -   @imageUsage@ /must/ not be @0@+--+-- -   @imageSharingMode@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Buffer.VkSharingMode' value+--+-- -   @preTransform@ /must/ be a valid+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR'+--     value+--+-- -   @compositeAlpha@ /must/ be a valid+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR'+--     value+--+-- -   @presentMode@ /must/ be a valid+--     'Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR' value+--+-- -   If @oldSwapchain@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @oldSwapchain@+--     /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   If @oldSwapchain@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @surface@+--+-- -   Both of @oldSwapchain@, and @surface@ that are valid handles /must/+--     have been created, allocated, or retrieved from the same+--     @VkInstance@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR',+-- 'Graphics.Vulkan.Core10.Pipeline.VkExtent2D',+-- 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR',+-- 'Graphics.Vulkan.Core10.Buffer.VkSharingMode',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR',+-- 'VkSwapchainCreateFlagsKHR', 'VkSwapchainKHR',+-- 'Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.vkCreateSharedSwapchainsKHR',+-- 'vkCreateSwapchainKHR'+data VkSwapchainCreateInfoKHR = VkSwapchainCreateInfoKHR+  { -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkFlags"+  vkFlags :: VkSwapchainCreateFlagsKHR+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkSurface"+  vkSurface :: VkSurfaceKHR+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkMinImageCount"+  vkMinImageCount :: Word32+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkImageFormat"+  vkImageFormat :: VkFormat+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkImageColorSpace"+  vkImageColorSpace :: VkColorSpaceKHR+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkImageExtent"+  vkImageExtent :: VkExtent2D+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkImageArrayLayers"+  vkImageArrayLayers :: Word32+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkImageUsage"+  vkImageUsage :: VkImageUsageFlags+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkImageSharingMode"+  vkImageSharingMode :: VkSharingMode+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkQueueFamilyIndexCount"+  vkQueueFamilyIndexCount :: Word32+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkPQueueFamilyIndices"+  vkPQueueFamilyIndices :: Ptr Word32+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkPreTransform"+  vkPreTransform :: VkSurfaceTransformFlagBitsKHR+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkCompositeAlpha"+  vkCompositeAlpha :: VkCompositeAlphaFlagBitsKHR+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkPresentMode"+  vkPresentMode :: VkPresentModeKHR+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkClipped"+  vkClipped :: VkBool32+  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "vkOldSwapchain"+  vkOldSwapchain :: VkSwapchainKHR+  }+  deriving (Eq, Show)++instance Storable VkSwapchainCreateInfoKHR where+  sizeOf ~_ = 104+  alignment ~_ = 8+  peek ptr = VkSwapchainCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                      <*> peek (ptr `plusPtr` 8)+                                      <*> peek (ptr `plusPtr` 16)+                                      <*> peek (ptr `plusPtr` 24)+                                      <*> peek (ptr `plusPtr` 32)+                                      <*> peek (ptr `plusPtr` 36)+                                      <*> peek (ptr `plusPtr` 40)+                                      <*> peek (ptr `plusPtr` 44)+                                      <*> peek (ptr `plusPtr` 52)+                                      <*> peek (ptr `plusPtr` 56)+                                      <*> peek (ptr `plusPtr` 60)+                                      <*> peek (ptr `plusPtr` 64)+                                      <*> peek (ptr `plusPtr` 72)+                                      <*> peek (ptr `plusPtr` 80)+                                      <*> peek (ptr `plusPtr` 84)+                                      <*> peek (ptr `plusPtr` 88)+                                      <*> peek (ptr `plusPtr` 92)+                                      <*> peek (ptr `plusPtr` 96)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkSurface (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkMinImageCount (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 36) (vkImageFormat (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 40) (vkImageColorSpace (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 44) (vkImageExtent (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 52) (vkImageArrayLayers (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 56) (vkImageUsage (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 60) (vkImageSharingMode (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 64) (vkQueueFamilyIndexCount (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 72) (vkPQueueFamilyIndices (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 80) (vkPreTransform (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 84) (vkCompositeAlpha (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 88) (vkPresentMode (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 92) (vkClipped (poked :: VkSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 96) (vkOldSwapchain (poked :: VkSwapchainCreateInfoKHR))+-- | VkPresentInfoKHR - Structure describing parameters of a queue+-- presentation+--+-- = Description+-- #_description#+--+-- Before an application /can/ present an image, the image’s layout /must/+-- be transitioned to the @VK_IMAGE_LAYOUT_PRESENT_SRC_KHR@ layout.+--+-- __Note__+--+-- When transitioning the image to @VK_IMAGE_LAYOUT_PRESENT_SRC_KHR@, there+-- is no need to delay subsequent processing, or perform any visibility+-- operations (as 'vkQueuePresentKHR' performs automatic visibility+-- operations). To achieve this, the @dstAccessMask@ member of the+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier'+-- /should/ be set to @0@, and the @dstStageMask@ parameter /should/ be set+-- to @VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT@.+--+-- == Valid Usage+--+-- -   Each element of @pImageIndices@ /must/ be the index of a presentable+--     image acquired from the swapchain specified by the corresponding+--     element of the @pSwapchains@ array, and the presented image+--     subresource /must/ be in the @VK_IMAGE_LAYOUT_PRESENT_SRC_KHR@+--     layout at the time the operation is executed on a @VkDevice@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_PRESENT_INFO_KHR@+--+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of 'VkDeviceGroupPresentInfoKHR',+--     'Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR',+--     'Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionsKHR',+--     or+--     'Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimesInfoGOOGLE'+--+-- -   Each @sType@ member in the @pNext@ chain /must/ be unique+--+-- -   If @waitSemaphoreCount@ is not @0@, @pWaitSemaphores@ /must/ be a+--     valid pointer to an array of @waitSemaphoreCount@ valid+--     @VkSemaphore@ handles+--+-- -   @pSwapchains@ /must/ be a valid pointer to an array of+--     @swapchainCount@ valid @VkSwapchainKHR@ handles+--+-- -   @pImageIndices@ /must/ be a valid pointer to an array of+--     @swapchainCount@ @uint32_t@ values+--+-- -   If @pResults@ is not @NULL@, @pResults@ /must/ be a valid pointer to+--     an array of @swapchainCount@ 'Graphics.Vulkan.Core10.Core.VkResult'+--     values+--+-- -   @swapchainCount@ /must/ be greater than @0@+--+-- -   Both of the elements of @pSwapchains@, and the elements of+--     @pWaitSemaphores@ that are valid handles /must/ have been created,+--     allocated, or retrieved from the same @VkInstance@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkResult',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkSwapchainKHR',+-- 'vkQueuePresentKHR'+data VkPresentInfoKHR = VkPresentInfoKHR+  { -- No documentation found for Nested "VkPresentInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPresentInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPresentInfoKHR" "vkWaitSemaphoreCount"+  vkWaitSemaphoreCount :: Word32+  , -- No documentation found for Nested "VkPresentInfoKHR" "vkPWaitSemaphores"+  vkPWaitSemaphores :: Ptr VkSemaphore+  , -- No documentation found for Nested "VkPresentInfoKHR" "vkSwapchainCount"+  vkSwapchainCount :: Word32+  , -- No documentation found for Nested "VkPresentInfoKHR" "vkPSwapchains"+  vkPSwapchains :: Ptr VkSwapchainKHR+  , -- No documentation found for Nested "VkPresentInfoKHR" "vkPImageIndices"+  vkPImageIndices :: Ptr Word32+  , -- No documentation found for Nested "VkPresentInfoKHR" "vkPResults"+  vkPResults :: Ptr VkResult+  }+  deriving (Eq, Show)++instance Storable VkPresentInfoKHR where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek ptr = VkPresentInfoKHR <$> peek (ptr `plusPtr` 0)+                              <*> peek (ptr `plusPtr` 8)+                              <*> peek (ptr `plusPtr` 16)+                              <*> peek (ptr `plusPtr` 24)+                              <*> peek (ptr `plusPtr` 32)+                              <*> peek (ptr `plusPtr` 40)+                              <*> peek (ptr `plusPtr` 48)+                              <*> peek (ptr `plusPtr` 56)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPresentInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPresentInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkPresentInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkPresentInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkSwapchainCount (poked :: VkPresentInfoKHR))+                *> poke (ptr `plusPtr` 40) (vkPSwapchains (poked :: VkPresentInfoKHR))+                *> poke (ptr `plusPtr` 48) (vkPImageIndices (poked :: VkPresentInfoKHR))+                *> poke (ptr `plusPtr` 56) (vkPResults (poked :: VkPresentInfoKHR))+-- | VkDeviceGroupPresentCapabilitiesKHR - Present capabilities from other+-- physical devices+--+-- = Description+-- #_description#+--+-- @modes@ always has @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR@ set.+--+-- The present mode flags are also used when presenting an image, in+-- 'VkDeviceGroupPresentInfoKHR'::@mode@.+--+-- If a device group only includes a single physical device, then @modes@+-- /must/ equal @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceGroupPresentModeFlagsKHR',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetDeviceGroupPresentCapabilitiesKHR'+data VkDeviceGroupPresentCapabilitiesKHR = VkDeviceGroupPresentCapabilitiesKHR+  { -- No documentation found for Nested "VkDeviceGroupPresentCapabilitiesKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGroupPresentCapabilitiesKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGroupPresentCapabilitiesKHR" "vkPresentMask"+  vkPresentMask :: Vector VK_MAX_DEVICE_GROUP_SIZE Word32+  , -- No documentation found for Nested "VkDeviceGroupPresentCapabilitiesKHR" "vkModes"+  vkModes :: VkDeviceGroupPresentModeFlagsKHR+  }+  deriving (Eq, Show)++instance Storable VkDeviceGroupPresentCapabilitiesKHR where+  sizeOf ~_ = 152+  alignment ~_ = 8+  peek ptr = VkDeviceGroupPresentCapabilitiesKHR <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+                                                 <*> peek (ptr `plusPtr` 144)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGroupPresentCapabilitiesKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGroupPresentCapabilitiesKHR))+                *> poke (ptr `plusPtr` 16) (vkPresentMask (poked :: VkDeviceGroupPresentCapabilitiesKHR))+                *> poke (ptr `plusPtr` 144) (vkModes (poked :: VkDeviceGroupPresentCapabilitiesKHR))+-- | VkImageSwapchainCreateInfoKHR - Specify that an image will be bound to+-- swapchain memory+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If @swapchain@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', the fields of+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo' /must/ match the+--     <{html_spec_relative}#swapchain-wsi-image-create-info implied image creation parameters>+--     of the swapchain+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR@+--+-- -   If @swapchain@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @swapchain@+--     /must/ be a valid @VkSwapchainKHR@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkSwapchainKHR'+data VkImageSwapchainCreateInfoKHR = VkImageSwapchainCreateInfoKHR+  { -- No documentation found for Nested "VkImageSwapchainCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImageSwapchainCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImageSwapchainCreateInfoKHR" "vkSwapchain"+  vkSwapchain :: VkSwapchainKHR+  }+  deriving (Eq, Show)++instance Storable VkImageSwapchainCreateInfoKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkImageSwapchainCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSwapchain (poked :: VkImageSwapchainCreateInfoKHR))+-- | VkBindImageMemorySwapchainInfoKHR - Structure specifying swapchain image+-- memory to bind to+--+-- = Description+-- #_description#+--+-- If @swapchain@ is not @NULL@, the @swapchain@ and @imageIndex@ are used+-- to determine the memory that the image is bound to, instead of @memory@+-- and @memoryOffset@.+--+-- Memory /can/ be bound to a swapchain and use the @pDeviceIndices@ or+-- @pSplitInstanceBindRegions@ members of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo'.+--+-- == Valid Usage+--+-- -   @imageIndex@ /must/ be less than the number of images in @swapchain@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR@+--+-- -   @swapchain@ /must/ be a valid @VkSwapchainKHR@ handle+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkSwapchainKHR'+data VkBindImageMemorySwapchainInfoKHR = VkBindImageMemorySwapchainInfoKHR+  { -- No documentation found for Nested "VkBindImageMemorySwapchainInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkBindImageMemorySwapchainInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkBindImageMemorySwapchainInfoKHR" "vkSwapchain"+  vkSwapchain :: VkSwapchainKHR+  , -- No documentation found for Nested "VkBindImageMemorySwapchainInfoKHR" "vkImageIndex"+  vkImageIndex :: Word32+  }+  deriving (Eq, Show)++instance Storable VkBindImageMemorySwapchainInfoKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkBindImageMemorySwapchainInfoKHR <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+                                               <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindImageMemorySwapchainInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindImageMemorySwapchainInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSwapchain (poked :: VkBindImageMemorySwapchainInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkImageIndex (poked :: VkBindImageMemorySwapchainInfoKHR))+-- | VkAcquireNextImageInfoKHR - Structure specifying parameters of the+-- acquire+--+-- = Description+-- #_description#+--+-- If 'vkAcquireNextImageKHR' is used, the device mask is considered to+-- include all physical devices in the logical device.+--+-- __Note__+--+-- 'vkAcquireNextImage2KHR' signals at most one semaphore, even if the+-- application requests waiting for multiple physical devices to be ready+-- via the @deviceMask@. However, only a single physical device /can/ wait+-- on that semaphore, since the semaphore becomes unsignaled when the wait+-- succeeds. For other physical devices to wait for the image to be ready,+-- it is necessary for the application to submit semaphore signal+-- operation(s) to that first physical device to signal additional+-- semaphore(s) after the wait succeeds, which the other physical device(s)+-- /can/ wait upon.+--+-- == Valid Usage+--+-- -   @swapchain@ /must/ not be in the retired state+--+-- -   If @semaphore@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE' it /must/ be+--     unsignaled+--+-- -   If @semaphore@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE' it /must/ not have+--     any uncompleted signal or wait operations pending+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--     it /must/ be unsignaled and /must/ not be associated with any other+--     queue command that has not yet completed execution on that queue+--+-- -   @semaphore@ and @fence@ /must/ not both be equal to+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   @deviceMask@ /must/ be a valid device mask+--+-- -   @deviceMask@ /must/ not be zero+--+-- -   @semaphore@ and @fence@ /must/ not both be equal to+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @swapchain@ /must/ be a valid @VkSwapchainKHR@ handle+--+-- -   If @semaphore@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @semaphore@+--     /must/ be a valid @VkSemaphore@ handle+--+-- -   If @fence@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @fence@ /must/ be a valid @VkFence@ handle+--+-- -   Each of @fence@, @semaphore@, and @swapchain@ that are valid handles+--     /must/ have been created, allocated, or retrieved from the same+--     @VkInstance@+--+-- == Host Synchronization+--+-- -   Host access to @swapchain@ /must/ be externally synchronized+--+-- -   Host access to @semaphore@ /must/ be externally synchronized+--+-- -   Host access to @fence@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkFence',+-- 'Graphics.Vulkan.Core10.Queue.VkSemaphore',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkSwapchainKHR',+-- 'vkAcquireNextImage2KHR'+data VkAcquireNextImageInfoKHR = VkAcquireNextImageInfoKHR+  { -- No documentation found for Nested "VkAcquireNextImageInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkAcquireNextImageInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkAcquireNextImageInfoKHR" "vkSwapchain"+  vkSwapchain :: VkSwapchainKHR+  , -- No documentation found for Nested "VkAcquireNextImageInfoKHR" "vkTimeout"+  vkTimeout :: Word64+  , -- No documentation found for Nested "VkAcquireNextImageInfoKHR" "vkSemaphore"+  vkSemaphore :: VkSemaphore+  , -- No documentation found for Nested "VkAcquireNextImageInfoKHR" "vkFence"+  vkFence :: VkFence+  , -- No documentation found for Nested "VkAcquireNextImageInfoKHR" "vkDeviceMask"+  vkDeviceMask :: Word32+  }+  deriving (Eq, Show)++instance Storable VkAcquireNextImageInfoKHR where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek ptr = VkAcquireNextImageInfoKHR <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 24)+                                       <*> peek (ptr `plusPtr` 32)+                                       <*> peek (ptr `plusPtr` 40)+                                       <*> peek (ptr `plusPtr` 48)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkAcquireNextImageInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkAcquireNextImageInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSwapchain (poked :: VkAcquireNextImageInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkTimeout (poked :: VkAcquireNextImageInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkSemaphore (poked :: VkAcquireNextImageInfoKHR))+                *> poke (ptr `plusPtr` 40) (vkFence (poked :: VkAcquireNextImageInfoKHR))+                *> poke (ptr `plusPtr` 48) (vkDeviceMask (poked :: VkAcquireNextImageInfoKHR))+-- | VkDeviceGroupPresentInfoKHR - Mode and mask controlling which physical+-- devices\' images are presented+--+-- = Description+-- #_description#+--+-- If @mode@ is @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR@, then each+-- element of @pDeviceMasks@ selects which instance of the swapchain image+-- is presented. Each element of @pDeviceMasks@ /must/ have exactly one bit+-- set, and the corresponding physical device /must/ have a presentation+-- engine as reported by 'VkDeviceGroupPresentCapabilitiesKHR'.+--+-- If @mode@ is @VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR@, then each+-- element of @pDeviceMasks@ selects which instance of the swapchain image+-- is presented. Each element of @pDeviceMasks@ /must/ have exactly one bit+-- set, and some physical device in the logical device /must/ include that+-- bit in its 'VkDeviceGroupPresentCapabilitiesKHR'::@presentMask@.+--+-- If @mode@ is @VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR@, then each+-- element of @pDeviceMasks@ selects which instances of the swapchain image+-- are component-wise summed and the sum of those images is presented. If+-- the sum in any component is outside the representable range, the value+-- of that component is undefined. Each element of @pDeviceMasks@ /must/+-- have a value for which all set bits are set in one of the elements of+-- 'VkDeviceGroupPresentCapabilitiesKHR'::@presentMask@.+--+-- If @mode@ is @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR@,+-- then each element of @pDeviceMasks@ selects which instance(s) of the+-- swapchain images are presented. For each bit set in each element of+-- @pDeviceMasks@, the corresponding physical device /must/ have a+-- presentation engine as reported by+-- 'VkDeviceGroupPresentCapabilitiesKHR'.+--+-- If @VkDeviceGroupPresentInfoKHR@ is not provided or @swapchainCount@ is+-- zero then the masks are considered to be @1@. If+-- @VkDeviceGroupPresentInfoKHR@ is not provided, @mode@ is considered to+-- be @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR@.+--+-- == Valid Usage+--+-- -   @swapchainCount@ /must/ equal @0@ or+--     'VkPresentInfoKHR'::@swapchainCount@+--+-- -   If @mode@ is @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR@, then each+--     element of @pDeviceMasks@ /must/ have exactly one bit set, and the+--     corresponding element of+--     'VkDeviceGroupPresentCapabilitiesKHR'::@presentMask@ /must/ be+--     non-zero+--+-- -   If @mode@ is @VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR@, then+--     each element of @pDeviceMasks@ /must/ have exactly one bit set, and+--     some physical device in the logical device /must/ include that bit+--     in its 'VkDeviceGroupPresentCapabilitiesKHR'::@presentMask@.+--+-- -   If @mode@ is @VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR@, then each+--     element of @pDeviceMasks@ /must/ have a value for which all set bits+--     are set in one of the elements of+--     'VkDeviceGroupPresentCapabilitiesKHR'::@presentMask@+--+-- -   If @mode@ is+--     @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR@, then for+--     each bit set in each element of @pDeviceMasks@, the corresponding+--     element of 'VkDeviceGroupPresentCapabilitiesKHR'::@presentMask@+--     /must/ be non-zero+--+-- -   The value of each element of @pDeviceMasks@ /must/ be equal to the+--     device mask passed in 'VkAcquireNextImageInfoKHR'::@deviceMask@ when+--     the image index was last acquired+--+-- -   @mode@ /must/ have exactly one bit set, and that bit /must/ have+--     been included in 'VkDeviceGroupSwapchainCreateInfoKHR'::@modes@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR@+--+-- -   If @swapchainCount@ is not @0@, @pDeviceMasks@ /must/ be a valid+--     pointer to an array of @swapchainCount@ @uint32_t@ values+--+-- -   @mode@ /must/ be a valid 'VkDeviceGroupPresentModeFlagBitsKHR' value+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceGroupPresentModeFlagBitsKHR',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDeviceGroupPresentInfoKHR = VkDeviceGroupPresentInfoKHR+  { -- No documentation found for Nested "VkDeviceGroupPresentInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGroupPresentInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGroupPresentInfoKHR" "vkSwapchainCount"+  vkSwapchainCount :: Word32+  , -- No documentation found for Nested "VkDeviceGroupPresentInfoKHR" "vkPDeviceMasks"+  vkPDeviceMasks :: Ptr Word32+  , -- No documentation found for Nested "VkDeviceGroupPresentInfoKHR" "vkMode"+  vkMode :: VkDeviceGroupPresentModeFlagBitsKHR+  }+  deriving (Eq, Show)++instance Storable VkDeviceGroupPresentInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDeviceGroupPresentInfoKHR <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+                                         <*> peek (ptr `plusPtr` 24)+                                         <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGroupPresentInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGroupPresentInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkSwapchainCount (poked :: VkDeviceGroupPresentInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkPDeviceMasks (poked :: VkDeviceGroupPresentInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkMode (poked :: VkDeviceGroupPresentInfoKHR))+-- | VkDeviceGroupSwapchainCreateInfoKHR - Structure specifying parameters of+-- a newly created swapchain object+--+-- = Description+-- #_description#+--+-- If this structure is not present, @modes@ is considered to be+-- @VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR@+--+-- -   @modes@ /must/ be a valid combination of+--     'VkDeviceGroupPresentModeFlagBitsKHR' values+--+-- -   @modes@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceGroupPresentModeFlagsKHR',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDeviceGroupSwapchainCreateInfoKHR = VkDeviceGroupSwapchainCreateInfoKHR+  { -- No documentation found for Nested "VkDeviceGroupSwapchainCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGroupSwapchainCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGroupSwapchainCreateInfoKHR" "vkModes"+  vkModes :: VkDeviceGroupPresentModeFlagsKHR+  }+  deriving (Eq, Show)++instance Storable VkDeviceGroupSwapchainCreateInfoKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDeviceGroupSwapchainCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGroupSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGroupSwapchainCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkModes (poked :: VkDeviceGroupSwapchainCreateInfoKHR))+-- | VkSwapchainCreateFlagsKHR - Bitmask of VkSwapchainCreateFlagBitsKHR+--+-- = Description+-- #_description#+--+-- @VkSwapchainCreateFlagsKHR@ is a bitmask type for setting a mask of zero+-- or more 'VkSwapchainCreateFlagBitsKHR'.+--+-- = See Also+-- #_see_also#+--+-- 'VkSwapchainCreateFlagBitsKHR', 'VkSwapchainCreateInfoKHR'+type VkSwapchainCreateFlagsKHR = VkSwapchainCreateFlagBitsKHR+-- | VkDeviceGroupPresentModeFlagsKHR - Bitmask of+-- VkDeviceGroupPresentModeFlagBitsKHR+--+-- = Description+-- #_description#+--+-- @VkDeviceGroupPresentModeFlagsKHR@ is a bitmask type for setting a mask+-- of zero or more 'VkDeviceGroupPresentModeFlagBitsKHR'.+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceGroupPresentCapabilitiesKHR',+-- 'VkDeviceGroupPresentModeFlagBitsKHR',+-- 'VkDeviceGroupSwapchainCreateInfoKHR',+-- 'vkGetDeviceGroupSurfacePresentModesKHR'+type VkDeviceGroupPresentModeFlagsKHR = VkDeviceGroupPresentModeFlagBitsKHR
+ src/Graphics/Vulkan/Extensions/VK_KHR_variable_pointers.hs view
@@ -0,0 +1,52 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.Extensions.VK_KHR_variable_pointers+  ( pattern VK_KHR_VARIABLE_POINTERS_SPEC_VERSION+  , pattern VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME+  , VkPhysicalDeviceVariablePointerFeaturesKHR+  , pattern VkPhysicalDeviceVariablePointerFeaturesKHR+  , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( Ptr+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES+  , VkPhysicalDeviceVariablePointerFeatures(..)+  )+++-- No documentation found for TopLevel "VK_KHR_VARIABLE_POINTERS_SPEC_VERSION"+pattern VK_KHR_VARIABLE_POINTERS_SPEC_VERSION :: Integral a => a+pattern VK_KHR_VARIABLE_POINTERS_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME"+pattern VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME = "VK_KHR_variable_pointers"+-- No documentation found for TopLevel "VkPhysicalDeviceVariablePointerFeaturesKHR"+type VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointerFeatures+++-- No documentation found for TopLevel "VkPhysicalDeviceVariablePointerFeaturesKHR"+pattern VkPhysicalDeviceVariablePointerFeaturesKHR :: ("sType" ::: VkStructureType) -> ("pNext" ::: Ptr ()) -> ("variablePointersStorageBuffer" ::: VkBool32) -> ("variablePointers" ::: VkBool32) -> VkPhysicalDeviceVariablePointerFeaturesKHR+pattern VkPhysicalDeviceVariablePointerFeaturesKHR vkSType vkPNext vkVariablePointersStorageBuffer vkVariablePointers = VkPhysicalDeviceVariablePointerFeatures vkSType vkPNext vkVariablePointersStorageBuffer vkVariablePointers+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
+ src/Graphics/Vulkan/Extensions/VK_KHR_wayland_surface.hs view
@@ -0,0 +1,252 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_wayland_surface+  ( Wl_display+  , Wl_surface+  , VkWaylandSurfaceCreateFlagsKHR(..)+  , pattern VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR+  , pattern VK_KHR_WAYLAND_SURFACE_SPEC_VERSION+  , pattern VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME+  , vkCreateWaylandSurfaceKHR+  , vkGetPhysicalDeviceWaylandPresentationSupportKHR+  , VkWaylandSurfaceCreateInfoKHR(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  , VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- | Opaque data+data Wl_display+-- | Opaque data+data Wl_surface+-- ** VkWaylandSurfaceCreateFlagsKHR++-- No documentation found for TopLevel "VkWaylandSurfaceCreateFlagsKHR"+newtype VkWaylandSurfaceCreateFlagsKHR = VkWaylandSurfaceCreateFlagsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkWaylandSurfaceCreateFlagsKHR where+  +  showsPrec p (VkWaylandSurfaceCreateFlagsKHR x) = showParen (p >= 11) (showString "VkWaylandSurfaceCreateFlagsKHR " . showsPrec 11 x)++instance Read VkWaylandSurfaceCreateFlagsKHR where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkWaylandSurfaceCreateFlagsKHR")+                        v <- step readPrec+                        pure (VkWaylandSurfaceCreateFlagsKHR v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = VkStructureType 1000006000+-- No documentation found for TopLevel "VK_KHR_WAYLAND_SURFACE_SPEC_VERSION"+pattern VK_KHR_WAYLAND_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_WAYLAND_SURFACE_SPEC_VERSION = 6+-- No documentation found for TopLevel "VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME"+pattern VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME = "VK_KHR_wayland_surface"+-- | vkCreateWaylandSurfaceKHR - Create a+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR' object for a+-- Wayland window+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance to associate the surface with.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkWaylandSurfaceCreateInfoKHR' structure containing parameters+--     affecting the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkWaylandSurfaceCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR',+-- 'VkWaylandSurfaceCreateInfoKHR'+foreign import ccall "vkCreateWaylandSurfaceKHR" vkCreateWaylandSurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkWaylandSurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | vkGetPhysicalDeviceWaylandPresentationSupportKHR - Query physical device+-- for presentation to Wayland+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device.+--+-- -   @queueFamilyIndex@ is the queue family index.+--+-- -   @display@ is a pointer to the @wl_display@ associated with a Wayland+--     compositor.+--+-- = Description+-- #_description#+--+-- This platform-specific function /can/ be called prior to creating a+-- surface.+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+--     returned by @vkGetPhysicalDeviceQueueFamilyProperties@ for the given+--     @physicalDevice@+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @display@ /must/ be a valid pointer to a @wl_display@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceWaylandPresentationSupportKHR" vkGetPhysicalDeviceWaylandPresentationSupportKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("queueFamilyIndex" ::: Word32) -> ("display" ::: Ptr Wl_display) -> IO VkBool32+-- | VkWaylandSurfaceCreateInfoKHR - Structure specifying parameters of a+-- newly created Wayland surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @display@ /must/ point to a valid Wayland @wl_display@.+--+-- -   @surface@ /must/ point to a valid Wayland @wl_surface@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkWaylandSurfaceCreateFlagsKHR', 'vkCreateWaylandSurfaceKHR'+data VkWaylandSurfaceCreateInfoKHR = VkWaylandSurfaceCreateInfoKHR+  { -- No documentation found for Nested "VkWaylandSurfaceCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkWaylandSurfaceCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkWaylandSurfaceCreateInfoKHR" "vkFlags"+  vkFlags :: VkWaylandSurfaceCreateFlagsKHR+  , -- No documentation found for Nested "VkWaylandSurfaceCreateInfoKHR" "vkDisplay"+  vkDisplay :: Ptr Wl_display+  , -- No documentation found for Nested "VkWaylandSurfaceCreateInfoKHR" "vkSurface"+  vkSurface :: Ptr Wl_surface+  }+  deriving (Eq, Show)++instance Storable VkWaylandSurfaceCreateInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkWaylandSurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 8)+                                           <*> peek (ptr `plusPtr` 16)+                                           <*> peek (ptr `plusPtr` 24)+                                           <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkWaylandSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkWaylandSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkWaylandSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkDisplay (poked :: VkWaylandSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkSurface (poked :: VkWaylandSurfaceCreateInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs view
@@ -0,0 +1,133 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_win32_keyed_mutex+  ( pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR+  , pattern VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION+  , pattern VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME+  , VkWin32KeyedMutexAcquireReleaseInfoKHR(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word64+  , Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = VkStructureType 1000075000+-- No documentation found for TopLevel "VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION"+pattern VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION :: Integral a => a+pattern VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME"+pattern VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME = "VK_KHR_win32_keyed_mutex"+-- | VkWin32KeyedMutexAcquireReleaseInfoKHR - Use the Windows keyed mutex+-- mechanism to synchronize work+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   Each member of @pAcquireSyncs@ and @pReleaseSyncs@ /must/ be a+--     device memory object imported by setting+--     'Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32.VkImportMemoryWin32HandleInfoKHR'::@handleType@+--     to @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT@ or+--     @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR@+--+-- -   If @acquireCount@ is not @0@, @pAcquireSyncs@ /must/ be a valid+--     pointer to an array of @acquireCount@ valid @VkDeviceMemory@ handles+--+-- -   If @acquireCount@ is not @0@, @pAcquireKeys@ /must/ be a valid+--     pointer to an array of @acquireCount@ @uint64_t@ values+--+-- -   If @acquireCount@ is not @0@, @pAcquireTimeouts@ /must/ be a valid+--     pointer to an array of @acquireCount@ @uint32_t@ values+--+-- -   If @releaseCount@ is not @0@, @pReleaseSyncs@ /must/ be a valid+--     pointer to an array of @releaseCount@ valid @VkDeviceMemory@ handles+--+-- -   If @releaseCount@ is not @0@, @pReleaseKeys@ /must/ be a valid+--     pointer to an array of @releaseCount@ @uint64_t@ values+--+-- -   Both of the elements of @pAcquireSyncs@, and the elements of+--     @pReleaseSyncs@ that are valid handles /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkWin32KeyedMutexAcquireReleaseInfoKHR = VkWin32KeyedMutexAcquireReleaseInfoKHR+  { -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkAcquireCount"+  vkAcquireCount :: Word32+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkPAcquireSyncs"+  vkPAcquireSyncs :: Ptr VkDeviceMemory+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkPAcquireKeys"+  vkPAcquireKeys :: Ptr Word64+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkPAcquireTimeouts"+  vkPAcquireTimeouts :: Ptr Word32+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkReleaseCount"+  vkReleaseCount :: Word32+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkPReleaseSyncs"+  vkPReleaseSyncs :: Ptr VkDeviceMemory+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "vkPReleaseKeys"+  vkPReleaseKeys :: Ptr Word64+  }+  deriving (Eq, Show)++instance Storable VkWin32KeyedMutexAcquireReleaseInfoKHR where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkWin32KeyedMutexAcquireReleaseInfoKHR <$> peek (ptr `plusPtr` 0)+                                                    <*> peek (ptr `plusPtr` 8)+                                                    <*> peek (ptr `plusPtr` 16)+                                                    <*> peek (ptr `plusPtr` 24)+                                                    <*> peek (ptr `plusPtr` 32)+                                                    <*> peek (ptr `plusPtr` 40)+                                                    <*> peek (ptr `plusPtr` 48)+                                                    <*> peek (ptr `plusPtr` 56)+                                                    <*> peek (ptr `plusPtr` 64)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkAcquireCount (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkPAcquireSyncs (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkPAcquireKeys (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))+                *> poke (ptr `plusPtr` 40) (vkPAcquireTimeouts (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))+                *> poke (ptr `plusPtr` 48) (vkReleaseCount (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))+                *> poke (ptr `plusPtr` 56) (vkPReleaseSyncs (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))+                *> poke (ptr `plusPtr` 64) (vkPReleaseKeys (poked :: VkWin32KeyedMutexAcquireReleaseInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_win32_surface.hs view
@@ -0,0 +1,246 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_win32_surface+  ( HINSTANCE+  , HWND+  , VkWin32SurfaceCreateFlagsKHR(..)+  , pattern VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR+  , pattern VK_KHR_WIN32_SURFACE_SPEC_VERSION+  , pattern VK_KHR_WIN32_SURFACE_EXTENSION_NAME+  , vkCreateWin32SurfaceKHR+  , vkGetPhysicalDeviceWin32PresentationSupportKHR+  , VkWin32SurfaceCreateInfoKHR(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  , VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- No documentation found for TopLevel "HINSTANCE"+type HINSTANCE = Ptr ()+-- No documentation found for TopLevel "HWND"+type HWND = Ptr ()+-- ** VkWin32SurfaceCreateFlagsKHR++-- No documentation found for TopLevel "VkWin32SurfaceCreateFlagsKHR"+newtype VkWin32SurfaceCreateFlagsKHR = VkWin32SurfaceCreateFlagsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkWin32SurfaceCreateFlagsKHR where+  +  showsPrec p (VkWin32SurfaceCreateFlagsKHR x) = showParen (p >= 11) (showString "VkWin32SurfaceCreateFlagsKHR " . showsPrec 11 x)++instance Read VkWin32SurfaceCreateFlagsKHR where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkWin32SurfaceCreateFlagsKHR")+                        v <- step readPrec+                        pure (VkWin32SurfaceCreateFlagsKHR v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = VkStructureType 1000009000+-- No documentation found for TopLevel "VK_KHR_WIN32_SURFACE_SPEC_VERSION"+pattern VK_KHR_WIN32_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_WIN32_SURFACE_SPEC_VERSION = 6+-- No documentation found for TopLevel "VK_KHR_WIN32_SURFACE_EXTENSION_NAME"+pattern VK_KHR_WIN32_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_WIN32_SURFACE_EXTENSION_NAME = "VK_KHR_win32_surface"+-- | vkCreateWin32SurfaceKHR - Create a+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR' object for an+-- Win32 native window+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance to associate the surface with.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkWin32SurfaceCreateInfoKHR@ structure containing parameters+--     affecting the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkWin32SurfaceCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR',+-- 'VkWin32SurfaceCreateInfoKHR'+foreign import ccall "vkCreateWin32SurfaceKHR" vkCreateWin32SurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkWin32SurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | vkGetPhysicalDeviceWin32PresentationSupportKHR - query queue family+-- support for presentation on a Win32 display+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device.+--+-- -   @queueFamilyIndex@ is the queue family index.+--+-- = Description+-- #_description#+--+-- This platform-specific function /can/ be called prior to creating a+-- surface.+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+--     returned by @vkGetPhysicalDeviceQueueFamilyProperties@ for the given+--     @physicalDevice@+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceWin32PresentationSupportKHR" vkGetPhysicalDeviceWin32PresentationSupportKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("queueFamilyIndex" ::: Word32) -> IO VkBool32+-- | VkWin32SurfaceCreateInfoKHR - Structure specifying parameters of a newly+-- created Win32 surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @hinstance@ /must/ be a valid Win32 @HINSTANCE@.+--+-- -   @hwnd@ /must/ be a valid Win32 @HWND@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkWin32SurfaceCreateFlagsKHR', 'vkCreateWin32SurfaceKHR'+data VkWin32SurfaceCreateInfoKHR = VkWin32SurfaceCreateInfoKHR+  { -- No documentation found for Nested "VkWin32SurfaceCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkWin32SurfaceCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkWin32SurfaceCreateInfoKHR" "vkFlags"+  vkFlags :: VkWin32SurfaceCreateFlagsKHR+  , -- No documentation found for Nested "VkWin32SurfaceCreateInfoKHR" "vkHinstance"+  vkHinstance :: HINSTANCE+  , -- No documentation found for Nested "VkWin32SurfaceCreateInfoKHR" "vkHwnd"+  vkHwnd :: HWND+  }+  deriving (Eq, Show)++instance Storable VkWin32SurfaceCreateInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkWin32SurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+                                         <*> peek (ptr `plusPtr` 24)+                                         <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkWin32SurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkWin32SurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkWin32SurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkHinstance (poked :: VkWin32SurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkHwnd (poked :: VkWin32SurfaceCreateInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_xcb_surface.hs view
@@ -0,0 +1,254 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_xcb_surface+  ( Xcb_connection_t+  , Xcb_visualid_t+  , Xcb_window_t+  , VkXcbSurfaceCreateFlagsKHR(..)+  , pattern VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR+  , pattern VK_KHR_XCB_SURFACE_SPEC_VERSION+  , pattern VK_KHR_XCB_SURFACE_EXTENSION_NAME+  , vkCreateXcbSurfaceKHR+  , vkGetPhysicalDeviceXcbPresentationSupportKHR+  , VkXcbSurfaceCreateInfoKHR(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  , VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- | Opaque data+data Xcb_connection_t+-- No documentation found for TopLevel "Xcb_visualid_t"+type Xcb_visualid_t = Word32+-- No documentation found for TopLevel "Xcb_window_t"+type Xcb_window_t = Word32+-- ** VkXcbSurfaceCreateFlagsKHR++-- No documentation found for TopLevel "VkXcbSurfaceCreateFlagsKHR"+newtype VkXcbSurfaceCreateFlagsKHR = VkXcbSurfaceCreateFlagsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkXcbSurfaceCreateFlagsKHR where+  +  showsPrec p (VkXcbSurfaceCreateFlagsKHR x) = showParen (p >= 11) (showString "VkXcbSurfaceCreateFlagsKHR " . showsPrec 11 x)++instance Read VkXcbSurfaceCreateFlagsKHR where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkXcbSurfaceCreateFlagsKHR")+                        v <- step readPrec+                        pure (VkXcbSurfaceCreateFlagsKHR v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = VkStructureType 1000005000+-- No documentation found for TopLevel "VK_KHR_XCB_SURFACE_SPEC_VERSION"+pattern VK_KHR_XCB_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_XCB_SURFACE_SPEC_VERSION = 6+-- No documentation found for TopLevel "VK_KHR_XCB_SURFACE_EXTENSION_NAME"+pattern VK_KHR_XCB_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_XCB_SURFACE_EXTENSION_NAME = "VK_KHR_xcb_surface"+-- | vkCreateXcbSurfaceKHR - Create a+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR' object for a+-- X11 window, using the XCB client-side library+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance to associate the surface with.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkXcbSurfaceCreateInfoKHR@ structure containing parameters+--     affecting the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkXcbSurfaceCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR',+-- 'VkXcbSurfaceCreateInfoKHR'+foreign import ccall "vkCreateXcbSurfaceKHR" vkCreateXcbSurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkXcbSurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | vkGetPhysicalDeviceXcbPresentationSupportKHR - Query physical device for+-- presentation to X11 server using XCB+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device.+--+-- -   @queueFamilyIndex@ is the queue family index.+--+-- -   @connection@ is a pointer to an @xcb_connection_t@ to the X server.+--     @visual_id@ is an X11 visual (@xcb_visualid_t@).+--+-- = Description+-- #_description#+--+-- This platform-specific function /can/ be called prior to creating a+-- surface.+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+--     returned by @vkGetPhysicalDeviceQueueFamilyProperties@ for the given+--     @physicalDevice@+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @connection@ /must/ be a valid pointer to a @xcb_connection_t@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceXcbPresentationSupportKHR" vkGetPhysicalDeviceXcbPresentationSupportKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("queueFamilyIndex" ::: Word32) -> ("connection" ::: Ptr Xcb_connection_t) -> ("visual_id" ::: Xcb_visualid_t) -> IO VkBool32+-- | VkXcbSurfaceCreateInfoKHR - Structure specifying parameters of a newly+-- created Xcb surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @connection@ /must/ point to a valid X11 @xcb_connection_t@.+--+-- -   @window@ /must/ be a valid X11 @xcb_window_t@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkXcbSurfaceCreateFlagsKHR', 'vkCreateXcbSurfaceKHR'+data VkXcbSurfaceCreateInfoKHR = VkXcbSurfaceCreateInfoKHR+  { -- No documentation found for Nested "VkXcbSurfaceCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkXcbSurfaceCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkXcbSurfaceCreateInfoKHR" "vkFlags"+  vkFlags :: VkXcbSurfaceCreateFlagsKHR+  , -- No documentation found for Nested "VkXcbSurfaceCreateInfoKHR" "vkConnection"+  vkConnection :: Ptr Xcb_connection_t+  , -- No documentation found for Nested "VkXcbSurfaceCreateInfoKHR" "vkWindow"+  vkWindow :: Xcb_window_t+  }+  deriving (Eq, Show)++instance Storable VkXcbSurfaceCreateInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkXcbSurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 24)+                                       <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkXcbSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkXcbSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkXcbSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkConnection (poked :: VkXcbSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkWindow (poked :: VkXcbSurfaceCreateInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_KHR_xlib_surface.hs view
@@ -0,0 +1,256 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_KHR_xlib_surface+  ( Display(..)+  , VisualID+  , Window+  , VkXlibSurfaceCreateFlagsKHR(..)+  , pattern VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR+  , pattern VK_KHR_XLIB_SURFACE_SPEC_VERSION+  , pattern VK_KHR_XLIB_SURFACE_EXTENSION_NAME+  , vkCreateXlibSurfaceKHR+  , vkGetPhysicalDeviceXlibPresentationSupportKHR+  , VkXlibSurfaceCreateInfoKHR(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  , Word64+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkPhysicalDevice+  , VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- No documentation found for TopLevel "Display"+newtype Display = Display (Ptr Display)+-- No documentation found for TopLevel "VisualID"+type VisualID = Word64+-- No documentation found for TopLevel "Window"+type Window = Word64+-- ** VkXlibSurfaceCreateFlagsKHR++-- No documentation found for TopLevel "VkXlibSurfaceCreateFlagsKHR"+newtype VkXlibSurfaceCreateFlagsKHR = VkXlibSurfaceCreateFlagsKHR VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkXlibSurfaceCreateFlagsKHR where+  +  showsPrec p (VkXlibSurfaceCreateFlagsKHR x) = showParen (p >= 11) (showString "VkXlibSurfaceCreateFlagsKHR " . showsPrec 11 x)++instance Read VkXlibSurfaceCreateFlagsKHR where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkXlibSurfaceCreateFlagsKHR")+                        v <- step readPrec+                        pure (VkXlibSurfaceCreateFlagsKHR v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"+pattern VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR :: VkStructureType+pattern VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = VkStructureType 1000004000+-- No documentation found for TopLevel "VK_KHR_XLIB_SURFACE_SPEC_VERSION"+pattern VK_KHR_XLIB_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_KHR_XLIB_SURFACE_SPEC_VERSION = 6+-- No documentation found for TopLevel "VK_KHR_XLIB_SURFACE_EXTENSION_NAME"+pattern VK_KHR_XLIB_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_KHR_XLIB_SURFACE_EXTENSION_NAME = "VK_KHR_xlib_surface"+-- | vkCreateXlibSurfaceKHR - Create a+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR' object for an+-- X11 window, using the Xlib client-side library+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance to associate the surface with.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkXlibSurfaceCreateInfoKHR@ structure containing the parameters+--     affecting the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkXlibSurfaceCreateInfoKHR@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR',+-- 'VkXlibSurfaceCreateInfoKHR'+foreign import ccall "vkCreateXlibSurfaceKHR" vkCreateXlibSurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkXlibSurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | vkGetPhysicalDeviceXlibPresentationSupportKHR - Query physical device+-- for presentation to X11 server using Xlib+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device.+--+-- -   @queueFamilyIndex@ is the queue family index.+--+-- -   @dpy@ is a pointer to an Xlib @Display@ connection to the server.+--+-- -   @visualId@ is an X11 visual (@VisualID@).+--+-- = Description+-- #_description#+--+-- This platform-specific function /can/ be called prior to creating a+-- surface.+--+-- == Valid Usage+--+-- -   @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+--     returned by @vkGetPhysicalDeviceQueueFamilyProperties@ for the given+--     @physicalDevice@+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @dpy@ /must/ be a valid pointer to a @Display@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceXlibPresentationSupportKHR" vkGetPhysicalDeviceXlibPresentationSupportKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("queueFamilyIndex" ::: Word32) -> ("dpy" ::: Ptr Display) -> ("visualID" ::: VisualID) -> IO VkBool32+-- | VkXlibSurfaceCreateInfoKHR - Structure specifying parameters of a newly+-- created Xlib surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @dpy@ /must/ point to a valid Xlib @Display@.+--+-- -   @window@ /must/ be a valid Xlib @Window@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkXlibSurfaceCreateFlagsKHR', 'vkCreateXlibSurfaceKHR'+data VkXlibSurfaceCreateInfoKHR = VkXlibSurfaceCreateInfoKHR+  { -- No documentation found for Nested "VkXlibSurfaceCreateInfoKHR" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkXlibSurfaceCreateInfoKHR" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkXlibSurfaceCreateInfoKHR" "vkFlags"+  vkFlags :: VkXlibSurfaceCreateFlagsKHR+  , -- No documentation found for Nested "VkXlibSurfaceCreateInfoKHR" "vkDpy"+  vkDpy :: Ptr Display+  , -- No documentation found for Nested "VkXlibSurfaceCreateInfoKHR" "vkWindow"+  vkWindow :: Window+  }+  deriving (Eq, Show)++instance Storable VkXlibSurfaceCreateInfoKHR where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkXlibSurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+                                        <*> peek (ptr `plusPtr` 24)+                                        <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkXlibSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkXlibSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkXlibSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 24) (vkDpy (poked :: VkXlibSurfaceCreateInfoKHR))+                *> poke (ptr `plusPtr` 32) (vkWindow (poked :: VkXlibSurfaceCreateInfoKHR))
+ src/Graphics/Vulkan/Extensions/VK_MVK_ios_surface.hs view
@@ -0,0 +1,198 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_MVK_ios_surface+  ( VkIOSSurfaceCreateFlagsMVK(..)+  , pattern VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK+  , pattern VK_MVK_IOS_SURFACE_SPEC_VERSION+  , pattern VK_MVK_IOS_SURFACE_EXTENSION_NAME+  , vkCreateIOSSurfaceMVK+  , VkIOSSurfaceCreateInfoMVK(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- ** VkIOSSurfaceCreateFlagsMVK++-- No documentation found for TopLevel "VkIOSSurfaceCreateFlagsMVK"+newtype VkIOSSurfaceCreateFlagsMVK = VkIOSSurfaceCreateFlagsMVK VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkIOSSurfaceCreateFlagsMVK where+  +  showsPrec p (VkIOSSurfaceCreateFlagsMVK x) = showParen (p >= 11) (showString "VkIOSSurfaceCreateFlagsMVK " . showsPrec 11 x)++instance Read VkIOSSurfaceCreateFlagsMVK where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkIOSSurfaceCreateFlagsMVK")+                        v <- step readPrec+                        pure (VkIOSSurfaceCreateFlagsMVK v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"+pattern VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK :: VkStructureType+pattern VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = VkStructureType 1000122000+-- No documentation found for TopLevel "VK_MVK_IOS_SURFACE_SPEC_VERSION"+pattern VK_MVK_IOS_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_MVK_IOS_SURFACE_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_MVK_IOS_SURFACE_EXTENSION_NAME"+pattern VK_MVK_IOS_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_MVK_IOS_SURFACE_EXTENSION_NAME = "VK_MVK_ios_surface"+-- | vkCreateIOSSurfaceMVK - Create a VkSurfaceKHR object for an iOS UIView+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance with which to associate the surface.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkIOSSurfaceCreateInfoMVK' structure containing parameters+--     affecting the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkIOSSurfaceCreateInfoMVK@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_NATIVE_WINDOW_IN_USE_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'VkIOSSurfaceCreateInfoMVK',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR'+foreign import ccall "vkCreateIOSSurfaceMVK" vkCreateIOSSurfaceMVK :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkIOSSurfaceCreateInfoMVK) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | VkIOSSurfaceCreateInfoMVK - Structure specifying parameters of a newly+-- created iOS surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @pView@ /must/ be a valid @UIView@ and /must/ be backed by a+--     @CALayer@ instance of type @CAMetalLayer@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkIOSSurfaceCreateFlagsMVK',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateIOSSurfaceMVK'+data VkIOSSurfaceCreateInfoMVK = VkIOSSurfaceCreateInfoMVK+  { -- No documentation found for Nested "VkIOSSurfaceCreateInfoMVK" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkIOSSurfaceCreateInfoMVK" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkIOSSurfaceCreateInfoMVK" "vkFlags"+  vkFlags :: VkIOSSurfaceCreateFlagsMVK+  , -- No documentation found for Nested "VkIOSSurfaceCreateInfoMVK" "vkPView"+  vkPView :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkIOSSurfaceCreateInfoMVK where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkIOSSurfaceCreateInfoMVK <$> peek (ptr `plusPtr` 0)+                                       <*> peek (ptr `plusPtr` 8)+                                       <*> peek (ptr `plusPtr` 16)+                                       <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkIOSSurfaceCreateInfoMVK))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkIOSSurfaceCreateInfoMVK))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkIOSSurfaceCreateInfoMVK))+                *> poke (ptr `plusPtr` 24) (vkPView (poked :: VkIOSSurfaceCreateInfoMVK))
+ src/Graphics/Vulkan/Extensions/VK_MVK_macos_surface.hs view
@@ -0,0 +1,199 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_MVK_macos_surface+  ( VkMacOSSurfaceCreateFlagsMVK(..)+  , pattern VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK+  , pattern VK_MVK_MACOS_SURFACE_SPEC_VERSION+  , pattern VK_MVK_MACOS_SURFACE_EXTENSION_NAME+  , vkCreateMacOSSurfaceMVK+  , VkMacOSSurfaceCreateInfoMVK(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- ** VkMacOSSurfaceCreateFlagsMVK++-- No documentation found for TopLevel "VkMacOSSurfaceCreateFlagsMVK"+newtype VkMacOSSurfaceCreateFlagsMVK = VkMacOSSurfaceCreateFlagsMVK VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkMacOSSurfaceCreateFlagsMVK where+  +  showsPrec p (VkMacOSSurfaceCreateFlagsMVK x) = showParen (p >= 11) (showString "VkMacOSSurfaceCreateFlagsMVK " . showsPrec 11 x)++instance Read VkMacOSSurfaceCreateFlagsMVK where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkMacOSSurfaceCreateFlagsMVK")+                        v <- step readPrec+                        pure (VkMacOSSurfaceCreateFlagsMVK v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"+pattern VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK :: VkStructureType+pattern VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = VkStructureType 1000123000+-- No documentation found for TopLevel "VK_MVK_MACOS_SURFACE_SPEC_VERSION"+pattern VK_MVK_MACOS_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_MVK_MACOS_SURFACE_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_MVK_MACOS_SURFACE_EXTENSION_NAME"+pattern VK_MVK_MACOS_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_MVK_MACOS_SURFACE_EXTENSION_NAME = "VK_MVK_macos_surface"+-- | vkCreateMacOSSurfaceMVK - Create a VkSurfaceKHR object for a macOS+-- NSView+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance with which to associate the surface.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     'VkMacOSSurfaceCreateInfoMVK' structure containing parameters+--     affecting the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkMacOSSurfaceCreateInfoMVK@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_NATIVE_WINDOW_IN_USE_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'VkMacOSSurfaceCreateInfoMVK',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR'+foreign import ccall "vkCreateMacOSSurfaceMVK" vkCreateMacOSSurfaceMVK :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkMacOSSurfaceCreateInfoMVK) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | VkMacOSSurfaceCreateInfoMVK - Structure specifying parameters of a newly+-- created macOS surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @pView@ /must/ be a valid @NSView@ and /must/ be backed by a+--     @CALayer@ instance of type @CAMetalLayer@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkMacOSSurfaceCreateFlagsMVK',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateMacOSSurfaceMVK'+data VkMacOSSurfaceCreateInfoMVK = VkMacOSSurfaceCreateInfoMVK+  { -- No documentation found for Nested "VkMacOSSurfaceCreateInfoMVK" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkMacOSSurfaceCreateInfoMVK" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkMacOSSurfaceCreateInfoMVK" "vkFlags"+  vkFlags :: VkMacOSSurfaceCreateFlagsMVK+  , -- No documentation found for Nested "VkMacOSSurfaceCreateInfoMVK" "vkPView"+  vkPView :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkMacOSSurfaceCreateInfoMVK where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkMacOSSurfaceCreateInfoMVK <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+                                         <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMacOSSurfaceCreateInfoMVK))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMacOSSurfaceCreateInfoMVK))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkMacOSSurfaceCreateInfoMVK))+                *> poke (ptr `plusPtr` 24) (vkPView (poked :: VkMacOSSurfaceCreateInfoMVK))
+ src/Graphics/Vulkan/Extensions/VK_NN_vi_surface.hs view
@@ -0,0 +1,210 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NN_vi_surface+  ( VkViSurfaceCreateFlagsNN(..)+  , pattern VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN+  , pattern VK_NN_VI_SURFACE_SPEC_VERSION+  , pattern VK_NN_VI_SURFACE_EXTENSION_NAME+  , vkCreateViSurfaceNN+  , VkViSurfaceCreateInfoNN(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkAllocationCallbacks(..)+  , VkInstance+  )+import Graphics.Vulkan.Extensions.VK_KHR_surface+  ( VkSurfaceKHR+  )+++-- ** VkViSurfaceCreateFlagsNN++-- No documentation found for TopLevel "VkViSurfaceCreateFlagsNN"+newtype VkViSurfaceCreateFlagsNN = VkViSurfaceCreateFlagsNN VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkViSurfaceCreateFlagsNN where+  +  showsPrec p (VkViSurfaceCreateFlagsNN x) = showParen (p >= 11) (showString "VkViSurfaceCreateFlagsNN " . showsPrec 11 x)++instance Read VkViSurfaceCreateFlagsNN where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkViSurfaceCreateFlagsNN")+                        v <- step readPrec+                        pure (VkViSurfaceCreateFlagsNN v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"+pattern VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN :: VkStructureType+pattern VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = VkStructureType 1000062000+-- No documentation found for TopLevel "VK_NN_VI_SURFACE_SPEC_VERSION"+pattern VK_NN_VI_SURFACE_SPEC_VERSION :: Integral a => a+pattern VK_NN_VI_SURFACE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NN_VI_SURFACE_EXTENSION_NAME"+pattern VK_NN_VI_SURFACE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NN_VI_SURFACE_EXTENSION_NAME = "VK_NN_vi_surface"+-- | vkCreateViSurfaceNN - Create a+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR' object for a VI+-- layer+--+-- = Parameters+-- #_parameters#+--+-- -   @instance@ is the instance with which to associate the surface.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkViSurfaceCreateInfoNN@ structure containing parameters affecting+--     the creation of the surface object.+--+-- -   @pAllocator@ is the allocator used for host memory allocated for the+--     surface object when there is no more specific allocator available+--     (see <{html_spec_relative}#memory-allocation Memory Allocation>).+--+-- -   @pSurface@ points to a @VkSurfaceKHR@ handle in which the created+--     surface object is returned.+--+-- = Description+-- #_description#+--+-- During the lifetime of a surface created using a particular+-- @nn@::@vi@::@NativeWindowHandle@ any attempts to create another surface+-- for the same @nn@::@vi@::@Layer@ and any attempts to connect to the same+-- @nn@::@vi@::@Layer@ through other platform mechanisms will have+-- undefined results.+--+-- The @currentExtent@ of a VI surface is always undefined. Applications+-- are expected to choose an appropriate size for the swapchain’s+-- @imageExtent@ (e.g., by matching the the result of a call to+-- @nn@::@vi@::@GetDisplayResolution@).+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid @VkInstance@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkViSurfaceCreateInfoNN@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pSurface@ /must/ be a valid pointer to a @VkSurfaceKHR@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_NATIVE_WINDOW_IN_USE_KHR@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkInstance',+-- 'Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceKHR',+-- 'VkViSurfaceCreateInfoNN'+foreign import ccall "vkCreateViSurfaceNN" vkCreateViSurfaceNN :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkViSurfaceCreateInfoNN) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult+-- | VkViSurfaceCreateInfoNN - Structure specifying parameters of a newly+-- created VI surface object+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @window@ /must/ be a valid @nn@::@vi@::@NativeWindowHandle@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkViSurfaceCreateFlagsNN', 'vkCreateViSurfaceNN'+data VkViSurfaceCreateInfoNN = VkViSurfaceCreateInfoNN+  { -- No documentation found for Nested "VkViSurfaceCreateInfoNN" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkViSurfaceCreateInfoNN" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkViSurfaceCreateInfoNN" "vkFlags"+  vkFlags :: VkViSurfaceCreateFlagsNN+  , -- No documentation found for Nested "VkViSurfaceCreateInfoNN" "vkWindow"+  vkWindow :: Ptr ()+  }+  deriving (Eq, Show)++instance Storable VkViSurfaceCreateInfoNN where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkViSurfaceCreateInfoNN <$> peek (ptr `plusPtr` 0)+                                     <*> peek (ptr `plusPtr` 8)+                                     <*> peek (ptr `plusPtr` 16)+                                     <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkViSurfaceCreateInfoNN))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkViSurfaceCreateInfoNN))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkViSurfaceCreateInfoNN))+                *> poke (ptr `plusPtr` 24) (vkWindow (poked :: VkViSurfaceCreateInfoNN))
+ src/Graphics/Vulkan/Extensions/VK_NVX_device_generated_commands.hs view
@@ -0,0 +1,1907 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands+  ( VkIndirectCommandsTokenTypeNVX(..)+  , pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX+  , pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX+  , pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX+  , pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX+  , pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX+  , pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX+  , pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX+  , pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX+  , VkObjectEntryTypeNVX(..)+  , pattern VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX+  , pattern VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX+  , pattern VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX+  , pattern VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX+  , pattern VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX+  , VkIndirectCommandsLayoutUsageFlagBitsNVX(..)+  , pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX+  , pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX+  , pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX+  , pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX+  , VkObjectEntryUsageFlagBitsNVX(..)+  , pattern VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX+  , pattern VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX+  , pattern VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX+  , pattern VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX+  , pattern VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX+  , pattern VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX+  , pattern VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX+  , pattern VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX+  , pattern VK_OBJECT_TYPE_OBJECT_TABLE_NVX+  , pattern VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX+  , pattern VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX+  , pattern VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX+  , pattern VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX+  , pattern VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION+  , pattern VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME+  , VkObjectTableNVX+  , VkIndirectCommandsLayoutNVX+  , vkCmdProcessCommandsNVX+  , vkCmdReserveSpaceForCommandsNVX+  , vkCreateIndirectCommandsLayoutNVX+  , vkDestroyIndirectCommandsLayoutNVX+  , vkCreateObjectTableNVX+  , vkDestroyObjectTableNVX+  , vkRegisterObjectsNVX+  , vkUnregisterObjectsNVX+  , vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX+  , VkDeviceGeneratedCommandsFeaturesNVX(..)+  , VkDeviceGeneratedCommandsLimitsNVX(..)+  , VkIndirectCommandsTokenNVX(..)+  , VkIndirectCommandsLayoutTokenNVX(..)+  , VkIndirectCommandsLayoutCreateInfoNVX(..)+  , VkCmdProcessCommandsInfoNVX(..)+  , VkCmdReserveSpaceForCommandsInfoNVX(..)+  , VkObjectTableCreateInfoNVX(..)+  , VkObjectTableEntryNVX(..)+  , VkObjectTablePipelineEntryNVX(..)+  , VkObjectTableDescriptorSetEntryNVX(..)+  , VkObjectTableVertexBufferEntryNVX(..)+  , VkObjectTableIndexBufferEntryNVX(..)+  , VkObjectTablePushConstantEntryNVX(..)+  , VkIndirectCommandsLayoutUsageFlagsNVX+  , VkObjectEntryUsageFlagsNVX+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.CommandBufferBuilding+  ( VkIndexType(..)+  )+import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkResult(..)+  , VkObjectType(..)+  , VkStructureType(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DescriptorSet+  ( VkDescriptorSet+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDeviceSize+  , VkPhysicalDevice+  , VkAllocationCallbacks(..)+  , VkDevice+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  )+import Graphics.Vulkan.Core10.Pass+  ( VkPipelineBindPoint(..)+  , VkAccessFlagBits(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkPipelineLayout+  , VkPipeline+  )+import Graphics.Vulkan.Core10.PipelineLayout+  ( VkShaderStageFlags+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  , VkPipelineStageFlagBits(..)+  )+++-- ** VkIndirectCommandsTokenTypeNVX++-- | VkIndirectCommandsTokenTypeNVX - Enum specifying+--+-- = Description+-- #_description#+--+-- > +-----------------------------------------------+----------------------++-- > | Token type                                    | Equivalent command   |+-- > +===============================================+======================++-- > | @VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX | @vkCmdBindPipeline@  |+-- > | @                                             |                      |+-- > +-----------------------------------------------+----------------------++-- > | @VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_S | @vkCmdBindDescriptor |+-- > | ET_NVX@                                       | Sets@                |+-- > +-----------------------------------------------+----------------------++-- > | @VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER | @vkCmdBindIndexBuffe |+-- > | _NVX@                                         | r@                   |+-- > +-----------------------------------------------+----------------------++-- > | @VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFE | @vkCmdBindVertexBuff |+-- > | R_NVX@                                        | ers@                 |+-- > +-----------------------------------------------+----------------------++-- > | @VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTAN | @vkCmdPushConstants@ |+-- > | T_NVX@                                        |                      |+-- > +-----------------------------------------------+----------------------++-- > | @VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED | @vkCmdDrawIndexedInd |+-- > | _NVX@                                         | irect@               |+-- > +-----------------------------------------------+----------------------++-- > | @VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX@    | @vkCmdDrawIndirect@  |+-- > +-----------------------------------------------+----------------------++-- > | @VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX | @vkCmdDispatchIndire |+-- > | @                                             | ct@                  |+-- > +-----------------------------------------------+----------------------++-- >+-- > Supported indirect command tokens+--+-- = See Also+-- #_see_also#+--+-- 'VkIndirectCommandsLayoutTokenNVX', 'VkIndirectCommandsTokenNVX'+newtype VkIndirectCommandsTokenTypeNVX = VkIndirectCommandsTokenTypeNVX Int32+  deriving (Eq, Ord, Storable)++instance Show VkIndirectCommandsTokenTypeNVX where+  showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX"+  showsPrec p (VkIndirectCommandsTokenTypeNVX x) = showParen (p >= 11) (showString "VkIndirectCommandsTokenTypeNVX " . showsPrec 11 x)++instance Read VkIndirectCommandsTokenTypeNVX where+  readPrec = parens ( choose [ ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX",       pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX)+                             , ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX", pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX)+                             , ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX",   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX)+                             , ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX",  pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX)+                             , ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX",  pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX)+                             , ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX",   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX)+                             , ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX",           pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX)+                             , ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX",       pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkIndirectCommandsTokenTypeNVX")+                        v <- step readPrec+                        pure (VkIndirectCommandsTokenTypeNVX v)+                        )+                    )++-- No documentation found for Nested "VkIndirectCommandsTokenTypeNVX" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX"+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX :: VkIndirectCommandsTokenTypeNVX+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = VkIndirectCommandsTokenTypeNVX 0++-- No documentation found for Nested "VkIndirectCommandsTokenTypeNVX" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX"+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX :: VkIndirectCommandsTokenTypeNVX+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = VkIndirectCommandsTokenTypeNVX 1++-- No documentation found for Nested "VkIndirectCommandsTokenTypeNVX" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX"+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX :: VkIndirectCommandsTokenTypeNVX+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = VkIndirectCommandsTokenTypeNVX 2++-- No documentation found for Nested "VkIndirectCommandsTokenTypeNVX" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX"+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX :: VkIndirectCommandsTokenTypeNVX+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = VkIndirectCommandsTokenTypeNVX 3++-- No documentation found for Nested "VkIndirectCommandsTokenTypeNVX" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX"+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX :: VkIndirectCommandsTokenTypeNVX+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = VkIndirectCommandsTokenTypeNVX 4++-- No documentation found for Nested "VkIndirectCommandsTokenTypeNVX" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX"+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX :: VkIndirectCommandsTokenTypeNVX+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = VkIndirectCommandsTokenTypeNVX 5++-- No documentation found for Nested "VkIndirectCommandsTokenTypeNVX" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX"+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX :: VkIndirectCommandsTokenTypeNVX+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = VkIndirectCommandsTokenTypeNVX 6++-- No documentation found for Nested "VkIndirectCommandsTokenTypeNVX" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX"+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX :: VkIndirectCommandsTokenTypeNVX+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = VkIndirectCommandsTokenTypeNVX 7+-- ** VkObjectEntryTypeNVX++-- | VkObjectEntryTypeNVX - Enum specifying object table entry type+--+-- = See Also+-- #_see_also#+--+-- 'VkObjectTableCreateInfoNVX', 'VkObjectTableDescriptorSetEntryNVX',+-- 'VkObjectTableEntryNVX', 'VkObjectTableIndexBufferEntryNVX',+-- 'VkObjectTablePipelineEntryNVX', 'VkObjectTablePushConstantEntryNVX',+-- 'VkObjectTableVertexBufferEntryNVX', 'vkUnregisterObjectsNVX'+newtype VkObjectEntryTypeNVX = VkObjectEntryTypeNVX Int32+  deriving (Eq, Ord, Storable)++instance Show VkObjectEntryTypeNVX where+  showsPrec _ VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = showString "VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX"+  showsPrec _ VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = showString "VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX"+  showsPrec _ VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = showString "VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX"+  showsPrec _ VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = showString "VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX"+  showsPrec _ VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = showString "VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX"+  showsPrec p (VkObjectEntryTypeNVX x) = showParen (p >= 11) (showString "VkObjectEntryTypeNVX " . showsPrec 11 x)++instance Read VkObjectEntryTypeNVX where+  readPrec = parens ( choose [ ("VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX", pure VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX)+                             , ("VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX",       pure VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX)+                             , ("VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX",   pure VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX)+                             , ("VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX",  pure VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX)+                             , ("VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX",  pure VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkObjectEntryTypeNVX")+                        v <- step readPrec+                        pure (VkObjectEntryTypeNVX v)+                        )+                    )++-- | @VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX@ specifies a @VkDescriptorSet@+-- resource entry that is registered via+-- @VkObjectTableDescriptorSetEntryNVX@.+pattern VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX :: VkObjectEntryTypeNVX+pattern VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = VkObjectEntryTypeNVX 0++-- | @VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX@ specifies a @VkPipeline@ resource+-- entry that is registered via @VkObjectTablePipelineEntryNVX@.+pattern VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX :: VkObjectEntryTypeNVX+pattern VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = VkObjectEntryTypeNVX 1++-- | @VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX@ specifies a @VkBuffer@ resource+-- entry that is registered via @VkObjectTableIndexBufferEntryNVX@.+pattern VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX :: VkObjectEntryTypeNVX+pattern VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = VkObjectEntryTypeNVX 2++-- | @VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX@ specifies a @VkBuffer@ resource+-- entry that is registered via @VkObjectTableVertexBufferEntryNVX@.+pattern VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX :: VkObjectEntryTypeNVX+pattern VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = VkObjectEntryTypeNVX 3++-- | @VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX@ specifies the resource entry is+-- registered via @VkObjectTablePushConstantEntryNVX@.+pattern VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX :: VkObjectEntryTypeNVX+pattern VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = VkObjectEntryTypeNVX 4+-- ** VkIndirectCommandsLayoutUsageFlagBitsNVX++-- | VkIndirectCommandsLayoutUsageFlagBitsNVX - Bitmask specifying allowed+-- usage of a indirect commands layout+--+-- = See Also+-- #_see_also#+--+-- 'VkIndirectCommandsLayoutUsageFlagsNVX'+newtype VkIndirectCommandsLayoutUsageFlagBitsNVX = VkIndirectCommandsLayoutUsageFlagBitsNVX VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkIndirectCommandsLayoutUsageFlagBitsNVX where+  showsPrec _ VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = showString "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = showString "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = showString "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX"+  showsPrec _ VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = showString "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX"+  showsPrec p (VkIndirectCommandsLayoutUsageFlagBitsNVX x) = showParen (p >= 11) (showString "VkIndirectCommandsLayoutUsageFlagBitsNVX " . showsPrec 11 x)++instance Read VkIndirectCommandsLayoutUsageFlagBitsNVX where+  readPrec = parens ( choose [ ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX", pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX)+                             , ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX",    pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX)+                             , ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX",    pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX)+                             , ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX",   pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkIndirectCommandsLayoutUsageFlagBitsNVX")+                        v <- step readPrec+                        pure (VkIndirectCommandsLayoutUsageFlagBitsNVX v)+                        )+                    )++-- | @VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX@+-- specifies that the processing of sequences /can/ happen at an+-- implementation-dependent order, which is not guaranteed to be coherent+-- across multiple invocations.+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX :: VkIndirectCommandsLayoutUsageFlagBitsNVX+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = VkIndirectCommandsLayoutUsageFlagBitsNVX 0x00000001++-- | @VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX@ specifies+-- that there is likely a high difference between allocated number of+-- sequences and actually used.+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX :: VkIndirectCommandsLayoutUsageFlagBitsNVX+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = VkIndirectCommandsLayoutUsageFlagBitsNVX 0x00000002++-- | @VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX@ specifies+-- that there are likely many draw or dispatch calls that are zero-sized+-- (zero grid dimension, no primitives to render).+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX :: VkIndirectCommandsLayoutUsageFlagBitsNVX+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = VkIndirectCommandsLayoutUsageFlagBitsNVX 0x00000004++-- | @VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX@ specifies+-- that the input data for the sequences is not implicitly indexed from+-- 0..sequencesUsed but a user provided @VkBuffer@ encoding the index is+-- provided.+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX :: VkIndirectCommandsLayoutUsageFlagBitsNVX+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = VkIndirectCommandsLayoutUsageFlagBitsNVX 0x00000008+-- ** VkObjectEntryUsageFlagBitsNVX++-- | VkObjectEntryUsageFlagBitsNVX - Bitmask specifying allowed usage of an+-- object entry+--+-- = See Also+-- #_see_also#+--+-- 'VkObjectEntryUsageFlagsNVX'+newtype VkObjectEntryUsageFlagBitsNVX = VkObjectEntryUsageFlagBitsNVX VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkObjectEntryUsageFlagBitsNVX where+  showsPrec _ VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = showString "VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX"+  showsPrec _ VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = showString "VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX"+  showsPrec p (VkObjectEntryUsageFlagBitsNVX x) = showParen (p >= 11) (showString "VkObjectEntryUsageFlagBitsNVX " . showsPrec 11 x)++instance Read VkObjectEntryUsageFlagBitsNVX where+  readPrec = parens ( choose [ ("VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX", pure VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX)+                             , ("VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX",  pure VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkObjectEntryUsageFlagBitsNVX")+                        v <- step readPrec+                        pure (VkObjectEntryUsageFlagBitsNVX v)+                        )+                    )++-- | @VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX@ specifies that the resource is+-- bound to @VK_PIPELINE_BIND_POINT_GRAPHICS@+pattern VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX :: VkObjectEntryUsageFlagBitsNVX+pattern VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = VkObjectEntryUsageFlagBitsNVX 0x00000001++-- | @VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX@ specifies that the resource is+-- bound to @VK_PIPELINE_BIND_POINT_COMPUTE@+pattern VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX :: VkObjectEntryUsageFlagBitsNVX+pattern VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = VkObjectEntryUsageFlagBitsNVX 0x00000002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX"+pattern VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX :: VkStructureType+pattern VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = VkStructureType 1000086000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX"+pattern VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX :: VkStructureType+pattern VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = VkStructureType 1000086001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX"+pattern VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX :: VkStructureType+pattern VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = VkStructureType 1000086002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX"+pattern VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX :: VkStructureType+pattern VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = VkStructureType 1000086003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX"+pattern VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = VkStructureType 1000086004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX"+pattern VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = VkStructureType 1000086005+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_OBJECT_TABLE_NVX"+pattern VK_OBJECT_TYPE_OBJECT_TABLE_NVX :: VkObjectType+pattern VK_OBJECT_TYPE_OBJECT_TABLE_NVX = VkObjectType 1000086000+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX"+pattern VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX :: VkObjectType+pattern VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = VkObjectType 1000086001+-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX"+pattern VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX :: VkAccessFlagBits+pattern VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = VkAccessFlagBits 0x00020000+-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX"+pattern VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX :: VkAccessFlagBits+pattern VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = VkAccessFlagBits 0x00040000+-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX"+pattern VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX :: VkPipelineStageFlagBits+pattern VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = VkPipelineStageFlagBits 0x00020000+-- No documentation found for TopLevel "VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION"+pattern VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION :: Integral a => a+pattern VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION = 3+-- No documentation found for TopLevel "VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME"+pattern VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME = "VK_NVX_device_generated_commands"+-- | Dummy data to tag the 'Ptr' with+data VkObjectTableNVX_T+-- | VkObjectTableNVX - Opaque handle to an object table+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkCmdProcessCommandsInfoNVX', 'VkCmdReserveSpaceForCommandsInfoNVX',+-- 'vkCreateObjectTableNVX', 'vkDestroyObjectTableNVX',+-- 'vkRegisterObjectsNVX', 'vkUnregisterObjectsNVX'+type VkObjectTableNVX = Ptr VkObjectTableNVX_T+-- | Dummy data to tag the 'Ptr' with+data VkIndirectCommandsLayoutNVX_T+-- | VkIndirectCommandsLayoutNVX - Opaque handle to an indirect commands+-- layout object+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkCmdProcessCommandsInfoNVX', 'VkCmdReserveSpaceForCommandsInfoNVX',+-- 'vkCreateIndirectCommandsLayoutNVX',+-- 'vkDestroyIndirectCommandsLayoutNVX'+type VkIndirectCommandsLayoutNVX = Ptr VkIndirectCommandsLayoutNVX_T+-- | vkCmdProcessCommandsNVX - Performs the generation of commands on the+-- device+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the primary command buffer in which the+--     generation process takes space.+--+-- -   @pProcessCommandsInfo@ is a pointer to an instance of the+--     'VkCmdProcessCommandsInfoNVX' structure containing parameters+--     affecting the processing of commands.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pProcessCommandsInfo@ /must/ be a valid pointer to a valid+--     @VkCmdProcessCommandsInfoNVX@ structure+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Inside          | Graphics        |                 |+-- > | Secondary       |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkCmdProcessCommandsInfoNVX',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdProcessCommandsNVX" vkCmdProcessCommandsNVX :: ("commandBuffer" ::: VkCommandBuffer) -> ("pProcessCommandsInfo" ::: Ptr VkCmdProcessCommandsInfoNVX) -> IO ()+-- | vkCmdReserveSpaceForCommandsNVX - Perform a reservation of command+-- buffer space+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the secondary command buffer in which the space+--     for device-generated commands is reserved.+--+-- -   @pProcessCommandsInfo@ is a pointer to an instance of the+--     'vkCmdReserveSpaceForCommandsNVX' structure containing parameters+--     affecting the reservation of command buffer space.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The provided @commandBuffer@ /must/ not have had a prior space+--     reservation since its creation or the last reset.+--+-- -   The state of the @commandBuffer@ /must/ be legal to execute all+--     commands within the sequence provided by the+--     @indirectCommandsLayout@ member of @pProcessCommandsInfo@.+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pReserveSpaceInfo@ /must/ be a valid pointer to a valid+--     @VkCmdReserveSpaceForCommandsInfoNVX@ structure+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics, or compute operations+--+-- -   This command /must/ only be called inside of a render pass instance+--+-- -   @commandBuffer@ /must/ be a secondary @VkCommandBuffer@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Secondary       | Inside          | Graphics        |                 |+-- > |                 |                 | Compute         |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'VkCmdReserveSpaceForCommandsInfoNVX',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer'+foreign import ccall "vkCmdReserveSpaceForCommandsNVX" vkCmdReserveSpaceForCommandsNVX :: ("commandBuffer" ::: VkCommandBuffer) -> ("pReserveSpaceInfo" ::: Ptr VkCmdReserveSpaceForCommandsInfoNVX) -> IO ()+-- | vkCreateIndirectCommandsLayoutNVX - Create an indirect command layout+-- object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the indirect command+--     layout.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkIndirectCommandsLayoutCreateInfoNVX@ structure containing+--     parameters affecting creation of the indirect command layout.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pIndirectCommandsLayout@ points to a @VkIndirectCommandsLayoutNVX@+--     handle in which the resulting indirect command layout is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkIndirectCommandsLayoutCreateInfoNVX@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pIndirectCommandsLayout@ /must/ be a valid pointer to a+--     @VkIndirectCommandsLayoutNVX@ handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkIndirectCommandsLayoutCreateInfoNVX', 'VkIndirectCommandsLayoutNVX'+foreign import ccall "vkCreateIndirectCommandsLayoutNVX" vkCreateIndirectCommandsLayoutNVX :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkIndirectCommandsLayoutCreateInfoNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pIndirectCommandsLayout" ::: Ptr VkIndirectCommandsLayoutNVX) -> IO VkResult+-- | vkDestroyIndirectCommandsLayoutNVX - Destroy a object table+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the layout.+--+-- -   @indirectCommandsLayout@ is the table to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @indirectCommandsLayout@ /must/+--     have completed execution+--+-- -   If @VkAllocationCallbacks@ were provided when @objectTable@ was+--     created, a compatible set of callbacks /must/ be provided here+--+-- -   If no @VkAllocationCallbacks@ were provided when @objectTable@ was+--     created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @indirectCommandsLayout@ /must/ be a valid+--     @VkIndirectCommandsLayoutNVX@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @indirectCommandsLayout@ /must/ have been created, allocated, or+--     retrieved from @device@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkIndirectCommandsLayoutNVX'+foreign import ccall "vkDestroyIndirectCommandsLayoutNVX" vkDestroyIndirectCommandsLayoutNVX :: ("device" ::: VkDevice) -> ("indirectCommandsLayout" ::: VkIndirectCommandsLayoutNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkCreateObjectTableNVX - Create an object table+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the object table.+--+-- -   @pCreateInfo@ is a pointer to an instance of the+--     @VkObjectTableCreateInfoNVX@ structure containing parameters+--     affecting creation of the table.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- -   @pObjectTable@ points to a @VkObjectTableNVX@ handle in which the+--     resulting object table is returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     @VkObjectTableCreateInfoNVX@ structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @pObjectTable@ /must/ be a valid pointer to a @VkObjectTableNVX@+--     handle+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkObjectTableCreateInfoNVX', 'VkObjectTableNVX'+foreign import ccall "vkCreateObjectTableNVX" vkCreateObjectTableNVX :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkObjectTableCreateInfoNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pObjectTable" ::: Ptr VkObjectTableNVX) -> IO VkResult+-- | vkDestroyObjectTableNVX - Destroy a object table+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that destroys the table.+--+-- -   @objectTable@ is the table to destroy.+--+-- -   @pAllocator@ controls host memory allocation as described in the+--     <{html_spec_relative}#memory-allocation Memory Allocation> chapter.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   All submitted commands that refer to @objectTable@ /must/ have+--     completed execution.+--+-- -   If @VkAllocationCallbacks@ were provided when @objectTable@ was+--     created, a compatible set of callbacks /must/ be provided here.+--+-- -   If no @VkAllocationCallbacks@ were provided when @objectTable@ was+--     created, @pAllocator@ /must/ be @NULL@.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @objectTable@ /must/ be a valid @VkObjectTableNVX@ handle+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid @VkAllocationCallbacks@ structure+--+-- -   @objectTable@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @objectTable@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkObjectTableNVX'+foreign import ccall "vkDestroyObjectTableNVX" vkDestroyObjectTableNVX :: ("device" ::: VkDevice) -> ("objectTable" ::: VkObjectTableNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()+-- | vkRegisterObjectsNVX - Register resource bindings in an object table+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the object table.+--+-- -   @objectTable@ is the table for which the resources are registered.+--+-- -   @objectCount@ is the number of resources to register.+--+-- -   @ppObjectTableEntries@ provides an array for detailed binding+--     informations, each array element is a pointer to a struct of type+--     @VkObjectTablePipelineEntryNVX@,+--     @VkObjectTableDescriptorSetEntryNVX@,+--     @VkObjectTableVertexBufferEntryNVX@,+--     @VkObjectTableIndexBufferEntryNVX@ or+--     @VkObjectTablePushConstantEntryNVX@ (see below for details).+--+-- -   @pObjectIndices@ are the indices at which each resource is+--     registered.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The contents of @pObjectTableEntry@ /must/ yield plausible bindings+--     supported by the device.+--+-- -   At any @pObjectIndices@ there /must/ not be a registered resource+--     already.+--+-- -   Any value inside @pObjectIndices@ /must/ be below the appropriate+--     @VkObjectTableCreateInfoNVX@::@pObjectEntryCounts@ limits provided+--     at @objectTable@ creation time.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @objectTable@ /must/ be a valid @VkObjectTableNVX@ handle+--+-- -   @ppObjectTableEntries@ /must/ be a valid pointer to an array of+--     @objectCount@ valid @VkObjectTableEntryNVX@ structures+--+-- -   @pObjectIndices@ /must/ be a valid pointer to an array of+--     @objectCount@ @uint32_t@ values+--+-- -   @objectCount@ /must/ be greater than @0@+--+-- -   @objectTable@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @objectTable@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkObjectTableEntryNVX', 'VkObjectTableNVX'+foreign import ccall "vkRegisterObjectsNVX" vkRegisterObjectsNVX :: ("device" ::: VkDevice) -> ("objectTable" ::: VkObjectTableNVX) -> ("objectCount" ::: Word32) -> ("ppObjectTableEntries" ::: Ptr (Ptr VkObjectTableEntryNVX)) -> ("pObjectIndices" ::: Ptr Word32) -> IO VkResult+-- | vkUnregisterObjectsNVX - Unregister resource bindings in an object table+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that creates the object table.+--+-- -   @objectTable@ is the table from which the resources are+--     unregistered.+--+-- -   @objectCount@ is the number of resources being removed from the+--     object table.+--+-- -   @pObjectEntryType@ provides an array of @VkObjectEntryTypeNVX@ for+--     the resources being removed.+--+-- -   @pObjectIndices@ provides the array of object indices to be removed.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   At any @pObjectIndices@ there /must/ be a registered resource+--     already.+--+-- -   The @pObjectEntryTypes@ of the resource at @pObjectIndices@ /must/+--     match.+--+-- -   All operations on the device using the registered resource /must/+--     have been completed.+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @objectTable@ /must/ be a valid @VkObjectTableNVX@ handle+--+-- -   @pObjectEntryTypes@ /must/ be a valid pointer to an array of+--     @objectCount@ valid 'VkObjectEntryTypeNVX' values+--+-- -   @pObjectIndices@ /must/ be a valid pointer to an array of+--     @objectCount@ @uint32_t@ values+--+-- -   @objectCount@ /must/ be greater than @0@+--+-- -   @objectTable@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @objectTable@ /must/ be externally synchronized+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'VkObjectEntryTypeNVX', 'VkObjectTableNVX'+foreign import ccall "vkUnregisterObjectsNVX" vkUnregisterObjectsNVX :: ("device" ::: VkDevice) -> ("objectTable" ::: VkObjectTableNVX) -> ("objectCount" ::: Word32) -> ("pObjectEntryTypes" ::: Ptr VkObjectEntryTypeNVX) -> ("pObjectIndices" ::: Ptr Word32) -> IO VkResult+-- | vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX - Returns+-- device-generated commands related properties of a physical device+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the handle to the physical device whose+--     properties will be queried.+--+-- -   @pFeatures@ points to an instance of the+--     'VkDeviceGeneratedCommandsFeaturesNVX' structure, that will be+--     filled with returned information.+--+-- -   @pLimits@ points to an instance of the+--     'VkDeviceGeneratedCommandsLimitsNVX' structure, that will be filled+--     with returned information.+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @pFeatures@ /must/ be a valid pointer to a+--     @VkDeviceGeneratedCommandsFeaturesNVX@ structure+--+-- -   @pLimits@ /must/ be a valid pointer to a+--     @VkDeviceGeneratedCommandsLimitsNVX@ structure+--+-- = See Also+-- #_see_also#+--+-- 'VkDeviceGeneratedCommandsFeaturesNVX',+-- 'VkDeviceGeneratedCommandsLimitsNVX',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX" vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkDeviceGeneratedCommandsFeaturesNVX) -> ("pLimits" ::: Ptr VkDeviceGeneratedCommandsLimitsNVX) -> IO ()+-- | VkDeviceGeneratedCommandsFeaturesNVX - Structure specifying physical+-- device support+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX@+--+-- -   @pNext@ /must/ be @NULL@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX'+data VkDeviceGeneratedCommandsFeaturesNVX = VkDeviceGeneratedCommandsFeaturesNVX+  { -- No documentation found for Nested "VkDeviceGeneratedCommandsFeaturesNVX" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGeneratedCommandsFeaturesNVX" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGeneratedCommandsFeaturesNVX" "vkComputeBindingPointSupport"+  vkComputeBindingPointSupport :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkDeviceGeneratedCommandsFeaturesNVX where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDeviceGeneratedCommandsFeaturesNVX <$> peek (ptr `plusPtr` 0)+                                                  <*> peek (ptr `plusPtr` 8)+                                                  <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGeneratedCommandsFeaturesNVX))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGeneratedCommandsFeaturesNVX))+                *> poke (ptr `plusPtr` 16) (vkComputeBindingPointSupport (poked :: VkDeviceGeneratedCommandsFeaturesNVX))+-- | VkDeviceGeneratedCommandsLimitsNVX - Structure specifying physical+-- device limits+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX@+--+-- -   @pNext@ /must/ be @NULL@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX'+data VkDeviceGeneratedCommandsLimitsNVX = VkDeviceGeneratedCommandsLimitsNVX+  { -- No documentation found for Nested "VkDeviceGeneratedCommandsLimitsNVX" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDeviceGeneratedCommandsLimitsNVX" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDeviceGeneratedCommandsLimitsNVX" "vkMaxIndirectCommandsLayoutTokenCount"+  vkMaxIndirectCommandsLayoutTokenCount :: Word32+  , -- No documentation found for Nested "VkDeviceGeneratedCommandsLimitsNVX" "vkMaxObjectEntryCounts"+  vkMaxObjectEntryCounts :: Word32+  , -- No documentation found for Nested "VkDeviceGeneratedCommandsLimitsNVX" "vkMinSequenceCountBufferOffsetAlignment"+  vkMinSequenceCountBufferOffsetAlignment :: Word32+  , -- No documentation found for Nested "VkDeviceGeneratedCommandsLimitsNVX" "vkMinSequenceIndexBufferOffsetAlignment"+  vkMinSequenceIndexBufferOffsetAlignment :: Word32+  , -- No documentation found for Nested "VkDeviceGeneratedCommandsLimitsNVX" "vkMinCommandsTokenBufferOffsetAlignment"+  vkMinCommandsTokenBufferOffsetAlignment :: Word32+  }+  deriving (Eq, Show)++instance Storable VkDeviceGeneratedCommandsLimitsNVX where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkDeviceGeneratedCommandsLimitsNVX <$> peek (ptr `plusPtr` 0)+                                                <*> peek (ptr `plusPtr` 8)+                                                <*> peek (ptr `plusPtr` 16)+                                                <*> peek (ptr `plusPtr` 20)+                                                <*> peek (ptr `plusPtr` 24)+                                                <*> peek (ptr `plusPtr` 28)+                                                <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceGeneratedCommandsLimitsNVX))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceGeneratedCommandsLimitsNVX))+                *> poke (ptr `plusPtr` 16) (vkMaxIndirectCommandsLayoutTokenCount (poked :: VkDeviceGeneratedCommandsLimitsNVX))+                *> poke (ptr `plusPtr` 20) (vkMaxObjectEntryCounts (poked :: VkDeviceGeneratedCommandsLimitsNVX))+                *> poke (ptr `plusPtr` 24) (vkMinSequenceCountBufferOffsetAlignment (poked :: VkDeviceGeneratedCommandsLimitsNVX))+                *> poke (ptr `plusPtr` 28) (vkMinSequenceIndexBufferOffsetAlignment (poked :: VkDeviceGeneratedCommandsLimitsNVX))+                *> poke (ptr `plusPtr` 32) (vkMinCommandsTokenBufferOffsetAlignment (poked :: VkDeviceGeneratedCommandsLimitsNVX))+-- | VkIndirectCommandsTokenNVX - Structure specifying parameters for the+-- reservation of command buffer space+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The @buffer@’s usage flag /must/ have the+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set.+--+-- -   The @offset@ /must/ be aligned to+--     @VkDeviceGeneratedCommandsLimitsNVX@::@minCommandsTokenBufferOffsetAlignment@.+--+-- == Valid Usage (Implicit)+--+-- -   @tokenType@ /must/ be a valid 'VkIndirectCommandsTokenTypeNVX' value+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'VkCmdProcessCommandsInfoNVX', @VkDeviceSize@,+-- 'VkIndirectCommandsTokenTypeNVX'+data VkIndirectCommandsTokenNVX = VkIndirectCommandsTokenNVX+  { -- No documentation found for Nested "VkIndirectCommandsTokenNVX" "vkTokenType"+  vkTokenType :: VkIndirectCommandsTokenTypeNVX+  , -- No documentation found for Nested "VkIndirectCommandsTokenNVX" "vkBuffer"+  vkBuffer :: VkBuffer+  , -- No documentation found for Nested "VkIndirectCommandsTokenNVX" "vkOffset"+  vkOffset :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkIndirectCommandsTokenNVX where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkIndirectCommandsTokenNVX <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkTokenType (poked :: VkIndirectCommandsTokenNVX))+                *> poke (ptr `plusPtr` 8) (vkBuffer (poked :: VkIndirectCommandsTokenNVX))+                *> poke (ptr `plusPtr` 16) (vkOffset (poked :: VkIndirectCommandsTokenNVX))+-- | VkIndirectCommandsLayoutTokenNVX - Struct specifying the details of an+-- indirect command layout token+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @bindingUnit@ /must/ stay within device supported limits for the+--     appropriate commands.+--+-- -   @dynamicCount@ /must/ stay within device supported limits for the+--     appropriate commands.+--+-- -   @divisor@ /must/ be greater than @0@ and a power of two.+--+-- == Valid Usage (Implicit)+--+-- -   @tokenType@ /must/ be a valid 'VkIndirectCommandsTokenTypeNVX' value+--+-- = See Also+-- #_see_also#+--+-- 'VkIndirectCommandsLayoutCreateInfoNVX',+-- 'VkIndirectCommandsTokenTypeNVX'+data VkIndirectCommandsLayoutTokenNVX = VkIndirectCommandsLayoutTokenNVX+  { -- No documentation found for Nested "VkIndirectCommandsLayoutTokenNVX" "vkTokenType"+  vkTokenType :: VkIndirectCommandsTokenTypeNVX+  , -- No documentation found for Nested "VkIndirectCommandsLayoutTokenNVX" "vkBindingUnit"+  vkBindingUnit :: Word32+  , -- No documentation found for Nested "VkIndirectCommandsLayoutTokenNVX" "vkDynamicCount"+  vkDynamicCount :: Word32+  , -- No documentation found for Nested "VkIndirectCommandsLayoutTokenNVX" "vkDivisor"+  vkDivisor :: Word32+  }+  deriving (Eq, Show)++instance Storable VkIndirectCommandsLayoutTokenNVX where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek ptr = VkIndirectCommandsLayoutTokenNVX <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 4)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 12)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkTokenType (poked :: VkIndirectCommandsLayoutTokenNVX))+                *> poke (ptr `plusPtr` 4) (vkBindingUnit (poked :: VkIndirectCommandsLayoutTokenNVX))+                *> poke (ptr `plusPtr` 8) (vkDynamicCount (poked :: VkIndirectCommandsLayoutTokenNVX))+                *> poke (ptr `plusPtr` 12) (vkDivisor (poked :: VkIndirectCommandsLayoutTokenNVX))+-- | VkIndirectCommandsLayoutCreateInfoNVX - Structure specifying the+-- parameters of a newly created indirect commands layout object+--+-- = Description+-- #_description#+--+-- The following code illustrates some of the key flags:+--+-- > void cmdProcessAllSequences(cmd, objectTable, indirectCommandsLayout, pIndirectCommandsTokens, sequencesCount, indexbuffer, indexbufferoffset)+-- > {+-- >   for (s = 0; s < sequencesCount; s++)+-- >   {+-- >     sequence = s;+-- >+-- >     if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX) {+-- >       sequence = incoherent_implementation_dependent_permutation[ sequence ];+-- >     }+-- >     if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX) {+-- >       sequence = indexbuffer.load_uint32( sequence * sizeof(uint32_t) + indexbufferoffset);+-- >     }+-- >+-- >     cmdProcessSequence( cmd, objectTable, indirectCommandsLayout, pIndirectCommandsTokens, sequence );+-- >   }+-- > }+--+-- == Valid Usage+--+-- -   @tokenCount@ /must/ be greater than @0@ and below+--     @VkDeviceGeneratedCommandsLimitsNVX@::@maxIndirectCommandsLayoutTokenCount@+--+-- -   If the+--     @VkDeviceGeneratedCommandsFeaturesNVX@::@computeBindingPointSupport@+--     feature is not enabled, then @pipelineBindPoint@ /must/ not be+--     @VK_PIPELINE_BIND_POINT_COMPUTE@+--+-- -   If @pTokens@ contains an entry of+--     @VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX@ it /must/ be the+--     first element of the array and there /must/ be only a single element+--     of such token type.+--+-- -   All state binding tokens in @pTokens@ /must/ occur prior work+--     provoking tokens (@VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX@,+--     @VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX@,+--     @VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX@).+--+-- -   The content of @pTokens@ /must/ include one single work provoking+--     token that is compatible with the @pipelineBindPoint@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @pipelineBindPoint@ /must/ be a valid+--     'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint' value+--+-- -   @flags@ /must/ be a valid combination of+--     'VkIndirectCommandsLayoutUsageFlagBitsNVX' values+--+-- -   @flags@ /must/ not be @0@+--+-- -   @pTokens@ /must/ be a valid pointer to an array of @tokenCount@+--     valid @VkIndirectCommandsLayoutTokenNVX@ structures+--+-- -   @tokenCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkIndirectCommandsLayoutTokenNVX',+-- 'VkIndirectCommandsLayoutUsageFlagsNVX',+-- 'Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCreateIndirectCommandsLayoutNVX'+data VkIndirectCommandsLayoutCreateInfoNVX = VkIndirectCommandsLayoutCreateInfoNVX+  { -- No documentation found for Nested "VkIndirectCommandsLayoutCreateInfoNVX" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkIndirectCommandsLayoutCreateInfoNVX" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkIndirectCommandsLayoutCreateInfoNVX" "vkPipelineBindPoint"+  vkPipelineBindPoint :: VkPipelineBindPoint+  , -- No documentation found for Nested "VkIndirectCommandsLayoutCreateInfoNVX" "vkFlags"+  vkFlags :: VkIndirectCommandsLayoutUsageFlagsNVX+  , -- No documentation found for Nested "VkIndirectCommandsLayoutCreateInfoNVX" "vkTokenCount"+  vkTokenCount :: Word32+  , -- No documentation found for Nested "VkIndirectCommandsLayoutCreateInfoNVX" "vkPTokens"+  vkPTokens :: Ptr VkIndirectCommandsLayoutTokenNVX+  }+  deriving (Eq, Show)++instance Storable VkIndirectCommandsLayoutCreateInfoNVX where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkIndirectCommandsLayoutCreateInfoNVX <$> peek (ptr `plusPtr` 0)+                                                   <*> peek (ptr `plusPtr` 8)+                                                   <*> peek (ptr `plusPtr` 16)+                                                   <*> peek (ptr `plusPtr` 20)+                                                   <*> peek (ptr `plusPtr` 24)+                                                   <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkIndirectCommandsLayoutCreateInfoNVX))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkIndirectCommandsLayoutCreateInfoNVX))+                *> poke (ptr `plusPtr` 16) (vkPipelineBindPoint (poked :: VkIndirectCommandsLayoutCreateInfoNVX))+                *> poke (ptr `plusPtr` 20) (vkFlags (poked :: VkIndirectCommandsLayoutCreateInfoNVX))+                *> poke (ptr `plusPtr` 24) (vkTokenCount (poked :: VkIndirectCommandsLayoutCreateInfoNVX))+                *> poke (ptr `plusPtr` 32) (vkPTokens (poked :: VkIndirectCommandsLayoutCreateInfoNVX))+-- | VkCmdProcessCommandsInfoNVX - Structure specifying parameters for the+-- generation of commands+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   The provided @objectTable@ /must/ include all objects referenced by+--     the generation process.+--+-- -   @indirectCommandsTokenCount@ /must/ match the+--     @indirectCommandsLayout@’s @tokenCount@.+--+-- -   The @tokenType@ member of each entry in the+--     @pIndirectCommandsTokens@ array /must/ match the values used at+--     creation time of @indirectCommandsLayout@+--+-- -   If @targetCommandBuffer@ is provided, it /must/ have reserved+--     command space.+--+-- -   If @targetCommandBuffer@ is provided, the @objectTable@ /must/ match+--     the reservation’s objectTable and /must/ have had all referenced+--     objects registered at reservation time.+--+-- -   If @targetCommandBuffer@ is provided, the @indirectCommandsLayout@+--     /must/ match the reservation’s indirectCommandsLayout.+--+-- -   If @targetCommandBuffer@ is provided, the @maxSequencesCount@ /must/+--     not exceed the reservation’s maxSequencesCount.+--+-- -   If @sequencesCountBuffer@ is used, its usage flag /must/ have+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set.+--+-- -   If @sequencesCountBuffer@ is used, @sequencesCountOffset@ /must/ be+--     aligned to+--     @VkDeviceGeneratedCommandsLimitsNVX@::@minSequenceCountBufferOffsetAlignment@.+--+-- -   If @sequencesIndexBuffer@ is used, its usage flag /must/ have+--     @VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT@ bit set.+--+-- -   If @sequencesIndexBuffer@ is used, @sequencesIndexOffset@ /must/ be+--     aligned to+--     @VkDeviceGeneratedCommandsLimitsNVX@::@minSequenceIndexBufferOffsetAlignment@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @objectTable@ /must/ be a valid @VkObjectTableNVX@ handle+--+-- -   @indirectCommandsLayout@ /must/ be a valid+--     @VkIndirectCommandsLayoutNVX@ handle+--+-- -   @pIndirectCommandsTokens@ /must/ be a valid pointer to an array of+--     @indirectCommandsTokenCount@ valid @VkIndirectCommandsTokenNVX@+--     structures+--+-- -   If @targetCommandBuffer@ is not @NULL@, @targetCommandBuffer@ /must/+--     be a valid @VkCommandBuffer@ handle+--+-- -   If @sequencesCountBuffer@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @sequencesCountBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   If @sequencesIndexBuffer@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @sequencesIndexBuffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @indirectCommandsTokenCount@ /must/ be greater than @0@+--+-- -   Each of @indirectCommandsLayout@, @objectTable@,+--     @sequencesCountBuffer@, @sequencesIndexBuffer@, and+--     @targetCommandBuffer@ that are valid handles /must/ have been+--     created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @objectTable@ /must/ be externally synchronized+--+-- -   Host access to @targetCommandBuffer@ /must/ be externally+--     synchronized+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', @VkDeviceSize@,+-- 'VkIndirectCommandsLayoutNVX', 'VkIndirectCommandsTokenNVX',+-- 'VkObjectTableNVX', 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCmdProcessCommandsNVX'+data VkCmdProcessCommandsInfoNVX = VkCmdProcessCommandsInfoNVX+  { -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkObjectTable"+  vkObjectTable :: VkObjectTableNVX+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkIndirectCommandsLayout"+  vkIndirectCommandsLayout :: VkIndirectCommandsLayoutNVX+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkIndirectCommandsTokenCount"+  vkIndirectCommandsTokenCount :: Word32+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkPIndirectCommandsTokens"+  vkPIndirectCommandsTokens :: Ptr VkIndirectCommandsTokenNVX+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkMaxSequencesCount"+  vkMaxSequencesCount :: Word32+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkTargetCommandBuffer"+  vkTargetCommandBuffer :: VkCommandBuffer+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkSequencesCountBuffer"+  vkSequencesCountBuffer :: VkBuffer+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkSequencesCountOffset"+  vkSequencesCountOffset :: VkDeviceSize+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkSequencesIndexBuffer"+  vkSequencesIndexBuffer :: VkBuffer+  , -- No documentation found for Nested "VkCmdProcessCommandsInfoNVX" "vkSequencesIndexOffset"+  vkSequencesIndexOffset :: VkDeviceSize+  }+  deriving (Eq, Show)++instance Storable VkCmdProcessCommandsInfoNVX where+  sizeOf ~_ = 96+  alignment ~_ = 8+  peek ptr = VkCmdProcessCommandsInfoNVX <$> peek (ptr `plusPtr` 0)+                                         <*> peek (ptr `plusPtr` 8)+                                         <*> peek (ptr `plusPtr` 16)+                                         <*> peek (ptr `plusPtr` 24)+                                         <*> peek (ptr `plusPtr` 32)+                                         <*> peek (ptr `plusPtr` 40)+                                         <*> peek (ptr `plusPtr` 48)+                                         <*> peek (ptr `plusPtr` 56)+                                         <*> peek (ptr `plusPtr` 64)+                                         <*> peek (ptr `plusPtr` 72)+                                         <*> peek (ptr `plusPtr` 80)+                                         <*> peek (ptr `plusPtr` 88)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 16) (vkObjectTable (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 24) (vkIndirectCommandsLayout (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 32) (vkIndirectCommandsTokenCount (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 40) (vkPIndirectCommandsTokens (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 48) (vkMaxSequencesCount (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 56) (vkTargetCommandBuffer (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 64) (vkSequencesCountBuffer (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 72) (vkSequencesCountOffset (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 80) (vkSequencesIndexBuffer (poked :: VkCmdProcessCommandsInfoNVX))+                *> poke (ptr `plusPtr` 88) (vkSequencesIndexOffset (poked :: VkCmdProcessCommandsInfoNVX))+-- | VkCmdReserveSpaceForCommandsInfoNVX - Structure specifying parameters+-- for the reservation of command buffer space+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @objectTable@ /must/ be a valid @VkObjectTableNVX@ handle+--+-- -   @indirectCommandsLayout@ /must/ be a valid+--     @VkIndirectCommandsLayoutNVX@ handle+--+-- -   Both of @indirectCommandsLayout@, and @objectTable@ /must/ have been+--     created, allocated, or retrieved from the same @VkDevice@+--+-- == Host Synchronization+--+-- -   Host access to @objectTable@ /must/ be externally synchronized+--+-- = See Also+-- #_see_also#+--+-- 'VkIndirectCommandsLayoutNVX', 'VkObjectTableNVX',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'vkCmdReserveSpaceForCommandsNVX'+data VkCmdReserveSpaceForCommandsInfoNVX = VkCmdReserveSpaceForCommandsInfoNVX+  { -- No documentation found for Nested "VkCmdReserveSpaceForCommandsInfoNVX" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkCmdReserveSpaceForCommandsInfoNVX" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkCmdReserveSpaceForCommandsInfoNVX" "vkObjectTable"+  vkObjectTable :: VkObjectTableNVX+  , -- No documentation found for Nested "VkCmdReserveSpaceForCommandsInfoNVX" "vkIndirectCommandsLayout"+  vkIndirectCommandsLayout :: VkIndirectCommandsLayoutNVX+  , -- No documentation found for Nested "VkCmdReserveSpaceForCommandsInfoNVX" "vkMaxSequencesCount"+  vkMaxSequencesCount :: Word32+  }+  deriving (Eq, Show)++instance Storable VkCmdReserveSpaceForCommandsInfoNVX where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkCmdReserveSpaceForCommandsInfoNVX <$> peek (ptr `plusPtr` 0)+                                                 <*> peek (ptr `plusPtr` 8)+                                                 <*> peek (ptr `plusPtr` 16)+                                                 <*> peek (ptr `plusPtr` 24)+                                                 <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCmdReserveSpaceForCommandsInfoNVX))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCmdReserveSpaceForCommandsInfoNVX))+                *> poke (ptr `plusPtr` 16) (vkObjectTable (poked :: VkCmdReserveSpaceForCommandsInfoNVX))+                *> poke (ptr `plusPtr` 24) (vkIndirectCommandsLayout (poked :: VkCmdReserveSpaceForCommandsInfoNVX))+                *> poke (ptr `plusPtr` 32) (vkMaxSequencesCount (poked :: VkCmdReserveSpaceForCommandsInfoNVX))+-- | VkObjectTableCreateInfoNVX - Structure specifying the parameters of a+-- newly created object table+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     @VkDeviceGeneratedCommandsFeaturesNVX@::@computeBindingPointSupport@+--     feature is not enabled, @pObjectEntryUsageFlags@ /must/ not contain+--     @VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX@+--+-- -   Any value within @pObjectEntryCounts@ /must/ not exceed+--     @VkDeviceGeneratedCommandsLimitsNVX@::@maxObjectEntryCounts@+--+-- -   @maxUniformBuffersPerDescriptor@ /must/ be within the limits+--     supported by the device.+--+-- -   @maxStorageBuffersPerDescriptor@ /must/ be within the limits+--     supported by the device.+--+-- -   @maxStorageImagesPerDescriptor@ /must/ be within the limits+--     supported by the device.+--+-- -   @maxSampledImagesPerDescriptor@ /must/ be within the limits+--     supported by the device.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX@+--+-- -   @pNext@ /must/ be @NULL@+--+-- -   @pObjectEntryTypes@ /must/ be a valid pointer to an array of+--     @objectCount@ valid 'VkObjectEntryTypeNVX' values+--+-- -   @pObjectEntryCounts@ /must/ be a valid pointer to an array of+--     @objectCount@ @uint32_t@ values+--+-- -   @pObjectEntryUsageFlags@ /must/ be a valid pointer to an array of+--     @objectCount@ valid combinations of 'VkObjectEntryUsageFlagBitsNVX'+--     values+--+-- -   Each element of @pObjectEntryUsageFlags@ /must/ not be @0@+--+-- -   @objectCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkObjectEntryTypeNVX', 'VkObjectEntryUsageFlagsNVX',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'vkCreateObjectTableNVX'+data VkObjectTableCreateInfoNVX = VkObjectTableCreateInfoNVX+  { -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkObjectCount"+  vkObjectCount :: Word32+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkPObjectEntryTypes"+  vkPObjectEntryTypes :: Ptr VkObjectEntryTypeNVX+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkPObjectEntryCounts"+  vkPObjectEntryCounts :: Ptr Word32+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkPObjectEntryUsageFlags"+  vkPObjectEntryUsageFlags :: Ptr VkObjectEntryUsageFlagsNVX+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkMaxUniformBuffersPerDescriptor"+  vkMaxUniformBuffersPerDescriptor :: Word32+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkMaxStorageBuffersPerDescriptor"+  vkMaxStorageBuffersPerDescriptor :: Word32+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkMaxStorageImagesPerDescriptor"+  vkMaxStorageImagesPerDescriptor :: Word32+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkMaxSampledImagesPerDescriptor"+  vkMaxSampledImagesPerDescriptor :: Word32+  , -- No documentation found for Nested "VkObjectTableCreateInfoNVX" "vkMaxPipelineLayouts"+  vkMaxPipelineLayouts :: Word32+  }+  deriving (Eq, Show)++instance Storable VkObjectTableCreateInfoNVX where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkObjectTableCreateInfoNVX <$> peek (ptr `plusPtr` 0)+                                        <*> peek (ptr `plusPtr` 8)+                                        <*> peek (ptr `plusPtr` 16)+                                        <*> peek (ptr `plusPtr` 24)+                                        <*> peek (ptr `plusPtr` 32)+                                        <*> peek (ptr `plusPtr` 40)+                                        <*> peek (ptr `plusPtr` 48)+                                        <*> peek (ptr `plusPtr` 52)+                                        <*> peek (ptr `plusPtr` 56)+                                        <*> peek (ptr `plusPtr` 60)+                                        <*> peek (ptr `plusPtr` 64)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 16) (vkObjectCount (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 24) (vkPObjectEntryTypes (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 32) (vkPObjectEntryCounts (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 40) (vkPObjectEntryUsageFlags (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 48) (vkMaxUniformBuffersPerDescriptor (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 52) (vkMaxStorageBuffersPerDescriptor (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 56) (vkMaxStorageImagesPerDescriptor (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 60) (vkMaxSampledImagesPerDescriptor (poked :: VkObjectTableCreateInfoNVX))+                *> poke (ptr `plusPtr` 64) (vkMaxPipelineLayouts (poked :: VkObjectTableCreateInfoNVX))+-- | VkObjectTableEntryNVX - Common parameters of an object table resource+-- entry+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   If the+--     @VkDeviceGeneratedCommandsFeaturesNVX@::@computeBindingPointSupport@+--     feature is not enabled, @flags@ /must/ not contain+--     @VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX@+--+-- == Valid Usage (Implicit)+--+-- -   @type@ /must/ be a valid 'VkObjectEntryTypeNVX' value+--+-- -   @flags@ /must/ be a valid combination of+--     'VkObjectEntryUsageFlagBitsNVX' values+--+-- -   @flags@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkObjectEntryTypeNVX', 'VkObjectEntryUsageFlagsNVX',+-- 'vkRegisterObjectsNVX'+data VkObjectTableEntryNVX = VkObjectTableEntryNVX+  { -- No documentation found for Nested "VkObjectTableEntryNVX" "vkType"+  vkType :: VkObjectEntryTypeNVX+  , -- No documentation found for Nested "VkObjectTableEntryNVX" "vkFlags"+  vkFlags :: VkObjectEntryUsageFlagsNVX+  }+  deriving (Eq, Show)++instance Storable VkObjectTableEntryNVX where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkObjectTableEntryNVX <$> peek (ptr `plusPtr` 0)+                                   <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkObjectTableEntryNVX))+                *> poke (ptr `plusPtr` 4) (vkFlags (poked :: VkObjectTableEntryNVX))+-- | VkObjectTablePipelineEntryNVX - Parameters of an object table pipeline+-- entry+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @type@ /must/ be @VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX@+--+-- == Valid Usage (Implicit)+--+-- -   @type@ /must/ be a valid 'VkObjectEntryTypeNVX' value+--+-- -   @flags@ /must/ be a valid combination of+--     'VkObjectEntryUsageFlagBitsNVX' values+--+-- -   @flags@ /must/ not be @0@+--+-- -   @pipeline@ /must/ be a valid @VkPipeline@ handle+--+-- = See Also+-- #_see_also#+--+-- 'VkObjectEntryTypeNVX', 'VkObjectEntryUsageFlagsNVX',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipeline'+data VkObjectTablePipelineEntryNVX = VkObjectTablePipelineEntryNVX+  { -- No documentation found for Nested "VkObjectTablePipelineEntryNVX" "vkType"+  vkType :: VkObjectEntryTypeNVX+  , -- No documentation found for Nested "VkObjectTablePipelineEntryNVX" "vkFlags"+  vkFlags :: VkObjectEntryUsageFlagsNVX+  , -- No documentation found for Nested "VkObjectTablePipelineEntryNVX" "vkPipeline"+  vkPipeline :: VkPipeline+  }+  deriving (Eq, Show)++instance Storable VkObjectTablePipelineEntryNVX where+  sizeOf ~_ = 16+  alignment ~_ = 8+  peek ptr = VkObjectTablePipelineEntryNVX <$> peek (ptr `plusPtr` 0)+                                           <*> peek (ptr `plusPtr` 4)+                                           <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkObjectTablePipelineEntryNVX))+                *> poke (ptr `plusPtr` 4) (vkFlags (poked :: VkObjectTablePipelineEntryNVX))+                *> poke (ptr `plusPtr` 8) (vkPipeline (poked :: VkObjectTablePipelineEntryNVX))+-- | VkObjectTableDescriptorSetEntryNVX - Parameters of an object table+-- descriptor set entry+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @type@ /must/ be @VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX@+--+-- == Valid Usage (Implicit)+--+-- -   @type@ /must/ be a valid 'VkObjectEntryTypeNVX' value+--+-- -   @flags@ /must/ be a valid combination of+--     'VkObjectEntryUsageFlagBitsNVX' values+--+-- -   @flags@ /must/ not be @0@+--+-- -   @pipelineLayout@ /must/ be a valid @VkPipelineLayout@ handle+--+-- -   @descriptorSet@ /must/ be a valid @VkDescriptorSet@ handle+--+-- -   Both of @descriptorSet@, and @pipelineLayout@ /must/ have been+--     created, allocated, or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSet',+-- 'VkObjectEntryTypeNVX', 'VkObjectEntryUsageFlagsNVX',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineLayout'+data VkObjectTableDescriptorSetEntryNVX = VkObjectTableDescriptorSetEntryNVX+  { -- No documentation found for Nested "VkObjectTableDescriptorSetEntryNVX" "vkType"+  vkType :: VkObjectEntryTypeNVX+  , -- No documentation found for Nested "VkObjectTableDescriptorSetEntryNVX" "vkFlags"+  vkFlags :: VkObjectEntryUsageFlagsNVX+  , -- No documentation found for Nested "VkObjectTableDescriptorSetEntryNVX" "vkPipelineLayout"+  vkPipelineLayout :: VkPipelineLayout+  , -- No documentation found for Nested "VkObjectTableDescriptorSetEntryNVX" "vkDescriptorSet"+  vkDescriptorSet :: VkDescriptorSet+  }+  deriving (Eq, Show)++instance Storable VkObjectTableDescriptorSetEntryNVX where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkObjectTableDescriptorSetEntryNVX <$> peek (ptr `plusPtr` 0)+                                                <*> peek (ptr `plusPtr` 4)+                                                <*> peek (ptr `plusPtr` 8)+                                                <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkObjectTableDescriptorSetEntryNVX))+                *> poke (ptr `plusPtr` 4) (vkFlags (poked :: VkObjectTableDescriptorSetEntryNVX))+                *> poke (ptr `plusPtr` 8) (vkPipelineLayout (poked :: VkObjectTableDescriptorSetEntryNVX))+                *> poke (ptr `plusPtr` 16) (vkDescriptorSet (poked :: VkObjectTableDescriptorSetEntryNVX))+-- | VkObjectTableVertexBufferEntryNVX - Parameters of an object table vertex+-- buffer entry+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @type@ /must/ be @VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX@+--+-- == Valid Usage (Implicit)+--+-- -   @type@ /must/ be a valid 'VkObjectEntryTypeNVX' value+--+-- -   @flags@ /must/ be a valid combination of+--     'VkObjectEntryUsageFlagBitsNVX' values+--+-- -   @flags@ /must/ not be @0@+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'VkObjectEntryTypeNVX', 'VkObjectEntryUsageFlagsNVX'+data VkObjectTableVertexBufferEntryNVX = VkObjectTableVertexBufferEntryNVX+  { -- No documentation found for Nested "VkObjectTableVertexBufferEntryNVX" "vkType"+  vkType :: VkObjectEntryTypeNVX+  , -- No documentation found for Nested "VkObjectTableVertexBufferEntryNVX" "vkFlags"+  vkFlags :: VkObjectEntryUsageFlagsNVX+  , -- No documentation found for Nested "VkObjectTableVertexBufferEntryNVX" "vkBuffer"+  vkBuffer :: VkBuffer+  }+  deriving (Eq, Show)++instance Storable VkObjectTableVertexBufferEntryNVX where+  sizeOf ~_ = 16+  alignment ~_ = 8+  peek ptr = VkObjectTableVertexBufferEntryNVX <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 4)+                                               <*> peek (ptr `plusPtr` 8)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkObjectTableVertexBufferEntryNVX))+                *> poke (ptr `plusPtr` 4) (vkFlags (poked :: VkObjectTableVertexBufferEntryNVX))+                *> poke (ptr `plusPtr` 8) (vkBuffer (poked :: VkObjectTableVertexBufferEntryNVX))+-- | VkObjectTableIndexBufferEntryNVX - Parameters of an object table index+-- buffer entry+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @type@ /must/ be @VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX@+--+-- == Valid Usage (Implicit)+--+-- -   @type@ /must/ be a valid 'VkObjectEntryTypeNVX' value+--+-- -   @flags@ /must/ be a valid combination of+--     'VkObjectEntryUsageFlagBitsNVX' values+--+-- -   @flags@ /must/ not be @0@+--+-- -   @buffer@ /must/ be a valid @VkBuffer@ handle+--+-- -   @indexType@ /must/ be a valid+--     'Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType' value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType',+-- 'VkObjectEntryTypeNVX', 'VkObjectEntryUsageFlagsNVX'+data VkObjectTableIndexBufferEntryNVX = VkObjectTableIndexBufferEntryNVX+  { -- No documentation found for Nested "VkObjectTableIndexBufferEntryNVX" "vkType"+  vkType :: VkObjectEntryTypeNVX+  , -- No documentation found for Nested "VkObjectTableIndexBufferEntryNVX" "vkFlags"+  vkFlags :: VkObjectEntryUsageFlagsNVX+  , -- No documentation found for Nested "VkObjectTableIndexBufferEntryNVX" "vkBuffer"+  vkBuffer :: VkBuffer+  , -- No documentation found for Nested "VkObjectTableIndexBufferEntryNVX" "vkIndexType"+  vkIndexType :: VkIndexType+  }+  deriving (Eq, Show)++instance Storable VkObjectTableIndexBufferEntryNVX where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkObjectTableIndexBufferEntryNVX <$> peek (ptr `plusPtr` 0)+                                              <*> peek (ptr `plusPtr` 4)+                                              <*> peek (ptr `plusPtr` 8)+                                              <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkObjectTableIndexBufferEntryNVX))+                *> poke (ptr `plusPtr` 4) (vkFlags (poked :: VkObjectTableIndexBufferEntryNVX))+                *> poke (ptr `plusPtr` 8) (vkBuffer (poked :: VkObjectTableIndexBufferEntryNVX))+                *> poke (ptr `plusPtr` 16) (vkIndexType (poked :: VkObjectTableIndexBufferEntryNVX))+-- | VkObjectTablePushConstantEntryNVX - Parameters of an object table push+-- constant entry+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @type@ /must/ be @VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX@+--+-- == Valid Usage (Implicit)+--+-- -   @type@ /must/ be a valid 'VkObjectEntryTypeNVX' value+--+-- -   @flags@ /must/ be a valid combination of+--     'VkObjectEntryUsageFlagBitsNVX' values+--+-- -   @flags@ /must/ not be @0@+--+-- -   @pipelineLayout@ /must/ be a valid @VkPipelineLayout@ handle+--+-- -   @stageFlags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits' values+--+-- -   @stageFlags@ /must/ not be @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkObjectEntryTypeNVX', 'VkObjectEntryUsageFlagsNVX',+-- 'Graphics.Vulkan.Core10.Pipeline.VkPipelineLayout',+-- 'Graphics.Vulkan.Core10.PipelineLayout.VkShaderStageFlags'+data VkObjectTablePushConstantEntryNVX = VkObjectTablePushConstantEntryNVX+  { -- No documentation found for Nested "VkObjectTablePushConstantEntryNVX" "vkType"+  vkType :: VkObjectEntryTypeNVX+  , -- No documentation found for Nested "VkObjectTablePushConstantEntryNVX" "vkFlags"+  vkFlags :: VkObjectEntryUsageFlagsNVX+  , -- No documentation found for Nested "VkObjectTablePushConstantEntryNVX" "vkPipelineLayout"+  vkPipelineLayout :: VkPipelineLayout+  , -- No documentation found for Nested "VkObjectTablePushConstantEntryNVX" "vkStageFlags"+  vkStageFlags :: VkShaderStageFlags+  }+  deriving (Eq, Show)++instance Storable VkObjectTablePushConstantEntryNVX where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkObjectTablePushConstantEntryNVX <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 4)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkObjectTablePushConstantEntryNVX))+                *> poke (ptr `plusPtr` 4) (vkFlags (poked :: VkObjectTablePushConstantEntryNVX))+                *> poke (ptr `plusPtr` 8) (vkPipelineLayout (poked :: VkObjectTablePushConstantEntryNVX))+                *> poke (ptr `plusPtr` 16) (vkStageFlags (poked :: VkObjectTablePushConstantEntryNVX))+-- | VkIndirectCommandsLayoutUsageFlagsNVX - Bitmask of+-- VkIndirectCommandsLayoutUsageFlagBitsNVX+--+-- = Description+-- #_description#+--+-- @VkIndirectCommandsLayoutUsageFlagsNVX@ is a bitmask type for setting a+-- mask of zero or more 'VkIndirectCommandsLayoutUsageFlagBitsNVX'.+--+-- = See Also+-- #_see_also#+--+-- 'VkIndirectCommandsLayoutCreateInfoNVX',+-- 'VkIndirectCommandsLayoutUsageFlagBitsNVX'+type VkIndirectCommandsLayoutUsageFlagsNVX = VkIndirectCommandsLayoutUsageFlagBitsNVX+-- | VkObjectEntryUsageFlagsNVX - Bitmask of VkObjectEntryUsageFlagBitsNVX+--+-- = Description+-- #_description#+--+-- @VkObjectEntryUsageFlagsNVX@ is a bitmask type for setting a mask of+-- zero or more 'VkObjectEntryUsageFlagBitsNVX'.+--+-- = See Also+-- #_see_also#+--+-- 'VkObjectEntryUsageFlagBitsNVX', 'VkObjectTableCreateInfoNVX',+-- 'VkObjectTableDescriptorSetEntryNVX', 'VkObjectTableEntryNVX',+-- 'VkObjectTableIndexBufferEntryNVX', 'VkObjectTablePipelineEntryNVX',+-- 'VkObjectTablePushConstantEntryNVX', 'VkObjectTableVertexBufferEntryNVX'+type VkObjectEntryUsageFlagsNVX = VkObjectEntryUsageFlagBitsNVX
+ src/Graphics/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs view
@@ -0,0 +1,102 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes+  ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX+  , pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX+  , pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX+  , pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION+  , pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME+  , VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(..)+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Pass+  ( VkSubpassDescriptionFlagBits(..)+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX :: VkStructureType+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = VkStructureType 1000097000+-- No documentation found for Nested "VkSubpassDescriptionFlagBits" "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"+pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX :: VkSubpassDescriptionFlagBits+pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = VkSubpassDescriptionFlagBits 0x00000001+-- No documentation found for Nested "VkSubpassDescriptionFlagBits" "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"+pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX :: VkSubpassDescriptionFlagBits+pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = VkSubpassDescriptionFlagBits 0x00000002+-- No documentation found for TopLevel "VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION"+pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION :: Integral a => a+pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME"+pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME = "VK_NVX_multiview_per_view_attributes"+-- | VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - Structure+-- describing multiview limits that can be supported by an implementation+--+-- = Members+-- #_members#+--+-- The members of the+-- @VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX@ structure+-- describe the following implementation-dependent limits:+--+-- = Description+-- #_description#+--+-- -   @perViewPositionAllComponents@ is @VK_TRUE@ if the implementation+--     supports per-view position values that differ in components other+--     than the X component.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX@+--+-- If the @VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX@+-- structure is included in the @pNext@ chain of+-- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX+  { -- No documentation found for Nested "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX" "vkPerViewPositionAllComponents"+  vkPerViewPositionAllComponents :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX <$> peek (ptr `plusPtr` 0)+                                                                     <*> peek (ptr `plusPtr` 8)+                                                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX))+                *> poke (ptr `plusPtr` 16) (vkPerViewPositionAllComponents (poked :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX))
+ src/Graphics/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs view
@@ -0,0 +1,211 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling+  ( pattern VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV+  , pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV+  , pattern VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION+  , pattern VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME+  , vkCmdSetViewportWScalingNV+  , VkViewportWScalingNV(..)+  , VkPipelineViewportWScalingStateCreateInfoNV(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CFloat(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Pipeline+  ( VkDynamicState(..)+  )+import Graphics.Vulkan.Core10.Queue+  ( VkCommandBuffer+  )+++-- No documentation found for Nested "VkDynamicState" "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV"+pattern VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV :: VkDynamicState+pattern VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = VkDynamicState 1000087000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = VkStructureType 1000087000+-- No documentation found for TopLevel "VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION"+pattern VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION :: Integral a => a+pattern VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME"+pattern VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME = "VK_NV_clip_space_w_scaling"+-- | vkCmdSetViewportWScalingNV - Set the viewport W scaling on a command+-- buffer+--+-- = Parameters+-- #_parameters#+--+-- -   @commandBuffer@ is the command buffer into which the command will be+--     recorded.+--+-- -   @firstViewport@ is the index of the first viewport whose parameters+--     are updated by the command.+--+-- -   @viewportCount@ is the number of viewports whose parameters are+--     updated by the command.+--+-- -   @pViewportWScalings@ is a pointer to an array of+--     'VkViewportWScalingNV' structures specifying viewport parameters.+--+-- = Description+-- #_description#+--+-- The viewport parameters taken from element i of @pViewportWScalings@+-- replace the current state for the viewport index @firstViewport@ + i,+-- for i in [0, @viewportCount@).+--+-- == Valid Usage+--+-- -   The bound graphics pipeline /must/ have been created with the+--     @VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV@ dynamic state enabled+--+-- -   @firstViewport@ /must/ be less than+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'::@maxViewports@+--+-- -   The sum of @firstViewport@ and @viewportCount@ /must/ be between @1@+--     and+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits'::@maxViewports@,+--     inclusive+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid @VkCommandBuffer@ handle+--+-- -   @pViewportWScalings@ /must/ be a valid pointer to an array of+--     @viewportCount@ @VkViewportWScalingNV@ structures+--+-- -   @commandBuffer@ /must/ be in the+--     <#commandbuffers-lifecycle recording state>+--+-- -   The @VkCommandPool@ that @commandBuffer@ was allocated from /must/+--     support graphics operations+--+-- -   @viewportCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the @VkCommandPool@ that @commandBuffer@ was+--     allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- > +-----------------+-----------------+-----------------+-----------------++-- > | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati |+-- > | erLevel Command | derPass Render  | ts Supported Qu | on-pipeline-sta |+-- > |  Buffer Levels> | Pass Scope>     | eue Types>      | ges-types Pipel |+-- > |                 |                 |                 | ine Type>       |+-- > +=================+=================+=================+=================++-- > | Primary         | Both            | Graphics        |                 |+-- > | Secondary       |                 |                 |                 |+-- > +-----------------+-----------------+-----------------+-----------------++--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Queue.VkCommandBuffer', 'VkViewportWScalingNV'+foreign import ccall "vkCmdSetViewportWScalingNV" vkCmdSetViewportWScalingNV :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewportWScalings" ::: Ptr VkViewportWScalingNV) -> IO ()+-- | VkViewportWScalingNV - Structure specifying a viewport+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineViewportWScalingStateCreateInfoNV',+-- 'vkCmdSetViewportWScalingNV'+data VkViewportWScalingNV = VkViewportWScalingNV+  { -- No documentation found for Nested "VkViewportWScalingNV" "vkXcoeff"+  vkXcoeff :: CFloat+  , -- No documentation found for Nested "VkViewportWScalingNV" "vkYcoeff"+  vkYcoeff :: CFloat+  }+  deriving (Eq, Show)++instance Storable VkViewportWScalingNV where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek ptr = VkViewportWScalingNV <$> peek (ptr `plusPtr` 0)+                                  <*> peek (ptr `plusPtr` 4)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkXcoeff (poked :: VkViewportWScalingNV))+                *> poke (ptr `plusPtr` 4) (vkYcoeff (poked :: VkViewportWScalingNV))+-- | VkPipelineViewportWScalingStateCreateInfoNV - Structure specifying+-- parameters of a newly created pipeline viewport W scaling state+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV@+--+-- -   @viewportCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType',+-- 'VkViewportWScalingNV'+data VkPipelineViewportWScalingStateCreateInfoNV = VkPipelineViewportWScalingStateCreateInfoNV+  { -- No documentation found for Nested "VkPipelineViewportWScalingStateCreateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineViewportWScalingStateCreateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineViewportWScalingStateCreateInfoNV" "vkViewportWScalingEnable"+  vkViewportWScalingEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineViewportWScalingStateCreateInfoNV" "vkViewportCount"+  vkViewportCount :: Word32+  , -- No documentation found for Nested "VkPipelineViewportWScalingStateCreateInfoNV" "vkPViewportWScalings"+  vkPViewportWScalings :: Ptr VkViewportWScalingNV+  }+  deriving (Eq, Show)++instance Storable VkPipelineViewportWScalingStateCreateInfoNV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPipelineViewportWScalingStateCreateInfoNV <$> peek (ptr `plusPtr` 0)+                                                         <*> peek (ptr `plusPtr` 8)+                                                         <*> peek (ptr `plusPtr` 16)+                                                         <*> peek (ptr `plusPtr` 20)+                                                         <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineViewportWScalingStateCreateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineViewportWScalingStateCreateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkViewportWScalingEnable (poked :: VkPipelineViewportWScalingStateCreateInfoNV))+                *> poke (ptr `plusPtr` 20) (vkViewportCount (poked :: VkPipelineViewportWScalingStateCreateInfoNV))+                *> poke (ptr `plusPtr` 24) (vkPViewportWScalings (poked :: VkPipelineViewportWScalingStateCreateInfoNV))
+ src/Graphics/Vulkan/Extensions/VK_NV_dedicated_allocation.hs view
@@ -0,0 +1,210 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation+  ( pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV+  , pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV+  , pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV+  , pattern VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION+  , pattern VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME+  , VkDedicatedAllocationImageCreateInfoNV(..)+  , VkDedicatedAllocationBufferCreateInfoNV(..)+  , VkDedicatedAllocationMemoryAllocateInfoNV(..)+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.MemoryManagement+  ( VkBuffer+  , VkImage+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = VkStructureType 1000026000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = VkStructureType 1000026001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = VkStructureType 1000026002+-- No documentation found for TopLevel "VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION"+pattern VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION :: Integral a => a+pattern VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME"+pattern VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME = "VK_NV_dedicated_allocation"+-- | VkDedicatedAllocationImageCreateInfoNV - Specify that an image is bound+-- to a dedicated memory resource+--+-- = Description+-- #_description#+--+-- __Note__+--+-- Using a dedicated allocation for color and depth\/stencil attachments or+-- other large images /may/ improve performance on some devices.+--+-- == Valid Usage+--+-- -   If @dedicatedAllocation@ is @VK_TRUE@, @VkImageCreateInfo@::@flags@+--     /must/ not include @VK_IMAGE_CREATE_SPARSE_BINDING_BIT@,+--     @VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT@, or+--     @VK_IMAGE_CREATE_SPARSE_ALIASED_BIT@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDedicatedAllocationImageCreateInfoNV = VkDedicatedAllocationImageCreateInfoNV+  { -- No documentation found for Nested "VkDedicatedAllocationImageCreateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDedicatedAllocationImageCreateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDedicatedAllocationImageCreateInfoNV" "vkDedicatedAllocation"+  vkDedicatedAllocation :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkDedicatedAllocationImageCreateInfoNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDedicatedAllocationImageCreateInfoNV <$> peek (ptr `plusPtr` 0)+                                                    <*> peek (ptr `plusPtr` 8)+                                                    <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDedicatedAllocationImageCreateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDedicatedAllocationImageCreateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkDedicatedAllocation (poked :: VkDedicatedAllocationImageCreateInfoNV))+-- | VkDedicatedAllocationBufferCreateInfoNV - Specify that a buffer is bound+-- to a dedicated memory resource+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDedicatedAllocationBufferCreateInfoNV = VkDedicatedAllocationBufferCreateInfoNV+  { -- No documentation found for Nested "VkDedicatedAllocationBufferCreateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDedicatedAllocationBufferCreateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDedicatedAllocationBufferCreateInfoNV" "vkDedicatedAllocation"+  vkDedicatedAllocation :: VkBool32+  }+  deriving (Eq, Show)++instance Storable VkDedicatedAllocationBufferCreateInfoNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkDedicatedAllocationBufferCreateInfoNV <$> peek (ptr `plusPtr` 0)+                                                     <*> peek (ptr `plusPtr` 8)+                                                     <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDedicatedAllocationBufferCreateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDedicatedAllocationBufferCreateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkDedicatedAllocation (poked :: VkDedicatedAllocationBufferCreateInfoNV))+-- | VkDedicatedAllocationMemoryAllocateInfoNV - Specify a dedicated memory+-- allocation resource+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   At least one of @image@ and @buffer@ /must/ be+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE'+--+-- -   If @image@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     the image /must/ have been created with+--     @VkDedicatedAllocationImageCreateInfoNV@::@dedicatedAllocation@+--     equal to @VK_TRUE@+--+-- -   If @buffer@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', the buffer /must/+--     have been created with+--     @VkDedicatedAllocationBufferCreateInfoNV@::@dedicatedAllocation@+--     equal to @VK_TRUE@+--+-- -   If @image@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @VkMemoryAllocateInfo@::@allocationSize@ /must/ equal the+--     @VkMemoryRequirements@::@size@ of the image+--+-- -   If @buffer@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @VkMemoryAllocateInfo@::@allocationSize@ /must/ equal the+--     @VkMemoryRequirements@::@size@ of the buffer+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV@+--+-- -   If @image@ is not 'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE',+--     @image@ /must/ be a valid @VkImage@ handle+--+-- -   If @buffer@ is not+--     'Graphics.Vulkan.Core10.Constants.VK_NULL_HANDLE', @buffer@ /must/+--     be a valid @VkBuffer@ handle+--+-- -   Both of @buffer@, and @image@ that are valid handles /must/ have+--     been created, allocated, or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkBuffer',+-- 'Graphics.Vulkan.Core10.MemoryManagement.VkImage',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkDedicatedAllocationMemoryAllocateInfoNV = VkDedicatedAllocationMemoryAllocateInfoNV+  { -- No documentation found for Nested "VkDedicatedAllocationMemoryAllocateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkDedicatedAllocationMemoryAllocateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkDedicatedAllocationMemoryAllocateInfoNV" "vkImage"+  vkImage :: VkImage+  , -- No documentation found for Nested "VkDedicatedAllocationMemoryAllocateInfoNV" "vkBuffer"+  vkBuffer :: VkBuffer+  }+  deriving (Eq, Show)++instance Storable VkDedicatedAllocationMemoryAllocateInfoNV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkDedicatedAllocationMemoryAllocateInfoNV <$> peek (ptr `plusPtr` 0)+                                                       <*> peek (ptr `plusPtr` 8)+                                                       <*> peek (ptr `plusPtr` 16)+                                                       <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDedicatedAllocationMemoryAllocateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDedicatedAllocationMemoryAllocateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkImage (poked :: VkDedicatedAllocationMemoryAllocateInfoNV))+                *> poke (ptr `plusPtr` 24) (vkBuffer (poked :: VkDedicatedAllocationMemoryAllocateInfoNV))
+ src/Graphics/Vulkan/Extensions/VK_NV_external_memory.hs view
@@ -0,0 +1,125 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_external_memory+  ( pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV+  , pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV+  , pattern VK_NV_EXTERNAL_MEMORY_SPEC_VERSION+  , pattern VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME+  , VkExternalMemoryImageCreateInfoNV(..)+  , VkExportMemoryAllocateInfoNV(..)+  ) where++import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagsNV+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = VkStructureType 1000056000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = VkStructureType 1000056001+-- No documentation found for TopLevel "VK_NV_EXTERNAL_MEMORY_SPEC_VERSION"+pattern VK_NV_EXTERNAL_MEMORY_SPEC_VERSION :: Integral a => a+pattern VK_NV_EXTERNAL_MEMORY_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME"+pattern VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_NV_external_memory"+-- | VkExternalMemoryImageCreateInfoNV - Specify that an image may be backed+-- by external memory+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV@+--+-- -   @handleTypes@ /must/ be a valid combination of+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV'+--     values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagsNV',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkExternalMemoryImageCreateInfoNV = VkExternalMemoryImageCreateInfoNV+  { -- No documentation found for Nested "VkExternalMemoryImageCreateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExternalMemoryImageCreateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExternalMemoryImageCreateInfoNV" "vkHandleTypes"+  vkHandleTypes :: VkExternalMemoryHandleTypeFlagsNV+  }+  deriving (Eq, Show)++instance Storable VkExternalMemoryImageCreateInfoNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkExternalMemoryImageCreateInfoNV <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 8)+                                               <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalMemoryImageCreateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalMemoryImageCreateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExternalMemoryImageCreateInfoNV))+-- | VkExportMemoryAllocateInfoNV - Specify memory handle types that may be+-- exported+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be @VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV@+--+-- -   @handleTypes@ /must/ be a valid combination of+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV'+--     values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagsNV',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkExportMemoryAllocateInfoNV = VkExportMemoryAllocateInfoNV+  { -- No documentation found for Nested "VkExportMemoryAllocateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExportMemoryAllocateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExportMemoryAllocateInfoNV" "vkHandleTypes"+  vkHandleTypes :: VkExternalMemoryHandleTypeFlagsNV+  }+  deriving (Eq, Show)++instance Storable VkExportMemoryAllocateInfoNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek ptr = VkExportMemoryAllocateInfoNV <$> peek (ptr `plusPtr` 0)+                                          <*> peek (ptr `plusPtr` 8)+                                          <*> peek (ptr `plusPtr` 16)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportMemoryAllocateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportMemoryAllocateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExportMemoryAllocateInfoNV))
+ src/Graphics/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs view
@@ -0,0 +1,352 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagBitsNV(..)+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV+  , pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV+  , VkExternalMemoryFeatureFlagBitsNV(..)+  , pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV+  , pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV+  , pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV+  , pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION+  , pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME+  , vkGetPhysicalDeviceExternalImageFormatPropertiesNV+  , VkExternalImageFormatPropertiesNV(..)+  , VkExternalMemoryHandleTypeFlagsNV+  , VkExternalMemoryFeatureFlagsNV+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkFormat(..)+  , VkResult(..)+  , VkFlags+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkImageFormatProperties(..)+  , VkImageCreateFlagBits(..)+  , VkImageUsageFlagBits(..)+  , VkImageCreateFlags+  , VkImageUsageFlags+  , VkImageTiling(..)+  , VkImageType(..)+  , VkPhysicalDevice+  )+++-- ** VkExternalMemoryHandleTypeFlagBitsNV++-- | VkExternalMemoryHandleTypeFlagBitsNV - Bitmask specifying external+-- memory handle types+--+-- = See Also+-- #_see_also#+--+-- 'VkExternalMemoryHandleTypeFlagsNV'+newtype VkExternalMemoryHandleTypeFlagBitsNV = VkExternalMemoryHandleTypeFlagBitsNV VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkExternalMemoryHandleTypeFlagBitsNV where+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"+  showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"+  showsPrec p (VkExternalMemoryHandleTypeFlagBitsNV x) = showParen (p >= 11) (showString "VkExternalMemoryHandleTypeFlagBitsNV " . showsPrec 11 x)++instance Read VkExternalMemoryHandleTypeFlagBitsNV where+  readPrec = parens ( choose [ ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV",     pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV", pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV",      pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV)+                             , ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV",  pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkExternalMemoryHandleTypeFlagBitsNV")+                        v <- step readPrec+                        pure (VkExternalMemoryHandleTypeFlagBitsNV v)+                        )+                    )++-- | @VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV@ specifies a handle+-- to memory returned by+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.vkGetMemoryWin32HandleNV',+-- or one duplicated from such a handle using @DuplicateHandle()@.+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV :: VkExternalMemoryHandleTypeFlagBitsNV+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = VkExternalMemoryHandleTypeFlagBitsNV 0x00000001++-- | @VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV@ specifies a+-- handle to memory returned by+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.vkGetMemoryWin32HandleNV'.+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV :: VkExternalMemoryHandleTypeFlagBitsNV+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = VkExternalMemoryHandleTypeFlagBitsNV 0x00000002++-- | @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV@ specifies a valid NT+-- handle to memory returned by @IDXGIResource1::CreateSharedHandle()@, or+-- a handle duplicated from such a handle using @DuplicateHandle()@.+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV :: VkExternalMemoryHandleTypeFlagBitsNV+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = VkExternalMemoryHandleTypeFlagBitsNV 0x00000004++-- | @VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV@ specifies a+-- handle to memory returned by @IDXGIResource::GetSharedHandle()@.+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV :: VkExternalMemoryHandleTypeFlagBitsNV+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = VkExternalMemoryHandleTypeFlagBitsNV 0x00000008+-- ** VkExternalMemoryFeatureFlagBitsNV++-- | VkExternalMemoryFeatureFlagBitsNV - Bitmask specifying external memory+-- features+--+-- = See Also+-- #_see_also#+--+-- 'VkExternalImageFormatPropertiesNV', 'VkExternalMemoryFeatureFlagsNV',+-- 'vkGetPhysicalDeviceExternalImageFormatPropertiesNV'+newtype VkExternalMemoryFeatureFlagBitsNV = VkExternalMemoryFeatureFlagBitsNV VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkExternalMemoryFeatureFlagBitsNV where+  showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = showString "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"+  showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = showString "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"+  showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = showString "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"+  showsPrec p (VkExternalMemoryFeatureFlagBitsNV x) = showParen (p >= 11) (showString "VkExternalMemoryFeatureFlagBitsNV " . showsPrec 11 x)++instance Read VkExternalMemoryFeatureFlagBitsNV where+  readPrec = parens ( choose [ ("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV", pure VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV)+                             , ("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV",     pure VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV)+                             , ("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV",     pure VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkExternalMemoryFeatureFlagBitsNV")+                        v <- step readPrec+                        pure (VkExternalMemoryFeatureFlagBitsNV v)+                        )+                    )++-- | @VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV@ specifies that+-- external memory of the specified type /must/ be created as a dedicated+-- allocation when used in the manner specified.+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV :: VkExternalMemoryFeatureFlagBitsNV+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = VkExternalMemoryFeatureFlagBitsNV 0x00000001++-- | @VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV@ specifies that the+-- implementation supports exporting handles of the specified type.+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV :: VkExternalMemoryFeatureFlagBitsNV+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = VkExternalMemoryFeatureFlagBitsNV 0x00000002++-- | @VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV@ specifies that the+-- implementation supports importing handles of the specified type.+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV :: VkExternalMemoryFeatureFlagBitsNV+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = VkExternalMemoryFeatureFlagBitsNV 0x00000004+-- No documentation found for TopLevel "VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION"+pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION :: Integral a => a+pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME"+pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME = "VK_NV_external_memory_capabilities"+-- | vkGetPhysicalDeviceExternalImageFormatPropertiesNV - determine image+-- capabilities compatible with external memory handle types+--+-- = Parameters+-- #_parameters#+--+-- -   @physicalDevice@ is the physical device from which to query the+--     image capabilities+--+-- -   @format@ is the image format, corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@format@.+--+-- -   @type@ is the image type, corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@imageType@.+--+-- -   @tiling@ is the image tiling, corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@tiling@.+--+-- -   @usage@ is the intended usage of the image, corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@usage@.+--+-- -   @flags@ is a bitmask describing additional parameters of the image,+--     corresponding to+--     'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@flags@.+--+-- -   @externalHandleType@ is either one of the bits from+--     'VkExternalMemoryHandleTypeFlagBitsNV', or 0.+--+-- -   @pExternalImageFormatProperties@ points to an instance of the+--     'VkExternalImageFormatPropertiesNV' structure in which capabilities+--     are returned.+--+-- = Description+-- #_description#+--+-- If @externalHandleType@ is 0,+-- @pExternalImageFormatProperties@::imageFormatProperties will return the+-- same values as a call to+-- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceImageFormatProperties',+-- and the other members of @pExternalImageFormatProperties@ will all be 0.+-- Otherwise, they are filled in as described for+-- 'VkExternalImageFormatPropertiesNV'.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle+--+-- -   @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat'+--     value+--+-- -   @type@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType' value+--+-- -   @tiling@ /must/ be a valid+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling' value+--+-- -   @usage@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits'+--     values+--+-- -   @usage@ /must/ not be @0@+--+-- -   @flags@ /must/ be a valid combination of+--     'Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits'+--     values+--+-- -   @externalHandleType@ /must/ be a valid combination of+--     'VkExternalMemoryHandleTypeFlagBitsNV' values+--+-- -   @pExternalImageFormatProperties@ /must/ be a valid pointer to a+--     @VkExternalImageFormatPropertiesNV@ structure+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+--     -   @VK_ERROR_OUT_OF_DEVICE_MEMORY@+--+--     -   @VK_ERROR_FORMAT_NOT_SUPPORTED@+--+-- = See Also+-- #_see_also#+--+-- 'VkExternalImageFormatPropertiesNV',+-- 'VkExternalMemoryHandleTypeFlagsNV',+-- 'Graphics.Vulkan.Core10.Core.VkFormat',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlags',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice'+foreign import ccall "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" vkGetPhysicalDeviceExternalImageFormatPropertiesNV :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("tiling" ::: VkImageTiling) -> ("usage" ::: VkImageUsageFlags) -> ("flags" ::: VkImageCreateFlags) -> ("externalHandleType" ::: VkExternalMemoryHandleTypeFlagsNV) -> ("pExternalImageFormatProperties" ::: Ptr VkExternalImageFormatPropertiesNV) -> IO VkResult+-- | VkExternalImageFormatPropertiesNV - Structure specifying external image+-- format properties+--+-- = Description+-- #_description#+--+-- = See Also+-- #_see_also#+--+-- 'VkExternalMemoryFeatureFlagsNV', 'VkExternalMemoryHandleTypeFlagsNV',+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties',+-- 'vkGetPhysicalDeviceExternalImageFormatPropertiesNV'+data VkExternalImageFormatPropertiesNV = VkExternalImageFormatPropertiesNV+  { -- No documentation found for Nested "VkExternalImageFormatPropertiesNV" "vkImageFormatProperties"+  vkImageFormatProperties :: VkImageFormatProperties+  , -- No documentation found for Nested "VkExternalImageFormatPropertiesNV" "vkExternalMemoryFeatures"+  vkExternalMemoryFeatures :: VkExternalMemoryFeatureFlagsNV+  , -- No documentation found for Nested "VkExternalImageFormatPropertiesNV" "vkExportFromImportedHandleTypes"+  vkExportFromImportedHandleTypes :: VkExternalMemoryHandleTypeFlagsNV+  , -- No documentation found for Nested "VkExternalImageFormatPropertiesNV" "vkCompatibleHandleTypes"+  vkCompatibleHandleTypes :: VkExternalMemoryHandleTypeFlagsNV+  }+  deriving (Eq, Show)++instance Storable VkExternalImageFormatPropertiesNV where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek ptr = VkExternalImageFormatPropertiesNV <$> peek (ptr `plusPtr` 0)+                                               <*> peek (ptr `plusPtr` 32)+                                               <*> peek (ptr `plusPtr` 36)+                                               <*> peek (ptr `plusPtr` 40)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkImageFormatProperties (poked :: VkExternalImageFormatPropertiesNV))+                *> poke (ptr `plusPtr` 32) (vkExternalMemoryFeatures (poked :: VkExternalImageFormatPropertiesNV))+                *> poke (ptr `plusPtr` 36) (vkExportFromImportedHandleTypes (poked :: VkExternalImageFormatPropertiesNV))+                *> poke (ptr `plusPtr` 40) (vkCompatibleHandleTypes (poked :: VkExternalImageFormatPropertiesNV))+-- | VkExternalMemoryHandleTypeFlagsNV - Bitmask of+-- VkExternalMemoryHandleTypeFlagBitsNV+--+-- = Description+-- #_description#+--+-- @VkExternalMemoryHandleTypeFlagsNV@ is a bitmask type for setting a mask+-- of zero or more 'VkExternalMemoryHandleTypeFlagBitsNV'.+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV',+-- 'VkExternalImageFormatPropertiesNV',+-- 'VkExternalMemoryHandleTypeFlagBitsNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.VkImportMemoryWin32HandleInfoNV',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_win32.vkGetMemoryWin32HandleNV',+-- 'vkGetPhysicalDeviceExternalImageFormatPropertiesNV'+type VkExternalMemoryHandleTypeFlagsNV = VkExternalMemoryHandleTypeFlagBitsNV+-- | VkExternalMemoryFeatureFlagsNV - Bitmask of+-- VkExternalMemoryFeatureFlagBitsNV+--+-- = Description+-- #_description#+--+-- @VkExternalMemoryFeatureFlagsNV@ is a bitmask type for setting a mask of+-- zero or more 'VkExternalMemoryFeatureFlagBitsNV'.+--+-- = See Also+-- #_see_also#+--+-- 'VkExternalImageFormatPropertiesNV', 'VkExternalMemoryFeatureFlagBitsNV'+type VkExternalMemoryFeatureFlagsNV = VkExternalMemoryFeatureFlagBitsNV
+ src/Graphics/Vulkan/Extensions/VK_NV_external_memory_win32.hs view
@@ -0,0 +1,241 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DataKinds #-}+{-# language TypeOperators #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_external_memory_win32+  ( HANDLE+  , SECURITY_ATTRIBUTES+  , DWORD+  , pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV+  , pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV+  , pattern VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION+  , pattern VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME+  , vkGetMemoryWin32HandleNV+  , VkImportMemoryWin32HandleInfoNV(..)+  , VkExportMemoryWin32HandleInfoNV(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import Graphics.Vulkan.NamedType+  ( (:::)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  , VkStructureType(..)+  )+import Graphics.Vulkan.Core10.DeviceInitialization+  ( VkDevice+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+import Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities+  ( VkExternalMemoryHandleTypeFlagBitsNV(..)+  , VkExternalMemoryHandleTypeFlagsNV+  )+++-- No documentation found for TopLevel "HANDLE"+type HANDLE = Ptr ()+-- | Opaque data+data SECURITY_ATTRIBUTES+-- No documentation found for TopLevel "DWORD"+type DWORD = Word32+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"+pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = VkStructureType 1000057000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = VkStructureType 1000057001+-- No documentation found for TopLevel "VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION"+pattern VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION :: Integral a => a+pattern VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME"+pattern VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME = "VK_NV_external_memory_win32"+-- | vkGetMemoryWin32HandleNV - retrieve Win32 handle to a device memory+-- object+--+-- = Parameters+-- #_parameters#+--+-- -   @device@ is the logical device that owns the memory.+--+-- -   @memory@ is the @VkDeviceMemory@ object.+--+-- -   @handleType@ is a bitmask of+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV'+--     containing a single bit specifying the type of handle requested.+--+-- -   @handle@ points to a Windows @HANDLE@ in which the handle is+--     returned.+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @handleType@ /must/ be a flag specified in+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV'::@handleTypes@+--     when allocating @memory@+--+-- == Valid Usage (Implicit)+--+-- -   @device@ /must/ be a valid @VkDevice@ handle+--+-- -   @memory@ /must/ be a valid @VkDeviceMemory@ handle+--+-- -   @handleType@ /must/ be a valid combination of+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV'+--     values+--+-- -   @handleType@ /must/ not be @0@+--+-- -   @pHandle@ /must/ be a valid pointer to a @HANDLE@ value+--+-- -   @memory@ /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Return Codes+--+-- [<#fundamentals-successcodes Success>]+--     -   @VK_SUCCESS@+--+-- [<#fundamentals-errorcodes Failure>]+--     -   @VK_ERROR_TOO_MANY_OBJECTS@+--+--     -   @VK_ERROR_OUT_OF_HOST_MEMORY@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.DeviceInitialization.VkDevice',+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory',+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagsNV'+foreign import ccall "vkGetMemoryWin32HandleNV" vkGetMemoryWin32HandleNV :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagsNV) -> ("pHandle" ::: Ptr HANDLE) -> IO VkResult+-- | VkImportMemoryWin32HandleInfoNV - import Win32 memory created on the+-- same physical device+--+-- = Description+-- #_description#+--+-- If @handleType@ is @0@, this structure is ignored by consumers of the+-- 'Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo' structure it is+-- chained from.+--+-- == Valid Usage+--+-- -   @handleType@ /must/ not have more than one bit set.+--+-- -   @handle@ /must/ be a valid handle to memory, obtained as specified+--     by @handleType@.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV@+--+-- -   @handleType@ /must/ be a valid combination of+--     'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV'+--     values+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagsNV',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkImportMemoryWin32HandleInfoNV = VkImportMemoryWin32HandleInfoNV+  { -- No documentation found for Nested "VkImportMemoryWin32HandleInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkImportMemoryWin32HandleInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkImportMemoryWin32HandleInfoNV" "vkHandleType"+  vkHandleType :: VkExternalMemoryHandleTypeFlagsNV+  , -- No documentation found for Nested "VkImportMemoryWin32HandleInfoNV" "vkHandle"+  vkHandle :: HANDLE+  }+  deriving (Eq, Show)++instance Storable VkImportMemoryWin32HandleInfoNV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkImportMemoryWin32HandleInfoNV <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImportMemoryWin32HandleInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImportMemoryWin32HandleInfoNV))+                *> poke (ptr `plusPtr` 16) (vkHandleType (poked :: VkImportMemoryWin32HandleInfoNV))+                *> poke (ptr `plusPtr` 24) (vkHandle (poked :: VkImportMemoryWin32HandleInfoNV))+-- | VkExportMemoryWin32HandleInfoNV - specify security attributes and access+-- rights for Win32 memory handles+--+-- = Description+-- #_description#+--+-- If this structure is not present, or if @pAttributes@ is set to @NULL@,+-- default security descriptor values will be used, and child processes+-- created by the application will not inherit the handle, as described in+-- the MSDN documentation for “Synchronization Object Security and Access+-- Rights”[1]. Further, if the structure is not present, the access rights+-- will be+--+-- > DXGI_SHARED_RESOURCE_READ | DXGI_SHARED_RESOURCE_WRITE+--+-- [1]+-- <https://msdn.microsoft.com/en-us/library/windows/desktop/ms686670.aspx>+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV@+--+-- -   If @pAttributes@ is not @NULL@, @pAttributes@ /must/ be a valid+--     pointer to a valid @SECURITY_ATTRIBUTES@ value+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkExportMemoryWin32HandleInfoNV = VkExportMemoryWin32HandleInfoNV+  { -- No documentation found for Nested "VkExportMemoryWin32HandleInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkExportMemoryWin32HandleInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkExportMemoryWin32HandleInfoNV" "vkPAttributes"+  vkPAttributes :: Ptr SECURITY_ATTRIBUTES+  , -- No documentation found for Nested "VkExportMemoryWin32HandleInfoNV" "vkDwAccess"+  vkDwAccess :: DWORD+  }+  deriving (Eq, Show)++instance Storable VkExportMemoryWin32HandleInfoNV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkExportMemoryWin32HandleInfoNV <$> peek (ptr `plusPtr` 0)+                                             <*> peek (ptr `plusPtr` 8)+                                             <*> peek (ptr `plusPtr` 16)+                                             <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportMemoryWin32HandleInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportMemoryWin32HandleInfoNV))+                *> poke (ptr `plusPtr` 16) (vkPAttributes (poked :: VkExportMemoryWin32HandleInfoNV))+                *> poke (ptr `plusPtr` 24) (vkDwAccess (poked :: VkExportMemoryWin32HandleInfoNV))
+ src/Graphics/Vulkan/Extensions/VK_NV_fill_rectangle.hs view
@@ -0,0 +1,30 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_NV_fill_rectangle+  ( pattern VK_POLYGON_MODE_FILL_RECTANGLE_NV+  , pattern VK_NV_FILL_RECTANGLE_SPEC_VERSION+  , pattern VK_NV_FILL_RECTANGLE_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+++import Graphics.Vulkan.Core10.Pipeline+  ( VkPolygonMode(..)+  )+++-- No documentation found for Nested "VkPolygonMode" "VK_POLYGON_MODE_FILL_RECTANGLE_NV"+pattern VK_POLYGON_MODE_FILL_RECTANGLE_NV :: VkPolygonMode+pattern VK_POLYGON_MODE_FILL_RECTANGLE_NV = VkPolygonMode 1000153000+-- No documentation found for TopLevel "VK_NV_FILL_RECTANGLE_SPEC_VERSION"+pattern VK_NV_FILL_RECTANGLE_SPEC_VERSION :: Integral a => a+pattern VK_NV_FILL_RECTANGLE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_FILL_RECTANGLE_EXTENSION_NAME"+pattern VK_NV_FILL_RECTANGLE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_FILL_RECTANGLE_EXTENSION_NAME = "VK_NV_fill_rectangle"
+ src/Graphics/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs view
@@ -0,0 +1,180 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color+  ( VkPipelineCoverageToColorStateCreateFlagsNV(..)+  , pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV+  , pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION+  , pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME+  , VkPipelineCoverageToColorStateCreateInfoNV(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkFlags+  )+++-- ** VkPipelineCoverageToColorStateCreateFlagsNV++-- | VkPipelineCoverageToColorStateCreateFlagsNV - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineCoverageToColorStateCreateFlagsNV@ is a bitmask type for+-- setting a mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineCoverageToColorStateCreateInfoNV'+newtype VkPipelineCoverageToColorStateCreateFlagsNV = VkPipelineCoverageToColorStateCreateFlagsNV VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineCoverageToColorStateCreateFlagsNV where+  +  showsPrec p (VkPipelineCoverageToColorStateCreateFlagsNV x) = showParen (p >= 11) (showString "VkPipelineCoverageToColorStateCreateFlagsNV " . showsPrec 11 x)++instance Read VkPipelineCoverageToColorStateCreateFlagsNV where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineCoverageToColorStateCreateFlagsNV")+                        v <- step readPrec+                        pure (VkPipelineCoverageToColorStateCreateFlagsNV v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = VkStructureType 1000149000+-- No documentation found for TopLevel "VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION"+pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION :: Integral a => a+pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME"+pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME = "VK_NV_fragment_coverage_to_color"+-- | VkPipelineCoverageToColorStateCreateInfoNV - Structure specifying+-- whether fragment coverage replaces a color+--+-- = Description+-- #_description#+--+-- If @coverageToColorEnable@ is @VK_TRUE@, the fragment coverage+-- information is treated as a bitmask with one bit for each sample (as in+-- the <{html_spec_relative}#fragops-samplemask Sample Mask> section), and+-- this bitmask replaces the first component of the color value+-- corresponding to the fragment shader output location with @Location@+-- equal to @coverageToColorLocation@ and @Index@ equal to zero. If the+-- color attachment format has fewer bits than the sample coverage, the low+-- bits of the sample coverage bitmask are taken without any clamping. If+-- the color attachment format has more bits than the sample coverage, the+-- high bits of the sample coverage bitmask are filled with zeros.+--+-- If <{html_spec_relative}#primsrast-sampleshading Sample Shading> is in+-- use, the coverage bitmask only has bits set for samples that correspond+-- to the fragment shader invocation that shades those samples.+--+-- This pipeline stage occurs after sample counting and before blending,+-- and is always performed after fragment shading regardless of the setting+-- of @EarlyFragmentTests@.+--+-- If @coverageToColorEnable@ is @VK_FALSE@, these operations are skipped.+-- If this structure is not present, it is as if @coverageToColorEnable@ is+-- @VK_FALSE@.+--+-- == Valid Usage+--+-- -   If @coverageToColorEnable@ is @VK_TRUE@, then the render pass+--     subpass indicated by+--     'Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo'::@renderPass@+--     and+--     'Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo'::@subpass@+--     /must/ have a color attachment at the location selected by+--     @coverageToColorLocation@, with a+--     'Graphics.Vulkan.Core10.Core.VkFormat' of @VK_FORMAT_R8_UINT@,+--     @VK_FORMAT_R8_SINT@, @VK_FORMAT_R16_UINT@, @VK_FORMAT_R16_SINT@,+--     @VK_FORMAT_R32_UINT@, or @VK_FORMAT_R32_SINT@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV@+--+-- -   @flags@ /must/ be @0@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkPipelineCoverageToColorStateCreateFlagsNV',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineCoverageToColorStateCreateInfoNV = VkPipelineCoverageToColorStateCreateInfoNV+  { -- No documentation found for Nested "VkPipelineCoverageToColorStateCreateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineCoverageToColorStateCreateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineCoverageToColorStateCreateInfoNV" "vkFlags"+  vkFlags :: VkPipelineCoverageToColorStateCreateFlagsNV+  , -- No documentation found for Nested "VkPipelineCoverageToColorStateCreateInfoNV" "vkCoverageToColorEnable"+  vkCoverageToColorEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineCoverageToColorStateCreateInfoNV" "vkCoverageToColorLocation"+  vkCoverageToColorLocation :: Word32+  }+  deriving (Eq, Show)++instance Storable VkPipelineCoverageToColorStateCreateInfoNV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPipelineCoverageToColorStateCreateInfoNV <$> peek (ptr `plusPtr` 0)+                                                        <*> peek (ptr `plusPtr` 8)+                                                        <*> peek (ptr `plusPtr` 16)+                                                        <*> peek (ptr `plusPtr` 20)+                                                        <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineCoverageToColorStateCreateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineCoverageToColorStateCreateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineCoverageToColorStateCreateInfoNV))+                *> poke (ptr `plusPtr` 20) (vkCoverageToColorEnable (poked :: VkPipelineCoverageToColorStateCreateInfoNV))+                *> poke (ptr `plusPtr` 24) (vkCoverageToColorLocation (poked :: VkPipelineCoverageToColorStateCreateInfoNV))
+ src/Graphics/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs view
@@ -0,0 +1,262 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples+  ( VkCoverageModulationModeNV(..)+  , pattern VK_COVERAGE_MODULATION_MODE_NONE_NV+  , pattern VK_COVERAGE_MODULATION_MODE_RGB_NV+  , pattern VK_COVERAGE_MODULATION_MODE_ALPHA_NV+  , pattern VK_COVERAGE_MODULATION_MODE_RGBA_NV+  , VkPipelineCoverageModulationStateCreateFlagsNV(..)+  , pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV+  , pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION+  , pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME+  , VkPipelineCoverageModulationStateCreateInfoNV(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.C.Types+  ( CFloat(..)+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkBool32(..)+  , VkStructureType(..)+  , VkFlags+  )+++-- ** VkCoverageModulationModeNV++-- | VkCoverageModulationModeNV - Specify the discard rectangle mode+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineCoverageModulationStateCreateInfoNV'+newtype VkCoverageModulationModeNV = VkCoverageModulationModeNV Int32+  deriving (Eq, Ord, Storable)++instance Show VkCoverageModulationModeNV where+  showsPrec _ VK_COVERAGE_MODULATION_MODE_NONE_NV = showString "VK_COVERAGE_MODULATION_MODE_NONE_NV"+  showsPrec _ VK_COVERAGE_MODULATION_MODE_RGB_NV = showString "VK_COVERAGE_MODULATION_MODE_RGB_NV"+  showsPrec _ VK_COVERAGE_MODULATION_MODE_ALPHA_NV = showString "VK_COVERAGE_MODULATION_MODE_ALPHA_NV"+  showsPrec _ VK_COVERAGE_MODULATION_MODE_RGBA_NV = showString "VK_COVERAGE_MODULATION_MODE_RGBA_NV"+  showsPrec p (VkCoverageModulationModeNV x) = showParen (p >= 11) (showString "VkCoverageModulationModeNV " . showsPrec 11 x)++instance Read VkCoverageModulationModeNV where+  readPrec = parens ( choose [ ("VK_COVERAGE_MODULATION_MODE_NONE_NV",  pure VK_COVERAGE_MODULATION_MODE_NONE_NV)+                             , ("VK_COVERAGE_MODULATION_MODE_RGB_NV",   pure VK_COVERAGE_MODULATION_MODE_RGB_NV)+                             , ("VK_COVERAGE_MODULATION_MODE_ALPHA_NV", pure VK_COVERAGE_MODULATION_MODE_ALPHA_NV)+                             , ("VK_COVERAGE_MODULATION_MODE_RGBA_NV",  pure VK_COVERAGE_MODULATION_MODE_RGBA_NV)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkCoverageModulationModeNV")+                        v <- step readPrec+                        pure (VkCoverageModulationModeNV v)+                        )+                    )++-- | @VK_COVERAGE_MODULATION_MODE_NONE_NV@ specifies that no components are+-- multiplied by the modulation factor.+pattern VK_COVERAGE_MODULATION_MODE_NONE_NV :: VkCoverageModulationModeNV+pattern VK_COVERAGE_MODULATION_MODE_NONE_NV = VkCoverageModulationModeNV 0++-- | @VK_COVERAGE_MODULATION_MODE_RGB_NV@ specifies that the red, green, and+-- blue components are multiplied by the modulation factor.+pattern VK_COVERAGE_MODULATION_MODE_RGB_NV :: VkCoverageModulationModeNV+pattern VK_COVERAGE_MODULATION_MODE_RGB_NV = VkCoverageModulationModeNV 1++-- | @VK_COVERAGE_MODULATION_MODE_ALPHA_NV@ specifies that the alpha+-- component is multiplied by the modulation factor.+pattern VK_COVERAGE_MODULATION_MODE_ALPHA_NV :: VkCoverageModulationModeNV+pattern VK_COVERAGE_MODULATION_MODE_ALPHA_NV = VkCoverageModulationModeNV 2++-- | @VK_COVERAGE_MODULATION_MODE_RGBA_NV@ specifies that all components are+-- multiplied by the modulation factor.+pattern VK_COVERAGE_MODULATION_MODE_RGBA_NV :: VkCoverageModulationModeNV+pattern VK_COVERAGE_MODULATION_MODE_RGBA_NV = VkCoverageModulationModeNV 3+-- ** VkPipelineCoverageModulationStateCreateFlagsNV++-- | VkPipelineCoverageModulationStateCreateFlagsNV - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineCoverageModulationStateCreateFlagsNV@ is a bitmask type for+-- setting a mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineCoverageModulationStateCreateInfoNV'+newtype VkPipelineCoverageModulationStateCreateFlagsNV = VkPipelineCoverageModulationStateCreateFlagsNV VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineCoverageModulationStateCreateFlagsNV where+  +  showsPrec p (VkPipelineCoverageModulationStateCreateFlagsNV x) = showParen (p >= 11) (showString "VkPipelineCoverageModulationStateCreateFlagsNV " . showsPrec 11 x)++instance Read VkPipelineCoverageModulationStateCreateFlagsNV where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineCoverageModulationStateCreateFlagsNV")+                        v <- step readPrec+                        pure (VkPipelineCoverageModulationStateCreateFlagsNV v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = VkStructureType 1000152000+-- No documentation found for TopLevel "VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION"+pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION :: Integral a => a+pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME"+pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME = "VK_NV_framebuffer_mixed_samples"+-- | VkPipelineCoverageModulationStateCreateInfoNV - Structure specifying+-- parameters controlling coverage modulation+--+-- = Description+-- #_description#+--+-- If @coverageModulationTableEnable@ is @VK_FALSE@, then for each color+-- sample the associated bits of the fragment’s coverage are counted and+-- divided by the number of associated bits to produce a modulation factor+-- R in the range (0,1] (a value of zero would have been killed due to a+-- color coverage of 0). Specifically:+--+-- -   N = value of @rasterizationSamples@+--+-- -   M = value of+--     'Graphics.Vulkan.Core10.Pass.VkAttachmentDescription'::@samples@ for+--     any color attachments+--+-- -   R = popcount(associated coverage bits) \/ (N \/ M)+--+-- If @coverageModulationTableEnable@ is @VK_TRUE@, the value R is computed+-- using a programmable lookup table. The lookup table has N \/ M elements,+-- and the element of the table is selected by:+--+-- -   R = @pCoverageModulationTable@[popcount(associated coverage bits)-1]+--+-- Note that the table does not have an entry for popcount(associated+-- coverage bits) = 0, because such samples would have been killed.+--+-- The values of @pCoverageModulationTable@ /may/ be rounded to an+-- implementation-dependent precision, which is at least as fine as 1 \/ N,+-- and clamped to [0,1].+--+-- For each color attachment with a floating point or normalized color+-- format, each fragment output color value is replicated to M values which+-- /can/ each be modulated (multiplied) by that color sample’s associated+-- value of R. Which components are modulated is controlled by+-- @coverageModulationMode@.+--+-- If this structure is not present, it is as if coverageModulationMode is+-- @VK_COVERAGE_MODULATION_MODE_NONE_NV@.+--+-- == Valid Usage+--+-- -   If @coverageModulationTableEnable@ is @VK_TRUE@,+--     @coverageModulationTableCount@ /must/ be equal to the number of+--     rasterization samples divided by the number of color samples in the+--     subpass.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV@+--+-- -   @flags@ /must/ be @0@+--+-- -   @coverageModulationMode@ /must/ be a valid+--     'VkCoverageModulationModeNV' value+--+-- -   @coverageModulationTableCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- @VkBool32@, 'VkCoverageModulationModeNV',+-- 'VkPipelineCoverageModulationStateCreateFlagsNV',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkPipelineCoverageModulationStateCreateInfoNV = VkPipelineCoverageModulationStateCreateInfoNV+  { -- No documentation found for Nested "VkPipelineCoverageModulationStateCreateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineCoverageModulationStateCreateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineCoverageModulationStateCreateInfoNV" "vkFlags"+  vkFlags :: VkPipelineCoverageModulationStateCreateFlagsNV+  , -- No documentation found for Nested "VkPipelineCoverageModulationStateCreateInfoNV" "vkCoverageModulationMode"+  vkCoverageModulationMode :: VkCoverageModulationModeNV+  , -- No documentation found for Nested "VkPipelineCoverageModulationStateCreateInfoNV" "vkCoverageModulationTableEnable"+  vkCoverageModulationTableEnable :: VkBool32+  , -- No documentation found for Nested "VkPipelineCoverageModulationStateCreateInfoNV" "vkCoverageModulationTableCount"+  vkCoverageModulationTableCount :: Word32+  , -- No documentation found for Nested "VkPipelineCoverageModulationStateCreateInfoNV" "vkPCoverageModulationTable"+  vkPCoverageModulationTable :: Ptr CFloat+  }+  deriving (Eq, Show)++instance Storable VkPipelineCoverageModulationStateCreateInfoNV where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek ptr = VkPipelineCoverageModulationStateCreateInfoNV <$> peek (ptr `plusPtr` 0)+                                                           <*> peek (ptr `plusPtr` 8)+                                                           <*> peek (ptr `plusPtr` 16)+                                                           <*> peek (ptr `plusPtr` 20)+                                                           <*> peek (ptr `plusPtr` 24)+                                                           <*> peek (ptr `plusPtr` 28)+                                                           <*> peek (ptr `plusPtr` 32)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineCoverageModulationStateCreateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineCoverageModulationStateCreateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineCoverageModulationStateCreateInfoNV))+                *> poke (ptr `plusPtr` 20) (vkCoverageModulationMode (poked :: VkPipelineCoverageModulationStateCreateInfoNV))+                *> poke (ptr `plusPtr` 24) (vkCoverageModulationTableEnable (poked :: VkPipelineCoverageModulationStateCreateInfoNV))+                *> poke (ptr `plusPtr` 28) (vkCoverageModulationTableCount (poked :: VkPipelineCoverageModulationStateCreateInfoNV))+                *> poke (ptr `plusPtr` 32) (vkPCoverageModulationTable (poked :: VkPipelineCoverageModulationStateCreateInfoNV))
+ src/Graphics/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_NV_geometry_shader_passthrough+  ( pattern VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION+  , pattern VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION"+pattern VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION :: Integral a => a+pattern VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME"+pattern VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME = "VK_NV_geometry_shader_passthrough"
+ src/Graphics/Vulkan/Extensions/VK_NV_glsl_shader.hs view
@@ -0,0 +1,30 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_NV_glsl_shader+  ( pattern VK_ERROR_INVALID_SHADER_NV+  , pattern VK_NV_GLSL_SHADER_SPEC_VERSION+  , pattern VK_NV_GLSL_SHADER_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+++import Graphics.Vulkan.Core10.Core+  ( VkResult(..)+  )+++-- No documentation found for Nested "VkResult" "VK_ERROR_INVALID_SHADER_NV"+pattern VK_ERROR_INVALID_SHADER_NV :: VkResult+pattern VK_ERROR_INVALID_SHADER_NV = VkResult (-1000012000)+-- No documentation found for TopLevel "VK_NV_GLSL_SHADER_SPEC_VERSION"+pattern VK_NV_GLSL_SHADER_SPEC_VERSION :: Integral a => a+pattern VK_NV_GLSL_SHADER_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_GLSL_SHADER_EXTENSION_NAME"+pattern VK_NV_GLSL_SHADER_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_GLSL_SHADER_EXTENSION_NAME = "VK_NV_glsl_shader"
+ src/Graphics/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_NV_sample_mask_override_coverage+  ( pattern VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION+  , pattern VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION"+pattern VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION :: Integral a => a+pattern VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME"+pattern VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME = "VK_NV_sample_mask_override_coverage"
+ src/Graphics/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs view
@@ -0,0 +1,30 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_NV_shader_subgroup_partitioned+  ( pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV+  , pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION+  , pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )+++import Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup+  ( VkSubgroupFeatureFlagBits(..)+  )+++-- No documentation found for Nested "VkSubgroupFeatureFlagBits" "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"+pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV :: VkSubgroupFeatureFlagBits+pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = VkSubgroupFeatureFlagBits 0x00000100+-- No documentation found for TopLevel "VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION"+pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION :: Integral a => a+pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME"+pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME = "VK_NV_shader_subgroup_partitioned"
+ src/Graphics/Vulkan/Extensions/VK_NV_viewport_array2.hs view
@@ -0,0 +1,24 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}++module Graphics.Vulkan.Extensions.VK_NV_viewport_array2+  ( pattern VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION+  , pattern VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME+  ) where++import Data.String+  ( IsString+  )++++++-- No documentation found for TopLevel "VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION"+pattern VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION :: Integral a => a+pattern VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME"+pattern VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME = "VK_NV_viewport_array2"
+ src/Graphics/Vulkan/Extensions/VK_NV_viewport_swizzle.hs view
@@ -0,0 +1,283 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language GeneralizedNewtypeDeriving #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle+  ( VkViewportCoordinateSwizzleNV(..)+  , pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV+  , pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV+  , pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV+  , pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV+  , pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV+  , pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV+  , pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV+  , pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV+  , VkPipelineViewportSwizzleStateCreateFlagsNV(..)+  , pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV+  , pattern VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION+  , pattern VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME+  , VkViewportSwizzleNV(..)+  , VkPipelineViewportSwizzleStateCreateInfoNV(..)+  ) where++import Data.Bits+  ( Bits+  , FiniteBits+  )+import Data.Int+  ( Int32+  )+import Data.String+  ( IsString+  )+import Data.Word+  ( Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+import GHC.Read+  ( expectP+  , choose+  )+import Text.ParserCombinators.ReadPrec+  ( (+++)+  , prec+  , step+  )+import Text.Read+  ( Read(..)+  , parens+  )+import Text.Read.Lex+  ( Lexeme(Ident)+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  , VkFlags+  )+++-- ** VkViewportCoordinateSwizzleNV++-- | VkViewportCoordinateSwizzleNV - Specify how a viewport coordinate is+-- swizzled+--+-- = Description+-- #_description#+--+-- These values are described in detail in+-- <{html_spec_relative}#vertexpostproc-viewport-swizzle Viewport Swizzle>.+--+-- = See Also+-- #_see_also#+--+-- 'VkViewportSwizzleNV'+newtype VkViewportCoordinateSwizzleNV = VkViewportCoordinateSwizzleNV Int32+  deriving (Eq, Ord, Storable)++instance Show VkViewportCoordinateSwizzleNV where+  showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV"+  showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV"+  showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV"+  showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV"+  showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV"+  showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV"+  showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV"+  showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV"+  showsPrec p (VkViewportCoordinateSwizzleNV x) = showParen (p >= 11) (showString "VkViewportCoordinateSwizzleNV " . showsPrec 11 x)++instance Read VkViewportCoordinateSwizzleNV where+  readPrec = parens ( choose [ ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV", pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV)+                             , ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV", pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV)+                             , ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV", pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV)+                             , ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV", pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV)+                             , ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV", pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV)+                             , ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV", pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV)+                             , ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV", pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV)+                             , ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV", pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV)+                             ] ++++                      prec 10 (do+                        expectP (Ident "VkViewportCoordinateSwizzleNV")+                        v <- step readPrec+                        pure (VkViewportCoordinateSwizzleNV v)+                        )+                    )++-- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV"+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV :: VkViewportCoordinateSwizzleNV+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = VkViewportCoordinateSwizzleNV 0++-- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV"+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV :: VkViewportCoordinateSwizzleNV+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = VkViewportCoordinateSwizzleNV 1++-- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV"+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV :: VkViewportCoordinateSwizzleNV+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = VkViewportCoordinateSwizzleNV 2++-- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV"+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV :: VkViewportCoordinateSwizzleNV+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = VkViewportCoordinateSwizzleNV 3++-- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV"+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV :: VkViewportCoordinateSwizzleNV+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = VkViewportCoordinateSwizzleNV 4++-- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV"+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV :: VkViewportCoordinateSwizzleNV+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = VkViewportCoordinateSwizzleNV 5++-- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV"+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV :: VkViewportCoordinateSwizzleNV+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = VkViewportCoordinateSwizzleNV 6++-- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV"+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV :: VkViewportCoordinateSwizzleNV+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = VkViewportCoordinateSwizzleNV 7+-- ** VkPipelineViewportSwizzleStateCreateFlagsNV++-- | VkPipelineViewportSwizzleStateCreateFlagsNV - Reserved for future use+--+-- = Description+-- #_description#+--+-- @VkPipelineViewportSwizzleStateCreateFlagsNV@ is a bitmask type for+-- setting a mask, but is currently reserved for future use.+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineViewportSwizzleStateCreateInfoNV'+newtype VkPipelineViewportSwizzleStateCreateFlagsNV = VkPipelineViewportSwizzleStateCreateFlagsNV VkFlags+  deriving (Eq, Ord, Storable, Bits, FiniteBits)++instance Show VkPipelineViewportSwizzleStateCreateFlagsNV where+  +  showsPrec p (VkPipelineViewportSwizzleStateCreateFlagsNV x) = showParen (p >= 11) (showString "VkPipelineViewportSwizzleStateCreateFlagsNV " . showsPrec 11 x)++instance Read VkPipelineViewportSwizzleStateCreateFlagsNV where+  readPrec = parens ( choose [ +                             ] ++++                      prec 10 (do+                        expectP (Ident "VkPipelineViewportSwizzleStateCreateFlagsNV")+                        v <- step readPrec+                        pure (VkPipelineViewportSwizzleStateCreateFlagsNV v)+                        )+                    )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"+pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = VkStructureType 1000098000+-- No documentation found for TopLevel "VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION"+pattern VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION :: Integral a => a+pattern VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME"+pattern VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME = "VK_NV_viewport_swizzle"+-- | VkViewportSwizzleNV - Structure specifying a viewport swizzle+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @x@ /must/ be a valid 'VkViewportCoordinateSwizzleNV' value+--+-- -   @y@ /must/ be a valid 'VkViewportCoordinateSwizzleNV' value+--+-- -   @z@ /must/ be a valid 'VkViewportCoordinateSwizzleNV' value+--+-- -   @w@ /must/ be a valid 'VkViewportCoordinateSwizzleNV' value+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineViewportSwizzleStateCreateInfoNV',+-- 'VkViewportCoordinateSwizzleNV'+data VkViewportSwizzleNV = VkViewportSwizzleNV+  { -- No documentation found for Nested "VkViewportSwizzleNV" "vkX"+  vkX :: VkViewportCoordinateSwizzleNV+  , -- No documentation found for Nested "VkViewportSwizzleNV" "vkY"+  vkY :: VkViewportCoordinateSwizzleNV+  , -- No documentation found for Nested "VkViewportSwizzleNV" "vkZ"+  vkZ :: VkViewportCoordinateSwizzleNV+  , -- No documentation found for Nested "VkViewportSwizzleNV" "vkW"+  vkW :: VkViewportCoordinateSwizzleNV+  }+  deriving (Eq, Show)++instance Storable VkViewportSwizzleNV where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek ptr = VkViewportSwizzleNV <$> peek (ptr `plusPtr` 0)+                                 <*> peek (ptr `plusPtr` 4)+                                 <*> peek (ptr `plusPtr` 8)+                                 <*> peek (ptr `plusPtr` 12)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkViewportSwizzleNV))+                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkViewportSwizzleNV))+                *> poke (ptr `plusPtr` 8) (vkZ (poked :: VkViewportSwizzleNV))+                *> poke (ptr `plusPtr` 12) (vkW (poked :: VkViewportSwizzleNV))+-- | VkPipelineViewportSwizzleStateCreateInfoNV - Structure specifying+-- swizzle applied to primitive clip coordinates+--+-- = Description+-- #_description#+--+-- == Valid Usage+--+-- -   @viewportCount@ /must/ match the @viewportCount@ set in+--     @VkPipelineViewportStateCreateInfo@+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV@+--+-- -   @flags@ /must/ be @0@+--+-- -   @viewportCount@ /must/ be greater than @0@+--+-- = See Also+-- #_see_also#+--+-- 'VkPipelineViewportSwizzleStateCreateFlagsNV',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType', 'VkViewportSwizzleNV'+data VkPipelineViewportSwizzleStateCreateInfoNV = VkPipelineViewportSwizzleStateCreateInfoNV+  { -- No documentation found for Nested "VkPipelineViewportSwizzleStateCreateInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkPipelineViewportSwizzleStateCreateInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkPipelineViewportSwizzleStateCreateInfoNV" "vkFlags"+  vkFlags :: VkPipelineViewportSwizzleStateCreateFlagsNV+  , -- No documentation found for Nested "VkPipelineViewportSwizzleStateCreateInfoNV" "vkViewportCount"+  vkViewportCount :: Word32+  , -- No documentation found for Nested "VkPipelineViewportSwizzleStateCreateInfoNV" "vkPViewportSwizzles"+  vkPViewportSwizzles :: Ptr VkViewportSwizzleNV+  }+  deriving (Eq, Show)++instance Storable VkPipelineViewportSwizzleStateCreateInfoNV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek ptr = VkPipelineViewportSwizzleStateCreateInfoNV <$> peek (ptr `plusPtr` 0)+                                                        <*> peek (ptr `plusPtr` 8)+                                                        <*> peek (ptr `plusPtr` 16)+                                                        <*> peek (ptr `plusPtr` 20)+                                                        <*> peek (ptr `plusPtr` 24)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineViewportSwizzleStateCreateInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineViewportSwizzleStateCreateInfoNV))+                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineViewportSwizzleStateCreateInfoNV))+                *> poke (ptr `plusPtr` 20) (vkViewportCount (poked :: VkPipelineViewportSwizzleStateCreateInfoNV))+                *> poke (ptr `plusPtr` 24) (vkPViewportSwizzles (poked :: VkPipelineViewportSwizzleStateCreateInfoNV))
+ src/Graphics/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs view
@@ -0,0 +1,125 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PatternSynonyms #-}+{-# language OverloadedStrings #-}+{-# language DuplicateRecordFields #-}++module Graphics.Vulkan.Extensions.VK_NV_win32_keyed_mutex+  ( pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV+  , pattern VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION+  , pattern VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME+  , VkWin32KeyedMutexAcquireReleaseInfoNV(..)+  ) where++import Data.String+  ( IsString+  )+import Data.Word+  ( Word64+  , Word32+  )+import Foreign.Ptr+  ( plusPtr+  , Ptr+  )+import Foreign.Storable+  ( Storable(..)+  , Storable+  )+++import Graphics.Vulkan.Core10.Core+  ( VkStructureType(..)+  )+import Graphics.Vulkan.Core10.Memory+  ( VkDeviceMemory+  )+++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"+pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV :: VkStructureType+pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = VkStructureType 1000058000+-- No documentation found for TopLevel "VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION"+pattern VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION :: Integral a => a+pattern VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION = 1+-- No documentation found for TopLevel "VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME"+pattern VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME :: (Eq a ,IsString a) => a+pattern VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME = "VK_NV_win32_keyed_mutex"+-- | VkWin32KeyedMutexAcquireReleaseInfoNV - use Windows keyex mutex+-- mechanism to synchronize work+--+-- = Description+-- #_description#+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     @VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV@+--+-- -   If @acquireCount@ is not @0@, @pAcquireSyncs@ /must/ be a valid+--     pointer to an array of @acquireCount@ valid @VkDeviceMemory@ handles+--+-- -   If @acquireCount@ is not @0@, @pAcquireKeys@ /must/ be a valid+--     pointer to an array of @acquireCount@ @uint64_t@ values+--+-- -   If @acquireCount@ is not @0@, @pAcquireTimeoutMilliseconds@ /must/+--     be a valid pointer to an array of @acquireCount@ @uint32_t@ values+--+-- -   If @releaseCount@ is not @0@, @pReleaseSyncs@ /must/ be a valid+--     pointer to an array of @releaseCount@ valid @VkDeviceMemory@ handles+--+-- -   If @releaseCount@ is not @0@, @pReleaseKeys@ /must/ be a valid+--     pointer to an array of @releaseCount@ @uint64_t@ values+--+-- -   Both of the elements of @pAcquireSyncs@, and the elements of+--     @pReleaseSyncs@ that are valid handles /must/ have been created,+--     allocated, or retrieved from the same @VkDevice@+--+-- = See Also+-- #_see_also#+--+-- 'Graphics.Vulkan.Core10.Memory.VkDeviceMemory',+-- 'Graphics.Vulkan.Core10.Core.VkStructureType'+data VkWin32KeyedMutexAcquireReleaseInfoNV = VkWin32KeyedMutexAcquireReleaseInfoNV+  { -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkSType"+  vkSType :: VkStructureType+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkPNext"+  vkPNext :: Ptr ()+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkAcquireCount"+  vkAcquireCount :: Word32+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkPAcquireSyncs"+  vkPAcquireSyncs :: Ptr VkDeviceMemory+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkPAcquireKeys"+  vkPAcquireKeys :: Ptr Word64+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkPAcquireTimeoutMilliseconds"+  vkPAcquireTimeoutMilliseconds :: Ptr Word32+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkReleaseCount"+  vkReleaseCount :: Word32+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkPReleaseSyncs"+  vkPReleaseSyncs :: Ptr VkDeviceMemory+  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoNV" "vkPReleaseKeys"+  vkPReleaseKeys :: Ptr Word64+  }+  deriving (Eq, Show)++instance Storable VkWin32KeyedMutexAcquireReleaseInfoNV where+  sizeOf ~_ = 72+  alignment ~_ = 8+  peek ptr = VkWin32KeyedMutexAcquireReleaseInfoNV <$> peek (ptr `plusPtr` 0)+                                                   <*> peek (ptr `plusPtr` 8)+                                                   <*> peek (ptr `plusPtr` 16)+                                                   <*> peek (ptr `plusPtr` 24)+                                                   <*> peek (ptr `plusPtr` 32)+                                                   <*> peek (ptr `plusPtr` 40)+                                                   <*> peek (ptr `plusPtr` 48)+                                                   <*> peek (ptr `plusPtr` 56)+                                                   <*> peek (ptr `plusPtr` 64)+  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))+                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))+                *> poke (ptr `plusPtr` 16) (vkAcquireCount (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))+                *> poke (ptr `plusPtr` 24) (vkPAcquireSyncs (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))+                *> poke (ptr `plusPtr` 32) (vkPAcquireKeys (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))+                *> poke (ptr `plusPtr` 40) (vkPAcquireTimeoutMilliseconds (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))+                *> poke (ptr `plusPtr` 48) (vkReleaseCount (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))+                *> poke (ptr `plusPtr` 56) (vkPReleaseSyncs (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))+                *> poke (ptr `plusPtr` 64) (vkPReleaseKeys (poked :: VkWin32KeyedMutexAcquireReleaseInfoNV))
− src/Graphics/Vulkan/Fence.hs
@@ -1,122 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Fence where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---data VkFenceCreateInfo =-  VkFenceCreateInfo{ vkSType :: VkStructureType -                   , vkPNext :: Ptr Void -                   , vkFlags :: VkFenceCreateFlags -                   }-  deriving (Eq)--instance Storable VkFenceCreateInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkFenceCreateInfo <$> peek (ptr `plusPtr` 0)-                               <*> peek (ptr `plusPtr` 8)-                               <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFenceCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFenceCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkFenceCreateInfo))----- ** vkResetFences-foreign import ccall "vkResetFences" vkResetFences ::-  VkDevice -> Word32 -> Ptr VkFence -> IO VkResult---- ** vkDestroyFence-foreign import ccall "vkDestroyFence" vkDestroyFence ::-  VkDevice -> VkFence -> Ptr VkAllocationCallbacks -> IO ()---- ** vkWaitForFences-foreign import ccall "vkWaitForFences" vkWaitForFences ::-  VkDevice ->-  Word32 -> Ptr VkFence -> VkBool32 -> Word64 -> IO VkResult---- ** vkGetFenceStatus-foreign import ccall "vkGetFenceStatus" vkGetFenceStatus ::-  VkDevice -> VkFence -> IO VkResult---- ** VkFenceCreateFlags--newtype VkFenceCreateFlagBits = VkFenceCreateFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkFenceCreateFlagBits-type VkFenceCreateFlags = VkFenceCreateFlagBits--instance Show VkFenceCreateFlagBits where-  showsPrec _ VK_FENCE_CREATE_SIGNALED_BIT = showString "VK_FENCE_CREATE_SIGNALED_BIT"-  -  showsPrec p (VkFenceCreateFlagBits x) = showParen (p >= 11) (showString "VkFenceCreateFlagBits " . showsPrec 11 x)--instance Read VkFenceCreateFlagBits where-  readPrec = parens ( choose [ ("VK_FENCE_CREATE_SIGNALED_BIT", pure VK_FENCE_CREATE_SIGNALED_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkFenceCreateFlagBits")-                        v <- step readPrec-                        pure (VkFenceCreateFlagBits v)-                        )-                    )---pattern VK_FENCE_CREATE_SIGNALED_BIT = VkFenceCreateFlagBits 0x1----- ** vkCreateFence-foreign import ccall "vkCreateFence" vkCreateFence ::-  VkDevice ->-  Ptr VkFenceCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkFence -> IO VkResult--newtype VkFence = VkFence Word64-  deriving (Eq, Storable)-
− src/Graphics/Vulkan/Image.hs
@@ -1,447 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Image where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Sampler( VkSampleCountFlagBits(..)-                              )-import Graphics.Vulkan.Core( VkExtent3D(..)-                           , VkResult(..)-                           , VkDeviceSize(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkStructureType(..)-                           , VkSharingMode(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---- ** vkCreateImage-foreign import ccall "vkCreateImage" vkCreateImage ::-  VkDevice ->-  Ptr VkImageCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkImage -> IO VkResult---- ** VkImageCreateFlags--newtype VkImageCreateFlagBits = VkImageCreateFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkImageCreateFlagBits-type VkImageCreateFlags = VkImageCreateFlagBits--instance Show VkImageCreateFlagBits where-  showsPrec _ VK_IMAGE_CREATE_SPARSE_BINDING_BIT = showString "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"-  showsPrec _ VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = showString "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"-  showsPrec _ VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = showString "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"-  showsPrec _ VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = showString "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"-  showsPrec _ VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = showString "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"-  -  showsPrec p (VkImageCreateFlagBits x) = showParen (p >= 11) (showString "VkImageCreateFlagBits " . showsPrec 11 x)--instance Read VkImageCreateFlagBits where-  readPrec = parens ( choose [ ("VK_IMAGE_CREATE_SPARSE_BINDING_BIT", pure VK_IMAGE_CREATE_SPARSE_BINDING_BIT)-                             , ("VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", pure VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT)-                             , ("VK_IMAGE_CREATE_SPARSE_ALIASED_BIT", pure VK_IMAGE_CREATE_SPARSE_ALIASED_BIT)-                             , ("VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT", pure VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT)-                             , ("VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT", pure VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkImageCreateFlagBits")-                        v <- step readPrec-                        pure (VkImageCreateFlagBits v)-                        )-                    )---- | Image should support sparse backing-pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT = VkImageCreateFlagBits 0x1--- | Image should support sparse backing with partial residency-pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = VkImageCreateFlagBits 0x2--- | Image should support constent data access to physical memory blocks mapped into multiple locations of sparse images-pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = VkImageCreateFlagBits 0x4--- | Allows image views to have different format than the base image-pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = VkImageCreateFlagBits 0x8--- | Allows creating image views with cube type from the created image-pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = VkImageCreateFlagBits 0x10----- ** VkImageUsageFlags--newtype VkImageUsageFlagBits = VkImageUsageFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkImageUsageFlagBits-type VkImageUsageFlags = VkImageUsageFlagBits--instance Show VkImageUsageFlagBits where-  showsPrec _ VK_IMAGE_USAGE_TRANSFER_SRC_BIT = showString "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"-  showsPrec _ VK_IMAGE_USAGE_TRANSFER_DST_BIT = showString "VK_IMAGE_USAGE_TRANSFER_DST_BIT"-  showsPrec _ VK_IMAGE_USAGE_SAMPLED_BIT = showString "VK_IMAGE_USAGE_SAMPLED_BIT"-  showsPrec _ VK_IMAGE_USAGE_STORAGE_BIT = showString "VK_IMAGE_USAGE_STORAGE_BIT"-  showsPrec _ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = showString "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"-  showsPrec _ VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = showString "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"-  showsPrec _ VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = showString "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"-  showsPrec _ VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = showString "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"-  -  showsPrec p (VkImageUsageFlagBits x) = showParen (p >= 11) (showString "VkImageUsageFlagBits " . showsPrec 11 x)--instance Read VkImageUsageFlagBits where-  readPrec = parens ( choose [ ("VK_IMAGE_USAGE_TRANSFER_SRC_BIT", pure VK_IMAGE_USAGE_TRANSFER_SRC_BIT)-                             , ("VK_IMAGE_USAGE_TRANSFER_DST_BIT", pure VK_IMAGE_USAGE_TRANSFER_DST_BIT)-                             , ("VK_IMAGE_USAGE_SAMPLED_BIT", pure VK_IMAGE_USAGE_SAMPLED_BIT)-                             , ("VK_IMAGE_USAGE_STORAGE_BIT", pure VK_IMAGE_USAGE_STORAGE_BIT)-                             , ("VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", pure VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT)-                             , ("VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", pure VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)-                             , ("VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT", pure VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT)-                             , ("VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", pure VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkImageUsageFlagBits")-                        v <- step readPrec-                        pure (VkImageUsageFlagBits v)-                        )-                    )---- | Can be used as a source of transfer operations-pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT = VkImageUsageFlagBits 0x1--- | Can be used as a destination of transfer operations-pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT = VkImageUsageFlagBits 0x2--- | Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)-pattern VK_IMAGE_USAGE_SAMPLED_BIT = VkImageUsageFlagBits 0x4--- | Can be used as storage image (STORAGE_IMAGE descriptor type)-pattern VK_IMAGE_USAGE_STORAGE_BIT = VkImageUsageFlagBits 0x8--- | Can be used as framebuffer color attachment-pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = VkImageUsageFlagBits 0x10--- | Can be used as framebuffer depth/stencil attachment-pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = VkImageUsageFlagBits 0x20--- | Image data not needed outside of rendering-pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = VkImageUsageFlagBits 0x40--- | Can be used as framebuffer input attachment-pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = VkImageUsageFlagBits 0x80---newtype VkImage = VkImage Word64-  deriving (Eq, Storable)---- ** VkImageAspectFlags--newtype VkImageAspectFlagBits = VkImageAspectFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkImageAspectFlagBits-type VkImageAspectFlags = VkImageAspectFlagBits--instance Show VkImageAspectFlagBits where-  showsPrec _ VK_IMAGE_ASPECT_COLOR_BIT = showString "VK_IMAGE_ASPECT_COLOR_BIT"-  showsPrec _ VK_IMAGE_ASPECT_DEPTH_BIT = showString "VK_IMAGE_ASPECT_DEPTH_BIT"-  showsPrec _ VK_IMAGE_ASPECT_STENCIL_BIT = showString "VK_IMAGE_ASPECT_STENCIL_BIT"-  showsPrec _ VK_IMAGE_ASPECT_METADATA_BIT = showString "VK_IMAGE_ASPECT_METADATA_BIT"-  -  showsPrec p (VkImageAspectFlagBits x) = showParen (p >= 11) (showString "VkImageAspectFlagBits " . showsPrec 11 x)--instance Read VkImageAspectFlagBits where-  readPrec = parens ( choose [ ("VK_IMAGE_ASPECT_COLOR_BIT", pure VK_IMAGE_ASPECT_COLOR_BIT)-                             , ("VK_IMAGE_ASPECT_DEPTH_BIT", pure VK_IMAGE_ASPECT_DEPTH_BIT)-                             , ("VK_IMAGE_ASPECT_STENCIL_BIT", pure VK_IMAGE_ASPECT_STENCIL_BIT)-                             , ("VK_IMAGE_ASPECT_METADATA_BIT", pure VK_IMAGE_ASPECT_METADATA_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkImageAspectFlagBits")-                        v <- step readPrec-                        pure (VkImageAspectFlagBits v)-                        )-                    )---pattern VK_IMAGE_ASPECT_COLOR_BIT = VkImageAspectFlagBits 0x1--pattern VK_IMAGE_ASPECT_DEPTH_BIT = VkImageAspectFlagBits 0x2--pattern VK_IMAGE_ASPECT_STENCIL_BIT = VkImageAspectFlagBits 0x4--pattern VK_IMAGE_ASPECT_METADATA_BIT = VkImageAspectFlagBits 0x8----data VkSubresourceLayout =-  VkSubresourceLayout{ vkOffset :: VkDeviceSize -                     , vkSize :: VkDeviceSize -                     , vkRowPitch :: VkDeviceSize -                     , vkArrayPitch :: VkDeviceSize -                     , vkDepthPitch :: VkDeviceSize -                     }-  deriving (Eq)--instance Storable VkSubresourceLayout where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkSubresourceLayout <$> peek (ptr `plusPtr` 0)-                                 <*> peek (ptr `plusPtr` 8)-                                 <*> peek (ptr `plusPtr` 16)-                                 <*> peek (ptr `plusPtr` 24)-                                 <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkSubresourceLayout))-                *> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSubresourceLayout))-                *> poke (ptr `plusPtr` 16) (vkRowPitch (poked :: VkSubresourceLayout))-                *> poke (ptr `plusPtr` 24) (vkArrayPitch (poked :: VkSubresourceLayout))-                *> poke (ptr `plusPtr` 32) (vkDepthPitch (poked :: VkSubresourceLayout))----- ** VkImageTiling--newtype VkImageTiling = VkImageTiling Int32-  deriving (Eq, Storable)--instance Show VkImageTiling where-  showsPrec _ VK_IMAGE_TILING_OPTIMAL = showString "VK_IMAGE_TILING_OPTIMAL"-  showsPrec _ VK_IMAGE_TILING_LINEAR = showString "VK_IMAGE_TILING_LINEAR"-  showsPrec p (VkImageTiling x) = showParen (p >= 11) (showString "VkImageTiling " . showsPrec 11 x)--instance Read VkImageTiling where-  readPrec = parens ( choose [ ("VK_IMAGE_TILING_OPTIMAL", pure VK_IMAGE_TILING_OPTIMAL)-                             , ("VK_IMAGE_TILING_LINEAR", pure VK_IMAGE_TILING_LINEAR)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkImageTiling")-                        v <- step readPrec-                        pure (VkImageTiling v)-                        )-                    )---pattern VK_IMAGE_TILING_OPTIMAL = VkImageTiling 0--pattern VK_IMAGE_TILING_LINEAR = VkImageTiling 1---- ** VkImageLayout--newtype VkImageLayout = VkImageLayout Int32-  deriving (Eq, Storable)--instance Show VkImageLayout where-  showsPrec _ VK_IMAGE_LAYOUT_UNDEFINED = showString "VK_IMAGE_LAYOUT_UNDEFINED"-  showsPrec _ VK_IMAGE_LAYOUT_GENERAL = showString "VK_IMAGE_LAYOUT_GENERAL"-  showsPrec _ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = showString "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL"-  showsPrec _ VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = showString "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"-  showsPrec _ VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = showString "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL"-  showsPrec _ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = showString "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL"-  showsPrec _ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = showString "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL"-  showsPrec _ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = showString "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL"-  showsPrec _ VK_IMAGE_LAYOUT_PREINITIALIZED = showString "VK_IMAGE_LAYOUT_PREINITIALIZED"-  showsPrec p (VkImageLayout x) = showParen (p >= 11) (showString "VkImageLayout " . showsPrec 11 x)--instance Read VkImageLayout where-  readPrec = parens ( choose [ ("VK_IMAGE_LAYOUT_UNDEFINED", pure VK_IMAGE_LAYOUT_UNDEFINED)-                             , ("VK_IMAGE_LAYOUT_GENERAL", pure VK_IMAGE_LAYOUT_GENERAL)-                             , ("VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", pure VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)-                             , ("VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL", pure VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL)-                             , ("VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", pure VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL)-                             , ("VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", pure VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)-                             , ("VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL", pure VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL)-                             , ("VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL", pure VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL)-                             , ("VK_IMAGE_LAYOUT_PREINITIALIZED", pure VK_IMAGE_LAYOUT_PREINITIALIZED)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkImageLayout")-                        v <- step readPrec-                        pure (VkImageLayout v)-                        )-                    )---- | Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)-pattern VK_IMAGE_LAYOUT_UNDEFINED = VkImageLayout 0--- | General layout when image can be used for any kind of access-pattern VK_IMAGE_LAYOUT_GENERAL = VkImageLayout 1--- | Optimal layout when image is only used for color attachment read/write-pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = VkImageLayout 2--- | Optimal layout when image is only used for depth/stencil attachment read/write-pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = VkImageLayout 3--- | Optimal layout when image is used for read only depth/stencil attachment and shader access-pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = VkImageLayout 4--- | Optimal layout when image is used for read only shader access-pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = VkImageLayout 5--- | Optimal layout when image is used only as source of transfer operations-pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = VkImageLayout 6--- | Optimal layout when image is used only as destination of transfer operations-pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = VkImageLayout 7--- | Initial layout used when the data is populated by the CPU-pattern VK_IMAGE_LAYOUT_PREINITIALIZED = VkImageLayout 8---- ** VkImageType--newtype VkImageType = VkImageType Int32-  deriving (Eq, Storable)--instance Show VkImageType where-  showsPrec _ VK_IMAGE_TYPE_1D = showString "VK_IMAGE_TYPE_1D"-  showsPrec _ VK_IMAGE_TYPE_2D = showString "VK_IMAGE_TYPE_2D"-  showsPrec _ VK_IMAGE_TYPE_3D = showString "VK_IMAGE_TYPE_3D"-  showsPrec p (VkImageType x) = showParen (p >= 11) (showString "VkImageType " . showsPrec 11 x)--instance Read VkImageType where-  readPrec = parens ( choose [ ("VK_IMAGE_TYPE_1D", pure VK_IMAGE_TYPE_1D)-                             , ("VK_IMAGE_TYPE_2D", pure VK_IMAGE_TYPE_2D)-                             , ("VK_IMAGE_TYPE_3D", pure VK_IMAGE_TYPE_3D)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkImageType")-                        v <- step readPrec-                        pure (VkImageType v)-                        )-                    )---pattern VK_IMAGE_TYPE_1D = VkImageType 0--pattern VK_IMAGE_TYPE_2D = VkImageType 1--pattern VK_IMAGE_TYPE_3D = VkImageType 2---- ** vkDestroyImage-foreign import ccall "vkDestroyImage" vkDestroyImage ::-  VkDevice -> VkImage -> Ptr VkAllocationCallbacks -> IO ()---data VkImageSubresource =-  VkImageSubresource{ vkAspectMask :: VkImageAspectFlags -                    , vkMipLevel :: Word32 -                    , vkArrayLayer :: Word32 -                    }-  deriving (Eq)--instance Storable VkImageSubresource where-  sizeOf ~_ = 12-  alignment ~_ = 4-  peek ptr = VkImageSubresource <$> peek (ptr `plusPtr` 0)-                                <*> peek (ptr `plusPtr` 4)-                                <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresource))-                *> poke (ptr `plusPtr` 4) (vkMipLevel (poked :: VkImageSubresource))-                *> poke (ptr `plusPtr` 8) (vkArrayLayer (poked :: VkImageSubresource))----data VkImageSubresourceRange =-  VkImageSubresourceRange{ vkAspectMask :: VkImageAspectFlags -                         , vkBaseMipLevel :: Word32 -                         , vkLevelCount :: Word32 -                         , vkBaseArrayLayer :: Word32 -                         , vkLayerCount :: Word32 -                         }-  deriving (Eq)--instance Storable VkImageSubresourceRange where-  sizeOf ~_ = 20-  alignment ~_ = 4-  peek ptr = VkImageSubresourceRange <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 4)-                                     <*> peek (ptr `plusPtr` 8)-                                     <*> peek (ptr `plusPtr` 12)-                                     <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresourceRange))-                *> poke (ptr `plusPtr` 4) (vkBaseMipLevel (poked :: VkImageSubresourceRange))-                *> poke (ptr `plusPtr` 8) (vkLevelCount (poked :: VkImageSubresourceRange))-                *> poke (ptr `plusPtr` 12) (vkBaseArrayLayer (poked :: VkImageSubresourceRange))-                *> poke (ptr `plusPtr` 16) (vkLayerCount (poked :: VkImageSubresourceRange))----- ** vkGetImageSubresourceLayout-foreign import ccall "vkGetImageSubresourceLayout" vkGetImageSubresourceLayout ::-  VkDevice ->-  VkImage ->-    Ptr VkImageSubresource -> Ptr VkSubresourceLayout -> IO ()---data VkImageCreateInfo =-  VkImageCreateInfo{ vkSType :: VkStructureType -                   , vkPNext :: Ptr Void -                   , vkFlags :: VkImageCreateFlags -                   , vkImageType :: VkImageType -                   , vkFormat :: VkFormat -                   , vkExtent :: VkExtent3D -                   , vkMipLevels :: Word32 -                   , vkArrayLayers :: Word32 -                   , vkSamples :: VkSampleCountFlagBits -                   , vkTiling :: VkImageTiling -                   , vkUsage :: VkImageUsageFlags -                   , vkSharingMode :: VkSharingMode -                   , vkQueueFamilyIndexCount :: Word32 -                   , vkPQueueFamilyIndices :: Ptr Word32 -                   , vkInitialLayout :: VkImageLayout -                   }-  deriving (Eq)--instance Storable VkImageCreateInfo where-  sizeOf ~_ = 88-  alignment ~_ = 8-  peek ptr = VkImageCreateInfo <$> peek (ptr `plusPtr` 0)-                               <*> peek (ptr `plusPtr` 8)-                               <*> peek (ptr `plusPtr` 16)-                               <*> peek (ptr `plusPtr` 20)-                               <*> peek (ptr `plusPtr` 24)-                               <*> peek (ptr `plusPtr` 28)-                               <*> peek (ptr `plusPtr` 40)-                               <*> peek (ptr `plusPtr` 44)-                               <*> peek (ptr `plusPtr` 48)-                               <*> peek (ptr `plusPtr` 52)-                               <*> peek (ptr `plusPtr` 56)-                               <*> peek (ptr `plusPtr` 60)-                               <*> peek (ptr `plusPtr` 64)-                               <*> peek (ptr `plusPtr` 72)-                               <*> peek (ptr `plusPtr` 80)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkImageType (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkFormat (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 28) (vkExtent (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkMipLevels (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 44) (vkArrayLayers (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkSamples (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 52) (vkTiling (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkUsage (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 60) (vkSharingMode (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 64) (vkQueueFamilyIndexCount (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 72) (vkPQueueFamilyIndices (poked :: VkImageCreateInfo))-                *> poke (ptr `plusPtr` 80) (vkInitialLayout (poked :: VkImageCreateInfo))--
− src/Graphics/Vulkan/ImageView.hs
@@ -1,220 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.ImageView where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Image( VkImage(..)-                            , VkImageAspectFlagBits(..)-                            , VkImageSubresourceRange(..)-                            , VkImageAspectFlags(..)-                            )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---data VkImageViewCreateInfo =-  VkImageViewCreateInfo{ vkSType :: VkStructureType -                       , vkPNext :: Ptr Void -                       , vkFlags :: VkImageViewCreateFlags -                       , vkImage :: VkImage -                       , vkViewType :: VkImageViewType -                       , vkFormat :: VkFormat -                       , vkComponents :: VkComponentMapping -                       , vkSubresourceRange :: VkImageSubresourceRange -                       }-  deriving (Eq)--instance Storable VkImageViewCreateInfo where-  sizeOf ~_ = 80-  alignment ~_ = 8-  peek ptr = VkImageViewCreateInfo <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 8)-                                   <*> peek (ptr `plusPtr` 16)-                                   <*> peek (ptr `plusPtr` 24)-                                   <*> peek (ptr `plusPtr` 32)-                                   <*> peek (ptr `plusPtr` 36)-                                   <*> peek (ptr `plusPtr` 40)-                                   <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageViewCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageViewCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkImageViewCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkImage (poked :: VkImageViewCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkViewType (poked :: VkImageViewCreateInfo))-                *> poke (ptr `plusPtr` 36) (vkFormat (poked :: VkImageViewCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkComponents (poked :: VkImageViewCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkSubresourceRange (poked :: VkImageViewCreateInfo))----- ** vkCreateImageView-foreign import ccall "vkCreateImageView" vkCreateImageView ::-  VkDevice ->-  Ptr VkImageViewCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkImageView -> IO VkResult--newtype VkImageView = VkImageView Word64-  deriving (Eq, Storable)---- ** VkImageViewType--newtype VkImageViewType = VkImageViewType Int32-  deriving (Eq, Storable)--instance Show VkImageViewType where-  showsPrec _ VK_IMAGE_VIEW_TYPE_1D = showString "VK_IMAGE_VIEW_TYPE_1D"-  showsPrec _ VK_IMAGE_VIEW_TYPE_2D = showString "VK_IMAGE_VIEW_TYPE_2D"-  showsPrec _ VK_IMAGE_VIEW_TYPE_3D = showString "VK_IMAGE_VIEW_TYPE_3D"-  showsPrec _ VK_IMAGE_VIEW_TYPE_CUBE = showString "VK_IMAGE_VIEW_TYPE_CUBE"-  showsPrec _ VK_IMAGE_VIEW_TYPE_1D_ARRAY = showString "VK_IMAGE_VIEW_TYPE_1D_ARRAY"-  showsPrec _ VK_IMAGE_VIEW_TYPE_2D_ARRAY = showString "VK_IMAGE_VIEW_TYPE_2D_ARRAY"-  showsPrec _ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = showString "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY"-  showsPrec p (VkImageViewType x) = showParen (p >= 11) (showString "VkImageViewType " . showsPrec 11 x)--instance Read VkImageViewType where-  readPrec = parens ( choose [ ("VK_IMAGE_VIEW_TYPE_1D", pure VK_IMAGE_VIEW_TYPE_1D)-                             , ("VK_IMAGE_VIEW_TYPE_2D", pure VK_IMAGE_VIEW_TYPE_2D)-                             , ("VK_IMAGE_VIEW_TYPE_3D", pure VK_IMAGE_VIEW_TYPE_3D)-                             , ("VK_IMAGE_VIEW_TYPE_CUBE", pure VK_IMAGE_VIEW_TYPE_CUBE)-                             , ("VK_IMAGE_VIEW_TYPE_1D_ARRAY", pure VK_IMAGE_VIEW_TYPE_1D_ARRAY)-                             , ("VK_IMAGE_VIEW_TYPE_2D_ARRAY", pure VK_IMAGE_VIEW_TYPE_2D_ARRAY)-                             , ("VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", pure VK_IMAGE_VIEW_TYPE_CUBE_ARRAY)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkImageViewType")-                        v <- step readPrec-                        pure (VkImageViewType v)-                        )-                    )---pattern VK_IMAGE_VIEW_TYPE_1D = VkImageViewType 0--pattern VK_IMAGE_VIEW_TYPE_2D = VkImageViewType 1--pattern VK_IMAGE_VIEW_TYPE_3D = VkImageViewType 2--pattern VK_IMAGE_VIEW_TYPE_CUBE = VkImageViewType 3--pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY = VkImageViewType 4--pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY = VkImageViewType 5--pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = VkImageViewType 6---- ** VkImageViewCreateFlags--- | Opaque flag-newtype VkImageViewCreateFlags = VkImageViewCreateFlags VkFlags-  deriving (Eq, Storable)---data VkComponentMapping =-  VkComponentMapping{ vkR :: VkComponentSwizzle -                    , vkG :: VkComponentSwizzle -                    , vkB :: VkComponentSwizzle -                    , vkA :: VkComponentSwizzle -                    }-  deriving (Eq)--instance Storable VkComponentMapping where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek ptr = VkComponentMapping <$> peek (ptr `plusPtr` 0)-                                <*> peek (ptr `plusPtr` 4)-                                <*> peek (ptr `plusPtr` 8)-                                <*> peek (ptr `plusPtr` 12)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkR (poked :: VkComponentMapping))-                *> poke (ptr `plusPtr` 4) (vkG (poked :: VkComponentMapping))-                *> poke (ptr `plusPtr` 8) (vkB (poked :: VkComponentMapping))-                *> poke (ptr `plusPtr` 12) (vkA (poked :: VkComponentMapping))----- ** VkComponentSwizzle--newtype VkComponentSwizzle = VkComponentSwizzle Int32-  deriving (Eq, Storable)--instance Show VkComponentSwizzle where-  showsPrec _ VK_COMPONENT_SWIZZLE_IDENTITY = showString "VK_COMPONENT_SWIZZLE_IDENTITY"-  showsPrec _ VK_COMPONENT_SWIZZLE_ZERO = showString "VK_COMPONENT_SWIZZLE_ZERO"-  showsPrec _ VK_COMPONENT_SWIZZLE_ONE = showString "VK_COMPONENT_SWIZZLE_ONE"-  showsPrec _ VK_COMPONENT_SWIZZLE_R = showString "VK_COMPONENT_SWIZZLE_R"-  showsPrec _ VK_COMPONENT_SWIZZLE_G = showString "VK_COMPONENT_SWIZZLE_G"-  showsPrec _ VK_COMPONENT_SWIZZLE_B = showString "VK_COMPONENT_SWIZZLE_B"-  showsPrec _ VK_COMPONENT_SWIZZLE_A = showString "VK_COMPONENT_SWIZZLE_A"-  showsPrec p (VkComponentSwizzle x) = showParen (p >= 11) (showString "VkComponentSwizzle " . showsPrec 11 x)--instance Read VkComponentSwizzle where-  readPrec = parens ( choose [ ("VK_COMPONENT_SWIZZLE_IDENTITY", pure VK_COMPONENT_SWIZZLE_IDENTITY)-                             , ("VK_COMPONENT_SWIZZLE_ZERO", pure VK_COMPONENT_SWIZZLE_ZERO)-                             , ("VK_COMPONENT_SWIZZLE_ONE", pure VK_COMPONENT_SWIZZLE_ONE)-                             , ("VK_COMPONENT_SWIZZLE_R", pure VK_COMPONENT_SWIZZLE_R)-                             , ("VK_COMPONENT_SWIZZLE_G", pure VK_COMPONENT_SWIZZLE_G)-                             , ("VK_COMPONENT_SWIZZLE_B", pure VK_COMPONENT_SWIZZLE_B)-                             , ("VK_COMPONENT_SWIZZLE_A", pure VK_COMPONENT_SWIZZLE_A)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkComponentSwizzle")-                        v <- step readPrec-                        pure (VkComponentSwizzle v)-                        )-                    )---pattern VK_COMPONENT_SWIZZLE_IDENTITY = VkComponentSwizzle 0--pattern VK_COMPONENT_SWIZZLE_ZERO = VkComponentSwizzle 1--pattern VK_COMPONENT_SWIZZLE_ONE = VkComponentSwizzle 2--pattern VK_COMPONENT_SWIZZLE_R = VkComponentSwizzle 3--pattern VK_COMPONENT_SWIZZLE_G = VkComponentSwizzle 4--pattern VK_COMPONENT_SWIZZLE_B = VkComponentSwizzle 5--pattern VK_COMPONENT_SWIZZLE_A = VkComponentSwizzle 6---- ** vkDestroyImageView-foreign import ccall "vkDestroyImageView" vkDestroyImageView ::-  VkDevice -> VkImageView -> Ptr VkAllocationCallbacks -> IO ()-
− src/Graphics/Vulkan/KHR/Display.hs
@@ -1,336 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.KHR.Display where--import Graphics.Vulkan.Device( VkPhysicalDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Graphics.Vulkan.KHR.Surface( VkSurfaceTransformFlagBitsKHR(..)-                                  , VkSurfaceTransformFlagsKHR(..)-                                  , VkSurfaceKHR(..)-                                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.DeviceInitialization( VkInstance(..)-                                           )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkExtent2D(..)-                           , VkFlags(..)-                           , VkOffset2D(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CFloat-                      , CFloat(..)-                      , CChar-                      , CSize(..)-                      )---data VkDisplaySurfaceCreateInfoKHR =-  VkDisplaySurfaceCreateInfoKHR{ vkSType :: VkStructureType -                               , vkPNext :: Ptr Void -                               , vkFlags :: VkDisplaySurfaceCreateFlagsKHR -                               , vkDisplayMode :: VkDisplayModeKHR -                               , vkPlaneIndex :: Word32 -                               , vkPlaneStackIndex :: Word32 -                               , vkTransform :: VkSurfaceTransformFlagBitsKHR -                               , vkGlobalAlpha :: CFloat -                               , vkAlphaMode :: VkDisplayPlaneAlphaFlagBitsKHR -                               , vkImageExtent :: VkExtent2D -                               }-  deriving (Eq)--instance Storable VkDisplaySurfaceCreateInfoKHR where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkDisplaySurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)-                                           <*> peek (ptr `plusPtr` 8)-                                           <*> peek (ptr `plusPtr` 16)-                                           <*> peek (ptr `plusPtr` 24)-                                           <*> peek (ptr `plusPtr` 32)-                                           <*> peek (ptr `plusPtr` 36)-                                           <*> peek (ptr `plusPtr` 40)-                                           <*> peek (ptr `plusPtr` 44)-                                           <*> peek (ptr `plusPtr` 48)-                                           <*> peek (ptr `plusPtr` 52)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 24) (vkDisplayMode (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 32) (vkPlaneIndex (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 36) (vkPlaneStackIndex (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 40) (vkTransform (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 44) (vkGlobalAlpha (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 48) (vkAlphaMode (poked :: VkDisplaySurfaceCreateInfoKHR))-                *> poke (ptr `plusPtr` 52) (vkImageExtent (poked :: VkDisplaySurfaceCreateInfoKHR))----data VkDisplayPlaneCapabilitiesKHR =-  VkDisplayPlaneCapabilitiesKHR{ vkSupportedAlpha :: VkDisplayPlaneAlphaFlagsKHR -                               , vkMinSrcPosition :: VkOffset2D -                               , vkMaxSrcPosition :: VkOffset2D -                               , vkMinSrcExtent :: VkExtent2D -                               , vkMaxSrcExtent :: VkExtent2D -                               , vkMinDstPosition :: VkOffset2D -                               , vkMaxDstPosition :: VkOffset2D -                               , vkMinDstExtent :: VkExtent2D -                               , vkMaxDstExtent :: VkExtent2D -                               }-  deriving (Eq)--instance Storable VkDisplayPlaneCapabilitiesKHR where-  sizeOf ~_ = 68-  alignment ~_ = 4-  peek ptr = VkDisplayPlaneCapabilitiesKHR <$> peek (ptr `plusPtr` 0)-                                           <*> peek (ptr `plusPtr` 4)-                                           <*> peek (ptr `plusPtr` 12)-                                           <*> peek (ptr `plusPtr` 20)-                                           <*> peek (ptr `plusPtr` 28)-                                           <*> peek (ptr `plusPtr` 36)-                                           <*> peek (ptr `plusPtr` 44)-                                           <*> peek (ptr `plusPtr` 52)-                                           <*> peek (ptr `plusPtr` 60)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSupportedAlpha (poked :: VkDisplayPlaneCapabilitiesKHR))-                *> poke (ptr `plusPtr` 4) (vkMinSrcPosition (poked :: VkDisplayPlaneCapabilitiesKHR))-                *> poke (ptr `plusPtr` 12) (vkMaxSrcPosition (poked :: VkDisplayPlaneCapabilitiesKHR))-                *> poke (ptr `plusPtr` 20) (vkMinSrcExtent (poked :: VkDisplayPlaneCapabilitiesKHR))-                *> poke (ptr `plusPtr` 28) (vkMaxSrcExtent (poked :: VkDisplayPlaneCapabilitiesKHR))-                *> poke (ptr `plusPtr` 36) (vkMinDstPosition (poked :: VkDisplayPlaneCapabilitiesKHR))-                *> poke (ptr `plusPtr` 44) (vkMaxDstPosition (poked :: VkDisplayPlaneCapabilitiesKHR))-                *> poke (ptr `plusPtr` 52) (vkMinDstExtent (poked :: VkDisplayPlaneCapabilitiesKHR))-                *> poke (ptr `plusPtr` 60) (vkMaxDstExtent (poked :: VkDisplayPlaneCapabilitiesKHR))----- ** vkGetDisplayModePropertiesKHR-foreign import ccall "vkGetDisplayModePropertiesKHR" vkGetDisplayModePropertiesKHR ::-  VkPhysicalDevice ->-  VkDisplayKHR ->-    Ptr Word32 -> Ptr VkDisplayModePropertiesKHR -> IO VkResult---data VkDisplayPropertiesKHR =-  VkDisplayPropertiesKHR{ vkDisplay :: VkDisplayKHR -                        , vkDisplayName :: Ptr CChar -                        , vkPhysicalDimensions :: VkExtent2D -                        , vkPhysicalResolution :: VkExtent2D -                        , vkSupportedTransforms :: VkSurfaceTransformFlagsKHR -                        , vkPlaneReorderPossible :: VkBool32 -                        , vkPersistentContent :: VkBool32 -                        }-  deriving (Eq)--instance Storable VkDisplayPropertiesKHR where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkDisplayPropertiesKHR <$> peek (ptr `plusPtr` 0)-                                    <*> peek (ptr `plusPtr` 8)-                                    <*> peek (ptr `plusPtr` 16)-                                    <*> peek (ptr `plusPtr` 24)-                                    <*> peek (ptr `plusPtr` 32)-                                    <*> peek (ptr `plusPtr` 36)-                                    <*> peek (ptr `plusPtr` 40)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkDisplay (poked :: VkDisplayPropertiesKHR))-                *> poke (ptr `plusPtr` 8) (vkDisplayName (poked :: VkDisplayPropertiesKHR))-                *> poke (ptr `plusPtr` 16) (vkPhysicalDimensions (poked :: VkDisplayPropertiesKHR))-                *> poke (ptr `plusPtr` 24) (vkPhysicalResolution (poked :: VkDisplayPropertiesKHR))-                *> poke (ptr `plusPtr` 32) (vkSupportedTransforms (poked :: VkDisplayPropertiesKHR))-                *> poke (ptr `plusPtr` 36) (vkPlaneReorderPossible (poked :: VkDisplayPropertiesKHR))-                *> poke (ptr `plusPtr` 40) (vkPersistentContent (poked :: VkDisplayPropertiesKHR))----- ** vkGetDisplayPlaneSupportedDisplaysKHR-foreign import ccall "vkGetDisplayPlaneSupportedDisplaysKHR" vkGetDisplayPlaneSupportedDisplaysKHR ::-  VkPhysicalDevice ->-  Word32 -> Ptr Word32 -> Ptr VkDisplayKHR -> IO VkResult---- ** vkCreateDisplayModeKHR-foreign import ccall "vkCreateDisplayModeKHR" vkCreateDisplayModeKHR ::-  VkPhysicalDevice ->-  VkDisplayKHR ->-    Ptr VkDisplayModeCreateInfoKHR ->-      Ptr VkAllocationCallbacks -> Ptr VkDisplayModeKHR -> IO VkResult---data VkDisplayPlanePropertiesKHR =-  VkDisplayPlanePropertiesKHR{ vkCurrentDisplay :: VkDisplayKHR -                             , vkCurrentStackIndex :: Word32 -                             }-  deriving (Eq)--instance Storable VkDisplayPlanePropertiesKHR where-  sizeOf ~_ = 16-  alignment ~_ = 8-  peek ptr = VkDisplayPlanePropertiesKHR <$> peek (ptr `plusPtr` 0)-                                         <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkCurrentDisplay (poked :: VkDisplayPlanePropertiesKHR))-                *> poke (ptr `plusPtr` 8) (vkCurrentStackIndex (poked :: VkDisplayPlanePropertiesKHR))----- ** vkGetDisplayPlaneCapabilitiesKHR-foreign import ccall "vkGetDisplayPlaneCapabilitiesKHR" vkGetDisplayPlaneCapabilitiesKHR ::-  VkPhysicalDevice ->-  VkDisplayModeKHR ->-    Word32 -> Ptr VkDisplayPlaneCapabilitiesKHR -> IO VkResult---data VkDisplayModePropertiesKHR =-  VkDisplayModePropertiesKHR{ vkDisplayMode :: VkDisplayModeKHR -                            , vkParameters :: VkDisplayModeParametersKHR -                            }-  deriving (Eq)--instance Storable VkDisplayModePropertiesKHR where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkDisplayModePropertiesKHR <$> peek (ptr `plusPtr` 0)-                                        <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkDisplayMode (poked :: VkDisplayModePropertiesKHR))-                *> poke (ptr `plusPtr` 8) (vkParameters (poked :: VkDisplayModePropertiesKHR))----- ** VkDisplayPlaneAlphaFlagsKHR--newtype VkDisplayPlaneAlphaFlagBitsKHR = VkDisplayPlaneAlphaFlagBitsKHR VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkDisplayPlaneAlphaFlagBitsKHR-type VkDisplayPlaneAlphaFlagsKHR = VkDisplayPlaneAlphaFlagBitsKHR--instance Show VkDisplayPlaneAlphaFlagBitsKHR where-  showsPrec _ VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = showString "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"-  showsPrec _ VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = showString "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"-  showsPrec _ VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = showString "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"-  showsPrec _ VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = showString "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"-  -  showsPrec p (VkDisplayPlaneAlphaFlagBitsKHR x) = showParen (p >= 11) (showString "VkDisplayPlaneAlphaFlagBitsKHR " . showsPrec 11 x)--instance Read VkDisplayPlaneAlphaFlagBitsKHR where-  readPrec = parens ( choose [ ("VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR", pure VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR)-                             , ("VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR", pure VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR)-                             , ("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR", pure VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR)-                             , ("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR", pure VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkDisplayPlaneAlphaFlagBitsKHR")-                        v <- step readPrec-                        pure (VkDisplayPlaneAlphaFlagBitsKHR v)-                        )-                    )---pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x1--pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x2--pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x4--pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x8----- ** VkDisplayModeCreateFlagsKHR--- | Opaque flag-newtype VkDisplayModeCreateFlagsKHR = VkDisplayModeCreateFlagsKHR VkFlags-  deriving (Eq, Storable)---data VkDisplayModeCreateInfoKHR =-  VkDisplayModeCreateInfoKHR{ vkSType :: VkStructureType -                            , vkPNext :: Ptr Void -                            , vkFlags :: VkDisplayModeCreateFlagsKHR -                            , vkParameters :: VkDisplayModeParametersKHR -                            }-  deriving (Eq)--instance Storable VkDisplayModeCreateInfoKHR where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkDisplayModeCreateInfoKHR <$> peek (ptr `plusPtr` 0)-                                        <*> peek (ptr `plusPtr` 8)-                                        <*> peek (ptr `plusPtr` 16)-                                        <*> peek (ptr `plusPtr` 20)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayModeCreateInfoKHR))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayModeCreateInfoKHR))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDisplayModeCreateInfoKHR))-                *> poke (ptr `plusPtr` 20) (vkParameters (poked :: VkDisplayModeCreateInfoKHR))----- ** vkGetPhysicalDeviceDisplayPlanePropertiesKHR-foreign import ccall "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" vkGetPhysicalDeviceDisplayPlanePropertiesKHR ::-  VkPhysicalDevice ->-  Ptr Word32 -> Ptr VkDisplayPlanePropertiesKHR -> IO VkResult--newtype VkDisplayModeKHR = VkDisplayModeKHR Word64-  deriving (Eq, Storable)---data VkDisplayModeParametersKHR =-  VkDisplayModeParametersKHR{ vkVisibleRegion :: VkExtent2D -                            , vkRefreshRate :: Word32 -                            }-  deriving (Eq)--instance Storable VkDisplayModeParametersKHR where-  sizeOf ~_ = 12-  alignment ~_ = 4-  peek ptr = VkDisplayModeParametersKHR <$> peek (ptr `plusPtr` 0)-                                        <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkVisibleRegion (poked :: VkDisplayModeParametersKHR))-                *> poke (ptr `plusPtr` 8) (vkRefreshRate (poked :: VkDisplayModeParametersKHR))----- ** VkDisplaySurfaceCreateFlagsKHR--- | Opaque flag-newtype VkDisplaySurfaceCreateFlagsKHR = VkDisplaySurfaceCreateFlagsKHR VkFlags-  deriving (Eq, Storable)--newtype VkDisplayKHR = VkDisplayKHR Word64-  deriving (Eq, Storable)---- ** vkGetPhysicalDeviceDisplayPropertiesKHR-foreign import ccall "vkGetPhysicalDeviceDisplayPropertiesKHR" vkGetPhysicalDeviceDisplayPropertiesKHR ::-  VkPhysicalDevice ->-  Ptr Word32 -> Ptr VkDisplayPropertiesKHR -> IO VkResult---- ** vkCreateDisplayPlaneSurfaceKHR-foreign import ccall "vkCreateDisplayPlaneSurfaceKHR" vkCreateDisplayPlaneSurfaceKHR ::-  VkInstance ->-  Ptr VkDisplaySurfaceCreateInfoKHR ->-    Ptr VkAllocationCallbacks -> Ptr VkSurfaceKHR -> IO VkResult-
− src/Graphics/Vulkan/KHR/DisplaySwapchain.hs
@@ -1,85 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-module Graphics.Vulkan.KHR.DisplaySwapchain where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Graphics.Vulkan.KHR.Swapchain( VkSwapchainKHR(..)-                                    , VkSwapchainCreateInfoKHR(..)-                                    , VkSwapchainCreateFlagsKHR(..)-                                    )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Graphics.Vulkan.KHR.Surface( VkColorSpaceKHR(..)-                                  , VkSurfaceTransformFlagBitsKHR(..)-                                  , VkPresentModeKHR(..)-                                  , VkCompositeAlphaFlagBitsKHR(..)-                                  , VkSurfaceKHR(..)-                                  )-import Data.Int( Int32-               )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.Image( VkImageUsageFlags(..)-                            , VkImageUsageFlagBits(..)-                            )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkExtent2D(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkOffset2D(..)-                           , VkRect2D(..)-                           , VkStructureType(..)-                           , VkSharingMode(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---data VkDisplayPresentInfoKHR =-  VkDisplayPresentInfoKHR{ vkSType :: VkStructureType -                         , vkPNext :: Ptr Void -                         , vkSrcRect :: VkRect2D -                         , vkDstRect :: VkRect2D -                         , vkPersistent :: VkBool32 -                         }-  deriving (Eq)--instance Storable VkDisplayPresentInfoKHR where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek ptr = VkDisplayPresentInfoKHR <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 8)-                                     <*> peek (ptr `plusPtr` 16)-                                     <*> peek (ptr `plusPtr` 32)-                                     <*> peek (ptr `plusPtr` 48)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayPresentInfoKHR))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayPresentInfoKHR))-                *> poke (ptr `plusPtr` 16) (vkSrcRect (poked :: VkDisplayPresentInfoKHR))-                *> poke (ptr `plusPtr` 32) (vkDstRect (poked :: VkDisplayPresentInfoKHR))-                *> poke (ptr `plusPtr` 48) (vkPersistent (poked :: VkDisplayPresentInfoKHR))----- ** vkCreateSharedSwapchainsKHR-foreign import ccall "vkCreateSharedSwapchainsKHR" vkCreateSharedSwapchainsKHR ::-  VkDevice ->-  Word32 ->-    Ptr VkSwapchainCreateInfoKHR ->-      Ptr VkAllocationCallbacks -> Ptr VkSwapchainKHR -> IO VkResult-
− src/Graphics/Vulkan/KHR/Surface.hs
@@ -1,295 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.KHR.Surface where--import Graphics.Vulkan.Device( VkPhysicalDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Image( VkImageUsageFlags(..)-                            , VkImageUsageFlagBits(..)-                            )-import Graphics.Vulkan.DeviceInitialization( VkInstance(..)-                                           )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkExtent2D(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---- ** vkGetPhysicalDeviceSurfaceFormatsKHR-foreign import ccall "vkGetPhysicalDeviceSurfaceFormatsKHR" vkGetPhysicalDeviceSurfaceFormatsKHR ::-  VkPhysicalDevice ->-  VkSurfaceKHR -> Ptr Word32 -> Ptr VkSurfaceFormatKHR -> IO VkResult---- ** vkGetPhysicalDeviceSurfaceCapabilitiesKHR-foreign import ccall "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" vkGetPhysicalDeviceSurfaceCapabilitiesKHR ::-  VkPhysicalDevice ->-  VkSurfaceKHR -> Ptr VkSurfaceCapabilitiesKHR -> IO VkResult---- ** VkCompositeAlphaFlagsKHR--newtype VkCompositeAlphaFlagBitsKHR = VkCompositeAlphaFlagBitsKHR VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkCompositeAlphaFlagBitsKHR-type VkCompositeAlphaFlagsKHR = VkCompositeAlphaFlagBitsKHR--instance Show VkCompositeAlphaFlagBitsKHR where-  showsPrec _ VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = showString "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"-  showsPrec _ VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = showString "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"-  showsPrec _ VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = showString "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"-  showsPrec _ VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = showString "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"-  -  showsPrec p (VkCompositeAlphaFlagBitsKHR x) = showParen (p >= 11) (showString "VkCompositeAlphaFlagBitsKHR " . showsPrec 11 x)--instance Read VkCompositeAlphaFlagBitsKHR where-  readPrec = parens ( choose [ ("VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR", pure VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR)-                             , ("VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR", pure VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR)-                             , ("VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR", pure VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR)-                             , ("VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR", pure VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkCompositeAlphaFlagBitsKHR")-                        v <- step readPrec-                        pure (VkCompositeAlphaFlagBitsKHR v)-                        )-                    )---pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x1--pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x2--pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x4--pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x8----- ** VkPresentModeKHR--newtype VkPresentModeKHR = VkPresentModeKHR Int32-  deriving (Eq, Storable)--instance Show VkPresentModeKHR where-  showsPrec _ VK_PRESENT_MODE_IMMEDIATE_KHR = showString "VK_PRESENT_MODE_IMMEDIATE_KHR"-  showsPrec _ VK_PRESENT_MODE_MAILBOX_KHR = showString "VK_PRESENT_MODE_MAILBOX_KHR"-  showsPrec _ VK_PRESENT_MODE_FIFO_KHR = showString "VK_PRESENT_MODE_FIFO_KHR"-  showsPrec _ VK_PRESENT_MODE_FIFO_RELAXED_KHR = showString "VK_PRESENT_MODE_FIFO_RELAXED_KHR"-  showsPrec p (VkPresentModeKHR x) = showParen (p >= 11) (showString "VkPresentModeKHR " . showsPrec 11 x)--instance Read VkPresentModeKHR where-  readPrec = parens ( choose [ ("VK_PRESENT_MODE_IMMEDIATE_KHR", pure VK_PRESENT_MODE_IMMEDIATE_KHR)-                             , ("VK_PRESENT_MODE_MAILBOX_KHR", pure VK_PRESENT_MODE_MAILBOX_KHR)-                             , ("VK_PRESENT_MODE_FIFO_KHR", pure VK_PRESENT_MODE_FIFO_KHR)-                             , ("VK_PRESENT_MODE_FIFO_RELAXED_KHR", pure VK_PRESENT_MODE_FIFO_RELAXED_KHR)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkPresentModeKHR")-                        v <- step readPrec-                        pure (VkPresentModeKHR v)-                        )-                    )---pattern VK_PRESENT_MODE_IMMEDIATE_KHR = VkPresentModeKHR 0--pattern VK_PRESENT_MODE_MAILBOX_KHR = VkPresentModeKHR 1--pattern VK_PRESENT_MODE_FIFO_KHR = VkPresentModeKHR 2--pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR = VkPresentModeKHR 3--newtype VkSurfaceKHR = VkSurfaceKHR Word64-  deriving (Eq, Storable)---- ** vkGetPhysicalDeviceSurfaceSupportKHR-foreign import ccall "vkGetPhysicalDeviceSurfaceSupportKHR" vkGetPhysicalDeviceSurfaceSupportKHR ::-  VkPhysicalDevice ->-  Word32 -> VkSurfaceKHR -> Ptr VkBool32 -> IO VkResult---data VkSurfaceFormatKHR =-  VkSurfaceFormatKHR{ vkFormat :: VkFormat -                    , vkColorSpace :: VkColorSpaceKHR -                    }-  deriving (Eq)--instance Storable VkSurfaceFormatKHR where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek ptr = VkSurfaceFormatKHR <$> peek (ptr `plusPtr` 0)-                                <*> peek (ptr `plusPtr` 4)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkFormat (poked :: VkSurfaceFormatKHR))-                *> poke (ptr `plusPtr` 4) (vkColorSpace (poked :: VkSurfaceFormatKHR))----- ** vkDestroySurfaceKHR-foreign import ccall "vkDestroySurfaceKHR" vkDestroySurfaceKHR ::-  VkInstance -> VkSurfaceKHR -> Ptr VkAllocationCallbacks -> IO ()---- ** VkColorSpaceKHR--newtype VkColorSpaceKHR = VkColorSpaceKHR Int32-  deriving (Eq, Storable)--instance Show VkColorSpaceKHR where-  showsPrec _ VK_COLORSPACE_SRGB_NONLINEAR_KHR = showString "VK_COLORSPACE_SRGB_NONLINEAR_KHR"-  showsPrec p (VkColorSpaceKHR x) = showParen (p >= 11) (showString "VkColorSpaceKHR " . showsPrec 11 x)--instance Read VkColorSpaceKHR where-  readPrec = parens ( choose [ ("VK_COLORSPACE_SRGB_NONLINEAR_KHR", pure VK_COLORSPACE_SRGB_NONLINEAR_KHR)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkColorSpaceKHR")-                        v <- step readPrec-                        pure (VkColorSpaceKHR v)-                        )-                    )---pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR = VkColorSpaceKHR 0---- ** vkGetPhysicalDeviceSurfacePresentModesKHR-foreign import ccall "vkGetPhysicalDeviceSurfacePresentModesKHR" vkGetPhysicalDeviceSurfacePresentModesKHR ::-  VkPhysicalDevice ->-  VkSurfaceKHR -> Ptr Word32 -> Ptr VkPresentModeKHR -> IO VkResult---- ** VkSurfaceTransformFlagsKHR--newtype VkSurfaceTransformFlagBitsKHR = VkSurfaceTransformFlagBitsKHR VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkSurfaceTransformFlagBitsKHR-type VkSurfaceTransformFlagsKHR = VkSurfaceTransformFlagBitsKHR--instance Show VkSurfaceTransformFlagBitsKHR where-  showsPrec _ VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = showString "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"-  showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = showString "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"-  showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = showString "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"-  showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = showString "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"-  showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"-  showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"-  showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"-  showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"-  showsPrec _ VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = showString "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"-  -  showsPrec p (VkSurfaceTransformFlagBitsKHR x) = showParen (p >= 11) (showString "VkSurfaceTransformFlagBitsKHR " . showsPrec 11 x)--instance Read VkSurfaceTransformFlagBitsKHR where-  readPrec = parens ( choose [ ("VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR", pure VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR)-                             , ("VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR", pure VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR)-                             , ("VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR", pure VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR)-                             , ("VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR", pure VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR)-                             , ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR", pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR)-                             , ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR", pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR)-                             , ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR", pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR)-                             , ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR", pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR)-                             , ("VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR", pure VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSurfaceTransformFlagBitsKHR")-                        v <- step readPrec-                        pure (VkSurfaceTransformFlagBitsKHR v)-                        )-                    )---pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x1--pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x2--pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x4--pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x8--pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x10--pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x20--pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x40--pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x80--pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x100----data VkSurfaceCapabilitiesKHR =-  VkSurfaceCapabilitiesKHR{ vkMinImageCount :: Word32 -                          , vkMaxImageCount :: Word32 -                          , vkCurrentExtent :: VkExtent2D -                          , vkMinImageExtent :: VkExtent2D -                          , vkMaxImageExtent :: VkExtent2D -                          , vkMaxImageArrayLayers :: Word32 -                          , vkSupportedTransforms :: VkSurfaceTransformFlagsKHR -                          , vkCurrentTransform :: VkSurfaceTransformFlagBitsKHR -                          , vkSupportedCompositeAlpha :: VkCompositeAlphaFlagsKHR -                          , vkSupportedUsageFlags :: VkImageUsageFlags -                          }-  deriving (Eq)--instance Storable VkSurfaceCapabilitiesKHR where-  sizeOf ~_ = 52-  alignment ~_ = 4-  peek ptr = VkSurfaceCapabilitiesKHR <$> peek (ptr `plusPtr` 0)-                                      <*> peek (ptr `plusPtr` 4)-                                      <*> peek (ptr `plusPtr` 8)-                                      <*> peek (ptr `plusPtr` 16)-                                      <*> peek (ptr `plusPtr` 24)-                                      <*> peek (ptr `plusPtr` 32)-                                      <*> peek (ptr `plusPtr` 36)-                                      <*> peek (ptr `plusPtr` 40)-                                      <*> peek (ptr `plusPtr` 44)-                                      <*> peek (ptr `plusPtr` 48)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkMinImageCount (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 4) (vkMaxImageCount (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 8) (vkCurrentExtent (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 16) (vkMinImageExtent (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 24) (vkMaxImageExtent (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 32) (vkMaxImageArrayLayers (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 36) (vkSupportedTransforms (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 40) (vkCurrentTransform (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 44) (vkSupportedCompositeAlpha (poked :: VkSurfaceCapabilitiesKHR))-                *> poke (ptr `plusPtr` 48) (vkSupportedUsageFlags (poked :: VkSurfaceCapabilitiesKHR))--
− src/Graphics/Vulkan/KHR/Swapchain.hs
@@ -1,184 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.KHR.Swapchain where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Graphics.Vulkan.KHR.Surface( VkColorSpaceKHR(..)-                                  , VkSurfaceTransformFlagBitsKHR(..)-                                  , VkPresentModeKHR(..)-                                  , VkCompositeAlphaFlagBitsKHR(..)-                                  , VkSurfaceKHR(..)-                                  )-import Graphics.Vulkan.Queue( VkQueue(..)-                            )-import Foreign.Storable( Storable(..)-                       )-import Graphics.Vulkan.Fence( VkFence(..)-                            )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.Image( VkImageUsageFlags(..)-                            , VkImage(..)-                            , VkImageUsageFlagBits(..)-                            )-import Graphics.Vulkan.QueueSemaphore( VkSemaphore(..)-                                     )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkExtent2D(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkStructureType(..)-                           , VkSharingMode(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---data VkSwapchainCreateInfoKHR =-  VkSwapchainCreateInfoKHR{ vkSType :: VkStructureType -                          , vkPNext :: Ptr Void -                          , vkFlags :: VkSwapchainCreateFlagsKHR -                          , vkSurface :: VkSurfaceKHR -                          , vkMinImageCount :: Word32 -                          , vkImageFormat :: VkFormat -                          , vkImageColorSpace :: VkColorSpaceKHR -                          , vkImageExtent :: VkExtent2D -                          , vkImageArrayLayers :: Word32 -                          , vkImageUsage :: VkImageUsageFlags -                          , vkImageSharingMode :: VkSharingMode -                          , vkQueueFamilyIndexCount :: Word32 -                          , vkPQueueFamilyIndices :: Ptr Word32 -                          , vkPreTransform :: VkSurfaceTransformFlagBitsKHR -                          , vkCompositeAlpha :: VkCompositeAlphaFlagBitsKHR -                          , vkPresentMode :: VkPresentModeKHR -                          , vkClipped :: VkBool32 -                          , vkOldSwapchain :: VkSwapchainKHR -                          }-  deriving (Eq)--instance Storable VkSwapchainCreateInfoKHR where-  sizeOf ~_ = 104-  alignment ~_ = 8-  peek ptr = VkSwapchainCreateInfoKHR <$> peek (ptr `plusPtr` 0)-                                      <*> peek (ptr `plusPtr` 8)-                                      <*> peek (ptr `plusPtr` 16)-                                      <*> peek (ptr `plusPtr` 24)-                                      <*> peek (ptr `plusPtr` 32)-                                      <*> peek (ptr `plusPtr` 36)-                                      <*> peek (ptr `plusPtr` 40)-                                      <*> peek (ptr `plusPtr` 44)-                                      <*> peek (ptr `plusPtr` 52)-                                      <*> peek (ptr `plusPtr` 56)-                                      <*> peek (ptr `plusPtr` 60)-                                      <*> peek (ptr `plusPtr` 64)-                                      <*> peek (ptr `plusPtr` 72)-                                      <*> peek (ptr `plusPtr` 80)-                                      <*> peek (ptr `plusPtr` 84)-                                      <*> peek (ptr `plusPtr` 88)-                                      <*> peek (ptr `plusPtr` 92)-                                      <*> peek (ptr `plusPtr` 96)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 24) (vkSurface (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 32) (vkMinImageCount (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 36) (vkImageFormat (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 40) (vkImageColorSpace (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 44) (vkImageExtent (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 52) (vkImageArrayLayers (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 56) (vkImageUsage (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 60) (vkImageSharingMode (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 64) (vkQueueFamilyIndexCount (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 72) (vkPQueueFamilyIndices (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 80) (vkPreTransform (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 84) (vkCompositeAlpha (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 88) (vkPresentMode (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 92) (vkClipped (poked :: VkSwapchainCreateInfoKHR))-                *> poke (ptr `plusPtr` 96) (vkOldSwapchain (poked :: VkSwapchainCreateInfoKHR))----- ** vkGetSwapchainImagesKHR-foreign import ccall "vkGetSwapchainImagesKHR" vkGetSwapchainImagesKHR ::-  VkDevice ->-  VkSwapchainKHR -> Ptr Word32 -> Ptr VkImage -> IO VkResult---- ** vkDestroySwapchainKHR-foreign import ccall "vkDestroySwapchainKHR" vkDestroySwapchainKHR ::-  VkDevice -> VkSwapchainKHR -> Ptr VkAllocationCallbacks -> IO ()---- ** vkQueuePresentKHR-foreign import ccall "vkQueuePresentKHR" vkQueuePresentKHR ::-  VkQueue -> Ptr VkPresentInfoKHR -> IO VkResult---- ** VkSwapchainCreateFlagsKHR--- | Opaque flag-newtype VkSwapchainCreateFlagsKHR = VkSwapchainCreateFlagsKHR VkFlags-  deriving (Eq, Storable)---- ** vkCreateSwapchainKHR-foreign import ccall "vkCreateSwapchainKHR" vkCreateSwapchainKHR ::-  VkDevice ->-  Ptr VkSwapchainCreateInfoKHR ->-    Ptr VkAllocationCallbacks -> Ptr VkSwapchainKHR -> IO VkResult---- ** vkAcquireNextImageKHR-foreign import ccall "vkAcquireNextImageKHR" vkAcquireNextImageKHR ::-  VkDevice ->-  VkSwapchainKHR ->-    Word64 -> VkSemaphore -> VkFence -> Ptr Word32 -> IO VkResult---data VkPresentInfoKHR =-  VkPresentInfoKHR{ vkSType :: VkStructureType -                  , vkPNext :: Ptr Void -                  , vkWaitSemaphoreCount :: Word32 -                  , vkPWaitSemaphores :: Ptr VkSemaphore -                  , vkSwapchainCount :: Word32 -                  , vkPSwapchains :: Ptr VkSwapchainKHR -                  , vkPImageIndices :: Ptr Word32 -                  , vkPResults :: Ptr VkResult -                  }-  deriving (Eq)--instance Storable VkPresentInfoKHR where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkPresentInfoKHR <$> peek (ptr `plusPtr` 0)-                              <*> peek (ptr `plusPtr` 8)-                              <*> peek (ptr `plusPtr` 16)-                              <*> peek (ptr `plusPtr` 24)-                              <*> peek (ptr `plusPtr` 32)-                              <*> peek (ptr `plusPtr` 40)-                              <*> peek (ptr `plusPtr` 48)-                              <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPresentInfoKHR))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPresentInfoKHR))-                *> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkPresentInfoKHR))-                *> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkPresentInfoKHR))-                *> poke (ptr `plusPtr` 32) (vkSwapchainCount (poked :: VkPresentInfoKHR))-                *> poke (ptr `plusPtr` 40) (vkPSwapchains (poked :: VkPresentInfoKHR))-                *> poke (ptr `plusPtr` 48) (vkPImageIndices (poked :: VkPresentInfoKHR))-                *> poke (ptr `plusPtr` 56) (vkPResults (poked :: VkPresentInfoKHR))---newtype VkSwapchainKHR = VkSwapchainKHR Word64-  deriving (Eq, Storable)-
− src/Graphics/Vulkan/LayerDiscovery.hs
@@ -1,55 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE Strict #-}-module Graphics.Vulkan.LayerDiscovery where--import Data.Vector.Storable.Sized( Vector-                                 )-import Graphics.Vulkan.Device( VkPhysicalDevice(..)-                             )-import Data.Word( Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Foreign.Storable( Storable(..)-                       )-import Graphics.Vulkan.Constants( VK_MAX_EXTENSION_NAME_SIZE-                                , VK_MAX_DESCRIPTION_SIZE-                                )-import Graphics.Vulkan.Core( VkResult(..)-                           )-import Foreign.C.Types( CChar-                      )---data VkLayerProperties =-  VkLayerProperties{ vkLayerName :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar -                   , vkSpecVersion :: Word32 -                   , vkImplementationVersion :: Word32 -                   , vkDescription :: Vector VK_MAX_DESCRIPTION_SIZE CChar -                   }-  deriving (Eq)--instance Storable VkLayerProperties where-  sizeOf ~_ = 520-  alignment ~_ = 4-  peek ptr = VkLayerProperties <$> peek (ptr `plusPtr` 0)-                               <*> peek (ptr `plusPtr` 256)-                               <*> peek (ptr `plusPtr` 260)-                               <*> peek (ptr `plusPtr` 264)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkLayerName (poked :: VkLayerProperties))-                *> poke (ptr `plusPtr` 256) (vkSpecVersion (poked :: VkLayerProperties))-                *> poke (ptr `plusPtr` 260) (vkImplementationVersion (poked :: VkLayerProperties))-                *> poke (ptr `plusPtr` 264) (vkDescription (poked :: VkLayerProperties))----- ** vkEnumerateInstanceLayerProperties-foreign import ccall "vkEnumerateInstanceLayerProperties" vkEnumerateInstanceLayerProperties ::-  Ptr Word32 -> Ptr VkLayerProperties -> IO VkResult---- ** vkEnumerateDeviceLayerProperties-foreign import ccall "vkEnumerateDeviceLayerProperties" vkEnumerateDeviceLayerProperties ::-  VkPhysicalDevice ->-  Ptr Word32 -> Ptr VkLayerProperties -> IO VkResult-
− src/Graphics/Vulkan/Memory.hs
@@ -1,239 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Memory where--import {-# SOURCE #-} Graphics.Vulkan.Device( VkDevice(..)-                                            )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , FunPtr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkDeviceSize(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize-                      , CSize(..)-                      )--newtype VkDeviceMemory = VkDeviceMemory Word64-  deriving (Eq, Storable)---- ** vkMapMemory-foreign import ccall "vkMapMemory" vkMapMemory ::-  VkDevice ->-  VkDeviceMemory ->-    VkDeviceSize ->-      VkDeviceSize -> VkMemoryMapFlags -> Ptr (Ptr Void) -> IO VkResult--type PFN_vkInternalFreeNotification = FunPtr-  (Ptr Void ->-     CSize ->-       VkInternalAllocationType -> VkSystemAllocationScope -> IO ())---data VkAllocationCallbacks =-  VkAllocationCallbacks{ vkPUserData :: Ptr Void -                       , vkPfnAllocation :: PFN_vkAllocationFunction -                       , vkPfnReallocation :: PFN_vkReallocationFunction -                       , vkPfnFree :: PFN_vkFreeFunction -                       , vkPfnInternalAllocation :: PFN_vkInternalAllocationNotification -                       , vkPfnInternalFree :: PFN_vkInternalFreeNotification -                       }-  deriving (Eq)--instance Storable VkAllocationCallbacks where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkAllocationCallbacks <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 8)-                                   <*> peek (ptr `plusPtr` 16)-                                   <*> peek (ptr `plusPtr` 24)-                                   <*> peek (ptr `plusPtr` 32)-                                   <*> peek (ptr `plusPtr` 40)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkPUserData (poked :: VkAllocationCallbacks))-                *> poke (ptr `plusPtr` 8) (vkPfnAllocation (poked :: VkAllocationCallbacks))-                *> poke (ptr `plusPtr` 16) (vkPfnReallocation (poked :: VkAllocationCallbacks))-                *> poke (ptr `plusPtr` 24) (vkPfnFree (poked :: VkAllocationCallbacks))-                *> poke (ptr `plusPtr` 32) (vkPfnInternalAllocation (poked :: VkAllocationCallbacks))-                *> poke (ptr `plusPtr` 40) (vkPfnInternalFree (poked :: VkAllocationCallbacks))----- ** vkInvalidateMappedMemoryRanges-foreign import ccall "vkInvalidateMappedMemoryRanges" vkInvalidateMappedMemoryRanges ::-  VkDevice -> Word32 -> Ptr VkMappedMemoryRange -> IO VkResult---- ** VkSystemAllocationScope--newtype VkSystemAllocationScope = VkSystemAllocationScope Int32-  deriving (Eq, Storable)--instance Show VkSystemAllocationScope where-  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = showString "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"-  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = showString "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"-  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_CACHE = showString "VK_SYSTEM_ALLOCATION_SCOPE_CACHE"-  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = showString "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"-  showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = showString "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE"-  showsPrec p (VkSystemAllocationScope x) = showParen (p >= 11) (showString "VkSystemAllocationScope " . showsPrec 11 x)--instance Read VkSystemAllocationScope where-  readPrec = parens ( choose [ ("VK_SYSTEM_ALLOCATION_SCOPE_COMMAND", pure VK_SYSTEM_ALLOCATION_SCOPE_COMMAND)-                             , ("VK_SYSTEM_ALLOCATION_SCOPE_OBJECT", pure VK_SYSTEM_ALLOCATION_SCOPE_OBJECT)-                             , ("VK_SYSTEM_ALLOCATION_SCOPE_CACHE", pure VK_SYSTEM_ALLOCATION_SCOPE_CACHE)-                             , ("VK_SYSTEM_ALLOCATION_SCOPE_DEVICE", pure VK_SYSTEM_ALLOCATION_SCOPE_DEVICE)-                             , ("VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE", pure VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSystemAllocationScope")-                        v <- step readPrec-                        pure (VkSystemAllocationScope v)-                        )-                    )---pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = VkSystemAllocationScope 0--pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = VkSystemAllocationScope 1--pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE = VkSystemAllocationScope 2--pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = VkSystemAllocationScope 3--pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = VkSystemAllocationScope 4---- ** vkFlushMappedMemoryRanges-foreign import ccall "vkFlushMappedMemoryRanges" vkFlushMappedMemoryRanges ::-  VkDevice -> Word32 -> Ptr VkMappedMemoryRange -> IO VkResult---- ** VkMemoryMapFlags--- | Opaque flag-newtype VkMemoryMapFlags = VkMemoryMapFlags VkFlags-  deriving (Eq, Storable)--type PFN_vkInternalAllocationNotification = FunPtr-  (Ptr Void ->-     CSize ->-       VkInternalAllocationType -> VkSystemAllocationScope -> IO ())---- ** vkFreeMemory-foreign import ccall "vkFreeMemory" vkFreeMemory ::-  VkDevice -> VkDeviceMemory -> Ptr VkAllocationCallbacks -> IO ()--type PFN_vkReallocationFunction = FunPtr-  (Ptr Void ->-     Ptr Void ->-       CSize -> CSize -> VkSystemAllocationScope -> IO (Ptr Void))---- ** vkUnmapMemory-foreign import ccall "vkUnmapMemory" vkUnmapMemory ::-  VkDevice -> VkDeviceMemory -> IO ()--type PFN_vkAllocationFunction = FunPtr-  (Ptr Void ->-     CSize -> CSize -> VkSystemAllocationScope -> IO (Ptr Void))---- ** VkInternalAllocationType--newtype VkInternalAllocationType = VkInternalAllocationType Int32-  deriving (Eq, Storable)--instance Show VkInternalAllocationType where-  showsPrec _ VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = showString "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE"-  showsPrec p (VkInternalAllocationType x) = showParen (p >= 11) (showString "VkInternalAllocationType " . showsPrec 11 x)--instance Read VkInternalAllocationType where-  readPrec = parens ( choose [ ("VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE", pure VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkInternalAllocationType")-                        v <- step readPrec-                        pure (VkInternalAllocationType v)-                        )-                    )---pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = VkInternalAllocationType 0--type PFN_vkFreeFunction = FunPtr (Ptr Void -> Ptr Void -> IO ())---- ** vkGetDeviceMemoryCommitment-foreign import ccall "vkGetDeviceMemoryCommitment" vkGetDeviceMemoryCommitment ::-  VkDevice -> VkDeviceMemory -> Ptr VkDeviceSize -> IO ()---- ** vkAllocateMemory-foreign import ccall "vkAllocateMemory" vkAllocateMemory ::-  VkDevice ->-  Ptr VkMemoryAllocateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkDeviceMemory -> IO VkResult---data VkMappedMemoryRange =-  VkMappedMemoryRange{ vkSType :: VkStructureType -                     , vkPNext :: Ptr Void -                     , vkMemory :: VkDeviceMemory -                     , vkOffset :: VkDeviceSize -                     , vkSize :: VkDeviceSize -                     }-  deriving (Eq)--instance Storable VkMappedMemoryRange where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkMappedMemoryRange <$> peek (ptr `plusPtr` 0)-                                 <*> peek (ptr `plusPtr` 8)-                                 <*> peek (ptr `plusPtr` 16)-                                 <*> peek (ptr `plusPtr` 24)-                                 <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMappedMemoryRange))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMappedMemoryRange))-                *> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkMappedMemoryRange))-                *> poke (ptr `plusPtr` 24) (vkOffset (poked :: VkMappedMemoryRange))-                *> poke (ptr `plusPtr` 32) (vkSize (poked :: VkMappedMemoryRange))----data VkMemoryAllocateInfo =-  VkMemoryAllocateInfo{ vkSType :: VkStructureType -                      , vkPNext :: Ptr Void -                      , vkAllocationSize :: VkDeviceSize -                      , vkMemoryTypeIndex :: Word32 -                      }-  deriving (Eq)--instance Storable VkMemoryAllocateInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkMemoryAllocateInfo <$> peek (ptr `plusPtr` 0)-                                  <*> peek (ptr `plusPtr` 8)-                                  <*> peek (ptr `plusPtr` 16)-                                  <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryAllocateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryAllocateInfo))-                *> poke (ptr `plusPtr` 16) (vkAllocationSize (poked :: VkMemoryAllocateInfo))-                *> poke (ptr `plusPtr` 24) (vkMemoryTypeIndex (poked :: VkMemoryAllocateInfo))--
− src/Graphics/Vulkan/MemoryManagement.hs
@@ -1,63 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-module Graphics.Vulkan.MemoryManagement where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Graphics.Vulkan.Buffer( VkBuffer(..)-                             )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkDeviceMemory(..)-                             )-import Graphics.Vulkan.Image( VkImage(..)-                            )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkDeviceSize(..)-                           )---- ** vkGetImageMemoryRequirements-foreign import ccall "vkGetImageMemoryRequirements" vkGetImageMemoryRequirements ::-  VkDevice -> VkImage -> Ptr VkMemoryRequirements -> IO ()---data VkMemoryRequirements =-  VkMemoryRequirements{ vkSize :: VkDeviceSize -                      , vkAlignment :: VkDeviceSize -                      , vkMemoryTypeBits :: Word32 -                      }-  deriving (Eq)--instance Storable VkMemoryRequirements where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkMemoryRequirements <$> peek (ptr `plusPtr` 0)-                                  <*> peek (ptr `plusPtr` 8)-                                  <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSize (poked :: VkMemoryRequirements))-                *> poke (ptr `plusPtr` 8) (vkAlignment (poked :: VkMemoryRequirements))-                *> poke (ptr `plusPtr` 16) (vkMemoryTypeBits (poked :: VkMemoryRequirements))----- ** vkGetBufferMemoryRequirements-foreign import ccall "vkGetBufferMemoryRequirements" vkGetBufferMemoryRequirements ::-  VkDevice -> VkBuffer -> Ptr VkMemoryRequirements -> IO ()---- ** vkBindBufferMemory-foreign import ccall "vkBindBufferMemory" vkBindBufferMemory ::-  VkDevice ->-  VkBuffer -> VkDeviceMemory -> VkDeviceSize -> IO VkResult---- ** vkBindImageMemory-foreign import ccall "vkBindImageMemory" vkBindImageMemory ::-  VkDevice ->-  VkImage -> VkDeviceMemory -> VkDeviceSize -> IO VkResult-
+ src/Graphics/Vulkan/NamedType.hs view
@@ -0,0 +1,17 @@+{-# language Strict #-}+{-# language CPP #-}+{-# language PolyKinds #-}+{-# language TypeOperators #-}++module Graphics.Vulkan.NamedType+  ( (:::)+  ) where++++++++-- | Annotate a type with a name+type (name :: k) ::: a = a
− src/Graphics/Vulkan/OtherTypes.hs
@@ -1,197 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-module Graphics.Vulkan.OtherTypes where--import Graphics.Vulkan.Buffer( VkBuffer(..)-                             )-import Graphics.Vulkan.Pass( VkAccessFlags(..)-                           , VkAccessFlagBits(..)-                           )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Image( VkImage(..)-                            , VkImageLayout(..)-                            , VkImageAspectFlagBits(..)-                            , VkImageSubresourceRange(..)-                            , VkImageAspectFlags(..)-                            )-import Graphics.Vulkan.Core( VkDeviceSize(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )---data VkBufferMemoryBarrier =-  VkBufferMemoryBarrier{ vkSType :: VkStructureType -                       , vkPNext :: Ptr Void -                       , vkSrcAccessMask :: VkAccessFlags -                       , vkDstAccessMask :: VkAccessFlags -                       , vkSrcQueueFamilyIndex :: Word32 -                       , vkDstQueueFamilyIndex :: Word32 -                       , vkBuffer :: VkBuffer -                       , vkOffset :: VkDeviceSize -                       , vkSize :: VkDeviceSize -                       }-  deriving (Eq)--instance Storable VkBufferMemoryBarrier where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek ptr = VkBufferMemoryBarrier <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 8)-                                   <*> peek (ptr `plusPtr` 16)-                                   <*> peek (ptr `plusPtr` 20)-                                   <*> peek (ptr `plusPtr` 24)-                                   <*> peek (ptr `plusPtr` 28)-                                   <*> peek (ptr `plusPtr` 32)-                                   <*> peek (ptr `plusPtr` 40)-                                   <*> peek (ptr `plusPtr` 48)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferMemoryBarrier))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferMemoryBarrier))-                *> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkBufferMemoryBarrier))-                *> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkBufferMemoryBarrier))-                *> poke (ptr `plusPtr` 24) (vkSrcQueueFamilyIndex (poked :: VkBufferMemoryBarrier))-                *> poke (ptr `plusPtr` 28) (vkDstQueueFamilyIndex (poked :: VkBufferMemoryBarrier))-                *> poke (ptr `plusPtr` 32) (vkBuffer (poked :: VkBufferMemoryBarrier))-                *> poke (ptr `plusPtr` 40) (vkOffset (poked :: VkBufferMemoryBarrier))-                *> poke (ptr `plusPtr` 48) (vkSize (poked :: VkBufferMemoryBarrier))----data VkDrawIndexedIndirectCommand =-  VkDrawIndexedIndirectCommand{ vkIndexCount :: Word32 -                              , vkInstanceCount :: Word32 -                              , vkFirstIndex :: Word32 -                              , vkVertexOffset :: Int32 -                              , vkFirstInstance :: Word32 -                              }-  deriving (Eq)--instance Storable VkDrawIndexedIndirectCommand where-  sizeOf ~_ = 20-  alignment ~_ = 4-  peek ptr = VkDrawIndexedIndirectCommand <$> peek (ptr `plusPtr` 0)-                                          <*> peek (ptr `plusPtr` 4)-                                          <*> peek (ptr `plusPtr` 8)-                                          <*> peek (ptr `plusPtr` 12)-                                          <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkIndexCount (poked :: VkDrawIndexedIndirectCommand))-                *> poke (ptr `plusPtr` 4) (vkInstanceCount (poked :: VkDrawIndexedIndirectCommand))-                *> poke (ptr `plusPtr` 8) (vkFirstIndex (poked :: VkDrawIndexedIndirectCommand))-                *> poke (ptr `plusPtr` 12) (vkVertexOffset (poked :: VkDrawIndexedIndirectCommand))-                *> poke (ptr `plusPtr` 16) (vkFirstInstance (poked :: VkDrawIndexedIndirectCommand))----data VkImageMemoryBarrier =-  VkImageMemoryBarrier{ vkSType :: VkStructureType -                      , vkPNext :: Ptr Void -                      , vkSrcAccessMask :: VkAccessFlags -                      , vkDstAccessMask :: VkAccessFlags -                      , vkOldLayout :: VkImageLayout -                      , vkNewLayout :: VkImageLayout -                      , vkSrcQueueFamilyIndex :: Word32 -                      , vkDstQueueFamilyIndex :: Word32 -                      , vkImage :: VkImage -                      , vkSubresourceRange :: VkImageSubresourceRange -                      }-  deriving (Eq)--instance Storable VkImageMemoryBarrier where-  sizeOf ~_ = 72-  alignment ~_ = 8-  peek ptr = VkImageMemoryBarrier <$> peek (ptr `plusPtr` 0)-                                  <*> peek (ptr `plusPtr` 8)-                                  <*> peek (ptr `plusPtr` 16)-                                  <*> peek (ptr `plusPtr` 20)-                                  <*> peek (ptr `plusPtr` 24)-                                  <*> peek (ptr `plusPtr` 28)-                                  <*> peek (ptr `plusPtr` 32)-                                  <*> peek (ptr `plusPtr` 36)-                                  <*> peek (ptr `plusPtr` 40)-                                  <*> peek (ptr `plusPtr` 48)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 24) (vkOldLayout (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 28) (vkNewLayout (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 32) (vkSrcQueueFamilyIndex (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 36) (vkDstQueueFamilyIndex (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 40) (vkImage (poked :: VkImageMemoryBarrier))-                *> poke (ptr `plusPtr` 48) (vkSubresourceRange (poked :: VkImageMemoryBarrier))----data VkMemoryBarrier =-  VkMemoryBarrier{ vkSType :: VkStructureType -                 , vkPNext :: Ptr Void -                 , vkSrcAccessMask :: VkAccessFlags -                 , vkDstAccessMask :: VkAccessFlags -                 }-  deriving (Eq)--instance Storable VkMemoryBarrier where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkMemoryBarrier <$> peek (ptr `plusPtr` 0)-                             <*> peek (ptr `plusPtr` 8)-                             <*> peek (ptr `plusPtr` 16)-                             <*> peek (ptr `plusPtr` 20)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryBarrier))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryBarrier))-                *> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkMemoryBarrier))-                *> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkMemoryBarrier))----data VkDrawIndirectCommand =-  VkDrawIndirectCommand{ vkVertexCount :: Word32 -                       , vkInstanceCount :: Word32 -                       , vkFirstVertex :: Word32 -                       , vkFirstInstance :: Word32 -                       }-  deriving (Eq)--instance Storable VkDrawIndirectCommand where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek ptr = VkDrawIndirectCommand <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 4)-                                   <*> peek (ptr `plusPtr` 8)-                                   <*> peek (ptr `plusPtr` 12)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkVertexCount (poked :: VkDrawIndirectCommand))-                *> poke (ptr `plusPtr` 4) (vkInstanceCount (poked :: VkDrawIndirectCommand))-                *> poke (ptr `plusPtr` 8) (vkFirstVertex (poked :: VkDrawIndirectCommand))-                *> poke (ptr `plusPtr` 12) (vkFirstInstance (poked :: VkDrawIndirectCommand))----data VkDispatchIndirectCommand =-  VkDispatchIndirectCommand{ vkX :: Word32 -                           , vkY :: Word32 -                           , vkZ :: Word32 -                           }-  deriving (Eq)--instance Storable VkDispatchIndirectCommand where-  sizeOf ~_ = 12-  alignment ~_ = 4-  peek ptr = VkDispatchIndirectCommand <$> peek (ptr `plusPtr` 0)-                                       <*> peek (ptr `plusPtr` 4)-                                       <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkDispatchIndirectCommand))-                *> poke (ptr `plusPtr` 4) (vkY (poked :: VkDispatchIndirectCommand))-                *> poke (ptr `plusPtr` 8) (vkZ (poked :: VkDispatchIndirectCommand))--
− src/Graphics/Vulkan/Pass.hs
@@ -1,507 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Pass where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Graphics.Vulkan.Pipeline( VkPipelineStageFlagBits(..)-                               , VkPipelineStageFlags(..)-                               , VkPipelineBindPoint(..)-                               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Sampler( VkSampleCountFlagBits(..)-                              )-import Graphics.Vulkan.Image( VkImageLayout(..)-                            )-import Graphics.Vulkan.ImageView( VkImageView(..)-                                )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkExtent2D(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---data VkSubpassDependency =-  VkSubpassDependency{ vkSrcSubpass :: Word32 -                     , vkDstSubpass :: Word32 -                     , vkSrcStageMask :: VkPipelineStageFlags -                     , vkDstStageMask :: VkPipelineStageFlags -                     , vkSrcAccessMask :: VkAccessFlags -                     , vkDstAccessMask :: VkAccessFlags -                     , vkDependencyFlags :: VkDependencyFlags -                     }-  deriving (Eq)--instance Storable VkSubpassDependency where-  sizeOf ~_ = 28-  alignment ~_ = 4-  peek ptr = VkSubpassDependency <$> peek (ptr `plusPtr` 0)-                                 <*> peek (ptr `plusPtr` 4)-                                 <*> peek (ptr `plusPtr` 8)-                                 <*> peek (ptr `plusPtr` 12)-                                 <*> peek (ptr `plusPtr` 16)-                                 <*> peek (ptr `plusPtr` 20)-                                 <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubpass (poked :: VkSubpassDependency))-                *> poke (ptr `plusPtr` 4) (vkDstSubpass (poked :: VkSubpassDependency))-                *> poke (ptr `plusPtr` 8) (vkSrcStageMask (poked :: VkSubpassDependency))-                *> poke (ptr `plusPtr` 12) (vkDstStageMask (poked :: VkSubpassDependency))-                *> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkSubpassDependency))-                *> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkSubpassDependency))-                *> poke (ptr `plusPtr` 24) (vkDependencyFlags (poked :: VkSubpassDependency))----- ** VkSubpassDescriptionFlags--- | Opaque flag-newtype VkSubpassDescriptionFlags = VkSubpassDescriptionFlags VkFlags-  deriving (Eq, Storable)--newtype VkFramebuffer = VkFramebuffer Word64-  deriving (Eq, Storable)---- ** VkAttachmentDescriptionFlags--newtype VkAttachmentDescriptionFlagBits = VkAttachmentDescriptionFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkAttachmentDescriptionFlagBits-type VkAttachmentDescriptionFlags = VkAttachmentDescriptionFlagBits--instance Show VkAttachmentDescriptionFlagBits where-  showsPrec _ VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = showString "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"-  -  showsPrec p (VkAttachmentDescriptionFlagBits x) = showParen (p >= 11) (showString "VkAttachmentDescriptionFlagBits " . showsPrec 11 x)--instance Read VkAttachmentDescriptionFlagBits where-  readPrec = parens ( choose [ ("VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT", pure VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkAttachmentDescriptionFlagBits")-                        v <- step readPrec-                        pure (VkAttachmentDescriptionFlagBits v)-                        )-                    )---- | The attachment may alias physical memory of another attachment in the same render pass-pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = VkAttachmentDescriptionFlagBits 0x1----- ** VkDependencyFlags--newtype VkDependencyFlagBits = VkDependencyFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkDependencyFlagBits-type VkDependencyFlags = VkDependencyFlagBits--instance Show VkDependencyFlagBits where-  showsPrec _ VK_DEPENDENCY_BY_REGION_BIT = showString "VK_DEPENDENCY_BY_REGION_BIT"-  -  showsPrec p (VkDependencyFlagBits x) = showParen (p >= 11) (showString "VkDependencyFlagBits " . showsPrec 11 x)--instance Read VkDependencyFlagBits where-  readPrec = parens ( choose [ ("VK_DEPENDENCY_BY_REGION_BIT", pure VK_DEPENDENCY_BY_REGION_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkDependencyFlagBits")-                        v <- step readPrec-                        pure (VkDependencyFlagBits v)-                        )-                    )---- | Dependency is per pixel region -pattern VK_DEPENDENCY_BY_REGION_BIT = VkDependencyFlagBits 0x1----- ** vkDestroyRenderPass-foreign import ccall "vkDestroyRenderPass" vkDestroyRenderPass ::-  VkDevice -> VkRenderPass -> Ptr VkAllocationCallbacks -> IO ()---- ** vkCreateFramebuffer-foreign import ccall "vkCreateFramebuffer" vkCreateFramebuffer ::-  VkDevice ->-  Ptr VkFramebufferCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkFramebuffer -> IO VkResult---data VkFramebufferCreateInfo =-  VkFramebufferCreateInfo{ vkSType :: VkStructureType -                         , vkPNext :: Ptr Void -                         , vkFlags :: VkFramebufferCreateFlags -                         , vkRenderPass :: VkRenderPass -                         , vkAttachmentCount :: Word32 -                         , vkPAttachments :: Ptr VkImageView -                         , vkWidth :: Word32 -                         , vkHeight :: Word32 -                         , vkLayers :: Word32 -                         }-  deriving (Eq)--instance Storable VkFramebufferCreateInfo where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkFramebufferCreateInfo <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 8)-                                     <*> peek (ptr `plusPtr` 16)-                                     <*> peek (ptr `plusPtr` 24)-                                     <*> peek (ptr `plusPtr` 32)-                                     <*> peek (ptr `plusPtr` 40)-                                     <*> peek (ptr `plusPtr` 48)-                                     <*> peek (ptr `plusPtr` 52)-                                     <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFramebufferCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFramebufferCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkFramebufferCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkRenderPass (poked :: VkFramebufferCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkAttachmentCount (poked :: VkFramebufferCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPAttachments (poked :: VkFramebufferCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkWidth (poked :: VkFramebufferCreateInfo))-                *> poke (ptr `plusPtr` 52) (vkHeight (poked :: VkFramebufferCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkLayers (poked :: VkFramebufferCreateInfo))----- ** vkGetRenderAreaGranularity-foreign import ccall "vkGetRenderAreaGranularity" vkGetRenderAreaGranularity ::-  VkDevice -> VkRenderPass -> Ptr VkExtent2D -> IO ()---- ** VkAttachmentLoadOp--newtype VkAttachmentLoadOp = VkAttachmentLoadOp Int32-  deriving (Eq, Storable)--instance Show VkAttachmentLoadOp where-  showsPrec _ VK_ATTACHMENT_LOAD_OP_LOAD = showString "VK_ATTACHMENT_LOAD_OP_LOAD"-  showsPrec _ VK_ATTACHMENT_LOAD_OP_CLEAR = showString "VK_ATTACHMENT_LOAD_OP_CLEAR"-  showsPrec _ VK_ATTACHMENT_LOAD_OP_DONT_CARE = showString "VK_ATTACHMENT_LOAD_OP_DONT_CARE"-  showsPrec p (VkAttachmentLoadOp x) = showParen (p >= 11) (showString "VkAttachmentLoadOp " . showsPrec 11 x)--instance Read VkAttachmentLoadOp where-  readPrec = parens ( choose [ ("VK_ATTACHMENT_LOAD_OP_LOAD", pure VK_ATTACHMENT_LOAD_OP_LOAD)-                             , ("VK_ATTACHMENT_LOAD_OP_CLEAR", pure VK_ATTACHMENT_LOAD_OP_CLEAR)-                             , ("VK_ATTACHMENT_LOAD_OP_DONT_CARE", pure VK_ATTACHMENT_LOAD_OP_DONT_CARE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkAttachmentLoadOp")-                        v <- step readPrec-                        pure (VkAttachmentLoadOp v)-                        )-                    )---pattern VK_ATTACHMENT_LOAD_OP_LOAD = VkAttachmentLoadOp 0--pattern VK_ATTACHMENT_LOAD_OP_CLEAR = VkAttachmentLoadOp 1--pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE = VkAttachmentLoadOp 2---- ** VkAttachmentStoreOp--newtype VkAttachmentStoreOp = VkAttachmentStoreOp Int32-  deriving (Eq, Storable)--instance Show VkAttachmentStoreOp where-  showsPrec _ VK_ATTACHMENT_STORE_OP_STORE = showString "VK_ATTACHMENT_STORE_OP_STORE"-  showsPrec _ VK_ATTACHMENT_STORE_OP_DONT_CARE = showString "VK_ATTACHMENT_STORE_OP_DONT_CARE"-  showsPrec p (VkAttachmentStoreOp x) = showParen (p >= 11) (showString "VkAttachmentStoreOp " . showsPrec 11 x)--instance Read VkAttachmentStoreOp where-  readPrec = parens ( choose [ ("VK_ATTACHMENT_STORE_OP_STORE", pure VK_ATTACHMENT_STORE_OP_STORE)-                             , ("VK_ATTACHMENT_STORE_OP_DONT_CARE", pure VK_ATTACHMENT_STORE_OP_DONT_CARE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkAttachmentStoreOp")-                        v <- step readPrec-                        pure (VkAttachmentStoreOp v)-                        )-                    )---pattern VK_ATTACHMENT_STORE_OP_STORE = VkAttachmentStoreOp 0--pattern VK_ATTACHMENT_STORE_OP_DONT_CARE = VkAttachmentStoreOp 1---- ** VkAccessFlags--newtype VkAccessFlagBits = VkAccessFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkAccessFlagBits-type VkAccessFlags = VkAccessFlagBits--instance Show VkAccessFlagBits where-  showsPrec _ VK_ACCESS_INDIRECT_COMMAND_READ_BIT = showString "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"-  showsPrec _ VK_ACCESS_INDEX_READ_BIT = showString "VK_ACCESS_INDEX_READ_BIT"-  showsPrec _ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = showString "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"-  showsPrec _ VK_ACCESS_UNIFORM_READ_BIT = showString "VK_ACCESS_UNIFORM_READ_BIT"-  showsPrec _ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = showString "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"-  showsPrec _ VK_ACCESS_SHADER_READ_BIT = showString "VK_ACCESS_SHADER_READ_BIT"-  showsPrec _ VK_ACCESS_SHADER_WRITE_BIT = showString "VK_ACCESS_SHADER_WRITE_BIT"-  showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = showString "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"-  showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = showString "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"-  showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"-  showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"-  showsPrec _ VK_ACCESS_TRANSFER_READ_BIT = showString "VK_ACCESS_TRANSFER_READ_BIT"-  showsPrec _ VK_ACCESS_TRANSFER_WRITE_BIT = showString "VK_ACCESS_TRANSFER_WRITE_BIT"-  showsPrec _ VK_ACCESS_HOST_READ_BIT = showString "VK_ACCESS_HOST_READ_BIT"-  showsPrec _ VK_ACCESS_HOST_WRITE_BIT = showString "VK_ACCESS_HOST_WRITE_BIT"-  showsPrec _ VK_ACCESS_MEMORY_READ_BIT = showString "VK_ACCESS_MEMORY_READ_BIT"-  showsPrec _ VK_ACCESS_MEMORY_WRITE_BIT = showString "VK_ACCESS_MEMORY_WRITE_BIT"-  -  showsPrec p (VkAccessFlagBits x) = showParen (p >= 11) (showString "VkAccessFlagBits " . showsPrec 11 x)--instance Read VkAccessFlagBits where-  readPrec = parens ( choose [ ("VK_ACCESS_INDIRECT_COMMAND_READ_BIT", pure VK_ACCESS_INDIRECT_COMMAND_READ_BIT)-                             , ("VK_ACCESS_INDEX_READ_BIT", pure VK_ACCESS_INDEX_READ_BIT)-                             , ("VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT", pure VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT)-                             , ("VK_ACCESS_UNIFORM_READ_BIT", pure VK_ACCESS_UNIFORM_READ_BIT)-                             , ("VK_ACCESS_INPUT_ATTACHMENT_READ_BIT", pure VK_ACCESS_INPUT_ATTACHMENT_READ_BIT)-                             , ("VK_ACCESS_SHADER_READ_BIT", pure VK_ACCESS_SHADER_READ_BIT)-                             , ("VK_ACCESS_SHADER_WRITE_BIT", pure VK_ACCESS_SHADER_WRITE_BIT)-                             , ("VK_ACCESS_COLOR_ATTACHMENT_READ_BIT", pure VK_ACCESS_COLOR_ATTACHMENT_READ_BIT)-                             , ("VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT", pure VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT)-                             , ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT", pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT)-                             , ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT", pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT)-                             , ("VK_ACCESS_TRANSFER_READ_BIT", pure VK_ACCESS_TRANSFER_READ_BIT)-                             , ("VK_ACCESS_TRANSFER_WRITE_BIT", pure VK_ACCESS_TRANSFER_WRITE_BIT)-                             , ("VK_ACCESS_HOST_READ_BIT", pure VK_ACCESS_HOST_READ_BIT)-                             , ("VK_ACCESS_HOST_WRITE_BIT", pure VK_ACCESS_HOST_WRITE_BIT)-                             , ("VK_ACCESS_MEMORY_READ_BIT", pure VK_ACCESS_MEMORY_READ_BIT)-                             , ("VK_ACCESS_MEMORY_WRITE_BIT", pure VK_ACCESS_MEMORY_WRITE_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkAccessFlagBits")-                        v <- step readPrec-                        pure (VkAccessFlagBits v)-                        )-                    )---- | Controls coherency of indirect command reads-pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT = VkAccessFlagBits 0x1--- | Controls coherency of index reads-pattern VK_ACCESS_INDEX_READ_BIT = VkAccessFlagBits 0x2--- | Controls coherency of vertex attribute reads-pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = VkAccessFlagBits 0x4--- | Controls coherency of uniform buffer reads-pattern VK_ACCESS_UNIFORM_READ_BIT = VkAccessFlagBits 0x8--- | Controls coherency of input attachment reads-pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x10--- | Controls coherency of shader reads-pattern VK_ACCESS_SHADER_READ_BIT = VkAccessFlagBits 0x20--- | Controls coherency of shader writes-pattern VK_ACCESS_SHADER_WRITE_BIT = VkAccessFlagBits 0x40--- | Controls coherency of color attachment reads-pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x80--- | Controls coherency of color attachment writes-pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = VkAccessFlagBits 0x100--- | Controls coherency of depth/stencil attachment reads-pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x200--- | Controls coherency of depth/stencil attachment writes-pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = VkAccessFlagBits 0x400--- | Controls coherency of transfer reads-pattern VK_ACCESS_TRANSFER_READ_BIT = VkAccessFlagBits 0x800--- | Controls coherency of transfer writes-pattern VK_ACCESS_TRANSFER_WRITE_BIT = VkAccessFlagBits 0x1000--- | Controls coherency of host reads-pattern VK_ACCESS_HOST_READ_BIT = VkAccessFlagBits 0x2000--- | Controls coherency of host writes-pattern VK_ACCESS_HOST_WRITE_BIT = VkAccessFlagBits 0x4000--- | Controls coherency of memory reads-pattern VK_ACCESS_MEMORY_READ_BIT = VkAccessFlagBits 0x8000--- | Controls coherency of memory writes-pattern VK_ACCESS_MEMORY_WRITE_BIT = VkAccessFlagBits 0x10000---newtype VkRenderPass = VkRenderPass Word64-  deriving (Eq, Storable)---- ** vkDestroyFramebuffer-foreign import ccall "vkDestroyFramebuffer" vkDestroyFramebuffer ::-  VkDevice -> VkFramebuffer -> Ptr VkAllocationCallbacks -> IO ()---data VkAttachmentReference =-  VkAttachmentReference{ vkAttachment :: Word32 -                       , vkLayout :: VkImageLayout -                       }-  deriving (Eq)--instance Storable VkAttachmentReference where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek ptr = VkAttachmentReference <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 4)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkAttachment (poked :: VkAttachmentReference))-                *> poke (ptr `plusPtr` 4) (vkLayout (poked :: VkAttachmentReference))----- ** VkRenderPassCreateFlags--- | Opaque flag-newtype VkRenderPassCreateFlags = VkRenderPassCreateFlags VkFlags-  deriving (Eq, Storable)---data VkAttachmentDescription =-  VkAttachmentDescription{ vkFlags :: VkAttachmentDescriptionFlags -                         , vkFormat :: VkFormat -                         , vkSamples :: VkSampleCountFlagBits -                         , vkLoadOp :: VkAttachmentLoadOp -                         , vkStoreOp :: VkAttachmentStoreOp -                         , vkStencilLoadOp :: VkAttachmentLoadOp -                         , vkStencilStoreOp :: VkAttachmentStoreOp -                         , vkInitialLayout :: VkImageLayout -                         , vkFinalLayout :: VkImageLayout -                         }-  deriving (Eq)--instance Storable VkAttachmentDescription where-  sizeOf ~_ = 36-  alignment ~_ = 4-  peek ptr = VkAttachmentDescription <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 4)-                                     <*> peek (ptr `plusPtr` 8)-                                     <*> peek (ptr `plusPtr` 12)-                                     <*> peek (ptr `plusPtr` 16)-                                     <*> peek (ptr `plusPtr` 20)-                                     <*> peek (ptr `plusPtr` 24)-                                     <*> peek (ptr `plusPtr` 28)-                                     <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkFlags (poked :: VkAttachmentDescription))-                *> poke (ptr `plusPtr` 4) (vkFormat (poked :: VkAttachmentDescription))-                *> poke (ptr `plusPtr` 8) (vkSamples (poked :: VkAttachmentDescription))-                *> poke (ptr `plusPtr` 12) (vkLoadOp (poked :: VkAttachmentDescription))-                *> poke (ptr `plusPtr` 16) (vkStoreOp (poked :: VkAttachmentDescription))-                *> poke (ptr `plusPtr` 20) (vkStencilLoadOp (poked :: VkAttachmentDescription))-                *> poke (ptr `plusPtr` 24) (vkStencilStoreOp (poked :: VkAttachmentDescription))-                *> poke (ptr `plusPtr` 28) (vkInitialLayout (poked :: VkAttachmentDescription))-                *> poke (ptr `plusPtr` 32) (vkFinalLayout (poked :: VkAttachmentDescription))----data VkSubpassDescription =-  VkSubpassDescription{ vkFlags :: VkSubpassDescriptionFlags -                      , vkPipelineBindPoint :: VkPipelineBindPoint -                      , vkInputAttachmentCount :: Word32 -                      , vkPInputAttachments :: Ptr VkAttachmentReference -                      , vkColorAttachmentCount :: Word32 -                      , vkPColorAttachments :: Ptr VkAttachmentReference -                      , vkPResolveAttachments :: Ptr VkAttachmentReference -                      , vkPDepthStencilAttachment :: Ptr VkAttachmentReference -                      , vkPreserveAttachmentCount :: Word32 -                      , vkPPreserveAttachments :: Ptr Word32 -                      }-  deriving (Eq)--instance Storable VkSubpassDescription where-  sizeOf ~_ = 72-  alignment ~_ = 8-  peek ptr = VkSubpassDescription <$> peek (ptr `plusPtr` 0)-                                  <*> peek (ptr `plusPtr` 4)-                                  <*> peek (ptr `plusPtr` 8)-                                  <*> peek (ptr `plusPtr` 16)-                                  <*> peek (ptr `plusPtr` 24)-                                  <*> peek (ptr `plusPtr` 32)-                                  <*> peek (ptr `plusPtr` 40)-                                  <*> peek (ptr `plusPtr` 48)-                                  <*> peek (ptr `plusPtr` 56)-                                  <*> peek (ptr `plusPtr` 64)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkFlags (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 4) (vkPipelineBindPoint (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 8) (vkInputAttachmentCount (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 16) (vkPInputAttachments (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 24) (vkColorAttachmentCount (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 32) (vkPColorAttachments (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 40) (vkPResolveAttachments (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 48) (vkPDepthStencilAttachment (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 56) (vkPreserveAttachmentCount (poked :: VkSubpassDescription))-                *> poke (ptr `plusPtr` 64) (vkPPreserveAttachments (poked :: VkSubpassDescription))----- ** vkCreateRenderPass-foreign import ccall "vkCreateRenderPass" vkCreateRenderPass ::-  VkDevice ->-  Ptr VkRenderPassCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkRenderPass -> IO VkResult---data VkRenderPassCreateInfo =-  VkRenderPassCreateInfo{ vkSType :: VkStructureType -                        , vkPNext :: Ptr Void -                        , vkFlags :: VkRenderPassCreateFlags -                        , vkAttachmentCount :: Word32 -                        , vkPAttachments :: Ptr VkAttachmentDescription -                        , vkSubpassCount :: Word32 -                        , vkPSubpasses :: Ptr VkSubpassDescription -                        , vkDependencyCount :: Word32 -                        , vkPDependencies :: Ptr VkSubpassDependency -                        }-  deriving (Eq)--instance Storable VkRenderPassCreateInfo where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkRenderPassCreateInfo <$> peek (ptr `plusPtr` 0)-                                    <*> peek (ptr `plusPtr` 8)-                                    <*> peek (ptr `plusPtr` 16)-                                    <*> peek (ptr `plusPtr` 20)-                                    <*> peek (ptr `plusPtr` 24)-                                    <*> peek (ptr `plusPtr` 32)-                                    <*> peek (ptr `plusPtr` 40)-                                    <*> peek (ptr `plusPtr` 48)-                                    <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkRenderPassCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkAttachmentCount (poked :: VkRenderPassCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPAttachments (poked :: VkRenderPassCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkSubpassCount (poked :: VkRenderPassCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPSubpasses (poked :: VkRenderPassCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkDependencyCount (poked :: VkRenderPassCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkPDependencies (poked :: VkRenderPassCreateInfo))----- ** VkFramebufferCreateFlags--- | Opaque flag-newtype VkFramebufferCreateFlags = VkFramebufferCreateFlags VkFlags-  deriving (Eq, Storable)-
− src/Graphics/Vulkan/Pass.hs-boot
@@ -1,13 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Pass where--import Data.Word( Word64-                )-import Foreign.Storable( Storable(..)-                       )--newtype VkRenderPass = VkRenderPass Word64-  -instance Eq VkRenderPass-instance Storable VkRenderPass-
− src/Graphics/Vulkan/Pipeline.hs
@@ -1,1418 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Pipeline where--import Data.Vector.Storable.Sized( Vector-                                 )-import Graphics.Vulkan.Device( VkDevice(..)-                             )-import {-# SOURCE #-} Graphics.Vulkan.Pass( VkRenderPass(..)-                                          )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Graphics.Vulkan.PipelineCache( VkPipelineCache(..)-                                    )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.PipelineLayout( VkPipelineLayout(..)-                                     )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Shader( VkShaderStageFlagBits(..)-                             , VkShaderModule(..)-                             )-import Graphics.Vulkan.Sampler( VkSampleCountFlagBits(..)-                              , VkCompareOp(..)-                              )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkExtent2D(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkOffset2D(..)-                           , VkRect2D(..)-                           , VkViewport(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize-                      , CFloat-                      , CFloat(..)-                      , CChar-                      , CSize(..)-                      )---data VkPipelineTessellationStateCreateInfo =-  VkPipelineTessellationStateCreateInfo{ vkSType :: VkStructureType -                                       , vkPNext :: Ptr Void -                                       , vkFlags :: VkPipelineTessellationStateCreateFlags -                                       , vkPatchControlPoints :: Word32 -                                       }-  deriving (Eq)--instance Storable VkPipelineTessellationStateCreateInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkPipelineTessellationStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                                   <*> peek (ptr `plusPtr` 8)-                                                   <*> peek (ptr `plusPtr` 16)-                                                   <*> peek (ptr `plusPtr` 20)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineTessellationStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineTessellationStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineTessellationStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkPatchControlPoints (poked :: VkPipelineTessellationStateCreateInfo))----data VkVertexInputAttributeDescription =-  VkVertexInputAttributeDescription{ vkLocation :: Word32 -                                   , vkBinding :: Word32 -                                   , vkFormat :: VkFormat -                                   , vkOffset :: Word32 -                                   }-  deriving (Eq)--instance Storable VkVertexInputAttributeDescription where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek ptr = VkVertexInputAttributeDescription <$> peek (ptr `plusPtr` 0)-                                               <*> peek (ptr `plusPtr` 4)-                                               <*> peek (ptr `plusPtr` 8)-                                               <*> peek (ptr `plusPtr` 12)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkLocation (poked :: VkVertexInputAttributeDescription))-                *> poke (ptr `plusPtr` 4) (vkBinding (poked :: VkVertexInputAttributeDescription))-                *> poke (ptr `plusPtr` 8) (vkFormat (poked :: VkVertexInputAttributeDescription))-                *> poke (ptr `plusPtr` 12) (vkOffset (poked :: VkVertexInputAttributeDescription))----data VkGraphicsPipelineCreateInfo =-  VkGraphicsPipelineCreateInfo{ vkSType :: VkStructureType -                              , vkPNext :: Ptr Void -                              , vkFlags :: VkPipelineCreateFlags -                              , vkStageCount :: Word32 -                              , vkPStages :: Ptr VkPipelineShaderStageCreateInfo -                              , vkPVertexInputState :: Ptr VkPipelineVertexInputStateCreateInfo -                              , vkPInputAssemblyState :: Ptr VkPipelineInputAssemblyStateCreateInfo -                              , vkPTessellationState :: Ptr VkPipelineTessellationStateCreateInfo -                              , vkPViewportState :: Ptr VkPipelineViewportStateCreateInfo -                              , vkPRasterizationState :: Ptr VkPipelineRasterizationStateCreateInfo -                              , vkPMultisampleState :: Ptr VkPipelineMultisampleStateCreateInfo -                              , vkPDepthStencilState :: Ptr VkPipelineDepthStencilStateCreateInfo -                              , vkPColorBlendState :: Ptr VkPipelineColorBlendStateCreateInfo -                              , vkPDynamicState :: Ptr VkPipelineDynamicStateCreateInfo -                              , vkLayout :: VkPipelineLayout -                              , vkRenderPass :: VkRenderPass -                              , vkSubpass :: Word32 -                              , vkBasePipelineHandle :: VkPipeline -                              , vkBasePipelineIndex :: Int32 -                              }-  deriving (Eq)--instance Storable VkGraphicsPipelineCreateInfo where-  sizeOf ~_ = 144-  alignment ~_ = 8-  peek ptr = VkGraphicsPipelineCreateInfo <$> peek (ptr `plusPtr` 0)-                                          <*> peek (ptr `plusPtr` 8)-                                          <*> peek (ptr `plusPtr` 16)-                                          <*> peek (ptr `plusPtr` 20)-                                          <*> peek (ptr `plusPtr` 24)-                                          <*> peek (ptr `plusPtr` 32)-                                          <*> peek (ptr `plusPtr` 40)-                                          <*> peek (ptr `plusPtr` 48)-                                          <*> peek (ptr `plusPtr` 56)-                                          <*> peek (ptr `plusPtr` 64)-                                          <*> peek (ptr `plusPtr` 72)-                                          <*> peek (ptr `plusPtr` 80)-                                          <*> peek (ptr `plusPtr` 88)-                                          <*> peek (ptr `plusPtr` 96)-                                          <*> peek (ptr `plusPtr` 104)-                                          <*> peek (ptr `plusPtr` 112)-                                          <*> peek (ptr `plusPtr` 120)-                                          <*> peek (ptr `plusPtr` 128)-                                          <*> peek (ptr `plusPtr` 136)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkStageCount (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPStages (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPVertexInputState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPInputAssemblyState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkPTessellationState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkPViewportState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 64) (vkPRasterizationState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 72) (vkPMultisampleState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 80) (vkPDepthStencilState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 88) (vkPColorBlendState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 96) (vkPDynamicState (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 104) (vkLayout (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 112) (vkRenderPass (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 120) (vkSubpass (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 128) (vkBasePipelineHandle (poked :: VkGraphicsPipelineCreateInfo))-                *> poke (ptr `plusPtr` 136) (vkBasePipelineIndex (poked :: VkGraphicsPipelineCreateInfo))----- ** VkCullModeFlags--newtype VkCullModeFlagBits = VkCullModeFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkCullModeFlagBits-type VkCullModeFlags = VkCullModeFlagBits--instance Show VkCullModeFlagBits where-  showsPrec _ VK_CULL_MODE_FRONT_BIT = showString "VK_CULL_MODE_FRONT_BIT"-  showsPrec _ VK_CULL_MODE_BACK_BIT = showString "VK_CULL_MODE_BACK_BIT"-  showsPrec _ VK_CULL_MODE_NONE = showString "VK_CULL_MODE_NONE"-  showsPrec _ VK_CULL_MODE_FRONT_AND_BACK = showString "VK_CULL_MODE_FRONT_AND_BACK"-  showsPrec p (VkCullModeFlagBits x) = showParen (p >= 11) (showString "VkCullModeFlagBits " . showsPrec 11 x)--instance Read VkCullModeFlagBits where-  readPrec = parens ( choose [ ("VK_CULL_MODE_FRONT_BIT", pure VK_CULL_MODE_FRONT_BIT)-                             , ("VK_CULL_MODE_BACK_BIT", pure VK_CULL_MODE_BACK_BIT)-                             , ("VK_CULL_MODE_NONE", pure VK_CULL_MODE_NONE)-                             , ("VK_CULL_MODE_FRONT_AND_BACK", pure VK_CULL_MODE_FRONT_AND_BACK)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkCullModeFlagBits")-                        v <- step readPrec-                        pure (VkCullModeFlagBits v)-                        )-                    )---pattern VK_CULL_MODE_FRONT_BIT = VkCullModeFlagBits 0x1--pattern VK_CULL_MODE_BACK_BIT = VkCullModeFlagBits 0x2--pattern VK_CULL_MODE_NONE = VkCullModeFlagBits 0x0--pattern VK_CULL_MODE_FRONT_AND_BACK = VkCullModeFlagBits 0x3---- ** VkPipelineDepthStencilStateCreateFlags--- | Opaque flag-newtype VkPipelineDepthStencilStateCreateFlags = VkPipelineDepthStencilStateCreateFlags VkFlags-  deriving (Eq, Storable)---data VkPipelineShaderStageCreateInfo =-  VkPipelineShaderStageCreateInfo{ vkSType :: VkStructureType -                                 , vkPNext :: Ptr Void -                                 , vkFlags :: VkPipelineShaderStageCreateFlags -                                 , vkStage :: VkShaderStageFlagBits -                                 , vkModule :: VkShaderModule -                                 , vkPName :: Ptr CChar -                                 , vkPSpecializationInfo :: Ptr VkSpecializationInfo -                                 }-  deriving (Eq)--instance Storable VkPipelineShaderStageCreateInfo where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkPipelineShaderStageCreateInfo <$> peek (ptr `plusPtr` 0)-                                             <*> peek (ptr `plusPtr` 8)-                                             <*> peek (ptr `plusPtr` 16)-                                             <*> peek (ptr `plusPtr` 20)-                                             <*> peek (ptr `plusPtr` 24)-                                             <*> peek (ptr `plusPtr` 32)-                                             <*> peek (ptr `plusPtr` 40)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineShaderStageCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineShaderStageCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineShaderStageCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkStage (poked :: VkPipelineShaderStageCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkModule (poked :: VkPipelineShaderStageCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPName (poked :: VkPipelineShaderStageCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPSpecializationInfo (poked :: VkPipelineShaderStageCreateInfo))----- ** VkColorComponentFlags--newtype VkColorComponentFlagBits = VkColorComponentFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkColorComponentFlagBits-type VkColorComponentFlags = VkColorComponentFlagBits--instance Show VkColorComponentFlagBits where-  showsPrec _ VK_COLOR_COMPONENT_R_BIT = showString "VK_COLOR_COMPONENT_R_BIT"-  showsPrec _ VK_COLOR_COMPONENT_G_BIT = showString "VK_COLOR_COMPONENT_G_BIT"-  showsPrec _ VK_COLOR_COMPONENT_B_BIT = showString "VK_COLOR_COMPONENT_B_BIT"-  showsPrec _ VK_COLOR_COMPONENT_A_BIT = showString "VK_COLOR_COMPONENT_A_BIT"-  -  showsPrec p (VkColorComponentFlagBits x) = showParen (p >= 11) (showString "VkColorComponentFlagBits " . showsPrec 11 x)--instance Read VkColorComponentFlagBits where-  readPrec = parens ( choose [ ("VK_COLOR_COMPONENT_R_BIT", pure VK_COLOR_COMPONENT_R_BIT)-                             , ("VK_COLOR_COMPONENT_G_BIT", pure VK_COLOR_COMPONENT_G_BIT)-                             , ("VK_COLOR_COMPONENT_B_BIT", pure VK_COLOR_COMPONENT_B_BIT)-                             , ("VK_COLOR_COMPONENT_A_BIT", pure VK_COLOR_COMPONENT_A_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkColorComponentFlagBits")-                        v <- step readPrec-                        pure (VkColorComponentFlagBits v)-                        )-                    )---pattern VK_COLOR_COMPONENT_R_BIT = VkColorComponentFlagBits 0x1--pattern VK_COLOR_COMPONENT_G_BIT = VkColorComponentFlagBits 0x2--pattern VK_COLOR_COMPONENT_B_BIT = VkColorComponentFlagBits 0x4--pattern VK_COLOR_COMPONENT_A_BIT = VkColorComponentFlagBits 0x8----data VkComputePipelineCreateInfo =-  VkComputePipelineCreateInfo{ vkSType :: VkStructureType -                             , vkPNext :: Ptr Void -                             , vkFlags :: VkPipelineCreateFlags -                             , vkStage :: VkPipelineShaderStageCreateInfo -                             , vkLayout :: VkPipelineLayout -                             , vkBasePipelineHandle :: VkPipeline -                             , vkBasePipelineIndex :: Int32 -                             }-  deriving (Eq)--instance Storable VkComputePipelineCreateInfo where-  sizeOf ~_ = 96-  alignment ~_ = 8-  peek ptr = VkComputePipelineCreateInfo <$> peek (ptr `plusPtr` 0)-                                         <*> peek (ptr `plusPtr` 8)-                                         <*> peek (ptr `plusPtr` 16)-                                         <*> peek (ptr `plusPtr` 24)-                                         <*> peek (ptr `plusPtr` 72)-                                         <*> peek (ptr `plusPtr` 80)-                                         <*> peek (ptr `plusPtr` 88)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkComputePipelineCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkComputePipelineCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkComputePipelineCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkStage (poked :: VkComputePipelineCreateInfo))-                *> poke (ptr `plusPtr` 72) (vkLayout (poked :: VkComputePipelineCreateInfo))-                *> poke (ptr `plusPtr` 80) (vkBasePipelineHandle (poked :: VkComputePipelineCreateInfo))-                *> poke (ptr `plusPtr` 88) (vkBasePipelineIndex (poked :: VkComputePipelineCreateInfo))----- ** VkStencilOp--newtype VkStencilOp = VkStencilOp Int32-  deriving (Eq, Storable)--instance Show VkStencilOp where-  showsPrec _ VK_STENCIL_OP_KEEP = showString "VK_STENCIL_OP_KEEP"-  showsPrec _ VK_STENCIL_OP_ZERO = showString "VK_STENCIL_OP_ZERO"-  showsPrec _ VK_STENCIL_OP_REPLACE = showString "VK_STENCIL_OP_REPLACE"-  showsPrec _ VK_STENCIL_OP_INCREMENT_AND_CLAMP = showString "VK_STENCIL_OP_INCREMENT_AND_CLAMP"-  showsPrec _ VK_STENCIL_OP_DECREMENT_AND_CLAMP = showString "VK_STENCIL_OP_DECREMENT_AND_CLAMP"-  showsPrec _ VK_STENCIL_OP_INVERT = showString "VK_STENCIL_OP_INVERT"-  showsPrec _ VK_STENCIL_OP_INCREMENT_AND_WRAP = showString "VK_STENCIL_OP_INCREMENT_AND_WRAP"-  showsPrec _ VK_STENCIL_OP_DECREMENT_AND_WRAP = showString "VK_STENCIL_OP_DECREMENT_AND_WRAP"-  showsPrec p (VkStencilOp x) = showParen (p >= 11) (showString "VkStencilOp " . showsPrec 11 x)--instance Read VkStencilOp where-  readPrec = parens ( choose [ ("VK_STENCIL_OP_KEEP", pure VK_STENCIL_OP_KEEP)-                             , ("VK_STENCIL_OP_ZERO", pure VK_STENCIL_OP_ZERO)-                             , ("VK_STENCIL_OP_REPLACE", pure VK_STENCIL_OP_REPLACE)-                             , ("VK_STENCIL_OP_INCREMENT_AND_CLAMP", pure VK_STENCIL_OP_INCREMENT_AND_CLAMP)-                             , ("VK_STENCIL_OP_DECREMENT_AND_CLAMP", pure VK_STENCIL_OP_DECREMENT_AND_CLAMP)-                             , ("VK_STENCIL_OP_INVERT", pure VK_STENCIL_OP_INVERT)-                             , ("VK_STENCIL_OP_INCREMENT_AND_WRAP", pure VK_STENCIL_OP_INCREMENT_AND_WRAP)-                             , ("VK_STENCIL_OP_DECREMENT_AND_WRAP", pure VK_STENCIL_OP_DECREMENT_AND_WRAP)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkStencilOp")-                        v <- step readPrec-                        pure (VkStencilOp v)-                        )-                    )---pattern VK_STENCIL_OP_KEEP = VkStencilOp 0--pattern VK_STENCIL_OP_ZERO = VkStencilOp 1--pattern VK_STENCIL_OP_REPLACE = VkStencilOp 2--pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP = VkStencilOp 3--pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP = VkStencilOp 4--pattern VK_STENCIL_OP_INVERT = VkStencilOp 5--pattern VK_STENCIL_OP_INCREMENT_AND_WRAP = VkStencilOp 6--pattern VK_STENCIL_OP_DECREMENT_AND_WRAP = VkStencilOp 7---data VkSpecializationInfo =-  VkSpecializationInfo{ vkMapEntryCount :: Word32 -                      , vkPMapEntries :: Ptr VkSpecializationMapEntry -                      , vkDataSize :: CSize -                      , vkPData :: Ptr Void -                      }-  deriving (Eq)--instance Storable VkSpecializationInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkSpecializationInfo <$> peek (ptr `plusPtr` 0)-                                  <*> peek (ptr `plusPtr` 8)-                                  <*> peek (ptr `plusPtr` 16)-                                  <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkMapEntryCount (poked :: VkSpecializationInfo))-                *> poke (ptr `plusPtr` 8) (vkPMapEntries (poked :: VkSpecializationInfo))-                *> poke (ptr `plusPtr` 16) (vkDataSize (poked :: VkSpecializationInfo))-                *> poke (ptr `plusPtr` 24) (vkPData (poked :: VkSpecializationInfo))----- ** VkPipelineColorBlendStateCreateFlags--- | Opaque flag-newtype VkPipelineColorBlendStateCreateFlags = VkPipelineColorBlendStateCreateFlags VkFlags-  deriving (Eq, Storable)--newtype VkPipeline = VkPipeline Word64-  deriving (Eq, Storable)---- ** VkPipelineInputAssemblyStateCreateFlags--- | Opaque flag-newtype VkPipelineInputAssemblyStateCreateFlags = VkPipelineInputAssemblyStateCreateFlags VkFlags-  deriving (Eq, Storable)---- ** vkCreateGraphicsPipelines-foreign import ccall "vkCreateGraphicsPipelines" vkCreateGraphicsPipelines ::-  VkDevice ->-  VkPipelineCache ->-    Word32 ->-      Ptr VkGraphicsPipelineCreateInfo ->-        Ptr VkAllocationCallbacks -> Ptr VkPipeline -> IO VkResult---- ** VkFrontFace--newtype VkFrontFace = VkFrontFace Int32-  deriving (Eq, Storable)--instance Show VkFrontFace where-  showsPrec _ VK_FRONT_FACE_COUNTER_CLOCKWISE = showString "VK_FRONT_FACE_COUNTER_CLOCKWISE"-  showsPrec _ VK_FRONT_FACE_CLOCKWISE = showString "VK_FRONT_FACE_CLOCKWISE"-  showsPrec p (VkFrontFace x) = showParen (p >= 11) (showString "VkFrontFace " . showsPrec 11 x)--instance Read VkFrontFace where-  readPrec = parens ( choose [ ("VK_FRONT_FACE_COUNTER_CLOCKWISE", pure VK_FRONT_FACE_COUNTER_CLOCKWISE)-                             , ("VK_FRONT_FACE_CLOCKWISE", pure VK_FRONT_FACE_CLOCKWISE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkFrontFace")-                        v <- step readPrec-                        pure (VkFrontFace v)-                        )-                    )---pattern VK_FRONT_FACE_COUNTER_CLOCKWISE = VkFrontFace 0--pattern VK_FRONT_FACE_CLOCKWISE = VkFrontFace 1---- ** VkPolygonMode--newtype VkPolygonMode = VkPolygonMode Int32-  deriving (Eq, Storable)--instance Show VkPolygonMode where-  showsPrec _ VK_POLYGON_MODE_FILL = showString "VK_POLYGON_MODE_FILL"-  showsPrec _ VK_POLYGON_MODE_LINE = showString "VK_POLYGON_MODE_LINE"-  showsPrec _ VK_POLYGON_MODE_POINT = showString "VK_POLYGON_MODE_POINT"-  showsPrec p (VkPolygonMode x) = showParen (p >= 11) (showString "VkPolygonMode " . showsPrec 11 x)--instance Read VkPolygonMode where-  readPrec = parens ( choose [ ("VK_POLYGON_MODE_FILL", pure VK_POLYGON_MODE_FILL)-                             , ("VK_POLYGON_MODE_LINE", pure VK_POLYGON_MODE_LINE)-                             , ("VK_POLYGON_MODE_POINT", pure VK_POLYGON_MODE_POINT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkPolygonMode")-                        v <- step readPrec-                        pure (VkPolygonMode v)-                        )-                    )---pattern VK_POLYGON_MODE_FILL = VkPolygonMode 0--pattern VK_POLYGON_MODE_LINE = VkPolygonMode 1--pattern VK_POLYGON_MODE_POINT = VkPolygonMode 2---- ** VkPipelineViewportStateCreateFlags--- | Opaque flag-newtype VkPipelineViewportStateCreateFlags = VkPipelineViewportStateCreateFlags VkFlags-  deriving (Eq, Storable)---- ** VkLogicOp--newtype VkLogicOp = VkLogicOp Int32-  deriving (Eq, Storable)--instance Show VkLogicOp where-  showsPrec _ VK_LOGIC_OP_CLEAR = showString "VK_LOGIC_OP_CLEAR"-  showsPrec _ VK_LOGIC_OP_AND = showString "VK_LOGIC_OP_AND"-  showsPrec _ VK_LOGIC_OP_AND_REVERSE = showString "VK_LOGIC_OP_AND_REVERSE"-  showsPrec _ VK_LOGIC_OP_COPY = showString "VK_LOGIC_OP_COPY"-  showsPrec _ VK_LOGIC_OP_AND_INVERTED = showString "VK_LOGIC_OP_AND_INVERTED"-  showsPrec _ VK_LOGIC_OP_NO_OP = showString "VK_LOGIC_OP_NO_OP"-  showsPrec _ VK_LOGIC_OP_XOR = showString "VK_LOGIC_OP_XOR"-  showsPrec _ VK_LOGIC_OP_OR = showString "VK_LOGIC_OP_OR"-  showsPrec _ VK_LOGIC_OP_NOR = showString "VK_LOGIC_OP_NOR"-  showsPrec _ VK_LOGIC_OP_EQUIVALENT = showString "VK_LOGIC_OP_EQUIVALENT"-  showsPrec _ VK_LOGIC_OP_INVERT = showString "VK_LOGIC_OP_INVERT"-  showsPrec _ VK_LOGIC_OP_OR_REVERSE = showString "VK_LOGIC_OP_OR_REVERSE"-  showsPrec _ VK_LOGIC_OP_COPY_INVERTED = showString "VK_LOGIC_OP_COPY_INVERTED"-  showsPrec _ VK_LOGIC_OP_OR_INVERTED = showString "VK_LOGIC_OP_OR_INVERTED"-  showsPrec _ VK_LOGIC_OP_NAND = showString "VK_LOGIC_OP_NAND"-  showsPrec _ VK_LOGIC_OP_SET = showString "VK_LOGIC_OP_SET"-  showsPrec p (VkLogicOp x) = showParen (p >= 11) (showString "VkLogicOp " . showsPrec 11 x)--instance Read VkLogicOp where-  readPrec = parens ( choose [ ("VK_LOGIC_OP_CLEAR", pure VK_LOGIC_OP_CLEAR)-                             , ("VK_LOGIC_OP_AND", pure VK_LOGIC_OP_AND)-                             , ("VK_LOGIC_OP_AND_REVERSE", pure VK_LOGIC_OP_AND_REVERSE)-                             , ("VK_LOGIC_OP_COPY", pure VK_LOGIC_OP_COPY)-                             , ("VK_LOGIC_OP_AND_INVERTED", pure VK_LOGIC_OP_AND_INVERTED)-                             , ("VK_LOGIC_OP_NO_OP", pure VK_LOGIC_OP_NO_OP)-                             , ("VK_LOGIC_OP_XOR", pure VK_LOGIC_OP_XOR)-                             , ("VK_LOGIC_OP_OR", pure VK_LOGIC_OP_OR)-                             , ("VK_LOGIC_OP_NOR", pure VK_LOGIC_OP_NOR)-                             , ("VK_LOGIC_OP_EQUIVALENT", pure VK_LOGIC_OP_EQUIVALENT)-                             , ("VK_LOGIC_OP_INVERT", pure VK_LOGIC_OP_INVERT)-                             , ("VK_LOGIC_OP_OR_REVERSE", pure VK_LOGIC_OP_OR_REVERSE)-                             , ("VK_LOGIC_OP_COPY_INVERTED", pure VK_LOGIC_OP_COPY_INVERTED)-                             , ("VK_LOGIC_OP_OR_INVERTED", pure VK_LOGIC_OP_OR_INVERTED)-                             , ("VK_LOGIC_OP_NAND", pure VK_LOGIC_OP_NAND)-                             , ("VK_LOGIC_OP_SET", pure VK_LOGIC_OP_SET)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkLogicOp")-                        v <- step readPrec-                        pure (VkLogicOp v)-                        )-                    )---pattern VK_LOGIC_OP_CLEAR = VkLogicOp 0--pattern VK_LOGIC_OP_AND = VkLogicOp 1--pattern VK_LOGIC_OP_AND_REVERSE = VkLogicOp 2--pattern VK_LOGIC_OP_COPY = VkLogicOp 3--pattern VK_LOGIC_OP_AND_INVERTED = VkLogicOp 4--pattern VK_LOGIC_OP_NO_OP = VkLogicOp 5--pattern VK_LOGIC_OP_XOR = VkLogicOp 6--pattern VK_LOGIC_OP_OR = VkLogicOp 7--pattern VK_LOGIC_OP_NOR = VkLogicOp 8--pattern VK_LOGIC_OP_EQUIVALENT = VkLogicOp 9--pattern VK_LOGIC_OP_INVERT = VkLogicOp 10--pattern VK_LOGIC_OP_OR_REVERSE = VkLogicOp 11--pattern VK_LOGIC_OP_COPY_INVERTED = VkLogicOp 12--pattern VK_LOGIC_OP_OR_INVERTED = VkLogicOp 13--pattern VK_LOGIC_OP_NAND = VkLogicOp 14--pattern VK_LOGIC_OP_SET = VkLogicOp 15---- ** VkPipelineCreateFlags--newtype VkPipelineCreateFlagBits = VkPipelineCreateFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkPipelineCreateFlagBits-type VkPipelineCreateFlags = VkPipelineCreateFlagBits--instance Show VkPipelineCreateFlagBits where-  showsPrec _ VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = showString "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"-  showsPrec _ VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = showString "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"-  showsPrec _ VK_PIPELINE_CREATE_DERIVATIVE_BIT = showString "VK_PIPELINE_CREATE_DERIVATIVE_BIT"-  -  showsPrec p (VkPipelineCreateFlagBits x) = showParen (p >= 11) (showString "VkPipelineCreateFlagBits " . showsPrec 11 x)--instance Read VkPipelineCreateFlagBits where-  readPrec = parens ( choose [ ("VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT", pure VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT)-                             , ("VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT", pure VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT)-                             , ("VK_PIPELINE_CREATE_DERIVATIVE_BIT", pure VK_PIPELINE_CREATE_DERIVATIVE_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkPipelineCreateFlagBits")-                        v <- step readPrec-                        pure (VkPipelineCreateFlagBits v)-                        )-                    )---pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = VkPipelineCreateFlagBits 0x1--pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = VkPipelineCreateFlagBits 0x2--pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT = VkPipelineCreateFlagBits 0x4----- ** VkPipelineRasterizationStateCreateFlags--- | Opaque flag-newtype VkPipelineRasterizationStateCreateFlags = VkPipelineRasterizationStateCreateFlags VkFlags-  deriving (Eq, Storable)---- ** VkDynamicState--newtype VkDynamicState = VkDynamicState Int32-  deriving (Eq, Storable)--instance Show VkDynamicState where-  showsPrec _ VK_DYNAMIC_STATE_VIEWPORT = showString "VK_DYNAMIC_STATE_VIEWPORT"-  showsPrec _ VK_DYNAMIC_STATE_SCISSOR = showString "VK_DYNAMIC_STATE_SCISSOR"-  showsPrec _ VK_DYNAMIC_STATE_LINE_WIDTH = showString "VK_DYNAMIC_STATE_LINE_WIDTH"-  showsPrec _ VK_DYNAMIC_STATE_DEPTH_BIAS = showString "VK_DYNAMIC_STATE_DEPTH_BIAS"-  showsPrec _ VK_DYNAMIC_STATE_BLEND_CONSTANTS = showString "VK_DYNAMIC_STATE_BLEND_CONSTANTS"-  showsPrec _ VK_DYNAMIC_STATE_DEPTH_BOUNDS = showString "VK_DYNAMIC_STATE_DEPTH_BOUNDS"-  showsPrec _ VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = showString "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK"-  showsPrec _ VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = showString "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK"-  showsPrec _ VK_DYNAMIC_STATE_STENCIL_REFERENCE = showString "VK_DYNAMIC_STATE_STENCIL_REFERENCE"-  showsPrec p (VkDynamicState x) = showParen (p >= 11) (showString "VkDynamicState " . showsPrec 11 x)--instance Read VkDynamicState where-  readPrec = parens ( choose [ ("VK_DYNAMIC_STATE_VIEWPORT", pure VK_DYNAMIC_STATE_VIEWPORT)-                             , ("VK_DYNAMIC_STATE_SCISSOR", pure VK_DYNAMIC_STATE_SCISSOR)-                             , ("VK_DYNAMIC_STATE_LINE_WIDTH", pure VK_DYNAMIC_STATE_LINE_WIDTH)-                             , ("VK_DYNAMIC_STATE_DEPTH_BIAS", pure VK_DYNAMIC_STATE_DEPTH_BIAS)-                             , ("VK_DYNAMIC_STATE_BLEND_CONSTANTS", pure VK_DYNAMIC_STATE_BLEND_CONSTANTS)-                             , ("VK_DYNAMIC_STATE_DEPTH_BOUNDS", pure VK_DYNAMIC_STATE_DEPTH_BOUNDS)-                             , ("VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK", pure VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK)-                             , ("VK_DYNAMIC_STATE_STENCIL_WRITE_MASK", pure VK_DYNAMIC_STATE_STENCIL_WRITE_MASK)-                             , ("VK_DYNAMIC_STATE_STENCIL_REFERENCE", pure VK_DYNAMIC_STATE_STENCIL_REFERENCE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkDynamicState")-                        v <- step readPrec-                        pure (VkDynamicState v)-                        )-                    )---pattern VK_DYNAMIC_STATE_VIEWPORT = VkDynamicState 0--pattern VK_DYNAMIC_STATE_SCISSOR = VkDynamicState 1--pattern VK_DYNAMIC_STATE_LINE_WIDTH = VkDynamicState 2--pattern VK_DYNAMIC_STATE_DEPTH_BIAS = VkDynamicState 3--pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS = VkDynamicState 4--pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS = VkDynamicState 5--pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = VkDynamicState 6--pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = VkDynamicState 7--pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE = VkDynamicState 8---- ** VkPipelineBindPoint--newtype VkPipelineBindPoint = VkPipelineBindPoint Int32-  deriving (Eq, Storable)--instance Show VkPipelineBindPoint where-  showsPrec _ VK_PIPELINE_BIND_POINT_GRAPHICS = showString "VK_PIPELINE_BIND_POINT_GRAPHICS"-  showsPrec _ VK_PIPELINE_BIND_POINT_COMPUTE = showString "VK_PIPELINE_BIND_POINT_COMPUTE"-  showsPrec p (VkPipelineBindPoint x) = showParen (p >= 11) (showString "VkPipelineBindPoint " . showsPrec 11 x)--instance Read VkPipelineBindPoint where-  readPrec = parens ( choose [ ("VK_PIPELINE_BIND_POINT_GRAPHICS", pure VK_PIPELINE_BIND_POINT_GRAPHICS)-                             , ("VK_PIPELINE_BIND_POINT_COMPUTE", pure VK_PIPELINE_BIND_POINT_COMPUTE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkPipelineBindPoint")-                        v <- step readPrec-                        pure (VkPipelineBindPoint v)-                        )-                    )---pattern VK_PIPELINE_BIND_POINT_GRAPHICS = VkPipelineBindPoint 0--pattern VK_PIPELINE_BIND_POINT_COMPUTE = VkPipelineBindPoint 1---- ** VkPipelineDynamicStateCreateFlags--- | Opaque flag-newtype VkPipelineDynamicStateCreateFlags = VkPipelineDynamicStateCreateFlags VkFlags-  deriving (Eq, Storable)---data VkPipelineRasterizationStateCreateInfo =-  VkPipelineRasterizationStateCreateInfo{ vkSType :: VkStructureType -                                        , vkPNext :: Ptr Void -                                        , vkFlags :: VkPipelineRasterizationStateCreateFlags -                                        , vkDepthClampEnable :: VkBool32 -                                        , vkRasterizerDiscardEnable :: VkBool32 -                                        , vkPolygonMode :: VkPolygonMode -                                        , vkCullMode :: VkCullModeFlags -                                        , vkFrontFace :: VkFrontFace -                                        , vkDepthBiasEnable :: VkBool32 -                                        , vkDepthBiasConstantFactor :: CFloat -                                        , vkDepthBiasClamp :: CFloat -                                        , vkDepthBiasSlopeFactor :: CFloat -                                        , vkLineWidth :: CFloat -                                        }-  deriving (Eq)--instance Storable VkPipelineRasterizationStateCreateInfo where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkPipelineRasterizationStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                                    <*> peek (ptr `plusPtr` 8)-                                                    <*> peek (ptr `plusPtr` 16)-                                                    <*> peek (ptr `plusPtr` 20)-                                                    <*> peek (ptr `plusPtr` 24)-                                                    <*> peek (ptr `plusPtr` 28)-                                                    <*> peek (ptr `plusPtr` 32)-                                                    <*> peek (ptr `plusPtr` 36)-                                                    <*> peek (ptr `plusPtr` 40)-                                                    <*> peek (ptr `plusPtr` 44)-                                                    <*> peek (ptr `plusPtr` 48)-                                                    <*> peek (ptr `plusPtr` 52)-                                                    <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkDepthClampEnable (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkRasterizerDiscardEnable (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 28) (vkPolygonMode (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkCullMode (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 36) (vkFrontFace (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkDepthBiasEnable (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 44) (vkDepthBiasConstantFactor (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkDepthBiasClamp (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 52) (vkDepthBiasSlopeFactor (poked :: VkPipelineRasterizationStateCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkLineWidth (poked :: VkPipelineRasterizationStateCreateInfo))----- ** VkBlendOp--newtype VkBlendOp = VkBlendOp Int32-  deriving (Eq, Storable)--instance Show VkBlendOp where-  showsPrec _ VK_BLEND_OP_ADD = showString "VK_BLEND_OP_ADD"-  showsPrec _ VK_BLEND_OP_SUBTRACT = showString "VK_BLEND_OP_SUBTRACT"-  showsPrec _ VK_BLEND_OP_REVERSE_SUBTRACT = showString "VK_BLEND_OP_REVERSE_SUBTRACT"-  showsPrec _ VK_BLEND_OP_MIN = showString "VK_BLEND_OP_MIN"-  showsPrec _ VK_BLEND_OP_MAX = showString "VK_BLEND_OP_MAX"-  showsPrec p (VkBlendOp x) = showParen (p >= 11) (showString "VkBlendOp " . showsPrec 11 x)--instance Read VkBlendOp where-  readPrec = parens ( choose [ ("VK_BLEND_OP_ADD", pure VK_BLEND_OP_ADD)-                             , ("VK_BLEND_OP_SUBTRACT", pure VK_BLEND_OP_SUBTRACT)-                             , ("VK_BLEND_OP_REVERSE_SUBTRACT", pure VK_BLEND_OP_REVERSE_SUBTRACT)-                             , ("VK_BLEND_OP_MIN", pure VK_BLEND_OP_MIN)-                             , ("VK_BLEND_OP_MAX", pure VK_BLEND_OP_MAX)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkBlendOp")-                        v <- step readPrec-                        pure (VkBlendOp v)-                        )-                    )---pattern VK_BLEND_OP_ADD = VkBlendOp 0--pattern VK_BLEND_OP_SUBTRACT = VkBlendOp 1--pattern VK_BLEND_OP_REVERSE_SUBTRACT = VkBlendOp 2--pattern VK_BLEND_OP_MIN = VkBlendOp 3--pattern VK_BLEND_OP_MAX = VkBlendOp 4---- ** vkDestroyPipeline-foreign import ccall "vkDestroyPipeline" vkDestroyPipeline ::-  VkDevice -> VkPipeline -> Ptr VkAllocationCallbacks -> IO ()---- ** VkPipelineShaderStageCreateFlags--- | Opaque flag-newtype VkPipelineShaderStageCreateFlags = VkPipelineShaderStageCreateFlags VkFlags-  deriving (Eq, Storable)---data VkPipelineViewportStateCreateInfo =-  VkPipelineViewportStateCreateInfo{ vkSType :: VkStructureType -                                   , vkPNext :: Ptr Void -                                   , vkFlags :: VkPipelineViewportStateCreateFlags -                                   , vkViewportCount :: Word32 -                                   , vkPViewports :: Ptr VkViewport -                                   , vkScissorCount :: Word32 -                                   , vkPScissors :: Ptr VkRect2D -                                   }-  deriving (Eq)--instance Storable VkPipelineViewportStateCreateInfo where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkPipelineViewportStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                               <*> peek (ptr `plusPtr` 8)-                                               <*> peek (ptr `plusPtr` 16)-                                               <*> peek (ptr `plusPtr` 20)-                                               <*> peek (ptr `plusPtr` 24)-                                               <*> peek (ptr `plusPtr` 32)-                                               <*> peek (ptr `plusPtr` 40)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineViewportStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineViewportStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineViewportStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkViewportCount (poked :: VkPipelineViewportStateCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPViewports (poked :: VkPipelineViewportStateCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkScissorCount (poked :: VkPipelineViewportStateCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPScissors (poked :: VkPipelineViewportStateCreateInfo))----- ** VkPipelineTessellationStateCreateFlags--- | Opaque flag-newtype VkPipelineTessellationStateCreateFlags = VkPipelineTessellationStateCreateFlags VkFlags-  deriving (Eq, Storable)---data VkPipelineVertexInputStateCreateInfo =-  VkPipelineVertexInputStateCreateInfo{ vkSType :: VkStructureType -                                      , vkPNext :: Ptr Void -                                      , vkFlags :: VkPipelineVertexInputStateCreateFlags -                                      , vkVertexBindingDescriptionCount :: Word32 -                                      , vkPVertexBindingDescriptions :: Ptr VkVertexInputBindingDescription -                                      , vkVertexAttributeDescriptionCount :: Word32 -                                      , vkPVertexAttributeDescriptions :: Ptr VkVertexInputAttributeDescription -                                      }-  deriving (Eq)--instance Storable VkPipelineVertexInputStateCreateInfo where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkPipelineVertexInputStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                                  <*> peek (ptr `plusPtr` 8)-                                                  <*> peek (ptr `plusPtr` 16)-                                                  <*> peek (ptr `plusPtr` 20)-                                                  <*> peek (ptr `plusPtr` 24)-                                                  <*> peek (ptr `plusPtr` 32)-                                                  <*> peek (ptr `plusPtr` 40)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineVertexInputStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineVertexInputStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineVertexInputStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkVertexBindingDescriptionCount (poked :: VkPipelineVertexInputStateCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPVertexBindingDescriptions (poked :: VkPipelineVertexInputStateCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkVertexAttributeDescriptionCount (poked :: VkPipelineVertexInputStateCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPVertexAttributeDescriptions (poked :: VkPipelineVertexInputStateCreateInfo))----- ** VkPrimitiveTopology--newtype VkPrimitiveTopology = VkPrimitiveTopology Int32-  deriving (Eq, Storable)--instance Show VkPrimitiveTopology where-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_POINT_LIST = showString "VK_PRIMITIVE_TOPOLOGY_POINT_LIST"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_LIST = showString "VK_PRIMITIVE_TOPOLOGY_LINE_LIST"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = showString "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = showString "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = showString "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"-  showsPrec _ VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = showString "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"-  showsPrec p (VkPrimitiveTopology x) = showParen (p >= 11) (showString "VkPrimitiveTopology " . showsPrec 11 x)--instance Read VkPrimitiveTopology where-  readPrec = parens ( choose [ ("VK_PRIMITIVE_TOPOLOGY_POINT_LIST", pure VK_PRIMITIVE_TOPOLOGY_POINT_LIST)-                             , ("VK_PRIMITIVE_TOPOLOGY_LINE_LIST", pure VK_PRIMITIVE_TOPOLOGY_LINE_LIST)-                             , ("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP", pure VK_PRIMITIVE_TOPOLOGY_LINE_STRIP)-                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST", pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST)-                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP", pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP)-                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN", pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN)-                             , ("VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY", pure VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY)-                             , ("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY", pure VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY)-                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY", pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY)-                             , ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY", pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY)-                             , ("VK_PRIMITIVE_TOPOLOGY_PATCH_LIST", pure VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkPrimitiveTopology")-                        v <- step readPrec-                        pure (VkPrimitiveTopology v)-                        )-                    )---pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST = VkPrimitiveTopology 0--pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST = VkPrimitiveTopology 1--pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = VkPrimitiveTopology 2--pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = VkPrimitiveTopology 3--pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = VkPrimitiveTopology 4--pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = VkPrimitiveTopology 5--pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = VkPrimitiveTopology 6--pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = VkPrimitiveTopology 7--pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = VkPrimitiveTopology 8--pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = VkPrimitiveTopology 9--pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = VkPrimitiveTopology 10---data VkPipelineInputAssemblyStateCreateInfo =-  VkPipelineInputAssemblyStateCreateInfo{ vkSType :: VkStructureType -                                        , vkPNext :: Ptr Void -                                        , vkFlags :: VkPipelineInputAssemblyStateCreateFlags -                                        , vkTopology :: VkPrimitiveTopology -                                        , vkPrimitiveRestartEnable :: VkBool32 -                                        }-  deriving (Eq)--instance Storable VkPipelineInputAssemblyStateCreateInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkPipelineInputAssemblyStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                                    <*> peek (ptr `plusPtr` 8)-                                                    <*> peek (ptr `plusPtr` 16)-                                                    <*> peek (ptr `plusPtr` 20)-                                                    <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineInputAssemblyStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineInputAssemblyStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineInputAssemblyStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkTopology (poked :: VkPipelineInputAssemblyStateCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPrimitiveRestartEnable (poked :: VkPipelineInputAssemblyStateCreateInfo))----data VkPipelineColorBlendStateCreateInfo =-  VkPipelineColorBlendStateCreateInfo{ vkSType :: VkStructureType -                                     , vkPNext :: Ptr Void -                                     , vkFlags :: VkPipelineColorBlendStateCreateFlags -                                     , vkLogicOpEnable :: VkBool32 -                                     , vkLogicOp :: VkLogicOp -                                     , vkAttachmentCount :: Word32 -                                     , vkPAttachments :: Ptr VkPipelineColorBlendAttachmentState -                                     , vkBlendConstants :: Vector 4 CFloat -                                     }-  deriving (Eq)--instance Storable VkPipelineColorBlendStateCreateInfo where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek ptr = VkPipelineColorBlendStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                                 <*> peek (ptr `plusPtr` 8)-                                                 <*> peek (ptr `plusPtr` 16)-                                                 <*> peek (ptr `plusPtr` 20)-                                                 <*> peek (ptr `plusPtr` 24)-                                                 <*> peek (ptr `plusPtr` 28)-                                                 <*> peek (ptr `plusPtr` 32)-                                                 <*> peek (ptr `plusPtr` 40)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineColorBlendStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineColorBlendStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineColorBlendStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkLogicOpEnable (poked :: VkPipelineColorBlendStateCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkLogicOp (poked :: VkPipelineColorBlendStateCreateInfo))-                *> poke (ptr `plusPtr` 28) (vkAttachmentCount (poked :: VkPipelineColorBlendStateCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPAttachments (poked :: VkPipelineColorBlendStateCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkBlendConstants (poked :: VkPipelineColorBlendStateCreateInfo))----data VkPipelineDynamicStateCreateInfo =-  VkPipelineDynamicStateCreateInfo{ vkSType :: VkStructureType -                                  , vkPNext :: Ptr Void -                                  , vkFlags :: VkPipelineDynamicStateCreateFlags -                                  , vkDynamicStateCount :: Word32 -                                  , vkPDynamicStates :: Ptr VkDynamicState -                                  }-  deriving (Eq)--instance Storable VkPipelineDynamicStateCreateInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkPipelineDynamicStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                              <*> peek (ptr `plusPtr` 8)-                                              <*> peek (ptr `plusPtr` 16)-                                              <*> peek (ptr `plusPtr` 20)-                                              <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineDynamicStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineDynamicStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineDynamicStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkDynamicStateCount (poked :: VkPipelineDynamicStateCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPDynamicStates (poked :: VkPipelineDynamicStateCreateInfo))----data VkSpecializationMapEntry =-  VkSpecializationMapEntry{ vkConstantID :: Word32 -                          , vkOffset :: Word32 -                          , vkSize :: CSize -                          }-  deriving (Eq)--instance Storable VkSpecializationMapEntry where-  sizeOf ~_ = 16-  alignment ~_ = 8-  peek ptr = VkSpecializationMapEntry <$> peek (ptr `plusPtr` 0)-                                      <*> peek (ptr `plusPtr` 4)-                                      <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkConstantID (poked :: VkSpecializationMapEntry))-                *> poke (ptr `plusPtr` 4) (vkOffset (poked :: VkSpecializationMapEntry))-                *> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSpecializationMapEntry))----- ** VkPipelineVertexInputStateCreateFlags--- | Opaque flag-newtype VkPipelineVertexInputStateCreateFlags = VkPipelineVertexInputStateCreateFlags VkFlags-  deriving (Eq, Storable)---- ** VkVertexInputRate--newtype VkVertexInputRate = VkVertexInputRate Int32-  deriving (Eq, Storable)--instance Show VkVertexInputRate where-  showsPrec _ VK_VERTEX_INPUT_RATE_VERTEX = showString "VK_VERTEX_INPUT_RATE_VERTEX"-  showsPrec _ VK_VERTEX_INPUT_RATE_INSTANCE = showString "VK_VERTEX_INPUT_RATE_INSTANCE"-  showsPrec p (VkVertexInputRate x) = showParen (p >= 11) (showString "VkVertexInputRate " . showsPrec 11 x)--instance Read VkVertexInputRate where-  readPrec = parens ( choose [ ("VK_VERTEX_INPUT_RATE_VERTEX", pure VK_VERTEX_INPUT_RATE_VERTEX)-                             , ("VK_VERTEX_INPUT_RATE_INSTANCE", pure VK_VERTEX_INPUT_RATE_INSTANCE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkVertexInputRate")-                        v <- step readPrec-                        pure (VkVertexInputRate v)-                        )-                    )---pattern VK_VERTEX_INPUT_RATE_VERTEX = VkVertexInputRate 0--pattern VK_VERTEX_INPUT_RATE_INSTANCE = VkVertexInputRate 1---- ** VkPipelineStageFlags--newtype VkPipelineStageFlagBits = VkPipelineStageFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkPipelineStageFlagBits-type VkPipelineStageFlags = VkPipelineStageFlagBits--instance Show VkPipelineStageFlagBits where-  showsPrec _ VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = showString "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"-  showsPrec _ VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = showString "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"-  showsPrec _ VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = showString "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"-  showsPrec _ VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = showString "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"-  showsPrec _ VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = showString "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"-  showsPrec _ VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = showString "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"-  showsPrec _ VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = showString "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"-  showsPrec _ VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = showString "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"-  showsPrec _ VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = showString "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"-  showsPrec _ VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = showString "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"-  showsPrec _ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = showString "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"-  showsPrec _ VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = showString "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"-  showsPrec _ VK_PIPELINE_STAGE_TRANSFER_BIT = showString "VK_PIPELINE_STAGE_TRANSFER_BIT"-  showsPrec _ VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = showString "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"-  showsPrec _ VK_PIPELINE_STAGE_HOST_BIT = showString "VK_PIPELINE_STAGE_HOST_BIT"-  showsPrec _ VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = showString "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"-  showsPrec _ VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = showString "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"-  -  showsPrec p (VkPipelineStageFlagBits x) = showParen (p >= 11) (showString "VkPipelineStageFlagBits " . showsPrec 11 x)--instance Read VkPipelineStageFlagBits where-  readPrec = parens ( choose [ ("VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT", pure VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT)-                             , ("VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT", pure VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT)-                             , ("VK_PIPELINE_STAGE_VERTEX_INPUT_BIT", pure VK_PIPELINE_STAGE_VERTEX_INPUT_BIT)-                             , ("VK_PIPELINE_STAGE_VERTEX_SHADER_BIT", pure VK_PIPELINE_STAGE_VERTEX_SHADER_BIT)-                             , ("VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT", pure VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT)-                             , ("VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", pure VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT)-                             , ("VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", pure VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT)-                             , ("VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT", pure VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT)-                             , ("VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT", pure VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT)-                             , ("VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT", pure VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT)-                             , ("VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT", pure VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT)-                             , ("VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT", pure VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT)-                             , ("VK_PIPELINE_STAGE_TRANSFER_BIT", pure VK_PIPELINE_STAGE_TRANSFER_BIT)-                             , ("VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT", pure VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT)-                             , ("VK_PIPELINE_STAGE_HOST_BIT", pure VK_PIPELINE_STAGE_HOST_BIT)-                             , ("VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT", pure VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT)-                             , ("VK_PIPELINE_STAGE_ALL_COMMANDS_BIT", pure VK_PIPELINE_STAGE_ALL_COMMANDS_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkPipelineStageFlagBits")-                        v <- step readPrec-                        pure (VkPipelineStageFlagBits v)-                        )-                    )---- | Before subsequent commands are processed-pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = VkPipelineStageFlagBits 0x1--- | Draw/DispatchIndirect command fetch-pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = VkPipelineStageFlagBits 0x2--- | Vertex/index fetch-pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = VkPipelineStageFlagBits 0x4--- | Vertex shading-pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = VkPipelineStageFlagBits 0x8--- | Tessellation control shading-pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = VkPipelineStageFlagBits 0x10--- | Tessellation evaluation shading-pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = VkPipelineStageFlagBits 0x20--- | Geometry shading-pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = VkPipelineStageFlagBits 0x40--- | Fragment shading-pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = VkPipelineStageFlagBits 0x80--- | Early fragment (depth and stencil) tests-pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = VkPipelineStageFlagBits 0x100--- | Late fragment (depth and stencil) tests-pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = VkPipelineStageFlagBits 0x200--- | Color attachment writes-pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = VkPipelineStageFlagBits 0x400--- | Compute shading-pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = VkPipelineStageFlagBits 0x800--- | Transfer/copy operations-pattern VK_PIPELINE_STAGE_TRANSFER_BIT = VkPipelineStageFlagBits 0x1000--- | After previous commands have completed-pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = VkPipelineStageFlagBits 0x2000--- | Indicates host (CPU) is a source/sink of the dependency-pattern VK_PIPELINE_STAGE_HOST_BIT = VkPipelineStageFlagBits 0x4000--- | All stages of the graphics pipeline-pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = VkPipelineStageFlagBits 0x8000--- | All stages supported on the queue-pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = VkPipelineStageFlagBits 0x10000----data VkPipelineColorBlendAttachmentState =-  VkPipelineColorBlendAttachmentState{ vkBlendEnable :: VkBool32 -                                     , vkSrcColorBlendFactor :: VkBlendFactor -                                     , vkDstColorBlendFactor :: VkBlendFactor -                                     , vkColorBlendOp :: VkBlendOp -                                     , vkSrcAlphaBlendFactor :: VkBlendFactor -                                     , vkDstAlphaBlendFactor :: VkBlendFactor -                                     , vkAlphaBlendOp :: VkBlendOp -                                     , vkColorWriteMask :: VkColorComponentFlags -                                     }-  deriving (Eq)--instance Storable VkPipelineColorBlendAttachmentState where-  sizeOf ~_ = 32-  alignment ~_ = 4-  peek ptr = VkPipelineColorBlendAttachmentState <$> peek (ptr `plusPtr` 0)-                                                 <*> peek (ptr `plusPtr` 4)-                                                 <*> peek (ptr `plusPtr` 8)-                                                 <*> peek (ptr `plusPtr` 12)-                                                 <*> peek (ptr `plusPtr` 16)-                                                 <*> peek (ptr `plusPtr` 20)-                                                 <*> peek (ptr `plusPtr` 24)-                                                 <*> peek (ptr `plusPtr` 28)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkBlendEnable (poked :: VkPipelineColorBlendAttachmentState))-                *> poke (ptr `plusPtr` 4) (vkSrcColorBlendFactor (poked :: VkPipelineColorBlendAttachmentState))-                *> poke (ptr `plusPtr` 8) (vkDstColorBlendFactor (poked :: VkPipelineColorBlendAttachmentState))-                *> poke (ptr `plusPtr` 12) (vkColorBlendOp (poked :: VkPipelineColorBlendAttachmentState))-                *> poke (ptr `plusPtr` 16) (vkSrcAlphaBlendFactor (poked :: VkPipelineColorBlendAttachmentState))-                *> poke (ptr `plusPtr` 20) (vkDstAlphaBlendFactor (poked :: VkPipelineColorBlendAttachmentState))-                *> poke (ptr `plusPtr` 24) (vkAlphaBlendOp (poked :: VkPipelineColorBlendAttachmentState))-                *> poke (ptr `plusPtr` 28) (vkColorWriteMask (poked :: VkPipelineColorBlendAttachmentState))----- ** VkBlendFactor--newtype VkBlendFactor = VkBlendFactor Int32-  deriving (Eq, Storable)--instance Show VkBlendFactor where-  showsPrec _ VK_BLEND_FACTOR_ZERO = showString "VK_BLEND_FACTOR_ZERO"-  showsPrec _ VK_BLEND_FACTOR_ONE = showString "VK_BLEND_FACTOR_ONE"-  showsPrec _ VK_BLEND_FACTOR_SRC_COLOR = showString "VK_BLEND_FACTOR_SRC_COLOR"-  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"-  showsPrec _ VK_BLEND_FACTOR_DST_COLOR = showString "VK_BLEND_FACTOR_DST_COLOR"-  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = showString "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"-  showsPrec _ VK_BLEND_FACTOR_SRC_ALPHA = showString "VK_BLEND_FACTOR_SRC_ALPHA"-  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"-  showsPrec _ VK_BLEND_FACTOR_DST_ALPHA = showString "VK_BLEND_FACTOR_DST_ALPHA"-  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = showString "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"-  showsPrec _ VK_BLEND_FACTOR_CONSTANT_COLOR = showString "VK_BLEND_FACTOR_CONSTANT_COLOR"-  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = showString "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"-  showsPrec _ VK_BLEND_FACTOR_CONSTANT_ALPHA = showString "VK_BLEND_FACTOR_CONSTANT_ALPHA"-  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = showString "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"-  showsPrec _ VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = showString "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"-  showsPrec _ VK_BLEND_FACTOR_SRC1_COLOR = showString "VK_BLEND_FACTOR_SRC1_COLOR"-  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"-  showsPrec _ VK_BLEND_FACTOR_SRC1_ALPHA = showString "VK_BLEND_FACTOR_SRC1_ALPHA"-  showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"-  showsPrec p (VkBlendFactor x) = showParen (p >= 11) (showString "VkBlendFactor " . showsPrec 11 x)--instance Read VkBlendFactor where-  readPrec = parens ( choose [ ("VK_BLEND_FACTOR_ZERO", pure VK_BLEND_FACTOR_ZERO)-                             , ("VK_BLEND_FACTOR_ONE", pure VK_BLEND_FACTOR_ONE)-                             , ("VK_BLEND_FACTOR_SRC_COLOR", pure VK_BLEND_FACTOR_SRC_COLOR)-                             , ("VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR", pure VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR)-                             , ("VK_BLEND_FACTOR_DST_COLOR", pure VK_BLEND_FACTOR_DST_COLOR)-                             , ("VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR", pure VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR)-                             , ("VK_BLEND_FACTOR_SRC_ALPHA", pure VK_BLEND_FACTOR_SRC_ALPHA)-                             , ("VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA", pure VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA)-                             , ("VK_BLEND_FACTOR_DST_ALPHA", pure VK_BLEND_FACTOR_DST_ALPHA)-                             , ("VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA", pure VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA)-                             , ("VK_BLEND_FACTOR_CONSTANT_COLOR", pure VK_BLEND_FACTOR_CONSTANT_COLOR)-                             , ("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR", pure VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR)-                             , ("VK_BLEND_FACTOR_CONSTANT_ALPHA", pure VK_BLEND_FACTOR_CONSTANT_ALPHA)-                             , ("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", pure VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA)-                             , ("VK_BLEND_FACTOR_SRC_ALPHA_SATURATE", pure VK_BLEND_FACTOR_SRC_ALPHA_SATURATE)-                             , ("VK_BLEND_FACTOR_SRC1_COLOR", pure VK_BLEND_FACTOR_SRC1_COLOR)-                             , ("VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR", pure VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR)-                             , ("VK_BLEND_FACTOR_SRC1_ALPHA", pure VK_BLEND_FACTOR_SRC1_ALPHA)-                             , ("VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", pure VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkBlendFactor")-                        v <- step readPrec-                        pure (VkBlendFactor v)-                        )-                    )---pattern VK_BLEND_FACTOR_ZERO = VkBlendFactor 0--pattern VK_BLEND_FACTOR_ONE = VkBlendFactor 1--pattern VK_BLEND_FACTOR_SRC_COLOR = VkBlendFactor 2--pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = VkBlendFactor 3--pattern VK_BLEND_FACTOR_DST_COLOR = VkBlendFactor 4--pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = VkBlendFactor 5--pattern VK_BLEND_FACTOR_SRC_ALPHA = VkBlendFactor 6--pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = VkBlendFactor 7--pattern VK_BLEND_FACTOR_DST_ALPHA = VkBlendFactor 8--pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = VkBlendFactor 9--pattern VK_BLEND_FACTOR_CONSTANT_COLOR = VkBlendFactor 10--pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = VkBlendFactor 11--pattern VK_BLEND_FACTOR_CONSTANT_ALPHA = VkBlendFactor 12--pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = VkBlendFactor 13--pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = VkBlendFactor 14--pattern VK_BLEND_FACTOR_SRC1_COLOR = VkBlendFactor 15--pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = VkBlendFactor 16--pattern VK_BLEND_FACTOR_SRC1_ALPHA = VkBlendFactor 17--pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = VkBlendFactor 18--newtype VkSampleMask = VkSampleMask Word32-  deriving (Eq, Storable)---- ** VkPipelineMultisampleStateCreateFlags--- | Opaque flag-newtype VkPipelineMultisampleStateCreateFlags = VkPipelineMultisampleStateCreateFlags VkFlags-  deriving (Eq, Storable)---data VkPipelineMultisampleStateCreateInfo =-  VkPipelineMultisampleStateCreateInfo{ vkSType :: VkStructureType -                                      , vkPNext :: Ptr Void -                                      , vkFlags :: VkPipelineMultisampleStateCreateFlags -                                      , vkRasterizationSamples :: VkSampleCountFlagBits -                                      , vkSampleShadingEnable :: VkBool32 -                                      , vkMinSampleShading :: CFloat -                                      , vkPSampleMask :: Ptr VkSampleMask -                                      , vkAlphaToCoverageEnable :: VkBool32 -                                      , vkAlphaToOneEnable :: VkBool32 -                                      }-  deriving (Eq)--instance Storable VkPipelineMultisampleStateCreateInfo where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkPipelineMultisampleStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                                  <*> peek (ptr `plusPtr` 8)-                                                  <*> peek (ptr `plusPtr` 16)-                                                  <*> peek (ptr `plusPtr` 20)-                                                  <*> peek (ptr `plusPtr` 24)-                                                  <*> peek (ptr `plusPtr` 28)-                                                  <*> peek (ptr `plusPtr` 32)-                                                  <*> peek (ptr `plusPtr` 40)-                                                  <*> peek (ptr `plusPtr` 44)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineMultisampleStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineMultisampleStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineMultisampleStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkRasterizationSamples (poked :: VkPipelineMultisampleStateCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkSampleShadingEnable (poked :: VkPipelineMultisampleStateCreateInfo))-                *> poke (ptr `plusPtr` 28) (vkMinSampleShading (poked :: VkPipelineMultisampleStateCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPSampleMask (poked :: VkPipelineMultisampleStateCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkAlphaToCoverageEnable (poked :: VkPipelineMultisampleStateCreateInfo))-                *> poke (ptr `plusPtr` 44) (vkAlphaToOneEnable (poked :: VkPipelineMultisampleStateCreateInfo))----data VkVertexInputBindingDescription =-  VkVertexInputBindingDescription{ vkBinding :: Word32 -                                 , vkStride :: Word32 -                                 , vkInputRate :: VkVertexInputRate -                                 }-  deriving (Eq)--instance Storable VkVertexInputBindingDescription where-  sizeOf ~_ = 12-  alignment ~_ = 4-  peek ptr = VkVertexInputBindingDescription <$> peek (ptr `plusPtr` 0)-                                             <*> peek (ptr `plusPtr` 4)-                                             <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkBinding (poked :: VkVertexInputBindingDescription))-                *> poke (ptr `plusPtr` 4) (vkStride (poked :: VkVertexInputBindingDescription))-                *> poke (ptr `plusPtr` 8) (vkInputRate (poked :: VkVertexInputBindingDescription))----data VkPipelineDepthStencilStateCreateInfo =-  VkPipelineDepthStencilStateCreateInfo{ vkSType :: VkStructureType -                                       , vkPNext :: Ptr Void -                                       , vkFlags :: VkPipelineDepthStencilStateCreateFlags -                                       , vkDepthTestEnable :: VkBool32 -                                       , vkDepthWriteEnable :: VkBool32 -                                       , vkDepthCompareOp :: VkCompareOp -                                       , vkDepthBoundsTestEnable :: VkBool32 -                                       , vkStencilTestEnable :: VkBool32 -                                       , vkFront :: VkStencilOpState -                                       , vkBack :: VkStencilOpState -                                       , vkMinDepthBounds :: CFloat -                                       , vkMaxDepthBounds :: CFloat -                                       }-  deriving (Eq)--instance Storable VkPipelineDepthStencilStateCreateInfo where-  sizeOf ~_ = 104-  alignment ~_ = 8-  peek ptr = VkPipelineDepthStencilStateCreateInfo <$> peek (ptr `plusPtr` 0)-                                                   <*> peek (ptr `plusPtr` 8)-                                                   <*> peek (ptr `plusPtr` 16)-                                                   <*> peek (ptr `plusPtr` 20)-                                                   <*> peek (ptr `plusPtr` 24)-                                                   <*> peek (ptr `plusPtr` 28)-                                                   <*> peek (ptr `plusPtr` 32)-                                                   <*> peek (ptr `plusPtr` 36)-                                                   <*> peek (ptr `plusPtr` 40)-                                                   <*> peek (ptr `plusPtr` 68)-                                                   <*> peek (ptr `plusPtr` 96)-                                                   <*> peek (ptr `plusPtr` 100)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkDepthTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkDepthWriteEnable (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 28) (vkDepthCompareOp (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkDepthBoundsTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 36) (vkStencilTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkFront (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 68) (vkBack (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 96) (vkMinDepthBounds (poked :: VkPipelineDepthStencilStateCreateInfo))-                *> poke (ptr `plusPtr` 100) (vkMaxDepthBounds (poked :: VkPipelineDepthStencilStateCreateInfo))----- ** vkCreateComputePipelines-foreign import ccall "vkCreateComputePipelines" vkCreateComputePipelines ::-  VkDevice ->-  VkPipelineCache ->-    Word32 ->-      Ptr VkComputePipelineCreateInfo ->-        Ptr VkAllocationCallbacks -> Ptr VkPipeline -> IO VkResult---data VkStencilOpState =-  VkStencilOpState{ vkFailOp :: VkStencilOp -                  , vkPassOp :: VkStencilOp -                  , vkDepthFailOp :: VkStencilOp -                  , vkCompareOp :: VkCompareOp -                  , vkCompareMask :: Word32 -                  , vkWriteMask :: Word32 -                  , vkReference :: Word32 -                  }-  deriving (Eq)--instance Storable VkStencilOpState where-  sizeOf ~_ = 28-  alignment ~_ = 4-  peek ptr = VkStencilOpState <$> peek (ptr `plusPtr` 0)-                              <*> peek (ptr `plusPtr` 4)-                              <*> peek (ptr `plusPtr` 8)-                              <*> peek (ptr `plusPtr` 12)-                              <*> peek (ptr `plusPtr` 16)-                              <*> peek (ptr `plusPtr` 20)-                              <*> peek (ptr `plusPtr` 24)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkFailOp (poked :: VkStencilOpState))-                *> poke (ptr `plusPtr` 4) (vkPassOp (poked :: VkStencilOpState))-                *> poke (ptr `plusPtr` 8) (vkDepthFailOp (poked :: VkStencilOpState))-                *> poke (ptr `plusPtr` 12) (vkCompareOp (poked :: VkStencilOpState))-                *> poke (ptr `plusPtr` 16) (vkCompareMask (poked :: VkStencilOpState))-                *> poke (ptr `plusPtr` 20) (vkWriteMask (poked :: VkStencilOpState))-                *> poke (ptr `plusPtr` 24) (vkReference (poked :: VkStencilOpState))--
− src/Graphics/Vulkan/PipelineCache.hs
@@ -1,86 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.PipelineCache where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize-                      , CSize(..)-                      )---- ** vkCreatePipelineCache-foreign import ccall "vkCreatePipelineCache" vkCreatePipelineCache ::-  VkDevice ->-  Ptr VkPipelineCacheCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkPipelineCache -> IO VkResult---- ** vkGetPipelineCacheData-foreign import ccall "vkGetPipelineCacheData" vkGetPipelineCacheData ::-  VkDevice -> VkPipelineCache -> Ptr CSize -> Ptr Void -> IO VkResult--newtype VkPipelineCache = VkPipelineCache Word64-  deriving (Eq, Storable)---data VkPipelineCacheCreateInfo =-  VkPipelineCacheCreateInfo{ vkSType :: VkStructureType -                           , vkPNext :: Ptr Void -                           , vkFlags :: VkPipelineCacheCreateFlags -                           , vkInitialDataSize :: CSize -                           , vkPInitialData :: Ptr Void -                           }-  deriving (Eq)--instance Storable VkPipelineCacheCreateInfo where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkPipelineCacheCreateInfo <$> peek (ptr `plusPtr` 0)-                                       <*> peek (ptr `plusPtr` 8)-                                       <*> peek (ptr `plusPtr` 16)-                                       <*> peek (ptr `plusPtr` 24)-                                       <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineCacheCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineCacheCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineCacheCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkInitialDataSize (poked :: VkPipelineCacheCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPInitialData (poked :: VkPipelineCacheCreateInfo))----- ** vkMergePipelineCaches-foreign import ccall "vkMergePipelineCaches" vkMergePipelineCaches ::-  VkDevice ->-  VkPipelineCache -> Word32 -> Ptr VkPipelineCache -> IO VkResult---- ** VkPipelineCacheCreateFlags--- | Opaque flag-newtype VkPipelineCacheCreateFlags = VkPipelineCacheCreateFlags VkFlags-  deriving (Eq, Storable)---- ** vkDestroyPipelineCache-foreign import ccall "vkDestroyPipelineCache" vkDestroyPipelineCache ::-  VkDevice -> VkPipelineCache -> Ptr VkAllocationCallbacks -> IO ()-
− src/Graphics/Vulkan/PipelineLayout.hs
@@ -1,106 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.PipelineLayout where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Graphics.Vulkan.DescriptorSet( VkDescriptorSetLayout(..)-                                    )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.Shader( VkShaderStageFlagBits(..)-                             , VkShaderStageFlags(..)-                             )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---- ** VkPipelineLayoutCreateFlags--- | Opaque flag-newtype VkPipelineLayoutCreateFlags = VkPipelineLayoutCreateFlags VkFlags-  deriving (Eq, Storable)--newtype VkPipelineLayout = VkPipelineLayout Word64-  deriving (Eq, Storable)---- ** vkDestroyPipelineLayout-foreign import ccall "vkDestroyPipelineLayout" vkDestroyPipelineLayout ::-  VkDevice -> VkPipelineLayout -> Ptr VkAllocationCallbacks -> IO ()---data VkPushConstantRange =-  VkPushConstantRange{ vkStageFlags :: VkShaderStageFlags -                     , vkOffset :: Word32 -                     , vkSize :: Word32 -                     }-  deriving (Eq)--instance Storable VkPushConstantRange where-  sizeOf ~_ = 12-  alignment ~_ = 4-  peek ptr = VkPushConstantRange <$> peek (ptr `plusPtr` 0)-                                 <*> peek (ptr `plusPtr` 4)-                                 <*> peek (ptr `plusPtr` 8)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkStageFlags (poked :: VkPushConstantRange))-                *> poke (ptr `plusPtr` 4) (vkOffset (poked :: VkPushConstantRange))-                *> poke (ptr `plusPtr` 8) (vkSize (poked :: VkPushConstantRange))----data VkPipelineLayoutCreateInfo =-  VkPipelineLayoutCreateInfo{ vkSType :: VkStructureType -                            , vkPNext :: Ptr Void -                            , vkFlags :: VkPipelineLayoutCreateFlags -                            , vkSetLayoutCount :: Word32 -                            , vkPSetLayouts :: Ptr VkDescriptorSetLayout -                            , vkPushConstantRangeCount :: Word32 -                            , vkPPushConstantRanges :: Ptr VkPushConstantRange -                            }-  deriving (Eq)--instance Storable VkPipelineLayoutCreateInfo where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkPipelineLayoutCreateInfo <$> peek (ptr `plusPtr` 0)-                                        <*> peek (ptr `plusPtr` 8)-                                        <*> peek (ptr `plusPtr` 16)-                                        <*> peek (ptr `plusPtr` 20)-                                        <*> peek (ptr `plusPtr` 24)-                                        <*> peek (ptr `plusPtr` 32)-                                        <*> peek (ptr `plusPtr` 40)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineLayoutCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineLayoutCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineLayoutCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkSetLayoutCount (poked :: VkPipelineLayoutCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkPSetLayouts (poked :: VkPipelineLayoutCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPushConstantRangeCount (poked :: VkPipelineLayoutCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkPPushConstantRanges (poked :: VkPipelineLayoutCreateInfo))----- ** vkCreatePipelineLayout-foreign import ccall "vkCreatePipelineLayout" vkCreatePipelineLayout ::-  VkDevice ->-  Ptr VkPipelineLayoutCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkPipelineLayout -> IO VkResult-
− src/Graphics/Vulkan/Query.hs
@@ -1,271 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Query where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkDeviceSize(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize-                      , CSize(..)-                      )---- ** vkGetQueryPoolResults-foreign import ccall "vkGetQueryPoolResults" vkGetQueryPoolResults ::-  VkDevice ->-  VkQueryPool ->-    Word32 ->-      Word32 ->-        CSize ->-          Ptr Void -> VkDeviceSize -> VkQueryResultFlags -> IO VkResult---- ** vkDestroyQueryPool-foreign import ccall "vkDestroyQueryPool" vkDestroyQueryPool ::-  VkDevice -> VkQueryPool -> Ptr VkAllocationCallbacks -> IO ()---data VkQueryPoolCreateInfo =-  VkQueryPoolCreateInfo{ vkSType :: VkStructureType -                       , vkPNext :: Ptr Void -                       , vkFlags :: VkQueryPoolCreateFlags -                       , vkQueryType :: VkQueryType -                       , vkQueryCount :: Word32 -                       , vkPipelineStatistics :: VkQueryPipelineStatisticFlags -                       }-  deriving (Eq)--instance Storable VkQueryPoolCreateInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek ptr = VkQueryPoolCreateInfo <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 8)-                                   <*> peek (ptr `plusPtr` 16)-                                   <*> peek (ptr `plusPtr` 20)-                                   <*> peek (ptr `plusPtr` 24)-                                   <*> peek (ptr `plusPtr` 28)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkQueryPoolCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkQueryPoolCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkQueryPoolCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkQueryType (poked :: VkQueryPoolCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkQueryCount (poked :: VkQueryPoolCreateInfo))-                *> poke (ptr `plusPtr` 28) (vkPipelineStatistics (poked :: VkQueryPoolCreateInfo))----- ** VkQueryResultFlags--newtype VkQueryResultFlagBits = VkQueryResultFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkQueryResultFlagBits-type VkQueryResultFlags = VkQueryResultFlagBits--instance Show VkQueryResultFlagBits where-  showsPrec _ VK_QUERY_RESULT_64_BIT = showString "VK_QUERY_RESULT_64_BIT"-  showsPrec _ VK_QUERY_RESULT_WAIT_BIT = showString "VK_QUERY_RESULT_WAIT_BIT"-  showsPrec _ VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = showString "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"-  showsPrec _ VK_QUERY_RESULT_PARTIAL_BIT = showString "VK_QUERY_RESULT_PARTIAL_BIT"-  -  showsPrec p (VkQueryResultFlagBits x) = showParen (p >= 11) (showString "VkQueryResultFlagBits " . showsPrec 11 x)--instance Read VkQueryResultFlagBits where-  readPrec = parens ( choose [ ("VK_QUERY_RESULT_64_BIT", pure VK_QUERY_RESULT_64_BIT)-                             , ("VK_QUERY_RESULT_WAIT_BIT", pure VK_QUERY_RESULT_WAIT_BIT)-                             , ("VK_QUERY_RESULT_WITH_AVAILABILITY_BIT", pure VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)-                             , ("VK_QUERY_RESULT_PARTIAL_BIT", pure VK_QUERY_RESULT_PARTIAL_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkQueryResultFlagBits")-                        v <- step readPrec-                        pure (VkQueryResultFlagBits v)-                        )-                    )---- | Results of the queries are written to the destination buffer as 64-bit values-pattern VK_QUERY_RESULT_64_BIT = VkQueryResultFlagBits 0x1--- | Results of the queries are waited on before proceeding with the result copy-pattern VK_QUERY_RESULT_WAIT_BIT = VkQueryResultFlagBits 0x2--- | Besides the results of the query, the availability of the results is also written-pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = VkQueryResultFlagBits 0x4--- | Copy the partial results of the query even if the final results aren't available-pattern VK_QUERY_RESULT_PARTIAL_BIT = VkQueryResultFlagBits 0x8----- ** VkQueryType--newtype VkQueryType = VkQueryType Int32-  deriving (Eq, Storable)--instance Show VkQueryType where-  showsPrec _ VK_QUERY_TYPE_OCCLUSION = showString "VK_QUERY_TYPE_OCCLUSION"-  showsPrec _ VK_QUERY_TYPE_PIPELINE_STATISTICS = showString "VK_QUERY_TYPE_PIPELINE_STATISTICS"-  showsPrec _ VK_QUERY_TYPE_TIMESTAMP = showString "VK_QUERY_TYPE_TIMESTAMP"-  showsPrec p (VkQueryType x) = showParen (p >= 11) (showString "VkQueryType " . showsPrec 11 x)--instance Read VkQueryType where-  readPrec = parens ( choose [ ("VK_QUERY_TYPE_OCCLUSION", pure VK_QUERY_TYPE_OCCLUSION)-                             , ("VK_QUERY_TYPE_PIPELINE_STATISTICS", pure VK_QUERY_TYPE_PIPELINE_STATISTICS)-                             , ("VK_QUERY_TYPE_TIMESTAMP", pure VK_QUERY_TYPE_TIMESTAMP)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkQueryType")-                        v <- step readPrec-                        pure (VkQueryType v)-                        )-                    )---pattern VK_QUERY_TYPE_OCCLUSION = VkQueryType 0--- | Optional-pattern VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType 1--pattern VK_QUERY_TYPE_TIMESTAMP = VkQueryType 2--newtype VkQueryPool = VkQueryPool Word64-  deriving (Eq, Storable)---- ** vkCreateQueryPool-foreign import ccall "vkCreateQueryPool" vkCreateQueryPool ::-  VkDevice ->-  Ptr VkQueryPoolCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkQueryPool -> IO VkResult---- ** VkQueryControlFlags--newtype VkQueryControlFlagBits = VkQueryControlFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkQueryControlFlagBits-type VkQueryControlFlags = VkQueryControlFlagBits--instance Show VkQueryControlFlagBits where-  showsPrec _ VK_QUERY_CONTROL_PRECISE_BIT = showString "VK_QUERY_CONTROL_PRECISE_BIT"-  -  showsPrec p (VkQueryControlFlagBits x) = showParen (p >= 11) (showString "VkQueryControlFlagBits " . showsPrec 11 x)--instance Read VkQueryControlFlagBits where-  readPrec = parens ( choose [ ("VK_QUERY_CONTROL_PRECISE_BIT", pure VK_QUERY_CONTROL_PRECISE_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkQueryControlFlagBits")-                        v <- step readPrec-                        pure (VkQueryControlFlagBits v)-                        )-                    )---- | Require precise results to be collected by the query-pattern VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlFlagBits 0x1----- ** VkQueryPoolCreateFlags--- | Opaque flag-newtype VkQueryPoolCreateFlags = VkQueryPoolCreateFlags VkFlags-  deriving (Eq, Storable)---- ** VkQueryPipelineStatisticFlags--newtype VkQueryPipelineStatisticFlagBits = VkQueryPipelineStatisticFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkQueryPipelineStatisticFlagBits-type VkQueryPipelineStatisticFlags = VkQueryPipelineStatisticFlagBits--instance Show VkQueryPipelineStatisticFlagBits where-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"-  showsPrec _ VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = showString "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"-  -  showsPrec p (VkQueryPipelineStatisticFlagBits x) = showParen (p >= 11) (showString "VkQueryPipelineStatisticFlagBits " . showsPrec 11 x)--instance Read VkQueryPipelineStatisticFlagBits where-  readPrec = parens ( choose [ ("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT", pure VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT)-                             , ("VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT", pure VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkQueryPipelineStatisticFlagBits")-                        v <- step readPrec-                        pure (VkQueryPipelineStatisticFlagBits v)-                        )-                    )---- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = VkQueryPipelineStatisticFlagBits 0x1--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x2--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x4--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x8--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x10--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x20--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x40--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x80--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = VkQueryPipelineStatisticFlagBits 0x100--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x200--- | Optional-pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x400--
− src/Graphics/Vulkan/Queue.hs
@@ -1,86 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-module Graphics.Vulkan.Queue where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Graphics.Vulkan.Pipeline( VkPipelineStageFlagBits(..)-                               , VkPipelineStageFlags(..)-                               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Graphics.Vulkan.CommandBuffer( VkCommandBuffer(..)-                                    )-import Foreign.Storable( Storable(..)-                       )-import Graphics.Vulkan.Fence( VkFence(..)-                            )-import Data.Void( Void-                )-import Graphics.Vulkan.QueueSemaphore( VkSemaphore(..)-                                     )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )--data VkQueue_T-type VkQueue = Ptr VkQueue_T---- ** vkDeviceWaitIdle-foreign import ccall "vkDeviceWaitIdle" vkDeviceWaitIdle ::-  VkDevice -> IO VkResult---- ** vkQueueSubmit-foreign import ccall "vkQueueSubmit" vkQueueSubmit ::-  VkQueue -> Word32 -> Ptr VkSubmitInfo -> VkFence -> IO VkResult---- ** vkQueueWaitIdle-foreign import ccall "vkQueueWaitIdle" vkQueueWaitIdle ::-  VkQueue -> IO VkResult---- ** vkGetDeviceQueue-foreign import ccall "vkGetDeviceQueue" vkGetDeviceQueue ::-  VkDevice -> Word32 -> Word32 -> Ptr VkQueue -> IO ()---data VkSubmitInfo =-  VkSubmitInfo{ vkSType :: VkStructureType -              , vkPNext :: Ptr Void -              , vkWaitSemaphoreCount :: Word32 -              , vkPWaitSemaphores :: Ptr VkSemaphore -              , vkPWaitDstStageMask :: Ptr VkPipelineStageFlags -              , vkCommandBufferCount :: Word32 -              , vkPCommandBuffers :: Ptr VkCommandBuffer -              , vkSignalSemaphoreCount :: Word32 -              , vkPSignalSemaphores :: Ptr VkSemaphore -              }-  deriving (Eq)--instance Storable VkSubmitInfo where-  sizeOf ~_ = 72-  alignment ~_ = 8-  peek ptr = VkSubmitInfo <$> peek (ptr `plusPtr` 0)-                          <*> peek (ptr `plusPtr` 8)-                          <*> peek (ptr `plusPtr` 16)-                          <*> peek (ptr `plusPtr` 24)-                          <*> peek (ptr `plusPtr` 32)-                          <*> peek (ptr `plusPtr` 40)-                          <*> peek (ptr `plusPtr` 48)-                          <*> peek (ptr `plusPtr` 56)-                          <*> peek (ptr `plusPtr` 64)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSubmitInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSubmitInfo))-                *> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkSubmitInfo))-                *> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkSubmitInfo))-                *> poke (ptr `plusPtr` 32) (vkPWaitDstStageMask (poked :: VkSubmitInfo))-                *> poke (ptr `plusPtr` 40) (vkCommandBufferCount (poked :: VkSubmitInfo))-                *> poke (ptr `plusPtr` 48) (vkPCommandBuffers (poked :: VkSubmitInfo))-                *> poke (ptr `plusPtr` 56) (vkSignalSemaphoreCount (poked :: VkSubmitInfo))-                *> poke (ptr `plusPtr` 64) (vkPSignalSemaphores (poked :: VkSubmitInfo))--
− src/Graphics/Vulkan/QueueSemaphore.hs
@@ -1,70 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.QueueSemaphore where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize(..)-                      )---- ** VkSemaphoreCreateFlags--- | Opaque flag-newtype VkSemaphoreCreateFlags = VkSemaphoreCreateFlags VkFlags-  deriving (Eq, Storable)---- ** vkDestroySemaphore-foreign import ccall "vkDestroySemaphore" vkDestroySemaphore ::-  VkDevice -> VkSemaphore -> Ptr VkAllocationCallbacks -> IO ()--newtype VkSemaphore = VkSemaphore Word64-  deriving (Eq, Storable)---data VkSemaphoreCreateInfo =-  VkSemaphoreCreateInfo{ vkSType :: VkStructureType -                       , vkPNext :: Ptr Void -                       , vkFlags :: VkSemaphoreCreateFlags -                       }-  deriving (Eq)--instance Storable VkSemaphoreCreateInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkSemaphoreCreateInfo <$> peek (ptr `plusPtr` 0)-                                   <*> peek (ptr `plusPtr` 8)-                                   <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSemaphoreCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSemaphoreCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSemaphoreCreateInfo))----- ** vkCreateSemaphore-foreign import ccall "vkCreateSemaphore" vkCreateSemaphore ::-  VkDevice ->-  Ptr VkSemaphoreCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkSemaphore -> IO VkResult-
− src/Graphics/Vulkan/Sampler.hs
@@ -1,369 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Sampler where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkBool32(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CFloat-                      , CFloat(..)-                      , CSize(..)-                      )---- ** VkSamplerAddressMode--newtype VkSamplerAddressMode = VkSamplerAddressMode Int32-  deriving (Eq, Storable)--instance Show VkSamplerAddressMode where-  showsPrec _ VK_SAMPLER_ADDRESS_MODE_REPEAT = showString "VK_SAMPLER_ADDRESS_MODE_REPEAT"-  showsPrec _ VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = showString "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"-  showsPrec _ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = showString "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"-  showsPrec _ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = showString "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"-  showsPrec _ VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = showString "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE"-  showsPrec p (VkSamplerAddressMode x) = showParen (p >= 11) (showString "VkSamplerAddressMode " . showsPrec 11 x)--instance Read VkSamplerAddressMode where-  readPrec = parens ( choose [ ("VK_SAMPLER_ADDRESS_MODE_REPEAT", pure VK_SAMPLER_ADDRESS_MODE_REPEAT)-                             , ("VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT", pure VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT)-                             , ("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", pure VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE)-                             , ("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER", pure VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER)-                             , ("VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE", pure VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSamplerAddressMode")-                        v <- step readPrec-                        pure (VkSamplerAddressMode v)-                        )-                    )---pattern VK_SAMPLER_ADDRESS_MODE_REPEAT = VkSamplerAddressMode 0--pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = VkSamplerAddressMode 1--pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = VkSamplerAddressMode 2--pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = VkSamplerAddressMode 3--pattern VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = VkSamplerAddressMode 4---- ** VkFilter--newtype VkFilter = VkFilter Int32-  deriving (Eq, Storable)--instance Show VkFilter where-  showsPrec _ VK_FILTER_NEAREST = showString "VK_FILTER_NEAREST"-  showsPrec _ VK_FILTER_LINEAR = showString "VK_FILTER_LINEAR"-  showsPrec p (VkFilter x) = showParen (p >= 11) (showString "VkFilter " . showsPrec 11 x)--instance Read VkFilter where-  readPrec = parens ( choose [ ("VK_FILTER_NEAREST", pure VK_FILTER_NEAREST)-                             , ("VK_FILTER_LINEAR", pure VK_FILTER_LINEAR)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkFilter")-                        v <- step readPrec-                        pure (VkFilter v)-                        )-                    )---pattern VK_FILTER_NEAREST = VkFilter 0--pattern VK_FILTER_LINEAR = VkFilter 1---- ** VkBorderColor--newtype VkBorderColor = VkBorderColor Int32-  deriving (Eq, Storable)--instance Show VkBorderColor where-  showsPrec _ VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = showString "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK"-  showsPrec _ VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = showString "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK"-  showsPrec _ VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = showString "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK"-  showsPrec _ VK_BORDER_COLOR_INT_OPAQUE_BLACK = showString "VK_BORDER_COLOR_INT_OPAQUE_BLACK"-  showsPrec _ VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = showString "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE"-  showsPrec _ VK_BORDER_COLOR_INT_OPAQUE_WHITE = showString "VK_BORDER_COLOR_INT_OPAQUE_WHITE"-  showsPrec p (VkBorderColor x) = showParen (p >= 11) (showString "VkBorderColor " . showsPrec 11 x)--instance Read VkBorderColor where-  readPrec = parens ( choose [ ("VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK", pure VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK)-                             , ("VK_BORDER_COLOR_INT_TRANSPARENT_BLACK", pure VK_BORDER_COLOR_INT_TRANSPARENT_BLACK)-                             , ("VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK", pure VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK)-                             , ("VK_BORDER_COLOR_INT_OPAQUE_BLACK", pure VK_BORDER_COLOR_INT_OPAQUE_BLACK)-                             , ("VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE", pure VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE)-                             , ("VK_BORDER_COLOR_INT_OPAQUE_WHITE", pure VK_BORDER_COLOR_INT_OPAQUE_WHITE)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkBorderColor")-                        v <- step readPrec-                        pure (VkBorderColor v)-                        )-                    )---pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = VkBorderColor 0--pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = VkBorderColor 1--pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = VkBorderColor 2--pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK = VkBorderColor 3--pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = VkBorderColor 4--pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE = VkBorderColor 5---- ** VkCompareOp--newtype VkCompareOp = VkCompareOp Int32-  deriving (Eq, Storable)--instance Show VkCompareOp where-  showsPrec _ VK_COMPARE_OP_NEVER = showString "VK_COMPARE_OP_NEVER"-  showsPrec _ VK_COMPARE_OP_LESS = showString "VK_COMPARE_OP_LESS"-  showsPrec _ VK_COMPARE_OP_EQUAL = showString "VK_COMPARE_OP_EQUAL"-  showsPrec _ VK_COMPARE_OP_LESS_OR_EQUAL = showString "VK_COMPARE_OP_LESS_OR_EQUAL"-  showsPrec _ VK_COMPARE_OP_GREATER = showString "VK_COMPARE_OP_GREATER"-  showsPrec _ VK_COMPARE_OP_NOT_EQUAL = showString "VK_COMPARE_OP_NOT_EQUAL"-  showsPrec _ VK_COMPARE_OP_GREATER_OR_EQUAL = showString "VK_COMPARE_OP_GREATER_OR_EQUAL"-  showsPrec _ VK_COMPARE_OP_ALWAYS = showString "VK_COMPARE_OP_ALWAYS"-  showsPrec p (VkCompareOp x) = showParen (p >= 11) (showString "VkCompareOp " . showsPrec 11 x)--instance Read VkCompareOp where-  readPrec = parens ( choose [ ("VK_COMPARE_OP_NEVER", pure VK_COMPARE_OP_NEVER)-                             , ("VK_COMPARE_OP_LESS", pure VK_COMPARE_OP_LESS)-                             , ("VK_COMPARE_OP_EQUAL", pure VK_COMPARE_OP_EQUAL)-                             , ("VK_COMPARE_OP_LESS_OR_EQUAL", pure VK_COMPARE_OP_LESS_OR_EQUAL)-                             , ("VK_COMPARE_OP_GREATER", pure VK_COMPARE_OP_GREATER)-                             , ("VK_COMPARE_OP_NOT_EQUAL", pure VK_COMPARE_OP_NOT_EQUAL)-                             , ("VK_COMPARE_OP_GREATER_OR_EQUAL", pure VK_COMPARE_OP_GREATER_OR_EQUAL)-                             , ("VK_COMPARE_OP_ALWAYS", pure VK_COMPARE_OP_ALWAYS)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkCompareOp")-                        v <- step readPrec-                        pure (VkCompareOp v)-                        )-                    )---pattern VK_COMPARE_OP_NEVER = VkCompareOp 0--pattern VK_COMPARE_OP_LESS = VkCompareOp 1--pattern VK_COMPARE_OP_EQUAL = VkCompareOp 2--pattern VK_COMPARE_OP_LESS_OR_EQUAL = VkCompareOp 3--pattern VK_COMPARE_OP_GREATER = VkCompareOp 4--pattern VK_COMPARE_OP_NOT_EQUAL = VkCompareOp 5--pattern VK_COMPARE_OP_GREATER_OR_EQUAL = VkCompareOp 6--pattern VK_COMPARE_OP_ALWAYS = VkCompareOp 7--newtype VkSampler = VkSampler Word64-  deriving (Eq, Storable)---data VkSamplerCreateInfo =-  VkSamplerCreateInfo{ vkSType :: VkStructureType -                     , vkPNext :: Ptr Void -                     , vkFlags :: VkSamplerCreateFlags -                     , vkMagFilter :: VkFilter -                     , vkMinFilter :: VkFilter -                     , vkMipmapMode :: VkSamplerMipmapMode -                     , vkAddressModeU :: VkSamplerAddressMode -                     , vkAddressModeV :: VkSamplerAddressMode -                     , vkAddressModeW :: VkSamplerAddressMode -                     , vkMipLodBias :: CFloat -                     , vkAnisotropyEnable :: VkBool32 -                     , vkMaxAnisotropy :: CFloat -                     , vkCompareEnable :: VkBool32 -                     , vkCompareOp :: VkCompareOp -                     , vkMinLod :: CFloat -                     , vkMaxLod :: CFloat -                     , vkBorderColor :: VkBorderColor -                     , vkUnnormalizedCoordinates :: VkBool32 -                     }-  deriving (Eq)--instance Storable VkSamplerCreateInfo where-  sizeOf ~_ = 80-  alignment ~_ = 8-  peek ptr = VkSamplerCreateInfo <$> peek (ptr `plusPtr` 0)-                                 <*> peek (ptr `plusPtr` 8)-                                 <*> peek (ptr `plusPtr` 16)-                                 <*> peek (ptr `plusPtr` 20)-                                 <*> peek (ptr `plusPtr` 24)-                                 <*> peek (ptr `plusPtr` 28)-                                 <*> peek (ptr `plusPtr` 32)-                                 <*> peek (ptr `plusPtr` 36)-                                 <*> peek (ptr `plusPtr` 40)-                                 <*> peek (ptr `plusPtr` 44)-                                 <*> peek (ptr `plusPtr` 48)-                                 <*> peek (ptr `plusPtr` 52)-                                 <*> peek (ptr `plusPtr` 56)-                                 <*> peek (ptr `plusPtr` 60)-                                 <*> peek (ptr `plusPtr` 64)-                                 <*> peek (ptr `plusPtr` 68)-                                 <*> peek (ptr `plusPtr` 72)-                                 <*> peek (ptr `plusPtr` 76)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 20) (vkMagFilter (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkMinFilter (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 28) (vkMipmapMode (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkAddressModeU (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 36) (vkAddressModeV (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 40) (vkAddressModeW (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 44) (vkMipLodBias (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 48) (vkAnisotropyEnable (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 52) (vkMaxAnisotropy (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 56) (vkCompareEnable (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 60) (vkCompareOp (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 64) (vkMinLod (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 68) (vkMaxLod (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 72) (vkBorderColor (poked :: VkSamplerCreateInfo))-                *> poke (ptr `plusPtr` 76) (vkUnnormalizedCoordinates (poked :: VkSamplerCreateInfo))----- ** VkSamplerCreateFlags--- | Opaque flag-newtype VkSamplerCreateFlags = VkSamplerCreateFlags VkFlags-  deriving (Eq, Storable)---- ** VkSamplerMipmapMode--newtype VkSamplerMipmapMode = VkSamplerMipmapMode Int32-  deriving (Eq, Storable)--instance Show VkSamplerMipmapMode where-  showsPrec _ VK_SAMPLER_MIPMAP_MODE_NEAREST = showString "VK_SAMPLER_MIPMAP_MODE_NEAREST"-  showsPrec _ VK_SAMPLER_MIPMAP_MODE_LINEAR = showString "VK_SAMPLER_MIPMAP_MODE_LINEAR"-  showsPrec p (VkSamplerMipmapMode x) = showParen (p >= 11) (showString "VkSamplerMipmapMode " . showsPrec 11 x)--instance Read VkSamplerMipmapMode where-  readPrec = parens ( choose [ ("VK_SAMPLER_MIPMAP_MODE_NEAREST", pure VK_SAMPLER_MIPMAP_MODE_NEAREST)-                             , ("VK_SAMPLER_MIPMAP_MODE_LINEAR", pure VK_SAMPLER_MIPMAP_MODE_LINEAR)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSamplerMipmapMode")-                        v <- step readPrec-                        pure (VkSamplerMipmapMode v)-                        )-                    )---- | Choose nearest mip level-pattern VK_SAMPLER_MIPMAP_MODE_NEAREST = VkSamplerMipmapMode 0--- | Linear filter between mip levels-pattern VK_SAMPLER_MIPMAP_MODE_LINEAR = VkSamplerMipmapMode 1---- ** vkCreateSampler-foreign import ccall "vkCreateSampler" vkCreateSampler ::-  VkDevice ->-  Ptr VkSamplerCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkSampler -> IO VkResult---- ** VkSampleCountFlags--newtype VkSampleCountFlagBits = VkSampleCountFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkSampleCountFlagBits-type VkSampleCountFlags = VkSampleCountFlagBits--instance Show VkSampleCountFlagBits where-  showsPrec _ VK_SAMPLE_COUNT_1_BIT = showString "VK_SAMPLE_COUNT_1_BIT"-  showsPrec _ VK_SAMPLE_COUNT_2_BIT = showString "VK_SAMPLE_COUNT_2_BIT"-  showsPrec _ VK_SAMPLE_COUNT_4_BIT = showString "VK_SAMPLE_COUNT_4_BIT"-  showsPrec _ VK_SAMPLE_COUNT_8_BIT = showString "VK_SAMPLE_COUNT_8_BIT"-  showsPrec _ VK_SAMPLE_COUNT_16_BIT = showString "VK_SAMPLE_COUNT_16_BIT"-  showsPrec _ VK_SAMPLE_COUNT_32_BIT = showString "VK_SAMPLE_COUNT_32_BIT"-  showsPrec _ VK_SAMPLE_COUNT_64_BIT = showString "VK_SAMPLE_COUNT_64_BIT"-  -  showsPrec p (VkSampleCountFlagBits x) = showParen (p >= 11) (showString "VkSampleCountFlagBits " . showsPrec 11 x)--instance Read VkSampleCountFlagBits where-  readPrec = parens ( choose [ ("VK_SAMPLE_COUNT_1_BIT", pure VK_SAMPLE_COUNT_1_BIT)-                             , ("VK_SAMPLE_COUNT_2_BIT", pure VK_SAMPLE_COUNT_2_BIT)-                             , ("VK_SAMPLE_COUNT_4_BIT", pure VK_SAMPLE_COUNT_4_BIT)-                             , ("VK_SAMPLE_COUNT_8_BIT", pure VK_SAMPLE_COUNT_8_BIT)-                             , ("VK_SAMPLE_COUNT_16_BIT", pure VK_SAMPLE_COUNT_16_BIT)-                             , ("VK_SAMPLE_COUNT_32_BIT", pure VK_SAMPLE_COUNT_32_BIT)-                             , ("VK_SAMPLE_COUNT_64_BIT", pure VK_SAMPLE_COUNT_64_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSampleCountFlagBits")-                        v <- step readPrec-                        pure (VkSampleCountFlagBits v)-                        )-                    )---- | Sample count 1 supported-pattern VK_SAMPLE_COUNT_1_BIT = VkSampleCountFlagBits 0x1--- | Sample count 2 supported-pattern VK_SAMPLE_COUNT_2_BIT = VkSampleCountFlagBits 0x2--- | Sample count 4 supported-pattern VK_SAMPLE_COUNT_4_BIT = VkSampleCountFlagBits 0x4--- | Sample count 8 supported-pattern VK_SAMPLE_COUNT_8_BIT = VkSampleCountFlagBits 0x8--- | Sample count 16 supported-pattern VK_SAMPLE_COUNT_16_BIT = VkSampleCountFlagBits 0x10--- | Sample count 32 supported-pattern VK_SAMPLE_COUNT_32_BIT = VkSampleCountFlagBits 0x20--- | Sample count 64 supported-pattern VK_SAMPLE_COUNT_64_BIT = VkSampleCountFlagBits 0x40----- ** vkDestroySampler-foreign import ccall "vkDestroySampler" vkDestroySampler ::-  VkDevice -> VkSampler -> Ptr VkAllocationCallbacks -> IO ()-
− src/Graphics/Vulkan/Shader.hs
@@ -1,146 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.Shader where--import Graphics.Vulkan.Device( VkDevice(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkInternalAllocationType(..)-                             , PFN_vkAllocationFunction-                             , PFN_vkReallocationFunction-                             , PFN_vkInternalAllocationNotification-                             , VkAllocationCallbacks(..)-                             , VkSystemAllocationScope(..)-                             , PFN_vkFreeFunction-                             , PFN_vkInternalFreeNotification-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Core( VkResult(..)-                           , VkFlags(..)-                           , VkStructureType(..)-                           )-import Foreign.C.Types( CSize-                      , CSize(..)-                      )---data VkShaderModuleCreateInfo =-  VkShaderModuleCreateInfo{ vkSType :: VkStructureType -                          , vkPNext :: Ptr Void -                          , vkFlags :: VkShaderModuleCreateFlags -                          , vkCodeSize :: CSize -                          , vkPCode :: Ptr Word32 -                          }-  deriving (Eq)--instance Storable VkShaderModuleCreateInfo where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkShaderModuleCreateInfo <$> peek (ptr `plusPtr` 0)-                                      <*> peek (ptr `plusPtr` 8)-                                      <*> peek (ptr `plusPtr` 16)-                                      <*> peek (ptr `plusPtr` 24)-                                      <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkShaderModuleCreateInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkShaderModuleCreateInfo))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkShaderModuleCreateInfo))-                *> poke (ptr `plusPtr` 24) (vkCodeSize (poked :: VkShaderModuleCreateInfo))-                *> poke (ptr `plusPtr` 32) (vkPCode (poked :: VkShaderModuleCreateInfo))----- ** vkDestroyShaderModule-foreign import ccall "vkDestroyShaderModule" vkDestroyShaderModule ::-  VkDevice -> VkShaderModule -> Ptr VkAllocationCallbacks -> IO ()---- ** VkShaderModuleCreateFlags--- | Opaque flag-newtype VkShaderModuleCreateFlags = VkShaderModuleCreateFlags VkFlags-  deriving (Eq, Storable)---- ** VkShaderStageFlags--newtype VkShaderStageFlagBits = VkShaderStageFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkShaderStageFlagBits-type VkShaderStageFlags = VkShaderStageFlagBits--instance Show VkShaderStageFlagBits where-  showsPrec _ VK_SHADER_STAGE_VERTEX_BIT = showString "VK_SHADER_STAGE_VERTEX_BIT"-  showsPrec _ VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = showString "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"-  showsPrec _ VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = showString "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"-  showsPrec _ VK_SHADER_STAGE_GEOMETRY_BIT = showString "VK_SHADER_STAGE_GEOMETRY_BIT"-  showsPrec _ VK_SHADER_STAGE_FRAGMENT_BIT = showString "VK_SHADER_STAGE_FRAGMENT_BIT"-  showsPrec _ VK_SHADER_STAGE_COMPUTE_BIT = showString "VK_SHADER_STAGE_COMPUTE_BIT"-  showsPrec _ VK_SHADER_STAGE_ALL_GRAPHICS = showString "VK_SHADER_STAGE_ALL_GRAPHICS"-  showsPrec _ VK_SHADER_STAGE_ALL = showString "VK_SHADER_STAGE_ALL"-  showsPrec p (VkShaderStageFlagBits x) = showParen (p >= 11) (showString "VkShaderStageFlagBits " . showsPrec 11 x)--instance Read VkShaderStageFlagBits where-  readPrec = parens ( choose [ ("VK_SHADER_STAGE_VERTEX_BIT", pure VK_SHADER_STAGE_VERTEX_BIT)-                             , ("VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", pure VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT)-                             , ("VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", pure VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)-                             , ("VK_SHADER_STAGE_GEOMETRY_BIT", pure VK_SHADER_STAGE_GEOMETRY_BIT)-                             , ("VK_SHADER_STAGE_FRAGMENT_BIT", pure VK_SHADER_STAGE_FRAGMENT_BIT)-                             , ("VK_SHADER_STAGE_COMPUTE_BIT", pure VK_SHADER_STAGE_COMPUTE_BIT)-                             , ("VK_SHADER_STAGE_ALL_GRAPHICS", pure VK_SHADER_STAGE_ALL_GRAPHICS)-                             , ("VK_SHADER_STAGE_ALL", pure VK_SHADER_STAGE_ALL)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkShaderStageFlagBits")-                        v <- step readPrec-                        pure (VkShaderStageFlagBits v)-                        )-                    )---pattern VK_SHADER_STAGE_VERTEX_BIT = VkShaderStageFlagBits 0x1--pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = VkShaderStageFlagBits 0x2--pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = VkShaderStageFlagBits 0x4--pattern VK_SHADER_STAGE_GEOMETRY_BIT = VkShaderStageFlagBits 0x8--pattern VK_SHADER_STAGE_FRAGMENT_BIT = VkShaderStageFlagBits 0x10--pattern VK_SHADER_STAGE_COMPUTE_BIT = VkShaderStageFlagBits 0x20--pattern VK_SHADER_STAGE_ALL_GRAPHICS = VkShaderStageFlagBits 0x1f--pattern VK_SHADER_STAGE_ALL = VkShaderStageFlagBits 0x7fffffff--newtype VkShaderModule = VkShaderModule Word64-  deriving (Eq, Storable)---- ** vkCreateShaderModule-foreign import ccall "vkCreateShaderModule" vkCreateShaderModule ::-  VkDevice ->-  Ptr VkShaderModuleCreateInfo ->-    Ptr VkAllocationCallbacks -> Ptr VkShaderModule -> IO VkResult-
− src/Graphics/Vulkan/SparseResourceMemoryManagement.hs
@@ -1,348 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE Strict #-}-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module Graphics.Vulkan.SparseResourceMemoryManagement where--import Graphics.Vulkan.Device( VkPhysicalDevice(..)-                             , VkDevice(..)-                             )-import Graphics.Vulkan.Buffer( VkBuffer(..)-                             )-import Text.Read.Lex( Lexeme(Ident)-                    )-import GHC.Read( expectP-               , choose-               )-import Data.Word( Word64-                , Word32-                )-import Foreign.Ptr( Ptr-                  , plusPtr-                  )-import Graphics.Vulkan.Queue( VkQueue(..)-                            )-import Data.Int( Int32-               )-import Data.Bits( Bits-                , FiniteBits-                )-import Foreign.Storable( Storable(..)-                       )-import Graphics.Vulkan.Fence( VkFence(..)-                            )-import Data.Void( Void-                )-import Graphics.Vulkan.Memory( VkDeviceMemory(..)-                             )-import Text.Read( Read(..)-                , parens-                )-import Text.ParserCombinators.ReadPrec( prec-                                      , (+++)-                                      , step-                                      )-import Graphics.Vulkan.Sampler( VkSampleCountFlagBits(..)-                              )-import Graphics.Vulkan.Image( VkImageUsageFlags(..)-                            , VkImage(..)-                            , VkImageSubresource(..)-                            , VkImageType(..)-                            , VkImageAspectFlagBits(..)-                            , VkImageUsageFlagBits(..)-                            , VkImageTiling(..)-                            , VkImageAspectFlags(..)-                            )-import Graphics.Vulkan.QueueSemaphore( VkSemaphore(..)-                                     )-import Graphics.Vulkan.Core( VkExtent3D(..)-                           , VkResult(..)-                           , VkDeviceSize(..)-                           , VkFlags(..)-                           , VkFormat(..)-                           , VkOffset3D(..)-                           , VkStructureType(..)-                           )---data VkSparseImageMemoryRequirements =-  VkSparseImageMemoryRequirements{ vkFormatProperties :: VkSparseImageFormatProperties -                                 , vkImageMipTailFirstLod :: Word32 -                                 , vkImageMipTailSize :: VkDeviceSize -                                 , vkImageMipTailOffset :: VkDeviceSize -                                 , vkImageMipTailStride :: VkDeviceSize -                                 }-  deriving (Eq)--instance Storable VkSparseImageMemoryRequirements where-  sizeOf ~_ = 48-  alignment ~_ = 8-  peek ptr = VkSparseImageMemoryRequirements <$> peek (ptr `plusPtr` 0)-                                             <*> peek (ptr `plusPtr` 20)-                                             <*> peek (ptr `plusPtr` 24)-                                             <*> peek (ptr `plusPtr` 32)-                                             <*> peek (ptr `plusPtr` 40)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkFormatProperties (poked :: VkSparseImageMemoryRequirements))-                *> poke (ptr `plusPtr` 20) (vkImageMipTailFirstLod (poked :: VkSparseImageMemoryRequirements))-                *> poke (ptr `plusPtr` 24) (vkImageMipTailSize (poked :: VkSparseImageMemoryRequirements))-                *> poke (ptr `plusPtr` 32) (vkImageMipTailOffset (poked :: VkSparseImageMemoryRequirements))-                *> poke (ptr `plusPtr` 40) (vkImageMipTailStride (poked :: VkSparseImageMemoryRequirements))----data VkSparseMemoryBind =-  VkSparseMemoryBind{ vkResourceOffset :: VkDeviceSize -                    , vkSize :: VkDeviceSize -                    , vkMemory :: VkDeviceMemory -                    , vkMemoryOffset :: VkDeviceSize -                    , vkFlags :: VkSparseMemoryBindFlags -                    }-  deriving (Eq)--instance Storable VkSparseMemoryBind where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek ptr = VkSparseMemoryBind <$> peek (ptr `plusPtr` 0)-                                <*> peek (ptr `plusPtr` 8)-                                <*> peek (ptr `plusPtr` 16)-                                <*> peek (ptr `plusPtr` 24)-                                <*> peek (ptr `plusPtr` 32)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkResourceOffset (poked :: VkSparseMemoryBind))-                *> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSparseMemoryBind))-                *> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkSparseMemoryBind))-                *> poke (ptr `plusPtr` 24) (vkMemoryOffset (poked :: VkSparseMemoryBind))-                *> poke (ptr `plusPtr` 32) (vkFlags (poked :: VkSparseMemoryBind))----data VkSparseImageMemoryBind =-  VkSparseImageMemoryBind{ vkSubresource :: VkImageSubresource -                         , vkOffset :: VkOffset3D -                         , vkExtent :: VkExtent3D -                         , vkMemory :: VkDeviceMemory -                         , vkMemoryOffset :: VkDeviceSize -                         , vkFlags :: VkSparseMemoryBindFlags -                         }-  deriving (Eq)--instance Storable VkSparseImageMemoryBind where-  sizeOf ~_ = 64-  alignment ~_ = 8-  peek ptr = VkSparseImageMemoryBind <$> peek (ptr `plusPtr` 0)-                                     <*> peek (ptr `plusPtr` 12)-                                     <*> peek (ptr `plusPtr` 24)-                                     <*> peek (ptr `plusPtr` 40)-                                     <*> peek (ptr `plusPtr` 48)-                                     <*> peek (ptr `plusPtr` 56)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSubresource (poked :: VkSparseImageMemoryBind))-                *> poke (ptr `plusPtr` 12) (vkOffset (poked :: VkSparseImageMemoryBind))-                *> poke (ptr `plusPtr` 24) (vkExtent (poked :: VkSparseImageMemoryBind))-                *> poke (ptr `plusPtr` 40) (vkMemory (poked :: VkSparseImageMemoryBind))-                *> poke (ptr `plusPtr` 48) (vkMemoryOffset (poked :: VkSparseImageMemoryBind))-                *> poke (ptr `plusPtr` 56) (vkFlags (poked :: VkSparseImageMemoryBind))----data VkSparseImageMemoryBindInfo =-  VkSparseImageMemoryBindInfo{ vkImage :: VkImage -                             , vkBindCount :: Word32 -                             , vkPBinds :: Ptr VkSparseImageMemoryBind -                             }-  deriving (Eq)--instance Storable VkSparseImageMemoryBindInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkSparseImageMemoryBindInfo <$> peek (ptr `plusPtr` 0)-                                         <*> peek (ptr `plusPtr` 8)-                                         <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkImage (poked :: VkSparseImageMemoryBindInfo))-                *> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseImageMemoryBindInfo))-                *> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseImageMemoryBindInfo))----- ** vkGetImageSparseMemoryRequirements-foreign import ccall "vkGetImageSparseMemoryRequirements" vkGetImageSparseMemoryRequirements ::-  VkDevice ->-  VkImage ->-    Ptr Word32 -> Ptr VkSparseImageMemoryRequirements -> IO ()---- ** vkQueueBindSparse-foreign import ccall "vkQueueBindSparse" vkQueueBindSparse ::-  VkQueue -> Word32 -> Ptr VkBindSparseInfo -> VkFence -> IO VkResult---data VkBindSparseInfo =-  VkBindSparseInfo{ vkSType :: VkStructureType -                  , vkPNext :: Ptr Void -                  , vkWaitSemaphoreCount :: Word32 -                  , vkPWaitSemaphores :: Ptr VkSemaphore -                  , vkBufferBindCount :: Word32 -                  , vkPBufferBinds :: Ptr VkSparseBufferMemoryBindInfo -                  , vkImageOpaqueBindCount :: Word32 -                  , vkPImageOpaqueBinds :: Ptr VkSparseImageOpaqueMemoryBindInfo -                  , vkImageBindCount :: Word32 -                  , vkPImageBinds :: Ptr VkSparseImageMemoryBindInfo -                  , vkSignalSemaphoreCount :: Word32 -                  , vkPSignalSemaphores :: Ptr VkSemaphore -                  }-  deriving (Eq)--instance Storable VkBindSparseInfo where-  sizeOf ~_ = 96-  alignment ~_ = 8-  peek ptr = VkBindSparseInfo <$> peek (ptr `plusPtr` 0)-                              <*> peek (ptr `plusPtr` 8)-                              <*> peek (ptr `plusPtr` 16)-                              <*> peek (ptr `plusPtr` 24)-                              <*> peek (ptr `plusPtr` 32)-                              <*> peek (ptr `plusPtr` 40)-                              <*> peek (ptr `plusPtr` 48)-                              <*> peek (ptr `plusPtr` 56)-                              <*> peek (ptr `plusPtr` 64)-                              <*> peek (ptr `plusPtr` 72)-                              <*> peek (ptr `plusPtr` 80)-                              <*> peek (ptr `plusPtr` 88)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 32) (vkBufferBindCount (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 40) (vkPBufferBinds (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 48) (vkImageOpaqueBindCount (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 56) (vkPImageOpaqueBinds (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 64) (vkImageBindCount (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 72) (vkPImageBinds (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 80) (vkSignalSemaphoreCount (poked :: VkBindSparseInfo))-                *> poke (ptr `plusPtr` 88) (vkPSignalSemaphores (poked :: VkBindSparseInfo))----data VkSparseBufferMemoryBindInfo =-  VkSparseBufferMemoryBindInfo{ vkBuffer :: VkBuffer -                              , vkBindCount :: Word32 -                              , vkPBinds :: Ptr VkSparseMemoryBind -                              }-  deriving (Eq)--instance Storable VkSparseBufferMemoryBindInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkSparseBufferMemoryBindInfo <$> peek (ptr `plusPtr` 0)-                                          <*> peek (ptr `plusPtr` 8)-                                          <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkBuffer (poked :: VkSparseBufferMemoryBindInfo))-                *> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseBufferMemoryBindInfo))-                *> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseBufferMemoryBindInfo))----- ** VkSparseImageFormatFlags--newtype VkSparseImageFormatFlagBits = VkSparseImageFormatFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkSparseImageFormatFlagBits-type VkSparseImageFormatFlags = VkSparseImageFormatFlagBits--instance Show VkSparseImageFormatFlagBits where-  showsPrec _ VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = showString "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"-  showsPrec _ VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = showString "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"-  showsPrec _ VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = showString "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"-  -  showsPrec p (VkSparseImageFormatFlagBits x) = showParen (p >= 11) (showString "VkSparseImageFormatFlagBits " . showsPrec 11 x)--instance Read VkSparseImageFormatFlagBits where-  readPrec = parens ( choose [ ("VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT", pure VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT)-                             , ("VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT", pure VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT)-                             , ("VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT", pure VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSparseImageFormatFlagBits")-                        v <- step readPrec-                        pure (VkSparseImageFormatFlagBits v)-                        )-                    )---- | Image uses a single miptail region for all array layers-pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = VkSparseImageFormatFlagBits 0x1--- | Image requires mip levels to be an exact multiple of the sparse image block size for non-miptail levels.-pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = VkSparseImageFormatFlagBits 0x2--- | Image uses a non-standard sparse block size-pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = VkSparseImageFormatFlagBits 0x4----- ** vkGetPhysicalDeviceSparseImageFormatProperties-foreign import ccall "vkGetPhysicalDeviceSparseImageFormatProperties" vkGetPhysicalDeviceSparseImageFormatProperties ::-  VkPhysicalDevice ->-  VkFormat ->-    VkImageType ->-      VkSampleCountFlagBits ->-        VkImageUsageFlags ->-          VkImageTiling ->-            Ptr Word32 -> Ptr VkSparseImageFormatProperties -> IO ()---- ** VkSparseMemoryBindFlags--newtype VkSparseMemoryBindFlagBits = VkSparseMemoryBindFlagBits VkFlags-  deriving (Eq, Storable, Bits, FiniteBits)---- | Alias for VkSparseMemoryBindFlagBits-type VkSparseMemoryBindFlags = VkSparseMemoryBindFlagBits--instance Show VkSparseMemoryBindFlagBits where-  showsPrec _ VK_SPARSE_MEMORY_BIND_METADATA_BIT = showString "VK_SPARSE_MEMORY_BIND_METADATA_BIT"-  -  showsPrec p (VkSparseMemoryBindFlagBits x) = showParen (p >= 11) (showString "VkSparseMemoryBindFlagBits " . showsPrec 11 x)--instance Read VkSparseMemoryBindFlagBits where-  readPrec = parens ( choose [ ("VK_SPARSE_MEMORY_BIND_METADATA_BIT", pure VK_SPARSE_MEMORY_BIND_METADATA_BIT)-                             ] +++-                      prec 10 (do-                        expectP (Ident "VkSparseMemoryBindFlagBits")-                        v <- step readPrec-                        pure (VkSparseMemoryBindFlagBits v)-                        )-                    )---- | Operation binds resource metadata to memory-pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT = VkSparseMemoryBindFlagBits 0x1----data VkSparseImageOpaqueMemoryBindInfo =-  VkSparseImageOpaqueMemoryBindInfo{ vkImage :: VkImage -                                   , vkBindCount :: Word32 -                                   , vkPBinds :: Ptr VkSparseMemoryBind -                                   }-  deriving (Eq)--instance Storable VkSparseImageOpaqueMemoryBindInfo where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek ptr = VkSparseImageOpaqueMemoryBindInfo <$> peek (ptr `plusPtr` 0)-                                               <*> peek (ptr `plusPtr` 8)-                                               <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkImage (poked :: VkSparseImageOpaqueMemoryBindInfo))-                *> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseImageOpaqueMemoryBindInfo))-                *> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseImageOpaqueMemoryBindInfo))----data VkSparseImageFormatProperties =-  VkSparseImageFormatProperties{ vkAspectMask :: VkImageAspectFlags -                               , vkImageGranularity :: VkExtent3D -                               , vkFlags :: VkSparseImageFormatFlags -                               }-  deriving (Eq)--instance Storable VkSparseImageFormatProperties where-  sizeOf ~_ = 20-  alignment ~_ = 4-  peek ptr = VkSparseImageFormatProperties <$> peek (ptr `plusPtr` 0)-                                           <*> peek (ptr `plusPtr` 4)-                                           <*> peek (ptr `plusPtr` 16)-  poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkSparseImageFormatProperties))-                *> poke (ptr `plusPtr` 4) (vkImageGranularity (poked :: VkSparseImageFormatProperties))-                *> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSparseImageFormatProperties))--
− src/Graphics/Vulkan/Version.hs
@@ -1,26 +0,0 @@--module Graphics.Vulkan.Version where--import Data.Word( Word32-                )-import Data.Bits( shiftR-                , shiftL-                , (.|.)-                , (.&.)-                )--vkApiVersion :: Word32-vkApiVersion  = vkMakeVersion 1 0 3--vkVersionMinor :: Word32 -> Word32-vkVersionMinor version = (.&.) (shiftR version 12) 1023--vkVersionPatch :: Word32 -> Word32-vkVersionPatch version = (.&.) version 4095--vkMakeVersion :: Word32 -> Word32 -> Word32 -> Word32-vkMakeVersion major minor patch = (.|.) ((.|.) (shiftL major 22) (shiftL minor 12)) patch--vkVersionMajor :: Word32 -> Word32-vkVersionMajor version = shiftR version 22-
vulkan.cabal view
@@ -1,5 +1,5 @@ name:                vulkan-version:             1.7.0.0+version:             2.0.0.0 synopsis:            Bindings to the Vulkan graphics API. description:         Please see readme.md homepage:            http://github.com/expipiplus1/vulkan#readme@@ -7,55 +7,270 @@ license-file:        LICENSE author:              Joe Hermaszewski maintainer:          live.long.and.prosper@monoid.al-copyright:           2016 Joe Hermaszewski+copyright:           2018 Joe Hermaszewski category:            Graphics build-type:          Simple extra-source-files:  readme.md,                      changelog.md cabal-version:       >=1.10 +flag xlib+    description:+      Enable xlib specific extensions+    default: False+flag xlib_xrandr+    description:+      Enable xlib_xrandr specific extensions+    default: False+flag xcb+    description:+      Enable xcb specific extensions+    default: False+flag wayland+    description:+      Enable wayland specific extensions+    default: False+flag mir+    description:+      Enable mir specific extensions+    default: False+flag android+    description:+      Enable android specific extensions+    default: False+flag win32+    description:+      Enable win32 specific extensions+    default: False+flag vi+    description:+      Enable vi specific extensions+    default: False+flag ios+    description:+      Enable ios specific extensions+    default: False+flag macos+    description:+      Enable macos specific extensions+    default: False+ library   hs-source-dirs:      src-  exposed-modules:     Graphics.Vulkan-                     , Graphics.Vulkan.Buffer-                     , Graphics.Vulkan.BufferView-                     , Graphics.Vulkan.CommandBuffer-                     , Graphics.Vulkan.CommandBufferBuilding-                     , Graphics.Vulkan.CommandPool-                     , Graphics.Vulkan.Constants-                     , Graphics.Vulkan.Core-                     , Graphics.Vulkan.DescriptorSet-                     , Graphics.Vulkan.Device-                     , Graphics.Vulkan.DeviceInitialization-                     , Graphics.Vulkan.EXT.DebugReport-                     , Graphics.Vulkan.Event-                     , Graphics.Vulkan.ExtensionDiscovery-                     , Graphics.Vulkan.Fence-                     , Graphics.Vulkan.Image-                     , Graphics.Vulkan.ImageView-                     , Graphics.Vulkan.KHR.Display-                     , Graphics.Vulkan.KHR.DisplaySwapchain-                     , Graphics.Vulkan.KHR.Surface-                     , Graphics.Vulkan.KHR.Swapchain-                     , Graphics.Vulkan.LayerDiscovery-                     , Graphics.Vulkan.Memory-                     , Graphics.Vulkan.MemoryManagement-                     , Graphics.Vulkan.OtherTypes-                     , Graphics.Vulkan.Pass-                     , Graphics.Vulkan.Pipeline-                     , Graphics.Vulkan.PipelineCache-                     , Graphics.Vulkan.PipelineLayout-                     , Graphics.Vulkan.Query-                     , Graphics.Vulkan.Queue-                     , Graphics.Vulkan.QueueSemaphore-                     , Graphics.Vulkan.Sampler-                     , Graphics.Vulkan.Shader-                     , Graphics.Vulkan.SparseResourceMemoryManagement-                     , Graphics.Vulkan.Version+  ghc-options:         -Wall+  exposed-modules:     Graphics.Vulkan.NamedType+                     , Graphics.Vulkan.Core10.Core+                     , Graphics.Vulkan.Core10.Version+                     , Graphics.Vulkan.Core10.Constants+                     , Graphics.Vulkan.Core10.DeviceInitialization+                     , Graphics.Vulkan.Core10.Device+                     , Graphics.Vulkan.Core10.ExtensionDiscovery+                     , Graphics.Vulkan.Core10.LayerDiscovery+                     , Graphics.Vulkan.Core10.Queue+                     , Graphics.Vulkan.Core10.Memory+                     , Graphics.Vulkan.Core10.MemoryManagement+                     , Graphics.Vulkan.Core10.SparseResourceMemoryManagement+                     , Graphics.Vulkan.Core10.Fence+                     , Graphics.Vulkan.Core10.QueueSemaphore+                     , Graphics.Vulkan.Core10.Event+                     , Graphics.Vulkan.Core10.Query+                     , Graphics.Vulkan.Core10.Buffer+                     , Graphics.Vulkan.Core10.BufferView+                     , Graphics.Vulkan.Core10.Image+                     , Graphics.Vulkan.Core10.ImageView+                     , Graphics.Vulkan.Core10.Shader+                     , Graphics.Vulkan.Core10.PipelineCache+                     , Graphics.Vulkan.Core10.Pipeline+                     , Graphics.Vulkan.Core10.PipelineLayout+                     , Graphics.Vulkan.Core10.Sampler+                     , Graphics.Vulkan.Core10.DescriptorSet+                     , Graphics.Vulkan.Core10.Pass+                     , Graphics.Vulkan.Core10.CommandPool+                     , Graphics.Vulkan.Core10.CommandBuffer+                     , Graphics.Vulkan.Core10.CommandBufferBuilding+                     , Graphics.Vulkan.Core11.DeviceInitialization+                     , Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers+                     , Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3+                     , Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters+                     , Graphics.Vulkan.Extensions.VK_KHR_surface+                     , Graphics.Vulkan.Extensions.VK_KHR_swapchain+                     , Graphics.Vulkan.Extensions.VK_KHR_display+                     , Graphics.Vulkan.Extensions.VK_KHR_display_swapchain+                     , Graphics.Vulkan.Extensions.VK_EXT_debug_report+                     , Graphics.Vulkan.Extensions.VK_NV_glsl_shader+                     , Graphics.Vulkan.Extensions.VK_EXT_depth_range_unrestricted+                     , Graphics.Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge+                     , Graphics.Vulkan.Extensions.VK_IMG_filter_cubic+                     , Graphics.Vulkan.Extensions.VK_AMD_rasterization_order+                     , Graphics.Vulkan.Extensions.VK_AMD_shader_trinary_minmax+                     , Graphics.Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter+                     , Graphics.Vulkan.Extensions.VK_EXT_debug_marker+                     , Graphics.Vulkan.Extensions.VK_AMD_gcn_shader+                     , Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation+                     , Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count+                     , Graphics.Vulkan.Extensions.VK_AMD_negative_viewport_height+                     , Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_half_float+                     , Graphics.Vulkan.Extensions.VK_AMD_shader_ballot+                     , Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod+                     , Graphics.Vulkan.Extensions.VK_AMD_shader_info+                     , Graphics.Vulkan.Extensions.VK_AMD_shader_image_load_store_lod+                     , Graphics.Vulkan.Extensions.VK_KHR_multiview+                     , Graphics.Vulkan.Extensions.VK_IMG_format_pvrtc+                     , Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities+                     , Graphics.Vulkan.Extensions.VK_NV_external_memory+                     , Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2+                     , Graphics.Vulkan.Extensions.VK_KHR_device_group+                     , Graphics.Vulkan.Extensions.VK_EXT_validation_flags+                     , Graphics.Vulkan.Extensions.VK_KHR_shader_draw_parameters+                     , Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_ballot+                     , Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_vote+                     , Graphics.Vulkan.Extensions.VK_KHR_maintenance1+                     , Graphics.Vulkan.Extensions.VK_KHR_device_group_creation+                     , Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities+                     , Graphics.Vulkan.Extensions.VK_KHR_external_memory+                     , Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd+                     , Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities+                     , Graphics.Vulkan.Extensions.VK_KHR_external_semaphore+                     , Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd+                     , Graphics.Vulkan.Extensions.VK_KHR_push_descriptor+                     , Graphics.Vulkan.Extensions.VK_KHR_16bit_storage+                     , Graphics.Vulkan.Extensions.VK_KHR_incremental_present+                     , Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template+                     , Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands+                     , Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling+                     , Graphics.Vulkan.Extensions.VK_EXT_direct_mode_display+                     , Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter+                     , Graphics.Vulkan.Extensions.VK_EXT_display_control+                     , Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing+                     , Graphics.Vulkan.Extensions.VK_NV_sample_mask_override_coverage+                     , Graphics.Vulkan.Extensions.VK_NV_geometry_shader_passthrough+                     , Graphics.Vulkan.Extensions.VK_NV_viewport_array2+                     , Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes+                     , Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle+                     , Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles+                     , Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization+                     , Graphics.Vulkan.Extensions.VK_EXT_swapchain_colorspace+                     , Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata+                     , Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image+                     , Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities+                     , Graphics.Vulkan.Extensions.VK_KHR_external_fence+                     , Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd+                     , Graphics.Vulkan.Extensions.VK_KHR_maintenance2+                     , Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2+                     , Graphics.Vulkan.Extensions.VK_KHR_variable_pointers+                     , Graphics.Vulkan.Extensions.VK_EXT_external_memory_dma_buf+                     , Graphics.Vulkan.Extensions.VK_EXT_queue_family_foreign+                     , Graphics.Vulkan.Extensions.VK_KHR_dedicated_allocation+                     , Graphics.Vulkan.Extensions.VK_EXT_debug_utils+                     , Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax+                     , Graphics.Vulkan.Extensions.VK_KHR_storage_buffer_storage_class+                     , Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_int16+                     , Graphics.Vulkan.Extensions.VK_AMD_mixed_attachment_samples+                     , Graphics.Vulkan.Extensions.VK_AMD_shader_fragment_mask+                     , Graphics.Vulkan.Extensions.VK_EXT_shader_stencil_export+                     , Graphics.Vulkan.Extensions.VK_EXT_sample_locations+                     , Graphics.Vulkan.Extensions.VK_KHR_relaxed_block_layout+                     , Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2+                     , Graphics.Vulkan.Extensions.VK_KHR_image_format_list+                     , Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced+                     , Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color+                     , Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples+                     , Graphics.Vulkan.Extensions.VK_NV_fill_rectangle+                     , Graphics.Vulkan.Extensions.VK_EXT_post_depth_coverage+                     , Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion+                     , Graphics.Vulkan.Extensions.VK_KHR_bind_memory2+                     , Graphics.Vulkan.Extensions.VK_EXT_validation_cache+                     , Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing+                     , Graphics.Vulkan.Extensions.VK_EXT_shader_viewport_index_layer+                     , Graphics.Vulkan.Extensions.VK_KHR_maintenance3+                     , Graphics.Vulkan.Extensions.VK_EXT_global_priority+                     , Graphics.Vulkan.Extensions.VK_EXT_external_memory_host+                     , Graphics.Vulkan.Extensions.VK_AMD_buffer_marker+                     , Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties+                     , Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+                     , Graphics.Vulkan.Extensions.VK_NV_shader_subgroup_partitioned+                     , Graphics.Vulkan+                     , Graphics.Vulkan.Core10+                     , Graphics.Vulkan.Core11+                     , Graphics.Vulkan.Extensions++  if flag(android)+    cpp-options: -DVK_USE_PLATFORM_ANDROID_KHR+    exposed-modules: Graphics.Vulkan.Extensions.VK_KHR_android_surface+                   , Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer++  if flag(ios)+    cpp-options: -DVK_USE_PLATFORM_IOS_MVK+    exposed-modules: Graphics.Vulkan.Extensions.VK_MVK_ios_surface++  if flag(macos)+    cpp-options: -DVK_USE_PLATFORM_MACOS_MVK+    exposed-modules: Graphics.Vulkan.Extensions.VK_MVK_macos_surface++  if flag(mir)+    cpp-options: -DVK_USE_PLATFORM_MIR_KHR+    exposed-modules: Graphics.Vulkan.Extensions.VK_KHR_mir_surface++  if flag(vi)+    cpp-options: -DVK_USE_PLATFORM_VI_NN+    exposed-modules: Graphics.Vulkan.Extensions.VK_NN_vi_surface++  if flag(wayland)+    cpp-options: -DVK_USE_PLATFORM_WAYLAND_KHR+    exposed-modules: Graphics.Vulkan.Extensions.VK_KHR_wayland_surface++  if flag(win32)+    cpp-options: -DVK_USE_PLATFORM_WIN32_KHR+    exposed-modules: Graphics.Vulkan.Extensions.VK_KHR_win32_surface+                   , Graphics.Vulkan.Extensions.VK_NV_external_memory_win32+                   , Graphics.Vulkan.Extensions.VK_NV_win32_keyed_mutex+                   , Graphics.Vulkan.Extensions.VK_KHR_external_memory_win32+                   , Graphics.Vulkan.Extensions.VK_KHR_win32_keyed_mutex+                   , Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_win32+                   , Graphics.Vulkan.Extensions.VK_KHR_external_fence_win32++  if flag(xcb)+    cpp-options: -DVK_USE_PLATFORM_XCB_KHR+    exposed-modules: Graphics.Vulkan.Extensions.VK_KHR_xcb_surface++  if flag(xlib)+    cpp-options: -DVK_USE_PLATFORM_XLIB_KHR+    exposed-modules: Graphics.Vulkan.Extensions.VK_KHR_xlib_surface++  if flag(xlib_xrandr)+    cpp-options: -DVK_USE_PLATFORM_XLIB_XRANDR_EXT+    exposed-modules: Graphics.Vulkan.Extensions.VK_EXT_acquire_xlib_display++   build-depends:       base >= 4.9 && < 5-                     , vector-sized >= 0.1 && < 0.4-  extra-libraries:     vulkan+                     , vector-sized >= 0.1 && < 1.1   default-language:    Haskell2010++  if os(windows)+    extra-libraries:   vulkan-1+  else+    extra-libraries:   vulkan  source-repository head   type:     git