-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Bindings to the Vulkan graphics API. -- -- Please see readme.md @package vulkan @version 2.0.0.0 module Graphics.Vulkan.Core10.Constants -- | VK_NULL_HANDLE - Reserved non-valid object handle -- --

Description

-- --

See Also

-- -- No cross-references are available -- | VkPipelineCacheHeaderVersion - Encode pipeline cache version -- --

See Also

-- -- vkCreatePipelineCache, vkGetPipelineCacheData newtype VkPipelineCacheHeaderVersion VkPipelineCacheHeaderVersion :: Int32 -> VkPipelineCacheHeaderVersion -- | VK_PIPELINE_CACHE_HEADER_VERSION_ONE specifies version one of -- the pipeline cache. instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion instance GHC.Classes.Ord Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion instance GHC.Classes.Eq Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion instance GHC.Show.Show Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion instance GHC.Read.Read Graphics.Vulkan.Core10.Constants.VkPipelineCacheHeaderVersion module Graphics.Vulkan.Core10.Core -- | VkBool32 - Vulkan boolean type -- --

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

-- -- VkCommandBufferInheritanceInfo, -- VkDedicatedAllocationBufferCreateInfoNV, -- VkDedicatedAllocationImageCreateInfoNV, -- VkDescriptorSetLayoutSupport, -- VkDeviceGeneratedCommandsFeaturesNVX, -- VkDisplayPresentInfoKHR, VkDisplayPropertiesKHR, -- VkMemoryDedicatedRequirements, -- VkPhysicalDevice16BitStorageFeatures, -- VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, -- VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, -- VkPhysicalDeviceConservativeRasterizationPropertiesEXT, -- VkPhysicalDeviceDescriptorIndexingFeaturesEXT, -- VkPhysicalDeviceDescriptorIndexingPropertiesEXT, -- VkPhysicalDeviceFeatures, -- VkPhysicalDeviceGroupProperties, -- VkPhysicalDeviceIDProperties, VkPhysicalDeviceLimits, -- VkPhysicalDeviceMultiviewFeatures, -- VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, -- VkPhysicalDeviceProtectedMemoryFeatures, -- VkPhysicalDeviceProtectedMemoryProperties, -- VkPhysicalDeviceSampleLocationsPropertiesEXT, -- VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, -- VkPhysicalDeviceSamplerYcbcrConversionFeatures, -- VkPhysicalDeviceShaderDrawParameterFeatures, -- VkPhysicalDeviceSparseProperties, -- VkPhysicalDeviceSubgroupProperties, -- VkPhysicalDeviceVariablePointerFeatures, -- VkPipelineColorBlendAdvancedStateCreateInfoEXT, -- VkPipelineColorBlendAttachmentState, -- VkPipelineColorBlendStateCreateInfo, -- VkPipelineCoverageModulationStateCreateInfoNV, -- VkPipelineCoverageToColorStateCreateInfoNV, -- VkPipelineDepthStencilStateCreateInfo, -- VkPipelineInputAssemblyStateCreateInfo, -- VkPipelineMultisampleStateCreateInfo, -- VkPipelineRasterizationStateCreateInfo, -- VkPipelineSampleLocationsStateCreateInfoEXT, -- VkPipelineViewportWScalingStateCreateInfoNV, -- VkProtectedSubmitInfo, VkSamplerCreateInfo, -- VkSamplerYcbcrConversionCreateInfo, -- VkSwapchainCreateInfoKHR, -- VkTextureLODGatherFormatPropertiesAMD, -- vkGetPhysicalDeviceSurfaceSupportKHR, vkWaitForFences newtype VkBool32 VkBool32 :: Int32 -> VkBool32 -- | VkFormat - Available image formats -- --

See Also

-- -- VkAndroidHardwareBufferFormatPropertiesANDROID, -- VkAttachmentDescription, VkBufferViewCreateInfo, -- VkImageCreateInfo, VkImageFormatListCreateInfoKHR, -- VkImageViewCreateInfo, VkPhysicalDeviceImageFormatInfo2, -- VkPhysicalDeviceSparseImageFormatInfo2, -- VkSamplerYcbcrConversionCreateInfo, VkSurfaceFormatKHR, -- VkSwapchainCreateInfoKHR, -- VkVertexInputAttributeDescription, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV, -- vkGetPhysicalDeviceFormatProperties, -- vkGetPhysicalDeviceFormatProperties2, -- vkGetPhysicalDeviceFormatProperties2KHR, -- vkGetPhysicalDeviceImageFormatProperties, -- vkGetPhysicalDeviceSparseImageFormatProperties newtype VkFormat VkFormat :: Int32 -> VkFormat -- | VK_FORMAT_UNDEFINED specifies that the format is not -- specified. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | VK_FORMAT_R8_UNORM specifies a one-component, 8-bit unsigned -- normalized format that has a single 8-bit R component. -- | VK_FORMAT_R8_SNORM specifies a one-component, 8-bit signed -- normalized format that has a single 8-bit R component. -- | VK_FORMAT_R8_USCALED specifies a one-component, 8-bit -- unsigned scaled integer format that has a single 8-bit R component. -- | VK_FORMAT_R8_SSCALED specifies a one-component, 8-bit signed -- scaled integer format that has a single 8-bit R component. -- | VK_FORMAT_R8_UINT specifies a one-component, 8-bit unsigned -- integer format that has a single 8-bit R component. -- | VK_FORMAT_R8_SINT specifies a one-component, 8-bit signed -- integer format that has a single 8-bit R component. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | VK_FORMAT_R16_UNORM specifies a one-component, 16-bit -- unsigned normalized format that has a single 16-bit R component. -- | VK_FORMAT_R16_SNORM specifies a one-component, 16-bit signed -- normalized format that has a single 16-bit R component. -- | VK_FORMAT_R16_USCALED specifies a one-component, 16-bit -- unsigned scaled integer format that has a single 16-bit R component. -- | VK_FORMAT_R16_SSCALED specifies a one-component, 16-bit -- signed scaled integer format that has a single 16-bit R component. -- | VK_FORMAT_R16_UINT specifies a one-component, 16-bit unsigned -- integer format that has a single 16-bit R component. -- | VK_FORMAT_R16_SINT specifies a one-component, 16-bit signed -- integer format that has a single 16-bit R component. -- | VK_FORMAT_R16_SFLOAT specifies a one-component, 16-bit signed -- floating-point format that has a single 16-bit R component. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | VK_FORMAT_R32_UINT specifies a one-component, 32-bit unsigned -- integer format that has a single 32-bit R component. -- | VK_FORMAT_R32_SINT specifies a one-component, 32-bit signed -- integer format that has a single 32-bit R component. -- | VK_FORMAT_R32_SFLOAT specifies a one-component, 32-bit signed -- floating-point format that has a single 32-bit R component. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | VK_FORMAT_R64_UINT specifies a one-component, 64-bit unsigned -- integer format that has a single 64-bit R component. -- | VK_FORMAT_R64_SINT specifies a one-component, 64-bit signed -- integer format that has a single 64-bit R component. -- | VK_FORMAT_R64_SFLOAT specifies a one-component, 64-bit signed -- floating-point format that has a single 64-bit R component. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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 and -- {html_spec_relative}#fundamentals-fp11. -- | 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. -- | VK_FORMAT_D16_UNORM specifies a one-component, 16-bit -- unsigned normalized format that has a single 16-bit depth component. -- | 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. -- | VK_FORMAT_D32_SFLOAT specifies a one-component, 32-bit signed -- floating-point format that has 32-bits in the depth component. -- | VK_FORMAT_S8_UINT specifies a one-component, 8-bit unsigned -- integer format that has 8-bits in the stencil component. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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. -- | VkResult - Vulkan command return codes -- --

Description

-- -- -- -- -- -- 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

-- -- No cross-references are available, VkPresentInfoKHR newtype VkResult VkResult :: Int32 -> VkResult -- | VkStructureType - Vulkan structure types (stype) -- --

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

-- -- VkAcquireNextImageInfoKHR, -- VkAndroidHardwareBufferFormatPropertiesANDROID, -- VkAndroidHardwareBufferPropertiesANDROID, -- VkAndroidHardwareBufferUsageANDROID, -- VkAndroidSurfaceCreateInfoKHR, VkApplicationInfo, -- VkBindBufferMemoryDeviceGroupInfo, -- VkBindBufferMemoryInfo, -- VkBindImageMemoryDeviceGroupInfo, VkBindImageMemoryInfo, -- VkBindImageMemorySwapchainInfoKHR, -- VkBindImagePlaneMemoryInfo, VkBindSparseInfo, -- VkBufferCreateInfo, VkBufferMemoryBarrier, -- VkBufferMemoryRequirementsInfo2, VkBufferViewCreateInfo, -- VkCmdProcessCommandsInfoNVX, -- VkCmdReserveSpaceForCommandsInfoNVX, -- VkCommandBufferAllocateInfo, VkCommandBufferBeginInfo, -- VkCommandBufferInheritanceInfo, VkCommandPoolCreateInfo, -- VkComputePipelineCreateInfo, VkCopyDescriptorSet, -- VkD3D12FenceSubmitInfoKHR, VkDebugMarkerMarkerInfoEXT, -- VkDebugMarkerObjectNameInfoEXT, -- VkDebugMarkerObjectTagInfoEXT, -- VkDebugReportCallbackCreateInfoEXT, -- VkDebugUtilsLabelEXT, -- VkDebugUtilsMessengerCallbackDataEXT, -- VkDebugUtilsMessengerCreateInfoEXT, -- VkDebugUtilsObjectNameInfoEXT, -- VkDebugUtilsObjectTagInfoEXT, -- VkDedicatedAllocationBufferCreateInfoNV, -- VkDedicatedAllocationImageCreateInfoNV, -- VkDedicatedAllocationMemoryAllocateInfoNV, -- VkDescriptorPoolCreateInfo, VkDescriptorSetAllocateInfo, -- VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, -- VkDescriptorSetLayoutCreateInfo, -- VkDescriptorSetLayoutSupport, -- VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, -- VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, -- VkDescriptorUpdateTemplateCreateInfo, -- VkDeviceCreateInfo, VkDeviceEventInfoEXT, -- VkDeviceGeneratedCommandsFeaturesNVX, -- VkDeviceGeneratedCommandsLimitsNVX, -- VkDeviceGroupBindSparseInfo, -- VkDeviceGroupCommandBufferBeginInfo, -- VkDeviceGroupDeviceCreateInfo, -- VkDeviceGroupPresentCapabilitiesKHR, -- VkDeviceGroupPresentInfoKHR, -- VkDeviceGroupRenderPassBeginInfo, -- VkDeviceGroupSubmitInfo, -- VkDeviceGroupSwapchainCreateInfoKHR, -- VkDeviceQueueCreateInfo, -- VkDeviceQueueGlobalPriorityCreateInfoEXT, -- VkDeviceQueueInfo2, VkDisplayEventInfoEXT, -- VkDisplayModeCreateInfoKHR, VkDisplayPowerInfoEXT, -- VkDisplayPresentInfoKHR, VkDisplaySurfaceCreateInfoKHR, -- VkEventCreateInfo, VkExportFenceCreateInfo, -- VkExportFenceWin32HandleInfoKHR, -- VkExportMemoryAllocateInfo, -- VkExportMemoryAllocateInfoNV, -- VkExportMemoryWin32HandleInfoKHR, -- VkExportMemoryWin32HandleInfoNV, -- VkExportSemaphoreCreateInfo, -- VkExportSemaphoreWin32HandleInfoKHR, -- VkExternalBufferProperties, VkExternalFenceProperties, -- VkExternalFormatANDROID, -- VkExternalImageFormatProperties, -- VkExternalMemoryBufferCreateInfo, -- VkExternalMemoryImageCreateInfo, -- VkExternalMemoryImageCreateInfoNV, -- VkExternalSemaphoreProperties, VkFenceCreateInfo, -- VkFenceGetFdInfoKHR, VkFenceGetWin32HandleInfoKHR, -- VkFormatProperties2, VkFramebufferCreateInfo, -- VkGraphicsPipelineCreateInfo, VkHdrMetadataEXT, -- VkIOSSurfaceCreateInfoMVK, VkImageCreateInfo, -- VkImageFormatListCreateInfoKHR, -- VkImageFormatProperties2, VkImageMemoryBarrier, -- VkImageMemoryRequirementsInfo2, -- VkImagePlaneMemoryRequirementsInfo, -- VkImageSparseMemoryRequirementsInfo2, -- VkImageSwapchainCreateInfoKHR, VkImageViewCreateInfo, -- VkImageViewUsageCreateInfo, -- VkImportAndroidHardwareBufferInfoANDROID, -- VkImportFenceFdInfoKHR, VkImportFenceWin32HandleInfoKHR, -- VkImportMemoryFdInfoKHR, -- VkImportMemoryHostPointerInfoEXT, -- VkImportMemoryWin32HandleInfoKHR, -- VkImportMemoryWin32HandleInfoNV, -- VkImportSemaphoreFdInfoKHR, -- VkImportSemaphoreWin32HandleInfoKHR, -- VkIndirectCommandsLayoutCreateInfoNVX, -- VkInstanceCreateInfo, VkMacOSSurfaceCreateInfoMVK, -- VkMappedMemoryRange, VkMemoryAllocateFlagsInfo, -- VkMemoryAllocateInfo, VkMemoryBarrier, -- VkMemoryDedicatedAllocateInfo, -- VkMemoryDedicatedRequirements, VkMemoryFdPropertiesKHR, -- VkMemoryGetAndroidHardwareBufferInfoANDROID, -- VkMemoryGetFdInfoKHR, VkMemoryGetWin32HandleInfoKHR, -- VkMemoryHostPointerPropertiesEXT, VkMemoryRequirements2, -- VkMemoryWin32HandlePropertiesKHR, -- VkMirSurfaceCreateInfoKHR, VkMultisamplePropertiesEXT, -- VkObjectTableCreateInfoNVX, -- VkPhysicalDevice16BitStorageFeatures, -- VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, -- VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, -- VkPhysicalDeviceConservativeRasterizationPropertiesEXT, -- VkPhysicalDeviceDescriptorIndexingFeaturesEXT, -- VkPhysicalDeviceDescriptorIndexingPropertiesEXT, -- VkPhysicalDeviceDiscardRectanglePropertiesEXT, -- VkPhysicalDeviceExternalBufferInfo, -- VkPhysicalDeviceExternalFenceInfo, -- VkPhysicalDeviceExternalImageFormatInfo, -- VkPhysicalDeviceExternalMemoryHostPropertiesEXT, -- VkPhysicalDeviceExternalSemaphoreInfo, -- VkPhysicalDeviceFeatures2, -- VkPhysicalDeviceGroupProperties, -- VkPhysicalDeviceIDProperties, -- VkPhysicalDeviceImageFormatInfo2, -- VkPhysicalDeviceMaintenance3Properties, -- VkPhysicalDeviceMemoryProperties2, -- VkPhysicalDeviceMultiviewFeatures, -- VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, -- VkPhysicalDeviceMultiviewProperties, -- VkPhysicalDevicePointClippingProperties, -- VkPhysicalDeviceProperties2, -- VkPhysicalDeviceProtectedMemoryFeatures, -- VkPhysicalDeviceProtectedMemoryProperties, -- VkPhysicalDevicePushDescriptorPropertiesKHR, -- VkPhysicalDeviceSampleLocationsPropertiesEXT, -- VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, -- VkPhysicalDeviceSamplerYcbcrConversionFeatures, -- VkPhysicalDeviceShaderCorePropertiesAMD, -- VkPhysicalDeviceShaderDrawParameterFeatures, -- VkPhysicalDeviceSparseImageFormatInfo2, -- VkPhysicalDeviceSubgroupProperties, -- VkPhysicalDeviceSurfaceInfo2KHR, -- VkPhysicalDeviceVariablePointerFeatures, -- VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, -- VkPipelineCacheCreateInfo, -- VkPipelineColorBlendAdvancedStateCreateInfoEXT, -- VkPipelineColorBlendStateCreateInfo, -- VkPipelineCoverageModulationStateCreateInfoNV, -- VkPipelineCoverageToColorStateCreateInfoNV, -- VkPipelineDepthStencilStateCreateInfo, -- VkPipelineDiscardRectangleStateCreateInfoEXT, -- VkPipelineDynamicStateCreateInfo, -- VkPipelineInputAssemblyStateCreateInfo, -- VkPipelineLayoutCreateInfo, -- VkPipelineMultisampleStateCreateInfo, -- VkPipelineRasterizationConservativeStateCreateInfoEXT, -- VkPipelineRasterizationStateCreateInfo, -- VkPipelineRasterizationStateRasterizationOrderAMD, -- VkPipelineSampleLocationsStateCreateInfoEXT, -- VkPipelineShaderStageCreateInfo, -- VkPipelineTessellationDomainOriginStateCreateInfo, -- VkPipelineTessellationStateCreateInfo, -- VkPipelineVertexInputDivisorStateCreateInfoEXT, -- VkPipelineVertexInputStateCreateInfo, -- VkPipelineViewportStateCreateInfo, -- VkPipelineViewportSwizzleStateCreateInfoNV, -- VkPipelineViewportWScalingStateCreateInfoNV, -- VkPresentInfoKHR, VkPresentRegionsKHR, -- VkPresentTimesInfoGOOGLE, VkProtectedSubmitInfo, -- VkQueryPoolCreateInfo, VkQueueFamilyProperties2, -- VkRenderPassBeginInfo, VkRenderPassCreateInfo, -- VkRenderPassInputAttachmentAspectCreateInfo, -- VkRenderPassMultiviewCreateInfo, -- VkRenderPassSampleLocationsBeginInfoEXT, -- VkSampleLocationsInfoEXT, VkSamplerCreateInfo, -- VkSamplerReductionModeCreateInfoEXT, -- VkSamplerYcbcrConversionCreateInfo, -- VkSamplerYcbcrConversionImageFormatProperties, -- VkSamplerYcbcrConversionInfo, VkSemaphoreCreateInfo, -- VkSemaphoreGetFdInfoKHR, -- VkSemaphoreGetWin32HandleInfoKHR, -- VkShaderModuleCreateInfo, -- VkShaderModuleValidationCacheCreateInfoEXT, -- VkSharedPresentSurfaceCapabilitiesKHR, -- VkSparseImageFormatProperties2, -- VkSparseImageMemoryRequirements2, VkSubmitInfo, -- VkSurfaceCapabilities2EXT, VkSurfaceCapabilities2KHR, -- VkSurfaceFormat2KHR, VkSwapchainCounterCreateInfoEXT, -- VkSwapchainCreateInfoKHR, -- VkTextureLODGatherFormatPropertiesAMD, -- VkValidationCacheCreateInfoEXT, VkValidationFlagsEXT, -- VkViSurfaceCreateInfoNN, VkWaylandSurfaceCreateInfoKHR, -- VkWin32KeyedMutexAcquireReleaseInfoKHR, -- VkWin32KeyedMutexAcquireReleaseInfoNV, -- VkWin32SurfaceCreateInfoKHR, VkWriteDescriptorSet, -- VkXcbSurfaceCreateInfoKHR, VkXlibSurfaceCreateInfoKHR newtype VkStructureType VkStructureType :: Int32 -> VkStructureType -- | VkObjectType - Specify an enumeration to track object handle types -- --

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' |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_SURFACE_KHR@             | 'Graphics.Vulkan.Extensio |
--   |                                          | ns.VK_KHR_surface.VkSurfa |
--   |                                          | ceKHR'                    |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_SWAPCHAIN_KHR@           | 'Graphics.Vulkan.Extensio |
--   |                                          | ns.VK_KHR_swapchain.VkSwa |
--   |                                          | pchainKHR'                |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_DISPLAY_KHR@             | 'Graphics.Vulkan.Extensio |
--   |                                          | ns.VK_KHR_display.VkDispl |
--   |                                          | ayKHR'                    |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_DISPLAY_MODE_KHR@        | 'Graphics.Vulkan.Extensio |
--   |                                          | ns.VK_KHR_display.VkDispl |
--   |                                          | ayModeKHR'                |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EX | 'Graphics.Vulkan.Extensio |
--   | T@                                       | ns.VK_EXT_debug_report.Vk |
--   |                                          | DebugReportCallbackEXT'   |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLA | 'Graphics.Vulkan.Core11.P |
--   | TE@                                      | romoted_from_VK_KHR_descr |
--   |                                          | iptor_update_template.VkD |
--   |                                          | escriptorUpdateTemplate'  |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_OBJECT_TABLE_NVX@        | 'Graphics.Vulkan.Extensio |
--   |                                          | ns.VK_NVX_device_generate |
--   |                                          | d_commands.VkObjectTableN |
--   |                                          | VX'                       |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT | 'Graphics.Vulkan.Extensio |
--   | _NVX@                                    | ns.VK_NVX_device_generate |
--   |                                          | d_commands.VkIndirectComm |
--   |                                          | andsLayoutNVX'            |
--   +------------------------------------------+---------------------------+
--   | @VK_OBJECT_TYPE_VALIDATION_CACHE_EXT@    | 'Graphics.Vulkan.Extensio |
--   |                                          | ns.VK_EXT_validation_cach |
--   |                                          | e.VkValidationCacheEXT'   |
--   +------------------------------------------+---------------------------+
--   
--   VkObjectType and Vulkan Handle Relationship
--   
-- --

See Also

-- -- VkDebugUtilsObjectNameInfoEXT, -- VkDebugUtilsObjectTagInfoEXT newtype VkObjectType VkObjectType :: Int32 -> VkObjectType -- | VkFlags - Vulkan bitmasks -- --

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

-- -- VkColorComponentFlags type VkFlags = Word32 instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkObjectType instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkObjectType instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkObjectType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkStructureType instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkStructureType instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkStructureType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkResult instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkResult instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkResult instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkFormat instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkFormat instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkFormat instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Core.VkBool32 instance GHC.Classes.Ord Graphics.Vulkan.Core10.Core.VkBool32 instance GHC.Classes.Eq Graphics.Vulkan.Core10.Core.VkBool32 instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkObjectType instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkObjectType instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkStructureType instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkStructureType instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkResult instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkResult instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkFormat instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkFormat instance GHC.Show.Show Graphics.Vulkan.Core10.Core.VkBool32 instance GHC.Read.Read Graphics.Vulkan.Core10.Core.VkBool32 module Graphics.Vulkan.Core10.Version -- | VK_HEADER_VERSION - Vulkan header file version number -- --

Description

-- --

See Also

-- -- No cross-references are available -- | VK_MAKE_VERSION - Construct an API version number -- --

Description

-- -- -- -- -- -- This macro can be used when constructing the -- VkApplicationInfo::apiVersion parameter passed to -- vkCreateInstance. -- --

See Also

-- -- VkApplicationInfo, vkCreateInstance -- | VK_API_VERSION_1_0 - Return API version number for Vulkan 1.0 -- --

Description

-- --

See Also

-- -- vkCreateInstance, vkGetPhysicalDeviceProperties -- | VK_API_VERSION_1_1 - Return API version number for Vulkan 1.1 -- --

Description

-- --

See Also

-- -- vkCreateInstance, vkGetPhysicalDeviceProperties -- | VK_VERSION_MAJOR - Extract API major version number -- --

Description

-- --

See Also

-- -- No cross-references are available _VK_VERSION_MAJOR :: Word32 -> Word32 -- | VK_VERSION_MINOR - Extract API minor version number -- --

Description

-- --

See Also

-- -- No cross-references are available _VK_VERSION_MINOR :: Word32 -> Word32 _VK_VERSION_PATCH :: Word32 -> Word32 module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage -- | VkPhysicalDevice16BitStorageFeatures - Structure describing features -- supported by VK_KHR_16bit_storage -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDevice16BitStorageFeatures -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> Ptr () -- | storageBuffer16BitAccess specifies whether objects in the -- StorageBuffer storage class with the Block -- decoration can have 16-bit integer and 16-bit floating-point -- members. If this feature is not enabled, 16-bit integer or 16-bit -- floating-point members must not be used in such objects. This -- also specifies whether shader modules can declare the -- StorageBuffer16BitAccess capability. [$sel:vkStorageBuffer16BitAccess:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkBool32 -- | uniformAndStorageBuffer16BitAccess specifies whether objects -- in the Uniform storage class with the Block -- decoration and in the StorageBuffer storage class with the -- same decoration can have 16-bit integer and 16-bit -- floating-point members. If this feature is not enabled, 16-bit integer -- or 16-bit floating-point members must not be used in such -- objects. This also specifies whether shader modules can declare -- the UniformAndStorageBuffer16BitAccess capability. [$sel:vkUniformAndStorageBuffer16BitAccess:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkBool32 -- | storagePushConstant16 specifies whether objects in the -- PushConstant storage class can have 16-bit integer and -- 16-bit floating-point members. If this feature is not enabled, 16-bit -- integer or floating-point members must not be used in such -- objects. This also specifies whether shader modules can declare -- the StoragePushConstant16 capability. [$sel:vkStoragePushConstant16:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkBool32 -- | storageInputOutput16 specifies whether objects in the -- Input and Output storage classes can have -- 16-bit integer and 16-bit floating-point members. If this feature is -- not enabled, 16-bit integer or 16-bit floating-point members -- must not be used in such objects. This also specifies whether -- shader modules can declare the StorageInputOutput16 -- capability. [$sel:vkStorageInputOutput16:VkPhysicalDevice16BitStorageFeatures] :: VkPhysicalDevice16BitStorageFeatures -> VkBool32 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_16bit_storage.VkPhysicalDevice16BitStorageFeatures module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters -- | VkPhysicalDeviceShaderDrawParameterFeatures - Structure describing -- shader draw parameter features that can be supported by an -- implementation -- --

Description

-- -- If the VkPhysicalDeviceShaderDrawParameterFeatures structure -- is included in the pNext chain of -- VkPhysicalDeviceFeatures2, it is filled with a value indicating -- whether the feature is supported. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceShaderDrawParameterFeatures VkPhysicalDeviceShaderDrawParameterFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceShaderDrawParameterFeatures [$sel:vkSType:VkPhysicalDeviceShaderDrawParameterFeatures] :: VkPhysicalDeviceShaderDrawParameterFeatures -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceShaderDrawParameterFeatures] :: VkPhysicalDeviceShaderDrawParameterFeatures -> Ptr () -- | shaderDrawParameters specifies whether shader draw parameters -- are supported. [$sel:vkShaderDrawParameters:VkPhysicalDeviceShaderDrawParameterFeatures] :: VkPhysicalDeviceShaderDrawParameterFeatures -> VkBool32 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters.VkPhysicalDeviceShaderDrawParameterFeatures instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters.VkPhysicalDeviceShaderDrawParameterFeatures instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_shader_draw_parameters.VkPhysicalDeviceShaderDrawParameterFeatures module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers -- | VkPhysicalDeviceVariablePointerFeatures - Structure describing -- variable pointers features that can be supported by an implementation -- --

Members

-- -- The members of the VkPhysicalDeviceVariablePointerFeatures -- structure describe the following features: -- --

Description

-- -- -- -- -- -- If the VkPhysicalDeviceVariablePointerFeatures structure is -- included in the pNext chain of -- VkPhysicalDeviceFeatures2, it is filled with values indicating -- whether each feature is supported. -- VkPhysicalDeviceVariablePointerFeatures can also be -- used in the pNext chain of VkDeviceCreateInfo to -- enable the features. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkPhysicalDeviceVariablePointerFeatures [$sel:vkSType:VkPhysicalDeviceVariablePointerFeatures] :: VkPhysicalDeviceVariablePointerFeatures -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceVariablePointerFeatures] :: VkPhysicalDeviceVariablePointerFeatures -> Ptr () [$sel:vkVariablePointersStorageBuffer:VkPhysicalDeviceVariablePointerFeatures] :: VkPhysicalDeviceVariablePointerFeatures -> VkBool32 [$sel:vkVariablePointers:VkPhysicalDeviceVariablePointerFeatures] :: VkPhysicalDeviceVariablePointerFeatures -> VkBool32 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_variable_pointers.VkPhysicalDeviceVariablePointerFeatures module Graphics.Vulkan.Extensions.VK_AMD_gcn_shader module Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_half_float module Graphics.Vulkan.Extensions.VK_AMD_gpu_shader_int16 module Graphics.Vulkan.Extensions.VK_AMD_mixed_attachment_samples module Graphics.Vulkan.Extensions.VK_AMD_negative_viewport_height module Graphics.Vulkan.Extensions.VK_AMD_rasterization_order -- | VkRasterizationOrderAMD - Specify rasterization order for a graphics -- pipeline -- --

See Also

-- -- VkPipelineRasterizationStateRasterizationOrderAMD newtype VkRasterizationOrderAMD VkRasterizationOrderAMD :: Int32 -> VkRasterizationOrderAMD -- | VK_RASTERIZATION_ORDER_STRICT_AMD specifies that operations -- for each primitive in a subpass must occur in primitive -- order. -- | VK_RASTERIZATION_ORDER_RELAXED_AMD specifies that operations -- for each primitive in a subpass may not occur in primitive -- order. -- | VkPipelineRasterizationStateRasterizationOrderAMD - Structure defining -- rasterization order for a graphics pipeline -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- -- 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

-- -- VkRasterizationOrderAMD, VkStructureType data VkPipelineRasterizationStateRasterizationOrderAMD VkPipelineRasterizationStateRasterizationOrderAMD :: VkStructureType -> Ptr () -> VkRasterizationOrderAMD -> VkPipelineRasterizationStateRasterizationOrderAMD -- | sType is the type of this structure. [$sel:vkSType:VkPipelineRasterizationStateRasterizationOrderAMD] :: VkPipelineRasterizationStateRasterizationOrderAMD -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineRasterizationStateRasterizationOrderAMD] :: VkPipelineRasterizationStateRasterizationOrderAMD -> Ptr () -- | rasterizationOrder is a VkRasterizationOrderAMD value -- specifying the primitive rasterization order to use. [$sel:vkRasterizationOrder:VkPipelineRasterizationStateRasterizationOrderAMD] :: VkPipelineRasterizationStateRasterizationOrderAMD -> VkRasterizationOrderAMD instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkPipelineRasterizationStateRasterizationOrderAMD instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkPipelineRasterizationStateRasterizationOrderAMD instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkPipelineRasterizationStateRasterizationOrderAMD instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_AMD_rasterization_order.VkRasterizationOrderAMD module Graphics.Vulkan.Extensions.VK_AMD_shader_ballot module Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties -- | VkPhysicalDeviceShaderCorePropertiesAMD - Structure describing shader -- core properties that can be supported by an implementation -- --

Members

-- -- The members of the VkPhysicalDeviceShaderCorePropertiesAMD -- structure describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the VkPhysicalDeviceShaderCorePropertiesAMD structure is -- included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

See Also

-- -- VkStructureType data VkPhysicalDeviceShaderCorePropertiesAMD VkPhysicalDeviceShaderCorePropertiesAMD :: VkStructureType -> Ptr () -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkPhysicalDeviceShaderCorePropertiesAMD [$sel:vkSType:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Ptr () [$sel:vkShaderEngineCount:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkShaderArraysPerEngineCount:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkComputeUnitsPerShaderArray:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkSimdPerComputeUnit:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkWavefrontsPerSimd:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkWavefrontSize:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkSgprsPerSimd:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkMinSgprAllocation:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkMaxSgprAllocation:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkSgprAllocationGranularity:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkVgprsPerSimd:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkMinVgprAllocation:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkMaxVgprAllocation:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 [$sel:vkVgprAllocationGranularity:VkPhysicalDeviceShaderCorePropertiesAMD] :: VkPhysicalDeviceShaderCorePropertiesAMD -> Word32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties.VkPhysicalDeviceShaderCorePropertiesAMD instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties.VkPhysicalDeviceShaderCorePropertiesAMD instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties.VkPhysicalDeviceShaderCorePropertiesAMD module Graphics.Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter module Graphics.Vulkan.Extensions.VK_AMD_shader_fragment_mask module Graphics.Vulkan.Extensions.VK_AMD_shader_image_load_store_lod module Graphics.Vulkan.Extensions.VK_AMD_shader_trinary_minmax module Graphics.Vulkan.Extensions.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

-- --

See Also

-- -- VkBool32, VkStructureType data VkTextureLODGatherFormatPropertiesAMD VkTextureLODGatherFormatPropertiesAMD :: VkStructureType -> Ptr () -> VkBool32 -> VkTextureLODGatherFormatPropertiesAMD -- | sType is the type of this structure. [$sel:vkSType:VkTextureLODGatherFormatPropertiesAMD] :: VkTextureLODGatherFormatPropertiesAMD -> VkStructureType -- | pNext is NULL. [$sel:vkPNext:VkTextureLODGatherFormatPropertiesAMD] :: VkTextureLODGatherFormatPropertiesAMD -> Ptr () -- | supportsTextureGatherLODBiasAMD tells if the image format can -- be used with texture gather bias/LOD functions, as introduced by the -- {html_spec_relative}#VK_AMD_texture_gather_bias_lod -- extension. This field is set by the implementation. User-specified -- value is ignored. [$sel:vkSupportsTextureGatherLODBiasAMD:VkTextureLODGatherFormatPropertiesAMD] :: VkTextureLODGatherFormatPropertiesAMD -> VkBool32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD module Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization -- | VkConservativeRasterizationModeEXT - Specify the conservative -- rasterization mode -- --

See Also

-- -- VkPipelineRasterizationConservativeStateCreateInfoEXT newtype VkConservativeRasterizationModeEXT VkConservativeRasterizationModeEXT :: Int32 -> VkConservativeRasterizationModeEXT -- | VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT specifies -- that conservative rasterization is disabled and rasterization proceeds -- as normal. -- | VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT specifies -- that conservative rasterization is enabled in overestimation mode. -- | VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT -- specifies that conservative rasterization is enabled in -- underestimation mode. -- | VkPipelineRasterizationConservativeStateCreateFlagsEXT - Reserved for -- future use -- --

Description

-- -- VkPipelineRasterizationConservativeStateCreateFlagsEXT is a -- bitmask type for setting a mask, but is currently reserved for future -- use. -- --

See Also

-- -- VkPipelineRasterizationConservativeStateCreateInfoEXT newtype VkPipelineRasterizationConservativeStateCreateFlagsEXT VkPipelineRasterizationConservativeStateCreateFlagsEXT :: VkFlags -> VkPipelineRasterizationConservativeStateCreateFlagsEXT -- | VkPhysicalDeviceConservativeRasterizationPropertiesEXT - Structure -- describing conservative raster properties that can be supported by an -- implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceConservativeRasterizationPropertiesEXT -- structure describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the VkPhysicalDeviceConservativeRasterizationPropertiesEXT -- structure is included in the pNext chain of -- VkPhysicalDeviceProperties2KHR, it is filled with the -- implementation-dependent limits and properties. -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceConservativeRasterizationPropertiesEXT VkPhysicalDeviceConservativeRasterizationPropertiesEXT :: VkStructureType -> Ptr () -> CFloat -> CFloat -> CFloat -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceConservativeRasterizationPropertiesEXT [$sel:vkSType:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> Ptr () [$sel:vkPrimitiveOverestimationSize:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> CFloat [$sel:vkMaxExtraPrimitiveOverestimationSize:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> CFloat [$sel:vkExtraPrimitiveOverestimationSizeGranularity:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> CFloat [$sel:vkPrimitiveUnderestimation:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32 [$sel:vkConservativePointAndLineRasterization:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32 [$sel:vkDegenerateTrianglesRasterized:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32 [$sel:vkDegenerateLinesRasterized:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32 [$sel:vkFullyCoveredFragmentShaderInputVariable:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32 [$sel:vkConservativeRasterizationPostDepthCoverage:VkPhysicalDeviceConservativeRasterizationPropertiesEXT] :: VkPhysicalDeviceConservativeRasterizationPropertiesEXT -> VkBool32 -- | VkPipelineRasterizationConservativeStateCreateInfoEXT - Structure -- specifying conservative raster state -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkConservativeRasterizationModeEXT, -- VkPipelineRasterizationConservativeStateCreateFlagsEXT, -- VkStructureType data VkPipelineRasterizationConservativeStateCreateInfoEXT VkPipelineRasterizationConservativeStateCreateInfoEXT :: VkStructureType -> Ptr () -> VkPipelineRasterizationConservativeStateCreateFlagsEXT -> VkConservativeRasterizationModeEXT -> CFloat -> VkPipelineRasterizationConservativeStateCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> VkPipelineRasterizationConservativeStateCreateFlagsEXT -- | conservativeRasterizationMode is the conservative -- rasterization mode to use. [$sel:vkConservativeRasterizationMode:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> VkConservativeRasterizationModeEXT -- | extraPrimitiveOverestimationSize is the extra size in pixels -- to increase the generating primitive during conservative rasterization -- at each of its edges in X and Y equally in screen -- space beyond the base overestimation specified in -- VkPhysicalDeviceConservativeRasterizationPropertiesEXT::primitiveOverestimationSize. [$sel:vkExtraPrimitiveOverestimationSize:VkPipelineRasterizationConservativeStateCreateInfoEXT] :: VkPipelineRasterizationConservativeStateCreateInfoEXT -> CFloat instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPipelineRasterizationConservativeStateCreateFlagsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkConservativeRasterizationModeEXT module Graphics.Vulkan.Extensions.VK_EXT_depth_range_unrestricted module Graphics.Vulkan.Extensions.VK_EXT_global_priority -- | VkQueueGlobalPriorityEXT - Values specifying a system-wide queue -- priority -- --

Description

-- -- Priority values are sorted in ascending order. A comparison operation -- on the enum values can be used to determine the priority order. -- -- -- --

See Also

-- -- VkDeviceQueueGlobalPriorityCreateInfoEXT newtype VkQueueGlobalPriorityEXT VkQueueGlobalPriorityEXT :: Int32 -> VkQueueGlobalPriorityEXT -- | VkDeviceQueueGlobalPriorityCreateInfoEXT - Specify a system wide -- priority -- --

Description

-- -- A queue created without specifying -- VkDeviceQueueGlobalPriorityCreateInfoEXT will default to -- VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkQueueGlobalPriorityEXT, VkStructureType data VkDeviceQueueGlobalPriorityCreateInfoEXT VkDeviceQueueGlobalPriorityCreateInfoEXT :: VkStructureType -> Ptr () -> VkQueueGlobalPriorityEXT -> VkDeviceQueueGlobalPriorityCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDeviceQueueGlobalPriorityCreateInfoEXT] :: VkDeviceQueueGlobalPriorityCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceQueueGlobalPriorityCreateInfoEXT] :: VkDeviceQueueGlobalPriorityCreateInfoEXT -> Ptr () -- | globalPriority is the system-wide priority associated to this -- queue as specified by VkQueueGlobalPriorityEXT [$sel:vkGlobalPriority:VkDeviceQueueGlobalPriorityCreateInfoEXT] :: VkDeviceQueueGlobalPriorityCreateInfoEXT -> VkQueueGlobalPriorityEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkDeviceQueueGlobalPriorityCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkDeviceQueueGlobalPriorityCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkDeviceQueueGlobalPriorityCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_global_priority.VkQueueGlobalPriorityEXT module Graphics.Vulkan.Extensions.VK_EXT_post_depth_coverage module Graphics.Vulkan.Extensions.VK_EXT_queue_family_foreign module Graphics.Vulkan.Extensions.VK_EXT_shader_stencil_export module Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_ballot module Graphics.Vulkan.Extensions.VK_EXT_shader_subgroup_vote module Graphics.Vulkan.Extensions.VK_EXT_shader_viewport_index_layer module Graphics.Vulkan.Extensions.VK_EXT_validation_flags -- | VkValidationCheckEXT - Specify validation checks to disable -- --

See Also

-- -- VkValidationFlagsEXT newtype VkValidationCheckEXT VkValidationCheckEXT :: Int32 -> VkValidationCheckEXT -- | VK_VALIDATION_CHECK_ALL_EXT specifies that all validation -- checks are disabled. -- | VK_VALIDATION_CHECK_SHADERS_EXT specifies that shader -- validation is disabled. -- | VkValidationFlagsEXT - Specify validation checks to disable for a -- Vulkan instance -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkValidationCheckEXT data VkValidationFlagsEXT VkValidationFlagsEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr VkValidationCheckEXT -> VkValidationFlagsEXT -- | sType is the type of this structure. [$sel:vkSType:VkValidationFlagsEXT] :: VkValidationFlagsEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkValidationFlagsEXT] :: VkValidationFlagsEXT -> Ptr () -- | disabledValidationCheckCount is the number of checks to -- disable. [$sel:vkDisabledValidationCheckCount:VkValidationFlagsEXT] :: VkValidationFlagsEXT -> Word32 -- | pDisabledValidationChecks is a pointer to an array of -- VkValidationCheckEXT values specifying the validation checks to -- be disabled. [$sel:vkPDisabledValidationChecks:VkValidationFlagsEXT] :: VkValidationFlagsEXT -> Ptr VkValidationCheckEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationFlagsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationFlagsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_validation_flags.VkValidationCheckEXT module Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor -- | VkVertexInputBindingDivisorDescriptionEXT - Structure specifying a -- divisor used in instanced rendering -- --

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

-- -- -- -- -- --

See Also

-- -- VkPipelineVertexInputDivisorStateCreateInfoEXT data VkVertexInputBindingDivisorDescriptionEXT VkVertexInputBindingDivisorDescriptionEXT :: Word32 -> Word32 -> VkVertexInputBindingDivisorDescriptionEXT -- | binding is the binding number for which the divisor is -- specified. [$sel:vkBinding:VkVertexInputBindingDivisorDescriptionEXT] :: VkVertexInputBindingDivisorDescriptionEXT -> Word32 -- | divisor is the the number of successive instances that will -- use the same value of the vertex attribute when instanced rendering is -- enabled. For example, if the divisor is N, the same vertex attribute -- will applied to N successive instances before moving on to the next -- vertex attribute. If a value of 0 is used for the divisor, then the -- first vertex attribute will be applied to all instances. The maximum -- value of divisor is implementation dependent and can be queried using -- VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor. [$sel:vkDivisor:VkVertexInputBindingDivisorDescriptionEXT] :: VkVertexInputBindingDivisorDescriptionEXT -> Word32 -- | VkPipelineVertexInputDivisorStateCreateInfoEXT - Structure specifying -- vertex attributes assignment during instanced rendering -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, -- VkVertexInputBindingDivisorDescriptionEXT data VkPipelineVertexInputDivisorStateCreateInfoEXT VkPipelineVertexInputDivisorStateCreateInfoEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr VkVertexInputBindingDivisorDescriptionEXT -> VkPipelineVertexInputDivisorStateCreateInfoEXT -- | sType is the type of this structure [$sel:vkSType:VkPipelineVertexInputDivisorStateCreateInfoEXT] :: VkPipelineVertexInputDivisorStateCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure [$sel:vkPNext:VkPipelineVertexInputDivisorStateCreateInfoEXT] :: VkPipelineVertexInputDivisorStateCreateInfoEXT -> Ptr () -- | vertexBindingDivisorCount is the number of elements in the -- pVertexBindingDivisors array. [$sel:vkVertexBindingDivisorCount:VkPipelineVertexInputDivisorStateCreateInfoEXT] :: VkPipelineVertexInputDivisorStateCreateInfoEXT -> Word32 -- | pVertexBindingDivisors is a pointer to an array of -- VkVertexInputBindingDivisorDescriptionEXT structures, which -- specifies the divisor value for each binding. [$sel:vkPVertexBindingDivisors:VkPipelineVertexInputDivisorStateCreateInfoEXT] :: VkPipelineVertexInputDivisorStateCreateInfoEXT -> Ptr VkVertexInputBindingDivisorDescriptionEXT -- | VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - Structure -- describing max value of vertex attribute divisor that can be supported -- by an implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT structure -- describe the following implementation-dependent limits: -- --

Description

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkStructureType data VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT [$sel:vkSType:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT] :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT] :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT -> Ptr () [$sel:vkMaxVertexAttribDivisor:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT] :: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT -> Word32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPipelineVertexInputDivisorStateCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPipelineVertexInputDivisorStateCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkVertexInputBindingDivisorDescriptionEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkVertexInputBindingDivisorDescriptionEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPipelineVertexInputDivisorStateCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkVertexInputBindingDivisorDescriptionEXT module Graphics.Vulkan.Extensions.VK_IMG_format_pvrtc module Graphics.Vulkan.Extensions.VK_KHR_image_format_list -- | VkImageFormatListCreateInfoKHR - Specify that an image can be -- used with a particular set of formats -- --

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 VkImageCreateInfo. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFormat, VkStructureType data VkImageFormatListCreateInfoKHR VkImageFormatListCreateInfoKHR :: VkStructureType -> Ptr () -> Word32 -> Ptr VkFormat -> VkImageFormatListCreateInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkImageFormatListCreateInfoKHR] :: VkImageFormatListCreateInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImageFormatListCreateInfoKHR] :: VkImageFormatListCreateInfoKHR -> Ptr () -- | viewFormatCount is the number of entries in the -- pViewFormats array. [$sel:vkViewFormatCount:VkImageFormatListCreateInfoKHR] :: VkImageFormatListCreateInfoKHR -> Word32 -- | pViewFormats is an array which lists of all formats which -- can be used when creating views of this image. [$sel:vkPViewFormats:VkImageFormatListCreateInfoKHR] :: VkImageFormatListCreateInfoKHR -> Ptr VkFormat instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_image_format_list.VkImageFormatListCreateInfoKHR module Graphics.Vulkan.Extensions.VK_KHR_relaxed_block_layout module Graphics.Vulkan.Extensions.VK_KHR_shader_draw_parameters module Graphics.Vulkan.Extensions.VK_KHR_storage_buffer_storage_class module Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color -- | VkPipelineCoverageToColorStateCreateFlagsNV - Reserved for future use -- --

Description

-- -- VkPipelineCoverageToColorStateCreateFlagsNV is a bitmask type -- for setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineCoverageToColorStateCreateInfoNV newtype VkPipelineCoverageToColorStateCreateFlagsNV VkPipelineCoverageToColorStateCreateFlagsNV :: VkFlags -> VkPipelineCoverageToColorStateCreateFlagsNV -- | VkPipelineCoverageToColorStateCreateInfoNV - Structure specifying -- whether fragment coverage replaces a color -- --

Description

-- -- If coverageToColorEnable is VK_TRUE, the fragment -- coverage information is treated as a bitmask with one bit for each -- sample (as in the 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 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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkPipelineCoverageToColorStateCreateFlagsNV, -- VkStructureType data VkPipelineCoverageToColorStateCreateInfoNV VkPipelineCoverageToColorStateCreateInfoNV :: VkStructureType -> Ptr () -> VkPipelineCoverageToColorStateCreateFlagsNV -> VkBool32 -> Word32 -> VkPipelineCoverageToColorStateCreateInfoNV -- | sType is the type of this structure [$sel:vkSType:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure [$sel:vkPNext:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> VkPipelineCoverageToColorStateCreateFlagsNV -- | coverageToColorEnable controls whether the fragment coverage -- value replaces a fragment color output. [$sel:vkCoverageToColorEnable:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> VkBool32 -- | coverageToColorLocation controls which fragment shader color -- output value is replaced. [$sel:vkCoverageToColorLocation:VkPipelineCoverageToColorStateCreateInfoNV] :: VkPipelineCoverageToColorStateCreateInfoNV -> Word32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateInfoNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_fragment_coverage_to_color.VkPipelineCoverageToColorStateCreateFlagsNV module Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples -- | VkCoverageModulationModeNV - Specify the discard rectangle mode -- --

See Also

-- -- VkPipelineCoverageModulationStateCreateInfoNV newtype VkCoverageModulationModeNV VkCoverageModulationModeNV :: Int32 -> VkCoverageModulationModeNV -- | VK_COVERAGE_MODULATION_MODE_NONE_NV specifies that no -- components are multiplied by the modulation factor. -- | VK_COVERAGE_MODULATION_MODE_RGB_NV specifies that the red, -- green, and blue components are multiplied by the modulation factor. -- | VK_COVERAGE_MODULATION_MODE_ALPHA_NV specifies that the alpha -- component is multiplied by the modulation factor. -- | VK_COVERAGE_MODULATION_MODE_RGBA_NV specifies that all -- components are multiplied by the modulation factor. -- | VkPipelineCoverageModulationStateCreateFlagsNV - Reserved for future -- use -- --

Description

-- -- VkPipelineCoverageModulationStateCreateFlagsNV is a bitmask -- type for setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineCoverageModulationStateCreateInfoNV newtype VkPipelineCoverageModulationStateCreateFlagsNV VkPipelineCoverageModulationStateCreateFlagsNV :: VkFlags -> VkPipelineCoverageModulationStateCreateFlagsNV -- | VkPipelineCoverageModulationStateCreateInfoNV - Structure specifying -- parameters controlling coverage modulation -- --

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: -- -- -- -- 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: -- -- -- -- 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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkCoverageModulationModeNV, -- VkPipelineCoverageModulationStateCreateFlagsNV, -- VkStructureType data VkPipelineCoverageModulationStateCreateInfoNV VkPipelineCoverageModulationStateCreateInfoNV :: VkStructureType -> Ptr () -> VkPipelineCoverageModulationStateCreateFlagsNV -> VkCoverageModulationModeNV -> VkBool32 -> Word32 -> Ptr CFloat -> VkPipelineCoverageModulationStateCreateInfoNV -- | sType is the type of this structure. [$sel:vkSType:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> VkPipelineCoverageModulationStateCreateFlagsNV -- | coverageModulationMode controls which color components are -- modulated and is of type VkCoverageModulationModeNV. [$sel:vkCoverageModulationMode:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> VkCoverageModulationModeNV -- | coverageModulationTableEnable controls whether the modulation -- factor is looked up from a table in pCoverageModulationTable. [$sel:vkCoverageModulationTableEnable:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> VkBool32 -- | coverageModulationTableCount is the number of elements in -- pCoverageModulationTable. [$sel:vkCoverageModulationTableCount:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> Word32 -- | pCoverageModulationTable is a table of modulation factors -- containing a value for each number of covered samples. [$sel:vkPCoverageModulationTable:VkPipelineCoverageModulationStateCreateInfoNV] :: VkPipelineCoverageModulationStateCreateInfoNV -> Ptr CFloat instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateInfoNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkPipelineCoverageModulationStateCreateFlagsNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.VkCoverageModulationModeNV module Graphics.Vulkan.Extensions.VK_NV_geometry_shader_passthrough module Graphics.Vulkan.Extensions.VK_NV_glsl_shader module Graphics.Vulkan.Extensions.VK_NV_sample_mask_override_coverage module Graphics.Vulkan.Extensions.VK_NV_viewport_array2 module Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle -- | VkViewportCoordinateSwizzleNV - Specify how a viewport coordinate is -- swizzled -- --

Description

-- -- These values are described in detail in Viewport Swizzle. -- --

See Also

-- -- VkViewportSwizzleNV newtype VkViewportCoordinateSwizzleNV VkViewportCoordinateSwizzleNV :: Int32 -> VkViewportCoordinateSwizzleNV -- | VkPipelineViewportSwizzleStateCreateFlagsNV - Reserved for future use -- --

Description

-- -- VkPipelineViewportSwizzleStateCreateFlagsNV is a bitmask type -- for setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineViewportSwizzleStateCreateInfoNV newtype VkPipelineViewportSwizzleStateCreateFlagsNV VkPipelineViewportSwizzleStateCreateFlagsNV :: VkFlags -> VkPipelineViewportSwizzleStateCreateFlagsNV -- | VkViewportSwizzleNV - Structure specifying a viewport swizzle -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPipelineViewportSwizzleStateCreateInfoNV, -- VkViewportCoordinateSwizzleNV data VkViewportSwizzleNV VkViewportSwizzleNV :: VkViewportCoordinateSwizzleNV -> VkViewportCoordinateSwizzleNV -> VkViewportCoordinateSwizzleNV -> VkViewportCoordinateSwizzleNV -> VkViewportSwizzleNV -- | x is a VkViewportCoordinateSwizzleNV value specifying -- the swizzle operation to apply to the x component of the primitive [$sel:vkX:VkViewportSwizzleNV] :: VkViewportSwizzleNV -> VkViewportCoordinateSwizzleNV -- | y is a VkViewportCoordinateSwizzleNV value specifying -- the swizzle operation to apply to the y component of the primitive [$sel:vkY:VkViewportSwizzleNV] :: VkViewportSwizzleNV -> VkViewportCoordinateSwizzleNV -- | z is a VkViewportCoordinateSwizzleNV value specifying -- the swizzle operation to apply to the z component of the primitive [$sel:vkZ:VkViewportSwizzleNV] :: VkViewportSwizzleNV -> VkViewportCoordinateSwizzleNV -- | w is a VkViewportCoordinateSwizzleNV value specifying -- the swizzle operation to apply to the w component of the primitive [$sel:vkW:VkViewportSwizzleNV] :: VkViewportSwizzleNV -> VkViewportCoordinateSwizzleNV -- | VkPipelineViewportSwizzleStateCreateInfoNV - Structure specifying -- swizzle applied to primitive clip coordinates -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPipelineViewportSwizzleStateCreateFlagsNV, -- VkStructureType, VkViewportSwizzleNV data VkPipelineViewportSwizzleStateCreateInfoNV VkPipelineViewportSwizzleStateCreateInfoNV :: VkStructureType -> Ptr () -> VkPipelineViewportSwizzleStateCreateFlagsNV -> Word32 -> Ptr VkViewportSwizzleNV -> VkPipelineViewportSwizzleStateCreateInfoNV -- | sType is the type of this structure. [$sel:vkSType:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> VkPipelineViewportSwizzleStateCreateFlagsNV -- | viewportCount is the number of viewport swizzles used by the -- pipeline. [$sel:vkViewportCount:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> Word32 -- | pViewportSwizzles is a pointer to an array of -- VkViewportSwizzleNV structures, defining the viewport swizzles. [$sel:vkPViewportSwizzles:VkPipelineViewportSwizzleStateCreateInfoNV] :: VkPipelineViewportSwizzleStateCreateInfoNV -> Ptr VkViewportSwizzleNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateInfoNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportSwizzleNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportSwizzleNV instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateInfoNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportSwizzleNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkPipelineViewportSwizzleStateCreateFlagsNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_viewport_swizzle.VkViewportCoordinateSwizzleNV module Graphics.Vulkan.NamedType -- | Annotate a type with a name type (name :: k) ::: a = a module Graphics.Vulkan.Extensions.VK_KHR_variable_pointers type VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointerFeatures module Graphics.Vulkan.Extensions.VK_KHR_16bit_storage type VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures module Graphics.Vulkan.Core11.DeviceInitialization -- | vkEnumerateInstanceVersion - Query instance-level version before -- instance creation -- --

Parameters

-- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- --

Return Codes

-- -- -- --

See Also

-- -- No cross-references are available vkEnumerateInstanceVersion :: ("pApiVersion" ::: Ptr Word32) -> IO VkResult module Graphics.Vulkan.Core10.DeviceInitialization -- | VkImageTiling - Specifies the tiling arrangement of data in an image -- --

See Also

-- -- VkImageCreateInfo, VkPhysicalDeviceImageFormatInfo2, -- VkPhysicalDeviceSparseImageFormatInfo2, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV, -- vkGetPhysicalDeviceImageFormatProperties, -- vkGetPhysicalDeviceSparseImageFormatProperties newtype VkImageTiling VkImageTiling :: Int32 -> VkImageTiling -- | VK_IMAGE_TILING_OPTIMAL specifies optimal tiling (texels are -- laid out in an implementation-dependent arrangement, for more optimal -- memory access). -- | VK_IMAGE_TILING_LINEAR specifies linear tiling (texels are -- laid out in memory in row-major order, possibly with some padding on -- each row). -- | VkImageType - Specifies the type of an image object -- --

See Also

-- -- VkImageCreateInfo, VkPhysicalDeviceImageFormatInfo2, -- VkPhysicalDeviceSparseImageFormatInfo2, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV, -- vkGetPhysicalDeviceImageFormatProperties, -- vkGetPhysicalDeviceSparseImageFormatProperties newtype VkImageType VkImageType :: Int32 -> VkImageType -- | VK_IMAGE_TYPE_1D specifies a one-dimensional image. -- | VK_IMAGE_TYPE_2D specifies a two-dimensional image. -- | VK_IMAGE_TYPE_3D specifies a three-dimensional image. -- | VkPhysicalDeviceType - Supported physical device types -- --

Description

-- -- -- -- -- -- 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

-- -- VkPhysicalDeviceProperties newtype VkPhysicalDeviceType VkPhysicalDeviceType :: Int32 -> VkPhysicalDeviceType -- | VkSystemAllocationScope - Allocation scope -- --

Description

-- -- -- -- -- -- 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: -- -- -- --

See Also

-- -- VkAllocationCallbacks newtype VkSystemAllocationScope VkSystemAllocationScope :: Int32 -> VkSystemAllocationScope -- | VkInternalAllocationType - Allocation type -- --

See Also

-- -- PFN_vkInternalAllocationNotification, -- PFN_vkInternalFreeNotification newtype VkInternalAllocationType VkInternalAllocationType :: Int32 -> VkInternalAllocationType -- | VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE specifies that the -- allocation is intended for execution by the host. -- | VkInstanceCreateFlags - Reserved for future use -- --

Description

-- -- VkInstanceCreateFlags is a bitmask type for setting a mask, -- but is currently reserved for future use. -- --

See Also

-- -- VkInstanceCreateInfo newtype VkInstanceCreateFlags VkInstanceCreateFlags :: VkFlags -> VkInstanceCreateFlags -- | VkQueueFlagBits - Bitmask specifying capabilities of queues in a queue -- family -- --

Description

-- -- -- -- -- -- 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 Queues. -- --

See Also

-- -- VkQueueFlags newtype VkQueueFlagBits VkQueueFlagBits :: VkFlags -> VkQueueFlagBits -- | VkMemoryPropertyFlagBits - Bitmask specifying properties for a memory -- type -- --

See Also

-- -- VkMemoryPropertyFlags newtype VkMemoryPropertyFlagBits VkMemoryPropertyFlagBits :: VkFlags -> VkMemoryPropertyFlagBits -- | 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. -- | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT bit specifies that memory -- allocated with this type can be mapped for host access using -- vkMapMemory. -- | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT bit specifies that the -- host cache management commands vkFlushMappedMemoryRanges and -- vkInvalidateMappedMemoryRanges are not needed to flush host -- writes to the device or make device writes visible to the host, -- respectively. -- | 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. -- | 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 Lazily Allocated Memory. -- | VkMemoryHeapFlagBits - Bitmask specifying attribute flags for a heap -- --

See Also

-- -- VkMemoryHeapFlags newtype VkMemoryHeapFlagBits VkMemoryHeapFlagBits :: VkFlags -> VkMemoryHeapFlagBits -- | 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. -- | VkImageUsageFlagBits - Bitmask specifying intended usage of an image -- --

See Also

-- -- VkImageUsageFlags newtype VkImageUsageFlagBits VkImageUsageFlagBits :: VkFlags -> VkImageUsageFlagBits -- | VK_IMAGE_USAGE_TRANSFER_SRC_BIT specifies that the image -- can be used as the source of a transfer command. -- | VK_IMAGE_USAGE_TRANSFER_DST_BIT specifies that the image -- can be used as the destination of a transfer command. -- | 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. -- | 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. -- | 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. -- | 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. -- | 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 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. -- | 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. -- | VkImageCreateFlagBits - Bitmask specifying additional parameters of an -- image -- --

Description

-- -- -- -- -- -- See Sparse Resource Features and Sparse Physical Device -- Features for more details. -- --

See Also

-- -- VkImageCreateFlags newtype VkImageCreateFlagBits VkImageCreateFlagBits :: VkFlags -> VkImageCreateFlagBits -- | VkFormatFeatureFlagBits - Bitmask specifying features supported by a -- buffer -- --

Description

-- -- The following bits may be set in linearTilingFeatures -- and optimalTilingFeatures, specifying that the features are -- supported by images or image views created with the -- queried vkGetPhysicalDeviceFormatProperties::format: -- -- -- -- The following bits may be set in bufferFeatures, -- specifying that the features are supported by buffers or -- buffer views created with the queried -- vkGetPhysicalDeviceProperties::format: -- -- -- --

See Also

-- -- VkFormatFeatureFlags newtype VkFormatFeatureFlagBits VkFormatFeatureFlagBits :: VkFlags -> VkFormatFeatureFlagBits -- | VkSampleCountFlagBits - Bitmask specifying sample counts supported for -- an image used for storage operations -- --

See Also

-- -- VkAttachmentDescription, VkImageCreateInfo, -- VkPhysicalDeviceSparseImageFormatInfo2, -- VkPipelineMultisampleStateCreateInfo, -- VkSampleCountFlags, VkSampleLocationsInfoEXT, -- vkGetPhysicalDeviceMultisamplePropertiesEXT, -- vkGetPhysicalDeviceSparseImageFormatProperties newtype VkSampleCountFlagBits VkSampleCountFlagBits :: VkFlags -> VkSampleCountFlagBits -- | VK_SAMPLE_COUNT_1_BIT specifies an image with one sample per -- pixel. -- | VK_SAMPLE_COUNT_2_BIT specifies an image with 2 samples per -- pixel. -- | VK_SAMPLE_COUNT_4_BIT specifies an image with 4 samples per -- pixel. -- | VK_SAMPLE_COUNT_8_BIT specifies an image with 8 samples per -- pixel. -- | VK_SAMPLE_COUNT_16_BIT specifies an image with 16 samples per -- pixel. -- | VK_SAMPLE_COUNT_32_BIT specifies an image with 32 samples per -- pixel. -- | VK_SAMPLE_COUNT_64_BIT specifies an image with 64 samples per -- pixel. type VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256 type VK_UUID_SIZE = 16 type VK_MAX_MEMORY_TYPES = 32 type VK_MAX_MEMORY_HEAPS = 16 -- | PFN_vkInternalAllocationNotification - Application-defined memory -- allocation notification function -- --

Parameters

-- -- -- -- -- --

Description

-- -- This is a purely informational callback. -- --

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

-- -- -- -- -- --

Description

-- --

See Also

-- -- VkAllocationCallbacks type PFN_vkInternalFreeNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ()) -- | PFN_vkReallocationFunction - Application-defined memory reallocation -- function -- --

Parameters

-- -- -- -- -- --

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 rules for -- return values as PFN_vkAllocationFunction. -- --

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

-- -- -- -- -- --

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 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

-- -- VkAllocationCallbacks type PFN_vkAllocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ())) -- | PFN_vkFreeFunction - Application-defined memory free function -- --

Parameters

-- -- -- -- -- --

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

-- -- VkAllocationCallbacks type PFN_vkFreeFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pMemory" ::: Ptr ()) -> IO ()) -- | PFN_vkVoidFunction - Dummy function pointer type returned by queries -- --

Parameters

-- --

Description

-- --

See Also

-- -- vkGetDeviceProcAddr, vkGetInstanceProcAddr type PFN_vkVoidFunction = Ptr (() -> IO ()) -- | VkInstance - Opaque handle to a instance object -- --

Description

-- --

See Also

-- -- vkCreateAndroidSurfaceKHR, -- vkCreateDebugReportCallbackEXT, -- vkCreateDebugUtilsMessengerEXT, -- vkCreateDisplayPlaneSurfaceKHR, vkCreateIOSSurfaceMVK, -- vkCreateInstance, vkCreateMacOSSurfaceMVK, -- vkCreateMirSurfaceKHR, vkCreateViSurfaceNN, -- vkCreateWaylandSurfaceKHR, vkCreateWin32SurfaceKHR, -- vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, -- vkDebugReportMessageEXT, -- vkDestroyDebugReportCallbackEXT, -- vkDestroyDebugUtilsMessengerEXT, vkDestroyInstance, -- vkDestroySurfaceKHR, vkEnumeratePhysicalDeviceGroups, -- vkEnumeratePhysicalDeviceGroupsKHR, -- vkEnumeratePhysicalDevices, vkGetInstanceProcAddr, -- vkSubmitDebugUtilsMessageEXT type VkInstance = Ptr VkInstance_T -- | VkPhysicalDevice - Opaque handle to a physical device object -- --

Description

-- --

See Also

-- -- VkDeviceGroupDeviceCreateInfo, -- VkPhysicalDeviceGroupProperties, -- vkAcquireXlibDisplayEXT, vkCreateDevice, -- vkCreateDisplayModeKHR, -- vkEnumerateDeviceExtensionProperties, -- vkEnumerateDeviceLayerProperties, -- vkEnumeratePhysicalDevices, -- vkGetDisplayModePropertiesKHR, -- vkGetDisplayPlaneCapabilitiesKHR, -- vkGetDisplayPlaneSupportedDisplaysKHR, -- vkGetPhysicalDeviceDisplayPlanePropertiesKHR, -- vkGetPhysicalDeviceDisplayPropertiesKHR, -- vkGetPhysicalDeviceExternalBufferProperties, -- vkGetPhysicalDeviceExternalBufferPropertiesKHR, -- vkGetPhysicalDeviceExternalFenceProperties, -- vkGetPhysicalDeviceExternalFencePropertiesKHR, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV, -- vkGetPhysicalDeviceExternalSemaphoreProperties, -- vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, -- vkGetPhysicalDeviceFeatures, -- vkGetPhysicalDeviceFeatures2, -- vkGetPhysicalDeviceFeatures2KHR, -- vkGetPhysicalDeviceFormatProperties, -- vkGetPhysicalDeviceFormatProperties2, -- vkGetPhysicalDeviceFormatProperties2KHR, -- vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, -- vkGetPhysicalDeviceImageFormatProperties, -- vkGetPhysicalDeviceImageFormatProperties2, -- vkGetPhysicalDeviceImageFormatProperties2KHR, -- vkGetPhysicalDeviceMemoryProperties, -- vkGetPhysicalDeviceMemoryProperties2, -- vkGetPhysicalDeviceMemoryProperties2KHR, -- vkGetPhysicalDeviceMirPresentationSupportKHR, -- vkGetPhysicalDeviceMultisamplePropertiesEXT, -- vkGetPhysicalDevicePresentRectanglesKHR, -- vkGetPhysicalDeviceProperties, -- vkGetPhysicalDeviceProperties2, -- vkGetPhysicalDeviceProperties2KHR, -- vkGetPhysicalDeviceQueueFamilyProperties, -- vkGetPhysicalDeviceQueueFamilyProperties2, -- vkGetPhysicalDeviceQueueFamilyProperties2KHR, -- vkGetPhysicalDeviceSparseImageFormatProperties, -- vkGetPhysicalDeviceSparseImageFormatProperties2, -- vkGetPhysicalDeviceSparseImageFormatProperties2KHR, -- vkGetPhysicalDeviceSurfaceCapabilities2EXT, -- vkGetPhysicalDeviceSurfaceCapabilities2KHR, -- vkGetPhysicalDeviceSurfaceCapabilitiesKHR, -- vkGetPhysicalDeviceSurfaceFormats2KHR, -- vkGetPhysicalDeviceSurfaceFormatsKHR, -- vkGetPhysicalDeviceSurfacePresentModesKHR, -- vkGetPhysicalDeviceSurfaceSupportKHR, -- vkGetPhysicalDeviceWaylandPresentationSupportKHR, -- vkGetPhysicalDeviceWin32PresentationSupportKHR, -- vkGetPhysicalDeviceXcbPresentationSupportKHR, -- vkGetPhysicalDeviceXlibPresentationSupportKHR, -- vkGetRandROutputDisplayEXT, vkReleaseDisplayEXT type VkPhysicalDevice = Ptr VkPhysicalDevice_T -- | VkDevice - Opaque handle to a device object -- --

Description

-- --

See Also

-- -- vkAcquireNextImage2KHR, vkAcquireNextImageKHR, -- vkAllocateCommandBuffers, vkAllocateDescriptorSets, -- vkAllocateMemory, vkBindBufferMemory, -- vkBindBufferMemory2, vkBindBufferMemory2KHR, -- vkBindImageMemory, vkBindImageMemory2, -- vkBindImageMemory2KHR, vkCreateBuffer, -- vkCreateBufferView, vkCreateCommandPool, -- vkCreateComputePipelines, vkCreateDescriptorPool, -- vkCreateDescriptorSetLayout, -- vkCreateDescriptorUpdateTemplate, -- vkCreateDescriptorUpdateTemplateKHR, vkCreateDevice, -- vkCreateEvent, vkCreateFence, -- vkCreateFramebuffer, vkCreateGraphicsPipelines, -- vkCreateImage, vkCreateImageView, -- vkCreateIndirectCommandsLayoutNVX, -- vkCreateObjectTableNVX, vkCreatePipelineCache, -- vkCreatePipelineLayout, vkCreateQueryPool, -- vkCreateRenderPass, vkCreateSampler, -- vkCreateSamplerYcbcrConversion, -- vkCreateSamplerYcbcrConversionKHR, vkCreateSemaphore, -- vkCreateShaderModule, vkCreateSharedSwapchainsKHR, -- vkCreateSwapchainKHR, vkCreateValidationCacheEXT, -- vkDebugMarkerSetObjectNameEXT, -- vkDebugMarkerSetObjectTagEXT, vkDestroyBuffer, -- vkDestroyBufferView, vkDestroyCommandPool, -- vkDestroyDescriptorPool, vkDestroyDescriptorSetLayout, -- vkDestroyDescriptorUpdateTemplate, -- vkDestroyDescriptorUpdateTemplateKHR, vkDestroyDevice, -- vkDestroyEvent, vkDestroyFence, -- vkDestroyFramebuffer, vkDestroyImage, -- vkDestroyImageView, vkDestroyIndirectCommandsLayoutNVX, -- vkDestroyObjectTableNVX, vkDestroyPipeline, -- vkDestroyPipelineCache, vkDestroyPipelineLayout, -- vkDestroyQueryPool, vkDestroyRenderPass, -- vkDestroySampler, vkDestroySamplerYcbcrConversion, -- vkDestroySamplerYcbcrConversionKHR, vkDestroySemaphore, -- vkDestroyShaderModule, vkDestroySwapchainKHR, -- vkDestroyValidationCacheEXT, vkDeviceWaitIdle, -- vkDisplayPowerControlEXT, vkFlushMappedMemoryRanges, -- vkFreeCommandBuffers, vkFreeDescriptorSets, -- vkFreeMemory, -- vkGetAndroidHardwareBufferPropertiesANDROID, -- vkGetBufferMemoryRequirements, -- vkGetBufferMemoryRequirements2, -- vkGetBufferMemoryRequirements2KHR, -- vkGetDescriptorSetLayoutSupport, -- vkGetDescriptorSetLayoutSupportKHR, -- vkGetDeviceGroupPeerMemoryFeatures, -- vkGetDeviceGroupPeerMemoryFeaturesKHR, -- vkGetDeviceGroupPresentCapabilitiesKHR, -- vkGetDeviceGroupSurfacePresentModesKHR, -- vkGetDeviceMemoryCommitment, vkGetDeviceProcAddr, -- vkGetDeviceQueue, vkGetDeviceQueue2, -- vkGetEventStatus, vkGetFenceFdKHR, -- vkGetFenceStatus, vkGetFenceWin32HandleKHR, -- vkGetImageMemoryRequirements, -- vkGetImageMemoryRequirements2, -- vkGetImageMemoryRequirements2KHR, -- vkGetImageSparseMemoryRequirements, -- vkGetImageSparseMemoryRequirements2, -- vkGetImageSparseMemoryRequirements2KHR, -- vkGetImageSubresourceLayout, -- vkGetMemoryAndroidHardwareBufferANDROID, -- vkGetMemoryFdKHR, vkGetMemoryFdPropertiesKHR, -- vkGetMemoryHostPointerPropertiesEXT, -- vkGetMemoryWin32HandleKHR, vkGetMemoryWin32HandleNV, -- vkGetMemoryWin32HandlePropertiesKHR, -- vkGetPastPresentationTimingGOOGLE, -- vkGetPipelineCacheData, vkGetQueryPoolResults, -- vkGetRefreshCycleDurationGOOGLE, -- vkGetRenderAreaGranularity, vkGetSemaphoreFdKHR, -- vkGetSemaphoreWin32HandleKHR, vkGetShaderInfoAMD, -- vkGetSwapchainCounterEXT, vkGetSwapchainImagesKHR, -- vkGetSwapchainStatusKHR, vkGetValidationCacheDataEXT, -- vkImportFenceFdKHR, vkImportFenceWin32HandleKHR, -- vkImportSemaphoreFdKHR, vkImportSemaphoreWin32HandleKHR, -- vkInvalidateMappedMemoryRanges, vkMapMemory, -- vkMergePipelineCaches, vkMergeValidationCachesEXT, -- vkRegisterDeviceEventEXT, vkRegisterDisplayEventEXT, -- vkRegisterObjectsNVX, vkResetCommandPool, -- vkResetDescriptorPool, vkResetEvent, -- vkResetFences, vkSetDebugUtilsObjectNameEXT, -- vkSetDebugUtilsObjectTagEXT, vkSetEvent, -- vkSetHdrMetadataEXT, vkTrimCommandPool, -- vkTrimCommandPoolKHR, vkUnmapMemory, -- vkUnregisterObjectsNVX, -- vkUpdateDescriptorSetWithTemplate, -- vkUpdateDescriptorSetWithTemplateKHR, -- vkUpdateDescriptorSets, vkWaitForFences type VkDevice = Ptr VkDevice_T -- | vkCreateInstance - Create a new Vulkan instance -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkInstance, -- VkInstanceCreateInfo vkCreateInstance :: ("pCreateInfo" ::: Ptr VkInstanceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pInstance" ::: Ptr VkInstance) -> IO VkResult -- | vkDestroyInstance - Destroy an instance of Vulkan -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkInstance vkDestroyInstance :: ("instance" ::: VkInstance) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkEnumeratePhysicalDevices - Enumerates the physical devices -- accessible to a Vulkan instance -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkInstance, VkPhysicalDevice vkEnumeratePhysicalDevices :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr VkPhysicalDevice) -> IO VkResult -- | vkGetDeviceProcAddr - Return a function pointer for a command -- --

Parameters

-- -- The table below defines the various use cases for -- vkGetDeviceProcAddr and expected return value for each case. -- --

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)

-- -- -- -- -- --

See Also

-- -- PFN_vkVoidFunction, VkDevice vkGetDeviceProcAddr :: ("device" ::: VkDevice) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction -- | vkGetInstanceProcAddr - Return a function pointer for a command -- --

Parameters

-- -- -- -- -- --

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
--   
-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- PFN_vkVoidFunction, VkInstance vkGetInstanceProcAddr :: ("instance" ::: VkInstance) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction -- | vkGetPhysicalDeviceProperties - Returns properties of a physical -- device -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPhysicalDeviceProperties vkGetPhysicalDeviceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties) -> IO () -- | vkGetPhysicalDeviceQueueFamilyProperties - Reports properties of the -- queues of the specified physical device -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties) -> IO () -- | vkGetPhysicalDeviceMemoryProperties - Reports memory information for -- the specified physical device -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties) -> IO () -- | vkGetPhysicalDeviceFeatures - Reports capabilities of a physical -- device -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures) -> IO () -- | vkGetPhysicalDeviceFormatProperties - Lists physical device’s format -- capabilities -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFormat, VkFormatProperties, VkPhysicalDevice vkGetPhysicalDeviceFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties) -> IO () -- | vkGetPhysicalDeviceImageFormatProperties - Lists physical device’s -- image format capabilities -- --

Parameters

-- -- -- -- -- --

Description

-- -- The format, type, tiling, usage, -- and flags parameters correspond to parameters that would be -- consumed by 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkFormat, VkImageCreateFlags, -- VkImageFormatProperties, VkImageTiling, -- VkImageType, VkImageUsageFlags, VkPhysicalDevice 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

-- --

See Also

-- -- VkBufferImageCopy, VkImageCopy, -- VkImageCreateInfo, VkImageFormatProperties, -- VkImageResolve, VkQueueFamilyProperties, -- VkSparseImageFormatProperties, VkSparseImageMemoryBind data VkExtent3D VkExtent3D :: Word32 -> Word32 -> Word32 -> VkExtent3D -- | width is the width of the extent. [$sel:vkWidth:VkExtent3D] :: VkExtent3D -> Word32 -- | height is the height of the extent. [$sel:vkHeight:VkExtent3D] :: VkExtent3D -> Word32 -- | depth is the depth of the extent. [$sel:vkDepth:VkExtent3D] :: VkExtent3D -> Word32 -- | VkPhysicalDeviceProperties - Structure specifying physical device -- properties -- --

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 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 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 -- PCI device with a 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

-- -- VkPhysicalDeviceLimits, VkPhysicalDeviceProperties2, -- VkPhysicalDeviceSparseProperties, VkPhysicalDeviceType, -- vkGetPhysicalDeviceProperties data VkPhysicalDeviceProperties VkPhysicalDeviceProperties :: Word32 -> Word32 -> Word32 -> Word32 -> VkPhysicalDeviceType -> Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar -> Vector VK_UUID_SIZE Word8 -> VkPhysicalDeviceLimits -> VkPhysicalDeviceSparseProperties -> VkPhysicalDeviceProperties -- | apiVersion is the version of Vulkan supported by the device, -- encoded as described in the API Version Numbers and Semantics -- section. [$sel:vkApiVersion:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32 -- | driverVersion is the vendor-specified version of the driver. [$sel:vkDriverVersion:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32 -- | vendorID is a unique identifier for the vendor (see -- below) of the physical device. [$sel:vkVendorID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32 -- | deviceID is a unique identifier for the physical device among -- devices available from the vendor. [$sel:vkDeviceID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Word32 -- | deviceType is a VkPhysicalDeviceType specifying the -- type of device. [$sel:vkDeviceType:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceType -- | deviceName is a null-terminated UTF-8 string containing the -- name of the device. [$sel:vkDeviceName:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar -- | pipelineCacheUUID is an array of size VK_UUID_SIZE, -- containing 8-bit values that represent a universally unique identifier -- for the device. [$sel:vkPipelineCacheUUID:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> Vector VK_UUID_SIZE Word8 -- | limits is the VkPhysicalDeviceLimits structure which -- specifies device-specific limits of the physical device. See -- Limits for details. [$sel:vkLimits:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceLimits -- | sparseProperties is the -- VkPhysicalDeviceSparseProperties structure which specifies -- various sparse related properties of the physical device. See -- Sparse Properties for details. [$sel:vkSparseProperties:VkPhysicalDeviceProperties] :: VkPhysicalDeviceProperties -> VkPhysicalDeviceSparseProperties -- | VkApplicationInfo - Structure specifying application info -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkInstanceCreateInfo, VkStructureType data VkApplicationInfo VkApplicationInfo :: VkStructureType -> Ptr () -> Ptr CChar -> Word32 -> Ptr CChar -> Word32 -> Word32 -> VkApplicationInfo -- | sType is the type of this structure. [$sel:vkSType:VkApplicationInfo] :: VkApplicationInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkApplicationInfo] :: VkApplicationInfo -> Ptr () -- | pApplicationName is NULL or is a pointer to a -- null-terminated UTF-8 string containing the name of the application. [$sel:vkPApplicationName:VkApplicationInfo] :: VkApplicationInfo -> Ptr CChar -- | applicationVersion is an unsigned integer variable containing -- the developer-supplied version number of the application. [$sel:vkApplicationVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32 -- | pEngineName is NULL or is a pointer to a -- null-terminated UTF-8 string containing the name of the engine (if -- any) used to create the application. [$sel:vkPEngineName:VkApplicationInfo] :: VkApplicationInfo -> Ptr CChar -- | engineVersion is an unsigned integer variable containing the -- developer-supplied version number of the engine used to create the -- application. [$sel:vkEngineVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32 -- | apiVersion is the version of the Vulkan API against which the -- application expects to run, encoded as described in the API Version -- Numbers and Semantics section. If apiVersion is 0 the -- implementation must ignore it, otherwise if the implementation -- does not support the requested apiVersion, or an effective -- substitute for apiVersion, it must return -- VK_ERROR_INCOMPATIBLE_DRIVER. The patch version number -- specified in apiVersion is ignored when creating an instance -- object. Only the major and minor versions of the instance must -- match those requested in apiVersion. [$sel:vkApiVersion:VkApplicationInfo] :: VkApplicationInfo -> Word32 -- | VkAllocationCallbacks - Structure containing callback function -- pointers for memory allocation -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

See Also

-- -- PFN_vkAllocationFunction, PFN_vkFreeFunction, -- PFN_vkInternalAllocationNotification, -- PFN_vkInternalFreeNotification, -- PFN_vkReallocationFunction, vkAllocateMemory, -- vkCreateAndroidSurfaceKHR, vkCreateBuffer, -- vkCreateBufferView, vkCreateCommandPool, -- vkCreateComputePipelines, -- vkCreateDebugReportCallbackEXT, -- vkCreateDebugUtilsMessengerEXT, vkCreateDescriptorPool, -- vkCreateDescriptorSetLayout, -- vkCreateDescriptorUpdateTemplate, -- vkCreateDescriptorUpdateTemplateKHR, vkCreateDevice, -- vkCreateDisplayModeKHR, vkCreateDisplayPlaneSurfaceKHR, -- vkCreateEvent, vkCreateFence, -- vkCreateFramebuffer, vkCreateGraphicsPipelines, -- vkCreateIOSSurfaceMVK, vkCreateImage, -- vkCreateImageView, vkCreateIndirectCommandsLayoutNVX, -- vkCreateInstance, vkCreateMacOSSurfaceMVK, -- vkCreateMirSurfaceKHR, vkCreateObjectTableNVX, -- vkCreatePipelineCache, vkCreatePipelineLayout, -- vkCreateQueryPool, vkCreateRenderPass, -- vkCreateSampler, vkCreateSamplerYcbcrConversion, -- vkCreateSamplerYcbcrConversionKHR, vkCreateSemaphore, -- vkCreateShaderModule, vkCreateSharedSwapchainsKHR, -- vkCreateSwapchainKHR, vkCreateValidationCacheEXT, -- vkCreateViSurfaceNN, vkCreateWaylandSurfaceKHR, -- vkCreateWin32SurfaceKHR, vkCreateXcbSurfaceKHR, -- vkCreateXlibSurfaceKHR, vkDestroyBuffer, -- vkDestroyBufferView, vkDestroyCommandPool, -- vkDestroyDebugReportCallbackEXT, -- vkDestroyDebugUtilsMessengerEXT, -- vkDestroyDescriptorPool, vkDestroyDescriptorSetLayout, -- vkDestroyDescriptorUpdateTemplate, -- vkDestroyDescriptorUpdateTemplateKHR, vkDestroyDevice, -- vkDestroyEvent, vkDestroyFence, -- vkDestroyFramebuffer, vkDestroyImage, -- vkDestroyImageView, vkDestroyIndirectCommandsLayoutNVX, -- vkDestroyInstance, vkDestroyObjectTableNVX, -- vkDestroyPipeline, vkDestroyPipelineCache, -- vkDestroyPipelineLayout, vkDestroyQueryPool, -- vkDestroyRenderPass, vkDestroySampler, -- vkDestroySamplerYcbcrConversion, -- vkDestroySamplerYcbcrConversionKHR, vkDestroySemaphore, -- vkDestroyShaderModule, vkDestroySurfaceKHR, -- vkDestroySwapchainKHR, vkDestroyValidationCacheEXT, -- vkFreeMemory, vkRegisterDeviceEventEXT, -- vkRegisterDisplayEventEXT data VkAllocationCallbacks VkAllocationCallbacks :: Ptr () -> PFN_vkAllocationFunction -> PFN_vkReallocationFunction -> PFN_vkFreeFunction -> PFN_vkInternalAllocationNotification -> PFN_vkInternalFreeNotification -> VkAllocationCallbacks -- | pUserData is a value to be interpreted by the implementation -- of the callbacks. When any of the callbacks in -- VkAllocationCallbacks are called, the Vulkan implementation -- will pass this value as the first parameter to the callback. This -- value can vary each time an allocator is passed into a command, -- even when the same object takes an allocator in multiple commands. [$sel:vkPUserData:VkAllocationCallbacks] :: VkAllocationCallbacks -> Ptr () -- | pfnAllocation is a pointer to an application-defined memory -- allocation function of type PFN_vkAllocationFunction. [$sel:vkPfnAllocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkAllocationFunction -- | pfnReallocation is a pointer to an application-defined memory -- reallocation function of type PFN_vkReallocationFunction. [$sel:vkPfnReallocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkReallocationFunction -- | pfnFree is a pointer to an application-defined memory free -- function of type PFN_vkFreeFunction. [$sel:vkPfnFree:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkFreeFunction -- | pfnInternalAllocation is a pointer to an application-defined -- function that is called by the implementation when the implementation -- makes internal allocations, and it is of type -- PFN_vkInternalAllocationNotification. [$sel:vkPfnInternalAllocation:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkInternalAllocationNotification -- | pfnInternalFree is a pointer to an application-defined -- function that is called by the implementation when the implementation -- frees internal allocations, and it is of type -- PFN_vkInternalFreeNotification. [$sel:vkPfnInternalFree:VkAllocationCallbacks] :: VkAllocationCallbacks -> PFN_vkInternalFreeNotification -- | VkInstanceCreateInfo - Structure specifying parameters of a newly -- created instance -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkApplicationInfo, VkInstanceCreateFlags, -- VkStructureType, vkCreateInstance data VkInstanceCreateInfo VkInstanceCreateInfo :: VkStructureType -> Ptr () -> VkInstanceCreateFlags -> Ptr VkApplicationInfo -> Word32 -> Ptr (Ptr CChar) -> Word32 -> Ptr (Ptr CChar) -> VkInstanceCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> VkInstanceCreateFlags -- | pApplicationInfo is NULL or a pointer to an instance -- of VkApplicationInfo. If not NULL, this information -- helps implementations recognize behavior inherent to classes of -- applications. VkApplicationInfo is defined in detail below. [$sel:vkPApplicationInfo:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr VkApplicationInfo -- | enabledLayerCount is the number of global layers to enable. [$sel:vkEnabledLayerCount:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Word32 -- | ppEnabledLayerNames is a pointer to an array of -- enabledLayerCount null-terminated UTF-8 strings containing -- the names of layers to enable for the created instance. See the -- Layers section for further details. [$sel:vkPPEnabledLayerNames:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr (Ptr CChar) -- | enabledExtensionCount is the number of global extensions to -- enable. [$sel:vkEnabledExtensionCount:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Word32 -- | ppEnabledExtensionNames is a pointer to an array of -- enabledExtensionCount null-terminated UTF-8 strings -- containing the names of extensions to enable. [$sel:vkPPEnabledExtensionNames:VkInstanceCreateInfo] :: VkInstanceCreateInfo -> Ptr (Ptr CChar) -- | VkQueueFamilyProperties - Structure providing information about a -- queue family -- --

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: -- -- -- -- 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 Device Memory section describes memory properties queried -- from the physical device. -- -- For physical device feature queries see the Features chapter. -- --

See Also

-- -- VkExtent3D, VkQueueFamilyProperties2, -- VkQueueFlags, vkGetPhysicalDeviceQueueFamilyProperties data VkQueueFamilyProperties VkQueueFamilyProperties :: VkQueueFlags -> Word32 -> Word32 -> VkExtent3D -> VkQueueFamilyProperties -- | queueFlags is a bitmask of VkQueueFlagBits indicating -- capabilities of the queues in this queue family. [$sel:vkQueueFlags:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> VkQueueFlags -- | queueCount is the unsigned integer count of queues in this -- queue family. [$sel:vkQueueCount:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> Word32 -- | timestampValidBits is the unsigned integer count of -- meaningful bits in the timestamps written via -- vkCmdWriteTimestamp. The valid range for the count is 36..64 -- bits, or a value of 0, indicating no support for timestamps. Bits -- outside the valid range are guaranteed to be zeros. [$sel:vkTimestampValidBits:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> Word32 -- | minImageTransferGranularity is the minimum granularity -- supported for image transfer operations on the queues in this queue -- family. [$sel:vkMinImageTransferGranularity:VkQueueFamilyProperties] :: VkQueueFamilyProperties -> VkExtent3D -- | VkPhysicalDeviceMemoryProperties - Structure specifying physical -- device memory properties -- --

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: -- -- -- -- 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: -- -- -- -- 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 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

-- -- VkMemoryHeap, VkMemoryType, -- VkPhysicalDeviceMemoryProperties2, -- vkGetPhysicalDeviceMemoryProperties data VkPhysicalDeviceMemoryProperties VkPhysicalDeviceMemoryProperties :: Word32 -> Vector VK_MAX_MEMORY_TYPES VkMemoryType -> Word32 -> Vector VK_MAX_MEMORY_HEAPS VkMemoryHeap -> VkPhysicalDeviceMemoryProperties -- | memoryTypeCount is the number of valid elements in the -- memoryTypes array. [$sel:vkMemoryTypeCount:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Word32 -- | memoryTypes is an array of VkMemoryType structures -- describing the memory types that can be used to access -- memory allocated from the heaps specified by memoryHeaps. [$sel:vkMemoryTypes:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Vector VK_MAX_MEMORY_TYPES VkMemoryType -- | memoryHeapCount is the number of valid elements in the -- memoryHeaps array. [$sel:vkMemoryHeapCount:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Word32 -- | memoryHeaps is an array of VkMemoryHeap structures -- describing the memory heaps from which memory can be -- allocated. [$sel:vkMemoryHeaps:VkPhysicalDeviceMemoryProperties] :: VkPhysicalDeviceMemoryProperties -> Vector VK_MAX_MEMORY_HEAPS VkMemoryHeap -- | VkMemoryType - Structure specifying memory type -- --

Description

-- --

See Also

-- -- VkMemoryPropertyFlags, VkPhysicalDeviceMemoryProperties data VkMemoryType VkMemoryType :: VkMemoryPropertyFlags -> Word32 -> VkMemoryType -- | propertyFlags is a bitmask of VkMemoryPropertyFlagBits -- of properties for this memory type. [$sel:vkPropertyFlags:VkMemoryType] :: VkMemoryType -> VkMemoryPropertyFlags -- | heapIndex describes which memory heap this memory type -- corresponds to, and must be less than memoryHeapCount -- from the VkPhysicalDeviceMemoryProperties structure. [$sel:vkHeapIndex:VkMemoryType] :: VkMemoryType -> Word32 -- | VkMemoryHeap - Structure specifying a memory heap -- --

Description

-- --

See Also

-- -- VkDeviceSize, VkMemoryHeapFlags, -- VkPhysicalDeviceMemoryProperties data VkMemoryHeap VkMemoryHeap :: VkDeviceSize -> VkMemoryHeapFlags -> VkMemoryHeap -- | size is the total memory size in bytes in the heap. [$sel:vkSize:VkMemoryHeap] :: VkMemoryHeap -> VkDeviceSize -- | flags is a bitmask of VkMemoryHeapFlagBits specifying -- attribute flags for the heap. [$sel:vkFlags:VkMemoryHeap] :: VkMemoryHeap -> VkMemoryHeapFlags -- | VkFormatProperties - Structure specifying image format properties -- --

Description

-- -- Note -- -- 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

-- -- VkFormatFeatureFlags, VkFormatProperties2, -- vkGetPhysicalDeviceFormatProperties data VkFormatProperties VkFormatProperties :: VkFormatFeatureFlags -> VkFormatFeatureFlags -> VkFormatFeatureFlags -> VkFormatProperties -- | linearTilingFeatures is a bitmask of -- VkFormatFeatureFlagBits specifying features supported by images -- created with a tiling parameter of -- VK_IMAGE_TILING_LINEAR. [$sel:vkLinearTilingFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags -- | optimalTilingFeatures is a bitmask of -- VkFormatFeatureFlagBits specifying features supported by images -- created with a tiling parameter of -- VK_IMAGE_TILING_OPTIMAL. [$sel:vkOptimalTilingFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags -- | bufferFeatures is a bitmask of VkFormatFeatureFlagBits -- specifying features supported by buffers. [$sel:vkBufferFeatures:VkFormatProperties] :: VkFormatProperties -> VkFormatFeatureFlags -- | VkImageFormatProperties - Structure specifying a image format -- properties -- --

Members

-- -- -- -- -- --

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 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 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

-- -- VkDeviceSize, VkExtent3D, -- VkExternalImageFormatPropertiesNV, -- VkImageFormatProperties2, VkSampleCountFlags, -- vkGetPhysicalDeviceImageFormatProperties data VkImageFormatProperties VkImageFormatProperties :: VkExtent3D -> Word32 -> Word32 -> VkSampleCountFlags -> VkDeviceSize -> VkImageFormatProperties [$sel:vkMaxExtent:VkImageFormatProperties] :: VkImageFormatProperties -> VkExtent3D [$sel:vkMaxMipLevels:VkImageFormatProperties] :: VkImageFormatProperties -> Word32 [$sel:vkMaxArrayLayers:VkImageFormatProperties] :: VkImageFormatProperties -> Word32 [$sel:vkSampleCounts:VkImageFormatProperties] :: VkImageFormatProperties -> VkSampleCountFlags [$sel:vkMaxResourceSize:VkImageFormatProperties] :: VkImageFormatProperties -> VkDeviceSize -- | VkPhysicalDeviceFeatures - Structure describing the fine-grained -- features that can be supported by an implementation -- --

Members

-- -- The members of the VkPhysicalDeviceFeatures structure -- describe the following features: -- --

Description

-- -- -- -- -- --

See Also

-- -- VkBool32, VkDeviceCreateInfo, -- VkPhysicalDeviceFeatures2, vkGetPhysicalDeviceFeatures data VkPhysicalDeviceFeatures 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 [$sel:vkRobustBufferAccess:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkFullDrawIndexUint32:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkImageCubeArray:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkIndependentBlend:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkGeometryShader:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkTessellationShader:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSampleRateShading:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkDualSrcBlend:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkLogicOp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkMultiDrawIndirect:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkDrawIndirectFirstInstance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkDepthClamp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkDepthBiasClamp:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkFillModeNonSolid:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkDepthBounds:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkWideLines:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkLargePoints:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkAlphaToOne:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkMultiViewport:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSamplerAnisotropy:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkTextureCompressionETC2:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkTextureCompressionASTC_LDR:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkTextureCompressionBC:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkOcclusionQueryPrecise:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkPipelineStatisticsQuery:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkVertexPipelineStoresAndAtomics:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkFragmentStoresAndAtomics:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderTessellationAndGeometryPointSize:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderImageGatherExtended:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderStorageImageExtendedFormats:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderStorageImageMultisample:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderStorageImageReadWithoutFormat:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderStorageImageWriteWithoutFormat:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderUniformBufferArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderSampledImageArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderStorageBufferArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderStorageImageArrayDynamicIndexing:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderClipDistance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderCullDistance:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderFloat64:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderInt64:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderInt16:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderResourceResidency:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkShaderResourceMinLod:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseBinding:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseResidencyBuffer:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseResidencyImage2D:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseResidencyImage3D:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseResidency2Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseResidency4Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseResidency8Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseResidency16Samples:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkSparseResidencyAliased:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkVariableMultisampleRate:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 [$sel:vkInheritedQueries:VkPhysicalDeviceFeatures] :: VkPhysicalDeviceFeatures -> VkBool32 -- | VkPhysicalDeviceSparseProperties - Structure specifying physical -- device sparse memory properties -- --

Description

-- --

See Also

-- -- VkBool32, VkPhysicalDeviceProperties data VkPhysicalDeviceSparseProperties VkPhysicalDeviceSparseProperties :: VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceSparseProperties -- | residencyStandard2DBlockShape is VK_TRUE if the -- physical device will access all single-sample 2D sparse resources -- using the standard sparse image block shapes (based on image format), -- as described in the Standard Sparse Image Block Shapes (Single -- Sample) table. If this property is not supported the value -- returned in the imageGranularity member of the -- VkSparseImageFormatProperties structure for single-sample 2D -- images is not required to match the standard sparse image block -- dimensions listed in the table. [$sel:vkResidencyStandard2DBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32 -- | residencyStandard2DMultisampleBlockShape is VK_TRUE -- if the physical device will access all multisample 2D sparse resources -- using the standard sparse image block shapes (based on image format), -- as described in the Standard Sparse Image Block Shapes (MSAA) -- table. If this property is not supported, the value returned in the -- imageGranularity member of the -- VkSparseImageFormatProperties structure for multisample 2D -- images is not required to match the standard sparse image block -- dimensions listed in the table. [$sel:vkResidencyStandard2DMultisampleBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32 -- | residencyStandard3DBlockShape is VK_TRUE if the -- physical device will access all 3D sparse resources using the standard -- sparse image block shapes (based on image format), as described in the -- Standard Sparse Image Block Shapes (Single Sample) table. If -- this property is not supported, the value returned in the -- imageGranularity member of the -- VkSparseImageFormatProperties structure for 3D images is not -- required to match the standard sparse image block dimensions -- listed in the table. [$sel:vkResidencyStandard3DBlockShape:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32 -- | residencyAlignedMipSize is VK_TRUE if images with -- mip level dimensions that are not integer multiples of the -- corresponding dimensions of the sparse image block may be -- placed in the mip tail. If this property is not reported, only mip -- levels with dimensions smaller than the imageGranularity -- member of the VkSparseImageFormatProperties structure will be -- placed in the mip tail. If this property is reported the -- implementation is allowed to return -- VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT in the -- flags member of VkSparseImageFormatProperties, -- indicating that mip level dimensions that are not integer multiples of -- the corresponding dimensions of the sparse image block will be placed -- in the mip tail. [$sel:vkResidencyAlignedMipSize:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32 -- | residencyNonResidentStrict specifies whether the physical -- device can consistently access non-resident regions of a -- resource. If this property is VK_TRUE, access to non-resident -- regions of resources will be guaranteed to return values as if the -- resource were populated with 0; writes to non-resident regions will be -- discarded. [$sel:vkResidencyNonResidentStrict:VkPhysicalDeviceSparseProperties] :: VkPhysicalDeviceSparseProperties -> VkBool32 -- | VkPhysicalDeviceLimits - Structure reporting implementation-dependent -- physical device limits -- --

Members

-- -- -- -- -- --

Description

-- -- -- --

See Also

-- -- VkBool32, VkDeviceSize, -- VkPhysicalDeviceProperties, VkSampleCountFlags data VkPhysicalDeviceLimits 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 [$sel:vkMaxImageDimension1D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxImageDimension2D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxImageDimension3D:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxImageDimensionCube:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxImageArrayLayers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTexelBufferElements:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxUniformBufferRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxStorageBufferRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxPushConstantsSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxMemoryAllocationCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxSamplerAllocationCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkBufferImageGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize [$sel:vkSparseAddressSpaceSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize [$sel:vkMaxBoundDescriptorSets:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxPerStageDescriptorSamplers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxPerStageDescriptorUniformBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxPerStageDescriptorStorageBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxPerStageDescriptorSampledImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxPerStageDescriptorStorageImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxPerStageDescriptorInputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxPerStageResources:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDescriptorSetSamplers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDescriptorSetUniformBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDescriptorSetUniformBuffersDynamic:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDescriptorSetStorageBuffers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDescriptorSetStorageBuffersDynamic:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDescriptorSetSampledImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDescriptorSetStorageImages:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDescriptorSetInputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxVertexInputAttributes:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxVertexInputBindings:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxVertexInputAttributeOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxVertexInputBindingStride:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxVertexOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTessellationGenerationLevel:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTessellationPatchSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTessellationControlPerVertexInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTessellationControlPerVertexOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTessellationControlPerPatchOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTessellationControlTotalOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTessellationEvaluationInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxTessellationEvaluationOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxGeometryShaderInvocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxGeometryInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxGeometryOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxGeometryOutputVertices:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxGeometryTotalOutputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxFragmentInputComponents:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxFragmentOutputAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxFragmentDualSrcAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxFragmentCombinedOutputResources:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxComputeSharedMemorySize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxComputeWorkGroupCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 3 Word32 [$sel:vkMaxComputeWorkGroupInvocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxComputeWorkGroupSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 3 Word32 [$sel:vkSubPixelPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkSubTexelPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMipmapPrecisionBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDrawIndexedIndexValue:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxDrawIndirectCount:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxSamplerLodBias:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat [$sel:vkMaxSamplerAnisotropy:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat [$sel:vkMaxViewports:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxViewportDimensions:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 Word32 [$sel:vkViewportBoundsRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat [$sel:vkViewportSubPixelBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMinMemoryMapAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CSize [$sel:vkMinTexelBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize [$sel:vkMinUniformBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize [$sel:vkMinStorageBufferOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize [$sel:vkMinTexelOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Int32 [$sel:vkMaxTexelOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMinTexelGatherOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Int32 [$sel:vkMaxTexelGatherOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMinInterpolationOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat [$sel:vkMaxInterpolationOffset:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat [$sel:vkSubPixelInterpolationOffsetBits:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxFramebufferWidth:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxFramebufferHeight:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxFramebufferLayers:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkFramebufferColorSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkFramebufferDepthSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkFramebufferStencilSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkFramebufferNoAttachmentsSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkMaxColorAttachments:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkSampledImageColorSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkSampledImageIntegerSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkSampledImageDepthSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkSampledImageStencilSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkStorageImageSampleCounts:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkSampleCountFlags [$sel:vkMaxSampleMaskWords:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkTimestampComputeAndGraphics:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32 [$sel:vkTimestampPeriod:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat [$sel:vkMaxClipDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxCullDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkMaxCombinedClipAndCullDistances:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkDiscreteQueuePriorities:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Word32 [$sel:vkPointSizeRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat [$sel:vkLineWidthRange:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> Vector 2 CFloat [$sel:vkPointSizeGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat [$sel:vkLineWidthGranularity:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> CFloat [$sel:vkStrictLines:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32 [$sel:vkStandardSampleLocations:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkBool32 [$sel:vkOptimalBufferCopyOffsetAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize [$sel:vkOptimalBufferCopyRowPitchAlignment:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize [$sel:vkNonCoherentAtomSize:VkPhysicalDeviceLimits] :: VkPhysicalDeviceLimits -> VkDeviceSize -- | VkQueueFlags - Bitmask of VkQueueFlagBits -- --

Description

-- -- VkQueueFlags is a bitmask type for setting a mask of zero or -- more VkQueueFlagBits. -- --

See Also

-- -- VkQueueFamilyProperties, VkQueueFlagBits type VkQueueFlags = VkQueueFlagBits -- | VkMemoryPropertyFlags - Bitmask of VkMemoryPropertyFlagBits -- --

Description

-- -- VkMemoryPropertyFlags is a bitmask type for setting a mask of -- zero or more VkMemoryPropertyFlagBits. -- --

See Also

-- -- VkMemoryPropertyFlagBits, VkMemoryType type VkMemoryPropertyFlags = VkMemoryPropertyFlagBits -- | VkMemoryHeapFlags - Bitmask of VkMemoryHeapFlagBits -- --

Description

-- -- VkMemoryHeapFlags is a bitmask type for setting a mask of -- zero or more VkMemoryHeapFlagBits. -- --

See Also

-- -- VkMemoryHeap, VkMemoryHeapFlagBits type VkMemoryHeapFlags = VkMemoryHeapFlagBits -- | VkImageUsageFlags - Bitmask of VkImageUsageFlagBits -- --

Description

-- -- VkImageUsageFlags is a bitmask type for setting a mask of -- zero or more VkImageUsageFlagBits. -- --

See Also

-- -- VkImageCreateInfo, VkImageUsageFlagBits, -- VkImageViewUsageCreateInfo, -- VkPhysicalDeviceImageFormatInfo2, -- VkPhysicalDeviceSparseImageFormatInfo2, -- VkSharedPresentSurfaceCapabilitiesKHR, -- VkSurfaceCapabilities2EXT, VkSurfaceCapabilitiesKHR, -- VkSwapchainCreateInfoKHR, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV, -- vkGetPhysicalDeviceImageFormatProperties, -- vkGetPhysicalDeviceSparseImageFormatProperties type VkImageUsageFlags = VkImageUsageFlagBits -- | VkImageCreateFlags - Bitmask of VkImageCreateFlagBits -- --

Description

-- -- VkImageCreateFlags is a bitmask type for setting a mask of -- zero or more VkImageCreateFlagBits. -- --

See Also

-- -- VkImageCreateFlagBits, VkImageCreateInfo, -- VkPhysicalDeviceImageFormatInfo2, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV, -- vkGetPhysicalDeviceImageFormatProperties type VkImageCreateFlags = VkImageCreateFlagBits -- | VkFormatFeatureFlags - Bitmask of VkFormatFeatureFlagBits -- --

Description

-- -- VkFormatFeatureFlags is a bitmask type for setting a mask of -- zero or more VkFormatFeatureFlagBits. -- --

See Also

-- -- VkAndroidHardwareBufferFormatPropertiesANDROID, -- VkFormatFeatureFlagBits, VkFormatProperties type VkFormatFeatureFlags = VkFormatFeatureFlagBits -- | VkSampleCountFlags - Bitmask of VkSampleCountFlagBits -- --

Description

-- -- VkSampleCountFlags is a bitmask type for setting a mask of -- zero or more VkSampleCountFlagBits. -- --

See Also

-- -- VkImageFormatProperties, VkPhysicalDeviceLimits, -- VkPhysicalDeviceSampleLocationsPropertiesEXT, -- VkSampleCountFlagBits type VkSampleCountFlags = VkSampleCountFlagBits -- | VkDeviceSize - Vulkan device memory size and offsets -- --

Description

-- --

See Also

-- -- VkAndroidHardwareBufferPropertiesANDROID, -- VkBindBufferMemoryInfo, VkBindImageMemoryInfo, -- VkBufferCopy, VkBufferCreateInfo, -- VkBufferImageCopy, VkBufferMemoryBarrier, -- VkBufferViewCreateInfo, VkCmdProcessCommandsInfoNVX, -- VkDescriptorBufferInfo, VkImageFormatProperties, -- VkIndirectCommandsTokenNVX, VkMappedMemoryRange, -- VkMemoryAllocateInfo, VkMemoryHeap, -- VkMemoryRequirements, -- VkPhysicalDeviceExternalMemoryHostPropertiesEXT, -- VkPhysicalDeviceLimits, -- VkPhysicalDeviceMaintenance3Properties, -- VkSparseImageMemoryBind, -- VkSparseImageMemoryRequirements, VkSparseMemoryBind, -- VkSubresourceLayout, vkBindBufferMemory, -- vkBindImageMemory, vkCmdBindIndexBuffer, -- vkCmdBindVertexBuffers, vkCmdCopyQueryPoolResults, -- vkCmdDispatchIndirect, vkCmdDrawIndexedIndirect, -- vkCmdDrawIndexedIndirectCountAMD, vkCmdDrawIndirect, -- vkCmdDrawIndirectCountAMD, vkCmdFillBuffer, -- vkCmdUpdateBuffer, vkCmdWriteBufferMarkerAMD, -- vkGetDeviceMemoryCommitment, vkGetQueryPoolResults, -- vkMapMemory type VkDeviceSize = Word64 instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeap instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeap instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceProperties instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkFormatProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkFormatProperties instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryType instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryType instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceSparseProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceSparseProperties instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageType instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkImageType instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling instance GHC.Classes.Ord Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling instance GHC.Classes.Eq Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeap instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceLimits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkFormatProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceSparseProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkAllocationCallbacks instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkApplicationInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DeviceInitialization.VkExtent3D instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkFormatFeatureFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryHeapFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkMemoryPropertyFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkInstanceCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkInternalAllocationType instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkSystemAllocationScope instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceType instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageType instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkImageType instance GHC.Show.Show Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling instance GHC.Read.Read Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling module Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities -- | VkExternalMemoryHandleTypeFlagBitsNV - Bitmask specifying external -- memory handle types -- --

See Also

-- -- VkExternalMemoryHandleTypeFlagsNV newtype VkExternalMemoryHandleTypeFlagBitsNV VkExternalMemoryHandleTypeFlagBitsNV :: VkFlags -> VkExternalMemoryHandleTypeFlagBitsNV -- | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV specifies -- a handle to memory returned by vkGetMemoryWin32HandleNV, or one -- duplicated from such a handle using DuplicateHandle(). -- | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV -- specifies a handle to memory returned by -- vkGetMemoryWin32HandleNV. -- | 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(). -- | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV -- specifies a handle to memory returned by -- IDXGIResource::GetSharedHandle(). -- | VkExternalMemoryFeatureFlagBitsNV - Bitmask specifying external memory -- features -- --

See Also

-- -- VkExternalImageFormatPropertiesNV, -- VkExternalMemoryFeatureFlagsNV, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV newtype VkExternalMemoryFeatureFlagBitsNV VkExternalMemoryFeatureFlagBitsNV :: VkFlags -> VkExternalMemoryFeatureFlagBitsNV -- | 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. -- | VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV specifies that -- the implementation supports exporting handles of the specified type. -- | VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV specifies that -- the implementation supports importing handles of the specified type. -- | vkGetPhysicalDeviceExternalImageFormatPropertiesNV - determine image -- capabilities compatible with external memory handle types -- --

Parameters

-- -- -- -- -- --

Description

-- -- If externalHandleType is 0, -- pExternalImageFormatProperties::imageFormatProperties will -- return the same values as a call to -- vkGetPhysicalDeviceImageFormatProperties, and the other members -- of pExternalImageFormatProperties will all be 0. Otherwise, -- they are filled in as described for -- VkExternalImageFormatPropertiesNV. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkExternalImageFormatPropertiesNV, -- VkExternalMemoryHandleTypeFlagsNV, VkFormat, -- VkImageCreateFlags, VkImageTiling, VkImageType, -- VkImageUsageFlags, VkPhysicalDevice 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

-- --

See Also

-- -- VkExternalMemoryFeatureFlagsNV, -- VkExternalMemoryHandleTypeFlagsNV, -- VkImageFormatProperties, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV data VkExternalImageFormatPropertiesNV VkExternalImageFormatPropertiesNV :: VkImageFormatProperties -> VkExternalMemoryFeatureFlagsNV -> VkExternalMemoryHandleTypeFlagsNV -> VkExternalMemoryHandleTypeFlagsNV -> VkExternalImageFormatPropertiesNV -- | imageFormatProperties will be filled in as when calling -- vkGetPhysicalDeviceImageFormatProperties, but the values -- returned may vary depending on the external handle type -- requested. [$sel:vkImageFormatProperties:VkExternalImageFormatPropertiesNV] :: VkExternalImageFormatPropertiesNV -> VkImageFormatProperties -- | externalMemoryFeatures is a bitmask of -- VkExternalMemoryFeatureFlagBitsNV, indicating properties of the -- external memory handle type -- (vkGetPhysicalDeviceExternalImageFormatPropertiesNV::externalHandleType) -- being queried, or 0 if the external memory handle type is 0. [$sel:vkExternalMemoryFeatures:VkExternalImageFormatPropertiesNV] :: VkExternalImageFormatPropertiesNV -> VkExternalMemoryFeatureFlagsNV -- | exportFromImportedHandleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBitsNV containing a bit set for -- every external handle type that may be used to create memory -- from which the handles of the type specified in -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV::externalHandleType -- can be exported, or 0 if the external memory handle type is 0. [$sel:vkExportFromImportedHandleTypes:VkExternalImageFormatPropertiesNV] :: VkExternalImageFormatPropertiesNV -> VkExternalMemoryHandleTypeFlagsNV -- | compatibleHandleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBitsNV containing a bit set for -- every external handle type that may be specified simultaneously -- with the handle type specified by -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV::externalHandleType -- when calling vkAllocateMemory, or 0 if the external memory -- handle type is 0. compatibleHandleTypes will always contain -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV::externalHandleType [$sel:vkCompatibleHandleTypes:VkExternalImageFormatPropertiesNV] :: VkExternalImageFormatPropertiesNV -> VkExternalMemoryHandleTypeFlagsNV -- | VkExternalMemoryHandleTypeFlagsNV - Bitmask of -- VkExternalMemoryHandleTypeFlagBitsNV -- --

Description

-- -- VkExternalMemoryHandleTypeFlagsNV is a bitmask type for -- setting a mask of zero or more -- VkExternalMemoryHandleTypeFlagBitsNV. -- --

See Also

-- -- VkExportMemoryAllocateInfoNV, -- VkExternalImageFormatPropertiesNV, -- VkExternalMemoryHandleTypeFlagBitsNV, -- VkExternalMemoryImageCreateInfoNV, -- VkImportMemoryWin32HandleInfoNV, -- vkGetMemoryWin32HandleNV, -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV type VkExternalMemoryHandleTypeFlagsNV = VkExternalMemoryHandleTypeFlagBitsNV -- | VkExternalMemoryFeatureFlagsNV - Bitmask of -- VkExternalMemoryFeatureFlagBitsNV -- --

Description

-- -- VkExternalMemoryFeatureFlagsNV is a bitmask type for setting -- a mask of zero or more VkExternalMemoryFeatureFlagBitsNV. -- --

See Also

-- -- VkExternalImageFormatPropertiesNV, -- VkExternalMemoryFeatureFlagBitsNV type VkExternalMemoryFeatureFlagsNV = VkExternalMemoryFeatureFlagBitsNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalImageFormatPropertiesNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalImageFormatPropertiesNV instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalImageFormatPropertiesNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryFeatureFlagBitsNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NV_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBitsNV module Graphics.Vulkan.Extensions.VK_NV_external_memory -- | VkExternalMemoryImageCreateInfoNV - Specify that an image may be -- backed by external memory -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryHandleTypeFlagsNV, VkStructureType data VkExternalMemoryImageCreateInfoNV VkExternalMemoryImageCreateInfoNV :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagsNV -> VkExternalMemoryImageCreateInfoNV -- | sType is the type of this structure. [$sel:vkSType:VkExternalMemoryImageCreateInfoNV] :: VkExternalMemoryImageCreateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExternalMemoryImageCreateInfoNV] :: VkExternalMemoryImageCreateInfoNV -> Ptr () -- | handleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBitsNV specifying one or more -- external memory handle types. [$sel:vkHandleTypes:VkExternalMemoryImageCreateInfoNV] :: VkExternalMemoryImageCreateInfoNV -> VkExternalMemoryHandleTypeFlagsNV -- | VkExportMemoryAllocateInfoNV - Specify memory handle types that may be -- exported -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryHandleTypeFlagsNV, VkStructureType data VkExportMemoryAllocateInfoNV VkExportMemoryAllocateInfoNV :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagsNV -> VkExportMemoryAllocateInfoNV -- | sType is the type of this structure. [$sel:vkSType:VkExportMemoryAllocateInfoNV] :: VkExportMemoryAllocateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExportMemoryAllocateInfoNV] :: VkExportMemoryAllocateInfoNV -> Ptr () -- | handleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBitsNV specifying one or more -- memory handle types that may be exported. Multiple handle types -- may be requested for the same allocation as long as they are -- compatible, as reported by -- vkGetPhysicalDeviceExternalImageFormatPropertiesNV. [$sel:vkHandleTypes:VkExportMemoryAllocateInfoNV] :: VkExportMemoryAllocateInfoNV -> VkExternalMemoryHandleTypeFlagsNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExportMemoryAllocateInfoNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_external_memory.VkExternalMemoryImageCreateInfoNV module Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax -- | VkSamplerReductionModeEXT - Specify reduction mode for texture -- filtering -- --

See Also

-- -- VkSamplerReductionModeCreateInfoEXT newtype VkSamplerReductionModeEXT VkSamplerReductionModeEXT :: Int32 -> VkSamplerReductionModeEXT -- | 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 the image operations -- chapter. -- | 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. -- | 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. -- | VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT - Structure -- describing sampler filter minmax limits that can be supported by an -- implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT structure -- describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- -- If the VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -- structure is included in the pNext chain of -- 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. -- -- -- -- 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)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT [$sel:vkSType:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT] :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT] :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -> Ptr () [$sel:vkFilterMinmaxSingleComponentFormats:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT] :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -> VkBool32 [$sel:vkFilterMinmaxImageComponentMapping:VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT] :: VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT -> VkBool32 -- | VkSamplerReductionModeCreateInfoEXT - Structure specifying sampler -- reduction mode -- --

Description

-- -- If this structure is not present, reductionMode is considered -- to be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkSamplerReductionModeEXT, VkStructureType data VkSamplerReductionModeCreateInfoEXT VkSamplerReductionModeCreateInfoEXT :: VkStructureType -> Ptr () -> VkSamplerReductionModeEXT -> VkSamplerReductionModeCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkSamplerReductionModeCreateInfoEXT] :: VkSamplerReductionModeCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSamplerReductionModeCreateInfoEXT] :: VkSamplerReductionModeCreateInfoEXT -> Ptr () -- | reductionMode is an enum of type -- VkSamplerReductionModeEXT that controls how texture filtering -- combines texel values. [$sel:vkReductionMode:VkSamplerReductionModeCreateInfoEXT] :: VkSamplerReductionModeCreateInfoEXT -> VkSamplerReductionModeEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkSamplerReductionModeEXT module Graphics.Vulkan.Extensions.VK_EXT_debug_report -- | VkDebugReportObjectTypeEXT - Specify the type of an object handle -- --

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_SURFACE_KHR | 'Graphics.Vulkan.Extensio |
--   | _EXT@                                    | ns.VK_KHR_surface.VkSurfa |
--   |                                          | ceKHR'                    |
--   +------------------------------------------+---------------------------+
--   | @VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_K | 'Graphics.Vulkan.Extensio |
--   | HR_EXT@                                  | ns.VK_KHR_swapchain.VkSwa |
--   |                                          | pchainKHR'                |
--   +------------------------------------------+---------------------------+
--   | @VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPOR | 'VkDebugReportCallbackEXT |
--   | T_CALLBACK_EXT_EXT@                      | '                         |
--   +------------------------------------------+---------------------------+
--   | @VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR | 'Graphics.Vulkan.Extensio |
--   | _EXT@                                    | ns.VK_KHR_display.VkDispl |
--   |                                          | ayKHR'                    |
--   +------------------------------------------+---------------------------+
--   | @VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MOD | 'Graphics.Vulkan.Extensio |
--   | E_KHR_EXT@                               | ns.VK_KHR_display.VkDispl |
--   |                                          | ayModeKHR'                |
--   +------------------------------------------+---------------------------+
--   | @VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABL | 'Graphics.Vulkan.Extensio |
--   | E_NVX_EXT@                               | ns.VK_NVX_device_generate |
--   |                                          | d_commands.VkObjectTableN |
--   |                                          | VX'                       |
--   +------------------------------------------+---------------------------+
--   | @VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_CO | 'Graphics.Vulkan.Extensio |
--   | MMANDS_LAYOUT_NVX_EXT@                   | ns.VK_NVX_device_generate |
--   |                                          | d_commands.VkIndirectComm |
--   |                                          | andsLayoutNVX'            |
--   +------------------------------------------+---------------------------+
--   | @VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_ | 'Graphics.Vulkan.Core11.P |
--   | UPDATE_TEMPLATE_KHR_EXT@                 | romoted_from_VK_KHR_descr |
--   |                                          | iptor_update_template.VkD |
--   |                                          | escriptorUpdateTemplate'  |
--   +------------------------------------------+---------------------------+
--   
--   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

-- -- VkDebugMarkerObjectNameInfoEXT, -- VkDebugMarkerObjectTagInfoEXT, vkDebugReportMessageEXT newtype VkDebugReportObjectTypeEXT VkDebugReportObjectTypeEXT :: Int32 -> VkDebugReportObjectTypeEXT -- | VkDebugReportFlagBitsEXT - Bitmask specifying events which cause a -- debug report callback -- --

See Also

-- -- VkDebugReportFlagsEXT newtype VkDebugReportFlagBitsEXT VkDebugReportFlagBitsEXT :: VkFlags -> VkDebugReportFlagBitsEXT -- | VK_DEBUG_REPORT_INFORMATION_BIT_EXT specifies an -- informational message such as resource details that may be handy when -- debugging an application. -- | 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. -- | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT specifies a -- potentially non-optimal use of Vulkan, e.g. using -- vkCmdClearColorImage when setting -- VkAttachmentDescription::loadOp to -- VK_ATTACHMENT_LOAD_OP_CLEAR would have worked. -- | VK_DEBUG_REPORT_ERROR_BIT_EXT specifies that an error that -- may cause undefined results, including an application crash. -- | VK_DEBUG_REPORT_DEBUG_BIT_EXT specifies diagnostic -- information from the implementation and layers. -- | PFN_vkDebugReportCallbackEXT - Application-defined debug report -- callback function -- --

Parameters

-- -- -- -- -- --

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. -- --

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) -- | VkDebugReportCallbackEXT - Opaque handle to a debug report callback -- object -- --

Description

-- --

See Also

-- -- vkCreateDebugReportCallbackEXT, -- vkDestroyDebugReportCallbackEXT type VkDebugReportCallbackEXT = Ptr VkDebugReportCallbackEXT_T -- | vkCreateDebugReportCallbackEXT - Create a debug report callback object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, -- VkDebugReportCallbackCreateInfoEXT, -- VkDebugReportCallbackEXT, VkInstance vkCreateDebugReportCallbackEXT :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pCallback" ::: Ptr VkDebugReportCallbackEXT) -> IO VkResult -- | vkDestroyDebugReportCallbackEXT - Destroy a debug report callback -- object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDebugReportCallbackEXT, -- VkInstance vkDestroyDebugReportCallbackEXT :: ("instance" ::: VkInstance) -> ("callback" ::: VkDebugReportCallbackEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkDebugReportMessageEXT - Inject a message into a debug stream -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, -- VkInstance 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

-- -- 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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- PFN_vkDebugReportCallbackEXT, VkDebugReportFlagsEXT, -- VkStructureType, vkCreateDebugReportCallbackEXT data VkDebugReportCallbackCreateInfoEXT VkDebugReportCallbackCreateInfoEXT :: VkStructureType -> Ptr () -> VkDebugReportFlagsEXT -> PFN_vkDebugReportCallbackEXT -> Ptr () -> VkDebugReportCallbackCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> Ptr () -- | flags is a bitmask of VkDebugReportFlagBitsEXT -- specifying which event(s) will cause this callback to be called. [$sel:vkFlags:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> VkDebugReportFlagsEXT -- | pfnCallback is the application callback function to call. [$sel:vkPfnCallback:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> PFN_vkDebugReportCallbackEXT -- | pUserData is user data to be passed to the callback. [$sel:vkPUserData:VkDebugReportCallbackCreateInfoEXT] :: VkDebugReportCallbackCreateInfoEXT -> Ptr () -- | VkDebugReportFlagsEXT - Bitmask of VkDebugReportFlagBitsEXT -- --

Description

-- -- VkDebugReportFlagsEXT is a bitmask type for setting a mask of -- zero or more VkDebugReportFlagBitsEXT. -- --

See Also

-- -- VkDebugReportCallbackCreateInfoEXT, -- VkDebugReportFlagBitsEXT, vkDebugReportMessageEXT type VkDebugReportFlagsEXT = VkDebugReportFlagBitsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportCallbackCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportCallbackCreateInfoEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportCallbackCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportFlagBitsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_report.VkDebugReportObjectTypeEXT module Graphics.Vulkan.Extensions.VK_EXT_validation_cache -- | VkValidationCacheHeaderVersionEXT - Encode validation cache version -- --

See Also

-- -- UNKNOWN:vkCreateValdiationCacheEXT, vkGetValidationCacheDataEXT newtype VkValidationCacheHeaderVersionEXT VkValidationCacheHeaderVersionEXT :: Int32 -> VkValidationCacheHeaderVersionEXT -- | VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT specifies version -- one of the validation cache. -- | VkValidationCacheCreateFlagsEXT - Reserved for future use -- --

Description

-- -- VkValidationCacheCreateFlagsEXT is a bitmask type for setting -- a mask, but is currently reserved for future use. -- --

See Also

-- -- VkValidationCacheCreateInfoEXT newtype VkValidationCacheCreateFlagsEXT VkValidationCacheCreateFlagsEXT :: VkFlags -> VkValidationCacheCreateFlagsEXT -- | VkValidationCacheEXT - Opaque handle to a validation cache object -- --

Description

-- --

See Also

-- -- VkShaderModuleValidationCacheCreateInfoEXT, -- vkCreateValidationCacheEXT, vkDestroyValidationCacheEXT, -- vkGetValidationCacheDataEXT, vkMergeValidationCachesEXT type VkValidationCacheEXT = Ptr VkValidationCacheEXT_T -- | vkCreateValidationCacheEXT - Creates a new validation cache -- --

Parameters

-- -- -- -- -- --

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 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkValidationCacheCreateInfoEXT, VkValidationCacheEXT vkCreateValidationCacheEXT :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkValidationCacheCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pValidationCache" ::: Ptr VkValidationCacheEXT) -> IO VkResult -- | vkDestroyValidationCacheEXT - Destroy a validation cache object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkValidationCacheEXT vkDestroyValidationCacheEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkGetValidationCacheDataEXT - Get the data store from a validation -- cache -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkValidationCacheEXT vkGetValidationCacheDataEXT :: ("device" ::: VkDevice) -> ("validationCache" ::: VkValidationCacheEXT) -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO VkResult -- | vkMergeValidationCachesEXT - Combine the data stores of validation -- caches -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkValidationCacheEXT vkMergeValidationCachesEXT :: ("device" ::: VkDevice) -> ("dstCache" ::: VkValidationCacheEXT) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr VkValidationCacheEXT) -> IO VkResult -- | VkValidationCacheCreateInfoEXT - Structure specifying parameters of a -- newly created validation cache -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkValidationCacheCreateFlagsEXT, -- vkCreateValidationCacheEXT data VkValidationCacheCreateInfoEXT VkValidationCacheCreateInfoEXT :: VkStructureType -> Ptr () -> VkValidationCacheCreateFlagsEXT -> CSize -> Ptr () -> VkValidationCacheCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> VkValidationCacheCreateFlagsEXT -- | initialDataSize is the number of bytes in -- pInitialData. If initialDataSize is zero, the -- validation cache will initially be empty. [$sel:vkInitialDataSize:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> CSize -- | pInitialData is a pointer to previously retrieved validation -- cache data. If the validation cache data is incompatible (as defined -- below) with the device, the validation cache will be initially empty. -- If initialDataSize is zero, pInitialData is ignored. [$sel:vkPInitialData:VkValidationCacheCreateInfoEXT] :: VkValidationCacheCreateInfoEXT -> Ptr () -- | VkShaderModuleValidationCacheCreateInfoEXT - Specify validation cache -- to use during shader module creation -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkValidationCacheEXT data VkShaderModuleValidationCacheCreateInfoEXT VkShaderModuleValidationCacheCreateInfoEXT :: VkStructureType -> Ptr () -> VkValidationCacheEXT -> VkShaderModuleValidationCacheCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkShaderModuleValidationCacheCreateInfoEXT] :: VkShaderModuleValidationCacheCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkShaderModuleValidationCacheCreateInfoEXT] :: VkShaderModuleValidationCacheCreateInfoEXT -> Ptr () -- | validationCache is the validation cache object from which the -- results of prior validation attempts will be written, and to which new -- validation results for this VkShaderModule will be written (if not -- already present). [$sel:vkValidationCache:VkShaderModuleValidationCacheCreateInfoEXT] :: VkShaderModuleValidationCacheCreateInfoEXT -> VkValidationCacheEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkShaderModuleValidationCacheCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkShaderModuleValidationCacheCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateInfoEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkShaderModuleValidationCacheCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheCreateFlagsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_validation_cache.VkValidationCacheHeaderVersionEXT module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities -- | VkExternalSemaphoreHandleTypeFlagBits - Bitmask of valid external -- semaphore handle types -- --

Description

-- -- -- -- -- -- Note -- -- Handles of type VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT -- generated by the implementation may represent either Linux Sync Files -- or Android Fences at the implementation’s discretion. Applications -- should only use operations defined for both types of file -- descriptors, unless they know via means external to Vulkan the type of -- the file descriptor, or are prepared to deal with the system-defined -- operation failures resulting from using the wrong type. -- -- Some external semaphore handle types can only be shared within the -- same underlying physical device and/or the same driver version, as -- defined in the following table: -- --
--   +----------------------+----------------------+-----------------------+
--   | Handle type          | @VkPhysicalDeviceIDP | @VkPhysicalDeviceIDPr |
--   |                      | roperties@::@driverU | operties@::@deviceUUI |
--   |                      | UID@                 | D@                    |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_SEMAPHO | Must match           | Must match            |
--   | RE_HANDLE_TYPE_OPAQU |                      |                       |
--   | E_FD_BIT@            |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_SEMAPHO | Must match           | Must match            |
--   | RE_HANDLE_TYPE_OPAQU |                      |                       |
--   | E_WIN32_BIT@         |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_SEMAPHO | Must match           | Must match            |
--   | RE_HANDLE_TYPE_OPAQU |                      |                       |
--   | E_WIN32_KMT_BIT@     |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_SEMAPHO | Must match           | Must match            |
--   | RE_HANDLE_TYPE_D3D12 |                      |                       |
--   | _FENCE_BIT@          |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_SEMAPHO | No restriction       | No restriction        |
--   | RE_HANDLE_TYPE_SYNC_ |                      |                       |
--   | FD_BIT@              |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   
--   External semaphore handle types compatibility
--   
-- --

See Also

-- -- VkExternalSemaphoreHandleTypeFlags, -- VkImportSemaphoreFdInfoKHR, -- VkImportSemaphoreWin32HandleInfoKHR, -- VkPhysicalDeviceExternalSemaphoreInfo, -- VkSemaphoreGetFdInfoKHR, -- VkSemaphoreGetWin32HandleInfoKHR newtype VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBits :: VkFlags -> VkExternalSemaphoreHandleTypeFlagBits -- | VkExternalSemaphoreFeatureFlagBits - Bitfield describing features of -- an external semaphore handle type -- --

See Also

-- -- VkExternalSemaphoreFeatureFlags newtype VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBits :: VkFlags -> VkExternalSemaphoreFeatureFlagBits -- | VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT specifies that -- handles of this type can be exported from Vulkan semaphore -- objects. -- | VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT specifies that -- handles of this type can be imported as Vulkan semaphore -- objects. -- | vkGetPhysicalDeviceExternalSemaphoreProperties - Function for querying -- external semaphore handle capabilities. -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalSemaphoreProperties, VkPhysicalDevice, -- VkPhysicalDeviceExternalSemaphoreInfo vkGetPhysicalDeviceExternalSemaphoreProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalSemaphoreInfo" ::: Ptr VkPhysicalDeviceExternalSemaphoreInfo) -> ("pExternalSemaphoreProperties" ::: Ptr VkExternalSemaphoreProperties) -> IO () -- | VkPhysicalDeviceExternalSemaphoreInfo - Structure specifying semaphore -- creation parameters. -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalSemaphoreHandleTypeFlagBits, VkStructureType, -- vkGetPhysicalDeviceExternalSemaphoreProperties, -- vkGetPhysicalDeviceExternalSemaphorePropertiesKHR data VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfo :: VkStructureType -> Ptr () -> VkExternalSemaphoreHandleTypeFlagBits -> VkPhysicalDeviceExternalSemaphoreInfo -- | sType is the type of this structure [$sel:vkSType:VkPhysicalDeviceExternalSemaphoreInfo] :: VkPhysicalDeviceExternalSemaphoreInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceExternalSemaphoreInfo] :: VkPhysicalDeviceExternalSemaphoreInfo -> Ptr () -- | handleType is a VkExternalSemaphoreHandleTypeFlagBits -- value specifying the external semaphore handle type for which -- capabilities will be returned. [$sel:vkHandleType:VkPhysicalDeviceExternalSemaphoreInfo] :: VkPhysicalDeviceExternalSemaphoreInfo -> VkExternalSemaphoreHandleTypeFlagBits -- | VkExternalSemaphoreProperties - Structure describing supported -- external semaphore handle features -- --

Description

-- -- If handleType is not supported by the implementation, then -- VkExternalSemaphoreProperties::externalSemaphoreFeatures -- will be set to zero. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalSemaphoreFeatureFlags, -- VkExternalSemaphoreHandleTypeFlags, VkStructureType, -- vkGetPhysicalDeviceExternalSemaphoreProperties, -- vkGetPhysicalDeviceExternalSemaphorePropertiesKHR data VkExternalSemaphoreProperties VkExternalSemaphoreProperties :: VkStructureType -> Ptr () -> VkExternalSemaphoreHandleTypeFlags -> VkExternalSemaphoreHandleTypeFlags -> VkExternalSemaphoreFeatureFlags -> VkExternalSemaphoreProperties [$sel:vkSType:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> VkStructureType [$sel:vkPNext:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> Ptr () -- | exportFromImportedHandleTypes is a bitmask of -- VkExternalSemaphoreHandleTypeFlagBits specifying which types of -- imported handle handleType can be exported from. [$sel:vkExportFromImportedHandleTypes:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> VkExternalSemaphoreHandleTypeFlags -- | compatibleHandleTypes is a bitmask of -- VkExternalSemaphoreHandleTypeFlagBits specifying handle types -- which can be specified at the same time as handleType -- when creating a semaphore. [$sel:vkCompatibleHandleTypes:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> VkExternalSemaphoreHandleTypeFlags -- | externalSemaphoreFeatures is a bitmask of -- VkExternalSemaphoreFeatureFlagBits describing the features of -- handleType. [$sel:vkExternalSemaphoreFeatures:VkExternalSemaphoreProperties] :: VkExternalSemaphoreProperties -> VkExternalSemaphoreFeatureFlags -- | VkExternalSemaphoreHandleTypeFlags - Bitmask of -- VkExternalSemaphoreHandleTypeFlagBits -- --

Description

-- -- VkExternalSemaphoreHandleTypeFlags is a bitmask type for -- setting a mask of zero or more -- VkExternalSemaphoreHandleTypeFlagBits. -- --

See Also

-- -- VkExportSemaphoreCreateInfo, -- VkExternalSemaphoreHandleTypeFlagBits, -- VkExternalSemaphoreProperties type VkExternalSemaphoreHandleTypeFlags = VkExternalSemaphoreHandleTypeFlagBits -- | VkExternalSemaphoreFeatureFlags - Bitmask of -- VkExternalSemaphoreFeatureFlagBitsKHR -- --

Description

-- -- VkExternalSemaphoreFeatureFlags is a bitmask type for setting -- a mask of zero or more VkExternalSemaphoreFeatureFlagBits. -- --

See Also

-- -- VkExternalSemaphoreFeatureFlagBits, -- VkExternalSemaphoreProperties type VkExternalSemaphoreFeatureFlags = VkExternalSemaphoreFeatureFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkPhysicalDeviceExternalSemaphoreInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkPhysicalDeviceExternalSemaphoreInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkPhysicalDeviceExternalSemaphoreInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreFeatureFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore_capabilities.VkExternalSemaphoreHandleTypeFlagBits module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_capabilities vkGetPhysicalDeviceExternalSemaphorePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalSemaphoreInfo" ::: Ptr VkPhysicalDeviceExternalSemaphoreInfo) -> ("pExternalSemaphoreProperties" ::: Ptr VkExternalSemaphoreProperties) -> IO () type VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBits type VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBits type VkExternalSemaphoreHandleTypeFlagsKHR = VkExternalSemaphoreHandleTypeFlags type VkExternalSemaphoreFeatureFlagsKHR = VkExternalSemaphoreFeatureFlags type VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo type VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore -- | VkSemaphoreImportFlagBits - Bitmask specifying additional parameters -- of semaphore payload import -- --

Description

-- -- These bits have the following meanings: -- -- -- --

See Also

-- -- VkSemaphoreImportFlags newtype VkSemaphoreImportFlagBits VkSemaphoreImportFlagBits :: VkFlags -> VkSemaphoreImportFlagBits -- | VkExportSemaphoreCreateInfo - Structure specifying handle types that -- can be exported from a semaphore -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalSemaphoreHandleTypeFlags, VkStructureType data VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfo :: VkStructureType -> Ptr () -> VkExternalSemaphoreHandleTypeFlags -> VkExportSemaphoreCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkExportSemaphoreCreateInfo] :: VkExportSemaphoreCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExportSemaphoreCreateInfo] :: VkExportSemaphoreCreateInfo -> Ptr () -- | handleTypes is a bitmask of -- VkExternalSemaphoreHandleTypeFlagBits specifying one or more -- semaphore handle types the application can export from the -- resulting semaphore. The application can request multiple -- handle types for the same semaphore. [$sel:vkHandleTypes:VkExportSemaphoreCreateInfo] :: VkExportSemaphoreCreateInfo -> VkExternalSemaphoreHandleTypeFlags -- | VkSemaphoreImportFlags - Bitmask of VkSemaphoreImportFlagBits -- --

Description

-- -- VkSemaphoreImportFlags is a bitmask type for setting a mask -- of zero or more VkSemaphoreImportFlagBits. -- --

See Also

-- -- VkImportSemaphoreFdInfoKHR, -- VkImportSemaphoreWin32HandleInfoKHR, -- VkSemaphoreImportFlagBits type VkSemaphoreImportFlags = VkSemaphoreImportFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkExportSemaphoreCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_semaphore.VkSemaphoreImportFlagBits module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore type VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBits type VkSemaphoreImportFlagsKHR = VkSemaphoreImportFlags type VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities -- | VkExternalFenceHandleTypeFlagBits - Bitmask of valid external fence -- handle types -- --

Description

-- -- -- -- -- -- Some external fence handle types can only be shared within the same -- underlying physical device and/or the same driver version, as defined -- in the following table: -- --
--   +----------------------+----------------------+-----------------------+
--   | Handle type          | @VkPhysicalDeviceIDP | @VkPhysicalDeviceIDPr |
--   |                      | roperties@::@driverU | operties@::@deviceUUI |
--   |                      | UID@                 | D@                    |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_FENCE_H | Must match           | Must match            |
--   | ANDLE_TYPE_OPAQUE_FD |                      |                       |
--   | _BIT@                |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_FENCE_H | Must match           | Must match            |
--   | ANDLE_TYPE_OPAQUE_WI |                      |                       |
--   | N32_BIT@             |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_FENCE_H | Must match           | Must match            |
--   | ANDLE_TYPE_OPAQUE_WI |                      |                       |
--   | N32_KMT_BIT@         |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_FENCE_H | No restriction       | No restriction        |
--   | ANDLE_TYPE_SYNC_FD_B |                      |                       |
--   | IT@                  |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   
--   External fence handle types compatibility
--   
-- --

See Also

-- -- VkExternalFenceHandleTypeFlags, VkFenceGetFdInfoKHR, -- VkFenceGetWin32HandleInfoKHR, VkImportFenceFdInfoKHR, -- VkImportFenceWin32HandleInfoKHR, -- VkPhysicalDeviceExternalFenceInfo newtype VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBits :: VkFlags -> VkExternalFenceHandleTypeFlagBits -- | VkExternalFenceFeatureFlagBits - Bitfield describing features of an -- external fence handle type -- --

See Also

-- -- VkExternalFenceFeatureFlags newtype VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBits :: VkFlags -> VkExternalFenceFeatureFlagBits -- | VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT specifies handles of -- this type can be exported from Vulkan fence objects. -- | VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT specifies handles of -- this type can be imported to Vulkan fence objects. -- | vkGetPhysicalDeviceExternalFenceProperties - Function for querying -- external fence handle capabilities. -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalFenceProperties, VkPhysicalDevice, -- VkPhysicalDeviceExternalFenceInfo vkGetPhysicalDeviceExternalFenceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalFenceInfo" ::: Ptr VkPhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr VkExternalFenceProperties) -> IO () -- | VkPhysicalDeviceExternalFenceInfo - Structure specifying fence -- creation parameters. -- --

Description

-- -- Note -- -- Handles of type VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT -- generated by the implementation may represent either Linux Sync Files -- or Android Fences at the implementation’s discretion. Applications -- should only use operations defined for both types of file -- descriptors, unless they know via means external to Vulkan the type of -- the file descriptor, or are prepared to deal with the system-defined -- operation failures resulting from using the wrong type. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalFenceHandleTypeFlagBits, VkStructureType, -- vkGetPhysicalDeviceExternalFenceProperties, -- vkGetPhysicalDeviceExternalFencePropertiesKHR data VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfo :: VkStructureType -> Ptr () -> VkExternalFenceHandleTypeFlagBits -> VkPhysicalDeviceExternalFenceInfo -- | sType is the type of this structure [$sel:vkSType:VkPhysicalDeviceExternalFenceInfo] :: VkPhysicalDeviceExternalFenceInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceExternalFenceInfo] :: VkPhysicalDeviceExternalFenceInfo -> Ptr () -- | handleType is a VkExternalFenceHandleTypeFlagBits -- value indicating an external fence handle type for which capabilities -- will be returned. [$sel:vkHandleType:VkPhysicalDeviceExternalFenceInfo] :: VkPhysicalDeviceExternalFenceInfo -> VkExternalFenceHandleTypeFlagBits -- | VkExternalFenceProperties - Structure describing supported external -- fence handle features -- --

Description

-- -- If handleType is not supported by the implementation, then -- VkExternalFenceProperties::externalFenceFeatures will -- be set to zero. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalFenceFeatureFlags, -- VkExternalFenceHandleTypeFlags, VkStructureType, -- vkGetPhysicalDeviceExternalFenceProperties, -- vkGetPhysicalDeviceExternalFencePropertiesKHR data VkExternalFenceProperties VkExternalFenceProperties :: VkStructureType -> Ptr () -> VkExternalFenceHandleTypeFlags -> VkExternalFenceHandleTypeFlags -> VkExternalFenceFeatureFlags -> VkExternalFenceProperties [$sel:vkSType:VkExternalFenceProperties] :: VkExternalFenceProperties -> VkStructureType [$sel:vkPNext:VkExternalFenceProperties] :: VkExternalFenceProperties -> Ptr () -- | exportFromImportedHandleTypes is a bitmask of -- VkExternalFenceHandleTypeFlagBits indicating which types of -- imported handle handleType can be exported from. [$sel:vkExportFromImportedHandleTypes:VkExternalFenceProperties] :: VkExternalFenceProperties -> VkExternalFenceHandleTypeFlags -- | compatibleHandleTypes is a bitmask of -- VkExternalFenceHandleTypeFlagBits specifying handle types which -- can be specified at the same time as handleType when -- creating a fence. [$sel:vkCompatibleHandleTypes:VkExternalFenceProperties] :: VkExternalFenceProperties -> VkExternalFenceHandleTypeFlags -- | externalFenceFeatures is a bitmask of -- VkExternalFenceFeatureFlagBits indicating the features of -- handleType. [$sel:vkExternalFenceFeatures:VkExternalFenceProperties] :: VkExternalFenceProperties -> VkExternalFenceFeatureFlags -- | VkExternalFenceHandleTypeFlags - Bitmask of -- VkExternalFenceHandleTypeFlagBits -- --

Description

-- -- VkExternalFenceHandleTypeFlags is a bitmask type for setting -- a mask of zero or more VkExternalFenceHandleTypeFlagBits. -- --

See Also

-- -- VkExportFenceCreateInfo, -- VkExternalFenceHandleTypeFlagBits, -- VkExternalFenceProperties type VkExternalFenceHandleTypeFlags = VkExternalFenceHandleTypeFlagBits -- | VkExternalFenceFeatureFlags - Bitmask of -- VkExternalFenceFeatureFlagBits -- --

Description

-- -- VkExternalFenceFeatureFlags is a bitmask type for setting a -- mask of zero or more VkExternalFenceFeatureFlagBits. -- --

See Also

-- -- VkExternalFenceFeatureFlagBits, -- VkExternalFenceProperties type VkExternalFenceFeatureFlags = VkExternalFenceFeatureFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkPhysicalDeviceExternalFenceInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkPhysicalDeviceExternalFenceInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkPhysicalDeviceExternalFenceInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceFeatureFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence_capabilities.VkExternalFenceHandleTypeFlagBits module Graphics.Vulkan.Extensions.VK_KHR_external_fence_capabilities vkGetPhysicalDeviceExternalFencePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalFenceInfo" ::: Ptr VkPhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr VkExternalFenceProperties) -> IO () type VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBits type VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBits type VkExternalFenceHandleTypeFlagsKHR = VkExternalFenceHandleTypeFlags type VkExternalFenceFeatureFlagsKHR = VkExternalFenceFeatureFlags type VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo type VkExternalFencePropertiesKHR = VkExternalFenceProperties module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence -- | VkFenceImportFlagBits - Bitmask specifying additional parameters of -- fence payload import -- --

See Also

-- -- VkFenceImportFlags newtype VkFenceImportFlagBits VkFenceImportFlagBits :: VkFlags -> VkFenceImportFlagBits -- | VK_FENCE_IMPORT_TEMPORARY_BIT specifies that the fence -- payload will be imported only temporarily, as described in -- Importing Fence Payloads, regardless of the permanence of -- handleType. -- | VkExportFenceCreateInfo - Structure specifying handle types that can -- be exported from a fence -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalFenceHandleTypeFlags, VkStructureType data VkExportFenceCreateInfo VkExportFenceCreateInfo :: VkStructureType -> Ptr () -> VkExternalFenceHandleTypeFlags -> VkExportFenceCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkExportFenceCreateInfo] :: VkExportFenceCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExportFenceCreateInfo] :: VkExportFenceCreateInfo -> Ptr () -- | handleTypes is a bitmask of -- VkExternalFenceHandleTypeFlagBits specifying one or more fence -- handle types the application can export from the resulting -- fence. The application can request multiple handle types for -- the same fence. [$sel:vkHandleTypes:VkExportFenceCreateInfo] :: VkExportFenceCreateInfo -> VkExternalFenceHandleTypeFlags -- | VkFenceImportFlags - Bitmask of VkFenceImportFlagBits -- --

Description

-- -- VkFenceImportFlags is a bitmask type for setting a mask of -- zero or more VkFenceImportFlagBits. -- --

See Also

-- -- VkFenceImportFlagBits, VkImportFenceFdInfoKHR, -- VkImportFenceWin32HandleInfoKHR type VkFenceImportFlags = VkFenceImportFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkExportFenceCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_fence.VkFenceImportFlagBits module Graphics.Vulkan.Extensions.VK_KHR_external_fence type VkFenceImportFlagBitsKHR = VkFenceImportFlagBits type VkFenceImportFlagsKHR = VkFenceImportFlags type VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation -- | VK_MEMORY_HEAP_MULTI_INSTANCE_BIT specifies that in a logical -- device representing more than one physical device, there is a -- per-physical device instance of the heap memory. By default, an -- allocation from such a heap will be replicated to each physical -- device’s instance of the heap. type VK_MAX_DEVICE_GROUP_SIZE = 32 -- | vkEnumeratePhysicalDeviceGroups - Enumerates groups of physical -- devices that can be used to create a single logical device -- --

Parameters

-- -- -- -- -- --

Description

-- -- If pPhysicalDeviceGroupProperties is NULL, then the -- number of device groups available is returned in -- pPhysicalDeviceGroupCount. Otherwise, -- pPhysicalDeviceGroupCount must point to a variable set -- by the user to the number of elements in the -- pPhysicalDeviceGroupProperties array, and on return the -- variable is overwritten with the number of structures actually written -- to pPhysicalDeviceGroupProperties. If -- pPhysicalDeviceGroupCount is less than the number of device -- groups available, at most pPhysicalDeviceGroupCount -- structures will be written. If pPhysicalDeviceGroupCount is -- smaller than the number of device groups available, -- VK_INCOMPLETE will be returned instead of -- VK_SUCCESS, to indicate that not all the available device -- groups were returned. -- -- Every physical device must be in exactly one device group. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkInstance, VkPhysicalDeviceGroupProperties vkEnumeratePhysicalDeviceGroups :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceGroupCount" ::: Ptr Word32) -> ("pPhysicalDeviceGroupProperties" ::: Ptr VkPhysicalDeviceGroupProperties) -> IO VkResult -- | VkPhysicalDeviceGroupProperties - Structure specifying physical device -- group properties -- --

Description

-- --

See Also

-- -- VkBool32, VkPhysicalDevice, VkStructureType, -- vkEnumeratePhysicalDeviceGroups, -- vkEnumeratePhysicalDeviceGroupsKHR data VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupProperties :: VkStructureType -> Ptr () -> Word32 -> Vector VK_MAX_DEVICE_GROUP_SIZE VkPhysicalDevice -> VkBool32 -> VkPhysicalDeviceGroupProperties -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> Ptr () -- | physicalDeviceCount is the number of physical devices in the -- group. [$sel:vkPhysicalDeviceCount:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> Word32 -- | physicalDevices is an array of physical device handles -- representing all physical devices in the group. The first -- physicalDeviceCount elements of the array will be valid. [$sel:vkPhysicalDevices:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> Vector VK_MAX_DEVICE_GROUP_SIZE VkPhysicalDevice -- | subsetAllocation specifies whether logical devices created -- from the group support allocating device memory on a subset of -- devices, via the deviceMask member of the -- VkMemoryAllocateFlagsInfo. If this is VK_FALSE, then -- all device memory allocations are made across all physical devices in -- the group. If physicalDeviceCount is 1, then -- subsetAllocation must be VK_FALSE. [$sel:vkSubsetAllocation:VkPhysicalDeviceGroupProperties] :: VkPhysicalDeviceGroupProperties -> VkBool32 -- | VkDeviceGroupDeviceCreateInfo - Create a logical device from multiple -- physical devices -- --

Description

-- -- The elements of the pPhysicalDevices array are an ordered -- list of the physical devices that the logical device represents. These -- must be a subset of a single device group, and need not be in -- the same order as they were enumerated. The order of the physical -- devices in the pPhysicalDevices array determines the -- device index of each physical device, with element i being -- assigned a device index of i. Certain commands and structures refer to -- one or more physical devices by using device indices or device -- masks formed using device indices. -- -- A logical device created without using -- VkDeviceGroupDeviceCreateInfo, or with -- physicalDeviceCount equal to zero, is equivalent to a -- physicalDeviceCount of one and pPhysicalDevices -- pointing to the physicalDevice parameter to -- vkCreateDevice. In particular, the device index of that -- physical device is zero. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkStructureType data VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr VkPhysicalDevice -> VkDeviceGroupDeviceCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGroupDeviceCreateInfo] :: VkDeviceGroupDeviceCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGroupDeviceCreateInfo] :: VkDeviceGroupDeviceCreateInfo -> Ptr () -- | physicalDeviceCount is the number of elements in the -- pPhysicalDevices array. [$sel:vkPhysicalDeviceCount:VkDeviceGroupDeviceCreateInfo] :: VkDeviceGroupDeviceCreateInfo -> Word32 -- | pPhysicalDevices is an array of physical device handles -- belonging to the same device group. [$sel:vkPPhysicalDevices:VkDeviceGroupDeviceCreateInfo] :: VkDeviceGroupDeviceCreateInfo -> Ptr VkPhysicalDevice instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkDeviceGroupDeviceCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_creation.VkPhysicalDeviceGroupProperties module Graphics.Vulkan.Extensions.VK_KHR_device_group_creation vkEnumeratePhysicalDeviceGroupsKHR :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceGroupCount" ::: Ptr Word32) -> ("pPhysicalDeviceGroupProperties" ::: Ptr VkPhysicalDeviceGroupProperties) -> IO VkResult type VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties type VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo type VK_MAX_DEVICE_GROUP_SIZE_KHR = VK_MAX_DEVICE_GROUP_SIZE module Graphics.Vulkan.Core10.Shader -- | VkShaderModuleCreateFlags - Reserved for future use -- --

Description

-- -- VkShaderModuleCreateFlags is a bitmask type for setting a -- mask, but is currently reserved for future use. -- --

See Also

-- -- VkShaderModuleCreateInfo newtype VkShaderModuleCreateFlags VkShaderModuleCreateFlags :: VkFlags -> VkShaderModuleCreateFlags -- | VkShaderModule - Opaque handle to a shader module object -- --

Description

-- --

See Also

-- -- VkPipelineShaderStageCreateInfo, vkCreateShaderModule, -- vkDestroyShaderModule type VkShaderModule = Ptr VkShaderModule_T -- | vkCreateShaderModule - Creates a new shader module object -- --

Parameters

-- -- -- -- -- --

Description

-- -- Once a shader module has been created, any entry points it contains -- can be used in pipeline shader stages as described in -- Compute Pipelines and Graphics Pipelines. -- -- If the shader stage fails to compile -- VK_ERROR_INVALID_SHADER_NV will be generated and the compile -- log will be reported back to the application by -- {html_spec_relative}#VK_EXT_debug_report if enabled. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkShaderModule, -- VkShaderModuleCreateInfo vkCreateShaderModule :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkShaderModuleCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pShaderModule" ::: Ptr VkShaderModule) -> IO VkResult -- | vkDestroyShaderModule - Destroy a shader module module -- --

Parameters

-- -- -- -- -- --

Description

-- -- A shader module can be destroyed while pipelines created using -- its shaders are still in use. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkShaderModule vkDestroyShaderModule :: ("device" ::: VkDevice) -> ("shaderModule" ::: VkShaderModule) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkShaderModuleCreateInfo - Structure specifying parameters of a newly -- created shader module -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkShaderModuleCreateFlags, VkStructureType, -- vkCreateShaderModule data VkShaderModuleCreateInfo VkShaderModuleCreateInfo :: VkStructureType -> Ptr () -> VkShaderModuleCreateFlags -> CSize -> Ptr Word32 -> VkShaderModuleCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> VkShaderModuleCreateFlags -- | codeSize is the size, in bytes, of the code pointed to by -- pCode. [$sel:vkCodeSize:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> CSize -- | pCode points to code that is used to create the shader -- module. The type and format of the code is determined from the content -- of the memory addressed by pCode. [$sel:vkPCode:VkShaderModuleCreateInfo] :: VkShaderModuleCreateInfo -> Ptr Word32 instance GHC.Show.Show Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Shader.VkShaderModuleCreateFlags module Graphics.Vulkan.Core10.Queue -- | VkPipelineStageFlagBits - Bitmask specifying pipeline stages -- --

Description

-- -- -- -- -- -- 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

-- -- VkPipelineStageFlags, vkCmdWriteBufferMarkerAMD, -- vkCmdWriteTimestamp newtype VkPipelineStageFlagBits VkPipelineStageFlagBits :: VkFlags -> VkPipelineStageFlagBits -- | VkQueue - Opaque handle to a queue object -- --

Description

-- --

See Also

-- -- vkGetDeviceQueue, vkGetDeviceQueue2, -- vkQueueBeginDebugUtilsLabelEXT, vkQueueBindSparse, -- vkQueueEndDebugUtilsLabelEXT, -- vkQueueInsertDebugUtilsLabelEXT, vkQueuePresentKHR, -- vkQueueSubmit, vkQueueWaitIdle type VkQueue = Ptr VkQueue_T -- | VkCommandBuffer - Opaque handle to a command buffer object -- --

Description

-- --

See Also

-- -- VkCmdProcessCommandsInfoNVX, VkSubmitInfo, -- vkAllocateCommandBuffers, vkBeginCommandBuffer, -- vkCmdBeginDebugUtilsLabelEXT, vkCmdBeginQuery, -- vkCmdBeginRenderPass, vkCmdBindDescriptorSets, -- vkCmdBindIndexBuffer, vkCmdBindPipeline, -- vkCmdBindVertexBuffers, vkCmdBlitImage, -- vkCmdClearAttachments, vkCmdClearColorImage, -- vkCmdClearDepthStencilImage, vkCmdCopyBuffer, -- vkCmdCopyBufferToImage, vkCmdCopyImage, -- vkCmdCopyImageToBuffer, vkCmdCopyQueryPoolResults, -- vkCmdDebugMarkerBeginEXT, vkCmdDebugMarkerEndEXT, -- vkCmdDebugMarkerInsertEXT, vkCmdDispatch, -- vkCmdDispatchBase, vkCmdDispatchBaseKHR, -- vkCmdDispatchIndirect, vkCmdDraw, -- vkCmdDrawIndexed, vkCmdDrawIndexedIndirect, -- vkCmdDrawIndexedIndirectCountAMD, vkCmdDrawIndirect, -- vkCmdDrawIndirectCountAMD, vkCmdEndDebugUtilsLabelEXT, -- vkCmdEndQuery, vkCmdEndRenderPass, -- vkCmdExecuteCommands, vkCmdFillBuffer, -- vkCmdInsertDebugUtilsLabelEXT, vkCmdNextSubpass, -- vkCmdPipelineBarrier, vkCmdProcessCommandsNVX, -- vkCmdPushConstants, vkCmdPushDescriptorSetKHR, -- vkCmdPushDescriptorSetWithTemplateKHR, -- vkCmdReserveSpaceForCommandsNVX, vkCmdResetEvent, -- vkCmdResetQueryPool, vkCmdResolveImage, -- vkCmdSetBlendConstants, vkCmdSetDepthBias, -- vkCmdSetDepthBounds, vkCmdSetDeviceMask, -- vkCmdSetDeviceMaskKHR, vkCmdSetDiscardRectangleEXT, -- vkCmdSetEvent, vkCmdSetLineWidth, -- vkCmdSetSampleLocationsEXT, vkCmdSetScissor, -- vkCmdSetStencilCompareMask, vkCmdSetStencilReference, -- vkCmdSetStencilWriteMask, vkCmdSetViewport, -- vkCmdSetViewportWScalingNV, vkCmdUpdateBuffer, -- vkCmdWaitEvents, vkCmdWriteBufferMarkerAMD, -- vkCmdWriteTimestamp, vkEndCommandBuffer, -- vkFreeCommandBuffers, vkResetCommandBuffer type VkCommandBuffer = Ptr VkCommandBuffer_T -- | VkFence - Opaque handle to a fence object -- --

Description

-- --

See Also

-- -- VkAcquireNextImageInfoKHR, VkFenceGetFdInfoKHR, -- VkFenceGetWin32HandleInfoKHR, VkImportFenceFdInfoKHR, -- VkImportFenceWin32HandleInfoKHR, vkAcquireNextImageKHR, -- vkCreateFence, vkDestroyFence, vkGetFenceStatus, -- vkQueueBindSparse, vkQueueSubmit, -- vkRegisterDeviceEventEXT, vkRegisterDisplayEventEXT, -- vkResetFences, vkWaitForFences type VkFence = Ptr VkFence_T -- | VkSemaphore - Opaque handle to a semaphore object -- --

Description

-- --

See Also

-- -- VkAcquireNextImageInfoKHR, VkBindSparseInfo, -- VkImportSemaphoreFdInfoKHR, -- VkImportSemaphoreWin32HandleInfoKHR, VkPresentInfoKHR, -- VkSemaphoreGetFdInfoKHR, -- VkSemaphoreGetWin32HandleInfoKHR, VkSubmitInfo, -- vkAcquireNextImageKHR, vkCreateSemaphore, -- vkDestroySemaphore type VkSemaphore = Ptr VkSemaphore_T -- | vkGetDeviceQueue - Get a queue handle from a device -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkQueue vkGetDeviceQueue :: ("device" ::: VkDevice) -> ("queueFamilyIndex" ::: Word32) -> ("queueIndex" ::: Word32) -> ("pQueue" ::: Ptr VkQueue) -> IO () -- | vkQueueSubmit - Submits a sequence of semaphores or command buffers to -- a queue -- --

Parameters

-- -- -- -- -- --

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 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 semaphore and fence sections of the -- synchronization chapter. -- -- Details on the interaction of pWaitDstStageMask with -- synchronization are described in the semaphore wait operation -- section of the synchronization chapter. -- -- The order that batches appear in pSubmits is used to -- determine submission order, and thus all the implicit -- ordering guarantees that respect it. Other than these implicit -- ordering guarantees and any explicit synchronization -- primitives, these batches may overlap or otherwise execute -- out of order. -- -- If any command buffer submitted to this queue is in the executable -- state, it is moved to the pending state. Once execution of -- all submissions of a command buffer complete, it moves from the -- pending state, back to the 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 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 -- Lost Device. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- -- -- -- --

See Also

-- -- VkFence, VkQueue, VkSubmitInfo vkQueueSubmit :: ("queue" ::: VkQueue) -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr VkSubmitInfo) -> ("fence" ::: VkFence) -> IO VkResult -- | vkQueueWaitIdle - Wait for a queue to become idle -- --

Parameters

-- -- -- --

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)

-- -- -- --

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

-- -- -- -- -- --

See Also

-- -- VkQueue vkQueueWaitIdle :: ("queue" ::: VkQueue) -> IO VkResult -- | vkDeviceWaitIdle - Wait for a device to become idle -- --

Parameters

-- -- -- --

Description

-- -- vkDeviceWaitIdle is equivalent to calling -- vkQueueWaitIdle for all queues owned by device. -- --

Valid Usage (Implicit)

-- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice vkDeviceWaitIdle :: ("device" ::: VkDevice) -> IO VkResult -- | VkSubmitInfo - Structure specifying a queue submit operation -- --

Description

-- -- The order that command buffers appear in pCommandBuffers is -- used to determine submission order, and thus all the -- implicit ordering guarantees that respect it. Other than these -- implicit ordering guarantees and any explicit synchronization -- primitives, these command buffers may overlap or otherwise -- execute out of order. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkCommandBuffer, VkPipelineStageFlags, -- VkSemaphore, VkStructureType, vkQueueSubmit data VkSubmitInfo VkSubmitInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr VkSemaphore -> Ptr VkPipelineStageFlags -> Word32 -> Ptr VkCommandBuffer -> Word32 -> Ptr VkSemaphore -> VkSubmitInfo -- | sType is the type of this structure. [$sel:vkSType:VkSubmitInfo] :: VkSubmitInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSubmitInfo] :: VkSubmitInfo -> Ptr () -- | waitSemaphoreCount is the number of semaphores upon which to -- wait before executing the command buffers for the batch. [$sel:vkWaitSemaphoreCount:VkSubmitInfo] :: VkSubmitInfo -> Word32 -- | pWaitSemaphores is a pointer to an array of semaphores upon -- which to wait before the command buffers for this batch begin -- execution. If semaphores to wait on are provided, they define a -- semaphore wait operation. [$sel:vkPWaitSemaphores:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkSemaphore -- | pWaitDstStageMask is a pointer to an array of pipeline stages -- at which each corresponding semaphore wait will occur. [$sel:vkPWaitDstStageMask:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkPipelineStageFlags -- | commandBufferCount is the number of command buffers to -- execute in the batch. [$sel:vkCommandBufferCount:VkSubmitInfo] :: VkSubmitInfo -> Word32 -- | pCommandBuffers is a pointer to an array of command buffers -- to execute in the batch. [$sel:vkPCommandBuffers:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkCommandBuffer -- | signalSemaphoreCount is the number of semaphores to be -- signaled once the commands specified in pCommandBuffers have -- completed execution. [$sel:vkSignalSemaphoreCount:VkSubmitInfo] :: VkSubmitInfo -> Word32 -- | pSignalSemaphores is a pointer to an array of semaphores -- which will be signaled when the command buffers for this batch have -- completed execution. If semaphores to be signaled are provided, they -- define a semaphore signal operation. [$sel:vkPSignalSemaphores:VkSubmitInfo] :: VkSubmitInfo -> Ptr VkSemaphore -- | VkPipelineStageFlags - Bitmask of VkPipelineStageFlagBits -- --

Description

-- -- VkPipelineStageFlags is a bitmask type for setting a mask of -- zero or more VkPipelineStageFlagBits. -- --

See Also

-- -- VkPipelineStageFlagBits, VkSubmitInfo, -- VkSubpassDependency, vkCmdPipelineBarrier, -- vkCmdResetEvent, vkCmdSetEvent, vkCmdWaitEvents type VkPipelineStageFlags = VkPipelineStageFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Queue.VkSubmitInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Queue.VkSubmitInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Queue.VkSubmitInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Queue.VkPipelineStageFlagBits module Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd -- | vkGetSemaphoreFdKHR - Get a POSIX file descriptor handle for a -- semaphore -- --

Parameters

-- -- -- -- -- --

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 Importing Semaphore State. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkSemaphoreGetFdInfoKHR vkGetSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkSemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult -- | vkImportSemaphoreFdKHR - Import a semaphore from a POSIX file -- descriptor -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkImportSemaphoreFdInfoKHR vkImportSemaphoreFdKHR :: ("device" ::: VkDevice) -> ("pImportSemaphoreFdInfo" ::: Ptr VkImportSemaphoreFdInfoKHR) -> IO VkResult -- | VkImportSemaphoreFdInfoKHR - Structure specifying POSIX file -- descriptor to import to a semaphore -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkExternalSemaphoreHandleTypeFlagBits, VkSemaphore, -- VkSemaphoreImportFlags, VkStructureType, -- vkImportSemaphoreFdKHR data VkImportSemaphoreFdInfoKHR VkImportSemaphoreFdInfoKHR :: VkStructureType -> Ptr () -> VkSemaphore -> VkSemaphoreImportFlags -> VkExternalSemaphoreHandleTypeFlagBits -> CInt -> VkImportSemaphoreFdInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> Ptr () -- | semaphore is the semaphore into which the payload will be -- imported. [$sel:vkSemaphore:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> VkSemaphore -- | flags is a bitmask of VkSemaphoreImportFlagBits -- specifying additional parameters for the semaphore payload import -- operation. [$sel:vkFlags:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> VkSemaphoreImportFlags -- | handleType specifies the type of fd. [$sel:vkHandleType:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> VkExternalSemaphoreHandleTypeFlagBits -- | fd is the external handle to import. [$sel:vkFd:VkImportSemaphoreFdInfoKHR] :: VkImportSemaphoreFdInfoKHR -> CInt -- | VkSemaphoreGetFdInfoKHR - Structure describing a POSIX FD semaphore -- export operation -- --

Description

-- -- The properties of the file descriptor returned depend on the value of -- handleType. See VkExternalSemaphoreHandleTypeFlagBits -- for a description of the properties of the defined external semaphore -- handle types. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalSemaphoreHandleTypeFlagBits, VkSemaphore, -- VkStructureType, vkGetSemaphoreFdKHR data VkSemaphoreGetFdInfoKHR VkSemaphoreGetFdInfoKHR :: VkStructureType -> Ptr () -> VkSemaphore -> VkExternalSemaphoreHandleTypeFlagBits -> VkSemaphoreGetFdInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkSemaphoreGetFdInfoKHR] :: VkSemaphoreGetFdInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSemaphoreGetFdInfoKHR] :: VkSemaphoreGetFdInfoKHR -> Ptr () -- | semaphore is the semaphore from which state will be exported. [$sel:vkSemaphore:VkSemaphoreGetFdInfoKHR] :: VkSemaphoreGetFdInfoKHR -> VkSemaphore -- | handleType is the type of handle requested. [$sel:vkHandleType:VkSemaphoreGetFdInfoKHR] :: VkSemaphoreGetFdInfoKHR -> VkExternalSemaphoreHandleTypeFlagBits instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkSemaphoreGetFdInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkSemaphoreGetFdInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkImportSemaphoreFdInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkImportSemaphoreFdInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkSemaphoreGetFdInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_semaphore_fd.VkImportSemaphoreFdInfoKHR module Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd -- | vkGetFenceFdKHR - Get a POSIX file descriptor handle for a fence -- --

Parameters

-- -- -- -- -- --

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 Importing Fence State. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkFenceGetFdInfoKHR vkGetFenceFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkFenceGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult -- | vkImportFenceFdKHR - Import a fence from a POSIX file descriptor -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkImportFenceFdInfoKHR vkImportFenceFdKHR :: ("device" ::: VkDevice) -> ("pImportFenceFdInfo" ::: Ptr VkImportFenceFdInfoKHR) -> IO VkResult -- | VkImportFenceFdInfoKHR - (None) -- --

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

-- -- -- -- -- -- 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)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkExternalFenceHandleTypeFlagBits, VkFence, -- VkFenceImportFlags, VkStructureType, -- vkImportFenceFdKHR data VkImportFenceFdInfoKHR VkImportFenceFdInfoKHR :: VkStructureType -> Ptr () -> VkFence -> VkFenceImportFlags -> VkExternalFenceHandleTypeFlagBits -> CInt -> VkImportFenceFdInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> Ptr () -- | fence is the fence into which the payload will be imported. [$sel:vkFence:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> VkFence -- | flags is a bitmask of VkFenceImportFlagBits specifying -- additional parameters for the fence payload import operation. [$sel:vkFlags:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> VkFenceImportFlags -- | handleType specifies the type of fd. [$sel:vkHandleType:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> VkExternalFenceHandleTypeFlagBits -- | fd is the external handle to import. [$sel:vkFd:VkImportFenceFdInfoKHR] :: VkImportFenceFdInfoKHR -> CInt -- | VkFenceGetFdInfoKHR - Structure describing a POSIX FD fence export -- operation -- --

Description

-- -- The properties of the file descriptor returned depend on the value of -- handleType. See VkExternalFenceHandleTypeFlagBits for -- a description of the properties of the defined external fence handle -- types. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalFenceHandleTypeFlagBits, VkFence, -- VkStructureType, vkGetFenceFdKHR data VkFenceGetFdInfoKHR VkFenceGetFdInfoKHR :: VkStructureType -> Ptr () -> VkFence -> VkExternalFenceHandleTypeFlagBits -> VkFenceGetFdInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkFenceGetFdInfoKHR] :: VkFenceGetFdInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkFenceGetFdInfoKHR] :: VkFenceGetFdInfoKHR -> Ptr () -- | fence is the fence from which state will be exported. [$sel:vkFence:VkFenceGetFdInfoKHR] :: VkFenceGetFdInfoKHR -> VkFence -- | handleType is the type of handle requested. [$sel:vkHandleType:VkFenceGetFdInfoKHR] :: VkFenceGetFdInfoKHR -> VkExternalFenceHandleTypeFlagBits instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkFenceGetFdInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkFenceGetFdInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkImportFenceFdInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkImportFenceFdInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkFenceGetFdInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_fence_fd.VkImportFenceFdInfoKHR module Graphics.Vulkan.Extensions.VK_EXT_debug_utils -- | VkDebugUtilsMessageSeverityFlagBitsEXT - Bitmask specifying which -- severities of events cause a debug messenger callback -- --

See Also

-- -- VkDebugUtilsMessageSeverityFlagsEXT, -- vkSubmitDebugUtilsMessageEXT newtype VkDebugUtilsMessageSeverityFlagBitsEXT VkDebugUtilsMessageSeverityFlagBitsEXT :: VkFlags -> VkDebugUtilsMessageSeverityFlagBitsEXT -- | 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. -- | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT specifies an -- informational message such as resource details that may be handy when -- debugging an application. -- | 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. -- | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT specifies that -- an error that may cause undefined results, including an application -- crash. -- | VkDebugUtilsMessageTypeFlagBitsEXT - Bitmask specifying which types of -- events cause a debug messenger callback -- --

See Also

-- -- VkDebugUtilsMessageTypeFlagsEXT newtype VkDebugUtilsMessageTypeFlagBitsEXT VkDebugUtilsMessageTypeFlagBitsEXT :: VkFlags -> VkDebugUtilsMessageTypeFlagBitsEXT -- | VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT specifies that -- some general event has occurred. This is typically a -- non-specification, non-performance event. -- | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT specifies that -- something has occurred during validation against the Vulkan -- specification that may indicate invalid behavior. -- | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT specifies a -- potentially non-optimal use of Vulkan, e.g. using -- vkCmdClearColorImage when setting -- VkAttachmentDescription::loadOp to -- VK_ATTACHMENT_LOAD_OP_CLEAR would have worked. newtype VkDebugUtilsMessengerCreateFlagsEXT VkDebugUtilsMessengerCreateFlagsEXT :: VkFlags -> VkDebugUtilsMessengerCreateFlagsEXT newtype VkDebugUtilsMessengerCallbackDataFlagsEXT VkDebugUtilsMessengerCallbackDataFlagsEXT :: VkFlags -> VkDebugUtilsMessengerCallbackDataFlagsEXT -- | PFN_vkDebugUtilsMessengerCallbackEXT - Application-defined debug -- messenger callback function -- --

Parameters

-- -- -- -- -- --

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

-- -- VkDebugUtilsMessengerCreateInfoEXT type PFN_vkDebugUtilsMessengerCallbackEXT = Ptr (("messageSeverity" ::: VkDebugUtilsMessageSeverityFlagBitsEXT) -> ("messageType" ::: VkDebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr VkDebugUtilsMessengerCallbackDataEXT) -> ("pUserData" ::: Ptr ()) -> IO VkBool32) -- | VkDebugUtilsMessengerEXT - Opaque handle to a debug messenger object -- --

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

-- -- vkCreateDebugUtilsMessengerEXT, -- vkDestroyDebugUtilsMessengerEXT type VkDebugUtilsMessengerEXT = Ptr VkDebugUtilsMessengerEXT_T -- | vkSetDebugUtilsObjectNameEXT - Give a user-friendly name to an object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDebugUtilsObjectNameInfoEXT, VkDevice vkSetDebugUtilsObjectNameEXT :: ("device" ::: VkDevice) -> ("pNameInfo" ::: Ptr VkDebugUtilsObjectNameInfoEXT) -> IO VkResult -- | vkSetDebugUtilsObjectTagEXT - Attach arbitrary data to an object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDebugUtilsObjectTagInfoEXT, VkDevice vkSetDebugUtilsObjectTagEXT :: ("device" ::: VkDevice) -> ("pTagInfo" ::: Ptr VkDebugUtilsObjectTagInfoEXT) -> IO VkResult -- | vkQueueBeginDebugUtilsLabelEXT - Open a queue debug label region -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

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

-- -- VkDebugUtilsLabelEXT, VkQueue vkQueueBeginDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO () -- | vkQueueEndDebugUtilsLabelEXT - Close a queue debug label region -- --

Parameters

-- -- -- --

Description

-- -- The calls to vkQueueBeginDebugUtilsLabelEXT and -- vkQueueEndDebugUtilsLabelEXT must be matched and -- balanced. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

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

-- -- VkQueue vkQueueEndDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> IO () -- | vkQueueInsertDebugUtilsLabelEXT - Insert a label into a queue -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

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

-- -- VkDebugUtilsLabelEXT, VkQueue vkQueueInsertDebugUtilsLabelEXT :: ("queue" ::: VkQueue) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO () -- | vkCmdBeginDebugUtilsLabelEXT - Open a command buffer debug label -- region -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

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

-- -- VkCommandBuffer, VkDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO () -- | vkCmdEndDebugUtilsLabelEXT - Close a command buffer label region -- --

Parameters

-- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

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

-- -- VkCommandBuffer vkCmdEndDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> IO () -- | vkCmdInsertDebugUtilsLabelEXT - Insert a label into a command buffer -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

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

-- -- VkCommandBuffer, VkDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pLabelInfo" ::: Ptr VkDebugUtilsLabelEXT) -> IO () -- | vkCreateDebugUtilsMessengerEXT - Create a debug messenger object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, -- VkDebugUtilsMessengerCreateInfoEXT, -- VkDebugUtilsMessengerEXT, VkInstance vkCreateDebugUtilsMessengerEXT :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMessenger" ::: Ptr VkDebugUtilsMessengerEXT) -> IO VkResult -- | vkDestroyDebugUtilsMessengerEXT - Destroy a debug messenger object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDebugUtilsMessengerEXT, -- VkInstance vkDestroyDebugUtilsMessengerEXT :: ("instance" ::: VkInstance) -> ("messenger" ::: VkDebugUtilsMessengerEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkSubmitDebugUtilsMessageEXT - Inject a message into a debug stream -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

See Also

-- -- VkDebugUtilsMessageSeverityFlagBitsEXT, -- VkDebugUtilsMessageTypeFlagsEXT, -- VkDebugUtilsMessengerCallbackDataEXT, VkInstance vkSubmitDebugUtilsMessageEXT :: ("instance" ::: VkInstance) -> ("messageSeverity" ::: VkDebugUtilsMessageSeverityFlagBitsEXT) -> ("messageTypes" ::: VkDebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr VkDebugUtilsMessengerCallbackDataEXT) -> IO () -- | VkDebugUtilsObjectNameInfoEXT - Specify parameters of a name to give -- to an object -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDebugUtilsMessengerCallbackDataEXT, VkObjectType, -- VkStructureType, vkSetDebugUtilsObjectNameEXT data VkDebugUtilsObjectNameInfoEXT VkDebugUtilsObjectNameInfoEXT :: VkStructureType -> Ptr () -> VkObjectType -> Word64 -> Ptr CChar -> VkDebugUtilsObjectNameInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> Ptr () -- | objectType is a VkObjectType specifying the type of -- the object to be named. [$sel:vkObjectType:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> VkObjectType -- | objectHandle is the object to be named. [$sel:vkObjectHandle:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> Word64 -- | pObjectName is a null-terminated UTF-8 string specifying the -- name to apply to objectHandle. [$sel:vkPObjectName:VkDebugUtilsObjectNameInfoEXT] :: VkDebugUtilsObjectNameInfoEXT -> Ptr CChar -- | VkDebugUtilsObjectTagInfoEXT - Specify parameters of a tag to attach -- to an object -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkObjectType, VkStructureType, -- vkSetDebugUtilsObjectTagEXT data VkDebugUtilsObjectTagInfoEXT VkDebugUtilsObjectTagInfoEXT :: VkStructureType -> Ptr () -> VkObjectType -> Word64 -> Word64 -> CSize -> Ptr () -> VkDebugUtilsObjectTagInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> Ptr () -- | objectType is a VkObjectType specifying the type of -- the object to be named. [$sel:vkObjectType:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> VkObjectType -- | objectHandle is the object to be tagged. [$sel:vkObjectHandle:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> Word64 -- | tagName is a numerical identifier of the tag. [$sel:vkTagName:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> Word64 -- | tagSize is the number of bytes of data to attach to the -- object. [$sel:vkTagSize:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> CSize -- | pTag is an array of tagSize bytes containing the -- data to be associated with the object. [$sel:vkPTag:VkDebugUtilsObjectTagInfoEXT] :: VkDebugUtilsObjectTagInfoEXT -> Ptr () -- | VkDebugUtilsLabelEXT - Specify parameters of a label region -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDebugUtilsMessengerCallbackDataEXT, VkStructureType, -- vkCmdBeginDebugUtilsLabelEXT, -- vkCmdInsertDebugUtilsLabelEXT, -- vkQueueBeginDebugUtilsLabelEXT, -- vkQueueInsertDebugUtilsLabelEXT data VkDebugUtilsLabelEXT VkDebugUtilsLabelEXT :: VkStructureType -> Ptr () -> Ptr CChar -> Vector 4 CFloat -> VkDebugUtilsLabelEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugUtilsLabelEXT] :: VkDebugUtilsLabelEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugUtilsLabelEXT] :: VkDebugUtilsLabelEXT -> Ptr () -- | pLabelName is a pointer to a null-terminated UTF-8 string -- that contains the name of the label. [$sel:vkPLabelName:VkDebugUtilsLabelEXT] :: VkDebugUtilsLabelEXT -> Ptr CChar -- | color is an optional RGBA color value that can be associated -- with the label. A particular implementation may choose to -- ignore this color value. The values contain RGBA values in order, in -- the range 0.0 to 1.0. If all elements in color are set to 0.0 -- then it is ignored. [$sel:vkColor:VkDebugUtilsLabelEXT] :: VkDebugUtilsLabelEXT -> Vector 4 CFloat -- | VkDebugUtilsMessengerCreateInfoEXT - Structure specifying parameters -- of a newly created debug messenger -- --

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. --
  3. 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.
  4. --
  5. The callback will trigger a debug message for the current -- event
  6. --
-- -- 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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- PFN_vkDebugUtilsMessengerCallbackEXT, -- VkDebugUtilsMessageSeverityFlagsEXT, -- VkDebugUtilsMessageTypeFlagsEXT, -- VkDebugUtilsMessengerCreateFlagsEXT, VkStructureType, -- vkCreateDebugUtilsMessengerEXT data VkDebugUtilsMessengerCreateInfoEXT VkDebugUtilsMessengerCreateInfoEXT :: VkStructureType -> Ptr () -> VkDebugUtilsMessengerCreateFlagsEXT -> VkDebugUtilsMessageSeverityFlagsEXT -> VkDebugUtilsMessageTypeFlagsEXT -> PFN_vkDebugUtilsMessengerCallbackEXT -> Ptr () -> VkDebugUtilsMessengerCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> Ptr () -- | flags is 0 and reserved for future use. [$sel:vkFlags:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> VkDebugUtilsMessengerCreateFlagsEXT -- | messageSeverity is a bitmask of -- VkDebugUtilsMessageSeverityFlagBitsEXT specifying which -- severity of event(s) will cause this callback to be called. [$sel:vkMessageSeverity:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> VkDebugUtilsMessageSeverityFlagsEXT [$sel:vkMessageType:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> VkDebugUtilsMessageTypeFlagsEXT -- | pfnUserCallback is the application callback function to call. [$sel:vkPfnUserCallback:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> PFN_vkDebugUtilsMessengerCallbackEXT -- | pUserData is user data to be passed to the callback. [$sel:vkPUserData:VkDebugUtilsMessengerCreateInfoEXT] :: VkDebugUtilsMessengerCreateInfoEXT -> Ptr () -- | VkDebugUtilsMessengerCallbackDataEXT - Structure specifying parameters -- returned to the callback -- --

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)

-- -- -- -- -- --

See Also

-- -- VkDebugUtilsLabelEXT, -- VkDebugUtilsMessengerCallbackDataFlagsEXT, -- VkDebugUtilsObjectNameInfoEXT, VkStructureType, -- vkSubmitDebugUtilsMessageEXT data VkDebugUtilsMessengerCallbackDataEXT VkDebugUtilsMessengerCallbackDataEXT :: VkStructureType -> Ptr () -> VkDebugUtilsMessengerCallbackDataFlagsEXT -> Ptr CChar -> Int32 -> Ptr CChar -> Word32 -> Ptr VkDebugUtilsLabelEXT -> Word32 -> Ptr VkDebugUtilsLabelEXT -> Word32 -> Ptr VkDebugUtilsObjectNameInfoEXT -> VkDebugUtilsMessengerCallbackDataEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr () -- | flags is 0 and reserved for future use. [$sel:vkFlags:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> VkDebugUtilsMessengerCallbackDataFlagsEXT -- | pMessageIdName is a null-terminated string that identifies -- the the particular message ID that is associated with the provided -- message. If the message corresponds to a validation layer message, -- then this string may contain the portion of the Vulkan specification -- that is believed to have been violated. [$sel:vkPMessageIdName:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr CChar -- | messageIdNumber is the ID number of the triggering message. -- If the message corresponds to a validation layer message, then this -- number is related to the internal number associated with the message -- being triggered. [$sel:vkMessageIdNumber:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Int32 -- | pMessage is a null-terminated string detailing the trigger -- conditions. [$sel:vkPMessage:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr CChar -- | queueLabelCount is a count of items contained in the -- pQueueLabels array. [$sel:vkQueueLabelCount:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Word32 -- | pQueueLabels is NULL or a pointer to an array of -- VkDebugUtilsLabelEXT active in the current VkQueue at -- the time the callback was triggered. Refer to Queue Labels for -- more information. [$sel:vkPQueueLabels:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr VkDebugUtilsLabelEXT -- | cmdBufLabelCount is a count of items contained in the -- pCmdBufLabels array. [$sel:vkCmdBufLabelCount:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Word32 -- | pCmdBufLabels is NULL or a pointer to an array of -- VkDebugUtilsLabelEXT active in the current -- VkCommandBuffer at the time the callback was triggered. Refer -- to Command Buffer Labels for more information. [$sel:vkPCmdBufLabels:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr VkDebugUtilsLabelEXT -- | objectCount is a count of items contained in the -- pObjects array. [$sel:vkObjectCount:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Word32 -- | pObjects is a pointer to an array of -- VkDebugUtilsObjectNameInfoEXT objects related to the detected -- issue. The array is roughly in order or importance, but the 0th -- element is always guaranteed to be the most important object for this -- message. [$sel:vkPObjects:VkDebugUtilsMessengerCallbackDataEXT] :: VkDebugUtilsMessengerCallbackDataEXT -> Ptr VkDebugUtilsObjectNameInfoEXT type VkDebugUtilsMessageSeverityFlagsEXT = VkDebugUtilsMessageSeverityFlagBitsEXT type VkDebugUtilsMessageTypeFlagsEXT = VkDebugUtilsMessageTypeFlagBitsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsLabelEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsLabelEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectTagInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectTagInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectNameInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectNameInfoEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsLabelEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectTagInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsObjectNameInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCallbackDataFlagsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessengerCreateFlagsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageTypeFlagBitsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_debug_utils.VkDebugUtilsMessageSeverityFlagBitsEXT module Graphics.Vulkan.Extensions.VK_EXT_debug_marker -- | vkDebugMarkerSetObjectNameEXT - Give a user-friendly name to an object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDebugMarkerObjectNameInfoEXT, VkDevice vkDebugMarkerSetObjectNameEXT :: ("device" ::: VkDevice) -> ("pNameInfo" ::: Ptr VkDebugMarkerObjectNameInfoEXT) -> IO VkResult -- | vkDebugMarkerSetObjectTagEXT - Attach arbitrary data to an object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDebugMarkerObjectTagInfoEXT, VkDevice vkDebugMarkerSetObjectTagEXT :: ("device" ::: VkDevice) -> ("pTagInfo" ::: Ptr VkDebugMarkerObjectTagInfoEXT) -> IO VkResult -- | vkCmdDebugMarkerBeginEXT - Open a command buffer marker region -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

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

-- -- VkCommandBuffer, VkDebugMarkerMarkerInfoEXT vkCmdDebugMarkerBeginEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pMarkerInfo" ::: Ptr VkDebugMarkerMarkerInfoEXT) -> IO () -- | vkCmdDebugMarkerEndEXT - Close a command buffer marker region -- --

Parameters

-- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

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

-- -- VkCommandBuffer vkCmdDebugMarkerEndEXT :: ("commandBuffer" ::: VkCommandBuffer) -> IO () -- | vkCmdDebugMarkerInsertEXT - Insert a marker label into a command -- buffer -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

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

-- -- VkCommandBuffer, VkDebugMarkerMarkerInfoEXT vkCmdDebugMarkerInsertEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pMarkerInfo" ::: Ptr VkDebugMarkerMarkerInfoEXT) -> IO () -- | VkDebugMarkerObjectNameInfoEXT - Specify parameters of a name to give -- to an object -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDebugReportObjectTypeEXT, VkStructureType, -- vkDebugMarkerSetObjectNameEXT data VkDebugMarkerObjectNameInfoEXT VkDebugMarkerObjectNameInfoEXT :: VkStructureType -> Ptr () -> VkDebugReportObjectTypeEXT -> Word64 -> Ptr CChar -> VkDebugMarkerObjectNameInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> Ptr () -- | objectType is a VkDebugReportObjectTypeEXT specifying -- the type of the object to be named. [$sel:vkObjectType:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> VkDebugReportObjectTypeEXT -- | object is the object to be named. [$sel:vkObject:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> Word64 -- | pObjectName is a null-terminated UTF-8 string specifying the -- name to apply to object. [$sel:vkPObjectName:VkDebugMarkerObjectNameInfoEXT] :: VkDebugMarkerObjectNameInfoEXT -> Ptr CChar -- | VkDebugMarkerObjectTagInfoEXT - Specify parameters of a tag to attach -- to an object -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDebugReportObjectTypeEXT, VkStructureType, -- vkDebugMarkerSetObjectTagEXT data VkDebugMarkerObjectTagInfoEXT VkDebugMarkerObjectTagInfoEXT :: VkStructureType -> Ptr () -> VkDebugReportObjectTypeEXT -> Word64 -> Word64 -> CSize -> Ptr () -> VkDebugMarkerObjectTagInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> Ptr () -- | objectType is a VkDebugReportObjectTypeEXT specifying -- the type of the object to be named. [$sel:vkObjectType:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> VkDebugReportObjectTypeEXT -- | object is the object to be tagged. [$sel:vkObject:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> Word64 -- | tagName is a numerical identifier of the tag. [$sel:vkTagName:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> Word64 -- | tagSize is the number of bytes of data to attach to the -- object. [$sel:vkTagSize:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> CSize -- | pTag is an array of tagSize bytes containing the -- data to be associated with the object. [$sel:vkPTag:VkDebugMarkerObjectTagInfoEXT] :: VkDebugMarkerObjectTagInfoEXT -> Ptr () -- | VkDebugMarkerMarkerInfoEXT - Specify parameters of a command buffer -- marker region -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, vkCmdDebugMarkerBeginEXT, -- vkCmdDebugMarkerInsertEXT data VkDebugMarkerMarkerInfoEXT VkDebugMarkerMarkerInfoEXT :: VkStructureType -> Ptr () -> Ptr CChar -> Vector 4 CFloat -> VkDebugMarkerMarkerInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDebugMarkerMarkerInfoEXT] :: VkDebugMarkerMarkerInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDebugMarkerMarkerInfoEXT] :: VkDebugMarkerMarkerInfoEXT -> Ptr () -- | pMarkerName is a pointer to a null-terminated UTF-8 string -- that contains the name of the marker. [$sel:vkPMarkerName:VkDebugMarkerMarkerInfoEXT] :: VkDebugMarkerMarkerInfoEXT -> Ptr CChar -- | color is an optional RGBA color value that can be -- associated with the marker. A particular implementation may -- choose to ignore this color value. The values contain RGBA values in -- order, in the range 0.0 to 1.0. If all elements in color are -- set to 0.0 then it is ignored. [$sel:vkColor:VkDebugMarkerMarkerInfoEXT] :: VkDebugMarkerMarkerInfoEXT -> Vector 4 CFloat instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerMarkerInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerMarkerInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectTagInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectTagInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectNameInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectNameInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerMarkerInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectTagInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_debug_marker.VkDebugMarkerObjectNameInfoEXT module Graphics.Vulkan.Core10.QueueSemaphore -- | VkSemaphoreCreateFlags - Reserved for future use -- --

Description

-- -- VkSemaphoreCreateFlags is a bitmask type for setting a mask, -- but is currently reserved for future use. -- --

See Also

-- -- VkSemaphoreCreateInfo newtype VkSemaphoreCreateFlags VkSemaphoreCreateFlags :: VkFlags -> VkSemaphoreCreateFlags -- | vkCreateSemaphore - Create a new queue semaphore object -- --

Parameters

-- -- -- -- -- --

Description

-- -- When created, the semaphore is in the unsignaled state. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkSemaphore, -- VkSemaphoreCreateInfo vkCreateSemaphore :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSemaphoreCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSemaphore" ::: Ptr VkSemaphore) -> IO VkResult -- | vkDestroySemaphore - Destroy a semaphore object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkSemaphore vkDestroySemaphore :: ("device" ::: VkDevice) -> ("semaphore" ::: VkSemaphore) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkSemaphoreCreateInfo - Structure specifying parameters of a newly -- created semaphore -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkSemaphoreCreateFlags, VkStructureType, -- vkCreateSemaphore data VkSemaphoreCreateInfo VkSemaphoreCreateInfo :: VkStructureType -> Ptr () -> VkSemaphoreCreateFlags -> VkSemaphoreCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkSemaphoreCreateInfo] :: VkSemaphoreCreateInfo -> VkSemaphoreCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.QueueSemaphore.VkSemaphoreCreateFlags module Graphics.Vulkan.Core10.Query -- | VkQueryType - Specify the type of queries managed by a query pool -- --

See Also

-- -- VkQueryPoolCreateInfo newtype VkQueryType VkQueryType :: Int32 -> VkQueryType -- | VK_QUERY_TYPE_OCCLUSION specifies an occlusion query. -- | VK_QUERY_TYPE_PIPELINE_STATISTICS specifies a pipeline -- statistics query. -- | VK_QUERY_TYPE_TIMESTAMP specifies a timestamp query. -- | VkQueryPoolCreateFlags - Reserved for future use -- --

Description

-- -- VkQueryPoolCreateFlags is a bitmask type for setting a mask, -- but is currently reserved for future use. -- --

See Also

-- -- VkQueryPoolCreateInfo newtype VkQueryPoolCreateFlags VkQueryPoolCreateFlags :: VkFlags -> VkQueryPoolCreateFlags -- | VkQueryResultFlagBits - Bitmask specifying how and when query results -- are returned -- --

See Also

-- -- VkQueryResultFlags newtype VkQueryResultFlagBits VkQueryResultFlagBits :: VkFlags -> VkQueryResultFlagBits -- | 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. -- | VK_QUERY_RESULT_WAIT_BIT specifies that Vulkan will wait for -- each query’s status to become available before retrieving its results. -- | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT specifies that the -- availability status accompanies the results. -- | VK_QUERY_RESULT_PARTIAL_BIT specifies that returning partial -- results is acceptable. -- | VkQueryPipelineStatisticFlagBits - Bitmask specifying queried pipeline -- statistics -- --

Description

-- -- -- -- -- -- 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 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

-- -- VkQueryPipelineStatisticFlags newtype VkQueryPipelineStatisticFlagBits VkQueryPipelineStatisticFlagBits :: VkFlags -> VkQueryPipelineStatisticFlagBits -- | VkQueryPool - Opaque handle to a query pool object -- --

Description

-- --

See Also

-- -- vkCmdBeginQuery, vkCmdCopyQueryPoolResults, -- vkCmdEndQuery, vkCmdResetQueryPool, -- vkCmdWriteTimestamp, vkCreateQueryPool, -- vkDestroyQueryPool, vkGetQueryPoolResults type VkQueryPool = Ptr VkQueryPool_T -- | vkCreateQueryPool - Create a new query pool object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkQueryPool, -- VkQueryPoolCreateInfo vkCreateQueryPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkQueryPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pQueryPool" ::: Ptr VkQueryPool) -> IO VkResult -- | vkDestroyQueryPool - Destroy a query pool object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkQueryPool vkDestroyQueryPool :: ("device" ::: VkDevice) -> ("queryPool" ::: VkQueryPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkGetQueryPoolResults - Copy results of queries in a query pool to a -- host memory region -- --

Parameters

-- -- -- -- -- --

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 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkDeviceSize, VkQueryPool, -- VkQueryResultFlags 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

-- -- pipelineStatistics is ignored if queryType is not -- VK_QUERY_TYPE_PIPELINE_STATISTICS. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkQueryPipelineStatisticFlags, VkQueryPoolCreateFlags, -- VkQueryType, VkStructureType, vkCreateQueryPool data VkQueryPoolCreateInfo VkQueryPoolCreateInfo :: VkStructureType -> Ptr () -> VkQueryPoolCreateFlags -> VkQueryType -> Word32 -> VkQueryPipelineStatisticFlags -> VkQueryPoolCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryPoolCreateFlags -- | queryType is a VkQueryType value specifying the type -- of queries managed by the pool. [$sel:vkQueryType:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryType -- | queryCount is the number of queries managed by the pool. [$sel:vkQueryCount:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> Word32 -- | pipelineStatistics is a bitmask of -- VkQueryPipelineStatisticFlagBits specifying which counters will -- be returned in queries on the new pool, as described below in -- {html_spec_relative}#queries-pipestats. [$sel:vkPipelineStatistics:VkQueryPoolCreateInfo] :: VkQueryPoolCreateInfo -> VkQueryPipelineStatisticFlags -- | VkQueryResultFlags - Bitmask of VkQueryResultFlagBits -- --

Description

-- -- VkQueryResultFlags is a bitmask type for setting a mask of -- zero or more VkQueryResultFlagBits. -- --

See Also

-- -- VkQueryResultFlagBits, vkCmdCopyQueryPoolResults, -- vkGetQueryPoolResults type VkQueryResultFlags = VkQueryResultFlagBits -- | VkQueryPipelineStatisticFlags - Bitmask of -- VkQueryPipelineStatisticFlagBits -- --

Description

-- -- VkQueryPipelineStatisticFlags is a bitmask type for setting a -- mask of zero or more VkQueryPipelineStatisticFlagBits. -- --

See Also

-- -- VkCommandBufferInheritanceInfo, -- VkQueryPipelineStatisticFlagBits, VkQueryPoolCreateInfo type VkQueryPipelineStatisticFlags = VkQueryPipelineStatisticFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryPoolCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryPoolCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryType instance GHC.Classes.Ord Graphics.Vulkan.Core10.Query.VkQueryType instance GHC.Classes.Eq Graphics.Vulkan.Core10.Query.VkQueryType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Query.VkQueryPoolCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Query.VkQueryPipelineStatisticFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Query.VkQueryResultFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Query.VkQueryPoolCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Query.VkQueryType instance GHC.Read.Read Graphics.Vulkan.Core10.Query.VkQueryType module Graphics.Vulkan.Core10.PipelineCache -- | VkPipelineCacheCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineCacheCreateFlags is a bitmask type for setting a -- mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineCacheCreateInfo newtype VkPipelineCacheCreateFlags VkPipelineCacheCreateFlags :: VkFlags -> VkPipelineCacheCreateFlags -- | VkPipelineCache - Opaque handle to a pipeline cache object -- --

Description

-- --

See Also

-- -- vkCreateComputePipelines, vkCreateGraphicsPipelines, -- vkCreatePipelineCache, vkDestroyPipelineCache, -- vkGetPipelineCacheData, vkMergePipelineCaches type VkPipelineCache = Ptr VkPipelineCache_T -- | vkCreatePipelineCache - Creates a new pipeline cache -- --

Parameters

-- -- -- -- -- --

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 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkPipelineCache, -- VkPipelineCacheCreateInfo vkCreatePipelineCache :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkPipelineCacheCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelineCache" ::: Ptr VkPipelineCache) -> IO VkResult -- | vkDestroyPipelineCache - Destroy a pipeline cache object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkPipelineCache vkDestroyPipelineCache :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkGetPipelineCacheData - Get the data store from a pipeline cache -- --

Parameters

-- -- -- -- -- --

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 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkPipelineCache vkGetPipelineCacheData :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO VkResult -- | vkMergePipelineCaches - Combine the data stores of pipeline caches -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkPipelineCache vkMergePipelineCaches :: ("device" ::: VkDevice) -> ("dstCache" ::: VkPipelineCache) -> ("srcCacheCount" ::: Word32) -> ("pSrcCaches" ::: Ptr VkPipelineCache) -> IO VkResult -- | VkPipelineCacheCreateInfo - Structure specifying parameters of a newly -- created pipeline cache -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPipelineCacheCreateFlags, VkStructureType, -- vkCreatePipelineCache data VkPipelineCacheCreateInfo VkPipelineCacheCreateInfo :: VkStructureType -> Ptr () -> VkPipelineCacheCreateFlags -> CSize -> Ptr () -> VkPipelineCacheCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> VkPipelineCacheCreateFlags -- | initialDataSize is the number of bytes in -- pInitialData. If initialDataSize is zero, the -- pipeline cache will initially be empty. [$sel:vkInitialDataSize:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> CSize -- | pInitialData is a pointer to previously retrieved pipeline -- cache data. If the pipeline cache data is incompatible (as defined -- below) with the device, the pipeline cache will be initially empty. If -- initialDataSize is zero, pInitialData is ignored. [$sel:vkPInitialData:VkPipelineCacheCreateInfo] :: VkPipelineCacheCreateInfo -> Ptr () instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.PipelineCache.VkPipelineCacheCreateFlags module Graphics.Vulkan.Core10.Pipeline -- | VkBlendFactor - Framebuffer blending factors -- --

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: -- -- -- --

See Also

-- -- VkPipelineColorBlendAttachmentState newtype VkBlendFactor VkBlendFactor :: Int32 -> VkBlendFactor -- | VkBlendOp - Framebuffer blending operations -- --

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: -- -- -- -- 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

-- -- VkPipelineColorBlendAttachmentState newtype VkBlendOp VkBlendOp :: Int32 -> VkBlendOp -- | VkCompareOp - Stencil comparison function -- --

See Also

-- -- VkPipelineDepthStencilStateCreateInfo, -- VkSamplerCreateInfo, VkStencilOpState newtype VkCompareOp VkCompareOp :: Int32 -> VkCompareOp -- | VK_COMPARE_OP_NEVER specifies that the test never passes. -- | VK_COMPARE_OP_LESS specifies that the test passes when R < -- S. -- | VK_COMPARE_OP_EQUAL specifies that the test passes when R = -- S. -- | VK_COMPARE_OP_LESS_OR_EQUAL specifies that the test passes -- when R ≤ S. -- | VK_COMPARE_OP_GREATER specifies that the test passes when R -- > S. -- | VK_COMPARE_OP_NOT_EQUAL specifies that the test passes when R -- ≠ S. -- | VK_COMPARE_OP_GREATER_OR_EQUAL specifies that the test passes -- when R ≥ S. -- | VK_COMPARE_OP_ALWAYS specifies that the test always passes. -- | VkDynamicState - Indicate which dynamic state is taken from dynamic -- state commands -- --

See Also

-- -- VkPipelineDynamicStateCreateInfo newtype VkDynamicState VkDynamicState :: Int32 -> VkDynamicState -- | VK_DYNAMIC_STATE_VIEWPORT specifies that the -- pViewports state in -- VkPipelineViewportStateCreateInfo will be ignored and -- must be set dynamically with vkCmdSetViewport before any -- draw commands. The number of viewports used by a pipeline is still -- specified by the viewportCount member of -- VkPipelineViewportStateCreateInfo. -- | VK_DYNAMIC_STATE_SCISSOR specifies that the -- pScissors state in VkPipelineViewportStateCreateInfo -- will be ignored and must be set dynamically with -- vkCmdSetScissor before any draw commands. The number of scissor -- rectangles used by a pipeline is still specified by the -- scissorCount member of -- VkPipelineViewportStateCreateInfo. -- | VK_DYNAMIC_STATE_LINE_WIDTH specifies that the -- lineWidth state in -- VkPipelineRasterizationStateCreateInfo will be ignored and -- must be set dynamically with vkCmdSetLineWidth before -- any draw commands that generate line primitives for the rasterizer. -- | VK_DYNAMIC_STATE_DEPTH_BIAS specifies that the -- depthBiasConstantFactor, depthBiasClamp and -- depthBiasSlopeFactor states in -- VkPipelineRasterizationStateCreateInfo will be ignored and -- must be set dynamically with vkCmdSetDepthBias before -- any draws are performed with depthBiasEnable in -- VkPipelineRasterizationStateCreateInfo set to -- VK_TRUE. -- | VK_DYNAMIC_STATE_BLEND_CONSTANTS specifies that the -- blendConstants state in -- VkPipelineColorBlendStateCreateInfo will be ignored and -- must be set dynamically with 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. -- | VK_DYNAMIC_STATE_DEPTH_BOUNDS specifies that the -- minDepthBounds and maxDepthBounds states of -- VkPipelineDepthStencilStateCreateInfo will be ignored and -- must be set dynamically with vkCmdSetDepthBounds before -- any draws are performed with a pipeline state with -- VkPipelineDepthStencilStateCreateInfo member -- depthBoundsTestEnable set to VK_TRUE. -- | 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 vkCmdSetStencilCompareMask before any draws are performed -- with a pipeline state with -- VkPipelineDepthStencilStateCreateInfo member -- stencilTestEnable set to VK_TRUE -- | 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 vkCmdSetStencilWriteMask before any draws are performed -- with a pipeline state with -- VkPipelineDepthStencilStateCreateInfo member -- stencilTestEnable set to VK_TRUE -- | 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 vkCmdSetStencilReference before any draws are performed -- with a pipeline state with -- VkPipelineDepthStencilStateCreateInfo member -- stencilTestEnable set to VK_TRUE -- | VkPolygonMode - Control polygon rasterization mode -- --

Description

-- -- -- -- -- -- 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

-- -- VkPipelineRasterizationStateCreateInfo newtype VkPolygonMode VkPolygonMode :: Int32 -> VkPolygonMode -- | VkFrontFace - Interpret polygon front-facing orientation -- --

Description

-- -- -- -- -- -- Any triangle which is not front-facing is back-facing, including -- zero-area triangles. -- --

See Also

-- -- VkPipelineRasterizationStateCreateInfo newtype VkFrontFace VkFrontFace :: Int32 -> VkFrontFace -- | VkLogicOp - Framebuffer logical operations -- --

Description

-- -- The logical operations supported by Vulkan are summarized in the -- following table in which -- -- -- --
--   +-----------------------------------+-----------------------------------+
--   | 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 -- Blend Operations. -- --

See Also

-- -- VkPipelineColorBlendStateCreateInfo newtype VkLogicOp VkLogicOp :: Int32 -> VkLogicOp -- | VkPrimitiveTopology - Supported primitive topologies -- --

Description

-- --

See Also

-- -- VkPipelineInputAssemblyStateCreateInfo newtype VkPrimitiveTopology VkPrimitiveTopology :: Int32 -> VkPrimitiveTopology -- | VkStencilOp - Stencil comparison function -- --

Description

-- -- -- -- -- -- 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

-- -- VkStencilOpState newtype VkStencilOp VkStencilOp :: Int32 -> VkStencilOp -- | VkVertexInputRate - Specify rate at which vertex attributes are pulled -- from buffers -- --

See Also

-- -- VkVertexInputBindingDescription newtype VkVertexInputRate VkVertexInputRate :: Int32 -> VkVertexInputRate -- | VK_VERTEX_INPUT_RATE_VERTEX specifies that vertex attribute -- addressing is a function of the vertex index. -- | VK_VERTEX_INPUT_RATE_INSTANCE specifies that vertex attribute -- addressing is a function of the instance index. -- | VkPipelineDepthStencilStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineDepthStencilStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineDepthStencilStateCreateInfo newtype VkPipelineDepthStencilStateCreateFlags VkPipelineDepthStencilStateCreateFlags :: VkFlags -> VkPipelineDepthStencilStateCreateFlags -- | VkPipelineDynamicStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineDynamicStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineDynamicStateCreateInfo newtype VkPipelineDynamicStateCreateFlags VkPipelineDynamicStateCreateFlags :: VkFlags -> VkPipelineDynamicStateCreateFlags -- | VkPipelineColorBlendStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineColorBlendStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineColorBlendStateCreateInfo newtype VkPipelineColorBlendStateCreateFlags VkPipelineColorBlendStateCreateFlags :: VkFlags -> VkPipelineColorBlendStateCreateFlags -- | VkPipelineMultisampleStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineMultisampleStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineMultisampleStateCreateInfo newtype VkPipelineMultisampleStateCreateFlags VkPipelineMultisampleStateCreateFlags :: VkFlags -> VkPipelineMultisampleStateCreateFlags -- | VkPipelineRasterizationStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineRasterizationStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineRasterizationStateCreateInfo newtype VkPipelineRasterizationStateCreateFlags VkPipelineRasterizationStateCreateFlags :: VkFlags -> VkPipelineRasterizationStateCreateFlags -- | VkPipelineViewportStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineViewportStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineViewportStateCreateInfo newtype VkPipelineViewportStateCreateFlags VkPipelineViewportStateCreateFlags :: VkFlags -> VkPipelineViewportStateCreateFlags -- | VkPipelineTessellationStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineTessellationStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineTessellationStateCreateInfo newtype VkPipelineTessellationStateCreateFlags VkPipelineTessellationStateCreateFlags :: VkFlags -> VkPipelineTessellationStateCreateFlags -- | VkPipelineInputAssemblyStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineInputAssemblyStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineInputAssemblyStateCreateInfo newtype VkPipelineInputAssemblyStateCreateFlags VkPipelineInputAssemblyStateCreateFlags :: VkFlags -> VkPipelineInputAssemblyStateCreateFlags -- | VkPipelineVertexInputStateCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineVertexInputStateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineVertexInputStateCreateInfo newtype VkPipelineVertexInputStateCreateFlags VkPipelineVertexInputStateCreateFlags :: VkFlags -> VkPipelineVertexInputStateCreateFlags -- | VkPipelineShaderStageCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineShaderStageCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineShaderStageCreateInfo newtype VkPipelineShaderStageCreateFlags VkPipelineShaderStageCreateFlags :: VkFlags -> VkPipelineShaderStageCreateFlags -- | VkShaderStageFlagBits - Bitmask specifying a pipeline stage -- --

See Also

-- -- VkPipelineShaderStageCreateInfo, VkShaderStageFlags, -- vkGetShaderInfoAMD newtype VkShaderStageFlagBits VkShaderStageFlagBits :: VkFlags -> VkShaderStageFlagBits -- | VK_SHADER_STAGE_VERTEX_BIT specifies the vertex stage. -- | VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT specifies the -- tessellation control stage. -- | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT specifies the -- tessellation evaluation stage. -- | VK_SHADER_STAGE_GEOMETRY_BIT specifies the geometry stage. -- | VK_SHADER_STAGE_FRAGMENT_BIT specifies the fragment stage. -- | VK_SHADER_STAGE_COMPUTE_BIT specifies the compute stage. -- | VK_SHADER_STAGE_ALL_GRAPHICS is a combination of bits used as -- shorthand to specify all graphics stages defined above (excluding the -- compute stage). -- | 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. -- | VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is -- created -- --

Description

-- -- -- -- -- -- 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 -- Pipeline Derivatives for more information. -- --

See Also

-- -- VkPipelineCreateFlags newtype VkPipelineCreateFlagBits VkPipelineCreateFlagBits :: VkFlags -> VkPipelineCreateFlagBits -- | VkColorComponentFlagBits - Bitmask controlling which components are -- written to the framebuffer -- --

Description

-- -- -- -- -- -- The color write mask operation is applied regardless of whether -- blending is enabled. -- --

See Also

-- -- VkColorComponentFlags newtype VkColorComponentFlagBits VkColorComponentFlagBits :: VkFlags -> VkColorComponentFlagBits -- | VkCullModeFlagBits - Bitmask controlling triangle culling -- --

Description

-- -- -- -- -- -- Following culling, fragments are produced for any triangles which have -- not been discarded. -- --

See Also

-- -- VkCullModeFlags newtype VkCullModeFlagBits VkCullModeFlagBits :: VkFlags -> VkCullModeFlagBits -- | VkPipeline - Opaque handle to a pipeline object -- --

Description

-- --

See Also

-- -- VkComputePipelineCreateInfo, -- VkGraphicsPipelineCreateInfo, -- VkObjectTablePipelineEntryNVX, vkCmdBindPipeline, -- vkCreateComputePipelines, vkCreateGraphicsPipelines, -- vkDestroyPipeline, vkGetShaderInfoAMD type VkPipeline = Ptr VkPipeline_T -- | VkPipelineLayout - Opaque handle to a pipeline layout object -- --

Description

-- --

See Also

-- -- VkComputePipelineCreateInfo, -- VkDescriptorUpdateTemplateCreateInfo, -- VkGraphicsPipelineCreateInfo, -- VkObjectTableDescriptorSetEntryNVX, -- VkObjectTablePushConstantEntryNVX, -- vkCmdBindDescriptorSets, vkCmdPushConstants, -- vkCmdPushDescriptorSetKHR, -- vkCmdPushDescriptorSetWithTemplateKHR, -- vkCreatePipelineLayout, vkDestroyPipelineLayout type VkPipelineLayout = Ptr VkPipelineLayout_T -- | VkRenderPass - Opaque handle to a render pass object -- --

Description

-- --

See Also

-- -- VkCommandBufferInheritanceInfo, VkFramebufferCreateInfo, -- VkGraphicsPipelineCreateInfo, VkRenderPassBeginInfo, -- vkCreateRenderPass, vkDestroyRenderPass, -- vkGetRenderAreaGranularity type VkRenderPass = Ptr VkRenderPass_T -- | vkCreateGraphicsPipelines - Create graphics pipelines -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkGraphicsPipelineCreateInfo, VkPipeline, -- VkPipelineCache 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

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkComputePipelineCreateInfo, -- VkDevice, VkPipeline, VkPipelineCache vkCreateComputePipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkComputePipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult -- | vkDestroyPipeline - Destroy a pipeline object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkPipeline vkDestroyPipeline :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkOffset2D - Structure specifying a two-dimensional offset -- --

Description

-- --

See Also

-- -- VkDisplayPlaneCapabilitiesKHR, VkRect2D, -- VkRectLayerKHR data VkOffset2D VkOffset2D :: Int32 -> Int32 -> VkOffset2D -- | x is the x offset. [$sel:vkX:VkOffset2D] :: VkOffset2D -> Int32 -- | y is the y offset. [$sel:vkY:VkOffset2D] :: VkOffset2D -> Int32 -- | VkExtent2D - Structure specifying a two-dimensional extent -- --

Description

-- --

See Also

-- -- VkDisplayModeParametersKHR, -- VkDisplayPlaneCapabilitiesKHR, VkDisplayPropertiesKHR, -- VkDisplaySurfaceCreateInfoKHR, -- VkMultisamplePropertiesEXT, -- VkPhysicalDeviceSampleLocationsPropertiesEXT, VkRect2D, -- VkRectLayerKHR, VkSampleLocationsInfoEXT, -- VkSurfaceCapabilities2EXT, VkSurfaceCapabilitiesKHR, -- VkSwapchainCreateInfoKHR, vkGetRenderAreaGranularity data VkExtent2D VkExtent2D :: Word32 -> Word32 -> VkExtent2D -- | width is the width of the extent. [$sel:vkWidth:VkExtent2D] :: VkExtent2D -> Word32 -- | height is the height of the extent. [$sel:vkHeight:VkExtent2D] :: VkExtent2D -> Word32 -- | VkViewport - Structure specifying a viewport -- --

Description

-- -- The framebuffer depth coordinate zf 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 <math>, 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 -- -- -- -- The application can specify a negative term for -- height, which has the effect of negating the y coordinate in -- clip space before performing the transform. When using a negative -- height, the application should also adjust the -- y value to point to the lower left corner of the viewport -- instead of the upper left corner. Using the negative height -- allows the application to avoid having to negate the y component of -- the Position output from the last vertex processing stage in -- shaders that also target other graphics APIs. -- -- The width and height of the 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 -- implementation-dependent precision. -- --

Valid Usage

-- -- -- -- -- --

See Also

-- -- VkPipelineViewportStateCreateInfo, vkCmdSetViewport data VkViewport VkViewport :: CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> VkViewport -- | x and y are the viewport’s upper left corner (x,y). [$sel:vkX:VkViewport] :: VkViewport -> CFloat [$sel:vkY:VkViewport] :: VkViewport -> CFloat -- | width and height are the viewport’s width and -- height, respectively. [$sel:vkWidth:VkViewport] :: VkViewport -> CFloat [$sel:vkHeight:VkViewport] :: VkViewport -> CFloat -- | minDepth and maxDepth are the depth range for the -- viewport. It is valid for minDepth to be greater than or -- equal to maxDepth. [$sel:vkMinDepth:VkViewport] :: VkViewport -> CFloat [$sel:vkMaxDepth:VkViewport] :: VkViewport -> CFloat -- | VkRect2D - Structure specifying a two-dimensional subregion -- --

Description

-- --

See Also

-- -- VkBindImageMemoryDeviceGroupInfo, VkClearRect, -- VkDeviceGroupRenderPassBeginInfo, -- VkDisplayPresentInfoKHR, VkExtent2D, VkOffset2D, -- VkPipelineDiscardRectangleStateCreateInfoEXT, -- VkPipelineViewportStateCreateInfo, -- VkRenderPassBeginInfo, vkCmdSetDiscardRectangleEXT, -- vkCmdSetScissor, vkGetPhysicalDevicePresentRectanglesKHR data VkRect2D VkRect2D :: VkOffset2D -> VkExtent2D -> VkRect2D -- | offset is a VkOffset2D specifying the rectangle -- offset. [$sel:vkOffset:VkRect2D] :: VkRect2D -> VkOffset2D -- | extent is a VkExtent2D specifying the rectangle -- extent. [$sel:vkExtent:VkRect2D] :: VkRect2D -> VkExtent2D -- | VkSpecializationMapEntry - Structure specifying a specialization map -- entry -- --

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

-- -- -- --

See Also

-- -- VkSpecializationInfo data VkSpecializationMapEntry VkSpecializationMapEntry :: Word32 -> Word32 -> CSize -> VkSpecializationMapEntry -- | constantID is the ID of the specialization constant in -- SPIR-V. [$sel:vkConstantID:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> Word32 -- | offset is the byte offset of the specialization constant -- value within the supplied data buffer. [$sel:vkOffset:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> Word32 -- | size is the byte size of the specialization constant value -- within the supplied data buffer. [$sel:vkSize:VkSpecializationMapEntry] :: VkSpecializationMapEntry -> CSize -- | VkSpecializationInfo - Structure specifying specialization info -- --

Description

-- -- pMapEntries points to a structure of type -- VkSpecializationMapEntry. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkPipelineShaderStageCreateInfo, -- VkSpecializationMapEntry data VkSpecializationInfo VkSpecializationInfo :: Word32 -> Ptr VkSpecializationMapEntry -> CSize -> Ptr () -> VkSpecializationInfo -- | mapEntryCount is the number of entries in the -- pMapEntries array. [$sel:vkMapEntryCount:VkSpecializationInfo] :: VkSpecializationInfo -> Word32 -- | pMapEntries is a pointer to an array of -- VkSpecializationMapEntry which maps constant IDs to offsets -- in pData. [$sel:vkPMapEntries:VkSpecializationInfo] :: VkSpecializationInfo -> Ptr VkSpecializationMapEntry -- | dataSize is the byte size of the pData buffer. [$sel:vkDataSize:VkSpecializationInfo] :: VkSpecializationInfo -> CSize -- | pData contains the actual constant values to specialize with. [$sel:vkPData:VkSpecializationInfo] :: VkSpecializationInfo -> Ptr () -- | VkPipelineShaderStageCreateInfo - Structure specifying parameters of a -- newly created pipeline shader stage -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkComputePipelineCreateInfo, -- VkGraphicsPipelineCreateInfo, -- VkPipelineShaderStageCreateFlags, VkShaderModule, -- VkShaderStageFlagBits, VkSpecializationInfo, -- VkStructureType data VkPipelineShaderStageCreateInfo VkPipelineShaderStageCreateInfo :: VkStructureType -> Ptr () -> VkPipelineShaderStageCreateFlags -> VkShaderStageFlagBits -> VkShaderModule -> Ptr CChar -> Ptr VkSpecializationInfo -> VkPipelineShaderStageCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkPipelineShaderStageCreateFlags -- | stage is a VkShaderStageFlagBits value specifying a -- single pipeline stage. [$sel:vkStage:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkShaderStageFlagBits -- | module is a VkShaderModule object that contains the -- shader for this stage. [$sel:vkModule:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> VkShaderModule -- | pName is a pointer to a null-terminated UTF-8 string -- specifying the entry point name of the shader for this stage. [$sel:vkPName:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr CChar -- | pSpecializationInfo is a pointer to -- VkSpecializationInfo, as described in Specialization -- Constants, and can be NULL. [$sel:vkPSpecializationInfo:VkPipelineShaderStageCreateInfo] :: VkPipelineShaderStageCreateInfo -> Ptr VkSpecializationInfo -- | VkComputePipelineCreateInfo - Structure specifying parameters of a -- newly created compute pipeline -- --

Description

-- -- The parameters basePipelineHandle and -- basePipelineIndex are described in more detail in Pipeline -- Derivatives. -- -- stage points to a structure of type -- VkPipelineShaderStageCreateInfo. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPipeline, VkPipelineCreateFlags, -- VkPipelineLayout, VkPipelineShaderStageCreateInfo, -- VkStructureType, vkCreateComputePipelines data VkComputePipelineCreateInfo VkComputePipelineCreateInfo :: VkStructureType -> Ptr () -> VkPipelineCreateFlags -> VkPipelineShaderStageCreateInfo -> VkPipelineLayout -> VkPipeline -> Int32 -> VkComputePipelineCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> Ptr () -- | flags is a bitmask of VkPipelineCreateFlagBits -- specifying how the pipeline will be generated. [$sel:vkFlags:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineCreateFlags -- | stage is a VkPipelineShaderStageCreateInfo describing -- the compute shader. [$sel:vkStage:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineShaderStageCreateInfo -- | layout is the description of binding locations used by both -- the pipeline and descriptor sets used with the pipeline. [$sel:vkLayout:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipelineLayout -- | basePipelineHandle is a pipeline to derive from [$sel:vkBasePipelineHandle:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> VkPipeline -- | basePipelineIndex is an index into the pCreateInfos -- parameter to use as a pipeline to derive from [$sel:vkBasePipelineIndex:VkComputePipelineCreateInfo] :: VkComputePipelineCreateInfo -> Int32 -- | VkVertexInputBindingDescription - Structure specifying vertex input -- binding description -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkPipelineVertexInputStateCreateInfo, VkVertexInputRate data VkVertexInputBindingDescription VkVertexInputBindingDescription :: Word32 -> Word32 -> VkVertexInputRate -> VkVertexInputBindingDescription -- | binding is the binding number that this structure describes. [$sel:vkBinding:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> Word32 -- | stride is the distance in bytes between two consecutive -- elements within the buffer. [$sel:vkStride:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> Word32 -- | inputRate is a VkVertexInputRate value specifying -- whether vertex attribute addressing is a function of the vertex index -- or of the instance index. [$sel:vkInputRate:VkVertexInputBindingDescription] :: VkVertexInputBindingDescription -> VkVertexInputRate -- | VkVertexInputAttributeDescription - Structure specifying vertex input -- attribute description -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkFormat, VkPipelineVertexInputStateCreateInfo data VkVertexInputAttributeDescription VkVertexInputAttributeDescription :: Word32 -> Word32 -> VkFormat -> Word32 -> VkVertexInputAttributeDescription -- | location is the shader binding location number for this -- attribute. [$sel:vkLocation:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32 -- | binding is the binding number which this attribute takes its -- data from. [$sel:vkBinding:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32 -- | format is the size and type of the vertex attribute data. [$sel:vkFormat:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> VkFormat -- | offset is a byte offset of this attribute relative to the -- start of an element in the vertex input binding. [$sel:vkOffset:VkVertexInputAttributeDescription] :: VkVertexInputAttributeDescription -> Word32 -- | VkPipelineVertexInputStateCreateInfo - Structure specifying parameters -- of a newly created pipeline vertex input state -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkGraphicsPipelineCreateInfo, -- VkPipelineVertexInputStateCreateFlags, VkStructureType, -- VkVertexInputAttributeDescription, -- VkVertexInputBindingDescription data VkPipelineVertexInputStateCreateInfo VkPipelineVertexInputStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineVertexInputStateCreateFlags -> Word32 -> Ptr VkVertexInputBindingDescription -> Word32 -> Ptr VkVertexInputAttributeDescription -> VkPipelineVertexInputStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> VkPipelineVertexInputStateCreateFlags -- | vertexBindingDescriptionCount is the number of vertex binding -- descriptions provided in pVertexBindingDescriptions. [$sel:vkVertexBindingDescriptionCount:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Word32 -- | pVertexBindingDescriptions is a pointer to an array of -- VkVertexInputBindingDescription structures. [$sel:vkPVertexBindingDescriptions:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr VkVertexInputBindingDescription -- | vertexAttributeDescriptionCount is the number of vertex -- attribute descriptions provided in -- pVertexAttributeDescriptions. [$sel:vkVertexAttributeDescriptionCount:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Word32 -- | pVertexAttributeDescriptions is a pointer to an array of -- VkVertexInputAttributeDescription structures. [$sel:vkPVertexAttributeDescriptions:VkPipelineVertexInputStateCreateInfo] :: VkPipelineVertexInputStateCreateInfo -> Ptr VkVertexInputAttributeDescription -- | VkPipelineInputAssemblyStateCreateInfo - Structure specifying -- parameters of a newly created pipeline input assembly state -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkGraphicsPipelineCreateInfo, -- VkPipelineInputAssemblyStateCreateFlags, -- VkPrimitiveTopology, VkStructureType data VkPipelineInputAssemblyStateCreateInfo VkPipelineInputAssemblyStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineInputAssemblyStateCreateFlags -> VkPrimitiveTopology -> VkBool32 -> VkPipelineInputAssemblyStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkPipelineInputAssemblyStateCreateFlags -- | topology is a VkPrimitiveTopology defining the -- primitive topology, as described below. [$sel:vkTopology:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkPrimitiveTopology -- | primitiveRestartEnable controls whether a special vertex -- index value is treated as restarting the assembly of primitives. This -- enable only applies to indexed draws (vkCmdDrawIndexed and -- vkCmdDrawIndexedIndirect), and the special index value is -- either 0xFFFFFFFF when the indexType parameter of -- vkCmdBindIndexBuffer is equal to -- VK_INDEX_TYPE_UINT32, or 0xFFFF when indexType is -- equal to VK_INDEX_TYPE_UINT16. Primitive restart is not -- allowed for “list” topologies. [$sel:vkPrimitiveRestartEnable:VkPipelineInputAssemblyStateCreateInfo] :: VkPipelineInputAssemblyStateCreateInfo -> VkBool32 -- | VkPipelineTessellationStateCreateInfo - Structure specifying -- parameters of a newly created pipeline tessellation state -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkGraphicsPipelineCreateInfo, -- VkPipelineTessellationStateCreateFlags, VkStructureType data VkPipelineTessellationStateCreateInfo VkPipelineTessellationStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineTessellationStateCreateFlags -> Word32 -> VkPipelineTessellationStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> VkPipelineTessellationStateCreateFlags -- | patchControlPoints number of control points per patch. [$sel:vkPatchControlPoints:VkPipelineTessellationStateCreateInfo] :: VkPipelineTessellationStateCreateInfo -> Word32 -- | VkPipelineViewportStateCreateInfo - Structure specifying parameters of -- a newly created pipeline viewport state -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkGraphicsPipelineCreateInfo, -- VkPipelineViewportStateCreateFlags, VkRect2D, -- VkStructureType, VkViewport data VkPipelineViewportStateCreateInfo VkPipelineViewportStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineViewportStateCreateFlags -> Word32 -> Ptr VkViewport -> Word32 -> Ptr VkRect2D -> VkPipelineViewportStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> VkPipelineViewportStateCreateFlags -- | viewportCount is the number of viewports used by the -- pipeline. [$sel:vkViewportCount:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Word32 -- | pViewports is a pointer to an array of VkViewport -- structures, defining the viewport transforms. If the viewport state is -- dynamic, this member is ignored. [$sel:vkPViewports:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr VkViewport -- | scissorCount is the number of scissors and must -- match the number of viewports. [$sel:vkScissorCount:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Word32 -- | pScissors is a pointer to an array of VkRect2D -- structures which define the rectangular bounds of the scissor for the -- corresponding viewport. If the scissor state is dynamic, this member -- is ignored. [$sel:vkPScissors:VkPipelineViewportStateCreateInfo] :: VkPipelineViewportStateCreateInfo -> Ptr VkRect2D -- | VkPipelineRasterizationStateCreateInfo - Structure specifying -- parameters of a newly created pipeline rasterization state -- --

Description

-- -- The application can also add a -- VkPipelineRasterizationStateRasterizationOrderAMD structure -- to the pNext chain of a -- VkPipelineRasterizationStateCreateInfo structure. This -- structure enables selecting the rasterization order to use when -- rendering with the corresponding graphics pipeline as described in -- Rasterization Order. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkCullModeFlags, VkFrontFace, -- VkGraphicsPipelineCreateInfo, -- VkPipelineRasterizationStateCreateFlags, VkPolygonMode, -- VkStructureType data VkPipelineRasterizationStateCreateInfo VkPipelineRasterizationStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineRasterizationStateCreateFlags -> VkBool32 -> VkBool32 -> VkPolygonMode -> VkCullModeFlags -> VkFrontFace -> VkBool32 -> CFloat -> CFloat -> CFloat -> CFloat -> VkPipelineRasterizationStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkPipelineRasterizationStateCreateFlags -- | depthClampEnable controls whether to clamp the fragment’s -- depth values instead of clipping primitives to the z planes of the -- frustum, as described in Primitive Clipping. [$sel:vkDepthClampEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32 -- | rasterizerDiscardEnable controls whether primitives are -- discarded immediately before the rasterization stage. [$sel:vkRasterizerDiscardEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32 -- | polygonMode is the triangle rendering mode. See -- VkPolygonMode. [$sel:vkPolygonMode:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkPolygonMode -- | cullMode is the triangle facing direction used for primitive -- culling. See VkCullModeFlagBits. [$sel:vkCullMode:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkCullModeFlags -- | frontFace is a VkFrontFace value specifying the -- front-facing triangle orientation to be used for culling. [$sel:vkFrontFace:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkFrontFace -- | depthBiasEnable controls whether to bias fragment depth -- values. [$sel:vkDepthBiasEnable:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> VkBool32 -- | depthBiasConstantFactor is a scalar factor controlling the -- constant depth value added to each fragment. [$sel:vkDepthBiasConstantFactor:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat -- | depthBiasClamp is the maximum (or minimum) depth bias of a -- fragment. [$sel:vkDepthBiasClamp:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat -- | depthBiasSlopeFactor is a scalar factor applied to a -- fragment’s slope in depth bias calculations. [$sel:vkDepthBiasSlopeFactor:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat -- | lineWidth is the width of rasterized line segments. [$sel:vkLineWidth:VkPipelineRasterizationStateCreateInfo] :: VkPipelineRasterizationStateCreateInfo -> CFloat -- | VkPipelineMultisampleStateCreateInfo - Structure specifying parameters -- of a newly created pipeline multisample state -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkGraphicsPipelineCreateInfo, -- VkPipelineMultisampleStateCreateFlags, -- VkSampleCountFlagBits, VkSampleMask, -- VkStructureType data VkPipelineMultisampleStateCreateInfo VkPipelineMultisampleStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineMultisampleStateCreateFlags -> VkSampleCountFlagBits -> VkBool32 -> CFloat -> Ptr VkSampleMask -> VkBool32 -> VkBool32 -> VkPipelineMultisampleStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkPipelineMultisampleStateCreateFlags -- | rasterizationSamples is a VkSampleCountFlagBits -- specifying the number of samples per pixel used in rasterization. [$sel:vkRasterizationSamples:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkSampleCountFlagBits -- | sampleShadingEnable can be used to enable Sample -- Shading. [$sel:vkSampleShadingEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32 -- | minSampleShading specifies a minimum fraction of sample -- shading if sampleShadingEnable is set to VK_TRUE. [$sel:vkMinSampleShading:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> CFloat -- | pSampleMask is a bitmask of static coverage information that -- is ANDed with the coverage information generated during rasterization, -- as described in Sample Mask. [$sel:vkPSampleMask:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> Ptr VkSampleMask -- | alphaToCoverageEnable controls whether a temporary coverage -- value is generated based on the alpha component of the fragment’s -- first color output as specified in the Multisample Coverage -- section. [$sel:vkAlphaToCoverageEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32 -- | alphaToOneEnable controls whether the alpha component of the -- fragment’s first color output is replaced with one as described in -- Multisample Coverage. [$sel:vkAlphaToOneEnable:VkPipelineMultisampleStateCreateInfo] :: VkPipelineMultisampleStateCreateInfo -> VkBool32 -- | VkPipelineColorBlendAttachmentState - Structure specifying a pipeline -- color blend attachment state -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBlendFactor, VkBlendOp, VkBool32, -- VkColorComponentFlags, -- VkPipelineColorBlendStateCreateInfo data VkPipelineColorBlendAttachmentState VkPipelineColorBlendAttachmentState :: VkBool32 -> VkBlendFactor -> VkBlendFactor -> VkBlendOp -> VkBlendFactor -> VkBlendFactor -> VkBlendOp -> VkColorComponentFlags -> VkPipelineColorBlendAttachmentState -- | blendEnable controls whether blending is enabled for the -- corresponding color attachment. If blending is not enabled, the source -- fragment’s color for that attachment is passed through unmodified. [$sel:vkBlendEnable:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBool32 -- | srcColorBlendFactor selects which blend factor is used to -- determine the source factors (Sr,Sg,Sb). [$sel:vkSrcColorBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor -- | dstColorBlendFactor selects which blend factor is used to -- determine the destination factors (Dr,Dg,Db). [$sel:vkDstColorBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor -- | colorBlendOp selects which blend operation is used to -- calculate the RGB values to write to the color attachment. [$sel:vkColorBlendOp:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendOp -- | srcAlphaBlendFactor selects which blend factor is used to -- determine the source factor Sa. [$sel:vkSrcAlphaBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor -- | dstAlphaBlendFactor selects which blend factor is used to -- determine the destination factor Da. [$sel:vkDstAlphaBlendFactor:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendFactor -- | alphaBlendOp selects which blend operation is use to -- calculate the alpha values to write to the color attachment. [$sel:vkAlphaBlendOp:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkBlendOp -- | colorWriteMask is a bitmask of -- VkColorComponentFlagBits specifying which of the R, G, B, -- and/or A components are enabled for writing, as described for the -- Color Write Mask. [$sel:vkColorWriteMask:VkPipelineColorBlendAttachmentState] :: VkPipelineColorBlendAttachmentState -> VkColorComponentFlags -- | VkPipelineColorBlendStateCreateInfo - Structure specifying parameters -- of a newly created pipeline color blend state -- --

Description

-- -- Each element of the pAttachments array is a -- VkPipelineColorBlendAttachmentState structure specifying -- per-target blending state for each individual color attachment. If the -- independent blending feature is not enabled on the device, all -- VkPipelineColorBlendAttachmentState elements in the -- pAttachments array must be identical. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkGraphicsPipelineCreateInfo, -- VkLogicOp, VkPipelineColorBlendAttachmentState, -- VkPipelineColorBlendStateCreateFlags, VkStructureType data VkPipelineColorBlendStateCreateInfo VkPipelineColorBlendStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineColorBlendStateCreateFlags -> VkBool32 -> VkLogicOp -> Word32 -> Ptr VkPipelineColorBlendAttachmentState -> Vector 4 CFloat -> VkPipelineColorBlendStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkPipelineColorBlendStateCreateFlags -- | logicOpEnable controls whether to apply Logical -- Operations. [$sel:vkLogicOpEnable:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkBool32 -- | logicOp selects which logical operation to apply. [$sel:vkLogicOp:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> VkLogicOp -- | attachmentCount is the number of -- VkPipelineColorBlendAttachmentState elements in -- pAttachments. This value must equal the -- colorAttachmentCount for the subpass in which this pipeline -- is used. [$sel:vkAttachmentCount:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Word32 -- | pAttachments: is a pointer to array of per target attachment -- states. [$sel:vkPAttachments:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Ptr VkPipelineColorBlendAttachmentState -- | blendConstants is an array of four values used as the R, G, -- B, and A components of the blend constant that are used in blending, -- depending on the blend factor. [$sel:vkBlendConstants:VkPipelineColorBlendStateCreateInfo] :: VkPipelineColorBlendStateCreateInfo -> Vector 4 CFloat -- | VkPipelineDynamicStateCreateInfo - Structure specifying parameters of -- a newly created pipeline dynamic state -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDynamicState, VkGraphicsPipelineCreateInfo, -- VkPipelineDynamicStateCreateFlags, VkStructureType data VkPipelineDynamicStateCreateInfo VkPipelineDynamicStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineDynamicStateCreateFlags -> Word32 -> Ptr VkDynamicState -> VkPipelineDynamicStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> VkPipelineDynamicStateCreateFlags -- | dynamicStateCount is the number of elements in the -- pDynamicStates array. [$sel:vkDynamicStateCount:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Word32 -- | pDynamicStates is an array of VkDynamicState values -- specifying which pieces of pipeline state will use the values from -- dynamic state commands rather than from pipeline state creation info. [$sel:vkPDynamicStates:VkPipelineDynamicStateCreateInfo] :: VkPipelineDynamicStateCreateInfo -> Ptr VkDynamicState -- | VkStencilOpState - Structure specifying stencil operation state -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkCompareOp, VkPipelineDepthStencilStateCreateInfo, -- VkStencilOp data VkStencilOpState VkStencilOpState :: VkStencilOp -> VkStencilOp -> VkStencilOp -> VkCompareOp -> Word32 -> Word32 -> Word32 -> VkStencilOpState -- | failOp is a VkStencilOp value specifying the action -- performed on samples that fail the stencil test. [$sel:vkFailOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp -- | passOp is a VkStencilOp value specifying the action -- performed on samples that pass both the depth and stencil tests. [$sel:vkPassOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp -- | depthFailOp is a VkStencilOp value specifying the -- action performed on samples that pass the stencil test and fail the -- depth test. [$sel:vkDepthFailOp:VkStencilOpState] :: VkStencilOpState -> VkStencilOp -- | compareOp is a VkCompareOp value specifying the -- comparison operator used in the stencil test. [$sel:vkCompareOp:VkStencilOpState] :: VkStencilOpState -> VkCompareOp -- | compareMask selects the bits of the unsigned integer stencil -- values participating in the stencil test. [$sel:vkCompareMask:VkStencilOpState] :: VkStencilOpState -> Word32 -- | writeMask selects the bits of the unsigned integer stencil -- values updated by the stencil test in the stencil framebuffer -- attachment. [$sel:vkWriteMask:VkStencilOpState] :: VkStencilOpState -> Word32 -- | reference is an integer reference value that is used in the -- unsigned stencil comparison. [$sel:vkReference:VkStencilOpState] :: VkStencilOpState -> Word32 -- | VkPipelineDepthStencilStateCreateInfo - Structure specifying -- parameters of a newly created pipeline depth stencil state -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkCompareOp, -- VkGraphicsPipelineCreateInfo, -- VkPipelineDepthStencilStateCreateFlags, -- VkStencilOpState, VkStructureType data VkPipelineDepthStencilStateCreateInfo VkPipelineDepthStencilStateCreateInfo :: VkStructureType -> Ptr () -> VkPipelineDepthStencilStateCreateFlags -> VkBool32 -> VkBool32 -> VkCompareOp -> VkBool32 -> VkBool32 -> VkStencilOpState -> VkStencilOpState -> CFloat -> CFloat -> VkPipelineDepthStencilStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkPipelineDepthStencilStateCreateFlags -- | depthTestEnable controls whether depth testing is -- enabled. [$sel:vkDepthTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32 -- | depthWriteEnable controls whether depth writes are -- enabled when depthTestEnable is VK_TRUE. Depth -- writes are always disabled when depthTestEnable is -- VK_FALSE. [$sel:vkDepthWriteEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32 -- | depthCompareOp is the comparison operator used in the -- depth test. [$sel:vkDepthCompareOp:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkCompareOp -- | depthBoundsTestEnable controls whether depth bounds -- testing is enabled. [$sel:vkDepthBoundsTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32 -- | stencilTestEnable controls whether stencil testing is -- enabled. [$sel:vkStencilTestEnable:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkBool32 -- | front and back control the parameters of the -- stencil test. [$sel:vkFront:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStencilOpState [$sel:vkBack:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> VkStencilOpState -- | minDepthBounds and maxDepthBounds define the range -- of values used in the depth bounds test. [$sel:vkMinDepthBounds:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> CFloat [$sel:vkMaxDepthBounds:VkPipelineDepthStencilStateCreateInfo] :: VkPipelineDepthStencilStateCreateInfo -> CFloat -- | VkGraphicsPipelineCreateInfo - Structure specifying parameters of a -- newly created graphics pipeline -- --

Description

-- -- The parameters basePipelineHandle and -- basePipelineIndex are described in more detail in Pipeline -- Derivatives. -- -- pStages points to an array of -- VkPipelineShaderStageCreateInfo structures, which were -- previously described in Compute Pipelines. -- -- pDynamicState points to a structure of type -- VkPipelineDynamicStateCreateInfo. -- -- If any shader stage fails to compile, the compile log will be reported -- back to the application, and VK_ERROR_INVALID_SHADER_NV will -- be generated. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPipeline, VkPipelineColorBlendStateCreateInfo, -- VkPipelineCreateFlags, -- VkPipelineDepthStencilStateCreateInfo, -- VkPipelineDynamicStateCreateInfo, -- VkPipelineInputAssemblyStateCreateInfo, -- VkPipelineLayout, VkPipelineMultisampleStateCreateInfo, -- VkPipelineRasterizationStateCreateInfo, -- VkPipelineShaderStageCreateInfo, -- VkPipelineTessellationStateCreateInfo, -- VkPipelineVertexInputStateCreateInfo, -- VkPipelineViewportStateCreateInfo, VkRenderPass, -- VkStructureType, vkCreateGraphicsPipelines data VkGraphicsPipelineCreateInfo 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 -- | sType is the type of this structure. [$sel:vkSType:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr () -- | flags is a bitmask of VkPipelineCreateFlagBits -- specifying how the pipeline will be generated. [$sel:vkFlags:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipelineCreateFlags -- | stageCount is the number of entries in the pStages -- array. [$sel:vkStageCount:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Word32 -- | pStages is an array of size stageCount structures of -- type VkPipelineShaderStageCreateInfo describing the set of the -- shader stages to be included in the graphics pipeline. [$sel:vkPStages:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineShaderStageCreateInfo -- | pVertexInputState is a pointer to an instance of the -- VkPipelineVertexInputStateCreateInfo structure. [$sel:vkPVertexInputState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineVertexInputStateCreateInfo -- | pInputAssemblyState is a pointer to an instance of the -- VkPipelineInputAssemblyStateCreateInfo structure which -- determines input assembly behavior, as described in Drawing -- Commands. [$sel:vkPInputAssemblyState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineInputAssemblyStateCreateInfo -- | pTessellationState is a pointer to an instance of the -- VkPipelineTessellationStateCreateInfo structure, and is ignored -- if the pipeline does not include a tessellation control shader stage -- and tessellation evaluation shader stage. [$sel:vkPTessellationState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineTessellationStateCreateInfo -- | pViewportState is a pointer to an instance of the -- VkPipelineViewportStateCreateInfo structure, and is ignored if -- the pipeline has rasterization disabled. [$sel:vkPViewportState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineViewportStateCreateInfo -- | pRasterizationState is a pointer to an instance of the -- VkPipelineRasterizationStateCreateInfo structure. [$sel:vkPRasterizationState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineRasterizationStateCreateInfo -- | pMultisampleState is a pointer to an instance of the -- VkPipelineMultisampleStateCreateInfo, and is ignored if the -- pipeline has rasterization disabled. [$sel:vkPMultisampleState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineMultisampleStateCreateInfo -- | pDepthStencilState is a pointer to an instance of the -- VkPipelineDepthStencilStateCreateInfo structure, and is ignored -- if the pipeline has rasterization disabled or if the subpass of the -- render pass the pipeline is created against does not use a -- depth/stencil attachment. [$sel:vkPDepthStencilState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineDepthStencilStateCreateInfo -- | pColorBlendState is a pointer to an instance of the -- VkPipelineColorBlendStateCreateInfo structure, and is ignored -- if the pipeline has rasterization disabled or if the subpass of the -- render pass the pipeline is created against does not use any color -- attachments. [$sel:vkPColorBlendState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineColorBlendStateCreateInfo -- | pDynamicState is a pointer to -- VkPipelineDynamicStateCreateInfo and is used to indicate which -- properties of the pipeline state object are dynamic and can be -- changed independently of the pipeline state. This can be -- NULL, which means no state in the pipeline is considered -- dynamic. [$sel:vkPDynamicState:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Ptr VkPipelineDynamicStateCreateInfo -- | layout is the description of binding locations used by both -- the pipeline and descriptor sets used with the pipeline. [$sel:vkLayout:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipelineLayout -- | renderPass is a handle to a render pass object describing the -- environment in which the pipeline will be used; the pipeline -- must only be used with an instance of any render pass -- compatible with the one provided. See Render Pass Compatibility -- for more information. [$sel:vkRenderPass:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkRenderPass -- | subpass is the index of the subpass in the render pass where -- this pipeline will be used. [$sel:vkSubpass:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Word32 -- | basePipelineHandle is a pipeline to derive from. [$sel:vkBasePipelineHandle:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> VkPipeline -- | basePipelineIndex is an index into the pCreateInfos -- parameter to use as a pipeline to derive from. [$sel:vkBasePipelineIndex:VkGraphicsPipelineCreateInfo] :: VkGraphicsPipelineCreateInfo -> Int32 -- | VkPipelineCreateFlags - Bitmask of VkPipelineCreateFlagBits -- --

Description

-- -- VkPipelineCreateFlags is a bitmask type for setting a mask of -- zero or more VkPipelineCreateFlagBits. -- --

See Also

-- -- VkComputePipelineCreateInfo, -- VkGraphicsPipelineCreateInfo, VkPipelineCreateFlagBits type VkPipelineCreateFlags = VkPipelineCreateFlagBits -- | VkColorComponentFlags - Bitmask of VkColorComponentFlagBits -- --

Description

-- -- VkColorComponentFlags is a bitmask type for setting a mask of -- zero or more VkColorComponentFlagBits. -- --

See Also

-- -- VkColorComponentFlagBits, -- VkPipelineColorBlendAttachmentState type VkColorComponentFlags = VkColorComponentFlagBits -- | VkCullModeFlags - Bitmask of VkCullModeFlagBits -- --

Description

-- -- VkCullModeFlags is a bitmask type for setting a mask of zero -- or more VkCullModeFlagBits. -- --

See Also

-- -- VkCullModeFlagBits, -- VkPipelineRasterizationStateCreateInfo type VkCullModeFlags = VkCullModeFlagBits -- | VkSampleMask - Mask of sample coverage information -- --

Description

-- --

See Also

-- -- VkPipelineMultisampleStateCreateInfo type VkSampleMask = Word32 instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkComputePipelineCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkComputePipelineCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkStencilOpState instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkStencilOpState instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkVertexInputAttributeDescription instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkVertexInputAttributeDescription instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkVertexInputBindingDescription instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkVertexInputBindingDescription instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkSpecializationInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkSpecializationInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkSpecializationMapEntry instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkSpecializationMapEntry instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkRect2D instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkRect2D instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkViewport instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkViewport instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkExtent2D instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkExtent2D instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkOffset2D instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkOffset2D instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkStencilOp instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkStencilOp instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkStencilOp instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkLogicOp instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkLogicOp instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkLogicOp instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkFrontFace instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkFrontFace instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkFrontFace instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPolygonMode instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkPolygonMode instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkPolygonMode instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkDynamicState instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkDynamicState instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkDynamicState instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkCompareOp instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkCompareOp instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkCompareOp instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkBlendOp instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkBlendOp instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkBlendOp instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkBlendFactor instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pipeline.VkBlendFactor instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pipeline.VkBlendFactor instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkGraphicsPipelineCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendAttachmentState instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkComputePipelineCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkStencilOpState instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkVertexInputAttributeDescription instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkVertexInputBindingDescription instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkSpecializationInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkSpecializationMapEntry instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkRect2D instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkViewport instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkExtent2D instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pipeline.VkOffset2D instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkCullModeFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkColorComponentFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkShaderStageFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineShaderStageCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineVertexInputStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineInputAssemblyStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineTessellationStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineViewportStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineRasterizationStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineMultisampleStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineColorBlendStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineDynamicStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPipelineDepthStencilStateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkVertexInputRate instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkStencilOp instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkStencilOp instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPrimitiveTopology instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkLogicOp instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkLogicOp instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkFrontFace instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkFrontFace instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkPolygonMode instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkPolygonMode instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkDynamicState instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkDynamicState instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkCompareOp instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkCompareOp instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkBlendOp instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkBlendOp instance GHC.Show.Show Graphics.Vulkan.Core10.Pipeline.VkBlendFactor instance GHC.Read.Read Graphics.Vulkan.Core10.Pipeline.VkBlendFactor module Graphics.Vulkan.Extensions.VK_NV_fill_rectangle module Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling -- | VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV specifies that the -- pViewportScalings state in -- VkPipelineViewportWScalingStateCreateInfoNV will be ignored -- and must be set dynamically with -- vkCmdSetViewportWScalingNV before any draws are performed with -- a pipeline state with -- VkPipelineViewportWScalingStateCreateInfo member -- viewportScalingEnable set to VK_TRUE -- | vkCmdSetViewportWScalingNV - Set the viewport W scaling on a command -- buffer -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkViewportWScalingNV vkCmdSetViewportWScalingNV :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewportWScalings" ::: Ptr VkViewportWScalingNV) -> IO () -- | VkViewportWScalingNV - Structure specifying a viewport -- --

Description

-- --

See Also

-- -- VkPipelineViewportWScalingStateCreateInfoNV, -- vkCmdSetViewportWScalingNV data VkViewportWScalingNV VkViewportWScalingNV :: CFloat -> CFloat -> VkViewportWScalingNV -- | xcoeff and ycoeff are the viewport’s W scaling -- factor for x and y respectively. [$sel:vkXcoeff:VkViewportWScalingNV] :: VkViewportWScalingNV -> CFloat [$sel:vkYcoeff:VkViewportWScalingNV] :: VkViewportWScalingNV -> CFloat -- | VkPipelineViewportWScalingStateCreateInfoNV - Structure specifying -- parameters of a newly created pipeline viewport W scaling state -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkStructureType, VkViewportWScalingNV data VkPipelineViewportWScalingStateCreateInfoNV VkPipelineViewportWScalingStateCreateInfoNV :: VkStructureType -> Ptr () -> VkBool32 -> Word32 -> Ptr VkViewportWScalingNV -> VkPipelineViewportWScalingStateCreateInfoNV -- | sType is the type of this structure. [$sel:vkSType:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> Ptr () -- | viewportWScalingEnable controls whether viewport W -- scaling is enabled. [$sel:vkViewportWScalingEnable:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> VkBool32 -- | viewportCount is the number of viewports used by W -- scaling, and must match the number of viewports in the pipeline -- if viewport W scaling is enabled. [$sel:vkViewportCount:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> Word32 -- | pViewportWScalings is a pointer to an array of -- VkViewportWScalingNV structures, which define the W -- scaling parameters for the corresponding viewport. If the viewport -- W scaling state is dynamic, this member is ignored. [$sel:vkPViewportWScalings:VkPipelineViewportWScalingStateCreateInfoNV] :: VkPipelineViewportWScalingStateCreateInfoNV -> Ptr VkViewportWScalingNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkViewportWScalingNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkViewportWScalingNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkPipelineViewportWScalingStateCreateInfoNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_clip_space_w_scaling.VkViewportWScalingNV module Graphics.Vulkan.Extensions.VK_KHR_surface -- | VkColorSpaceKHR - supported color space of the presentation engine -- --

Description

-- -- -- -- -- -- The color components of Non-linear color space swap chain images have -- had the appropriate transfer function applied. Vulkan requires that -- all implementations support the sRGB transfer function when using an -- SRGB pixel format. Other transfer functions, such as SMPTE 170M or -- SMPTE2084, must not be performed by the implementation, but -- can be performed by the application shader. This extension -- defines enums for VkColorSpaceKHR that correspond to the -- following color spaces: -- --
--   +----------+----------+----------+----------+----------+-----------+
--   | Name     | Red      | Green    | Blue     | White-po | Transfer  |
--   |          | Primary  | Primary  | Primary  | int      | function  |
--   +==========+==========+==========+==========+==========+===========+
--   | DCI-P3   | 0.680,   | 0.265,   | 0.150,   | 0.3127,  | Gamma 2.6 |
--   |          | 0.320    | 0.690    | 0.060    | 0.3290   |           |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   | Display- | 0.680,   | 0.265,   | 0.150,   | 0.3127,  | Display-P |
--   | P3       | 0.320    | 0.690    | 0.060    | 0.3290   | 3         |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   | BT709    | 0.640,   | 0.300,   | 0.150,   | 0.3127,  | SMPTE     |
--   |          | 0.330    | 0.600    | 0.060    | 0.3290   | 170M      |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   | sRGB     | 0.640,   | 0.300,   | 0.150,   | 0.3127,  | sRGB      |
--   |          | 0.330    | 0.600    | 0.060    | 0.3290   |           |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   | extended | 0.640,   | 0.300,   | 0.150,   | 0.3127,  | extended  |
--   | sRGB     | 0.330    | 0.600    | 0.060    | 0.3290   | sRGB      |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   | HDR10_ST | 0.708,   | 0.170,   | 0.131,   | 0.3127,  | ST2084    |
--   | 2084     | 0.292    | 0.797    | 0.046    | 0.3290   |           |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   | DOLBYVIS | 0.708,   | 0.170,   | 0.131,   | 0.3127,  | ST2084    |
--   | ION      | 0.292    | 0.797    | 0.046    | 0.3290   |           |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   | HDR10_HL | 0.708,   | 0.170,   | 0.131,   | 0.3127,  | HLG       |
--   | G        | 0.292    | 0.797    | 0.046    | 0.3290   |           |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   | AdobeRGB | 0.640,   | 0.210,   | 0.150,   | 0.3127,  | AdobeRGB  |
--   |          | 0.330    | 0.710    | 0.060    | 0.3290   |           |
--   |          |          |          |          | (D65)    |           |
--   +----------+----------+----------+----------+----------+-----------+
--   
--   Color Spaces and Attributes
--   
-- -- For Opto-Electrical Transfer Function (OETF), unless otherwise -- specified, the values of L and E are defined as: -- -- L - linear luminance of image <math> for conventional -- colorimetry -- -- E - corresponding electrical signal (value stored in memory) -- --

See Also

-- -- VkSurfaceFormatKHR, VkSwapchainCreateInfoKHR newtype VkColorSpaceKHR VkColorSpaceKHR :: Int32 -> VkColorSpaceKHR -- | VkPresentModeKHR - presentation mode supported for a surface -- --

Description

-- -- -- -- -- -- The supported VkImageUsageFlagBits of the presentable images of -- a swapchain created for a surface may differ depending on the -- presentation mode, and can be determined as per the table below: -- --
--   +-----------------------------------+-----------------------------------+
--   | Presentation mode                 | Image usage flags                 |
--   +===================================+===================================+
--   | @VK_PRESENT_MODE_IMMEDIATE_KHR@   | 'VkSurfaceCapabilitiesKHR'::@supp |
--   |                                   | ortedUsageFlags@                  |
--   +-----------------------------------+-----------------------------------+
--   | @VK_PRESENT_MODE_MAILBOX_KHR@     | 'VkSurfaceCapabilitiesKHR'::@supp |
--   |                                   | ortedUsageFlags@                  |
--   +-----------------------------------+-----------------------------------+
--   | @VK_PRESENT_MODE_FIFO_KHR@        | 'VkSurfaceCapabilitiesKHR'::@supp |
--   |                                   | ortedUsageFlags@                  |
--   +-----------------------------------+-----------------------------------+
--   | @VK_PRESENT_MODE_FIFO_RELAXED_KHR | 'VkSurfaceCapabilitiesKHR'::@supp |
--   | @                                 | ortedUsageFlags@                  |
--   +-----------------------------------+-----------------------------------+
--   | @VK_PRESENT_MODE_SHARED_DEMAND_RE | 'Graphics.Vulkan.Extensions.VK_KH |
--   | FRESH_KHR@                        | R_shared_presentable_image.VkShar |
--   |                                   | edPresentSurfaceCapabilitiesKHR': |
--   |                                   | :@sharedPresentSupportedUsageFlag |
--   |                                   | s@                                |
--   +-----------------------------------+-----------------------------------+
--   | @VK_PRESENT_MODE_SHARED_CONTINUOU | 'Graphics.Vulkan.Extensions.VK_KH |
--   | S_REFRESH_KHR@                    | R_shared_presentable_image.VkShar |
--   |                                   | edPresentSurfaceCapabilitiesKHR': |
--   |                                   | :@sharedPresentSupportedUsageFlag |
--   |                                   | s@                                |
--   +-----------------------------------+-----------------------------------+
--   
--   Presentable image usage queries
--   
-- -- 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

-- -- VkSwapchainCreateInfoKHR, -- vkGetPhysicalDeviceSurfacePresentModesKHR newtype VkPresentModeKHR VkPresentModeKHR :: Int32 -> VkPresentModeKHR -- | VkCompositeAlphaFlagBitsKHR - alpha compositing modes supported on a -- device -- --

Description

-- -- These values are described as follows: -- -- -- --

See Also

-- -- VkCompositeAlphaFlagsKHR, VkSwapchainCreateInfoKHR newtype VkCompositeAlphaFlagBitsKHR VkCompositeAlphaFlagBitsKHR :: VkFlags -> VkCompositeAlphaFlagBitsKHR -- | VkSurfaceTransformFlagBitsKHR - presentation transforms supported on a -- device -- --

See Also

-- -- VkDisplaySurfaceCreateInfoKHR, -- VkSurfaceCapabilities2EXT, VkSurfaceCapabilitiesKHR, -- VkSurfaceTransformFlagsKHR, VkSwapchainCreateInfoKHR newtype VkSurfaceTransformFlagBitsKHR VkSurfaceTransformFlagBitsKHR :: VkFlags -> VkSurfaceTransformFlagBitsKHR -- | VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR specifies that image -- content is presented without being transformed. -- | VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR specifies that image -- content is rotated 90 degrees clockwise. -- | VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR specifies that image -- content is rotated 180 degrees clockwise. -- | VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR specifies that image -- content is rotated 270 degrees clockwise. -- | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR specifies that -- image content is mirrored horizontally. -- | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR -- specifies that image content is mirrored horizontally, then rotated 90 -- degrees clockwise. -- | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR -- specifies that image content is mirrored horizontally, then rotated -- 180 degrees clockwise. -- | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR -- specifies that image content is mirrored horizontally, then rotated -- 270 degrees clockwise. -- | 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. -- | VkSurfaceKHR - Opaque handle to a surface object -- --

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

-- -- VkPhysicalDeviceSurfaceInfo2KHR, -- VkSwapchainCreateInfoKHR, vkCreateAndroidSurfaceKHR, -- vkCreateDisplayPlaneSurfaceKHR, vkCreateIOSSurfaceMVK, -- vkCreateMacOSSurfaceMVK, vkCreateMirSurfaceKHR, -- vkCreateViSurfaceNN, vkCreateWaylandSurfaceKHR, -- vkCreateWin32SurfaceKHR, vkCreateXcbSurfaceKHR, -- vkCreateXlibSurfaceKHR, vkDestroySurfaceKHR, -- vkGetDeviceGroupSurfacePresentModesKHR, -- vkGetPhysicalDevicePresentRectanglesKHR, -- vkGetPhysicalDeviceSurfaceCapabilities2EXT, -- vkGetPhysicalDeviceSurfaceCapabilitiesKHR, -- vkGetPhysicalDeviceSurfaceFormatsKHR, -- vkGetPhysicalDeviceSurfacePresentModesKHR, -- vkGetPhysicalDeviceSurfaceSupportKHR type VkSurfaceKHR = Ptr VkSurfaceKHR_T -- | vkDestroySurfaceKHR - Destroy a VkSurfaceKHR object -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkInstance, VkSurfaceKHR vkDestroySurfaceKHR :: ("instance" ::: VkInstance) -> ("surface" ::: VkSurfaceKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkGetPhysicalDeviceSurfaceSupportKHR - Query if presentation is -- supported -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkBool32, VkPhysicalDevice, VkSurfaceKHR vkGetPhysicalDeviceSurfaceSupportKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("queueFamilyIndex" ::: Word32) -> ("surface" ::: VkSurfaceKHR) -> ("pSupported" ::: Ptr VkBool32) -> IO VkResult -- | vkGetPhysicalDeviceSurfaceCapabilitiesKHR - Query surface capabilities -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkSurfaceCapabilitiesKHR, -- VkSurfaceKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilitiesKHR) -> IO VkResult -- | vkGetPhysicalDeviceSurfaceFormatsKHR - Query color formats supported -- by surface -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkSurfaceFormatKHR, -- VkSurfaceKHR vkGetPhysicalDeviceSurfaceFormatsKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr VkSurfaceFormatKHR) -> IO VkResult -- | vkGetPhysicalDeviceSurfacePresentModesKHR - Query supported -- presentation modes -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPresentModeKHR, VkSurfaceKHR vkGetPhysicalDeviceSurfacePresentModesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pPresentModeCount" ::: Ptr Word32) -> ("pPresentModes" ::: Ptr VkPresentModeKHR) -> IO VkResult -- | VkSurfaceCapabilitiesKHR - Structure describing capabilities of a -- surface -- --

Description

-- -- Note -- -- Supported usage flags of a presentable image when using -- VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or -- VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR presentation -- mode are provided by -- VkSharedPresentSurfaceCapabilitiesKHR::sharedPresentSupportedUsageFlags. -- -- Note -- -- Formulas such as min(N, maxImageCount) are not correct, since -- maxImageCount may be zero. -- --

See Also

-- -- VkCompositeAlphaFlagsKHR, VkExtent2D, -- VkImageUsageFlags, VkSurfaceCapabilities2KHR, -- VkSurfaceTransformFlagBitsKHR, -- VkSurfaceTransformFlagsKHR, -- vkGetPhysicalDeviceSurfaceCapabilitiesKHR data VkSurfaceCapabilitiesKHR VkSurfaceCapabilitiesKHR :: Word32 -> Word32 -> VkExtent2D -> VkExtent2D -> VkExtent2D -> Word32 -> VkSurfaceTransformFlagsKHR -> VkSurfaceTransformFlagBitsKHR -> VkCompositeAlphaFlagsKHR -> VkImageUsageFlags -> VkSurfaceCapabilitiesKHR -- | minImageCount is the minimum number of images the specified -- device supports for a swapchain created for the surface, and will be -- at least one. [$sel:vkMinImageCount:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32 -- | maxImageCount is the maximum number of images the specified -- device supports for a swapchain created for the surface, and will be -- either 0, or greater than or equal to minImageCount. A value -- of 0 means that there is no limit on the number of images, though -- there may be limits related to the total amount of memory used -- by presentable images. [$sel:vkMaxImageCount:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32 -- | currentExtent is the current width and height of the surface, -- or the special value (0xFFFFFFFF, 0xFFFFFFFF) indicating that the -- surface size will be determined by the extent of a swapchain targeting -- the surface. [$sel:vkCurrentExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D -- | minImageExtent contains the smallest valid swapchain extent -- for the surface on the specified device. The width and -- height of the extent will each be less than or equal to the -- corresponding width and height of -- currentExtent, unless currentExtent has the special -- value described above. [$sel:vkMinImageExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D -- | maxImageExtent contains the largest valid swapchain extent -- for the surface on the specified device. The width and -- height of the extent will each be greater than or equal to -- the corresponding width and height of -- minImageExtent. The width and height of the -- extent will each be greater than or equal to the corresponding -- width and height of currentExtent, unless -- currentExtent has the special value described above. [$sel:vkMaxImageExtent:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkExtent2D -- | maxImageArrayLayers is the maximum number of layers -- presentable images can have for a swapchain created for this -- device and surface, and will be at least one. [$sel:vkMaxImageArrayLayers:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> Word32 -- | supportedTransforms is a bitmask of -- VkSurfaceTransformFlagBitsKHR indicating the presentation -- transforms supported for the surface on the specified device. At least -- one bit will be set. [$sel:vkSupportedTransforms:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkSurfaceTransformFlagsKHR -- | currentTransform is VkSurfaceTransformFlagBitsKHR -- value indicating the surface’s current transform relative to the -- presentation engine’s natural orientation. [$sel:vkCurrentTransform:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkSurfaceTransformFlagBitsKHR -- | supportedCompositeAlpha is a bitmask of -- VkCompositeAlphaFlagBitsKHR, representing the alpha compositing -- modes supported by the presentation engine for the surface on the -- specified device, and at least one bit will be set. Opaque composition -- can be achieved in any alpha compositing mode by either using -- an image format that has no alpha component, or by ensuring that all -- pixels in the presentable images have an alpha value of 1.0. [$sel:vkSupportedCompositeAlpha:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkCompositeAlphaFlagsKHR -- | supportedUsageFlags is a bitmask of -- VkImageUsageFlagBits representing the ways the application -- can use the presentable images of a swapchain created with -- VkPresentModeKHR set to VK_PRESENT_MODE_IMMEDIATE_KHR, -- VK_PRESENT_MODE_MAILBOX_KHR, -- VK_PRESENT_MODE_FIFO_KHR or -- VK_PRESENT_MODE_FIFO_RELAXED_KHR for the surface on the -- specified device. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT -- must be included in the set but implementations may -- support additional usages. [$sel:vkSupportedUsageFlags:VkSurfaceCapabilitiesKHR] :: VkSurfaceCapabilitiesKHR -> VkImageUsageFlags -- | VkSurfaceFormatKHR - Structure describing a supported swapchain -- format-color space pair -- --

Description

-- --

See Also

-- -- VkColorSpaceKHR, VkFormat, VkSurfaceFormat2KHR, -- vkGetPhysicalDeviceSurfaceFormatsKHR data VkSurfaceFormatKHR VkSurfaceFormatKHR :: VkFormat -> VkColorSpaceKHR -> VkSurfaceFormatKHR -- | format is a VkFormat that is compatible with the -- specified surface. [$sel:vkFormat:VkSurfaceFormatKHR] :: VkSurfaceFormatKHR -> VkFormat -- | colorSpace is a presentation VkColorSpaceKHR that is -- compatible with the surface. [$sel:vkColorSpace:VkSurfaceFormatKHR] :: VkSurfaceFormatKHR -> VkColorSpaceKHR -- | VkCompositeAlphaFlagsKHR - Bitmask of VkCompositeAlphaFlagBitsKHR -- --

Description

-- -- VkCompositeAlphaFlagsKHR is a bitmask type for setting a mask -- of zero or more VkCompositeAlphaFlagBitsKHR. -- --

See Also

-- -- VkCompositeAlphaFlagBitsKHR, VkSurfaceCapabilities2EXT, -- VkSurfaceCapabilitiesKHR type VkCompositeAlphaFlagsKHR = VkCompositeAlphaFlagBitsKHR -- | VkSurfaceTransformFlagsKHR - Bitmask of VkSurfaceTransformFlagBitsKHR -- --

Description

-- -- VkSurfaceTransformFlagsKHR is a bitmask type for setting a -- mask of zero or more VkSurfaceTransformFlagBitsKHR. -- --

See Also

-- -- VkDisplayPropertiesKHR, VkSurfaceCapabilities2EXT, -- VkSurfaceCapabilitiesKHR, VkSurfaceTransformFlagBitsKHR type VkSurfaceTransformFlagsKHR = VkSurfaceTransformFlagBitsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceFormatKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceFormatKHR instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceCapabilitiesKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceFormatKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_surface.VkSurfaceTransformFlagBitsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_surface.VkCompositeAlphaFlagBitsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_surface.VkPresentModeKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_surface.VkColorSpaceKHR module Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2 -- | vkGetPhysicalDeviceSurfaceCapabilities2KHR - Reports capabilities of a -- surface on a physical device -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkGetPhysicalDeviceSurfaceCapabilities2KHR behaves similarly -- to vkGetPhysicalDeviceSurfaceCapabilitiesKHR, with the ability -- to specify extended inputs via chained input structures, and to return -- extended information via chained output structures. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPhysicalDeviceSurfaceInfo2KHR, -- VkSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pSurfaceInfo" ::: Ptr VkPhysicalDeviceSurfaceInfo2KHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilities2KHR) -> IO VkResult -- | vkGetPhysicalDeviceSurfaceFormats2KHR - Query color formats supported -- by surface -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPhysicalDeviceSurfaceInfo2KHR, -- VkSurfaceFormat2KHR 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

-- -- The members of VkPhysicalDeviceSurfaceInfo2KHR correspond to -- the arguments to vkGetPhysicalDeviceSurfaceCapabilitiesKHR, -- with sType and pNext added for extensibility. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkSurfaceKHR, -- vkGetPhysicalDeviceSurfaceCapabilities2KHR, -- vkGetPhysicalDeviceSurfaceFormats2KHR data VkPhysicalDeviceSurfaceInfo2KHR VkPhysicalDeviceSurfaceInfo2KHR :: VkStructureType -> Ptr () -> VkSurfaceKHR -> VkPhysicalDeviceSurfaceInfo2KHR -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceSurfaceInfo2KHR] :: VkPhysicalDeviceSurfaceInfo2KHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceSurfaceInfo2KHR] :: VkPhysicalDeviceSurfaceInfo2KHR -> Ptr () -- | surface is the surface that will be associated with the -- swapchain. [$sel:vkSurface:VkPhysicalDeviceSurfaceInfo2KHR] :: VkPhysicalDeviceSurfaceInfo2KHR -> VkSurfaceKHR -- | VkSurfaceCapabilities2KHR - Structure describing capabilities of a -- surface -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkSurfaceCapabilitiesKHR, -- vkGetPhysicalDeviceSurfaceCapabilities2KHR data VkSurfaceCapabilities2KHR VkSurfaceCapabilities2KHR :: VkStructureType -> Ptr () -> VkSurfaceCapabilitiesKHR -> VkSurfaceCapabilities2KHR -- | sType is the type of this structure. [$sel:vkSType:VkSurfaceCapabilities2KHR] :: VkSurfaceCapabilities2KHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSurfaceCapabilities2KHR] :: VkSurfaceCapabilities2KHR -> Ptr () -- | surfaceCapabilities is a structure of type -- VkSurfaceCapabilitiesKHR describing the capabilities of the -- specified surface. [$sel:vkSurfaceCapabilities:VkSurfaceCapabilities2KHR] :: VkSurfaceCapabilities2KHR -> VkSurfaceCapabilitiesKHR -- | VkSurfaceFormat2KHR - Structure describing a supported swapchain -- format tuple -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkSurfaceFormatKHR, -- vkGetPhysicalDeviceSurfaceFormats2KHR data VkSurfaceFormat2KHR VkSurfaceFormat2KHR :: VkStructureType -> Ptr () -> VkSurfaceFormatKHR -> VkSurfaceFormat2KHR -- | sType is the type of this structure. [$sel:vkSType:VkSurfaceFormat2KHR] :: VkSurfaceFormat2KHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSurfaceFormat2KHR] :: VkSurfaceFormat2KHR -> Ptr () -- | surfaceFormat is an instance of VkSurfaceFormatKHR -- describing a format-color space pair that is compatible with the -- specified surface. [$sel:vkSurfaceFormat:VkSurfaceFormat2KHR] :: VkSurfaceFormat2KHR -> VkSurfaceFormatKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceFormat2KHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceFormat2KHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceCapabilities2KHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceCapabilities2KHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkPhysicalDeviceSurfaceInfo2KHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkPhysicalDeviceSurfaceInfo2KHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceFormat2KHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkSurfaceCapabilities2KHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_get_surface_capabilities2.VkPhysicalDeviceSurfaceInfo2KHR module Graphics.Vulkan.Extensions.VK_EXT_swapchain_colorspace module Graphics.Vulkan.Extensions.VK_KHR_incremental_present -- | VkPresentRegionsKHR - Structure hint of rectangular regions changed by -- vkQueuePresentKHR -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPresentRegionKHR, VkStructureType data VkPresentRegionsKHR VkPresentRegionsKHR :: VkStructureType -> Ptr () -> Word32 -> Ptr VkPresentRegionKHR -> VkPresentRegionsKHR -- | sType is the type of this structure. [$sel:vkSType:VkPresentRegionsKHR] :: VkPresentRegionsKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPresentRegionsKHR] :: VkPresentRegionsKHR -> Ptr () -- | swapchainCount is the number of swapchains being presented to -- by this command. [$sel:vkSwapchainCount:VkPresentRegionsKHR] :: VkPresentRegionsKHR -> Word32 -- | pRegions is NULL or a pointer to an array of -- VkPresentRegionKHR elements with swapchainCount -- entries. If not NULL, each element of pRegions -- contains the region that has changed since the last present to the -- swapchain in the corresponding entry in the -- VkPresentInfoKHR::pSwapchains array. [$sel:vkPRegions:VkPresentRegionsKHR] :: VkPresentRegionsKHR -> Ptr VkPresentRegionKHR -- | VkPresentRegionKHR - Structure containing rectangular region changed -- by vkQueuePresentKHR for a given VkImage -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkPresentRegionsKHR, VkRectLayerKHR data VkPresentRegionKHR VkPresentRegionKHR :: Word32 -> Ptr VkRectLayerKHR -> VkPresentRegionKHR -- | rectangleCount is the number of rectangles in -- pRectangles, or zero if the entire image has changed and -- should be presented. [$sel:vkRectangleCount:VkPresentRegionKHR] :: VkPresentRegionKHR -> Word32 -- | pRectangles is either NULL or a pointer to an array -- of VkRectLayerKHR structures. The VkRectLayerKHR -- structure is the framebuffer coordinates, plus layer, of a portion of -- a presentable image that has changed and must be presented. If -- non-NULL, each entry in pRectangles is a rectangle -- of the given image that has changed since the last image was presented -- to the given swapchain. [$sel:vkPRectangles:VkPresentRegionKHR] :: VkPresentRegionKHR -> Ptr VkRectLayerKHR -- | VkRectLayerKHR - Structure containing a rectangle, including layer, -- changed by vkQueuePresentKHR for a given VkImage -- --

Description

-- --

Valid Usage

-- -- -- -- -- -- 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

-- -- VkExtent2D, VkOffset2D, VkPresentRegionKHR data VkRectLayerKHR VkRectLayerKHR :: VkOffset2D -> VkExtent2D -> Word32 -> VkRectLayerKHR -- | offset is the origin of the rectangle, in pixels. [$sel:vkOffset:VkRectLayerKHR] :: VkRectLayerKHR -> VkOffset2D -- | extent is the size of the rectangle, in pixels. [$sel:vkExtent:VkRectLayerKHR] :: VkRectLayerKHR -> VkExtent2D -- | layer is the layer of the image. For images with only one -- layer, the value of layer must be 0. [$sel:vkLayer:VkRectLayerKHR] :: VkRectLayerKHR -> Word32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionsKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkRectLayerKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkRectLayerKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkPresentRegionKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_incremental_present.VkRectLayerKHR module Graphics.Vulkan.Extensions.VK_KHR_display -- | VkDisplayPlaneAlphaFlagBitsKHR - Alpha blending type -- --

See Also

-- -- VkDisplayPlaneAlphaFlagsKHR, -- VkDisplaySurfaceCreateInfoKHR newtype VkDisplayPlaneAlphaFlagBitsKHR VkDisplayPlaneAlphaFlagBitsKHR :: VkFlags -> VkDisplayPlaneAlphaFlagBitsKHR -- | VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR specifies that the -- source image will be treated as opaque. -- | 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. -- | 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. -- | 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. newtype VkDisplayModeCreateFlagsKHR VkDisplayModeCreateFlagsKHR :: VkFlags -> VkDisplayModeCreateFlagsKHR newtype VkDisplaySurfaceCreateFlagsKHR VkDisplaySurfaceCreateFlagsKHR :: VkFlags -> VkDisplaySurfaceCreateFlagsKHR -- | VkDisplayKHR - Opaque handle to a display object -- --

Description

-- --

See Also

-- -- VkDisplayPlanePropertiesKHR, VkDisplayPropertiesKHR, -- vkAcquireXlibDisplayEXT, vkCreateDisplayModeKHR, -- vkDisplayPowerControlEXT, vkGetDisplayModePropertiesKHR, -- vkGetDisplayPlaneSupportedDisplaysKHR, -- vkGetRandROutputDisplayEXT, vkRegisterDisplayEventEXT, -- vkReleaseDisplayEXT type VkDisplayKHR = Ptr VkDisplayKHR_T -- | VkDisplayModeKHR - Opaque handle to a display mode object -- --

Description

-- --

See Also

-- -- VkDisplayModePropertiesKHR, -- VkDisplaySurfaceCreateInfoKHR, vkCreateDisplayModeKHR, -- vkGetDisplayPlaneCapabilitiesKHR type VkDisplayModeKHR = Ptr VkDisplayModeKHR_T -- | vkGetPhysicalDeviceDisplayPropertiesKHR - Query information about the -- available displays -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDisplayPropertiesKHR, VkPhysicalDevice vkGetPhysicalDeviceDisplayPropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayPropertiesKHR) -> IO VkResult -- | vkGetPhysicalDeviceDisplayPlanePropertiesKHR - Query the plane -- properties -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDisplayPlanePropertiesKHR, VkPhysicalDevice vkGetPhysicalDeviceDisplayPlanePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayPlanePropertiesKHR) -> IO VkResult -- | vkGetDisplayPlaneSupportedDisplaysKHR - Query the list of displays a -- plane supports -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDisplayKHR, VkPhysicalDevice 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

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDisplayKHR, VkDisplayModePropertiesKHR, -- VkPhysicalDevice vkGetDisplayModePropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("display" ::: VkDisplayKHR) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkDisplayModePropertiesKHR) -> IO VkResult -- | vkCreateDisplayModeKHR - Create a display mode -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDisplayKHR, -- VkDisplayModeCreateInfoKHR, VkDisplayModeKHR, -- VkPhysicalDevice 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

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDisplayModeKHR, VkDisplayPlaneCapabilitiesKHR, -- VkPhysicalDevice vkGetDisplayPlaneCapabilitiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("mode" ::: VkDisplayModeKHR) -> ("planeIndex" ::: Word32) -> ("pCapabilities" ::: Ptr VkDisplayPlaneCapabilitiesKHR) -> IO VkResult -- | vkCreateDisplayPlaneSurfaceKHR - Create a VkSurfaceKHR -- structure representing a display plane and mode -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDisplaySurfaceCreateInfoKHR, -- VkInstance, VkSurfaceKHR vkCreateDisplayPlaneSurfaceKHR :: ("instance" ::: VkInstance) -> ("pCreateInfo" ::: Ptr VkDisplaySurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSurface" ::: Ptr VkSurfaceKHR) -> IO VkResult -- | VkDisplayPropertiesKHR - Structure describing an available display -- device -- --

Description

-- -- Note -- -- For devices which have no natural value to return here, -- implementations should return the maximum resolution supported. -- -- -- -- 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

-- -- VkBool32, VkDisplayKHR, VkExtent2D, -- VkSurfaceTransformFlagsKHR, -- vkGetPhysicalDeviceDisplayPropertiesKHR data VkDisplayPropertiesKHR VkDisplayPropertiesKHR :: VkDisplayKHR -> Ptr CChar -> VkExtent2D -> VkExtent2D -> VkSurfaceTransformFlagsKHR -> VkBool32 -> VkBool32 -> VkDisplayPropertiesKHR -- | display is a handle that is used to refer to the display -- described here. This handle will be valid for the lifetime of the -- Vulkan instance. [$sel:vkDisplay:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkDisplayKHR -- | displayName is a pointer to a NULL-terminated string -- containing the name of the display. Generally, this will be the name -- provided by the display’s EDID. It can be NULL if no -- suitable name is available. If not NULL, the memory it points -- to must remain accessible as long as display is valid. [$sel:vkDisplayName:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> Ptr CChar -- | physicalDimensions describes the physical width and height of -- the visible portion of the display, in millimeters. [$sel:vkPhysicalDimensions:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkExtent2D -- | physicalResolution describes the physical, native, or -- preferred resolution of the display. [$sel:vkPhysicalResolution:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkExtent2D [$sel:vkSupportedTransforms:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkSurfaceTransformFlagsKHR [$sel:vkPlaneReorderPossible:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkBool32 [$sel:vkPersistentContent:VkDisplayPropertiesKHR] :: VkDisplayPropertiesKHR -> VkBool32 -- | VkDisplayPlanePropertiesKHR - Structure describing display plane -- properties -- --

Description

-- --

See Also

-- -- VkDisplayKHR, -- vkGetPhysicalDeviceDisplayPlanePropertiesKHR data VkDisplayPlanePropertiesKHR VkDisplayPlanePropertiesKHR :: VkDisplayKHR -> Word32 -> VkDisplayPlanePropertiesKHR -- | currentDisplay is the handle of the display the plane is -- currently associated with. If the plane is not currently attached to -- any displays, this will be VK_NULL_HANDLE. [$sel:vkCurrentDisplay:VkDisplayPlanePropertiesKHR] :: VkDisplayPlanePropertiesKHR -> VkDisplayKHR -- | currentStackIndex is the current z-order of the plane. This -- will be between 0 and the value returned by -- vkGetPhysicalDeviceDisplayPlanePropertiesKHR in -- pPropertyCount. [$sel:vkCurrentStackIndex:VkDisplayPlanePropertiesKHR] :: VkDisplayPlanePropertiesKHR -> Word32 -- | VkDisplayModeParametersKHR - Structure describing display parameters -- associated with a display mode -- --

Description

-- -- Note -- -- For example, a 60Hz display mode would report a refreshRate -- of 60,000. -- --

See Also

-- -- VkDisplayModeCreateInfoKHR, VkDisplayModePropertiesKHR, -- VkExtent2D data VkDisplayModeParametersKHR VkDisplayModeParametersKHR :: VkExtent2D -> Word32 -> VkDisplayModeParametersKHR -- | visibleRegion is the 2D extents of the visible region. [$sel:vkVisibleRegion:VkDisplayModeParametersKHR] :: VkDisplayModeParametersKHR -> VkExtent2D -- | refreshRate is a uint32_t that is the number of -- times the display is refreshed each second multiplied by 1000. [$sel:vkRefreshRate:VkDisplayModeParametersKHR] :: VkDisplayModeParametersKHR -> Word32 -- | VkDisplayModePropertiesKHR - Structure describing display mode -- properties -- --

Description

-- --

See Also

-- -- VkDisplayModeKHR, VkDisplayModeParametersKHR, -- vkGetDisplayModePropertiesKHR data VkDisplayModePropertiesKHR VkDisplayModePropertiesKHR :: VkDisplayModeKHR -> VkDisplayModeParametersKHR -> VkDisplayModePropertiesKHR -- | displayMode is a handle to the display mode described in this -- structure. This handle will be valid for the lifetime of the Vulkan -- instance. [$sel:vkDisplayMode:VkDisplayModePropertiesKHR] :: VkDisplayModePropertiesKHR -> VkDisplayModeKHR -- | parameters is a VkDisplayModeParametersKHR structure -- describing the display parameters associated with -- displayMode. [$sel:vkParameters:VkDisplayModePropertiesKHR] :: VkDisplayModePropertiesKHR -> VkDisplayModeParametersKHR -- | VkDisplayModeCreateInfoKHR - Structure specifying parameters of a -- newly created display mode object -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDisplayModeCreateFlagsKHR, VkDisplayModeParametersKHR, -- VkStructureType, vkCreateDisplayModeKHR data VkDisplayModeCreateInfoKHR VkDisplayModeCreateInfoKHR :: VkStructureType -> Ptr () -> VkDisplayModeCreateFlagsKHR -> VkDisplayModeParametersKHR -> VkDisplayModeCreateInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> Ptr () -- | flags is reserved for future use, and must be zero. [$sel:vkFlags:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkDisplayModeCreateFlagsKHR -- | parameters is a VkDisplayModeParametersKHR structure -- describing the display parameters to use in creating the new mode. If -- the parameters are not compatible with the specified display, the -- implementation must return -- VK_ERROR_INITIALIZATION_FAILED. [$sel:vkParameters:VkDisplayModeCreateInfoKHR] :: VkDisplayModeCreateInfoKHR -> VkDisplayModeParametersKHR -- | VkDisplayPlaneCapabilitiesKHR - Structure describing capabilities of a -- mode and plane combination -- --

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

-- -- VkDisplayPlaneAlphaFlagsKHR, VkExtent2D, -- VkOffset2D, vkGetDisplayPlaneCapabilitiesKHR data VkDisplayPlaneCapabilitiesKHR VkDisplayPlaneCapabilitiesKHR :: VkDisplayPlaneAlphaFlagsKHR -> VkOffset2D -> VkOffset2D -> VkExtent2D -> VkExtent2D -> VkOffset2D -> VkOffset2D -> VkExtent2D -> VkExtent2D -> VkDisplayPlaneCapabilitiesKHR -- | supportedAlpha is a bitmask of -- VkDisplayPlaneAlphaFlagBitsKHR describing the supported alpha -- blending modes. [$sel:vkSupportedAlpha:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkDisplayPlaneAlphaFlagsKHR -- | minSrcPosition is the minimum source rectangle offset -- supported by this plane using the specified mode. [$sel:vkMinSrcPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D -- | maxSrcPosition is the maximum source rectangle offset -- supported by this plane using the specified mode. The x and -- y components of maxSrcPosition must each be -- greater than or equal to the x and y components of -- minSrcPosition, respectively. [$sel:vkMaxSrcPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D -- | minSrcExtent is the minimum source rectangle size supported -- by this plane using the specified mode. [$sel:vkMinSrcExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D -- | maxSrcExtent is the maximum source rectangle size supported -- by this plane using the specified mode. [$sel:vkMaxSrcExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D -- | minDstPosition, maxDstPosition, -- minDstExtent, maxDstExtent all have similar -- semantics to their corresponding *Src* equivalents, but apply -- to the output region within the mode rather than the input region -- within the source image. Unlike the *Src* offsets, -- minDstPosition and maxDstPosition may contain -- negative values. [$sel:vkMinDstPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D [$sel:vkMaxDstPosition:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkOffset2D [$sel:vkMinDstExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D [$sel:vkMaxDstExtent:VkDisplayPlaneCapabilitiesKHR] :: VkDisplayPlaneCapabilitiesKHR -> VkExtent2D -- | VkDisplaySurfaceCreateInfoKHR - Structure specifying parameters of a -- newly created display plane surface object -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDisplayModeKHR, VkDisplayPlaneAlphaFlagBitsKHR, -- VkDisplaySurfaceCreateFlagsKHR, VkExtent2D, -- VkStructureType, VkSurfaceTransformFlagBitsKHR, -- vkCreateDisplayPlaneSurfaceKHR data VkDisplaySurfaceCreateInfoKHR VkDisplaySurfaceCreateInfoKHR :: VkStructureType -> Ptr () -> VkDisplaySurfaceCreateFlagsKHR -> VkDisplayModeKHR -> Word32 -> Word32 -> VkSurfaceTransformFlagBitsKHR -> CFloat -> VkDisplayPlaneAlphaFlagBitsKHR -> VkExtent2D -> VkDisplaySurfaceCreateInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Ptr () -- | flags is reserved for future use, and must be zero. [$sel:vkFlags:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplaySurfaceCreateFlagsKHR -- | displayMode is a VkDisplayModeKHR handle specifying -- the mode to use when displaying this surface. [$sel:vkDisplayMode:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplayModeKHR -- | planeIndex is the plane on which this surface appears. [$sel:vkPlaneIndex:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Word32 -- | planeStackIndex is the z-order of the plane. [$sel:vkPlaneStackIndex:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> Word32 -- | transform is a VkSurfaceTransformFlagBitsKHR value -- specifying the transformation to apply to images as part of the -- scanout operation. [$sel:vkTransform:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkSurfaceTransformFlagBitsKHR -- | globalAlpha is the global alpha value. This value is ignored -- if alphaMode is not -- VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR. [$sel:vkGlobalAlpha:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> CFloat -- | alphaMode is a VkDisplayPlaneAlphaFlagBitsKHR value -- specifying the type of alpha blending to use. [$sel:vkAlphaMode:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkDisplayPlaneAlphaFlagBitsKHR -- | imageExtent The size of the presentable images to use with -- the surface. [$sel:vkImageExtent:VkDisplaySurfaceCreateInfoKHR] :: VkDisplaySurfaceCreateInfoKHR -> VkExtent2D -- | VkDisplayPlaneAlphaFlagsKHR - Bitmask of -- VkDisplayPlaneAlphaFlagBitsKHR -- --

Description

-- -- VkDisplayPlaneAlphaFlagsKHR is a bitmask type for setting a -- mask of zero or more VkDisplayPlaneAlphaFlagBitsKHR. -- --

See Also

-- -- VkDisplayPlaneAlphaFlagBitsKHR, -- VkDisplayPlaneCapabilitiesKHR type VkDisplayPlaneAlphaFlagsKHR = VkDisplayPlaneAlphaFlagBitsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneCapabilitiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneCapabilitiesKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModePropertiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModePropertiesKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeParametersKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeParametersKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlanePropertiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlanePropertiesKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneCapabilitiesKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModePropertiesKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeParametersKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlanePropertiesKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPropertiesKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplaySurfaceCreateFlagsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayModeCreateFlagsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_display.VkDisplayPlaneAlphaFlagBitsKHR module Graphics.Vulkan.Extensions.VK_EXT_direct_mode_display -- | vkReleaseDisplayEXT - Release access to an acquired VkDisplayKHR -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- --

See Also

-- -- VkDisplayKHR, VkPhysicalDevice vkReleaseDisplayEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("display" ::: VkDisplayKHR) -> IO VkResult module Graphics.Vulkan.Extensions.VK_EXT_sample_locations -- | VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT specifies that the -- sampleLocationsInfo state in -- VkPipelineSampleLocationsStateCreateInfoEXT will be ignored and -- must be set dynamically with vkCmdSetSampleLocationsEXT -- before any draw or clear commands. Enabling custom sample locations is -- still indicated by the sampleLocationsEnable member of -- VkPipelineSampleLocationsStateCreateInfoEXT. -- | vkCmdSetSampleLocationsEXT - Set the dynamic sample locations state -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkSampleLocationsInfoEXT vkCmdSetSampleLocationsEXT :: ("commandBuffer" ::: VkCommandBuffer) -> ("pSampleLocationsInfo" ::: Ptr VkSampleLocationsInfoEXT) -> IO () -- | vkGetPhysicalDeviceMultisamplePropertiesEXT - Report sample count -- specific multisampling capabilities of a physical device -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkMultisamplePropertiesEXT, VkPhysicalDevice, -- VkSampleCountFlagBits vkGetPhysicalDeviceMultisamplePropertiesEXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("samples" ::: VkSampleCountFlagBits) -> ("pMultisampleProperties" ::: Ptr VkMultisamplePropertiesEXT) -> IO () -- | VkSampleLocationEXT - Structure specifying the coordinates of a sample -- location -- --

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 VkPhysicalDeviceProperties2. -- --

See Also

-- -- VkSampleLocationsInfoEXT data VkSampleLocationEXT VkSampleLocationEXT :: CFloat -> CFloat -> VkSampleLocationEXT -- | x is the horizontal coordinate of the sample’s location. [$sel:vkX:VkSampleLocationEXT] :: VkSampleLocationEXT -> CFloat -- | y is the vertical coordinate of the sample’s location. [$sel:vkY:VkSampleLocationEXT] :: VkSampleLocationEXT -> CFloat -- | VkSampleLocationsInfoEXT - Structure specifying a set of sample -- locations -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAttachmentSampleLocationsEXT, VkExtent2D, -- VkPipelineSampleLocationsStateCreateInfoEXT, -- VkSampleCountFlagBits, VkSampleLocationEXT, -- VkStructureType, VkSubpassSampleLocationsEXT, -- vkCmdSetSampleLocationsEXT data VkSampleLocationsInfoEXT VkSampleLocationsInfoEXT :: VkStructureType -> Ptr () -> VkSampleCountFlagBits -> VkExtent2D -> Word32 -> Ptr VkSampleLocationEXT -> VkSampleLocationsInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> Ptr () -- | sampleLocationsPerPixel is a VkSampleCountFlagBits -- specifying the number of sample locations per pixel. [$sel:vkSampleLocationsPerPixel:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> VkSampleCountFlagBits -- | sampleLocationGridSize is the size of the sample location -- grid to select custom sample locations for. [$sel:vkSampleLocationGridSize:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> VkExtent2D -- | sampleLocationsCount is the number of sample locations in -- pSampleLocations. [$sel:vkSampleLocationsCount:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> Word32 -- | pSampleLocations is an array of sampleLocationsCount -- VkSampleLocationEXT structures. [$sel:vkPSampleLocations:VkSampleLocationsInfoEXT] :: VkSampleLocationsInfoEXT -> Ptr VkSampleLocationEXT -- | VkAttachmentSampleLocationsEXT - Structure specifying the sample -- locations state to use in the initial layout transition of attachments -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkRenderPassSampleLocationsBeginInfoEXT, -- VkSampleLocationsInfoEXT data VkAttachmentSampleLocationsEXT VkAttachmentSampleLocationsEXT :: Word32 -> VkSampleLocationsInfoEXT -> VkAttachmentSampleLocationsEXT -- | attachmentIndex is the index of the attachment for which the -- sample locations state is provided. [$sel:vkAttachmentIndex:VkAttachmentSampleLocationsEXT] :: VkAttachmentSampleLocationsEXT -> Word32 -- | sampleLocationsInfo is the sample locations state to use for -- the layout transition of the given attachment from the initial layout -- of the attachment to the image layout specified for the attachment in -- the first subpass using it. [$sel:vkSampleLocationsInfo:VkAttachmentSampleLocationsEXT] :: VkAttachmentSampleLocationsEXT -> VkSampleLocationsInfoEXT -- | VkSubpassSampleLocationsEXT - Structure specifying the sample -- locations state to use for layout transitions of attachments performed -- after a given subpass -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkRenderPassSampleLocationsBeginInfoEXT, -- VkSampleLocationsInfoEXT data VkSubpassSampleLocationsEXT VkSubpassSampleLocationsEXT :: Word32 -> VkSampleLocationsInfoEXT -> VkSubpassSampleLocationsEXT -- | subpassIndex is the index of the subpass for which the sample -- locations state is provided. [$sel:vkSubpassIndex:VkSubpassSampleLocationsEXT] :: VkSubpassSampleLocationsEXT -> Word32 -- | sampleLocationsInfo is the sample locations state to use for -- the layout transition of the depth/stencil attachment away from the -- image layout the attachment is used with in the subpass specified in -- subpassIndex. [$sel:vkSampleLocationsInfo:VkSubpassSampleLocationsEXT] :: VkSubpassSampleLocationsEXT -> VkSampleLocationsInfoEXT -- | VkRenderPassSampleLocationsBeginInfoEXT - Structure specifying sample -- locations to use for the layout transition of custom sample locations -- compatible depth/stencil attachments -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAttachmentSampleLocationsEXT, VkStructureType, -- VkSubpassSampleLocationsEXT data VkRenderPassSampleLocationsBeginInfoEXT VkRenderPassSampleLocationsBeginInfoEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr VkAttachmentSampleLocationsEXT -> Word32 -> Ptr VkSubpassSampleLocationsEXT -> VkRenderPassSampleLocationsBeginInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Ptr () -- | attachmentInitialSampleLocationsCount is the number of -- elements in the pAttachmentInitialSampleLocations array. [$sel:vkAttachmentInitialSampleLocationsCount:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Word32 -- | pAttachmentInitialSampleLocations is an array of -- attachmentInitialSampleLocationsCount -- VkAttachmentSampleLocationsEXT structures specifying the -- attachment indices and their corresponding sample location state. Each -- element of pAttachmentInitialSampleLocations can -- specify the sample location state to use in the automatic layout -- transition performed to transition a depth/stencil attachment from the -- initial layout of the attachment to the image layout specified for the -- attachment in the first subpass using it. [$sel:vkPAttachmentInitialSampleLocations:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Ptr VkAttachmentSampleLocationsEXT -- | postSubpassSampleLocationsCount is the number of elements in -- the pPostSubpassSampleLocations array. [$sel:vkPostSubpassSampleLocationsCount:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Word32 -- | pPostSubpassSampleLocations is an array of -- postSubpassSampleLocationsCount -- VkSubpassSampleLocationsEXT structures specifying the subpass -- indices and their corresponding sample location state. Each element of -- pPostSubpassSampleLocations can specify the sample -- location state to use in the automatic layout transition performed to -- transition the depth/stencil attachment used by the specified subpass -- to the image layout specified in a dependent subpass or to the final -- layout of the attachment in case the specified subpass is the last -- subpass using that attachment. In addition, if -- VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations -- is VK_FALSE, each element of -- pPostSubpassSampleLocations must specify the sample -- location state that matches the sample locations used by all pipelines -- that will be bound to a command buffer during the specified subpass. -- If variableSampleLocations is VK_TRUE, the sample -- locations used for rasterization do not depend on -- pPostSubpassSampleLocations. [$sel:vkPPostSubpassSampleLocations:VkRenderPassSampleLocationsBeginInfoEXT] :: VkRenderPassSampleLocationsBeginInfoEXT -> Ptr VkSubpassSampleLocationsEXT -- | VkPipelineSampleLocationsStateCreateInfoEXT - Structure specifying -- sample locations for a pipeline -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkSampleLocationsInfoEXT, -- VkStructureType data VkPipelineSampleLocationsStateCreateInfoEXT VkPipelineSampleLocationsStateCreateInfoEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkSampleLocationsInfoEXT -> VkPipelineSampleLocationsStateCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkPipelineSampleLocationsStateCreateInfoEXT] :: VkPipelineSampleLocationsStateCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineSampleLocationsStateCreateInfoEXT] :: VkPipelineSampleLocationsStateCreateInfoEXT -> Ptr () -- | sampleLocationsEnable controls whether custom sample -- locations are used. If sampleLocationsEnable is -- VK_FALSE, the default sample locations are used and the -- values specified in sampleLocationsInfo are ignored. [$sel:vkSampleLocationsEnable:VkPipelineSampleLocationsStateCreateInfoEXT] :: VkPipelineSampleLocationsStateCreateInfoEXT -> VkBool32 -- | sampleLocationsInfo is the sample locations to use during -- rasterization if sampleLocationsEnable is VK_TRUE -- and the graphics pipeline isn’t created with -- VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT. [$sel:vkSampleLocationsInfo:VkPipelineSampleLocationsStateCreateInfoEXT] :: VkPipelineSampleLocationsStateCreateInfoEXT -> VkSampleLocationsInfoEXT -- | VkPhysicalDeviceSampleLocationsPropertiesEXT - Structure describing -- sample location limits that can be supported by an implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceSampleLocationsPropertiesEXT structure -- describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the VkPhysicalDeviceSampleLocationsPropertiesEXT structure -- is included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

See Also

-- -- VkBool32, VkExtent2D, VkSampleCountFlags, -- VkStructureType data VkPhysicalDeviceSampleLocationsPropertiesEXT VkPhysicalDeviceSampleLocationsPropertiesEXT :: VkStructureType -> Ptr () -> VkSampleCountFlags -> VkExtent2D -> Vector 2 CFloat -> Word32 -> VkBool32 -> VkPhysicalDeviceSampleLocationsPropertiesEXT [$sel:vkSType:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> Ptr () [$sel:vkSampleLocationSampleCounts:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> VkSampleCountFlags [$sel:vkMaxSampleLocationGridSize:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> VkExtent2D [$sel:vkSampleLocationCoordinateRange:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> Vector 2 CFloat [$sel:vkSampleLocationSubPixelBits:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> Word32 [$sel:vkVariableSampleLocations:VkPhysicalDeviceSampleLocationsPropertiesEXT] :: VkPhysicalDeviceSampleLocationsPropertiesEXT -> VkBool32 -- | VkMultisamplePropertiesEXT - Structure returning information about -- sample count specific additional multisampling capabilities -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExtent2D, VkStructureType, -- vkGetPhysicalDeviceMultisamplePropertiesEXT data VkMultisamplePropertiesEXT VkMultisamplePropertiesEXT :: VkStructureType -> Ptr () -> VkExtent2D -> VkMultisamplePropertiesEXT -- | sType is the type of this structure. [$sel:vkSType:VkMultisamplePropertiesEXT] :: VkMultisamplePropertiesEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMultisamplePropertiesEXT] :: VkMultisamplePropertiesEXT -> Ptr () -- | maxSampleLocationGridSize is the maximum size of the pixel -- grid in which sample locations can vary. [$sel:vkMaxSampleLocationGridSize:VkMultisamplePropertiesEXT] :: VkMultisamplePropertiesEXT -> VkExtent2D instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkMultisamplePropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkMultisamplePropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkRenderPassSampleLocationsBeginInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkRenderPassSampleLocationsBeginInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSubpassSampleLocationsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSubpassSampleLocationsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkAttachmentSampleLocationsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkAttachmentSampleLocationsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkMultisamplePropertiesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPipelineSampleLocationsStateCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkRenderPassSampleLocationsBeginInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSubpassSampleLocationsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkAttachmentSampleLocationsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationsInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkSampleLocationEXT module Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter -- | VkSurfaceCounterFlagBitsEXT - Surface-relative counter types -- --

See Also

-- -- VkSurfaceCounterFlagsEXT, vkGetSwapchainCounterEXT newtype VkSurfaceCounterFlagBitsEXT VkSurfaceCounterFlagBitsEXT :: VkFlags -> VkSurfaceCounterFlagBitsEXT -- | VK_SURFACE_COUNTER_VBLANK_EXT specifies a counter -- incrementing once every time a vertical blanking period occurs on the -- display associated with the surface. -- | vkGetPhysicalDeviceSurfaceCapabilities2EXT - Query surface -- capabilities -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkGetPhysicalDeviceSurfaceCapabilities2EXT behaves similarly -- to vkGetPhysicalDeviceSurfaceCapabilitiesKHR, with the ability -- to return extended information by adding extension structures to the -- pNext chain of its pSurfaceCapabilities parameter. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkSurfaceCapabilities2EXT, -- VkSurfaceKHR vkGetPhysicalDeviceSurfaceCapabilities2EXT :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pSurfaceCapabilities" ::: Ptr VkSurfaceCapabilities2EXT) -> IO VkResult -- | VkSurfaceCapabilities2EXT - Structure describing capabilities of a -- surface -- --

Members

-- -- All members of VkSurfaceCapabilities2EXT are identical to the -- corresponding members of VkSurfaceCapabilitiesKHR where one -- exists. The remaining members are: -- --

Description

-- -- -- -- -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkCompositeAlphaFlagsKHR, VkExtent2D, -- VkImageUsageFlags, VkStructureType, -- VkSurfaceCounterFlagsEXT, VkSurfaceTransformFlagBitsKHR, -- VkSurfaceTransformFlagsKHR, -- vkGetPhysicalDeviceSurfaceCapabilities2EXT data VkSurfaceCapabilities2EXT VkSurfaceCapabilities2EXT :: VkStructureType -> Ptr () -> Word32 -> Word32 -> VkExtent2D -> VkExtent2D -> VkExtent2D -> Word32 -> VkSurfaceTransformFlagsKHR -> VkSurfaceTransformFlagBitsKHR -> VkCompositeAlphaFlagsKHR -> VkImageUsageFlags -> VkSurfaceCounterFlagsEXT -> VkSurfaceCapabilities2EXT [$sel:vkSType:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkStructureType [$sel:vkPNext:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> Ptr () [$sel:vkMinImageCount:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> Word32 [$sel:vkMaxImageCount:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> Word32 [$sel:vkCurrentExtent:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkExtent2D [$sel:vkMinImageExtent:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkExtent2D [$sel:vkMaxImageExtent:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkExtent2D [$sel:vkMaxImageArrayLayers:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> Word32 [$sel:vkSupportedTransforms:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkSurfaceTransformFlagsKHR [$sel:vkCurrentTransform:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkSurfaceTransformFlagBitsKHR [$sel:vkSupportedCompositeAlpha:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkCompositeAlphaFlagsKHR [$sel:vkSupportedUsageFlags:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkImageUsageFlags [$sel:vkSupportedSurfaceCounters:VkSurfaceCapabilities2EXT] :: VkSurfaceCapabilities2EXT -> VkSurfaceCounterFlagsEXT -- | VkSurfaceCounterFlagsEXT - Bitmask of VkSurfaceCounterFlagBitsEXT -- --

Description

-- -- VkSurfaceCounterFlagsEXT is a bitmask type for setting a mask -- of zero or more VkSurfaceCounterFlagBitsEXT. -- --

See Also

-- -- VkSurfaceCapabilities2EXT, VkSurfaceCounterFlagBitsEXT, -- VkSwapchainCounterCreateInfoEXT type VkSurfaceCounterFlagsEXT = VkSurfaceCounterFlagBitsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCapabilities2EXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_display_surface_counter.VkSurfaceCounterFlagBitsEXT module Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles -- | VkDiscardRectangleModeEXT - Specify the discard rectangle mode -- --

See Also

-- -- VkPipelineDiscardRectangleStateCreateInfoEXT newtype VkDiscardRectangleModeEXT VkDiscardRectangleModeEXT :: Int32 -> VkDiscardRectangleModeEXT -- | VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT specifies that a -- fragment within any discard rectangle satisfies the test. -- | VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT specifies that a -- fragment not within any of the discard rectangles satisfies the test. -- | VkPipelineDiscardRectangleStateCreateFlagsEXT - Reserved for future -- use -- --

Description

-- -- VkPipelineDiscardRectangleStateCreateFlagsEXT is a bitmask -- type for setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineDiscardRectangleStateCreateInfoEXT newtype VkPipelineDiscardRectangleStateCreateFlagsEXT VkPipelineDiscardRectangleStateCreateFlagsEXT :: VkFlags -> VkPipelineDiscardRectangleStateCreateFlagsEXT -- | vkCmdSetDiscardRectangleEXT - Set discard rectangles dynamically -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkRect2D 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

-- -- The members of the -- VkPhysicalDeviceDiscardRectanglePropertiesEXT structure -- describe the following implementation-dependent limits: -- --

Description

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the VkPhysicalDeviceDiscardRectanglePropertiesEXT -- structure is included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

See Also

-- -- VkStructureType data VkPhysicalDeviceDiscardRectanglePropertiesEXT VkPhysicalDeviceDiscardRectanglePropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkPhysicalDeviceDiscardRectanglePropertiesEXT [$sel:vkSType:VkPhysicalDeviceDiscardRectanglePropertiesEXT] :: VkPhysicalDeviceDiscardRectanglePropertiesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceDiscardRectanglePropertiesEXT] :: VkPhysicalDeviceDiscardRectanglePropertiesEXT -> Ptr () [$sel:vkMaxDiscardRectangles:VkPhysicalDeviceDiscardRectanglePropertiesEXT] :: VkPhysicalDeviceDiscardRectanglePropertiesEXT -> Word32 -- | VkPipelineDiscardRectangleStateCreateInfoEXT - Structure specifying -- discard rectangle -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDiscardRectangleModeEXT, -- VkPipelineDiscardRectangleStateCreateFlagsEXT, VkRect2D, -- VkStructureType data VkPipelineDiscardRectangleStateCreateInfoEXT VkPipelineDiscardRectangleStateCreateInfoEXT :: VkStructureType -> Ptr () -> VkPipelineDiscardRectangleStateCreateFlagsEXT -> VkDiscardRectangleModeEXT -> Word32 -> Ptr VkRect2D -> VkPipelineDiscardRectangleStateCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> VkPipelineDiscardRectangleStateCreateFlagsEXT -- | discardRectangleMode is the mode used to determine whether -- fragments that lie within the discard rectangle are discarded or not. [$sel:vkDiscardRectangleMode:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> VkDiscardRectangleModeEXT -- | discardRectangleCount is the number of discard rectangles -- used by the pipeline. [$sel:vkDiscardRectangleCount:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> Word32 -- | pDiscardRectangles is a pointer to an array of -- VkRect2D structures, defining the discard rectangles. If the -- discard rectangle state is dynamic, this member is ignored. [$sel:vkPDiscardRectangles:VkPipelineDiscardRectangleStateCreateInfoEXT] :: VkPipelineDiscardRectangleStateCreateInfoEXT -> Ptr VkRect2D instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPhysicalDeviceDiscardRectanglePropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPhysicalDeviceDiscardRectanglePropertiesEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPhysicalDeviceDiscardRectanglePropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPipelineDiscardRectangleStateCreateFlagsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkDiscardRectangleModeEXT module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2 -- | VkBindBufferMemoryDeviceGroupInfo - Structure specifying device within -- a group to bind to -- --

Members

-- -- If the pNext list of VkBindBufferMemoryInfo includes a -- VkBindBufferMemoryDeviceGroupInfo structure, then that -- structure determines how memory is bound to buffers across multiple -- devices in a device group. -- --

Description

-- -- The VkBindBufferMemoryDeviceGroupInfo structure is defined -- as: -- -- -- -- If deviceIndexCount is greater than zero, then on device -- index i the buffer is attached to the instance of memory on -- the physical device with device index pDeviceIndices[i]. -- -- If deviceIndexCount is zero and memory comes from a -- memory heap with the VK_MEMORY_HEAP_MULTI_INSTANCE_BIT bit -- set, then it is as if pDeviceIndices contains consecutive -- indices from zero to the number of physical devices in the logical -- device, minus one. In other words, by default each physical device -- attaches to its own instance of memory. -- -- If deviceIndexCount is zero and memory comes from a -- memory heap without the VK_MEMORY_HEAP_MULTI_INSTANCE_BIT bit -- set, then it is as if pDeviceIndices contains an array of -- zeros. In other words, by default each physical device attaches to -- instance zero. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType data VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> VkBindBufferMemoryDeviceGroupInfo [$sel:vkSType:VkBindBufferMemoryDeviceGroupInfo] :: VkBindBufferMemoryDeviceGroupInfo -> VkStructureType [$sel:vkPNext:VkBindBufferMemoryDeviceGroupInfo] :: VkBindBufferMemoryDeviceGroupInfo -> Ptr () [$sel:vkDeviceIndexCount:VkBindBufferMemoryDeviceGroupInfo] :: VkBindBufferMemoryDeviceGroupInfo -> Word32 [$sel:vkPDeviceIndices:VkBindBufferMemoryDeviceGroupInfo] :: VkBindBufferMemoryDeviceGroupInfo -> Ptr Word32 -- | VkBindImageMemoryDeviceGroupInfo - Structure specifying device within -- a group to bind to -- --

Members

-- -- If the pNext list of VkBindImageMemoryInfo includes a -- VkBindImageMemoryDeviceGroupInfo structure, then that -- structure determines how memory is bound to images across multiple -- devices in a device group. -- --

Description

-- -- The VkBindImageMemoryDeviceGroupInfo structure is defined as: -- -- -- -- If deviceIndexCount is greater than zero, then on device -- index i image is attached to the instance of the memory on -- the physical device with device index pDeviceIndices[i]. -- -- Let N be the number of physical devices in the logical device. If -- splitInstanceBindRegionCount is greater than zero, then -- pSplitInstanceBindRegions is an array of N2 rectangles, where -- the image region specified by the rectangle at element i*N+j in -- resource instance i is bound to the memory instance j. The blocks of -- the memory that are bound to each sparse image block region use an -- offset in memory, relative to memoryOffset, computed as if -- the whole image were being bound to a contiguous range of memory. In -- other words, horizontally adjacent image blocks use consecutive blocks -- of memory, vertically adjacent image blocks are separated by the -- number of bytes per block multiplied by the width in blocks of -- image, and the block at (0,0) corresponds to memory starting -- at memoryOffset. -- -- If splitInstanceBindRegionCount and deviceIndexCount -- are zero and the memory comes from a memory heap with the -- VK_MEMORY_HEAP_MULTI_INSTANCE_BIT bit set, then it is as if -- pDeviceIndices contains consecutive indices from zero to the -- number of physical devices in the logical device, minus one. In other -- words, by default each physical device attaches to its own instance of -- the memory. -- -- If splitInstanceBindRegionCount and deviceIndexCount -- are zero and the memory comes from a memory heap without the -- VK_MEMORY_HEAP_MULTI_INSTANCE_BIT bit set, then it is as if -- pDeviceIndices contains an array of zeros. In other words, by -- default each physical device attaches to instance zero. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkRect2D, VkStructureType data VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> Word32 -> Ptr VkRect2D -> VkBindImageMemoryDeviceGroupInfo [$sel:vkSType:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> VkStructureType [$sel:vkPNext:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Ptr () [$sel:vkDeviceIndexCount:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Word32 [$sel:vkPDeviceIndices:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Ptr Word32 [$sel:vkSplitInstanceBindRegionCount:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Word32 [$sel:vkPSplitInstanceBindRegions:VkBindImageMemoryDeviceGroupInfo] :: VkBindImageMemoryDeviceGroupInfo -> Ptr VkRect2D instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindBufferMemoryDeviceGroupInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindBufferMemoryDeviceGroupInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindImageMemoryDeviceGroupInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group_and_VK_KHR_bind_memory2.VkBindBufferMemoryDeviceGroupInfo module Graphics.Vulkan.Core10.Sampler -- | VkBorderColor - Specify border color used for texture lookups -- --

Description

-- -- -- -- -- -- These colors are described in detail in Texel Replacement. -- --

See Also

-- -- VkSamplerCreateInfo newtype VkBorderColor VkBorderColor :: Int32 -> VkBorderColor -- | VkSamplerAddressMode - Specify behavior of sampling with texture -- coordinates outside an image -- --

See Also

-- -- VkSamplerCreateInfo newtype VkSamplerAddressMode VkSamplerAddressMode :: Int32 -> VkSamplerAddressMode -- | VK_SAMPLER_ADDRESS_MODE_REPEAT specifies that the repeat wrap -- mode will be used. -- | VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT specifies that the -- mirrored repeat wrap mode will be used. -- | VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE specifies that the -- clamp to edge wrap mode will be used. -- | VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER specifies that the -- clamp to border wrap mode will be used. -- | VkFilter - Specify filters used for texture lookups -- --

Description

-- -- -- -- -- -- These filters are described in detail in Texel Filtering. -- --

See Also

-- -- VkSamplerCreateInfo, VkSamplerYcbcrConversionCreateInfo, -- vkCmdBlitImage newtype VkFilter VkFilter :: Int32 -> VkFilter -- | VkSamplerMipmapMode - Specify mipmap mode used for texture lookups -- --

Description

-- -- -- -- -- -- These modes are described in detail in Texel Filtering. -- --

See Also

-- -- VkSamplerCreateInfo newtype VkSamplerMipmapMode VkSamplerMipmapMode :: Int32 -> VkSamplerMipmapMode -- | VkSamplerCreateFlags - Reserved for future use -- --

Description

-- -- VkSamplerCreateFlags is a bitmask type for setting a mask, -- but is currently reserved for future use. -- --

See Also

-- -- VkSamplerCreateInfo newtype VkSamplerCreateFlags VkSamplerCreateFlags :: VkFlags -> VkSamplerCreateFlags -- | VkSampler - Opaque handle to a sampler object -- --

Description

-- --

See Also

-- -- VkDescriptorImageInfo, VkDescriptorSetLayoutBinding, -- vkCreateSampler, vkDestroySampler type VkSampler = Ptr VkSampler_T -- | vkCreateSampler - Create a new sampler object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkSampler, -- VkSamplerCreateInfo vkCreateSampler :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSampler" ::: Ptr VkSampler) -> IO VkResult -- | vkDestroySampler - Destroy a sampler object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkSampler vkDestroySampler :: ("device" ::: VkDevice) -> ("sampler" ::: VkSampler) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkSamplerCreateInfo - Structure specifying parameters of a newly -- created sampler -- --

Members

-- -- -- -- -- --

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 -- 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 maxSamplerAllocationCount member of the -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkBorderColor, VkCompareOp, -- VkFilter, VkSamplerAddressMode, -- VkSamplerCreateFlags, VkSamplerMipmapMode, -- VkStructureType, vkCreateSampler data VkSamplerCreateInfo VkSamplerCreateInfo :: VkStructureType -> Ptr () -> VkSamplerCreateFlags -> VkFilter -> VkFilter -> VkSamplerMipmapMode -> VkSamplerAddressMode -> VkSamplerAddressMode -> VkSamplerAddressMode -> CFloat -> VkBool32 -> CFloat -> VkBool32 -> VkCompareOp -> CFloat -> CFloat -> VkBorderColor -> VkBool32 -> VkSamplerCreateInfo [$sel:vkSType:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkStructureType [$sel:vkPNext:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> Ptr () [$sel:vkFlags:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerCreateFlags [$sel:vkMagFilter:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkFilter [$sel:vkMinFilter:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkFilter [$sel:vkMipmapMode:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerMipmapMode [$sel:vkAddressModeU:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode [$sel:vkAddressModeV:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode [$sel:vkAddressModeW:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkSamplerAddressMode [$sel:vkMipLodBias:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat [$sel:vkAnisotropyEnable:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32 [$sel:vkMaxAnisotropy:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat [$sel:vkCompareEnable:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32 [$sel:vkCompareOp:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkCompareOp [$sel:vkMinLod:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat [$sel:vkMaxLod:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> CFloat [$sel:vkBorderColor:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBorderColor [$sel:vkUnnormalizedCoordinates:VkSamplerCreateInfo] :: VkSamplerCreateInfo -> VkBool32 instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkFilter instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkFilter instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkFilter instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkBorderColor instance GHC.Classes.Ord Graphics.Vulkan.Core10.Sampler.VkBorderColor instance GHC.Classes.Eq Graphics.Vulkan.Core10.Sampler.VkBorderColor instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Sampler.VkSamplerCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkSamplerCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkSamplerMipmapMode instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkFilter instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkFilter instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkSamplerAddressMode instance GHC.Show.Show Graphics.Vulkan.Core10.Sampler.VkBorderColor instance GHC.Read.Read Graphics.Vulkan.Core10.Sampler.VkBorderColor module Graphics.Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge -- | 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. module Graphics.Vulkan.Extensions.VK_IMG_filter_cubic module Graphics.Vulkan.Core10.PipelineLayout -- | VkPipelineLayoutCreateFlags - Reserved for future use -- --

Description

-- -- VkPipelineLayoutCreateFlags is a bitmask type for setting a -- mask, but is currently reserved for future use. -- --

See Also

-- -- VkPipelineLayoutCreateInfo newtype VkPipelineLayoutCreateFlags VkPipelineLayoutCreateFlags :: VkFlags -> VkPipelineLayoutCreateFlags -- | VkDescriptorSetLayout - Opaque handle to a descriptor set layout -- object -- --

Description

-- --

See Also

-- -- VkDescriptorSetAllocateInfo, -- VkDescriptorUpdateTemplateCreateInfo, -- VkPipelineLayoutCreateInfo, vkCreateDescriptorSetLayout, -- vkDestroyDescriptorSetLayout type VkDescriptorSetLayout = Ptr VkDescriptorSetLayout_T -- | vkCreatePipelineLayout - Creates a new pipeline layout object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkPipelineLayout, VkPipelineLayoutCreateInfo vkCreatePipelineLayout :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkPipelineLayoutCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelineLayout" ::: Ptr VkPipelineLayout) -> IO VkResult -- | vkDestroyPipelineLayout - Destroy a pipeline layout object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkPipelineLayout vkDestroyPipelineLayout :: ("device" ::: VkDevice) -> ("pipelineLayout" ::: VkPipelineLayout) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkPushConstantRange - Structure specifying a push constant range -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPipelineLayoutCreateInfo, VkShaderStageFlags data VkPushConstantRange VkPushConstantRange :: VkShaderStageFlags -> Word32 -> Word32 -> VkPushConstantRange -- | stageFlags is a set of stage flags describing the shader -- stages that will access a range of push constants. If a particular -- stage is not included in the range, then accessing members of that -- range of push constants from the corresponding shader stage will -- result in undefined data being read. [$sel:vkStageFlags:VkPushConstantRange] :: VkPushConstantRange -> VkShaderStageFlags -- | offset and size are the start offset and size, -- respectively, consumed by the range. Both offset and -- size are in units of bytes and must be a multiple of -- 4. The layout of the push constant variables is specified in the -- shader. [$sel:vkOffset:VkPushConstantRange] :: VkPushConstantRange -> Word32 [$sel:vkSize:VkPushConstantRange] :: VkPushConstantRange -> Word32 -- | VkPipelineLayoutCreateInfo - Structure specifying the parameters of a -- newly created pipeline layout object -- --

Members

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorSetLayout, VkPipelineLayoutCreateFlags, -- VkPushConstantRange, VkStructureType, -- vkCreatePipelineLayout data VkPipelineLayoutCreateInfo VkPipelineLayoutCreateInfo :: VkStructureType -> Ptr () -> VkPipelineLayoutCreateFlags -> Word32 -> Ptr VkDescriptorSetLayout -> Word32 -> Ptr VkPushConstantRange -> VkPipelineLayoutCreateInfo [$sel:vkSType:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> VkStructureType [$sel:vkPNext:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr () [$sel:vkFlags:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> VkPipelineLayoutCreateFlags [$sel:vkSetLayoutCount:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Word32 [$sel:vkPSetLayouts:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr VkDescriptorSetLayout [$sel:vkPushConstantRangeCount:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Word32 [$sel:vkPPushConstantRanges:VkPipelineLayoutCreateInfo] :: VkPipelineLayoutCreateInfo -> Ptr VkPushConstantRange -- | VkShaderStageFlags - Bitmask of VkShaderStageFlagBits -- --

Description

-- -- VkShaderStageFlags is a bitmask type for setting a mask of -- zero or more VkShaderStageFlagBits. -- --

See Also

-- -- VkDescriptorSetLayoutBinding, -- VkObjectTablePushConstantEntryNVX, -- VkPhysicalDeviceSubgroupProperties, VkPushConstantRange, -- VkShaderStageFlagBits, VkShaderStatisticsInfoAMD, -- vkCmdPushConstants type VkShaderStageFlags = VkShaderStageFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineLayout.VkPushConstantRange instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineLayout.VkPushConstantRange instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.PipelineLayout.VkPushConstantRange instance GHC.Show.Show Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.PipelineLayout.VkPipelineLayoutCreateFlags module Graphics.Vulkan.Extensions.VK_AMD_shader_info newtype VkShaderInfoTypeAMD VkShaderInfoTypeAMD :: Int32 -> VkShaderInfoTypeAMD -- | vkGetShaderInfoAMD - Get information about a shader in a pipeline -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkPipeline, VkShaderInfoTypeAMD, -- VkShaderStageFlagBits 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

-- --

See Also

-- -- VkShaderStatisticsInfoAMD data VkShaderResourceUsageAMD VkShaderResourceUsageAMD :: Word32 -> Word32 -> Word32 -> CSize -> CSize -> VkShaderResourceUsageAMD -- | numUsedVgprs is the number of vector instruction -- general-purpose registers used by this shader. [$sel:vkNumUsedVgprs:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> Word32 -- | numUsedSgprs is the number of scalar instruction -- general-purpose registers used by this shader. [$sel:vkNumUsedSgprs:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> Word32 -- | ldsSizePerLocalWorkGroup is the maximum local data store size -- per work group in bytes. [$sel:vkLdsSizePerLocalWorkGroup:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> Word32 -- | ldsUsageSizeInBytes is the LDS usage size in bytes per work -- group by this shader. [$sel:vkLdsUsageSizeInBytes:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> CSize -- | scratchMemUsageInBytes is the scratch memory usage in bytes -- by this shader. [$sel:vkScratchMemUsageInBytes:VkShaderResourceUsageAMD] :: VkShaderResourceUsageAMD -> CSize -- | VkShaderStatisticsInfoAMD - Statistical information about a particular -- shader within a pipeline -- --

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

-- -- VkShaderResourceUsageAMD, VkShaderStageFlags data VkShaderStatisticsInfoAMD VkShaderStatisticsInfoAMD :: VkShaderStageFlags -> VkShaderResourceUsageAMD -> Word32 -> Word32 -> Word32 -> Word32 -> Vector 3 Word32 -> VkShaderStatisticsInfoAMD -- | shaderStageMask are the combination of logical shader stages -- contained within this shader. [$sel:vkShaderStageMask:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> VkShaderStageFlags -- | resourceUsage is an instance of -- VkShaderResourceUsageAMD describing internal physical device -- resources used by this shader. [$sel:vkResourceUsage:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> VkShaderResourceUsageAMD -- | numPhysicalVgprs is the maximum number of vector instruction -- general-purpose registers (VGPRs) available to the physical device. [$sel:vkNumPhysicalVgprs:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Word32 -- | numPhysicalSgprs is the maximum number of scalar instruction -- general-purpose registers (SGPRs) available to the physical device. [$sel:vkNumPhysicalSgprs:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Word32 -- | numAvailableVgprs is the maximum limit of VGPRs made -- available to the shader compiler. [$sel:vkNumAvailableVgprs:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Word32 -- | numAvailableSgprs is the maximum limit of SGPRs made -- available to the shader compiler. [$sel:vkNumAvailableSgprs:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Word32 -- | computeWorkGroupSize is the local workgroup size of this -- shader in { X, Y, Z } dimensions. [$sel:vkComputeWorkGroupSize:VkShaderStatisticsInfoAMD] :: VkShaderStatisticsInfoAMD -> Vector 3 Word32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderStatisticsInfoAMD instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderStatisticsInfoAMD instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderResourceUsageAMD instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderResourceUsageAMD instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderStatisticsInfoAMD instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderResourceUsageAMD instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_AMD_shader_info.VkShaderInfoTypeAMD module Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup -- | VkSubgroupFeatureFlagBits - Enum describing what subgroup operations -- are supported -- --

See Also

-- -- VkSubgroupFeatureFlags newtype VkSubgroupFeatureFlagBits VkSubgroupFeatureFlagBits :: VkFlags -> VkSubgroupFeatureFlagBits -- | VK_SUBGROUP_FEATURE_BASIC_BIT specifies the device will -- accept SPIR-V shader modules that contain the GroupNonUniform -- capability. -- | VK_SUBGROUP_FEATURE_VOTE_BIT specifies the device will accept -- SPIR-V shader modules that contain the GroupNonUniformVote -- capability. -- | VK_SUBGROUP_FEATURE_ARITHMETIC_BIT specifies the device will -- accept SPIR-V shader modules that contain the -- GroupNonUniformArithmetic capability. -- | VK_SUBGROUP_FEATURE_BALLOT_BIT specifies the device will -- accept SPIR-V shader modules that contain the -- GroupNonUniformBallot capability. -- | VK_SUBGROUP_FEATURE_SHUFFLE_BIT specifies the device will -- accept SPIR-V shader modules that contain the -- GroupNonUniformShuffle capability. -- | VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT specifies the device -- will accept SPIR-V shader modules that contain the -- GroupNonUniformShuffleRelative capability. -- | VK_SUBGROUP_FEATURE_CLUSTERED_BIT specifies the device will -- accept SPIR-V shader modules that contain the -- GroupNonUniformClustered capability. -- | VK_SUBGROUP_FEATURE_QUAD_BIT specifies the device will accept -- SPIR-V shader modules that contain the GroupNonUniformQuad -- capability. -- | VkPhysicalDeviceSubgroupProperties - Structure describing subgroup -- support for an implementation -- --

Members

-- -- The members of the VkPhysicalDeviceSubgroupProperties -- structure describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the VkPhysicalDeviceSubgroupProperties structure is -- included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

See Also

-- -- VkBool32, VkShaderStageFlags, VkStructureType, -- VkSubgroupFeatureFlags data VkPhysicalDeviceSubgroupProperties VkPhysicalDeviceSubgroupProperties :: VkStructureType -> Ptr () -> Word32 -> VkShaderStageFlags -> VkSubgroupFeatureFlags -> VkBool32 -> VkPhysicalDeviceSubgroupProperties [$sel:vkSType:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> Ptr () [$sel:vkSubgroupSize:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> Word32 [$sel:vkSupportedStages:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> VkShaderStageFlags [$sel:vkSupportedOperations:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> VkSubgroupFeatureFlags [$sel:vkQuadOperationsInAllStages:VkPhysicalDeviceSubgroupProperties] :: VkPhysicalDeviceSubgroupProperties -> VkBool32 -- | VkSubgroupFeatureFlags - Bitmask of VkSubgroupFeatureFlagBits -- --

Description

-- -- VkSubgroupFeatureFlags is a bitmask type for setting a mask -- of zero or more VkSubgroupFeatureFlagBits. -- --

See Also

-- -- VkPhysicalDeviceSubgroupProperties, -- VkSubgroupFeatureFlagBits type VkSubgroupFeatureFlags = VkSubgroupFeatureFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkSubgroupFeatureFlagBits module Graphics.Vulkan.Extensions.VK_NV_shader_subgroup_partitioned -- | VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV specifies the device -- will accept SPIR-V shader modules that contain the -- GroupNonUniformPartitionedNV capability. module Graphics.Vulkan.Core10.Memory -- | VkMemoryMapFlags - Reserved for future use -- --

Description

-- -- VkMemoryMapFlags is a bitmask type for setting a mask, but is -- currently reserved for future use. -- --

See Also

-- -- vkMapMemory newtype VkMemoryMapFlags VkMemoryMapFlags :: VkFlags -> VkMemoryMapFlags -- | VkDeviceMemory - Opaque handle to a device memory object -- --

Description

-- --

See Also

-- -- VkBindBufferMemoryInfo, VkBindImageMemoryInfo, -- VkMappedMemoryRange, -- VkMemoryGetAndroidHardwareBufferInfoANDROID, -- VkMemoryGetFdInfoKHR, VkMemoryGetWin32HandleInfoKHR, -- VkSparseImageMemoryBind, VkSparseMemoryBind, -- VkWin32KeyedMutexAcquireReleaseInfoKHR, -- VkWin32KeyedMutexAcquireReleaseInfoNV, vkAllocateMemory, -- vkBindBufferMemory, vkBindImageMemory, -- vkFreeMemory, vkGetDeviceMemoryCommitment, -- vkGetMemoryWin32HandleNV, vkMapMemory, -- vkUnmapMemory type VkDeviceMemory = Ptr VkDeviceMemory_T -- | vkAllocateMemory - Allocate device memory -- --

Parameters

-- -- -- -- -- --

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 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 -- 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. This -- limit is advertised in -- VkPhysicalDeviceMaintenance3Properties::maxMemoryAllocationSize. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkDeviceMemory, -- VkMemoryAllocateInfo vkAllocateMemory :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkMemoryAllocateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pMemory" ::: Ptr VkDeviceMemory) -> IO VkResult -- | vkFreeMemory - Free device memory -- --

Parameters

-- -- -- -- -- --

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 Resource Memory Association section. -- -- If a memory object is mapped at the time it is freed, it is implicitly -- unmapped. -- -- Note -- -- As described 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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkDeviceMemory vkFreeMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkMapMemory - Map a memory object into application address space -- --

Parameters

-- -- -- -- -- --

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 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 -- VkPhysicalDeviceLimits::nonCoherentAtomSize, and round -- the end of the range up to the nearest multiple of -- 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 -- Synchronization and Cache Control as they are crucial to -- maintaining memory access ordering. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkDeviceMemory, VkDeviceSize, -- VkMemoryMapFlags vkMapMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("offset" ::: VkDeviceSize) -> ("size" ::: VkDeviceSize) -> ("flags" ::: VkMemoryMapFlags) -> ("ppData" ::: Ptr (Ptr ())) -> IO VkResult -- | vkUnmapMemory - Unmap a previously mapped memory object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkDevice, VkDeviceMemory vkUnmapMemory :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> IO () -- | vkFlushMappedMemoryRanges - Flush mapped memory ranges -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkFlushMappedMemoryRanges guarantees that host writes to the -- memory ranges described by pMemoryRanges can be made -- available to device access, via availability operations from -- the VK_ACCESS_HOST_WRITE_BIT 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkMappedMemoryRange vkFlushMappedMemoryRanges :: ("device" ::: VkDevice) -> ("memoryRangeCount" ::: Word32) -> ("pMemoryRanges" ::: Ptr VkMappedMemoryRange) -> IO VkResult -- | vkInvalidateMappedMemoryRanges - Invalidate ranges of mapped memory -- objects -- --

Parameters

-- -- -- -- -- --

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 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkMappedMemoryRange vkInvalidateMappedMemoryRanges :: ("device" ::: VkDevice) -> ("memoryRangeCount" ::: Word32) -> ("pMemoryRanges" ::: Ptr VkMappedMemoryRange) -> IO VkResult -- | vkGetDeviceMemoryCommitment - Query the current commitment for a -- VkDeviceMemory -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkDeviceMemory, VkDeviceSize vkGetDeviceMemoryCommitment :: ("device" ::: VkDevice) -> ("memory" ::: VkDeviceMemory) -> ("pCommittedMemoryInBytes" ::: Ptr VkDeviceSize) -> IO () -- | VkMemoryAllocateInfo - Structure containing parameters of a memory -- allocation -- --

Description

-- -- An instance of the VkMemoryAllocateInfo structure defines a -- memory import operation if the pNext chain contains an -- instance of one of the following structures: * -- VkImportMemoryWin32HandleInfoKHR with non-zero -- handleType value * VkImportMemoryFdInfoKHR with a -- non-zero handleType value * -- VkImportMemoryHostPointerInfoEXT with a non-zero -- handleType value * -- VkImportAndroidHardwareBufferInfoANDROID with a -- non-NULL buffer value -- -- Importing memory must not modify the content of the memory. -- Implementations must ensure that importing memory does not -- enable the importing Vulkan instance to access any memory or resources -- in other Vulkan instances other than that corresponding to the memory -- object imported. Implementations must also ensure accessing -- imported memory which has not been initialized does not allow the -- importing Vulkan instance to obtain data from the exporting Vulkan -- instance or vice-versa. -- -- Note -- -- How exported and imported memory is isolated is left to the -- implementation, but applications should be aware that such isolation -- may prevent implementations from placing multiple exportable -- memory objects in the same physical or virtual page. Hence, -- applications should avoid creating many small external memory -- objects whenever possible. -- -- When performing a memory import operation, it is the responsibility of -- the application to ensure the external handles meet all valid usage -- requirements. However, implementations must perform sufficient -- validation of external handles to ensure that the operation results in -- a valid memory object which will not cause program termination, device -- loss, queue stalls, or corruption of other resources when used as -- allowed according to its allocation parameters. If the external handle -- provided does not meet these requirements, the implementation -- must fail the memory import operation with the error code -- VK_ERROR_INVALID_EXTERNAL_HANDLE. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceSize, VkStructureType, vkAllocateMemory data VkMemoryAllocateInfo VkMemoryAllocateInfo :: VkStructureType -> Ptr () -> VkDeviceSize -> Word32 -> VkMemoryAllocateInfo -- | sType is the type of this structure. [$sel:vkSType:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> Ptr () -- | allocationSize is the size of the allocation in bytes [$sel:vkAllocationSize:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> VkDeviceSize -- | memoryTypeIndex is an index identifying a memory type from -- the memoryTypes array of the -- VkPhysicalDeviceMemoryProperties structure [$sel:vkMemoryTypeIndex:VkMemoryAllocateInfo] :: VkMemoryAllocateInfo -> Word32 -- | VkMappedMemoryRange - Structure specifying a mapped memory range -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceMemory, VkDeviceSize, VkStructureType, -- vkFlushMappedMemoryRanges, -- vkInvalidateMappedMemoryRanges data VkMappedMemoryRange VkMappedMemoryRange :: VkStructureType -> Ptr () -> VkDeviceMemory -> VkDeviceSize -> VkDeviceSize -> VkMappedMemoryRange -- | sType is the type of this structure. [$sel:vkSType:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMappedMemoryRange] :: VkMappedMemoryRange -> Ptr () -- | memory is the memory object to which this range belongs. [$sel:vkMemory:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceMemory -- | offset is the zero-based byte offset from the beginning of -- the memory object. [$sel:vkOffset:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceSize -- | size is either the size of range, or VK_WHOLE_SIZE -- to affect the range from offset to the end of the current -- mapping of the allocation. [$sel:vkSize:VkMappedMemoryRange] :: VkMappedMemoryRange -> VkDeviceSize instance GHC.Show.Show Graphics.Vulkan.Core10.Memory.VkMappedMemoryRange instance GHC.Classes.Eq Graphics.Vulkan.Core10.Memory.VkMappedMemoryRange instance GHC.Show.Show Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Memory.VkMappedMemoryRange instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Memory.VkMemoryAllocateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Memory.VkMemoryMapFlags module Graphics.Vulkan.Core10.MemoryManagement -- | VkBuffer - Opaque handle to a buffer object -- --

Description

-- --

See Also

-- -- VkBindBufferMemoryInfo, VkBufferMemoryBarrier, -- VkBufferMemoryRequirementsInfo2, VkBufferViewCreateInfo, -- VkCmdProcessCommandsInfoNVX, -- VkDedicatedAllocationMemoryAllocateInfoNV, -- VkDescriptorBufferInfo, VkIndirectCommandsTokenNVX, -- VkMemoryDedicatedAllocateInfo, -- VkObjectTableIndexBufferEntryNVX, -- VkObjectTableVertexBufferEntryNVX, -- VkSparseBufferMemoryBindInfo, vkBindBufferMemory, -- vkCmdBindIndexBuffer, vkCmdBindVertexBuffers, -- vkCmdCopyBuffer, vkCmdCopyBufferToImage, -- vkCmdCopyImageToBuffer, vkCmdCopyQueryPoolResults, -- vkCmdDispatchIndirect, vkCmdDrawIndexedIndirect, -- vkCmdDrawIndexedIndirectCountAMD, vkCmdDrawIndirect, -- vkCmdDrawIndirectCountAMD, vkCmdFillBuffer, -- vkCmdUpdateBuffer, vkCmdWriteBufferMarkerAMD, -- vkCreateBuffer, vkDestroyBuffer, -- vkGetBufferMemoryRequirements type VkBuffer = Ptr VkBuffer_T -- | VkImage - Opaque handle to a image object -- --

Description

-- --

See Also

-- -- VkBindImageMemoryInfo, -- VkDedicatedAllocationMemoryAllocateInfoNV, -- VkImageMemoryBarrier, VkImageMemoryRequirementsInfo2, -- VkImageSparseMemoryRequirementsInfo2, -- VkImageViewCreateInfo, VkMemoryDedicatedAllocateInfo, -- VkSparseImageMemoryBindInfo, -- VkSparseImageOpaqueMemoryBindInfo, vkBindImageMemory, -- vkCmdBlitImage, vkCmdClearColorImage, -- vkCmdClearDepthStencilImage, vkCmdCopyBufferToImage, -- vkCmdCopyImage, vkCmdCopyImageToBuffer, -- vkCmdResolveImage, vkCreateImage, vkDestroyImage, -- vkGetImageMemoryRequirements, -- vkGetImageSparseMemoryRequirements, -- vkGetImageSubresourceLayout, vkGetSwapchainImagesKHR type VkImage = Ptr VkImage_T -- | vkGetBufferMemoryRequirements - Returns the memory requirements for -- specified Vulkan object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkDevice, VkMemoryRequirements vkGetBufferMemoryRequirements :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements) -> IO () -- | vkBindBufferMemory - Bind device memory to a buffer object -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkBindBufferMemory is equivalent to passing the same -- parameters through VkBindBufferMemoryInfo to -- vkBindBufferMemory2. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkDevice, VkDeviceMemory, -- VkDeviceSize vkBindBufferMemory :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("memory" ::: VkDeviceMemory) -> ("memoryOffset" ::: VkDeviceSize) -> IO VkResult -- | vkGetImageMemoryRequirements - Returns the memory requirements for -- specified Vulkan object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkImage, VkMemoryRequirements vkGetImageMemoryRequirements :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements) -> IO () -- | vkBindImageMemory - Bind device memory to an image object -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkBindImageMemory is equivalent to passing the same -- parameters through VkBindImageMemoryInfo to -- vkBindImageMemory2. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkDeviceMemory, VkDeviceSize, -- VkImage vkBindImageMemory :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("memory" ::: VkDeviceMemory) -> ("memoryOffset" ::: VkDeviceSize) -> IO VkResult -- | VkMemoryRequirements - Structure specifying memory requirements -- --

Description

-- --

See Also

-- -- VkDeviceSize, VkMemoryRequirements2, -- vkGetBufferMemoryRequirements, -- vkGetImageMemoryRequirements data VkMemoryRequirements VkMemoryRequirements :: VkDeviceSize -> VkDeviceSize -> Word32 -> VkMemoryRequirements -- | size is the size, in bytes, of the memory allocation -- required for the resource. [$sel:vkSize:VkMemoryRequirements] :: VkMemoryRequirements -> VkDeviceSize -- | alignment is the alignment, in bytes, of the offset within -- the allocation required for the resource. [$sel:vkAlignment:VkMemoryRequirements] :: VkMemoryRequirements -> VkDeviceSize -- | memoryTypeBits is a bitmask and contains one bit set for -- every supported memory type for the resource. Bit i is set if -- and only if the memory type i in the -- VkPhysicalDeviceMemoryProperties structure for the physical -- device is supported for the resource. [$sel:vkMemoryTypeBits:VkMemoryRequirements] :: VkMemoryRequirements -> Word32 instance GHC.Show.Show Graphics.Vulkan.Core10.MemoryManagement.VkMemoryRequirements instance GHC.Classes.Eq Graphics.Vulkan.Core10.MemoryManagement.VkMemoryRequirements instance Foreign.Storable.Storable Graphics.Vulkan.Core10.MemoryManagement.VkMemoryRequirements module Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation -- | VkDedicatedAllocationImageCreateInfoNV - Specify that an image is -- bound to a dedicated memory resource -- --

Description

-- -- Note -- -- Using a dedicated allocation for color and depth/stencil attachments -- or other large images may improve performance on some devices. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkDedicatedAllocationImageCreateInfoNV VkDedicatedAllocationImageCreateInfoNV :: VkStructureType -> Ptr () -> VkBool32 -> VkDedicatedAllocationImageCreateInfoNV -- | sType is the type of this structure. [$sel:vkSType:VkDedicatedAllocationImageCreateInfoNV] :: VkDedicatedAllocationImageCreateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDedicatedAllocationImageCreateInfoNV] :: VkDedicatedAllocationImageCreateInfoNV -> Ptr () -- | dedicatedAllocation specifies whether the image will have a -- dedicated allocation bound to it. [$sel:vkDedicatedAllocation:VkDedicatedAllocationImageCreateInfoNV] :: VkDedicatedAllocationImageCreateInfoNV -> VkBool32 -- | VkDedicatedAllocationBufferCreateInfoNV - Specify that a buffer is -- bound to a dedicated memory resource -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkDedicatedAllocationBufferCreateInfoNV VkDedicatedAllocationBufferCreateInfoNV :: VkStructureType -> Ptr () -> VkBool32 -> VkDedicatedAllocationBufferCreateInfoNV -- | sType is the type of this structure. [$sel:vkSType:VkDedicatedAllocationBufferCreateInfoNV] :: VkDedicatedAllocationBufferCreateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDedicatedAllocationBufferCreateInfoNV] :: VkDedicatedAllocationBufferCreateInfoNV -> Ptr () -- | dedicatedAllocation specifies whether the buffer will have a -- dedicated allocation bound to it. [$sel:vkDedicatedAllocation:VkDedicatedAllocationBufferCreateInfoNV] :: VkDedicatedAllocationBufferCreateInfoNV -> VkBool32 -- | VkDedicatedAllocationMemoryAllocateInfoNV - Specify a dedicated memory -- allocation resource -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkImage, VkStructureType data VkDedicatedAllocationMemoryAllocateInfoNV VkDedicatedAllocationMemoryAllocateInfoNV :: VkStructureType -> Ptr () -> VkImage -> VkBuffer -> VkDedicatedAllocationMemoryAllocateInfoNV -- | sType is the type of this structure. [$sel:vkSType:VkDedicatedAllocationMemoryAllocateInfoNV] :: VkDedicatedAllocationMemoryAllocateInfoNV -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDedicatedAllocationMemoryAllocateInfoNV] :: VkDedicatedAllocationMemoryAllocateInfoNV -> Ptr () -- | image is VK_NULL_HANDLE or a handle of an image which -- this memory will be bound to. [$sel:vkImage:VkDedicatedAllocationMemoryAllocateInfoNV] :: VkDedicatedAllocationMemoryAllocateInfoNV -> VkImage -- | buffer is VK_NULL_HANDLE or a handle of a buffer which -- this memory will be bound to. [$sel:vkBuffer:VkDedicatedAllocationMemoryAllocateInfoNV] :: VkDedicatedAllocationMemoryAllocateInfoNV -> VkBuffer instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationMemoryAllocateInfoNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationBufferCreateInfoNV instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NV_dedicated_allocation.VkDedicatedAllocationImageCreateInfoNV module Graphics.Vulkan.Extensions.VK_AMD_draw_indirect_count -- | vkCmdDrawIndirectCountAMD - Perform an indirect draw with the draw -- count sourced from a buffer -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkCmdDrawIndirectCountAMD behaves similarly to -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize 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

-- -- -- -- -- --

Description

-- -- vkCmdDrawIndexedIndirectCountAMD behaves similarly to -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize vkCmdDrawIndexedIndirectCountAMD :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("countBuffer" ::: VkBuffer) -> ("countBufferOffset" ::: VkDeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO () module Graphics.Vulkan.Extensions.VK_AMD_buffer_marker -- | vkCmdWriteBufferMarkerAMD - Execute a pipelined write of a marker -- value into a buffer -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize, -- VkPipelineStageFlagBits vkCmdWriteBufferMarkerAMD :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineStage" ::: VkPipelineStageFlagBits) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("marker" ::: Word32) -> IO () module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation -- | VkMemoryDedicatedRequirements - Structure describing dedicated -- allocation requirements of buffer and image resources -- --

Description

-- -- If the VkMemoryDedicatedRequirements structure is included in -- the pNext chain of the VkMemoryRequirements2 structure -- passed as the pMemoryRequirements parameter of a -- vkGetBufferMemoryRequirements2 call, -- requiresDedicatedAllocation may be VK_TRUE -- under one of the following conditions: -- -- -- -- In all other cases, requiresDedicatedAllocation must -- be set to VK_FALSE by the implementation whenever a -- VkMemoryDedicatedRequirements structure is included in the -- pNext chain of the VkMemoryRequirements2 structure -- passed to a call to vkGetBufferMemoryRequirements2. -- -- If the VkMemoryDedicatedRequirements structure is included in -- the pNext chain of the VkMemoryRequirements2 -- structure passed as the pMemoryRequirements parameter of a -- vkGetBufferMemoryRequirements2 call and -- VK_BUFFER_CREATE_SPARSE_BINDING_BIT was set in -- VkBufferCreateInfo::flags when buffer was -- created then the implementation must set both -- prefersDedicatedAllocation and -- requiresDedicatedAllocation to VK_FALSE. -- -- If the VkMemoryDedicatedRequirements structure is included in -- the pNext chain of the VkMemoryRequirements2 -- structure passed as the pMemoryRequirements parameter of a -- vkGetImageMemoryRequirements2 call, -- requiresDedicatedAllocation may be VK_TRUE -- under one of the following conditions: -- -- -- -- In all other cases, requiresDedicatedAllocation must -- be set to VK_FALSE by the implementation whenever a -- VkMemoryDedicatedRequirements structure is included in the -- pNext chain of the VkMemoryRequirements2 structure -- passed to a call to vkGetImageMemoryRequirements2. -- -- If the VkMemoryDedicatedRequirements structure is included in -- the pNext chain of the VkMemoryRequirements2 -- structure passed as the pMemoryRequirements parameter of a -- vkGetImageMemoryRequirements2 call and -- VK_IMAGE_CREATE_SPARSE_BINDING_BIT was set in -- VkImageCreateInfo::flags when image was -- created then the implementation must set both -- prefersDedicatedAllocation and -- requiresDedicatedAllocation to VK_FALSE. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkMemoryDedicatedRequirements VkMemoryDedicatedRequirements :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkMemoryDedicatedRequirements -- | sType is the type of this structure. [$sel:vkSType:VkMemoryDedicatedRequirements] :: VkMemoryDedicatedRequirements -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMemoryDedicatedRequirements] :: VkMemoryDedicatedRequirements -> Ptr () -- | prefersDedicatedAllocation specifies that the implementation -- would prefer a dedicated allocation for this resource. The application -- is still free to suballocate the resource but it may get better -- performance if a dedicated allocation is used. [$sel:vkPrefersDedicatedAllocation:VkMemoryDedicatedRequirements] :: VkMemoryDedicatedRequirements -> VkBool32 -- | requiresDedicatedAllocation specifies that a dedicated -- allocation is required for this resource. [$sel:vkRequiresDedicatedAllocation:VkMemoryDedicatedRequirements] :: VkMemoryDedicatedRequirements -> VkBool32 -- | VkMemoryDedicatedAllocateInfo - Specify a dedicated memory allocation -- resource -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkImage, VkStructureType data VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfo :: VkStructureType -> Ptr () -> VkImage -> VkBuffer -> VkMemoryDedicatedAllocateInfo -- | sType is the type of this structure. [$sel:vkSType:VkMemoryDedicatedAllocateInfo] :: VkMemoryDedicatedAllocateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMemoryDedicatedAllocateInfo] :: VkMemoryDedicatedAllocateInfo -> Ptr () -- | image is VK_NULL_HANDLE or a handle of an image which -- this memory will be bound to. [$sel:vkImage:VkMemoryDedicatedAllocateInfo] :: VkMemoryDedicatedAllocateInfo -> VkImage -- | buffer is VK_NULL_HANDLE or a handle of a buffer which -- this memory will be bound to. [$sel:vkBuffer:VkMemoryDedicatedAllocateInfo] :: VkMemoryDedicatedAllocateInfo -> VkBuffer instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedRequirements instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedRequirements instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedAllocateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_dedicated_allocation.VkMemoryDedicatedRequirements module Graphics.Vulkan.Extensions.VK_KHR_dedicated_allocation type VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements type VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2 -- | vkBindBufferMemory2 - Bind device memory to buffer objects -- --

Parameters

-- -- -- -- -- --

Description

-- -- On some implementations, it may be more efficient to batch -- memory bindings into a single command. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkBindBufferMemoryInfo, VkDevice vkBindBufferMemory2 :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindBufferMemoryInfo) -> IO VkResult -- | vkBindImageMemory2 - Bind device memory to image objects -- --

Parameters

-- -- -- -- -- --

Description

-- -- On some implementations, it may be more efficient to batch -- memory bindings into a single command. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkBindImageMemoryInfo, VkDevice vkBindImageMemory2 :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindImageMemoryInfo) -> IO VkResult -- | VkBindBufferMemoryInfo - Structure specifying how to bind a buffer to -- memory -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkDeviceMemory, VkDeviceSize, -- VkStructureType, vkBindBufferMemory2, -- vkBindBufferMemory2KHR data VkBindBufferMemoryInfo VkBindBufferMemoryInfo :: VkStructureType -> Ptr () -> VkBuffer -> VkDeviceMemory -> VkDeviceSize -> VkBindBufferMemoryInfo -- | sType is the type of this structure. [$sel:vkSType:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> Ptr () -- | buffer is the buffer to be attached to memory. [$sel:vkBuffer:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> VkBuffer -- | memory is a VkDeviceMemory object describing the -- device memory to attach. [$sel:vkMemory:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> VkDeviceMemory -- | 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. [$sel:vkMemoryOffset:VkBindBufferMemoryInfo] :: VkBindBufferMemoryInfo -> VkDeviceSize -- | VkBindImageMemoryInfo - Structure specifying how to bind an image to -- memory -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceMemory, VkDeviceSize, VkImage, -- VkStructureType, vkBindImageMemory2, -- vkBindImageMemory2KHR data VkBindImageMemoryInfo VkBindImageMemoryInfo :: VkStructureType -> Ptr () -> VkImage -> VkDeviceMemory -> VkDeviceSize -> VkBindImageMemoryInfo -- | sType is the type of this structure. [$sel:vkSType:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> Ptr () -- | image is the image to be attached to memory. [$sel:vkImage:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> VkImage -- | memory is a VkDeviceMemory object describing the -- device memory to attach. [$sel:vkMemory:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> VkDeviceMemory -- | 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. [$sel:vkMemoryOffset:VkBindImageMemoryInfo] :: VkBindImageMemoryInfo -> VkDeviceSize instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindImageMemoryInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_bind_memory2.VkBindBufferMemoryInfo module Graphics.Vulkan.Extensions.VK_KHR_bind_memory2 vkBindBufferMemory2KHR :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindBufferMemoryInfo) -> IO VkResult vkBindImageMemory2KHR :: ("device" ::: VkDevice) -> ("bindInfoCount" ::: Word32) -> ("pBindInfos" ::: Ptr VkBindImageMemoryInfo) -> IO VkResult type VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo type VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo module Graphics.Vulkan.Core10.SparseResourceMemoryManagement -- | VkImageAspectFlagBits - Bitmask specifying which aspects of an image -- are included in a view -- --

See Also

-- -- VkBindImagePlaneMemoryInfo, VkImageAspectFlags, -- VkImagePlaneMemoryRequirementsInfo newtype VkImageAspectFlagBits VkImageAspectFlagBits :: VkFlags -> VkImageAspectFlagBits -- | VK_IMAGE_ASPECT_COLOR_BIT specifies the color aspect. -- | VK_IMAGE_ASPECT_DEPTH_BIT specifies the depth aspect. -- | VK_IMAGE_ASPECT_STENCIL_BIT specifies the stencil aspect. -- | VK_IMAGE_ASPECT_METADATA_BIT specifies the metadata aspect, -- used for sparse sparse resource operations. -- | VkSparseMemoryBindFlagBits - Bitmask specifying usage of a sparse -- memory binding operation -- --

See Also

-- -- VkSparseMemoryBindFlags newtype VkSparseMemoryBindFlagBits VkSparseMemoryBindFlagBits :: VkFlags -> VkSparseMemoryBindFlagBits -- | VK_SPARSE_MEMORY_BIND_METADATA_BIT specifies that the memory -- being bound is only for the metadata aspect. -- | VkSparseImageFormatFlagBits - Bitmask specifying additional -- information about a sparse image resource -- --

See Also

-- -- VkSparseImageFormatFlags newtype VkSparseImageFormatFlagBits VkSparseImageFormatFlagBits :: VkFlags -> VkSparseImageFormatFlagBits -- | VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT specifies that the -- image uses a single mip tail region for all array layers. -- | 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. -- | 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. -- | vkGetImageSparseMemoryRequirements - Query the memory requirements for -- a sparse image -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkImage, -- VkSparseImageMemoryRequirements vkGetImageSparseMemoryRequirements :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements) -> IO () -- | vkGetPhysicalDeviceSparseImageFormatProperties - Retrieve properties -- of an image format applied to sparse images -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFormat, VkImageTiling, VkImageType, -- VkImageUsageFlags, VkPhysicalDevice, -- VkSampleCountFlagBits, VkSparseImageFormatProperties 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

-- -- -- -- -- --

Description

-- -- vkQueueBindSparse is a 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 the synchronization chapter. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- -- -- -- --

See Also

-- -- VkBindSparseInfo, VkFence, VkQueue vkQueueBindSparse :: ("queue" ::: VkQueue) -> ("bindInfoCount" ::: Word32) -> ("pBindInfo" ::: Ptr VkBindSparseInfo) -> ("fence" ::: VkFence) -> IO VkResult -- | VkOffset3D - Structure specifying a three-dimensional offset -- --

Description

-- --

See Also

-- -- VkBufferImageCopy, VkImageBlit, VkImageCopy, -- VkImageResolve, VkSparseImageMemoryBind data VkOffset3D VkOffset3D :: Int32 -> Int32 -> Int32 -> VkOffset3D -- | x is the x offset. [$sel:vkX:VkOffset3D] :: VkOffset3D -> Int32 -- | y is the y offset. [$sel:vkY:VkOffset3D] :: VkOffset3D -> Int32 -- | z is the z offset. [$sel:vkZ:VkOffset3D] :: VkOffset3D -> Int32 -- | VkSparseImageFormatProperties - Structure specifying sparse image -- format properties -- --

Description

-- --

See Also

-- -- VkExtent3D, VkImageAspectFlags, -- VkSparseImageFormatFlags, -- VkSparseImageFormatProperties2, -- VkSparseImageMemoryRequirements, -- vkGetPhysicalDeviceSparseImageFormatProperties data VkSparseImageFormatProperties VkSparseImageFormatProperties :: VkImageAspectFlags -> VkExtent3D -> VkSparseImageFormatFlags -> VkSparseImageFormatProperties -- | aspectMask is a bitmask VkImageAspectFlagBits -- specifying which aspects of the image the properties apply to. [$sel:vkAspectMask:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkImageAspectFlags -- | imageGranularity is the width, height, and depth of the -- sparse image block in texels or compressed texel blocks. [$sel:vkImageGranularity:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkExtent3D -- | flags is a bitmask of VkSparseImageFormatFlagBits -- specifying additional information about the sparse resource. [$sel:vkFlags:VkSparseImageFormatProperties] :: VkSparseImageFormatProperties -> VkSparseImageFormatFlags -- | VkSparseImageMemoryRequirements - Structure specifying sparse image -- memory requirements -- --

Members

-- -- -- -- -- --

Description

-- --

See Also

-- -- VkDeviceSize, VkSparseImageFormatProperties, -- VkSparseImageMemoryRequirements2, -- vkGetImageSparseMemoryRequirements data VkSparseImageMemoryRequirements VkSparseImageMemoryRequirements :: VkSparseImageFormatProperties -> Word32 -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkSparseImageMemoryRequirements [$sel:vkFormatProperties:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkSparseImageFormatProperties [$sel:vkImageMipTailFirstLod:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> Word32 [$sel:vkImageMipTailSize:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize [$sel:vkImageMipTailOffset:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize [$sel:vkImageMipTailStride:VkSparseImageMemoryRequirements] :: VkSparseImageMemoryRequirements -> VkDeviceSize -- | VkImageSubresource - Structure specifying a image subresource -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImageAspectFlags, VkSparseImageMemoryBind, -- vkGetImageSubresourceLayout data VkImageSubresource VkImageSubresource :: VkImageAspectFlags -> Word32 -> Word32 -> VkImageSubresource -- | aspectMask is a VkImageAspectFlags selecting the image -- aspect. [$sel:vkAspectMask:VkImageSubresource] :: VkImageSubresource -> VkImageAspectFlags -- | mipLevel selects the mipmap level. [$sel:vkMipLevel:VkImageSubresource] :: VkImageSubresource -> Word32 -- | arrayLayer selects the array layer. [$sel:vkArrayLayer:VkImageSubresource] :: VkImageSubresource -> Word32 -- | VkSparseMemoryBind - Structure specifying a sparse memory bind -- operation -- --

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: -- -- -- -- 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,VkMemoryRequirements::size). -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceMemory, VkDeviceSize, -- VkSparseBufferMemoryBindInfo, -- VkSparseImageOpaqueMemoryBindInfo, -- VkSparseMemoryBindFlags data VkSparseMemoryBind VkSparseMemoryBind :: VkDeviceSize -> VkDeviceSize -> VkDeviceMemory -> VkDeviceSize -> VkSparseMemoryBindFlags -> VkSparseMemoryBind -- | resourceOffset is the offset into the resource. [$sel:vkResourceOffset:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize -- | size is the size of the memory region to be bound. [$sel:vkSize:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize -- | memory is the VkDeviceMemory object that the range -- of the resource is bound to. If memory is -- VK_NULL_HANDLE, the range is unbound. [$sel:vkMemory:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceMemory -- | memoryOffset is the offset into the VkDeviceMemory -- object to bind the resource range to. If memory is -- VK_NULL_HANDLE, this value is ignored. [$sel:vkMemoryOffset:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkDeviceSize -- | flags is a bitmask of VkSparseMemoryBindFlagBits -- specifying usage of the binding operation. [$sel:vkFlags:VkSparseMemoryBind] :: VkSparseMemoryBind -> VkSparseMemoryBindFlags -- | VkSparseImageMemoryBind - Structure specifying sparse image memory -- bind -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceMemory, VkDeviceSize, VkExtent3D, -- VkImageSubresource, VkOffset3D, -- VkSparseImageMemoryBindInfo, VkSparseMemoryBindFlags data VkSparseImageMemoryBind VkSparseImageMemoryBind :: VkImageSubresource -> VkOffset3D -> VkExtent3D -> VkDeviceMemory -> VkDeviceSize -> VkSparseMemoryBindFlags -> VkSparseImageMemoryBind -- | subresource is the aspectMask and region of interest in the -- image. [$sel:vkSubresource:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkImageSubresource -- | offset are the coordinates of the first texel within the -- image subresource to bind. [$sel:vkOffset:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkOffset3D -- | extent is the size in texels of the region within the image -- subresource to bind. The extent must be a multiple of the -- sparse image block dimensions, except when binding sparse image blocks -- along the edge of an image subresource it can instead be such -- that any coordinate of offset + extent equals the -- corresponding dimensions of the image subresource. [$sel:vkExtent:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkExtent3D -- | memory is the VkDeviceMemory object that the sparse -- image blocks of the image are bound to. If memory is -- VK_NULL_HANDLE, the sparse image blocks are unbound. [$sel:vkMemory:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkDeviceMemory -- | memoryOffset is an offset into VkDeviceMemory -- object. If memory is VK_NULL_HANDLE, this value is -- ignored. [$sel:vkMemoryOffset:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkDeviceSize -- | flags are sparse memory binding flags. [$sel:vkFlags:VkSparseImageMemoryBind] :: VkSparseImageMemoryBind -> VkSparseMemoryBindFlags -- | VkSparseBufferMemoryBindInfo - Structure specifying a sparse buffer -- memory bind operation -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBindSparseInfo, VkBuffer, VkSparseMemoryBind data VkSparseBufferMemoryBindInfo VkSparseBufferMemoryBindInfo :: VkBuffer -> Word32 -> Ptr VkSparseMemoryBind -> VkSparseBufferMemoryBindInfo -- | buffer is the VkBuffer object to be bound. [$sel:vkBuffer:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> VkBuffer -- | bindCount is the number of VkSparseMemoryBind -- structures in the pBinds array. [$sel:vkBindCount:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> Word32 -- | pBinds is a pointer to array of VkSparseMemoryBind -- structures. [$sel:vkPBinds:VkSparseBufferMemoryBindInfo] :: VkSparseBufferMemoryBindInfo -> Ptr VkSparseMemoryBind -- | VkSparseImageOpaqueMemoryBindInfo - Structure specifying sparse image -- opaque memory bind info -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBindSparseInfo, VkImage, VkSparseMemoryBind data VkSparseImageOpaqueMemoryBindInfo VkSparseImageOpaqueMemoryBindInfo :: VkImage -> Word32 -> Ptr VkSparseMemoryBind -> VkSparseImageOpaqueMemoryBindInfo -- | image is the VkImage object to be bound. [$sel:vkImage:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> VkImage -- | bindCount is the number of VkSparseMemoryBind -- structures in the pBinds array. [$sel:vkBindCount:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> Word32 -- | pBinds is a pointer to array of VkSparseMemoryBind -- structures. [$sel:vkPBinds:VkSparseImageOpaqueMemoryBindInfo] :: VkSparseImageOpaqueMemoryBindInfo -> Ptr VkSparseMemoryBind -- | VkSparseImageMemoryBindInfo - Structure specifying sparse image memory -- bind info -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBindSparseInfo, VkImage, -- VkSparseImageMemoryBind data VkSparseImageMemoryBindInfo VkSparseImageMemoryBindInfo :: VkImage -> Word32 -> Ptr VkSparseImageMemoryBind -> VkSparseImageMemoryBindInfo -- | image is the VkImage object to be bound [$sel:vkImage:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> VkImage -- | bindCount is the number of VkSparseImageMemoryBind -- structures in pBinds array [$sel:vkBindCount:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> Word32 -- | pBinds is a pointer to array of -- VkSparseImageMemoryBind structures [$sel:vkPBinds:VkSparseImageMemoryBindInfo] :: VkSparseImageMemoryBindInfo -> Ptr VkSparseImageMemoryBind -- | VkBindSparseInfo - Structure specifying a sparse binding operation -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkSemaphore, VkSparseBufferMemoryBindInfo, -- VkSparseImageMemoryBindInfo, -- VkSparseImageOpaqueMemoryBindInfo, VkStructureType, -- vkQueueBindSparse data VkBindSparseInfo VkBindSparseInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr VkSemaphore -> Word32 -> Ptr VkSparseBufferMemoryBindInfo -> Word32 -> Ptr VkSparseImageOpaqueMemoryBindInfo -> Word32 -> Ptr VkSparseImageMemoryBindInfo -> Word32 -> Ptr VkSemaphore -> VkBindSparseInfo -- | sType is the type of this structure. [$sel:vkSType:VkBindSparseInfo] :: VkBindSparseInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr () -- | waitSemaphoreCount is the number of semaphores upon which to -- wait before executing the sparse binding operations for the batch. [$sel:vkWaitSemaphoreCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32 -- | pWaitSemaphores is a pointer to an array of semaphores upon -- which to wait on before the sparse binding operations for this batch -- begin execution. If semaphores to wait on are provided, they define a -- semaphore wait operation. [$sel:vkPWaitSemaphores:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSemaphore -- | bufferBindCount is the number of sparse buffer bindings to -- perform in the batch. [$sel:vkBufferBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32 -- | pBufferBinds is a pointer to an array of -- VkSparseBufferMemoryBindInfo structures. [$sel:vkPBufferBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseBufferMemoryBindInfo -- | imageOpaqueBindCount is the number of opaque sparse image -- bindings to perform. [$sel:vkImageOpaqueBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32 -- | pImageOpaqueBinds is a pointer to an array of -- VkSparseImageOpaqueMemoryBindInfo structures, indicating opaque -- sparse image bindings to perform. [$sel:vkPImageOpaqueBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseImageOpaqueMemoryBindInfo -- | imageBindCount is the number of sparse image bindings to -- perform. [$sel:vkImageBindCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32 -- | pImageBinds is a pointer to an array of -- VkSparseImageMemoryBindInfo structures, indicating sparse image -- bindings to perform. [$sel:vkPImageBinds:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSparseImageMemoryBindInfo -- | signalSemaphoreCount is the number of semaphores to be -- signaled once the sparse binding operations specified by the structure -- have completed execution. [$sel:vkSignalSemaphoreCount:VkBindSparseInfo] :: VkBindSparseInfo -> Word32 -- | pSignalSemaphores is a pointer to an array of semaphores -- which will be signaled when the sparse binding operations for this -- batch have completed execution. If semaphores to be signaled are -- provided, they define a semaphore signal operation. [$sel:vkPSignalSemaphores:VkBindSparseInfo] :: VkBindSparseInfo -> Ptr VkSemaphore -- | VkImageAspectFlags - Bitmask of VkImageAspectFlagBits -- --

Description

-- -- VkImageAspectFlags is a bitmask type for setting a mask of -- zero or more VkImageAspectFlagBits. -- --

See Also

-- -- VkClearAttachment, VkImageAspectFlagBits, -- VkImageSubresource, VkImageSubresourceLayers, -- VkImageSubresourceRange, -- VkInputAttachmentAspectReference, -- VkSparseImageFormatProperties type VkImageAspectFlags = VkImageAspectFlagBits -- | VkSparseMemoryBindFlags - Bitmask of VkSparseMemoryBindFlagBits -- --

Description

-- -- VkSparseMemoryBindFlags is a bitmask type for setting a mask -- of zero or more VkSparseMemoryBindFlagBits. -- --

See Also

-- -- VkSparseImageMemoryBind, VkSparseMemoryBind, -- VkSparseMemoryBindFlagBits type VkSparseMemoryBindFlags = VkSparseMemoryBindFlagBits -- | VkSparseImageFormatFlags - Bitmask of VkSparseImageFormatFlagBits -- --

Description

-- -- VkSparseImageFormatFlags is a bitmask type for setting a mask -- of zero or more VkSparseImageFormatFlagBits. -- --

See Also

-- -- VkSparseImageFormatFlagBits, -- VkSparseImageFormatProperties type VkSparseImageFormatFlags = VkSparseImageFormatFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkBindSparseInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkBindSparseInfo instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBind instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBind instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageSubresource instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageSubresource instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryRequirements instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkBindSparseInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseBufferMemoryBindInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageOpaqueMemoryBindInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBind instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBindInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageMemoryBind instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageSubresource instance Foreign.Storable.Storable Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkOffset3D instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseMemoryBindFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkImageAspectFlagBits module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2 -- | vkGetPhysicalDeviceFeatures2 - Reports capabilities of a physical -- device -- --

Parameters

-- -- -- -- -- --

Description

-- -- Each structure in pFeatures and its pNext chain -- contain members corresponding to fine-grained features. -- vkGetPhysicalDeviceFeatures2 writes each member to a boolean -- value indicating whether that feature is supported. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures2) -> IO () -- | vkGetPhysicalDeviceProperties2 - Returns properties of a physical -- device -- --

Parameters

-- -- -- -- -- --

Description

-- -- Each structure in pProperties and its pNext chain -- contain members corresponding to properties or -- implementation-dependent limits. -- vkGetPhysicalDeviceProperties2 writes each member to a value -- indicating the value of that property or limit. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties2) -> IO () -- | vkGetPhysicalDeviceFormatProperties2 - Lists physical device’s format -- capabilities -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkGetPhysicalDeviceFormatProperties2 behaves similarly to -- vkGetPhysicalDeviceFormatProperties, with the ability to return -- extended information in a pNext chain of output structures. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFormat, VkFormatProperties2, VkPhysicalDevice vkGetPhysicalDeviceFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties2) -> IO () -- | vkGetPhysicalDeviceImageFormatProperties2 - Lists physical device’s -- image format capabilities -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkGetPhysicalDeviceImageFormatProperties2 behaves similarly -- to vkGetPhysicalDeviceImageFormatProperties, with the ability -- to return extended information in a pNext chain of output -- structures. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkImageFormatProperties2, VkPhysicalDevice, -- VkPhysicalDeviceImageFormatInfo2 vkGetPhysicalDeviceImageFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pImageFormatInfo" ::: Ptr VkPhysicalDeviceImageFormatInfo2) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties2) -> IO VkResult -- | vkGetPhysicalDeviceQueueFamilyProperties2 - Reports properties of the -- queues of the specified physical device -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkGetPhysicalDeviceQueueFamilyProperties2 behaves similarly -- to vkGetPhysicalDeviceQueueFamilyProperties, with the ability -- to return extended information in a pNext chain of output -- structures. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties2) -> IO () -- | vkGetPhysicalDeviceMemoryProperties2 - Reports memory information for -- the specified physical device -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkGetPhysicalDeviceMemoryProperties2 behaves similarly to -- vkGetPhysicalDeviceMemoryProperties, with the ability to return -- extended information in a pNext chain of output structures. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties2) -> IO () -- | vkGetPhysicalDeviceSparseImageFormatProperties2 - Retrieve properties -- of an image format applied to sparse images -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkGetPhysicalDeviceSparseImageFormatProperties2 behaves -- identically to vkGetPhysicalDeviceSparseImageFormatProperties, -- with the ability to return extended information by adding extension -- structures to the pNext chain of its pProperties -- parameter. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, -- VkPhysicalDeviceSparseImageFormatInfo2, -- VkSparseImageFormatProperties2 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 -- --

Members

-- -- The VkPhysicalDeviceFeatures2 structure is defined as: -- --

Description

-- -- -- -- -- -- The pNext chain of this structure is used to extend the -- structure with features defined by extensions. This structure -- can be used in vkGetPhysicalDeviceFeatures2 or -- can be in the pNext chain of a -- VkDeviceCreateInfo structure, in which case it controls which -- features are enabled in the device in lieu of -- pEnabledFeatures. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkPhysicalDeviceFeatures, VkStructureType, -- vkGetPhysicalDeviceFeatures2, -- vkGetPhysicalDeviceFeatures2KHR data VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2 :: VkStructureType -> Ptr () -> VkPhysicalDeviceFeatures -> VkPhysicalDeviceFeatures2 [$sel:vkSType:VkPhysicalDeviceFeatures2] :: VkPhysicalDeviceFeatures2 -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceFeatures2] :: VkPhysicalDeviceFeatures2 -> Ptr () [$sel:vkFeatures:VkPhysicalDeviceFeatures2] :: VkPhysicalDeviceFeatures2 -> VkPhysicalDeviceFeatures -- | VkPhysicalDeviceProperties2 - Structure specifying physical device -- properties -- --

Description

-- -- The pNext chain of this structure is used to extend the -- structure with properties defined by extensions. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDeviceProperties, VkStructureType, -- vkGetPhysicalDeviceProperties2, -- vkGetPhysicalDeviceProperties2KHR data VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2 :: VkStructureType -> Ptr () -> VkPhysicalDeviceProperties -> VkPhysicalDeviceProperties2 -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceProperties2] :: VkPhysicalDeviceProperties2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceProperties2] :: VkPhysicalDeviceProperties2 -> Ptr () -- | properties is a structure of type -- VkPhysicalDeviceProperties describing the properties of the -- physical device. This structure is written with the same values as if -- it were written by vkGetPhysicalDeviceProperties. [$sel:vkProperties:VkPhysicalDeviceProperties2] :: VkPhysicalDeviceProperties2 -> VkPhysicalDeviceProperties -- | VkFormatProperties2 - Structure specifying image format properties -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFormatProperties, VkStructureType, -- vkGetPhysicalDeviceFormatProperties2, -- vkGetPhysicalDeviceFormatProperties2KHR data VkFormatProperties2 VkFormatProperties2 :: VkStructureType -> Ptr () -> VkFormatProperties -> VkFormatProperties2 -- | sType is the type of this structure. [$sel:vkSType:VkFormatProperties2] :: VkFormatProperties2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkFormatProperties2] :: VkFormatProperties2 -> Ptr () -- | formatProperties is a structure of type -- VkFormatProperties describing features supported by the -- requested format. [$sel:vkFormatProperties:VkFormatProperties2] :: VkFormatProperties2 -> VkFormatProperties -- | VkImageFormatProperties2 - Structure specifying a image format -- properties -- --

Description

-- -- If the combination of parameters to -- vkGetPhysicalDeviceImageFormatProperties2 is not supported by -- the implementation for use in vkCreateImage, then all members -- of imageFormatProperties will be filled with zero. -- -- Note -- -- Filling imageFormatProperties 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. This exeption only applies to -- imageFormatProperties, not sType, pNext, or -- any structures chained from pNext. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImageFormatProperties, VkStructureType, -- vkGetPhysicalDeviceImageFormatProperties2, -- vkGetPhysicalDeviceImageFormatProperties2KHR data VkImageFormatProperties2 VkImageFormatProperties2 :: VkStructureType -> Ptr () -> VkImageFormatProperties -> VkImageFormatProperties2 -- | sType is the type of this structure. [$sel:vkSType:VkImageFormatProperties2] :: VkImageFormatProperties2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. The pNext chain of -- VkImageFormatProperties2 is used to allow the specification -- of additional capabilities to be returned from -- vkGetPhysicalDeviceImageFormatProperties2. [$sel:vkPNext:VkImageFormatProperties2] :: VkImageFormatProperties2 -> Ptr () -- | imageFormatProperties is an instance of a -- VkImageFormatProperties structure in which capabilities are -- returned. [$sel:vkImageFormatProperties:VkImageFormatProperties2] :: VkImageFormatProperties2 -> VkImageFormatProperties -- | VkPhysicalDeviceImageFormatInfo2 - Structure specifying image creation -- parameters -- --

Description

-- -- The members of VkPhysicalDeviceImageFormatInfo2 correspond to -- the arguments to vkGetPhysicalDeviceImageFormatProperties, with -- sType and pNext added for extensibility. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFormat, VkImageCreateFlags, VkImageTiling, -- VkImageType, VkImageUsageFlags, VkStructureType, -- vkGetPhysicalDeviceImageFormatProperties2, -- vkGetPhysicalDeviceImageFormatProperties2KHR data VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2 :: VkStructureType -> Ptr () -> VkFormat -> VkImageType -> VkImageTiling -> VkImageUsageFlags -> VkImageCreateFlags -> VkPhysicalDeviceImageFormatInfo2 -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. The pNext chain of -- VkPhysicalDeviceImageFormatInfo2 is used to provide -- additional image parameters to -- vkGetPhysicalDeviceImageFormatProperties2. [$sel:vkPNext:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> Ptr () -- | format is a VkFormat value indicating the image -- format, corresponding to VkImageCreateInfo::format. [$sel:vkFormat:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkFormat -- | type is a VkImageType value indicating the image type, -- corresponding to VkImageCreateInfo::imageType. [$sel:vkType:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkImageType -- | tiling is a VkImageTiling value indicating the image -- tiling, corresponding to VkImageCreateInfo::tiling. [$sel:vkTiling:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkImageTiling -- | usage is a bitmask of VkImageUsageFlagBits indicating -- the intended usage of the image, corresponding to -- VkImageCreateInfo::usage. [$sel:vkUsage:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkImageUsageFlags -- | flags is a bitmask of VkImageCreateFlagBits indicating -- additional parameters of the image, corresponding to -- VkImageCreateInfo::flags. [$sel:vkFlags:VkPhysicalDeviceImageFormatInfo2] :: VkPhysicalDeviceImageFormatInfo2 -> VkImageCreateFlags -- | VkQueueFamilyProperties2 - Structure providing information about a -- queue family -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkQueueFamilyProperties, VkStructureType, -- vkGetPhysicalDeviceQueueFamilyProperties2, -- vkGetPhysicalDeviceQueueFamilyProperties2KHR data VkQueueFamilyProperties2 VkQueueFamilyProperties2 :: VkStructureType -> Ptr () -> VkQueueFamilyProperties -> VkQueueFamilyProperties2 -- | sType is the type of this structure. [$sel:vkSType:VkQueueFamilyProperties2] :: VkQueueFamilyProperties2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkQueueFamilyProperties2] :: VkQueueFamilyProperties2 -> Ptr () -- | queueFamilyProperties is a structure of type -- VkQueueFamilyProperties which is populated with the same values -- as in vkGetPhysicalDeviceQueueFamilyProperties. [$sel:vkQueueFamilyProperties:VkQueueFamilyProperties2] :: VkQueueFamilyProperties2 -> VkQueueFamilyProperties -- | VkPhysicalDeviceMemoryProperties2 - Structure specifying physical -- device memory properties -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPhysicalDeviceMemoryProperties, VkStructureType, -- vkGetPhysicalDeviceMemoryProperties2, -- vkGetPhysicalDeviceMemoryProperties2KHR data VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2 :: VkStructureType -> Ptr () -> VkPhysicalDeviceMemoryProperties -> VkPhysicalDeviceMemoryProperties2 -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceMemoryProperties2] :: VkPhysicalDeviceMemoryProperties2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceMemoryProperties2] :: VkPhysicalDeviceMemoryProperties2 -> Ptr () -- | memoryProperties is a structure of type -- VkPhysicalDeviceMemoryProperties which is populated with the -- same values as in vkGetPhysicalDeviceMemoryProperties. [$sel:vkMemoryProperties:VkPhysicalDeviceMemoryProperties2] :: VkPhysicalDeviceMemoryProperties2 -> VkPhysicalDeviceMemoryProperties -- | VkSparseImageFormatProperties2 - Structure specifying sparse image -- format properties -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkSparseImageFormatProperties, VkStructureType, -- vkGetPhysicalDeviceSparseImageFormatProperties2, -- vkGetPhysicalDeviceSparseImageFormatProperties2KHR data VkSparseImageFormatProperties2 VkSparseImageFormatProperties2 :: VkStructureType -> Ptr () -> VkSparseImageFormatProperties -> VkSparseImageFormatProperties2 -- | sType is the type of this structure. [$sel:vkSType:VkSparseImageFormatProperties2] :: VkSparseImageFormatProperties2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSparseImageFormatProperties2] :: VkSparseImageFormatProperties2 -> Ptr () -- | properties is a structure of type -- VkSparseImageFormatProperties which is populated with the same -- values as in vkGetPhysicalDeviceSparseImageFormatProperties. [$sel:vkProperties:VkSparseImageFormatProperties2] :: VkSparseImageFormatProperties2 -> VkSparseImageFormatProperties -- | VkPhysicalDeviceSparseImageFormatInfo2 - Structure specifying sparse -- image format inputs -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFormat, VkImageTiling, VkImageType, -- VkImageUsageFlags, VkSampleCountFlagBits, -- VkStructureType, -- vkGetPhysicalDeviceSparseImageFormatProperties2, -- vkGetPhysicalDeviceSparseImageFormatProperties2KHR data VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2 :: VkStructureType -> Ptr () -> VkFormat -> VkImageType -> VkSampleCountFlagBits -> VkImageUsageFlags -> VkImageTiling -> VkPhysicalDeviceSparseImageFormatInfo2 -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> Ptr () -- | format is the image format. [$sel:vkFormat:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkFormat -- | type is the dimensionality of image. [$sel:vkType:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkImageType -- | samples is the number of samples per texel as defined in -- VkSampleCountFlagBits. [$sel:vkSamples:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkSampleCountFlagBits -- | usage is a bitmask describing the intended usage of the -- image. [$sel:vkUsage:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkImageUsageFlags -- | tiling is the tiling arrangement of the data elements in -- memory. [$sel:vkTiling:VkPhysicalDeviceSparseImageFormatInfo2] :: VkPhysicalDeviceSparseImageFormatInfo2 -> VkImageTiling instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkSparseImageFormatProperties2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkSparseImageFormatProperties2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceMemoryProperties2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceMemoryProperties2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkQueueFamilyProperties2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkQueueFamilyProperties2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkFormatProperties2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkFormatProperties2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceSparseImageFormatInfo2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkSparseImageFormatProperties2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceMemoryProperties2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkQueueFamilyProperties2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceImageFormatInfo2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkImageFormatProperties2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkFormatProperties2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceProperties2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2.VkPhysicalDeviceFeatures2 module Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2 vkGetPhysicalDeviceFeatures2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures2) -> IO () vkGetPhysicalDeviceProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties2) -> IO () vkGetPhysicalDeviceFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties2) -> IO () vkGetPhysicalDeviceImageFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pImageFormatInfo" ::: Ptr VkPhysicalDeviceImageFormatInfo2) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties2) -> IO VkResult vkGetPhysicalDeviceQueueFamilyProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties2) -> IO () vkGetPhysicalDeviceMemoryProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties2) -> IO () vkGetPhysicalDeviceSparseImageFormatProperties2KHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFormatInfo" ::: Ptr VkPhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties2) -> IO () type VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2 type VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2 type VkFormatProperties2KHR = VkFormatProperties2 type VkImageFormatProperties2KHR = VkImageFormatProperties2 type VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2 type VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2 type VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2 type VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2 type VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2 module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2 -- | vkGetBufferMemoryRequirements2 - Returns the memory requirements for -- specified Vulkan object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBufferMemoryRequirementsInfo2, VkDevice, -- VkMemoryRequirements2 vkGetBufferMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkBufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO () -- | vkGetImageMemoryRequirements2 - Returns the memory requirements for -- specified Vulkan object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkImageMemoryRequirementsInfo2, -- VkMemoryRequirements2 vkGetImageMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO () -- | vkGetImageSparseMemoryRequirements2 - Query the memory requirements -- for a sparse image -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkImageSparseMemoryRequirementsInfo2, -- VkSparseImageMemoryRequirements2 vkGetImageSparseMemoryRequirements2 :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements2) -> IO () -- | VkBufferMemoryRequirementsInfo2 - (None) -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkStructureType, -- vkGetBufferMemoryRequirements2, -- vkGetBufferMemoryRequirements2KHR data VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2 :: VkStructureType -> Ptr () -> VkBuffer -> VkBufferMemoryRequirementsInfo2 -- | sType is the type of this structure. [$sel:vkSType:VkBufferMemoryRequirementsInfo2] :: VkBufferMemoryRequirementsInfo2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBufferMemoryRequirementsInfo2] :: VkBufferMemoryRequirementsInfo2 -> Ptr () -- | buffer is the buffer to query. [$sel:vkBuffer:VkBufferMemoryRequirementsInfo2] :: VkBufferMemoryRequirementsInfo2 -> VkBuffer -- | VkImageMemoryRequirementsInfo2 - (None) -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImage, VkStructureType, -- vkGetImageMemoryRequirements2, -- vkGetImageMemoryRequirements2KHR data VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2 :: VkStructureType -> Ptr () -> VkImage -> VkImageMemoryRequirementsInfo2 -- | sType is the type of this structure. [$sel:vkSType:VkImageMemoryRequirementsInfo2] :: VkImageMemoryRequirementsInfo2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImageMemoryRequirementsInfo2] :: VkImageMemoryRequirementsInfo2 -> Ptr () -- | image is the image to query. [$sel:vkImage:VkImageMemoryRequirementsInfo2] :: VkImageMemoryRequirementsInfo2 -> VkImage -- | VkImageSparseMemoryRequirementsInfo2 - (None) -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImage, VkStructureType, -- vkGetImageSparseMemoryRequirements2, -- vkGetImageSparseMemoryRequirements2KHR data VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2 :: VkStructureType -> Ptr () -> VkImage -> VkImageSparseMemoryRequirementsInfo2 -- | sType is the type of this structure. [$sel:vkSType:VkImageSparseMemoryRequirementsInfo2] :: VkImageSparseMemoryRequirementsInfo2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImageSparseMemoryRequirementsInfo2] :: VkImageSparseMemoryRequirementsInfo2 -> Ptr () -- | image is the image to query. [$sel:vkImage:VkImageSparseMemoryRequirementsInfo2] :: VkImageSparseMemoryRequirementsInfo2 -> VkImage -- | VkMemoryRequirements2 - Structure specifying memory requirements -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkMemoryRequirements, VkStructureType, -- vkGetBufferMemoryRequirements2, -- vkGetBufferMemoryRequirements2KHR, -- vkGetImageMemoryRequirements2, -- vkGetImageMemoryRequirements2KHR data VkMemoryRequirements2 VkMemoryRequirements2 :: VkStructureType -> Ptr () -> VkMemoryRequirements -> VkMemoryRequirements2 -- | sType is the type of this structure. [$sel:vkSType:VkMemoryRequirements2] :: VkMemoryRequirements2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMemoryRequirements2] :: VkMemoryRequirements2 -> Ptr () -- | memoryRequirements is a structure of type -- VkMemoryRequirements describing the memory requirements of the -- resource. [$sel:vkMemoryRequirements:VkMemoryRequirements2] :: VkMemoryRequirements2 -> VkMemoryRequirements -- | VkSparseImageMemoryRequirements2 - (None) -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkSparseImageMemoryRequirements, VkStructureType, -- vkGetImageSparseMemoryRequirements2, -- vkGetImageSparseMemoryRequirements2KHR data VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2 :: VkStructureType -> Ptr () -> VkSparseImageMemoryRequirements -> VkSparseImageMemoryRequirements2 -- | sType is the type of this structure. [$sel:vkSType:VkSparseImageMemoryRequirements2] :: VkSparseImageMemoryRequirements2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSparseImageMemoryRequirements2] :: VkSparseImageMemoryRequirements2 -> Ptr () -- | memoryRequirements is a structure of type -- VkSparseImageMemoryRequirements describing the memory -- requirements of the sparse image. [$sel:vkMemoryRequirements:VkSparseImageMemoryRequirements2] :: VkSparseImageMemoryRequirements2 -> VkSparseImageMemoryRequirements instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkSparseImageMemoryRequirements2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkSparseImageMemoryRequirements2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkMemoryRequirements2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkMemoryRequirements2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageSparseMemoryRequirementsInfo2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageSparseMemoryRequirementsInfo2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageMemoryRequirementsInfo2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageMemoryRequirementsInfo2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkBufferMemoryRequirementsInfo2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkBufferMemoryRequirementsInfo2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkSparseImageMemoryRequirements2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkMemoryRequirements2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageSparseMemoryRequirementsInfo2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkImageMemoryRequirementsInfo2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_memory_requirements2.VkBufferMemoryRequirementsInfo2 module Graphics.Vulkan.Extensions.VK_KHR_get_memory_requirements2 vkGetBufferMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkBufferMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO () vkGetImageMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageMemoryRequirementsInfo2) -> ("pMemoryRequirements" ::: Ptr VkMemoryRequirements2) -> IO () vkGetImageSparseMemoryRequirements2KHR :: ("device" ::: VkDevice) -> ("pInfo" ::: Ptr VkImageSparseMemoryRequirementsInfo2) -> ("pSparseMemoryRequirementCount" ::: Ptr Word32) -> ("pSparseMemoryRequirements" ::: Ptr VkSparseImageMemoryRequirements2) -> IO () type VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2 type VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2 type VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2 type VkMemoryRequirements2KHR = VkMemoryRequirements2 type VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2 module Graphics.Vulkan.Core10.ImageView -- | VkComponentSwizzle - Specify how a component is swizzled -- --

Description

-- -- -- -- -- -- 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

-- -- VkComponentMapping newtype VkComponentSwizzle VkComponentSwizzle :: Int32 -> VkComponentSwizzle -- | VkImageViewType - Image view types -- --

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 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

-- -- VkImageViewCreateInfo newtype VkImageViewType VkImageViewType :: Int32 -> VkImageViewType -- | VkImageViewCreateFlags - Reserved for future use -- --

Description

-- -- VkImageViewCreateFlags is a bitmask type for setting a mask, -- but is currently reserved for future use. -- --

See Also

-- -- VkImageViewCreateInfo newtype VkImageViewCreateFlags VkImageViewCreateFlags :: VkFlags -> VkImageViewCreateFlags -- | VkImageView - Opaque handle to a image view object -- --

Description

-- --

See Also

-- -- VkDescriptorImageInfo, VkFramebufferCreateInfo, -- vkCreateImageView, vkDestroyImageView type VkImageView = Ptr VkImageView_T -- | vkCreateImageView - Create an image view from an existing image -- --

Parameters

-- -- -- -- -- --

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. This implicit parameter can be overriden by chaining a -- VkImageViewUsageCreateInfo structure through the pNext -- member to VkImageViewCreateInfo as described later in this -- section. -- -- The remaining parameters are contained in the pCreateInfo. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkImageView, -- VkImageViewCreateInfo vkCreateImageView :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkImageViewCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pView" ::: Ptr VkImageView) -> IO VkResult -- | vkDestroyImageView - Destroy an image view object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkImageView vkDestroyImageView :: ("device" ::: VkDevice) -> ("imageView" ::: VkImageView) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkComponentMapping - Structure specifying a color component mapping -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAndroidHardwareBufferFormatPropertiesANDROID, -- VkComponentSwizzle, VkImageViewCreateInfo, -- VkSamplerYcbcrConversionCreateInfo data VkComponentMapping VkComponentMapping :: VkComponentSwizzle -> VkComponentSwizzle -> VkComponentSwizzle -> VkComponentSwizzle -> VkComponentMapping -- | r is a VkComponentSwizzle specifying the component -- value placed in the R component of the output vector. [$sel:vkR:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle -- | g is a VkComponentSwizzle specifying the component -- value placed in the G component of the output vector. [$sel:vkG:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle -- | b is a VkComponentSwizzle specifying the component -- value placed in the B component of the output vector. [$sel:vkB:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle -- | a is a VkComponentSwizzle specifying the component -- value placed in the A component of the output vector. [$sel:vkA:VkComponentMapping] :: VkComponentMapping -> VkComponentSwizzle -- | VkImageSubresourceRange - Structure specifying a image subresource -- range -- --

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, except if -- format is a multi-planar format. 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 the VkImageSubresourceRange structure is used to select -- a subset of the slices of a 3D image’s mip level in order to create a -- 2D or 2D array image view of a 3D image created with -- VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, -- baseArrayLayer and layerCount specify the first -- slice index and the number of slices to include in the created image -- view. Such an image view can be used as a framebuffer -- attachment that refers only to the specified range of slices of the -- selected mip level. However, any layout transitions performed on such -- an attachment view during a render pass instance still apply to the -- entire subresource referenced which includes all the slices of the -- selected mip level. -- -- 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, framebuffer attachments, and any -- VkImageView used with a combined image sampler that enables -- sampler Y’CBCR conversion. -- -- When creating a VkImageView, if sampler Y’CBCR -- conversion is enabled in the sampler, the aspectMask of a -- subresourceRange used by the VkImageView must -- be VK_IMAGE_ASPECT_COLOR_BIT. -- -- When creating a VkImageView, if sampler Y’CBCR conversion is -- not enabled in the sampler and the image format is -- multi-planar, the image must have been created with -- VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the -- aspectMask of the VkImageView’s -- subresourceRange must be -- VK_IMAGE_ASPECT_PLANE_0_BIT, -- VK_IMAGE_ASPECT_PLANE_1_BIT or -- VK_IMAGE_ASPECT_PLANE_2_BIT. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImageAspectFlags, VkImageMemoryBarrier, -- VkImageViewCreateInfo, vkCmdClearColorImage, -- vkCmdClearDepthStencilImage data VkImageSubresourceRange VkImageSubresourceRange :: VkImageAspectFlags -> Word32 -> Word32 -> Word32 -> Word32 -> VkImageSubresourceRange -- | aspectMask is a bitmask of VkImageAspectFlagBits -- specifying which aspect(s) of the image are included in the view. [$sel:vkAspectMask:VkImageSubresourceRange] :: VkImageSubresourceRange -> VkImageAspectFlags -- | baseMipLevel is the first mipmap level accessible to the -- view. [$sel:vkBaseMipLevel:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32 -- | levelCount is the number of mipmap levels (starting from -- baseMipLevel) accessible to the view. [$sel:vkLevelCount:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32 -- | baseArrayLayer is the first array layer accessible to the -- view. [$sel:vkBaseArrayLayer:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32 -- | layerCount is the number of array layers (starting from -- baseArrayLayer) accessible to the view. [$sel:vkLayerCount:VkImageSubresourceRange] :: VkImageSubresourceRange -> Word32 -- | VkImageViewCreateInfo - Structure specifying parameters of a newly -- created image view -- --

Description

-- -- If image was created with the -- VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, and if the -- format of the image is not multi-planar, -- format can be different from the image’s format, but -- if image was created without the -- VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and they -- are not equal they must be compatible. Image format -- compatibility is defined in the 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 Conversion from Normalized Fixed-Point to -- Floating-Point. -- -- If image was created with the -- VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, -- format must be compatible with the image’s -- format as described above, or must be an uncompressed format in -- which case it must be size-compatible with the image’s -- format, as defined for copying data between images In this case -- the resulting image view’s texel dimensions equal the dimensions of -- the selected mip level divided by the compressed texel block size and -- rounded up. -- -- If the image view is to be used with a sampler which supports -- sampler Y’CBCR conversion, an identically defined object -- of type VkSamplerYcbcrConversion to that used to create the -- sampler must be passed to vkCreateImageView in a -- VkSamplerYcbcrConversionInfo added to the pNext chain -- of VkImageViewCreateInfo. -- -- If the image has a multi-planar format and -- subresourceRange.aspectMask is -- VK_IMAGE_ASPECT_COLOR_BIT, format must be -- identical to the image format, and the sampler to be used -- with the image view must enable sampler Y’CBCR -- conversion. -- -- If image was created with the -- VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and the image has a -- multi-planar format, and if -- subresourceRange.aspectMask is -- VK_IMAGE_ASPECT_PLANE_0_BIT, -- VK_IMAGE_ASPECT_PLANE_1_BIT, or -- VK_IMAGE_ASPECT_PLANE_2_BIT, format must be -- compatible with the corresponding plane of the image, and the -- sampler to be used with the image view must not enable -- sampler Y’CBCR conversion. The width and -- height of the single-plane image view must be derived -- from the multi-planar image’s dimensions in the manner listed for -- plane compatibility for the plane. -- -- Any view of an image plane will have the same mapping between texel -- coordinates and memory locations as used by the channels of the color -- aspect, subject to the formulae relating texel coordinates to -- lower-resolution planes as described in Chroma Reconstruction. -- That is, if an R or B plane has a reduced resolution relative to the G -- plane of the multi-planar image, the image view operates using the -- (uplane, vplane) unnormalized coordinates of the -- reduced-resolution plane, and these coordinates access the same memory -- locations as the (ucolor, vcolor) unnormalized -- coordinates of the color aspect for which chroma reconstruction -- operations operate on the same (uplane, vplane) or -- (iplane, jplane) coordinates. -- --
--   +---------+------------------------+-----------------------------------+
--   | Dim,    | Image parameters       | View parameters                   |
--   | Arrayed |                        |                                   |
--   | ,       |                        |                                   |
--   | MS      |                        |                                   |
--   +=========+========================+===================================+
--   |         | @imageType@ =          | @baseArrayLayer@, @layerCount@,   |
--   |         | ci.@imageType@         | and @levelCount@ are members of   |
--   |         | @width@ =              | the @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          |                                   |
--   +---------+------------------------+-----------------------------------+
--   | __3D,   | @imageType@ =          | @viewType@ =                      |
--   | 0, 0__  | @VK_IMAGE_TYPE_3D@     | @VK_IMAGE_VIEW_TYPE_2D@           |
--   |         | @width@ ≥ 1            | @levelCount@ = 1                  |
--   |         | @height@ ≥ 1           | @baseArrayLayer@ ≥ 0              |
--   |         | @depth@ ≥ 1            | @layerCount@ = 1                  |
--   |         | @arrayLayers@ = 1      |                                   |
--   |         | @samples@ = 1          |                                   |
--   |         | @flags@ includes       |                                   |
--   |         | @VK_IMAGE_CREATE_2D_AR |                                   |
--   |         | RAY_COMPATIBLE_BIT@    |                                   |
--   |         | @flags@ does not       |                                   |
--   |         | include                |                                   |
--   |         | @VK_IMAGE_CREATE_SPARS |                                   |
--   |         | E_BINDING_BIT@,        |                                   |
--   |         | @VK_IMAGE_CREATE_SPARS |                                   |
--   |         | E_RESIDENCY_BIT@,      |                                   |
--   |         | and                    |                                   |
--   |         | @VK_IMAGE_CREATE_SPARS |                                   |
--   |         | E_ALIASED_BIT@         |                                   |
--   +---------+------------------------+-----------------------------------+
--   | __3D,   | @imageType@ =          | @viewType@ =                      |
--   | 0, 0__  | @VK_IMAGE_TYPE_3D@     | @VK_IMAGE_VIEW_TYPE_2D_ARRAY@     |
--   |         | @width@ ≥ 1            | @levelCount@ = 1                  |
--   |         | @height@ ≥ 1           | @baseArrayLayer@ ≥ 0              |
--   |         | @depth@ ≥ 1            | @layerCount@ ≥ 1                  |
--   |         | @arrayLayers@ = 1      |                                   |
--   |         | @samples@ = 1          |                                   |
--   |         | @flags@ includes       |                                   |
--   |         | @VK_IMAGE_CREATE_2D_AR |                                   |
--   |         | RAY_COMPATIBLE_BIT@    |                                   |
--   |         | @flags@ does not       |                                   |
--   |         | include                |                                   |
--   |         | @VK_IMAGE_CREATE_SPARS |                                   |
--   |         | E_BINDING_BIT@,        |                                   |
--   |         | @VK_IMAGE_CREATE_SPARS |                                   |
--   |         | E_RESIDENCY_BIT@,      |                                   |
--   |         | and                    |                                   |
--   |         | @VK_IMAGE_CREATE_SPARS |                                   |
--   |         | E_ALIASED_BIT@         |                                   |
--   +---------+------------------------+-----------------------------------+
--   
--   Image and image view parameter compatibility requirements
--   
-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkComponentMapping, VkFormat, VkImage, -- VkImageSubresourceRange, VkImageViewCreateFlags, -- VkImageViewType, VkStructureType, -- vkCreateImageView data VkImageViewCreateInfo VkImageViewCreateInfo :: VkStructureType -> Ptr () -> VkImageViewCreateFlags -> VkImage -> VkImageViewType -> VkFormat -> VkComponentMapping -> VkImageSubresourceRange -> VkImageViewCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageViewCreateFlags -- | image is a VkImage on which the view will be -- created. [$sel:vkImage:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImage -- | viewType is an VkImageViewType value specifying the -- type of the image view. [$sel:vkViewType:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageViewType -- | format is a VkFormat describing the format and type -- used to interpret data elements in the image. [$sel:vkFormat:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkFormat -- | components is a VkComponentMapping specifies a -- remapping of color components (or of depth or stencil components after -- they have been converted into color components). [$sel:vkComponents:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkComponentMapping -- | subresourceRange is a VkImageSubresourceRange -- selecting the set of mipmap levels and array layers to be accessible -- to the view. [$sel:vkSubresourceRange:VkImageViewCreateInfo] :: VkImageViewCreateInfo -> VkImageSubresourceRange instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkComponentMapping instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkComponentMapping instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkImageViewType instance GHC.Classes.Ord Graphics.Vulkan.Core10.ImageView.VkImageViewType instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkImageViewType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle instance GHC.Classes.Ord Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle instance GHC.Classes.Eq Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkImageViewCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkImageSubresourceRange instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ImageView.VkComponentMapping instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.ImageView.VkImageViewCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkImageViewType instance GHC.Read.Read Graphics.Vulkan.Core10.ImageView.VkImageViewType instance GHC.Show.Show Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle instance GHC.Read.Read Graphics.Vulkan.Core10.ImageView.VkComponentSwizzle module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion -- | VkSamplerYcbcrModelConversion - Color model component of a color space -- --

Description

-- -- -- -- -- -- In the VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_* color -- models, for the input to the sampler Y’CBCR range expansion and model -- conversion: -- -- -- -- These rules reflect the mapping of channels after the channel swizzle -- operation (controlled by -- VkSamplerYcbcrConversionCreateInfo::components). -- -- Note -- -- For example, an “YUVA” 32-bit format comprising four 8-bit channels -- can be implemented as VK_FORMAT_R8G8B8A8_UNORM with a -- component mapping: -- -- -- --

See Also

-- -- VkAndroidHardwareBufferFormatPropertiesANDROID, -- VkSamplerYcbcrConversionCreateInfo newtype VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversion :: Int32 -> VkSamplerYcbcrModelConversion -- | VkSamplerYcbcrRange - Range of encoded values in a color space -- --

Description

-- -- -- -- -- -- The formulae for these conversions is described in the Sampler -- Y’CBCR Range Expansion section of the Image Operations -- chapter. -- -- No range modification takes place if ycbcrModel is -- VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY; the -- ycbcrRange field of -- VkSamplerYcbcrConversionCreateInfo is ignored in this case. -- --

See Also

-- -- VkAndroidHardwareBufferFormatPropertiesANDROID, -- VkSamplerYcbcrConversionCreateInfo newtype VkSamplerYcbcrRange VkSamplerYcbcrRange :: Int32 -> VkSamplerYcbcrRange -- | VkChromaLocation - Position of downsampled chroma samples -- --

See Also

-- -- VkAndroidHardwareBufferFormatPropertiesANDROID, -- VkSamplerYcbcrConversionCreateInfo newtype VkChromaLocation VkChromaLocation :: Int32 -> VkChromaLocation -- | VK_CHROMA_LOCATION_COSITED_EVEN specifies that downsampled -- chroma samples are aligned with luma samples with even coordinates. -- | VK_CHROMA_LOCATION_MIDPOINT specifies that downsampled chroma -- samples are located half way between each even luma sample and the -- nearest higher odd luma sample. -- | VK_FORMAT_G8B8G8R8_422_UNORM specifies a four-component, -- 32-bit format containing a pair of G components, an R component, and a -- B component, collectively encoding a 2×1 rectangle of unsigned -- normalized RGB texel data. One G value is present at each i -- coordinate, with the B and R values shared across both G values and -- thus recorded at half the horizontal resolution of the image. This -- format has an 8-bit G component for the even i coordinate in -- byte 0, an 8-bit B component in byte 1, an 8-bit G component for the -- odd i coordinate in byte 2, and an 8-bit R component in byte 3. -- Images in this format must be defined with a width that is a -- multiple of two. For the purposes of the constraints on copy extents, -- this format is treated as a compressed format with a 2×1 compressed -- texel block. -- | VK_FORMAT_B8G8R8G8_422_UNORM specifies a four-component, -- 32-bit format containing a pair of G components, an R component, and a -- B component, collectively encoding a 2×1 rectangle of unsigned -- normalized RGB texel data. One G value is present at each i -- coordinate, with the B and R values shared across both G values and -- thus recorded at half the horizontal resolution of the image. This -- format has an 8-bit B component in byte 0, an 8-bit G component for -- the even i coordinate in byte 1, an 8-bit R component in byte -- 2, and an 8-bit G component for the odd i coordinate in byte 3. -- Images in this format must be defined with a width that is a -- multiple of two. For the purposes of the constraints on copy extents, -- this format is treated as a compressed format with a 2×1 compressed -- texel block. -- | VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM specifies a unsigned -- normalized multi-planar format that has an 8-bit G component in -- plane 0, an 8-bit B component in plane 1, and an 8-bit R component in -- plane 2. The horizontal and vertical dimensions of the R and B planes -- are halved relative to the image dimensions, and each R and B -- component is shared with the G components for which (\lfloor i_G -- \times 0.5 \rfloor = i_B = i_R) and (\lfloor j_G \times 0.5 \rfloor = -- j_B = j_R). The location of each plane when this image is in linear -- layout can be determined via vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. Images in this -- format must be defined with a width and height that is a -- multiple of two. -- | VK_FORMAT_G8_B8R8_2PLANE_420_UNORM specifies a unsigned -- normalized multi-planar format that has an 8-bit G component in -- plane 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit -- B component in byte 0 and an 8-bit R component in byte 1. The -- horizontal and vertical dimensions of the BR plane is halved relative -- to the image dimensions, and each R and B value is shared with the G -- components for which (\lfloor i_G \times 0.5 \rfloor = i_B = i_R) and -- <math>. The location of each plane when this image is in linear -- layout can be determined via vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and -- VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. Images in this -- format must be defined with a width and height that is a -- multiple of two. -- | VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM specifies a unsigned -- normalized multi-planar format that has an 8-bit G component in -- plane 0, an 8-bit B component in plane 1, and an 8-bit R component in -- plane 2. The horizontal dimension of the R and B plane is halved -- relative to the image dimensions, and each R and B value is shared -- with the G components for which <math>. The location of each -- plane when this image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. Images in this -- format must be defined with a width that is a multiple of two. -- | VK_FORMAT_G8_B8R8_2PLANE_422_UNORM specifies a unsigned -- normalized multi-planar format that has an 8-bit G component in -- plane 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit -- B component in byte 0 and an 8-bit R component in byte 1. The -- horizontal dimensions of the BR plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for -- which <math>. The location of each plane when this image is in -- linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and -- VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. Images in this -- format must be defined with a width that is a multiple of two. -- | VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM specifies a unsigned -- normalized multi-planar format that has an 8-bit G component in -- plane 0, an 8-bit B component in plane 1, and an 8-bit R component in -- plane 2. Each plane has the same dimensions and each R, G and B -- component contributes to a single texel. The location of each plane -- when this image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. -- | VK_FORMAT_R10X6_UNORM_PACK16 specifies a one-component, -- 16-bit unsigned normalized format that has a single 10-bit R component -- in the top 10 bits of a 16-bit word, with the bottom 6 bits set to 0. -- | VK_FORMAT_R10X6G10X6_UNORM_2PACK16 specifies a two-component, -- 32-bit unsigned normalized format that has a 10-bit R component in the -- top 10 bits of the word in bytes 0..1, and a 10-bit G component in the -- top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each -- word set to 0. -- | VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 specifies a -- four-component, 64-bit unsigned normalized format that has a 10-bit R -- component in the top 10 bits of the word in bytes 0..1, a 10-bit G -- component in the top 10 bits of the word in bytes 2..3, a 10-bit B -- component in the top 10 bits of the word in bytes 4..5, and a 10-bit A -- component in the top 10 bits of the word in bytes 6..7, with the -- bottom 6 bits of each word set to 0. -- | VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 specifies a -- four-component, 64-bit format containing a pair of G components, an R -- component, and a B component, collectively encoding a 2×1 rectangle of -- unsigned normalized RGB texel data. One G value is present at each -- i coordinate, with the B and R values shared across both G -- values and thus recorded at half the horizontal resolution of the -- image. This format has a 10-bit G component for the even i -- coordinate in the top 10 bits of the word in bytes 0..1, a 10-bit B -- component in the top 10 bits of the word in bytes 2..3, a 10-bit G -- component for the odd i coordinate in the top 10 bits of the -- word in bytes 4..5, and a 10-bit R component in the top 10 bits of the -- word in bytes 6..7, with the bottom 6 bits of each word set to 0. -- Images in this format must be defined with a width that is a -- multiple of two. For the purposes of the constraints on copy extents, -- this format is treated as a compressed format with a 2×1 compressed -- texel block. -- | VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 specifies a -- four-component, 64-bit format containing a pair of G components, an R -- component, and a B component, collectively encoding a 2×1 rectangle of -- unsigned normalized RGB texel data. One G value is present at each -- i coordinate, with the B and R values shared across both G -- values and thus recorded at half the horizontal resolution of the -- image. This format has a 10-bit B component in the top 10 bits of the -- word in bytes 0..1, a 10-bit G component for the even i -- coordinate in the top 10 bits of the word in bytes 2..3, a 10-bit R -- component in the top 10 bits of the word in bytes 4..5, and a 10-bit G -- component for the odd i coordinate in the top 10 bits of the -- word in bytes 6..7, with the bottom 6 bits of each word set to 0. -- Images in this format must be defined with a width that is a -- multiple of two. For the purposes of the constraints on copy extents, -- this format is treated as a compressed format with a 2×1 compressed -- texel block. -- | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 -- specifies a unsigned normalized multi-planar format that has a -- 10-bit G component in the top 10 bits of each 16-bit word of plane 0, -- a 10-bit B component in the top 10 bits of each 16-bit word of plane -- 1, and a 10-bit R component in the top 10 bits of each 16-bit word of -- plane 2, with the bottom 6 bits of each word set to 0. The horizontal -- and vertical dimensions of the R and B planes are halved relative to -- the image dimensions, and each R and B component is shared with the G -- components for which (\lfloor i_G \times 0.5 \rfloor = i_B = i_R) and -- (\lfloor j_G \times 0.5 \rfloor = j_B = j_R). The location of each -- plane when this image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. Images in this -- format must be defined with a width and height that is a -- multiple of two. -- | VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 specifies -- a unsigned normalized multi-planar format that has a 10-bit G -- component in the top 10 bits of each 16-bit word of plane 0, and a -- two-component, 32-bit BR plane 1 consisting of a 10-bit B component in -- the top 10 bits of the word in bytes 0..1, and a 10-bit R component in -- the top 10 bits of the word in bytes 2..3, the bottom 6 bits of each -- word set to 0. The horizontal and vertical dimensions of the BR plane -- is halved relative to the image dimensions, and each R and B value is -- shared with the G components for which (\lfloor i_G \times 0.5 \rfloor -- = i_B = i_R) and <math>. The location of each plane when this -- image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and -- VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. Images in this -- format must be defined with a width and height that is a -- multiple of two. -- | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 -- specifies a unsigned normalized multi-planar format that has a -- 10-bit G component in the top 10 bits of each 16-bit word of plane 0, -- a 10-bit B component in the top 10 bits of each 16-bit word of plane -- 1, and a 10-bit R component in the top 10 bits of each 16-bit word of -- plane 2, with the bottom 6 bits of each word set to 0. The horizontal -- dimension of the R and B plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for -- which <math>. The location of each plane when this image is in -- linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. Images in this -- format must be defined with a width that is a multiple of two. -- | VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 specifies -- a unsigned normalized multi-planar format that has a 10-bit G -- component in the top 10 bits of each 16-bit word of plane 0, and a -- two-component, 32-bit BR plane 1 consisting of a 10-bit B component in -- the top 10 bits of the word in bytes 0..1, and a 10-bit R component in -- the top 10 bits of the word in bytes 2..3, the bottom 6 bits of each -- word set to 0. The horizontal dimensions of the BR plane is halved -- relative to the image dimensions, and each R and B value is shared -- with the G components for which <math>. The location of each -- plane when this image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and -- VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. Images in this -- format must be defined with a width that is a multiple of two. -- | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 -- specifies a unsigned normalized multi-planar format that has a -- 10-bit G component in the top 10 bits of each 16-bit word of plane 0, -- a 10-bit B component in the top 10 bits of each 16-bit word of plane -- 1, and a 10-bit R component in the top 10 bits of each 16-bit word of -- plane 2, with the bottom 6 bits of each word set to 0. Each plane has -- the same dimensions and each R, G and B component contributes to a -- single texel. The location of each plane when this image is in linear -- layout can be determined via vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. -- | VK_FORMAT_R12X4_UNORM_PACK16 specifies a one-component, -- 16-bit unsigned normalized format that has a single 12-bit R component -- in the top 12 bits of a 16-bit word, with the bottom 4 bits set to 0. -- | VK_FORMAT_R12X4G12X4_UNORM_2PACK16 specifies a two-component, -- 32-bit unsigned normalized format that has a 12-bit R component in the -- top 12 bits of the word in bytes 0..1, and a 12-bit G component in the -- top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each -- word set to 0. -- | VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 specifies a -- four-component, 64-bit unsigned normalized format that has a 12-bit R -- component in the top 12 bits of the word in bytes 0..1, a 12-bit G -- component in the top 12 bits of the word in bytes 2..3, a 12-bit B -- component in the top 12 bits of the word in bytes 4..5, and a 12-bit A -- component in the top 12 bits of the word in bytes 6..7, with the -- bottom 4 bits of each word set to 0. -- | VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 specifies a -- four-component, 64-bit format containing a pair of G components, an R -- component, and a B component, collectively encoding a 2×1 rectangle of -- unsigned normalized RGB texel data. One G value is present at each -- i coordinate, with the B and R values shared across both G -- values and thus recorded at half the horizontal resolution of the -- image. This format has a 12-bit G component for the even i -- coordinate in the top 12 bits of the word in bytes 0..1, a 12-bit B -- component in the top 12 bits of the word in bytes 2..3, a 12-bit G -- component for the odd i coordinate in the top 12 bits of the -- word in bytes 4..5, and a 12-bit R component in the top 12 bits of the -- word in bytes 6..7, with the bottom 4 bits of each word set to 0. -- Images in this format must be defined with a width that is a -- multiple of two. For the purposes of the constraints on copy extents, -- this format is treated as a compressed format with a 2×1 compressed -- texel block. -- | VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 specifies a -- four-component, 64-bit format containing a pair of G components, an R -- component, and a B component, collectively encoding a 2×1 rectangle of -- unsigned normalized RGB texel data. One G value is present at each -- i coordinate, with the B and R values shared across both G -- values and thus recorded at half the horizontal resolution of the -- image. This format has a 12-bit B component in the top 12 bits of the -- word in bytes 0..1, a 12-bit G component for the even i -- coordinate in the top 12 bits of the word in bytes 2..3, a 12-bit R -- component in the top 12 bits of the word in bytes 4..5, and a 12-bit G -- component for the odd i coordinate in the top 12 bits of the -- word in bytes 6..7, with the bottom 4 bits of each word set to 0. -- Images in this format must be defined with a width that is a -- multiple of two. For the purposes of the constraints on copy extents, -- this format is treated as a compressed format with a 2×1 compressed -- texel block. -- | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 -- specifies a unsigned normalized multi-planar format that has a -- 12-bit G component in the top 12 bits of each 16-bit word of plane 0, -- a 12-bit B component in the top 12 bits of each 16-bit word of plane -- 1, and a 12-bit R component in the top 12 bits of each 16-bit word of -- plane 2, with the bottom 4 bits of each word set to 0. The horizontal -- and vertical dimensions of the R and B planes are halved relative to -- the image dimensions, and each R and B component is shared with the G -- components for which (\lfloor i_G \times 0.5 \rfloor = i_B = i_R) and -- (\lfloor j_G \times 0.5 \rfloor = j_B = j_R). The location of each -- plane when this image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. Images in this -- format must be defined with a width and height that is a -- multiple of two. -- | VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 specifies -- a unsigned normalized multi-planar format that has a 12-bit G -- component in the top 12 bits of each 16-bit word of plane 0, and a -- two-component, 32-bit BR plane 1 consisting of a 12-bit B component in -- the top 12 bits of the word in bytes 0..1, and a 12-bit R component in -- the top 12 bits of the word in bytes 2..3, the bottom 4 bits of each -- word set to 0. The horizontal and vertical dimensions of the BR plane -- is halved relative to the image dimensions, and each R and B value is -- shared with the G components for which (\lfloor i_G \times 0.5 \rfloor -- = i_B = i_R) and <math>. The location of each plane when this -- image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and -- VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. Images in this -- format must be defined with a width and height that is a -- multiple of two. -- | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 -- specifies a unsigned normalized multi-planar format that has a -- 12-bit G component in the top 12 bits of each 16-bit word of plane 0, -- a 12-bit B component in the top 12 bits of each 16-bit word of plane -- 1, and a 12-bit R component in the top 12 bits of each 16-bit word of -- plane 2, with the bottom 4 bits of each word set to 0. The horizontal -- dimension of the R and B plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for -- which <math>. The location of each plane when this image is in -- linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. Images in this -- format must be defined with a width that is a multiple of two. -- | VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 specifies -- a unsigned normalized multi-planar format that has a 12-bit G -- component in the top 12 bits of each 16-bit word of plane 0, and a -- two-component, 32-bit BR plane 1 consisting of a 12-bit B component in -- the top 12 bits of the word in bytes 0..1, and a 12-bit R component in -- the top 12 bits of the word in bytes 2..3, the bottom 4 bits of each -- word set to 0. The horizontal dimensions of the BR plane is halved -- relative to the image dimensions, and each R and B value is shared -- with the G components for which <math>. The location of each -- plane when this image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and -- VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. Images in this -- format must be defined with a width that is a multiple of two. -- | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 -- specifies a unsigned normalized multi-planar format that has a -- 12-bit G component in the top 12 bits of each 16-bit word of plane 0, -- a 12-bit B component in the top 12 bits of each 16-bit word of plane -- 1, and a 12-bit R component in the top 12 bits of each 16-bit word of -- plane 2, with the bottom 4 bits of each word set to 0. Each plane has -- the same dimensions and each R, G and B component contributes to a -- single texel. The location of each plane when this image is in linear -- layout can be determined via vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. -- | VK_FORMAT_G16B16G16R16_422_UNORM specifies a four-component, -- 64-bit format containing a pair of G components, an R component, and a -- B component, collectively encoding a 2×1 rectangle of unsigned -- normalized RGB texel data. One G value is present at each i -- coordinate, with the B and R values shared across both G values and -- thus recorded at half the horizontal resolution of the image. This -- format has a 16-bit G component for the even i coordinate in -- the word in bytes 0..1, a 16-bit B component in the word in bytes -- 2..3, a 16-bit G component for the odd i coordinate in the word -- in bytes 4..5, and a 16-bit R component in the word in bytes 6..7. -- Images in this format must be defined with a width that is a -- multiple of two. For the purposes of the constraints on copy extents, -- this format is treated as a compressed format with a 2×1 compressed -- texel block. -- | VK_FORMAT_B16G16R16G16_422_UNORM specifies a four-component, -- 64-bit format containing a pair of G components, an R component, and a -- B component, collectively encoding a 2×1 rectangle of unsigned -- normalized RGB texel data. One G value is present at each i -- coordinate, with the B and R values shared across both G values and -- thus recorded at half the horizontal resolution of the image. This -- format has a 16-bit B component in the word in bytes 0..1, a 16-bit G -- component for the even i coordinate in the word in bytes 2..3, -- a 16-bit R component in the word in bytes 4..5, and a 16-bit G -- component for the odd i coordinate in the word in bytes 6..7. -- Images in this format must be defined with a width that is a -- multiple of two. For the purposes of the constraints on copy extents, -- this format is treated as a compressed format with a 2×1 compressed -- texel block. -- | VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM specifies a unsigned -- normalized multi-planar format that has a 16-bit G component in -- each 16-bit word of plane 0, a 16-bit B component in each 16-bit word -- of plane 1, and a 16-bit R component in each 16-bit word of plane 2. -- The horizontal and vertical dimensions of the R and B planes are -- halved relative to the image dimensions, and each R and B component is -- shared with the G components for which (\lfloor i_G \times 0.5 \rfloor -- = i_B = i_R) and (\lfloor j_G \times 0.5 \rfloor = j_B = j_R). The -- location of each plane when this image is in linear layout can be -- determined via vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. Images in this -- format must be defined with a width and height that is a -- multiple of two. -- | VK_FORMAT_G16_B16R16_2PLANE_420_UNORM specifies a unsigned -- normalized multi-planar format that has a 16-bit G component in -- each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 -- consisting of a 16-bit B component in the word in bytes 0..1, and a -- 16-bit R component in the word in bytes 2..3. The horizontal and -- vertical dimensions of the BR plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for -- which (\lfloor i_G \times 0.5 \rfloor = i_B = i_R) and <math>. -- The location of each plane when this image is in linear layout can be -- determined via vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and -- VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. Images in this -- format must be defined with a width and height that is a -- multiple of two. -- | VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM specifies a unsigned -- normalized multi-planar format that has a 16-bit G component in -- each 16-bit word of plane 0, a 16-bit B component in each 16-bit word -- of plane 1, and a 16-bit R component in each 16-bit word of plane 2. -- The horizontal dimension of the R and B plane is halved relative to -- the image dimensions, and each R and B value is shared with the G -- components for which <math>. The location of each plane when -- this image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. Images in this -- format must be defined with a width that is a multiple of two. -- | VK_FORMAT_G16_B16R16_2PLANE_422_UNORM specifies a unsigned -- normalized multi-planar format that has a 16-bit G component in -- each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 -- consisting of a 16-bit B component in the word in bytes 0..1, and a -- 16-bit R component in the word in bytes 2..3. The horizontal -- dimensions of the BR plane is halved relative to the image dimensions, -- and each R and B value is shared with the G components for which -- <math>. The location of each plane when this image is in linear -- layout can be determined via vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and -- VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. Images in this -- format must be defined with a width that is a multiple of two. -- | VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM specifies a unsigned -- normalized multi-planar format that has a 16-bit G component in -- each 16-bit word of plane 0, a 16-bit B component in each 16-bit word -- of plane 1, and a 16-bit R component in each 16-bit word of plane 2. -- Each plane has the same dimensions and each R, G and B component -- contributes to a single texel. The location of each plane when this -- image is in linear layout can be determined via -- vkGetImageSubresourceLayout, using -- VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, -- VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and -- VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. -- | VkSamplerYcbcrConversion - NO SHORT DESCRIPTION PROVIDED -- --

Description

-- --

See Also

-- -- VkSamplerYcbcrConversionInfo, -- vkCreateSamplerYcbcrConversion, -- vkCreateSamplerYcbcrConversionKHR, -- vkDestroySamplerYcbcrConversion, -- vkDestroySamplerYcbcrConversionKHR type VkSamplerYcbcrConversion = Ptr VkSamplerYcbcrConversion_T -- | vkCreateSamplerYcbcrConversion - Create a new Ycbcr conversion -- --

Parameters

-- -- -- -- -- --

Description

-- -- The interpretation of the configured sampler Y’CBCR conversion is -- described in more detail in the description of sampler Y’CBCR -- conversion in the Image Operations chapter. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkSamplerYcbcrConversion, -- VkSamplerYcbcrConversionCreateInfo vkCreateSamplerYcbcrConversion :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerYcbcrConversionCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr VkSamplerYcbcrConversion) -> IO VkResult -- | vkDestroySamplerYcbcrConversion - Destroy a created Y’CbCr conversion -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkSamplerYcbcrConversion vkDestroySamplerYcbcrConversion :: ("device" ::: VkDevice) -> ("ycbcrConversion" ::: VkSamplerYcbcrConversion) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkSamplerYcbcrConversionInfo - Structure specifying Y’CbCr conversion -- to a sampler or image view -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkSamplerYcbcrConversion, VkStructureType data VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfo :: VkStructureType -> Ptr () -> VkSamplerYcbcrConversion -> VkSamplerYcbcrConversionInfo -- | sType is the type of this structure. [$sel:vkSType:VkSamplerYcbcrConversionInfo] :: VkSamplerYcbcrConversionInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSamplerYcbcrConversionInfo] :: VkSamplerYcbcrConversionInfo -> Ptr () -- | conversion is a VkSamplerYcbcrConversion handle -- created with vkCreateSamplerYcbcrConversion. [$sel:vkConversion:VkSamplerYcbcrConversionInfo] :: VkSamplerYcbcrConversionInfo -> VkSamplerYcbcrConversion -- | VkSamplerYcbcrConversionCreateInfo - Structure specifying the -- parameters of the newly created conversion -- --

Description

-- -- Note -- -- Setting forceExplicitReconstruction to VK_TRUE -- may have a performance penalty on implementations where -- explicit reconstruction is not the default mode of operation. -- -- If the pNext chain has an instance of -- VkExternalFormatANDROID with non-zero externalFormat -- member, the sampler Y’CBCR conversion object represents an external -- format conversion, and format must be -- VK_FORMAT_UNDEFINED. Such conversions must only be -- used to sample image views with a matching external format. -- When creating an external format conversion, the value of -- components is ignored. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- -- If chromaFilter is VK_FILTER_NEAREST, chroma samples -- are reconstructed to luma channel resolution using nearest-neighbour -- sampling. Otherwise, chroma samples are reconstructed using -- interpolation. More details can be found in the description of -- sampler Y’CBCR conversion in the Image Operations chapter. -- --

See Also

-- -- VkBool32, VkChromaLocation, VkComponentMapping, -- VkFilter, VkFormat, -- VkSamplerYcbcrModelConversion, VkSamplerYcbcrRange, -- VkStructureType, vkCreateSamplerYcbcrConversion, -- vkCreateSamplerYcbcrConversionKHR data VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfo :: VkStructureType -> Ptr () -> VkFormat -> VkSamplerYcbcrModelConversion -> VkSamplerYcbcrRange -> VkComponentMapping -> VkChromaLocation -> VkChromaLocation -> VkFilter -> VkBool32 -> VkSamplerYcbcrConversionCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> Ptr () -- | format is the format of the image from which color -- information will be retrieved. [$sel:vkFormat:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkFormat -- | ycbcrModel describes the color matrix for conversion between -- color models. [$sel:vkYcbcrModel:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkSamplerYcbcrModelConversion -- | ycbcrRange describes whether the encoded values have headroom -- and foot room, or whether the encoding uses the full numerical range. [$sel:vkYcbcrRange:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkSamplerYcbcrRange -- | components applies a swizzle based on -- VkComponentSwizzle enums prior to range expansion and color -- model conversion. [$sel:vkComponents:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkComponentMapping -- | xChromaOffset describes the sample location associated -- with downsampled chroma channels in the x dimension. -- xChromaOffset has no effect for formats in which chroma -- channels are the same resolution as the luma channel. [$sel:vkXChromaOffset:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkChromaLocation -- | yChromaOffset describes the sample location associated -- with downsampled chroma channels in the y dimension. -- yChromaOffset has no effect for formats in which the chroma -- channels are not downsampled vertically. [$sel:vkYChromaOffset:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkChromaLocation -- | chromaFilter is the filter for chroma reconstruction. [$sel:vkChromaFilter:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkFilter -- | forceExplicitReconstruction can be used to ensure that -- reconstruction is done explicitly, if supported. [$sel:vkForceExplicitReconstruction:VkSamplerYcbcrConversionCreateInfo] :: VkSamplerYcbcrConversionCreateInfo -> VkBool32 -- | VkBindImagePlaneMemoryInfo - Structure specifying how to bind an image -- plane to memory -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImageAspectFlagBits, VkStructureType data VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfo :: VkStructureType -> Ptr () -> VkImageAspectFlagBits -> VkBindImagePlaneMemoryInfo -- | sType is the type of this structure. [$sel:vkSType:VkBindImagePlaneMemoryInfo] :: VkBindImagePlaneMemoryInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBindImagePlaneMemoryInfo] :: VkBindImagePlaneMemoryInfo -> Ptr () -- | planeAspect is the aspect of the disjoint image plane to -- bind. [$sel:vkPlaneAspect:VkBindImagePlaneMemoryInfo] :: VkBindImagePlaneMemoryInfo -> VkImageAspectFlagBits -- | VkImagePlaneMemoryRequirementsInfo - Structure specifying image plane -- for memory requirements -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImageAspectFlagBits, VkStructureType data VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfo :: VkStructureType -> Ptr () -> VkImageAspectFlagBits -> VkImagePlaneMemoryRequirementsInfo -- | sType is the type of this structure. [$sel:vkSType:VkImagePlaneMemoryRequirementsInfo] :: VkImagePlaneMemoryRequirementsInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImagePlaneMemoryRequirementsInfo] :: VkImagePlaneMemoryRequirementsInfo -> Ptr () -- | planeAspect is the aspect corresponding to the image plane to -- query. [$sel:vkPlaneAspect:VkImagePlaneMemoryRequirementsInfo] :: VkImagePlaneMemoryRequirementsInfo -> VkImageAspectFlagBits -- | VkPhysicalDeviceSamplerYcbcrConversionFeatures - Structure describing -- Y’CbCr conversion features that can be supported by an implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceSamplerYcbcrConversionFeatures structure -- describe the following feature: -- --

Description

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceSamplerYcbcrConversionFeatures [$sel:vkSType:VkPhysicalDeviceSamplerYcbcrConversionFeatures] :: VkPhysicalDeviceSamplerYcbcrConversionFeatures -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceSamplerYcbcrConversionFeatures] :: VkPhysicalDeviceSamplerYcbcrConversionFeatures -> Ptr () [$sel:vkSamplerYcbcrConversion:VkPhysicalDeviceSamplerYcbcrConversionFeatures] :: VkPhysicalDeviceSamplerYcbcrConversionFeatures -> VkBool32 -- | VkSamplerYcbcrConversionImageFormatProperties - Structure specifying -- combined image sampler descriptor count for multi-planar images -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkStructureType data VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatProperties :: VkStructureType -> Ptr () -> Word32 -> VkSamplerYcbcrConversionImageFormatProperties -- | sType is the type of this structure. [$sel:vkSType:VkSamplerYcbcrConversionImageFormatProperties] :: VkSamplerYcbcrConversionImageFormatProperties -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSamplerYcbcrConversionImageFormatProperties] :: VkSamplerYcbcrConversionImageFormatProperties -> Ptr () -- | combinedImageSamplerDescriptorCount is the number of combined -- image sampler descriptors that the implementation uses to access the -- format. [$sel:vkCombinedImageSamplerDescriptorCount:VkSamplerYcbcrConversionImageFormatProperties] :: VkSamplerYcbcrConversionImageFormatProperties -> Word32 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionImageFormatProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionImageFormatProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkImagePlaneMemoryRequirementsInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkImagePlaneMemoryRequirementsInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkBindImagePlaneMemoryInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkBindImagePlaneMemoryInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionImageFormatProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkPhysicalDeviceSamplerYcbcrConversionFeatures instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkImagePlaneMemoryRequirementsInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkBindImagePlaneMemoryInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkChromaLocation instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrRange instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrModelConversion module Graphics.Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion vkCreateSamplerYcbcrConversionKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSamplerYcbcrConversionCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pYcbcrConversion" ::: Ptr VkSamplerYcbcrConversion) -> IO VkResult vkDestroySamplerYcbcrConversionKHR :: ("device" ::: VkDevice) -> ("ycbcrConversion" ::: VkSamplerYcbcrConversion) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () type VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversion type VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRange type VkChromaLocationKHR = VkChromaLocation type VkSamplerYcbcrConversionKHR = VkSamplerYcbcrConversion type VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo type VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo type VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo type VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures type VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties module Graphics.Vulkan.Core10.Fence -- | VkFenceCreateFlagBits - Bitmask specifying initial state and behavior -- of a fence -- --

See Also

-- -- VkFenceCreateFlags newtype VkFenceCreateFlagBits VkFenceCreateFlagBits :: VkFlags -> VkFenceCreateFlagBits -- | VK_FENCE_CREATE_SIGNALED_BIT specifies that the fence object -- is created in the signaled state. Otherwise, it is created in the -- unsignaled state. -- | vkCreateFence - Create a new fence object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkFence, -- VkFenceCreateInfo vkCreateFence :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkFenceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFence" ::: Ptr VkFence) -> IO VkResult -- | vkDestroyFence - Destroy a fence object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkFence vkDestroyFence :: ("device" ::: VkDevice) -> ("fence" ::: VkFence) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkResetFences - Resets one or more fence objects -- --

Parameters

-- -- -- -- -- --

Description

-- -- If any member of pFences currently has its payload -- imported with temporary permanence, that fence’s prior permanent -- payload is first restored. The remaining operations described -- therefore operate on the restored payload. -- -- 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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkFence vkResetFences :: ("device" ::: VkDevice) -> ("fenceCount" ::: Word32) -> ("pFences" ::: Ptr VkFence) -> IO VkResult -- | vkGetFenceStatus - Return the status of a fence -- --

Parameters

-- -- -- -- -- --

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 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 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkFence vkGetFenceStatus :: ("device" ::: VkDevice) -> ("fence" ::: VkFence) -> IO VkResult -- | vkWaitForFences - Wait for one or more fences to become signaled -- --

Parameters

-- -- -- -- -- --

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 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkBool32, VkDevice, VkFence vkWaitForFences :: ("device" ::: VkDevice) -> ("fenceCount" ::: Word32) -> ("pFences" ::: Ptr VkFence) -> ("waitAll" ::: VkBool32) -> ("timeout" ::: Word64) -> IO VkResult -- | VkFenceCreateInfo - Structure specifying parameters of a newly created -- fence -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFenceCreateFlags, VkStructureType, -- vkCreateFence data VkFenceCreateInfo VkFenceCreateInfo :: VkStructureType -> Ptr () -> VkFenceCreateFlags -> VkFenceCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkFenceCreateInfo] :: VkFenceCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkFenceCreateInfo] :: VkFenceCreateInfo -> Ptr () -- | flags is a bitmask of VkFenceCreateFlagBits specifying -- the initial state and behavior of the fence. [$sel:vkFlags:VkFenceCreateInfo] :: VkFenceCreateInfo -> VkFenceCreateFlags -- | VkFenceCreateFlags - Bitmask of VkFenceCreateFlagBits -- --

Description

-- -- VkFenceCreateFlags is a bitmask type for setting a mask of -- zero or more VkFenceCreateFlagBits. -- --

See Also

-- -- VkFenceCreateFlagBits, VkFenceCreateInfo type VkFenceCreateFlags = VkFenceCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Fence.VkFenceCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Fence.VkFenceCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Fence.VkFenceCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Fence.VkFenceCreateFlagBits module Graphics.Vulkan.Core10.ExtensionDiscovery type VK_MAX_EXTENSION_NAME_SIZE = 256 -- | vkEnumerateInstanceExtensionProperties - Returns up to requested -- number of global extension properties -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkExtensionProperties vkEnumerateInstanceExtensionProperties :: ("pLayerName" ::: Ptr CChar) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkExtensionProperties) -> IO VkResult -- | vkEnumerateDeviceExtensionProperties - Returns properties of available -- physical device extensions -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkExtensionProperties, VkPhysicalDevice vkEnumerateDeviceExtensionProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pLayerName" ::: Ptr CChar) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkExtensionProperties) -> IO VkResult -- | VkExtensionProperties - Structure specifying a extension properties -- --

Description

-- --

See Also

-- -- vkEnumerateDeviceExtensionProperties, -- vkEnumerateInstanceExtensionProperties data VkExtensionProperties VkExtensionProperties :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar -> Word32 -> VkExtensionProperties -- | extensionName is a null-terminated string specifying the name -- of the extension. [$sel:vkExtensionName:VkExtensionProperties] :: VkExtensionProperties -> Vector VK_MAX_EXTENSION_NAME_SIZE CChar -- | specVersion is the version of this extension. It is an -- integer, incremented with backward compatible changes. [$sel:vkSpecVersion:VkExtensionProperties] :: VkExtensionProperties -> Word32 instance GHC.Show.Show Graphics.Vulkan.Core10.ExtensionDiscovery.VkExtensionProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.ExtensionDiscovery.VkExtensionProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.ExtensionDiscovery.VkExtensionProperties module Graphics.Vulkan.Core10.LayerDiscovery type VK_MAX_DESCRIPTION_SIZE = 256 -- | vkEnumerateInstanceLayerProperties - Returns up to requested number of -- global layer properties -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkLayerProperties vkEnumerateInstanceLayerProperties :: ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkLayerProperties) -> IO VkResult -- | vkEnumerateDeviceLayerProperties - Returns properties of available -- physical device layers -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkLayerProperties, VkPhysicalDevice vkEnumerateDeviceLayerProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkLayerProperties) -> IO VkResult -- | VkLayerProperties - Structure specifying layer properties -- --

Description

-- --

See Also

-- -- vkEnumerateDeviceLayerProperties, -- vkEnumerateInstanceLayerProperties data VkLayerProperties VkLayerProperties :: Vector VK_MAX_EXTENSION_NAME_SIZE CChar -> Word32 -> Word32 -> Vector VK_MAX_DESCRIPTION_SIZE CChar -> VkLayerProperties -- | layerName is a null-terminated UTF-8 string specifying the -- name of the layer. Use this name in the ppEnabledLayerNames -- array passed in the VkInstanceCreateInfo structure to enable -- this layer for an instance. [$sel:vkLayerName:VkLayerProperties] :: VkLayerProperties -> Vector VK_MAX_EXTENSION_NAME_SIZE CChar -- | specVersion is the Vulkan version the layer was written to, -- encoded as described in the API Version Numbers and Semantics -- section. [$sel:vkSpecVersion:VkLayerProperties] :: VkLayerProperties -> Word32 -- | implementationVersion is the version of this layer. It is an -- integer, increasing with backward compatible changes. [$sel:vkImplementationVersion:VkLayerProperties] :: VkLayerProperties -> Word32 -- | description is a null-terminated UTF-8 string providing -- additional details that can be used by the application to -- identify the layer. [$sel:vkDescription:VkLayerProperties] :: VkLayerProperties -> Vector VK_MAX_DESCRIPTION_SIZE CChar instance GHC.Show.Show Graphics.Vulkan.Core10.LayerDiscovery.VkLayerProperties instance GHC.Classes.Eq Graphics.Vulkan.Core10.LayerDiscovery.VkLayerProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core10.LayerDiscovery.VkLayerProperties module Graphics.Vulkan.Core10.Event -- | VkEventCreateFlags - Reserved for future use -- --

Description

-- -- VkEventCreateFlags is a bitmask type for setting a mask, but -- is currently reserved for future use. -- --

See Also

-- -- VkEventCreateInfo newtype VkEventCreateFlags VkEventCreateFlags :: VkFlags -> VkEventCreateFlags -- | VkEvent - Opaque handle to a event object -- --

Description

-- --

See Also

-- -- vkCmdResetEvent, vkCmdSetEvent, vkCmdWaitEvents, -- vkCreateEvent, vkDestroyEvent, vkGetEventStatus, -- vkResetEvent, vkSetEvent type VkEvent = Ptr VkEvent_T -- | vkCreateEvent - Create a new event object -- --

Parameters

-- -- -- -- -- --

Description

-- -- When created, the event object is in the unsignaled state. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkEvent, -- VkEventCreateInfo vkCreateEvent :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkEventCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pEvent" ::: Ptr VkEvent) -> IO VkResult -- | vkDestroyEvent - Destroy an event object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkEvent vkDestroyEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkGetEventStatus - Retrieve the status of an event object -- --

Parameters

-- -- -- -- -- --

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 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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkEvent vkGetEventStatus :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult -- | vkSetEvent - Set an event to signaled state -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkEvent vkSetEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult -- | vkResetEvent - Reset an event to non-signaled state -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkEvent vkResetEvent :: ("device" ::: VkDevice) -> ("event" ::: VkEvent) -> IO VkResult -- | VkEventCreateInfo - Structure specifying parameters of a newly created -- event -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkEventCreateFlags, VkStructureType, -- vkCreateEvent data VkEventCreateInfo VkEventCreateInfo :: VkStructureType -> Ptr () -> VkEventCreateFlags -> VkEventCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkEventCreateInfo] :: VkEventCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkEventCreateInfo] :: VkEventCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkEventCreateInfo] :: VkEventCreateInfo -> VkEventCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Event.VkEventCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Event.VkEventCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Event.VkEventCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Event.VkEventCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Event.VkEventCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Event.VkEventCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Event.VkEventCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Event.VkEventCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Event.VkEventCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Event.VkEventCreateFlags module Graphics.Vulkan.Core10.Device -- | VkDeviceCreateFlags - Reserved for future use -- --

Description

-- -- VkDeviceCreateFlags is a bitmask type for setting a mask, but -- is currently reserved for future use. -- --

See Also

-- -- VkDeviceCreateInfo newtype VkDeviceCreateFlags VkDeviceCreateFlags :: VkFlags -> VkDeviceCreateFlags -- | VkDeviceQueueCreateFlagBits - Bitmask specifying behavior of the queue -- --

See Also

-- -- VkDeviceQueueCreateFlags newtype VkDeviceQueueCreateFlagBits VkDeviceQueueCreateFlagBits :: VkFlags -> VkDeviceQueueCreateFlagBits -- | vkCreateDevice - Create a new device instance -- --

Parameters

-- -- -- -- -- --

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 -- vkEnumerateDeviceExtensionProperties. Support for features -- can similarly be checked by querying -- 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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkDeviceCreateInfo, VkPhysicalDevice vkCreateDevice :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pCreateInfo" ::: Ptr VkDeviceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDevice" ::: Ptr VkDevice) -> IO VkResult -- | vkDestroyDevice - Destroy a logical device -- --

Parameters

-- -- -- -- -- --

Description

-- -- To ensure that no work is active on the device, -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice vkDestroyDevice :: ("device" ::: VkDevice) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkDeviceQueueCreateInfo - Structure specifying parameters of a newly -- created device queue -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceCreateInfo, VkDeviceQueueCreateFlags, -- VkStructureType data VkDeviceQueueCreateInfo VkDeviceQueueCreateInfo :: VkStructureType -> Ptr () -> VkDeviceQueueCreateFlags -> Word32 -> Word32 -> Ptr CFloat -> VkDeviceQueueCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> VkDeviceQueueCreateFlags -- | queueFamilyIndex is an unsigned integer indicating the index -- of the queue family to create on this device. This index corresponds -- to the index of an element of the pQueueFamilyProperties -- array that was returned by -- vkGetPhysicalDeviceQueueFamilyProperties. [$sel:vkQueueFamilyIndex:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Word32 -- | queueCount is an unsigned integer specifying the number of -- queues to create in the queue family indicated by -- queueFamilyIndex. [$sel:vkQueueCount:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Word32 -- | pQueuePriorities is an array of queueCount -- normalized floating point values, specifying priorities of work that -- will be submitted to each created queue. See Queue Priority for -- more information. [$sel:vkPQueuePriorities:VkDeviceQueueCreateInfo] :: VkDeviceQueueCreateInfo -> Ptr CFloat -- | VkDeviceCreateInfo - Structure specifying parameters of a newly -- created device -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceCreateFlags, VkDeviceQueueCreateInfo, -- VkPhysicalDeviceFeatures, VkStructureType, -- vkCreateDevice data VkDeviceCreateInfo VkDeviceCreateInfo :: VkStructureType -> Ptr () -> VkDeviceCreateFlags -> Word32 -> Ptr VkDeviceQueueCreateInfo -> Word32 -> Ptr (Ptr CChar) -> Word32 -> Ptr (Ptr CChar) -> Ptr VkPhysicalDeviceFeatures -> VkDeviceCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> VkDeviceCreateFlags -- | queueCreateInfoCount is the unsigned integer size of the -- pQueueCreateInfos array. Refer to the Queue Creation -- section below for further details. [$sel:vkQueueCreateInfoCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32 -- | pQueueCreateInfos is a pointer to an array of -- VkDeviceQueueCreateInfo structures describing the queues that -- are requested to be created along with the logical device. Refer to -- the Queue Creation section below for further details. [$sel:vkPQueueCreateInfos:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr VkDeviceQueueCreateInfo -- | enabledLayerCount is deprecated and ignored. [$sel:vkEnabledLayerCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32 -- | ppEnabledLayerNames is deprecated and ignored. See Device -- Layer Deprecation. [$sel:vkPPEnabledLayerNames:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr (Ptr CChar) -- | enabledExtensionCount is the number of device extensions to -- enable. [$sel:vkEnabledExtensionCount:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Word32 -- | ppEnabledExtensionNames is a pointer to an array of -- enabledExtensionCount null-terminated UTF-8 strings -- containing the names of extensions to enable for the created device. -- See the Extensions section for further details. [$sel:vkPPEnabledExtensionNames:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr (Ptr CChar) -- | pEnabledFeatures is NULL or a pointer to a -- VkPhysicalDeviceFeatures structure that contains boolean -- indicators of all the features to be enabled. Refer to the -- Features section for further details. [$sel:vkPEnabledFeatures:VkDeviceCreateInfo] :: VkDeviceCreateInfo -> Ptr VkPhysicalDeviceFeatures -- | VkDeviceQueueCreateFlags - Bitmask of VkDeviceQueueCreateFlagBits -- --

Description

-- -- VkDeviceQueueCreateFlags is a bitmask type for setting a mask -- of zero or more VkDeviceQueueCreateFlagBits. -- --

See Also

-- -- VkDeviceQueueCreateFlagBits, VkDeviceQueueCreateInfo, -- VkDeviceQueueInfo2 type VkDeviceQueueCreateFlags = VkDeviceQueueCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Device.VkDeviceQueueCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Device.VkDeviceCreateFlags module Graphics.Vulkan.Core10.CommandPool -- | VkCommandPoolCreateFlagBits - Bitmask specifying usage behavior for a -- command pool -- --

See Also

-- -- VkCommandPoolCreateFlags newtype VkCommandPoolCreateFlagBits VkCommandPoolCreateFlagBits :: VkFlags -> VkCommandPoolCreateFlagBits -- | 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. -- | VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT allows any -- command buffer allocated from a pool to be individually reset to the -- initial state; either by calling vkResetCommandBuffer, -- or via the implicit reset when calling vkBeginCommandBuffer. If -- this flag is not set on a pool, then vkResetCommandBuffer -- must not be called for any command buffer allocated from that -- pool. -- | VkCommandPoolResetFlagBits - Bitmask controlling behavior of a command -- pool reset -- --

See Also

-- -- VkCommandPoolResetFlags newtype VkCommandPoolResetFlagBits VkCommandPoolResetFlagBits :: VkFlags -> VkCommandPoolResetFlagBits -- | 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. -- | VkCommandPool - Opaque handle to a command pool object -- --

Description

-- --

See Also

-- -- VkCommandBufferAllocateInfo, vkCreateCommandPool, -- vkDestroyCommandPool, vkFreeCommandBuffers, -- vkResetCommandPool, vkTrimCommandPool, -- vkTrimCommandPoolKHR type VkCommandPool = Ptr VkCommandPool_T -- | vkCreateCommandPool - Create a new command pool object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkCommandPool, -- VkCommandPoolCreateInfo, VkDevice vkCreateCommandPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkCommandPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pCommandPool" ::: Ptr VkCommandPool) -> IO VkResult -- | vkDestroyCommandPool - Destroy a command pool object -- --

Parameters

-- -- -- -- -- --

Description

-- -- When a pool is destroyed, all command buffers allocated from the pool -- are freed. -- -- Any primary command buffer allocated from another VkCommandPool -- that is in the recording or executable state and has a -- secondary command buffer allocated from commandPool recorded -- into it, becomes invalid. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkCommandPool, VkDevice vkDestroyCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkResetCommandPool - Reset a command pool -- --

Parameters

-- -- -- -- -- --

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 initial state. -- -- Any primary command buffer allocated from another VkCommandPool -- that is in the recording or executable state and has a -- secondary command buffer allocated from commandPool recorded -- into it, becomes invalid. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkCommandPool, VkCommandPoolResetFlags, VkDevice vkResetCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolResetFlags) -> IO VkResult -- | VkCommandPoolCreateInfo - Structure specifying parameters of a newly -- created command pool -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkCommandPoolCreateFlags, VkStructureType, -- vkCreateCommandPool data VkCommandPoolCreateInfo VkCommandPoolCreateInfo :: VkStructureType -> Ptr () -> VkCommandPoolCreateFlags -> Word32 -> VkCommandPoolCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> Ptr () -- | flags is a bitmask of VkCommandPoolCreateFlagBits -- indicating usage behavior for the pool and command buffers allocated -- from it. [$sel:vkFlags:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> VkCommandPoolCreateFlags -- | queueFamilyIndex designates a queue family as described in -- section Queue Family Properties. All command buffers allocated -- from this command pool must be submitted on queues from the -- same queue family. [$sel:vkQueueFamilyIndex:VkCommandPoolCreateInfo] :: VkCommandPoolCreateInfo -> Word32 -- | VkCommandPoolCreateFlags - Bitmask of VkCommandPoolCreateFlagBits -- --

Description

-- -- VkCommandPoolCreateFlags is a bitmask type for setting a mask -- of zero or more VkCommandPoolCreateFlagBits. -- --

See Also

-- -- VkCommandPoolCreateFlagBits, VkCommandPoolCreateInfo type VkCommandPoolCreateFlags = VkCommandPoolCreateFlagBits -- | VkCommandPoolResetFlags - Bitmask of VkCommandPoolResetFlagBits -- --

Description

-- -- VkCommandPoolResetFlags is a bitmask type for setting a mask -- of zero or more VkCommandPoolResetFlagBits. -- --

See Also

-- -- VkCommandPoolResetFlagBits, vkResetCommandPool type VkCommandPoolResetFlags = VkCommandPoolResetFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.CommandPool.VkCommandPoolResetFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.CommandPool.VkCommandPoolCreateFlagBits module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1 -- | VkCommandPoolTrimFlags - Reserved for future use -- --

Description

-- -- VkCommandPoolTrimFlags is a bitmask type for setting a mask, -- but is currently reserved for future use. -- --

See Also

-- -- vkTrimCommandPool, vkTrimCommandPoolKHR newtype VkCommandPoolTrimFlags VkCommandPoolTrimFlags :: VkFlags -> VkCommandPoolTrimFlags -- | vkTrimCommandPool - Trim a command pool -- --

Parameters

-- -- -- -- -- --

Description

-- -- Trimming a command pool recycles unused memory from the command pool -- back to the system. Command buffers allocated from the pool are not -- affected by the command. -- -- Note -- -- This command provides applications with some control over the internal -- memory allocations used by command pools. -- -- Unused memory normally arises from command buffers that have been -- recorded and later reset, such that they are no longer using the -- memory. On reset, a command buffer can return memory to its command -- pool, but the only way to release memory from a command pool to the -- system requires calling vkResetCommandPool, which cannot be -- executed while any command buffers from that pool are still in use. -- Subsequent recording operations into command buffers will re-use this -- memory but since total memory requirements fluctuate over time, unused -- memory can accumulate. -- -- In this situation, trimming a command pool may be useful to -- return unused memory back to the system, returning the total -- outstanding memory allocated by the pool back to a more “average” -- value. -- -- Implementations utilize many internal allocation strategies that make -- it impossible to guarantee that all unused memory is released back to -- the system. For instance, an implementation of a command pool -- may involve allocating memory in bulk from the system and -- sub-allocating from that memory. In such an implementation any live -- command buffer that holds a reference to a bulk allocation would -- prevent that allocation from being freed, even if only a small -- proportion of the bulk allocation is in use. -- -- In most cases trimming will result in a reduction in allocated but -- unused memory, but it does not guarantee the “ideal” behaviour. -- -- Trimming may be an expensive operation, and should not -- be called frequently. Trimming should be treated as a way to -- relieve memory pressure after application-known points when there -- exists enough unused memory that the cost of trimming is “worth” it. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkCommandPool, VkCommandPoolTrimFlags, VkDevice vkTrimCommandPool :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolTrimFlags) -> IO () instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance1.VkCommandPoolTrimFlags module Graphics.Vulkan.Extensions.VK_KHR_maintenance1 vkTrimCommandPoolKHR :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("flags" ::: VkCommandPoolTrimFlags) -> IO () type VkCommandPoolTrimFlagsKHR = VkCommandPoolTrimFlags module Graphics.Vulkan.Core10.BufferView -- | VkBufferViewCreateFlags - Reserved for future use -- --

Description

-- -- VkBufferViewCreateFlags is a bitmask type for setting a mask, -- but is currently reserved for future use. -- --

See Also

-- -- VkBufferViewCreateInfo newtype VkBufferViewCreateFlags VkBufferViewCreateFlags :: VkFlags -> VkBufferViewCreateFlags -- | VkBufferView - Opaque handle to a buffer view object -- --

Description

-- --

See Also

-- -- VkWriteDescriptorSet, vkCreateBufferView, -- vkDestroyBufferView type VkBufferView = Ptr VkBufferView_T -- | vkCreateBufferView - Create a new buffer view object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkBufferView, -- VkBufferViewCreateInfo, VkDevice vkCreateBufferView :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkBufferViewCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pView" ::: Ptr VkBufferView) -> IO VkResult -- | vkDestroyBufferView - Destroy a buffer view object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkBufferView, VkDevice vkDestroyBufferView :: ("device" ::: VkDevice) -> ("bufferView" ::: VkBufferView) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkBufferViewCreateInfo - Structure specifying parameters of a newly -- created buffer view -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkBufferViewCreateFlags, -- VkDeviceSize, VkFormat, VkStructureType, -- vkCreateBufferView data VkBufferViewCreateInfo VkBufferViewCreateInfo :: VkStructureType -> Ptr () -> VkBufferViewCreateFlags -> VkBuffer -> VkFormat -> VkDeviceSize -> VkDeviceSize -> VkBufferViewCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkBufferViewCreateFlags -- | buffer is a VkBuffer on which the view will be -- created. [$sel:vkBuffer:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkBuffer -- | format is a VkFormat describing the format of the data -- elements in the buffer. [$sel:vkFormat:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkFormat -- | offset is an offset in bytes from the base address of the -- buffer. Accesses to the buffer view from shaders use addressing that -- is relative to this starting offset. [$sel:vkOffset:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkDeviceSize -- | range is a size in bytes of the buffer view. If -- range is equal to VK_WHOLE_SIZE, the range from -- offset to the end of the buffer is used. If -- VK_WHOLE_SIZE is used and the remaining size of the buffer is -- not a multiple of the element size of format, then the -- nearest smaller multiple is used. [$sel:vkRange:VkBufferViewCreateInfo] :: VkBufferViewCreateInfo -> VkDeviceSize instance GHC.Show.Show Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.BufferView.VkBufferViewCreateFlags module Graphics.Vulkan.Core10.Buffer -- | VkSharingMode - Buffer and image sharing modes -- --

Description

-- -- -- -- -- -- 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 -- 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 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

-- -- VkBufferCreateInfo, VkImageCreateInfo, -- VkSwapchainCreateInfoKHR newtype VkSharingMode VkSharingMode :: Int32 -> VkSharingMode -- | VkBufferUsageFlagBits - Bitmask specifying allowed usage of a buffer -- --

See Also

-- -- VkBufferUsageFlags newtype VkBufferUsageFlagBits VkBufferUsageFlagBits :: VkFlags -> VkBufferUsageFlagBits -- | VK_BUFFER_USAGE_TRANSFER_SRC_BIT specifies that the buffer -- can be used as the source of a transfer command (see the -- definition of VK_PIPELINE_STAGE_TRANSFER_BIT). -- | VK_BUFFER_USAGE_TRANSFER_DST_BIT specifies that the buffer -- can be used as the destination of a transfer command. -- | 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. -- | 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. -- | 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. -- | 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. -- | VK_BUFFER_USAGE_INDEX_BUFFER_BIT specifies that the buffer is -- suitable for passing as the buffer parameter to -- vkCmdBindIndexBuffer. -- | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT specifies that the buffer -- is suitable for passing as an element of the pBuffers array -- to vkCmdBindVertexBuffers. -- | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT specifies that the buffer -- is suitable for passing as the buffer parameter to -- vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, or -- vkCmdDispatchIndirect. It is also suitable for passing as the -- buffer member of VkIndirectCommandsTokenNVX, or -- sequencesCountBuffer or sequencesIndexBuffer member -- of VkCmdProcessCommandsInfoNVX -- | VkBufferCreateFlagBits - Bitmask specifying additional parameters of a -- buffer -- --

Description

-- -- -- -- -- -- See Sparse Resource Features and Physical Device -- Features for details of the sparse memory features supported on a -- device. -- --

See Also

-- -- VkBufferCreateFlags newtype VkBufferCreateFlagBits VkBufferCreateFlagBits :: VkFlags -> VkBufferCreateFlagBits -- | vkCreateBuffer - Create a new buffer object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkBuffer, -- VkBufferCreateInfo, VkDevice vkCreateBuffer :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkBufferCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pBuffer" ::: Ptr VkBuffer) -> IO VkResult -- | vkDestroyBuffer - Destroy a buffer object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkBuffer, VkDevice vkDestroyBuffer :: ("device" ::: VkDevice) -> ("buffer" ::: VkBuffer) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | VkBufferCreateInfo - Structure specifying the parameters of a newly -- created buffer object -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBufferCreateFlags, VkBufferUsageFlags, -- VkDeviceSize, VkSharingMode, VkStructureType, -- vkCreateBuffer data VkBufferCreateInfo VkBufferCreateInfo :: VkStructureType -> Ptr () -> VkBufferCreateFlags -> VkDeviceSize -> VkBufferUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkBufferCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBufferCreateInfo] :: VkBufferCreateInfo -> Ptr () -- | flags is a bitmask of VkBufferCreateFlagBits -- specifying additional parameters of the buffer. [$sel:vkFlags:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkBufferCreateFlags -- | size is the size in bytes of the buffer to be created. [$sel:vkSize:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkDeviceSize -- | usage is a bitmask of VkBufferUsageFlagBits specifying -- allowed usages of the buffer. [$sel:vkUsage:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkBufferUsageFlags -- | sharingMode is a VkSharingMode value specifying the -- sharing mode of the buffer when it will be accessed by multiple queue -- families. [$sel:vkSharingMode:VkBufferCreateInfo] :: VkBufferCreateInfo -> VkSharingMode -- | queueFamilyIndexCount is the number of entries in the -- pQueueFamilyIndices array. [$sel:vkQueueFamilyIndexCount:VkBufferCreateInfo] :: VkBufferCreateInfo -> Word32 -- | pQueueFamilyIndices is a list of queue families that will -- access this buffer (ignored if sharingMode is not -- VK_SHARING_MODE_CONCURRENT). [$sel:vkPQueueFamilyIndices:VkBufferCreateInfo] :: VkBufferCreateInfo -> Ptr Word32 -- | VkBufferUsageFlags - Bitmask of VkBufferUsageFlagBits -- --

Description

-- -- VkBufferUsageFlags is a bitmask type for setting a mask of -- zero or more VkBufferUsageFlagBits. -- --

See Also

-- -- VkBufferCreateInfo, VkBufferUsageFlagBits, -- VkPhysicalDeviceExternalBufferInfo type VkBufferUsageFlags = VkBufferUsageFlagBits -- | VkBufferCreateFlags - Bitmask of VkBufferCreateFlagBits -- --

Description

-- -- VkBufferCreateFlags is a bitmask type for setting a mask of -- zero or more VkBufferCreateFlagBits. -- --

See Also

-- -- VkBufferCreateFlagBits, VkBufferCreateInfo, -- VkPhysicalDeviceExternalBufferInfo type VkBufferCreateFlags = VkBufferCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Buffer.VkSharingMode instance GHC.Classes.Ord Graphics.Vulkan.Core10.Buffer.VkSharingMode instance GHC.Classes.Eq Graphics.Vulkan.Core10.Buffer.VkSharingMode instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Buffer.VkBufferCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Buffer.VkBufferCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Buffer.VkBufferUsageFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Buffer.VkSharingMode instance GHC.Read.Read Graphics.Vulkan.Core10.Buffer.VkSharingMode module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities -- | VkExternalMemoryHandleTypeFlagBits - Bit specifying external memory -- handle types -- --

Description

-- -- -- -- -- -- Some external memory handle types can only be shared within the same -- underlying physical device and/or the same driver version, as defined -- in the following table: -- --
--   +----------------------+----------------------+-----------------------+
--   | Handle type          | @VkPhysicalDeviceIDP | @VkPhysicalDeviceIDPr |
--   |                      | roperties@::@driverU | operties@::@deviceUUI |
--   |                      | UID@                 | D@                    |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | Must match           | Must match            |
--   | HANDLE_TYPE_OPAQUE_F |                      |                       |
--   | D_BIT@               |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | Must match           | Must match            |
--   | HANDLE_TYPE_OPAQUE_W |                      |                       |
--   | IN32_BIT@            |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | Must match           | Must match            |
--   | HANDLE_TYPE_OPAQUE_W |                      |                       |
--   | IN32_KMT_BIT@        |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | Must match           | Must match            |
--   | HANDLE_TYPE_D3D11_TE |                      |                       |
--   | XTURE_BIT@           |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | Must match           | Must match            |
--   | HANDLE_TYPE_D3D11_TE |                      |                       |
--   | XTURE_KMT_BIT@       |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | Must match           | Must match            |
--   | HANDLE_TYPE_D3D12_HE |                      |                       |
--   | AP_BIT@              |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | Must match           | Must match            |
--   | HANDLE_TYPE_D3D12_RE |                      |                       |
--   | SOURCE_BIT@          |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | No restriction       | No restriction        |
--   | HANDLE_TYPE_HOST_ALL |                      |                       |
--   | OCATION_BIT_EXT@     |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | No restriction       | No restriction        |
--   | HANDLE_TYPE_HOST_MAP |                      |                       |
--   | PED_FOREIGN_MEMORY_B |                      |                       |
--   | IT_EXT@              |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | No restriction       | No restriction        |
--   | HANDLE_TYPE_DMA_BUF_ |                      |                       |
--   | BIT_EXT@             |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   | @VK_EXTERNAL_MEMORY_ | No restriction       | No restriction        |
--   | HANDLE_TYPE_ANDROID_ |                      |                       |
--   | HARDWARE_BUFFER_BIT_ |                      |                       |
--   | ANDROID@             |                      |                       |
--   +----------------------+----------------------+-----------------------+
--   
--   External memory handle types compatibility
--   
-- -- Note -- -- The above table does not restrict the drivers and devices with which -- VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT and -- VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT -- may be shared, as these handle types inherently mean memory -- that does not come from the same device, as they import memory from -- the host or a foreign device, respectively. -- -- Note -- -- Even though the above table does not restrict the drivers and devices -- with which VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT -- may be shared, query mechanisms exist in the Vulkan API that -- prevent the import of incompatible dma-bufs (such as -- vkGetMemoryFdPropertiesKHR) and that prevent incompatible usage -- of dma-bufs (such as VkPhysicalDeviceExternalBufferInfoKHR and -- VkPhysicalDeviceExternalImageFormatInfoKHR). -- --

See Also

-- -- VkExternalMemoryHandleTypeFlags, -- VkImportMemoryFdInfoKHR, -- VkImportMemoryHostPointerInfoEXT, -- VkImportMemoryWin32HandleInfoKHR, VkMemoryGetFdInfoKHR, -- VkMemoryGetWin32HandleInfoKHR, -- VkPhysicalDeviceExternalBufferInfo, -- VkPhysicalDeviceExternalImageFormatInfo, -- vkGetMemoryFdPropertiesKHR, -- vkGetMemoryHostPointerPropertiesEXT, -- vkGetMemoryWin32HandlePropertiesKHR newtype VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBits :: VkFlags -> VkExternalMemoryHandleTypeFlagBits -- | VkExternalMemoryFeatureFlagBits - Bitmask specifying features of an -- external memory handle type -- --

Description

-- -- -- -- -- -- Because their semantics in external APIs roughly align with that of an -- image or buffer with a dedicated allocation in Vulkan, implementations -- are required to report -- VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT for the -- following external handle types: -- -- -- -- Implementations must not report -- VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT for buffers -- with external handle type -- VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID. -- --

See Also

-- -- VkExternalMemoryFeatureFlags newtype VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBits :: VkFlags -> VkExternalMemoryFeatureFlagBits type VK_LUID_SIZE = 8 -- | vkGetPhysicalDeviceExternalBufferProperties - Query external handle -- types supported by buffers -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalBufferProperties, VkPhysicalDevice, -- VkPhysicalDeviceExternalBufferInfo vkGetPhysicalDeviceExternalBufferProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalBufferInfo" ::: Ptr VkPhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr VkExternalBufferProperties) -> IO () -- | VkExternalMemoryProperties - Structure specifying external memory -- handle type capabilities -- --

Description

-- -- compatibleHandleTypes must include at least -- handleType. Inclusion of a handle type in -- compatibleHandleTypes does not imply the values returned in -- VkImageFormatProperties2 will be the same when -- VkPhysicalDeviceExternalImageFormatInfo::handleType is -- set to that type. The application is responsible for querying the -- capabilities of all handle types intended for concurrent use in a -- single image and intersecting them to obtain the compatible set of -- capabilities. -- --

See Also

-- -- VkExternalBufferProperties, -- VkExternalImageFormatProperties, -- VkExternalMemoryFeatureFlags, -- VkExternalMemoryHandleTypeFlags data VkExternalMemoryProperties VkExternalMemoryProperties :: VkExternalMemoryFeatureFlags -> VkExternalMemoryHandleTypeFlags -> VkExternalMemoryHandleTypeFlags -> VkExternalMemoryProperties -- | externalMemoryFeatures is a bitmask of -- VkExternalMemoryFeatureFlagBits specifying the features of -- handleType. [$sel:vkExternalMemoryFeatures:VkExternalMemoryProperties] :: VkExternalMemoryProperties -> VkExternalMemoryFeatureFlags -- | exportFromImportedHandleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBits specifying which types of -- imported handle handleType can be exported from. [$sel:vkExportFromImportedHandleTypes:VkExternalMemoryProperties] :: VkExternalMemoryProperties -> VkExternalMemoryHandleTypeFlags -- | compatibleHandleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBits specifying handle types -- which can be specified at the same time as handleType -- when creating an image compatible with external memory. [$sel:vkCompatibleHandleTypes:VkExternalMemoryProperties] :: VkExternalMemoryProperties -> VkExternalMemoryHandleTypeFlags -- | VkPhysicalDeviceExternalImageFormatInfo - Structure specifying -- external image creation parameters -- --

Description

-- -- If handleType is 0, -- vkGetPhysicalDeviceImageFormatProperties2 will behave as if -- VkPhysicalDeviceExternalImageFormatInfo was not present, and -- VkExternalImageFormatProperties will be ignored. -- -- If handleType is not compatible with the format, -- type, tiling, usage, and flags -- specified in VkPhysicalDeviceImageFormatInfo2, then -- vkGetPhysicalDeviceImageFormatProperties2 returns -- VK_ERROR_FORMAT_NOT_SUPPORTED. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryHandleTypeFlagBits, VkStructureType data VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfo :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagBits -> VkPhysicalDeviceExternalImageFormatInfo -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceExternalImageFormatInfo] :: VkPhysicalDeviceExternalImageFormatInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceExternalImageFormatInfo] :: VkPhysicalDeviceExternalImageFormatInfo -> Ptr () -- | handleType is a VkExternalMemoryHandleTypeFlagBits -- value specifying the memory handle type that will be used with the -- memory associated with the image. [$sel:vkHandleType:VkPhysicalDeviceExternalImageFormatInfo] :: VkPhysicalDeviceExternalImageFormatInfo -> VkExternalMemoryHandleTypeFlagBits -- | VkExternalImageFormatProperties - Structure specifying supported -- external handle properties -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkExternalMemoryProperties, VkStructureType data VkExternalImageFormatProperties VkExternalImageFormatProperties :: VkStructureType -> Ptr () -> VkExternalMemoryProperties -> VkExternalImageFormatProperties -- | sType is the type of this structure. [$sel:vkSType:VkExternalImageFormatProperties] :: VkExternalImageFormatProperties -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExternalImageFormatProperties] :: VkExternalImageFormatProperties -> Ptr () -- | externalMemoryProperties is an instance of the -- VkExternalMemoryProperties structure specifying various -- capabilities of the external handle type when used with the specified -- image creation parameters. [$sel:vkExternalMemoryProperties:VkExternalImageFormatProperties] :: VkExternalImageFormatProperties -> VkExternalMemoryProperties -- | VkPhysicalDeviceExternalBufferInfo - Structure specifying buffer -- creation parameters -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBufferCreateFlags, VkBufferUsageFlags, -- VkExternalMemoryHandleTypeFlagBits, VkStructureType, -- vkGetPhysicalDeviceExternalBufferProperties, -- vkGetPhysicalDeviceExternalBufferPropertiesKHR data VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfo :: VkStructureType -> Ptr () -> VkBufferCreateFlags -> VkBufferUsageFlags -> VkExternalMemoryHandleTypeFlagBits -> VkPhysicalDeviceExternalBufferInfo -- | sType is the type of this structure [$sel:vkSType:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> Ptr () -- | flags is a bitmask of VkBufferCreateFlagBits -- describing additional parameters of the buffer, corresponding to -- VkBufferCreateInfo::flags. [$sel:vkFlags:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> VkBufferCreateFlags -- | usage is a bitmask of VkBufferUsageFlagBits describing -- the intended usage of the buffer, corresponding to -- VkBufferCreateInfo::usage. [$sel:vkUsage:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> VkBufferUsageFlags -- | handleType is a VkExternalMemoryHandleTypeFlagBits -- value specifying the memory handle type that will be used with the -- memory associated with the buffer. [$sel:vkHandleType:VkPhysicalDeviceExternalBufferInfo] :: VkPhysicalDeviceExternalBufferInfo -> VkExternalMemoryHandleTypeFlagBits -- | VkExternalBufferProperties - Structure specifying supported external -- handle capabilities -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryProperties, VkStructureType, -- vkGetPhysicalDeviceExternalBufferProperties, -- vkGetPhysicalDeviceExternalBufferPropertiesKHR data VkExternalBufferProperties VkExternalBufferProperties :: VkStructureType -> Ptr () -> VkExternalMemoryProperties -> VkExternalBufferProperties -- | sType is the type of this structure [$sel:vkSType:VkExternalBufferProperties] :: VkExternalBufferProperties -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExternalBufferProperties] :: VkExternalBufferProperties -> Ptr () -- | externalMemoryProperties is an instance of the -- VkExternalMemoryProperties structure specifying various -- capabilities of the external handle type when used with the specified -- buffer creation parameters. [$sel:vkExternalMemoryProperties:VkExternalBufferProperties] :: VkExternalBufferProperties -> VkExternalMemoryProperties -- | VkPhysicalDeviceIDProperties - Structure specifying IDs related to the -- physical device -- --

Description

-- -- deviceUUID must be immutable for a given device across -- instances, processes, driver APIs, driver versions, and system -- reboots. -- -- Applications can compare the driverUUID value across -- instance and process boundaries, and can make similar queries -- in external APIs to determine whether they are capable of sharing -- memory objects and resources using them with the device. -- -- deviceUUID and/or driverUUID must be used to -- determine whether a particular external object can be shared between -- driver components, where such a restriction exists as defined in the -- compatibility table for the particular object type: -- -- -- -- If deviceLUIDValid is VK_FALSE, the contents of -- deviceLUID and deviceNodeMask are undefined. If -- deviceLUIDValid is VK_TRUE and Vulkan is running on -- the Windows operating system, the contents of deviceLUID -- can be cast to an LUID object and must be equal -- to the locally unique identifier of a IDXGIAdapter1 object -- that corresponds to physicalDevice. If -- deviceLUIDValid is VK_TRUE, deviceNodeMask -- must contain exactly one bit. If Vulkan is running on an -- operating system that supports the Direct3D 12 API and -- physicalDevice corresponds to an individual device in a -- linked device adapter, deviceNodeMask identifies the Direct3D -- 12 node corresponding to physicalDevice. Otherwise, -- deviceNodeMask must be 1. -- -- Note -- -- Although they have identical descriptions, -- VkPhysicalDeviceIDProperties::deviceUUID may differ -- from VkPhysicalDeviceProperties2::pipelineCacheUUID. -- The former is intended to identify and correlate devices across API -- and driver boundaries, while the latter is used to identify a -- compatible device and driver combination to use when serializing and -- de-serializing pipeline state. -- -- Note -- -- While VkPhysicalDeviceIDProperties::deviceUUID is -- specified to remain consistent across driver versions and system -- reboots, it is not intended to be usable as a serializable persistent -- identifier for a device. It may change when a device is physically -- added to, removed from, or moved to a different connector in a system -- while that system is powered down. Further, there is no reasonable way -- to verify with conformance testing that a given device retains the -- same UUID in a given system across all driver versions supported in -- that system. While implementations should make every effort to report -- consistent device UUIDs across driver versions, applications should -- avoid relying on the persistence of this value for uses other than -- identifying compatible devices for external object sharing purposes. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceIDProperties VkPhysicalDeviceIDProperties :: VkStructureType -> Ptr () -> Vector VK_UUID_SIZE Word8 -> Vector VK_UUID_SIZE Word8 -> Vector VK_LUID_SIZE Word8 -> Word32 -> VkBool32 -> VkPhysicalDeviceIDProperties -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Ptr () -- | deviceUUID is an array of size VK_UUID_SIZE, -- containing 8-bit values that represent a universally unique identifier -- for the device. [$sel:vkDeviceUUID:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Vector VK_UUID_SIZE Word8 -- | driverUUID is an array of size VK_UUID_SIZE, -- containing 8-bit values that represent a universally unique identifier -- for the driver build in use by the device. [$sel:vkDriverUUID:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Vector VK_UUID_SIZE Word8 -- | deviceLUID is an array of size VK_LUID_SIZE, -- containing 8-bit values that represent a locally unique identifier for -- the device. [$sel:vkDeviceLUID:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Vector VK_LUID_SIZE Word8 -- | deviceNodeMask is a bitfield identifying the node within a -- linked device adapter corresponding to the device. [$sel:vkDeviceNodeMask:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> Word32 -- | deviceLUIDValid is a boolean value that will be -- VK_TRUE if deviceLUID contains a valid LUID and -- deviceNodeMask contains a valid node mask, and -- VK_FALSE if they do not. [$sel:vkDeviceLUIDValid:VkPhysicalDeviceIDProperties] :: VkPhysicalDeviceIDProperties -> VkBool32 -- | VkExternalMemoryHandleTypeFlags - Bitmask of -- VkExternalMemoryHandleTypeFlagBits -- --

Description

-- -- VkExternalMemoryHandleTypeFlags is a bitmask type for setting -- a mask of zero or more VkExternalMemoryHandleTypeFlagBits. -- --

See Also

-- -- VkExportMemoryAllocateInfo, -- VkExternalMemoryBufferCreateInfo, -- VkExternalMemoryHandleTypeFlagBits, -- VkExternalMemoryImageCreateInfo, -- VkExternalMemoryProperties type VkExternalMemoryHandleTypeFlags = VkExternalMemoryHandleTypeFlagBits -- | VkExternalMemoryFeatureFlags - Bitmask of -- VkExternalMemoryFeatureFlagBits -- --

Description

-- -- VkExternalMemoryFeatureFlags is a bitmask type for setting a -- mask of zero or more VkExternalMemoryFeatureFlagBits. -- --

See Also

-- -- VkExternalMemoryFeatureFlagBits, -- VkExternalMemoryProperties type VkExternalMemoryFeatureFlags = VkExternalMemoryFeatureFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalBufferInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryFeatureFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits module Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd -- | vkGetMemoryFdKHR - Get a POSIX file descriptor for a memory object -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkMemoryGetFdInfoKHR vkGetMemoryFdKHR :: ("device" ::: VkDevice) -> ("pGetFdInfo" ::: Ptr VkMemoryGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO VkResult -- | vkGetMemoryFdPropertiesKHR - Get Properties of External Memory File -- Descriptors -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkExternalMemoryHandleTypeFlagBits, -- VkMemoryFdPropertiesKHR 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

-- -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryHandleTypeFlagBits, VkStructureType data VkImportMemoryFdInfoKHR VkImportMemoryFdInfoKHR :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagBits -> CInt -> VkImportMemoryFdInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkImportMemoryFdInfoKHR] :: VkImportMemoryFdInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImportMemoryFdInfoKHR] :: VkImportMemoryFdInfoKHR -> Ptr () -- | handleType specifies the handle type of fd. [$sel:vkHandleType:VkImportMemoryFdInfoKHR] :: VkImportMemoryFdInfoKHR -> VkExternalMemoryHandleTypeFlagBits -- | fd is the external handle to import. [$sel:vkFd:VkImportMemoryFdInfoKHR] :: VkImportMemoryFdInfoKHR -> CInt -- | VkMemoryFdPropertiesKHR - Properties of External Memory File -- Descriptors -- --

Description

-- --

See Also

-- -- VkStructureType, vkGetMemoryFdPropertiesKHR data VkMemoryFdPropertiesKHR VkMemoryFdPropertiesKHR :: VkStructureType -> Ptr () -> Word32 -> VkMemoryFdPropertiesKHR -- | sType is the type of this structure. [$sel:vkSType:VkMemoryFdPropertiesKHR] :: VkMemoryFdPropertiesKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMemoryFdPropertiesKHR] :: VkMemoryFdPropertiesKHR -> Ptr () -- | memoryTypeBits is a bitmask containing one bit set for every -- memory type which the specified file descriptor can be imported -- as. [$sel:vkMemoryTypeBits:VkMemoryFdPropertiesKHR] :: VkMemoryFdPropertiesKHR -> Word32 -- | VkMemoryGetFdInfoKHR - Structure describing a POSIX FD semaphore -- export operation -- --

Description

-- -- The properties of the file descriptor exported depend on the value of -- handleType. See VkExternalMemoryHandleTypeFlagBits for -- a description of the properties of the defined external memory handle -- types. -- -- Note -- -- The size of the exported file may be larger than the size -- requested by VkMemoryAllocateInfo::allocationSize. If -- handleType is -- VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT, then the -- application can query the file’s actual size with -- lseek(2). -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceMemory, VkExternalMemoryHandleTypeFlagBits, -- VkStructureType, vkGetMemoryFdKHR data VkMemoryGetFdInfoKHR VkMemoryGetFdInfoKHR :: VkStructureType -> Ptr () -> VkDeviceMemory -> VkExternalMemoryHandleTypeFlagBits -> VkMemoryGetFdInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkMemoryGetFdInfoKHR] :: VkMemoryGetFdInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMemoryGetFdInfoKHR] :: VkMemoryGetFdInfoKHR -> Ptr () -- | memory is the memory object from which the handle will be -- exported. [$sel:vkMemory:VkMemoryGetFdInfoKHR] :: VkMemoryGetFdInfoKHR -> VkDeviceMemory -- | handleType is the type of handle requested. [$sel:vkHandleType:VkMemoryGetFdInfoKHR] :: VkMemoryGetFdInfoKHR -> VkExternalMemoryHandleTypeFlagBits instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryGetFdInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryGetFdInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryFdPropertiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryFdPropertiesKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkImportMemoryFdInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkImportMemoryFdInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryGetFdInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkMemoryFdPropertiesKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_external_memory_fd.VkImportMemoryFdInfoKHR module Graphics.Vulkan.Extensions.VK_KHR_external_memory_capabilities vkGetPhysicalDeviceExternalBufferPropertiesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pExternalBufferInfo" ::: Ptr VkPhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr VkExternalBufferProperties) -> IO () type VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBits type VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBits type VkExternalMemoryHandleTypeFlagsKHR = VkExternalMemoryHandleTypeFlags type VkExternalMemoryFeatureFlagsKHR = VkExternalMemoryFeatureFlags type VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties type VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo type VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties type VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo type VkExternalBufferPropertiesKHR = VkExternalBufferProperties type VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties type VK_LUID_SIZE_KHR = VK_LUID_SIZE module Graphics.Vulkan.Extensions.VK_EXT_external_memory_host -- | vkGetMemoryHostPointerPropertiesEXT - Get properties of external -- memory host pointer -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkExternalMemoryHandleTypeFlagBits, -- VkMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT :: ("device" ::: VkDevice) -> ("handleType" ::: VkExternalMemoryHandleTypeFlagBits) -> ("pHostPointer" ::: Ptr ()) -> ("pMemoryHostPointerProperties" ::: Ptr VkMemoryHostPointerPropertiesEXT) -> IO VkResult -- | VkImportMemoryHostPointerInfoEXT - import memory from a host pointer -- --

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 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryHandleTypeFlagBits, VkStructureType data VkImportMemoryHostPointerInfoEXT VkImportMemoryHostPointerInfoEXT :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlagBits -> Ptr () -> VkImportMemoryHostPointerInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkImportMemoryHostPointerInfoEXT] :: VkImportMemoryHostPointerInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImportMemoryHostPointerInfoEXT] :: VkImportMemoryHostPointerInfoEXT -> Ptr () -- | handleType specifies the handle type. [$sel:vkHandleType:VkImportMemoryHostPointerInfoEXT] :: VkImportMemoryHostPointerInfoEXT -> VkExternalMemoryHandleTypeFlagBits -- | pHostPointer is the host pointer to import from. [$sel:vkPHostPointer:VkImportMemoryHostPointerInfoEXT] :: VkImportMemoryHostPointerInfoEXT -> Ptr () data VkMemoryHostPointerPropertiesEXT VkMemoryHostPointerPropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkMemoryHostPointerPropertiesEXT [$sel:vkSType:VkMemoryHostPointerPropertiesEXT] :: VkMemoryHostPointerPropertiesEXT -> VkStructureType [$sel:vkPNext:VkMemoryHostPointerPropertiesEXT] :: VkMemoryHostPointerPropertiesEXT -> Ptr () [$sel:vkMemoryTypeBits:VkMemoryHostPointerPropertiesEXT] :: VkMemoryHostPointerPropertiesEXT -> Word32 -- | VkPhysicalDeviceExternalMemoryHostPropertiesEXT - Structure describing -- external memory host pointer limits that can be supported by an -- implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceExternalMemoryHostPropertiesEXT structure -- describe the following implementation-dependent limits: -- --

Description

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the VkPhysicalDeviceExternalMemoryHostPropertiesEXT -- structure is included in the pNext chain of -- VkPhysicalDeviceProperties2KHR, it is filled with the -- implementation-dependent limits. -- --

See Also

-- -- VkDeviceSize, VkStructureType data VkPhysicalDeviceExternalMemoryHostPropertiesEXT VkPhysicalDeviceExternalMemoryHostPropertiesEXT :: VkStructureType -> Ptr () -> VkDeviceSize -> VkPhysicalDeviceExternalMemoryHostPropertiesEXT [$sel:vkSType:VkPhysicalDeviceExternalMemoryHostPropertiesEXT] :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceExternalMemoryHostPropertiesEXT] :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT -> Ptr () [$sel:vkMinImportedHostPointerAlignment:VkPhysicalDeviceExternalMemoryHostPropertiesEXT] :: VkPhysicalDeviceExternalMemoryHostPropertiesEXT -> VkDeviceSize instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkMemoryHostPointerPropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkMemoryHostPointerPropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkImportMemoryHostPointerInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkImportMemoryHostPointerInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkMemoryHostPointerPropertiesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkImportMemoryHostPointerInfoEXT module Graphics.Vulkan.Extensions.VK_EXT_external_memory_dma_buf module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory -- | VkExternalMemoryImageCreateInfo - Specify that an image may be backed -- by external memory -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryHandleTypeFlags, VkStructureType data VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfo :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlags -> VkExternalMemoryImageCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkExternalMemoryImageCreateInfo] :: VkExternalMemoryImageCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExternalMemoryImageCreateInfo] :: VkExternalMemoryImageCreateInfo -> Ptr () -- | handleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBits specifying one or more -- external memory handle types. [$sel:vkHandleTypes:VkExternalMemoryImageCreateInfo] :: VkExternalMemoryImageCreateInfo -> VkExternalMemoryHandleTypeFlags -- | VkExternalMemoryBufferCreateInfo - Specify that a buffer may be backed -- by external memory -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryHandleTypeFlags, VkStructureType data VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfo :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlags -> VkExternalMemoryBufferCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkExternalMemoryBufferCreateInfo] :: VkExternalMemoryBufferCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExternalMemoryBufferCreateInfo] :: VkExternalMemoryBufferCreateInfo -> Ptr () -- | handleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBits specifying one or more -- external memory handle types. [$sel:vkHandleTypes:VkExternalMemoryBufferCreateInfo] :: VkExternalMemoryBufferCreateInfo -> VkExternalMemoryHandleTypeFlags -- | VkExportMemoryAllocateInfo - Specify exportable handle types for a -- device memory object -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExternalMemoryHandleTypeFlags, VkStructureType data VkExportMemoryAllocateInfo VkExportMemoryAllocateInfo :: VkStructureType -> Ptr () -> VkExternalMemoryHandleTypeFlags -> VkExportMemoryAllocateInfo -- | sType is the type of this structure. [$sel:vkSType:VkExportMemoryAllocateInfo] :: VkExportMemoryAllocateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkExportMemoryAllocateInfo] :: VkExportMemoryAllocateInfo -> Ptr () -- | handleTypes is a bitmask of -- VkExternalMemoryHandleTypeFlagBits specifying one or more -- memory handle types the application can export from the -- resulting allocation. The application can request multiple -- handle types for the same allocation. [$sel:vkHandleTypes:VkExportMemoryAllocateInfo] :: VkExportMemoryAllocateInfo -> VkExternalMemoryHandleTypeFlags instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryBufferCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryBufferCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryImageCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryImageCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExportMemoryAllocateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryBufferCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory.VkExternalMemoryImageCreateInfo module Graphics.Vulkan.Extensions.VK_KHR_external_memory type VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo type VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo type VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo module Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory -- | 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. -- | vkGetDeviceQueue2 - Get a queue handle from a device -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkDeviceQueueInfo2, VkQueue vkGetDeviceQueue2 :: ("device" ::: VkDevice) -> ("pQueueInfo" ::: Ptr VkDeviceQueueInfo2) -> ("pQueue" ::: Ptr VkQueue) -> IO () -- | VkProtectedSubmitInfo - Structure indicating whether the submission is -- protected -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkProtectedSubmitInfo VkProtectedSubmitInfo :: VkStructureType -> Ptr () -> VkBool32 -> VkProtectedSubmitInfo [$sel:vkSType:VkProtectedSubmitInfo] :: VkProtectedSubmitInfo -> VkStructureType [$sel:vkPNext:VkProtectedSubmitInfo] :: VkProtectedSubmitInfo -> Ptr () -- | protectedSubmit specifies whether the batch is protected. If -- protectedSubmit is VK_TRUE, the batch is protected. -- If protectedSubmit is VK_FALSE, the batch is -- unprotected. If the VkSubmitInfo::pNext chain does -- not contain this structure, the batch is unprotected. [$sel:vkProtectedSubmit:VkProtectedSubmitInfo] :: VkProtectedSubmitInfo -> VkBool32 -- | VkPhysicalDeviceProtectedMemoryFeatures - Structure describing -- protected memory features that can be supported by an implementation -- --

Description

-- -- If the VkPhysicalDeviceProtectedMemoryFeatures structure is -- included in the pNext chain of -- VkPhysicalDeviceFeatures2, it is filled with a value indicating -- whether the feature is supported. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceProtectedMemoryFeatures VkPhysicalDeviceProtectedMemoryFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceProtectedMemoryFeatures [$sel:vkSType:VkPhysicalDeviceProtectedMemoryFeatures] :: VkPhysicalDeviceProtectedMemoryFeatures -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceProtectedMemoryFeatures] :: VkPhysicalDeviceProtectedMemoryFeatures -> Ptr () -- | protectedMemory specifies whether protected memory is -- supported. [$sel:vkProtectedMemory:VkPhysicalDeviceProtectedMemoryFeatures] :: VkPhysicalDeviceProtectedMemoryFeatures -> VkBool32 -- | VkPhysicalDeviceProtectedMemoryProperties - Structure describing -- protected memory properties that can be supported by an implementation -- --

Description

-- -- If the VkPhysicalDeviceProtectedMemoryProperties structure is -- included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with a value -- indicating the implementation-dependent behavior. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceProtectedMemoryProperties VkPhysicalDeviceProtectedMemoryProperties :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceProtectedMemoryProperties -- | sType is the type of this structure. [$sel:vkSType:VkPhysicalDeviceProtectedMemoryProperties] :: VkPhysicalDeviceProtectedMemoryProperties -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPhysicalDeviceProtectedMemoryProperties] :: VkPhysicalDeviceProtectedMemoryProperties -> Ptr () -- | protectedNoFault specifies whether the undefined behavior -- will not include process termination or device loss. If -- protectedNoFault is VK_FALSE, undefined behavior -- may include process termination or device loss. If -- protectedNoFault is VK_TRUE, undefined behavior will -- not include process termination or device loss. [$sel:vkProtectedNoFault:VkPhysicalDeviceProtectedMemoryProperties] :: VkPhysicalDeviceProtectedMemoryProperties -> VkBool32 -- | VkDeviceQueueInfo2 - Structure specifying the parameters used for -- device queue creation -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceQueueCreateFlags, VkStructureType, -- vkGetDeviceQueue2 data VkDeviceQueueInfo2 VkDeviceQueueInfo2 :: VkStructureType -> Ptr () -> VkDeviceQueueCreateFlags -> Word32 -> Word32 -> VkDeviceQueueInfo2 -- | sType is the type of this structure. [$sel:vkSType:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. The pNext chain of VkDeviceQueueInfo2 is -- used to provide additional image parameters to -- vkGetDeviceQueue2. [$sel:vkPNext:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> Ptr () -- | flags is a VkDeviceQueueCreateFlags value indicating -- the flags used to create the device queue. [$sel:vkFlags:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> VkDeviceQueueCreateFlags -- | queueFamilyIndex is the index of the queue family to which -- the queue belongs. [$sel:vkQueueFamilyIndex:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> Word32 -- | queueIndex is the index within this queue family of the queue -- to retrieve. [$sel:vkQueueIndex:VkDeviceQueueInfo2] :: VkDeviceQueueInfo2 -> Word32 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkDeviceQueueInfo2 instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkDeviceQueueInfo2 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkDeviceQueueInfo2 instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryFeatures instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkProtectedSubmitInfo module Graphics.Vulkan.Core10.Image -- | VkImageLayout - Layout of image and image subresources -- --

Description

-- -- The type(s) of device access supported by each layout are: -- -- -- -- 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 and -- {html_spec_relative}#copies). For use as a framebuffer -- attachment, this is a member in the substructures of the -- VkRenderPassCreateInfo (see Render Pass). For use in a -- descriptor set, this is a member in the VkDescriptorImageInfo -- structure (see {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. -- -- The image layout of each image subresource of a depth/stencil image -- created with -- VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT is -- dependent on the last sample locations used to render to the image -- subresource as a depth/stencil attachment, thus applications -- must provide the same sample locations that were last used to -- render to the given image subresource whenever a layout transition of -- the image subresource happens, otherwise the contents of the depth -- aspect of the image subresource become undefined. -- -- In addition, depth reads from a depth/stencil attachment referring to -- an image subresource range of a depth/stencil image created with -- VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT -- using different sample locations than what have been last used to -- perform depth writes to the image subresources of the same image -- subresource range produce undefined results. -- -- Similarly, depth writes to a depth/stencil attachment referring to an -- image subresource range of a depth/stencil image created with -- VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT -- using different sample locations than what have been last used to -- perform depth writes to the image subresources of the same image -- subresource range make the contents of the depth aspect of those image -- subresources undefined. -- --

See Also

-- -- VkAttachmentDescription, VkAttachmentReference, -- VkDescriptorImageInfo, VkImageCreateInfo, -- VkImageMemoryBarrier, vkCmdBlitImage, -- vkCmdClearColorImage, vkCmdClearDepthStencilImage, -- vkCmdCopyBufferToImage, vkCmdCopyImage, -- vkCmdCopyImageToBuffer, vkCmdResolveImage newtype VkImageLayout VkImageLayout :: Int32 -> VkImageLayout -- | vkCreateImage - Create a new image object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkImage, -- VkImageCreateInfo vkCreateImage :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkImageCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pImage" ::: Ptr VkImage) -> IO VkResult -- | vkDestroyImage - Destroy an image object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkImage vkDestroyImage :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkGetImageSubresourceLayout - Retrieve information about an image -- subresource -- --

Parameters

-- -- -- -- -- --

Description

-- -- If the VkFormat of image is a multi-planar -- format, vkGetImageSubresourceLayout describes one plane -- of the image. -- -- vkGetImageSubresourceLayout is invariant for the lifetime of a -- single image. However, the subresource layout of images in Android -- hardware buffer external memory isn’t known until the image has been -- bound to memory, so calling vkGetImageSubresourceLayout for -- such an image before it has been bound will result in undefined -- behavior. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkImage, VkImageSubresource, -- VkSubresourceLayout vkGetImageSubresourceLayout :: ("device" ::: VkDevice) -> ("image" ::: VkImage) -> ("pSubresource" ::: Ptr VkImageSubresource) -> ("pLayout" ::: Ptr VkSubresourceLayout) -> IO () -- | VkImageCreateInfo - Structure specifying the parameters of a newly -- created image object -- --

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: -- -- -- -- 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, -- VkExternalMemoryImageCreateInfo::handleTypes and -- flags, call vkGetPhysicalDeviceImageFormatProperties2. -- 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 -- vkGetPhysicalDeviceImageFormatProperties2. 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 vkGetPhysicalDeviceFormatProperties. -- -- Note -- -- For images created without VK_IMAGE_CREATE_EXTENDED_USAGE_BIT -- a usage bit is valid if it is supported for the format the -- image is created with. -- -- For images created with VK_IMAGE_CREATE_EXTENDED_USAGE_BIT a -- usage bit is valid if it is supported for at least one of the -- formats a VkImageView created from the image can have -- (see Image Views for more detail). -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExtent3D, VkFormat, VkImageCreateFlags, -- VkImageLayout, VkImageTiling, VkImageType, -- VkImageUsageFlags, VkSampleCountFlagBits, -- VkSharingMode, VkStructureType, vkCreateImage data VkImageCreateInfo VkImageCreateInfo :: VkStructureType -> Ptr () -> VkImageCreateFlags -> VkImageType -> VkFormat -> VkExtent3D -> Word32 -> Word32 -> VkSampleCountFlagBits -> VkImageTiling -> VkImageUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkImageLayout -> VkImageCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkImageCreateInfo] :: VkImageCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImageCreateInfo] :: VkImageCreateInfo -> Ptr () -- | flags is a bitmask of VkImageCreateFlagBits describing -- additional parameters of the image. [$sel:vkFlags:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageCreateFlags -- | imageType is a VkImageType value specifying the basic -- dimensionality of the image. Layers in array textures do not count as -- a dimension for the purposes of the image type. [$sel:vkImageType:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageType -- | format is a VkFormat describing the format and type of -- the data elements that will be contained in the image. [$sel:vkFormat:VkImageCreateInfo] :: VkImageCreateInfo -> VkFormat -- | extent is a VkExtent3D describing the number of data -- elements in each dimension of the base level. [$sel:vkExtent:VkImageCreateInfo] :: VkImageCreateInfo -> VkExtent3D -- | mipLevels describes the number of levels of detail available -- for minified sampling of the image. [$sel:vkMipLevels:VkImageCreateInfo] :: VkImageCreateInfo -> Word32 -- | arrayLayers is the number of layers in the image. [$sel:vkArrayLayers:VkImageCreateInfo] :: VkImageCreateInfo -> Word32 -- | samples is the number of sub-data element samples in the -- image as defined in VkSampleCountFlagBits. See -- Multisampling. [$sel:vkSamples:VkImageCreateInfo] :: VkImageCreateInfo -> VkSampleCountFlagBits -- | tiling is a VkImageTiling value specifying the tiling -- arrangement of the data elements in memory. [$sel:vkTiling:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageTiling -- | usage is a bitmask of VkImageUsageFlagBits describing -- the intended usage of the image. [$sel:vkUsage:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageUsageFlags -- | sharingMode is a VkSharingMode value specifying the -- sharing mode of the image when it will be accessed by multiple queue -- families. [$sel:vkSharingMode:VkImageCreateInfo] :: VkImageCreateInfo -> VkSharingMode -- | queueFamilyIndexCount is the number of entries in the -- pQueueFamilyIndices array. [$sel:vkQueueFamilyIndexCount:VkImageCreateInfo] :: VkImageCreateInfo -> Word32 -- | pQueueFamilyIndices is a list of queue families that will -- access this image (ignored if sharingMode is not -- VK_SHARING_MODE_CONCURRENT). [$sel:vkPQueueFamilyIndices:VkImageCreateInfo] :: VkImageCreateInfo -> Ptr Word32 -- | initialLayout is a VkImageLayout value specifying the -- initial VkImageLayout of all image subresources of the image. -- See Image Layouts. [$sel:vkInitialLayout:VkImageCreateInfo] :: VkImageCreateInfo -> VkImageLayout -- | VkSubresourceLayout - Structure specifying subresource layout -- --

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 single-plane 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. -- -- For multi-planar formats, the aspectMask member of -- VkImageSubresource must be -- VK_IMAGE_ASPECT_PLANE_0_BIT, -- VK_IMAGE_ASPECT_PLANE_1_BIT, or (for 3-plane formats only) -- VK_IMAGE_ASPECT_PLANE_2_BIT. Querying each of these image -- subresource layouts will return a different offset and -- size representing the region of memory used for that plane. -- --

See Also

-- -- VkDeviceSize, vkGetImageSubresourceLayout data VkSubresourceLayout VkSubresourceLayout :: VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkSubresourceLayout -- | offset is the byte offset from the start of the image where -- the image subresource begins. [$sel:vkOffset:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize -- | size is the size in bytes of the image subresource. -- size includes any extra memory that is required based on -- rowPitch. [$sel:vkSize:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize -- | rowPitch describes the number of bytes between each row of -- texels in an image. [$sel:vkRowPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize -- | arrayPitch describes the number of bytes between each array -- layer of an image. [$sel:vkArrayPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize -- | depthPitch describes the number of bytes between each slice -- of 3D image. [$sel:vkDepthPitch:VkSubresourceLayout] :: VkSubresourceLayout -> VkDeviceSize instance GHC.Show.Show Graphics.Vulkan.Core10.Image.VkSubresourceLayout instance GHC.Classes.Eq Graphics.Vulkan.Core10.Image.VkSubresourceLayout instance GHC.Show.Show Graphics.Vulkan.Core10.Image.VkImageCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Image.VkImageCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Image.VkImageLayout instance GHC.Classes.Ord Graphics.Vulkan.Core10.Image.VkImageLayout instance GHC.Classes.Eq Graphics.Vulkan.Core10.Image.VkImageLayout instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Image.VkSubresourceLayout instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Image.VkImageCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Image.VkImageLayout instance GHC.Read.Read Graphics.Vulkan.Core10.Image.VkImageLayout module Graphics.Vulkan.Extensions.VK_KHR_swapchain -- | VkSwapchainCreateFlagBitsKHR - Bitmask controlling swapchain creation -- --

See Also

-- -- VkSwapchainCreateFlagsKHR newtype VkSwapchainCreateFlagBitsKHR VkSwapchainCreateFlagBitsKHR :: VkFlags -> VkSwapchainCreateFlagBitsKHR -- | VkDeviceGroupPresentModeFlagBitsKHR - Bitmask specifying supported -- device group present modes -- --

See Also

-- -- VkDeviceGroupPresentInfoKHR, -- VkDeviceGroupPresentModeFlagsKHR newtype VkDeviceGroupPresentModeFlagBitsKHR VkDeviceGroupPresentModeFlagBitsKHR :: VkFlags -> VkDeviceGroupPresentModeFlagBitsKHR -- | VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR specifies that any -- physical device with a presentation engine can present its own -- swapchain images. -- | 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. -- | 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. -- | 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. -- | VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR -- specifies that images created from the swapchain (i.e. with the -- swapchain member of VkImageSwapchainCreateInfoKHR set -- to this swapchain’s handle) must use -- VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT. -- | VkSwapchainKHR - Opaque handle to a swapchain object -- --

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

-- -- VkAcquireNextImageInfoKHR, -- VkBindImageMemorySwapchainInfoKHR, -- VkImageSwapchainCreateInfoKHR, VkPresentInfoKHR, -- VkSwapchainCreateInfoKHR, vkAcquireNextImageKHR, -- vkCreateSharedSwapchainsKHR, vkCreateSwapchainKHR, -- vkDestroySwapchainKHR, -- vkGetPastPresentationTimingGOOGLE, -- vkGetRefreshCycleDurationGOOGLE, -- vkGetSwapchainCounterEXT, vkGetSwapchainImagesKHR, -- vkGetSwapchainStatusKHR, vkSetHdrMetadataEXT type VkSwapchainKHR = Ptr VkSwapchainKHR_T -- | vkCreateSwapchainKHR - Create a swapchain -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkSwapchainCreateInfoKHR, VkSwapchainKHR vkCreateSwapchainKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkSwapchainCreateInfoKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSwapchain" ::: Ptr VkSwapchainKHR) -> IO VkResult -- | vkDestroySwapchainKHR - Destroy a swapchain object -- --

Parameters

-- -- -- -- -- --

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. -- -- When a swapchain associated with a display surface is destroyed, if -- the image most recently presented to the display surface is from the -- swapchain being destroyed, then either any display resources modified -- by presenting images from any swapchain associated with the display -- surface must be reverted by the implementation to their state -- prior to the first present performed on one of these swapchains, or -- such resources must be left in their current state. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkSwapchainKHR vkDestroySwapchainKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkGetSwapchainImagesKHR - Obtain the array of presentable images -- associated with a swapchain -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkImage, VkSwapchainKHR vkGetSwapchainImagesKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pSwapchainImageCount" ::: Ptr Word32) -> ("pSwapchainImages" ::: Ptr VkImage) -> IO VkResult -- | vkAcquireNextImageKHR - Retrieve the index of the next available -- presentable image -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkFence, VkSemaphore, -- VkSwapchainKHR vkAcquireNextImageKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("timeout" ::: Word64) -> ("semaphore" ::: VkSemaphore) -> ("fence" ::: VkFence) -> ("pImageIndex" ::: Ptr Word32) -> IO VkResult -- | vkQueuePresentKHR - Queue an image for presentation -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- -- 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)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- -- -- -- --

See Also

-- -- VkPresentInfoKHR, VkQueue vkQueuePresentKHR :: ("queue" ::: VkQueue) -> ("pPresentInfo" ::: Ptr VkPresentInfoKHR) -> IO VkResult -- | vkGetDeviceGroupPresentCapabilitiesKHR - Query present capabilities -- from other physical devices -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR :: ("device" ::: VkDevice) -> ("pDeviceGroupPresentCapabilities" ::: Ptr VkDeviceGroupPresentCapabilitiesKHR) -> IO VkResult -- | vkGetDeviceGroupSurfacePresentModesKHR - Query present capabilities -- for a surface -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkDeviceGroupPresentModeFlagsKHR, -- VkSurfaceKHR vkGetDeviceGroupSurfacePresentModesKHR :: ("device" ::: VkDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pModes" ::: Ptr VkDeviceGroupPresentModeFlagsKHR) -> IO VkResult -- | vkAcquireNextImage2KHR - Retrieve the index of the next available -- presentable image -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAcquireNextImageInfoKHR, VkDevice vkAcquireNextImage2KHR :: ("device" ::: VkDevice) -> ("pAcquireInfo" ::: Ptr VkAcquireNextImageInfoKHR) -> ("pImageIndex" ::: Ptr Word32) -> IO VkResult -- | vkGetPhysicalDevicePresentRectanglesKHR - Query present rectangles for -- a surface on a physical device -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkPhysicalDevice, VkRect2D, VkSurfaceKHR vkGetPhysicalDevicePresentRectanglesKHR :: ("physicalDevice" ::: VkPhysicalDevice) -> ("surface" ::: VkSurfaceKHR) -> ("pRectCount" ::: Ptr Word32) -> ("pRects" ::: Ptr VkRect2D) -> IO VkResult -- | VkSwapchainCreateInfoKHR - Structure specifying parameters of a newly -- created swapchain object -- --

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. -- -- -- -- 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. -- -- -- -- Upon calling vkCreateSwapchainKHR with an -- oldSwapchain that is not 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 VK_NULL_HANDLE. -- -- Upon calling vkCreateSwapchainKHR with an -- oldSwapchain that is not 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. -- -- The application can continue to use a shared presentable image -- obtained from oldSwapchain until a presentable image is -- acquired from the new swapchain, as long as it has not entered a state -- that causes it to return VK_ERROR_OUT_OF_DATE_KHR. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkColorSpaceKHR, -- VkCompositeAlphaFlagBitsKHR, VkExtent2D, -- VkFormat, VkImageUsageFlags, VkPresentModeKHR, -- VkSharingMode, VkStructureType, VkSurfaceKHR, -- VkSurfaceTransformFlagBitsKHR, -- VkSwapchainCreateFlagsKHR, VkSwapchainKHR, -- vkCreateSharedSwapchainsKHR, vkCreateSwapchainKHR data VkSwapchainCreateInfoKHR VkSwapchainCreateInfoKHR :: VkStructureType -> Ptr () -> VkSwapchainCreateFlagsKHR -> VkSurfaceKHR -> Word32 -> VkFormat -> VkColorSpaceKHR -> VkExtent2D -> Word32 -> VkImageUsageFlags -> VkSharingMode -> Word32 -> Ptr Word32 -> VkSurfaceTransformFlagBitsKHR -> VkCompositeAlphaFlagBitsKHR -> VkPresentModeKHR -> VkBool32 -> VkSwapchainKHR -> VkSwapchainCreateInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Ptr () -- | flags is a bitmask of VkSwapchainCreateFlagBitsKHR -- indicating parameters of the swapchain creation. [$sel:vkFlags:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSwapchainCreateFlagsKHR -- | surface is the surface onto which the swapchain will present -- images. If the creation succeeds, the swapchain becomes associated -- with surface. [$sel:vkSurface:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSurfaceKHR -- | minImageCount is the minimum number of presentable images -- that the application needs. The implementation will either create the -- swapchain with at least that many images, or it will fail to create -- the swapchain. [$sel:vkMinImageCount:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32 -- | imageFormat is a VkFormat value specifying the format -- the swapchain image(s) will be created with. [$sel:vkImageFormat:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkFormat -- | imageColorSpace is a VkColorSpaceKHR value specifying -- the way the swapchain interprets image data. [$sel:vkImageColorSpace:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkColorSpaceKHR -- | imageExtent is the size (in pixels) of the swapchain -- image(s). The behavior is platform-dependent if the image extent does -- not match the surface’s currentExtent as returned by -- vkGetPhysicalDeviceSurfaceCapabilitiesKHR. [$sel:vkImageExtent:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkExtent2D [$sel:vkImageArrayLayers:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32 [$sel:vkImageUsage:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkImageUsageFlags [$sel:vkImageSharingMode:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSharingMode [$sel:vkQueueFamilyIndexCount:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Word32 [$sel:vkPQueueFamilyIndices:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> Ptr Word32 [$sel:vkPreTransform:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSurfaceTransformFlagBitsKHR [$sel:vkCompositeAlpha:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkCompositeAlphaFlagBitsKHR [$sel:vkPresentMode:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkPresentModeKHR [$sel:vkClipped:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkBool32 [$sel:vkOldSwapchain:VkSwapchainCreateInfoKHR] :: VkSwapchainCreateInfoKHR -> VkSwapchainKHR -- | VkPresentInfoKHR - Structure describing parameters of a queue -- presentation -- --

Description

-- -- Before an application can present an image, the image’s layout -- must be transitioned to the -- VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout, or for a shared -- presentable image the VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR -- layout. -- -- Note -- -- When transitioning the image to -- VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR or -- 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 -- VkImageMemoryBarrier should be set to 0, and -- the dstStageMask parameter should be set to -- VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkResult, VkSemaphore, VkStructureType, -- VkSwapchainKHR, vkQueuePresentKHR data VkPresentInfoKHR VkPresentInfoKHR :: VkStructureType -> Ptr () -> Word32 -> Ptr VkSemaphore -> Word32 -> Ptr VkSwapchainKHR -> Ptr Word32 -> Ptr VkResult -> VkPresentInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkPresentInfoKHR] :: VkPresentInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr () -- | waitSemaphoreCount is the number of semaphores to wait for -- before issuing the present request. The number may be zero. [$sel:vkWaitSemaphoreCount:VkPresentInfoKHR] :: VkPresentInfoKHR -> Word32 -- | pWaitSemaphores, if not NULL, is an array of -- VkSemaphore objects with waitSemaphoreCount entries, -- and specifies the semaphores to wait for before issuing the present -- request. [$sel:vkPWaitSemaphores:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkSemaphore -- | swapchainCount is the number of swapchains being presented to -- by this command. [$sel:vkSwapchainCount:VkPresentInfoKHR] :: VkPresentInfoKHR -> Word32 -- | pSwapchains is an array of VkSwapchainKHR objects -- with swapchainCount entries. A given swapchain must -- not appear in this list more than once. [$sel:vkPSwapchains:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkSwapchainKHR -- | pImageIndices is an array of indices into the array of each -- swapchain’s presentable images, with swapchainCount entries. -- Each entry in this array identifies the image to present on the -- corresponding entry in the pSwapchains array. [$sel:vkPImageIndices:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr Word32 -- | pResults is an array of VkResult typed elements with -- swapchainCount entries. Applications that do not need -- per-swapchain results can use NULL for -- pResults. If non-NULL, each entry in -- pResults will be set to the VkResult for presenting -- the swapchain corresponding to the same index in pSwapchains. [$sel:vkPResults:VkPresentInfoKHR] :: VkPresentInfoKHR -> Ptr VkResult -- | VkDeviceGroupPresentCapabilitiesKHR - Present capabilities from other -- physical devices -- --

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)

-- -- -- -- -- --

See Also

-- -- VkDeviceGroupPresentModeFlagsKHR, VkStructureType, -- vkGetDeviceGroupPresentCapabilitiesKHR data VkDeviceGroupPresentCapabilitiesKHR VkDeviceGroupPresentCapabilitiesKHR :: VkStructureType -> Ptr () -> Vector VK_MAX_DEVICE_GROUP_SIZE Word32 -> VkDeviceGroupPresentModeFlagsKHR -> VkDeviceGroupPresentCapabilitiesKHR -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGroupPresentCapabilitiesKHR] :: VkDeviceGroupPresentCapabilitiesKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGroupPresentCapabilitiesKHR] :: VkDeviceGroupPresentCapabilitiesKHR -> Ptr () -- | presentMask is an array of masks, where the mask at element i -- is non-zero if physical device i has a presentation engine, and where -- bit j is set in element i if physical device i can present -- swapchain images from physical device j. If element i is non-zero, -- then bit i must be set. [$sel:vkPresentMask:VkDeviceGroupPresentCapabilitiesKHR] :: VkDeviceGroupPresentCapabilitiesKHR -> Vector VK_MAX_DEVICE_GROUP_SIZE Word32 -- | modes is a bitmask of -- VkDeviceGroupPresentModeFlagBitsKHR indicating which device -- group presentation modes are supported. [$sel:vkModes:VkDeviceGroupPresentCapabilitiesKHR] :: VkDeviceGroupPresentCapabilitiesKHR -> VkDeviceGroupPresentModeFlagsKHR -- | VkImageSwapchainCreateInfoKHR - Specify that an image will be bound to -- swapchain memory -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkSwapchainKHR data VkImageSwapchainCreateInfoKHR VkImageSwapchainCreateInfoKHR :: VkStructureType -> Ptr () -> VkSwapchainKHR -> VkImageSwapchainCreateInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkImageSwapchainCreateInfoKHR] :: VkImageSwapchainCreateInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImageSwapchainCreateInfoKHR] :: VkImageSwapchainCreateInfoKHR -> Ptr () -- | swapchain is VK_NULL_HANDLE or a handle of a swapchain -- that the image will be bound to. [$sel:vkSwapchain:VkImageSwapchainCreateInfoKHR] :: VkImageSwapchainCreateInfoKHR -> VkSwapchainKHR -- | VkBindImageMemorySwapchainInfoKHR - Structure specifying swapchain -- image memory to bind to -- --

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 VkBindImageMemoryDeviceGroupInfo. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkStructureType, VkSwapchainKHR data VkBindImageMemorySwapchainInfoKHR VkBindImageMemorySwapchainInfoKHR :: VkStructureType -> Ptr () -> VkSwapchainKHR -> Word32 -> VkBindImageMemorySwapchainInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkBindImageMemorySwapchainInfoKHR] :: VkBindImageMemorySwapchainInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBindImageMemorySwapchainInfoKHR] :: VkBindImageMemorySwapchainInfoKHR -> Ptr () -- | swapchain is VK_NULL_HANDLE or a swapchain handle. [$sel:vkSwapchain:VkBindImageMemorySwapchainInfoKHR] :: VkBindImageMemorySwapchainInfoKHR -> VkSwapchainKHR -- | imageIndex is an image index within swapchain. [$sel:vkImageIndex:VkBindImageMemorySwapchainInfoKHR] :: VkBindImageMemorySwapchainInfoKHR -> Word32 -- | VkAcquireNextImageInfoKHR - Structure specifying parameters of the -- acquire -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

See Also

-- -- VkFence, VkSemaphore, VkStructureType, -- VkSwapchainKHR, vkAcquireNextImage2KHR data VkAcquireNextImageInfoKHR VkAcquireNextImageInfoKHR :: VkStructureType -> Ptr () -> VkSwapchainKHR -> Word64 -> VkSemaphore -> VkFence -> Word32 -> VkAcquireNextImageInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> Ptr () -- | swapchain is a non-retired swapchain from which an image is -- acquired. [$sel:vkSwapchain:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> VkSwapchainKHR -- | timeout specifies how long the function waits, in -- nanoseconds, if no image is available. [$sel:vkTimeout:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> Word64 -- | semaphore is VK_NULL_HANDLE or a semaphore to -- signal. [$sel:vkSemaphore:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> VkSemaphore -- | fence is VK_NULL_HANDLE or a fence to signal. [$sel:vkFence:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> VkFence -- | deviceMask is a mask of physical devices for which the -- swapchain image will be ready to use when the semaphore or fence is -- signaled. [$sel:vkDeviceMask:VkAcquireNextImageInfoKHR] :: VkAcquireNextImageInfoKHR -> Word32 -- | VkDeviceGroupPresentInfoKHR - Mode and mask controlling which physical -- devices' images are presented -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceGroupPresentModeFlagBitsKHR, VkStructureType data VkDeviceGroupPresentInfoKHR VkDeviceGroupPresentInfoKHR :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> VkDeviceGroupPresentModeFlagBitsKHR -> VkDeviceGroupPresentInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> Ptr () -- | swapchainCount is zero or the number of elements in -- pDeviceMasks. [$sel:vkSwapchainCount:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> Word32 -- | pDeviceMasks is an array of device masks, one for each -- element of VkPresentInfoKHR::pSwapchains. [$sel:vkPDeviceMasks:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> Ptr Word32 -- | mode is the device group present mode that will be used for -- this present. [$sel:vkMode:VkDeviceGroupPresentInfoKHR] :: VkDeviceGroupPresentInfoKHR -> VkDeviceGroupPresentModeFlagBitsKHR -- | VkDeviceGroupSwapchainCreateInfoKHR - Structure specifying parameters -- of a newly created swapchain object -- --

Description

-- -- If this structure is not present, modes is considered to be -- VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceGroupPresentModeFlagsKHR, VkStructureType data VkDeviceGroupSwapchainCreateInfoKHR VkDeviceGroupSwapchainCreateInfoKHR :: VkStructureType -> Ptr () -> VkDeviceGroupPresentModeFlagsKHR -> VkDeviceGroupSwapchainCreateInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGroupSwapchainCreateInfoKHR] :: VkDeviceGroupSwapchainCreateInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGroupSwapchainCreateInfoKHR] :: VkDeviceGroupSwapchainCreateInfoKHR -> Ptr () -- | modes is a bitfield of modes that the swapchain can be -- used with. [$sel:vkModes:VkDeviceGroupSwapchainCreateInfoKHR] :: VkDeviceGroupSwapchainCreateInfoKHR -> VkDeviceGroupPresentModeFlagsKHR -- | VkSwapchainCreateFlagsKHR - Bitmask of VkSwapchainCreateFlagBitsKHR -- --

Description

-- -- VkSwapchainCreateFlagsKHR is a bitmask type for setting a -- mask of zero or more VkSwapchainCreateFlagBitsKHR. -- --

See Also

-- -- VkSwapchainCreateFlagBitsKHR, VkSwapchainCreateInfoKHR type VkSwapchainCreateFlagsKHR = VkSwapchainCreateFlagBitsKHR -- | VkDeviceGroupPresentModeFlagsKHR - Bitmask of -- VkDeviceGroupPresentModeFlagBitsKHR -- --

Description

-- -- VkDeviceGroupPresentModeFlagsKHR is a bitmask type for -- setting a mask of zero or more -- VkDeviceGroupPresentModeFlagBitsKHR. -- --

See Also

-- -- VkDeviceGroupPresentCapabilitiesKHR, -- VkDeviceGroupPresentModeFlagBitsKHR, -- VkDeviceGroupSwapchainCreateInfoKHR, -- vkGetDeviceGroupSurfacePresentModesKHR type VkDeviceGroupPresentModeFlagsKHR = VkDeviceGroupPresentModeFlagBitsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentCapabilitiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentCapabilitiesKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupSwapchainCreateInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupSwapchainCreateInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkBindImageMemorySwapchainInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkBindImageMemorySwapchainInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkImageSwapchainCreateInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkImageSwapchainCreateInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentCapabilitiesKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupSwapchainCreateInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkAcquireNextImageInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkBindImageMemorySwapchainInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkImageSwapchainCreateInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkPresentInfoKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkDeviceGroupPresentModeFlagBitsKHR instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_KHR_swapchain.VkSwapchainCreateFlagBitsKHR module Graphics.Vulkan.Extensions.VK_KHR_display_swapchain -- | vkCreateSharedSwapchainsKHR - Create multiple swapchains that share -- presentable images -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkCreateSharedSwapchains is similar to -- 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)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkSwapchainCreateInfoKHR, VkSwapchainKHR 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

-- -- If the extent of the srcRect and dstRect are not -- equal, the presented pixels will be scaled accordingly. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkRect2D, VkStructureType data VkDisplayPresentInfoKHR VkDisplayPresentInfoKHR :: VkStructureType -> Ptr () -> VkRect2D -> VkRect2D -> VkBool32 -> VkDisplayPresentInfoKHR -- | sType is the type of this structure. [$sel:vkSType:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> Ptr () -- | srcRect is a rectangular region of pixels to present. It -- must be a subset of the image being presented. If -- VkDisplayPresentInfoKHR is not specified, this region will be -- assumed to be the entire presentable image. [$sel:vkSrcRect:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkRect2D -- | dstRect is a rectangular region within the visible region of -- the swapchain’s display mode. If VkDisplayPresentInfoKHR is -- not specified, this region will be assumed to be the entire visible -- region of the visible region of the swapchain’s mode. If the specified -- rectangle is a subset of the display mode’s visible region, content -- from display planes below the swapchain’s plane will be visible -- outside the rectangle. If there are no planes below the swapchain’s, -- the area outside the specified rectangle will be black. If portions of -- the specified rectangle are outside of the display’s visible region, -- pixels mapping only to those portions of the rectangle will be -- discarded. [$sel:vkDstRect:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkRect2D -- | persistent: If this is VK_TRUE, the display engine -- will enable buffered mode on displays that support it. This allows the -- display engine to stop sending content to the display until a new -- image is presented. The display will instead maintain a copy of the -- last presented image. This allows less power to be used, but -- may increase presentation latency. If -- VkDisplayPresentInfoKHR is not specified, persistent mode -- will not be used. [$sel:vkPersistent:VkDisplayPresentInfoKHR] :: VkDisplayPresentInfoKHR -> VkBool32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_display_swapchain.VkDisplayPresentInfoKHR module Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing -- | vkGetRefreshCycleDurationGOOGLE - Obtain the RC duration of the PE’s -- display -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkRefreshCycleDurationGOOGLE, -- VkSwapchainKHR vkGetRefreshCycleDurationGOOGLE :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pDisplayTimingProperties" ::: Ptr VkRefreshCycleDurationGOOGLE) -> IO VkResult -- | vkGetPastPresentationTimingGOOGLE - Obtain timing of a -- previously-presented image -- --

Parameters

-- -- -- -- -- --

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)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkPastPresentationTimingGOOGLE, -- VkSwapchainKHR vkGetPastPresentationTimingGOOGLE :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("pPresentationTimingCount" ::: Ptr Word32) -> ("pPresentationTimings" ::: Ptr VkPastPresentationTimingGOOGLE) -> IO VkResult -- | VkRefreshCycleDurationGOOGLE - Structure containing the RC duration of -- a display -- --

Description

-- --

See Also

-- -- vkGetRefreshCycleDurationGOOGLE data VkRefreshCycleDurationGOOGLE VkRefreshCycleDurationGOOGLE :: Word64 -> VkRefreshCycleDurationGOOGLE -- | refreshDuration is the number of nanoseconds from the start -- of one refresh cycle to the next. [$sel:vkRefreshDuration:VkRefreshCycleDurationGOOGLE] :: VkRefreshCycleDurationGOOGLE -> Word64 -- | VkPastPresentationTimingGOOGLE - Structure containing timing -- information about a previously-presented image -- --

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

-- -- vkGetPastPresentationTimingGOOGLE data VkPastPresentationTimingGOOGLE VkPastPresentationTimingGOOGLE :: Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> VkPastPresentationTimingGOOGLE -- | presentID is an application-provided value that was given to -- a previous vkQueuePresentKHR command via -- VkPresentTimeGOOGLE::presentID (see below). It -- can be used to uniquely identify a previous present with the -- vkQueuePresentKHR command. [$sel:vkPresentID:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word32 -- | desiredPresentTime is an application-provided value that was -- given to a previous vkQueuePresentKHR command via -- VkPresentTimeGOOGLE::desiredPresentTime. If non-zero, -- it was used by the application to indicate that an image not be -- presented any sooner than desiredPresentTime. [$sel:vkDesiredPresentTime:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word64 -- | actualPresentTime is the time when the image of the -- swapchain was actually displayed. [$sel:vkActualPresentTime:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word64 -- | earliestPresentTime is the time when the image of the -- swapchain could have been displayed. This may differ -- from actualPresentTime if the application requested that the -- image be presented no sooner than -- VkPresentTimeGOOGLE::desiredPresentTime. [$sel:vkEarliestPresentTime:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word64 -- | presentMargin is an indication of how early the -- vkQueuePresentKHR command was processed compared to how soon -- it needed to be processed, and still be presented at -- earliestPresentTime. [$sel:vkPresentMargin:VkPastPresentationTimingGOOGLE] :: VkPastPresentationTimingGOOGLE -> Word64 -- | VkPresentTimesInfoGOOGLE - The earliest time each image should be -- presented -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkPresentTimeGOOGLE, VkStructureType data VkPresentTimesInfoGOOGLE VkPresentTimesInfoGOOGLE :: VkStructureType -> Ptr () -> Word32 -> Ptr VkPresentTimeGOOGLE -> VkPresentTimesInfoGOOGLE -- | sType is the type of this structure. [$sel:vkSType:VkPresentTimesInfoGOOGLE] :: VkPresentTimesInfoGOOGLE -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPresentTimesInfoGOOGLE] :: VkPresentTimesInfoGOOGLE -> Ptr () -- | swapchainCount is the number of swapchains being presented to -- by this command. [$sel:vkSwapchainCount:VkPresentTimesInfoGOOGLE] :: VkPresentTimesInfoGOOGLE -> Word32 -- | pTimes is NULL or a pointer to an array of -- VkPresentTimeGOOGLE elements with swapchainCount -- entries. If not NULL, each element of pTimes -- contains the earliest time to present the image corresponding to the -- entry in the VkPresentInfoKHR::pImageIndices array. [$sel:vkPTimes:VkPresentTimesInfoGOOGLE] :: VkPresentTimesInfoGOOGLE -> Ptr VkPresentTimeGOOGLE -- | VkPresentTimeGOOGLE - The earliest time image should be presented -- --

Description

-- --

See Also

-- -- VkPresentTimesInfoGOOGLE data VkPresentTimeGOOGLE VkPresentTimeGOOGLE :: Word32 -> Word64 -> VkPresentTimeGOOGLE -- | presentID is an application-provided identification value, -- that can be used with the results of -- vkGetPastPresentationTimingGOOGLE, in order to uniquely -- identify this present. In order to be useful to the application, it -- should be unique within some period of time that is meaningful -- to the application. [$sel:vkPresentID:VkPresentTimeGOOGLE] :: VkPresentTimeGOOGLE -> Word32 -- | desiredPresentTime specifies that the image given -- should not be displayed to the user any earlier than this time. -- desiredPresentTime is a time in nanoseconds, relative to a -- monotonically-increasing clock (e.g. CLOCK_MONOTONIC (see -- clock_gettime(2)) on Android and Linux). A value of zero specifies -- that the presentation engine may display the image at any time. -- This is useful when the application desires to provide -- presentID, but doesn’t need a specific -- desiredPresentTime. [$sel:vkDesiredPresentTime:VkPresentTimeGOOGLE] :: VkPresentTimeGOOGLE -> Word64 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimesInfoGOOGLE instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimesInfoGOOGLE instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimeGOOGLE instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimeGOOGLE instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPastPresentationTimingGOOGLE instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPastPresentationTimingGOOGLE instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkRefreshCycleDurationGOOGLE instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkRefreshCycleDurationGOOGLE instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimesInfoGOOGLE instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPresentTimeGOOGLE instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkPastPresentationTimingGOOGLE instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_GOOGLE_display_timing.VkRefreshCycleDurationGOOGLE module Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata -- | vkSetHdrMetadataEXT - function to set Hdr metadata -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkHdrMetadataEXT, VkSwapchainKHR vkSetHdrMetadataEXT :: ("device" ::: VkDevice) -> ("swapchainCount" ::: Word32) -> ("pSwapchains" ::: Ptr VkSwapchainKHR) -> ("pMetadata" ::: Ptr VkHdrMetadataEXT) -> IO () -- | VkXYColorEXT - structure to specify X,Y chromaticity coordinates -- --

Members

-- --

Description

-- --

See Also

-- -- VkHdrMetadataEXT data VkXYColorEXT VkXYColorEXT :: CFloat -> CFloat -> VkXYColorEXT [$sel:vkX:VkXYColorEXT] :: VkXYColorEXT -> CFloat [$sel:vkY:VkXYColorEXT] :: VkXYColorEXT -> CFloat -- | VkHdrMetadataEXT - structure to specify Hdr metadata -- --

Description

-- -- Note -- -- The validity and use of this data is outside the scope of Vulkan and -- thus no Valid Usage is given. -- --

See Also

-- -- VkStructureType, VkXYColorEXT, -- vkSetHdrMetadataEXT data VkHdrMetadataEXT VkHdrMetadataEXT :: VkStructureType -> Ptr () -> VkXYColorEXT -> VkXYColorEXT -> VkXYColorEXT -> VkXYColorEXT -> CFloat -> CFloat -> CFloat -> CFloat -> VkHdrMetadataEXT -- | sType is the type of this structure. [$sel:vkSType:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> Ptr () -- | displayPrimaryRed is the mastering display’s red primary in -- chromaticity coordinates [$sel:vkDisplayPrimaryRed:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkXYColorEXT -- | displayPrimaryGreen is the mastering display’s green primary -- in chromaticity coordinates [$sel:vkDisplayPrimaryGreen:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkXYColorEXT -- | displayPrimaryBlue is the mastering display’s blue primary in -- chromaticity coordinates [$sel:vkDisplayPrimaryBlue:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkXYColorEXT -- | whitePoint is the mastering display’s white-point in -- chromaticity coordinates [$sel:vkWhitePoint:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> VkXYColorEXT -- | maxLuminance is the maximum luminance of the mastering -- display in nits [$sel:vkMaxLuminance:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> CFloat -- | minLuminance is the minimum luminance of the mastering -- display in nits [$sel:vkMinLuminance:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> CFloat -- | maxContentLightLevel is content’s maximum luminance in nits [$sel:vkMaxContentLightLevel:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> CFloat -- | maxFrameAverageLightLevel is the maximum frame average light -- level in nits [$sel:vkMaxFrameAverageLightLevel:VkHdrMetadataEXT] :: VkHdrMetadataEXT -> CFloat instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkHdrMetadataEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkHdrMetadataEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkXYColorEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkXYColorEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkHdrMetadataEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_hdr_metadata.VkXYColorEXT module Graphics.Vulkan.Extensions.VK_EXT_display_control -- | VkDisplayPowerStateEXT - Possible power states for a display -- --

See Also

-- -- VkDisplayPowerInfoEXT newtype VkDisplayPowerStateEXT VkDisplayPowerStateEXT :: Int32 -> VkDisplayPowerStateEXT -- | VK_DISPLAY_POWER_STATE_OFF_EXT specifies that the display is -- powered down. -- | 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. -- | VK_DISPLAY_POWER_STATE_ON_EXT specifies that the display is -- powered on. -- | VkDeviceEventTypeEXT - Events that can occur on a device object -- --

See Also

-- -- VkDeviceEventInfoEXT newtype VkDeviceEventTypeEXT VkDeviceEventTypeEXT :: Int32 -> VkDeviceEventTypeEXT -- | 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. -- | VkDisplayEventTypeEXT - Events that can occur on a display object -- --

See Also

-- -- VkDisplayEventInfoEXT newtype VkDisplayEventTypeEXT VkDisplayEventTypeEXT :: Int32 -> VkDisplayEventTypeEXT -- | 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. -- | vkDisplayPowerControlEXT - Set the power state of a display -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- --

See Also

-- -- VkDevice, VkDisplayKHR, VkDisplayPowerInfoEXT vkDisplayPowerControlEXT :: ("device" ::: VkDevice) -> ("display" ::: VkDisplayKHR) -> ("pDisplayPowerInfo" ::: Ptr VkDisplayPowerInfoEXT) -> IO VkResult -- | vkRegisterDeviceEventEXT - Signal a fence when a device event occurs -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkDeviceEventInfoEXT, VkFence vkRegisterDeviceEventEXT :: ("device" ::: VkDevice) -> ("pDeviceEventInfo" ::: Ptr VkDeviceEventInfoEXT) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFence" ::: Ptr VkFence) -> IO VkResult -- | vkRegisterDisplayEventEXT - Signal a fence when a display event occurs -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkDisplayEventInfoEXT, VkDisplayKHR, VkFence 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

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkSurfaceCounterFlagBitsEXT, -- VkSwapchainKHR vkGetSwapchainCounterEXT :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> ("counter" ::: VkSurfaceCounterFlagBitsEXT) -> ("pCounterValue" ::: Ptr Word64) -> IO VkResult -- | VkDisplayPowerInfoEXT - Describe the power state of a display -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDisplayPowerStateEXT, VkStructureType, -- vkDisplayPowerControlEXT data VkDisplayPowerInfoEXT VkDisplayPowerInfoEXT :: VkStructureType -> Ptr () -> VkDisplayPowerStateEXT -> VkDisplayPowerInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDisplayPowerInfoEXT] :: VkDisplayPowerInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDisplayPowerInfoEXT] :: VkDisplayPowerInfoEXT -> Ptr () -- | powerState is a VkDisplayPowerStateEXT value -- specifying the new power state of the display. [$sel:vkPowerState:VkDisplayPowerInfoEXT] :: VkDisplayPowerInfoEXT -> VkDisplayPowerStateEXT -- | VkDeviceEventInfoEXT - Describe a device event to create -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceEventTypeEXT, VkStructureType, -- vkRegisterDeviceEventEXT data VkDeviceEventInfoEXT VkDeviceEventInfoEXT :: VkStructureType -> Ptr () -> VkDeviceEventTypeEXT -> VkDeviceEventInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDeviceEventInfoEXT] :: VkDeviceEventInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceEventInfoEXT] :: VkDeviceEventInfoEXT -> Ptr () [$sel:vkDeviceEvent:VkDeviceEventInfoEXT] :: VkDeviceEventInfoEXT -> VkDeviceEventTypeEXT -- | VkDisplayEventInfoEXT - Describe a display event to create -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDisplayEventTypeEXT, VkStructureType, -- vkRegisterDisplayEventEXT data VkDisplayEventInfoEXT VkDisplayEventInfoEXT :: VkStructureType -> Ptr () -> VkDisplayEventTypeEXT -> VkDisplayEventInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDisplayEventInfoEXT] :: VkDisplayEventInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDisplayEventInfoEXT] :: VkDisplayEventInfoEXT -> Ptr () -- | displayEvent is a VkDisplayEventTypeEXT specifying -- when the fence will be signaled. [$sel:vkDisplayEvent:VkDisplayEventInfoEXT] :: VkDisplayEventInfoEXT -> VkDisplayEventTypeEXT -- | VkSwapchainCounterCreateInfoEXT - Specify the surface counters desired -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkSurfaceCounterFlagsEXT data VkSwapchainCounterCreateInfoEXT VkSwapchainCounterCreateInfoEXT :: VkStructureType -> Ptr () -> VkSurfaceCounterFlagsEXT -> VkSwapchainCounterCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkSwapchainCounterCreateInfoEXT] :: VkSwapchainCounterCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSwapchainCounterCreateInfoEXT] :: VkSwapchainCounterCreateInfoEXT -> Ptr () -- | surfaceCounters is a bitmask of -- VkSurfaceCounterFlagBitsEXT specifying surface counters to -- enable for the swapchain. [$sel:vkSurfaceCounters:VkSwapchainCounterCreateInfoEXT] :: VkSwapchainCounterCreateInfoEXT -> VkSurfaceCounterFlagsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkSwapchainCounterCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayEventTypeEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDeviceEventTypeEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_display_control.VkDisplayPowerStateEXT module Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image -- | vkGetSwapchainStatusKHR - Get a swapchain’s status -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkSwapchainKHR vkGetSwapchainStatusKHR :: ("device" ::: VkDevice) -> ("swapchain" ::: VkSwapchainKHR) -> IO VkResult -- | VkSharedPresentSurfaceCapabilitiesKHR - structure describing -- capabilities of a surface for shared presentation -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkImageUsageFlags, VkStructureType data VkSharedPresentSurfaceCapabilitiesKHR VkSharedPresentSurfaceCapabilitiesKHR :: VkStructureType -> Ptr () -> VkImageUsageFlags -> VkSharedPresentSurfaceCapabilitiesKHR -- | sType is the type of this structure. [$sel:vkSType:VkSharedPresentSurfaceCapabilitiesKHR] :: VkSharedPresentSurfaceCapabilitiesKHR -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkSharedPresentSurfaceCapabilitiesKHR] :: VkSharedPresentSurfaceCapabilitiesKHR -> Ptr () -- | sharedPresentSupportedUsageFlags is a bitmask of -- VkImageUsageFlagBits representing the ways the application -- can use the shared presentable image from a swapchain created -- with VkPresentModeKHR set to -- VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or -- VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR for the surface -- on the specified device. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT -- must be included in the set but implementations may -- support additional usages. [$sel:vkSharedPresentSupportedUsageFlags:VkSharedPresentSurfaceCapabilitiesKHR] :: VkSharedPresentSurfaceCapabilitiesKHR -> VkImageUsageFlags instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_shared_presentable_image.VkSharedPresentSurfaceCapabilitiesKHR module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2 -- | VkPointClippingBehavior - Enum specifying the point clipping behaviour -- --

See Also

-- -- VkPhysicalDevicePointClippingProperties newtype VkPointClippingBehavior VkPointClippingBehavior :: Int32 -> VkPointClippingBehavior -- | VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES specifies that the -- primitive is discarded if the vertex lies outside any clip plane, -- including the planes bounding the view volume. -- | VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY specifies -- that the primitive is discarded only if the vertex lies outside any -- user clip plane. -- | VkTessellationDomainOrigin - Enum describing tessellation domain -- origin -- --

Description

-- -- -- -- -- -- This enum affects how the VertexOrderCw and -- VertexOrderCcw tessellation execution modes are interpreted, -- since the winding is defined relative to the orientation of the -- domain. -- --

See Also

-- -- VkPipelineTessellationDomainOriginStateCreateInfo newtype VkTessellationDomainOrigin VkTessellationDomainOrigin :: Int32 -> VkTessellationDomainOrigin -- | VkInputAttachmentAspectReference - Structure specifying a -- subpass/input attachment pair and an aspect mask that can be -- read. -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImageAspectFlags, -- VkRenderPassInputAttachmentAspectCreateInfo data VkInputAttachmentAspectReference VkInputAttachmentAspectReference :: Word32 -> Word32 -> VkImageAspectFlags -> VkInputAttachmentAspectReference -- | subpass is an index into the pSubpasses array of the -- parent VkRenderPassCreateInfo structure. [$sel:vkSubpass:VkInputAttachmentAspectReference] :: VkInputAttachmentAspectReference -> Word32 -- | inputAttachmentIndex is an index into the -- pInputAttachments of the specified subpass. [$sel:vkInputAttachmentIndex:VkInputAttachmentAspectReference] :: VkInputAttachmentAspectReference -> Word32 -- | aspectMask is a mask of which aspect(s) can be -- accessed within the specified subpass. [$sel:vkAspectMask:VkInputAttachmentAspectReference] :: VkInputAttachmentAspectReference -> VkImageAspectFlags -- | VkRenderPassInputAttachmentAspectCreateInfo - Structure specifying, -- for a given subpass/input attachment pair, which aspect can be -- read. -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkInputAttachmentAspectReference, VkStructureType data VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr VkInputAttachmentAspectReference -> VkRenderPassInputAttachmentAspectCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkRenderPassInputAttachmentAspectCreateInfo] :: VkRenderPassInputAttachmentAspectCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkRenderPassInputAttachmentAspectCreateInfo] :: VkRenderPassInputAttachmentAspectCreateInfo -> Ptr () -- | aspectReferenceCount is the number of elements in the -- pAspectReferences array. [$sel:vkAspectReferenceCount:VkRenderPassInputAttachmentAspectCreateInfo] :: VkRenderPassInputAttachmentAspectCreateInfo -> Word32 -- | pAspectReferences points to an array of -- aspectReferenceCount number of -- VkInputAttachmentAspectReference structures describing which -- aspect(s) can be accessed for a given input attachment within a -- given subpass. [$sel:vkPAspectReferences:VkRenderPassInputAttachmentAspectCreateInfo] :: VkRenderPassInputAttachmentAspectCreateInfo -> Ptr VkInputAttachmentAspectReference -- | VkPhysicalDevicePointClippingProperties - Structure describing the -- point clipping behavior supported by an implementation -- --

Members

-- -- The members of the VkPhysicalDevicePointClippingProperties -- structure describe the following implementation-dependent limit: -- --

Description

-- -- -- -- -- -- If the VkPhysicalDevicePointClippingProperties structure is -- included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkPointClippingBehavior, VkStructureType data VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingProperties :: VkStructureType -> Ptr () -> VkPointClippingBehavior -> VkPhysicalDevicePointClippingProperties [$sel:vkSType:VkPhysicalDevicePointClippingProperties] :: VkPhysicalDevicePointClippingProperties -> VkStructureType [$sel:vkPNext:VkPhysicalDevicePointClippingProperties] :: VkPhysicalDevicePointClippingProperties -> Ptr () [$sel:vkPointClippingBehavior:VkPhysicalDevicePointClippingProperties] :: VkPhysicalDevicePointClippingProperties -> VkPointClippingBehavior -- | VkImageViewUsageCreateInfo - Specify the intended usage of an image -- view -- --

Description

-- -- When this structure is chained to VkImageViewCreateInfo the -- usage field overrides the implicit usage parameter -- inherited from image creation time and its value is used instead for -- the purposes of determining the valid usage conditions of -- VkImageViewCreateInfo. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImageUsageFlags, VkStructureType data VkImageViewUsageCreateInfo VkImageViewUsageCreateInfo :: VkStructureType -> Ptr () -> VkImageUsageFlags -> VkImageViewUsageCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkImageViewUsageCreateInfo] :: VkImageViewUsageCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImageViewUsageCreateInfo] :: VkImageViewUsageCreateInfo -> Ptr () -- | usage is a bitmask describing the allowed usages of the image -- view. See VkImageUsageFlagBits for a description of the -- supported bits. [$sel:vkUsage:VkImageViewUsageCreateInfo] :: VkImageViewUsageCreateInfo -> VkImageUsageFlags -- | VkPipelineTessellationDomainOriginStateCreateInfo - Structure -- specifying the orientation of the tessellation domain -- --

Description

-- -- If the VkPipelineTessellationDomainOriginStateCreateInfo -- structure is included in the pNext chain of -- VkPipelineTessellationStateCreateInfo, it controls the origin -- of the tessellation domain. If this structure is not present, it is as -- if domainOrigin were -- VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, VkTessellationDomainOrigin data VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfo :: VkStructureType -> Ptr () -> VkTessellationDomainOrigin -> VkPipelineTessellationDomainOriginStateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkPipelineTessellationDomainOriginStateCreateInfo] :: VkPipelineTessellationDomainOriginStateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineTessellationDomainOriginStateCreateInfo] :: VkPipelineTessellationDomainOriginStateCreateInfo -> Ptr () -- | domainOrigin controls the origin of the tessellation domain -- space, and is of type VkTessellationDomainOrigin. [$sel:vkDomainOrigin:VkPipelineTessellationDomainOriginStateCreateInfo] :: VkPipelineTessellationDomainOriginStateCreateInfo -> VkTessellationDomainOrigin instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPipelineTessellationDomainOriginStateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPipelineTessellationDomainOriginStateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPhysicalDevicePointClippingProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPhysicalDevicePointClippingProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkRenderPassInputAttachmentAspectCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkRenderPassInputAttachmentAspectCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkInputAttachmentAspectReference instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkInputAttachmentAspectReference instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPipelineTessellationDomainOriginStateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkImageViewUsageCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPhysicalDevicePointClippingProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkRenderPassInputAttachmentAspectCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkInputAttachmentAspectReference instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkTessellationDomainOrigin instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPointClippingBehavior module Graphics.Vulkan.Extensions.VK_KHR_maintenance2 type VkPointClippingBehaviorKHR = VkPointClippingBehavior type VkTessellationDomainOriginKHR = VkTessellationDomainOrigin type VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference type VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo type VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties type VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo type VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo module Graphics.Vulkan.Core10.Pass -- | VkAttachmentLoadOp - Specify how contents of an attachment are treated -- at the beginning of a subpass -- --

See Also

-- -- VkAttachmentDescription newtype VkAttachmentLoadOp VkAttachmentLoadOp :: Int32 -> VkAttachmentLoadOp -- | 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. -- | 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. -- | 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. -- | VkAttachmentStoreOp - Specify how contents of an attachment are -- treated at the end of a subpass -- --

See Also

-- -- VkAttachmentDescription newtype VkAttachmentStoreOp VkAttachmentStoreOp :: Int32 -> VkAttachmentStoreOp -- | 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. -- | 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. -- | VkPipelineBindPoint - Specify the bind point of a pipeline object to a -- command buffer -- --

See Also

-- -- VkDescriptorUpdateTemplateCreateInfo, -- VkIndirectCommandsLayoutCreateInfoNVX, -- VkSubpassDescription, vkCmdBindDescriptorSets, -- vkCmdBindPipeline, vkCmdPushDescriptorSetKHR newtype VkPipelineBindPoint VkPipelineBindPoint :: Int32 -> VkPipelineBindPoint -- | VK_PIPELINE_BIND_POINT_GRAPHICS specifies binding as a -- graphics pipeline. -- | VK_PIPELINE_BIND_POINT_COMPUTE specifies binding as a compute -- pipeline. -- | VkFramebufferCreateFlags - Reserved for future use -- --

Description

-- -- VkFramebufferCreateFlags is a bitmask type for setting a -- mask, but is currently reserved for future use. -- --

See Also

-- -- VkFramebufferCreateInfo newtype VkFramebufferCreateFlags VkFramebufferCreateFlags :: VkFlags -> VkFramebufferCreateFlags -- | VkRenderPassCreateFlags - Reserved for future use -- --

Description

-- -- VkRenderPassCreateFlags is a bitmask type for setting a mask, -- but is currently reserved for future use. -- --

See Also

-- -- VkRenderPassCreateInfo newtype VkRenderPassCreateFlags VkRenderPassCreateFlags :: VkFlags -> VkRenderPassCreateFlags -- | VkAccessFlagBits - Bitmask specifying memory access types that will -- participate in a memory dependency -- --

Description

-- -- -- -- -- -- 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 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_READ_ | @VK_PIPELINE_STAGE_COLOR_ATTACHME |
--   | NONCOHERENT_BIT_EXT@              | 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                              |
--   +-----------------------------------+-----------------------------------+
--   | @VK_ACCESS_COMMAND_PROCESS_READ_B | @VK_PIPELINE_STAGE_COMMAND_PROCES |
--   | IT_NVX@                           | S_BIT_NVX@                        |
--   +-----------------------------------+-----------------------------------+
--   | @VK_ACCESS_COMMAND_PROCESS_WRITE_ | @VK_PIPELINE_STAGE_COMMAND_PROCES |
--   | BIT_NVX@                          | S_BIT_NVX@                        |
--   +-----------------------------------+-----------------------------------+
--   
--   Supported access types
--   
-- -- If a memory object does not have the -- VK_MEMORY_PROPERTY_HOST_COHERENT_BIT property, then -- 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 access type, -- where it can be further made available to the device by -- synchronization commands. Similarly, -- vkInvalidateMappedMemoryRanges must be called to -- guarantee that writes which are visible to the -- VK_ACCESS_HOST_READ_BIT 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 access type. Similarly, -- writes made visible to the VK_ACCESS_HOST_READ_BIT access -- type are automatically made visible to the host. -- -- Note -- -- The vkQueueSubmit command 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

-- -- VkAccessFlags newtype VkAccessFlagBits VkAccessFlagBits :: VkFlags -> VkAccessFlagBits -- | VkSubpassDescriptionFlagBits - Bitmask specifying usage of a subpass -- --

See Also

-- -- VkSubpassDescriptionFlags newtype VkSubpassDescriptionFlagBits VkSubpassDescriptionFlagBits :: VkFlags -> VkSubpassDescriptionFlagBits -- | VkAttachmentDescriptionFlagBits - Bitmask specifying additional -- properties of an attachment -- --

See Also

-- -- VkAttachmentDescriptionFlags newtype VkAttachmentDescriptionFlagBits VkAttachmentDescriptionFlagBits :: VkFlags -> VkAttachmentDescriptionFlagBits -- | VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT specifies that the -- attachment aliases the same device memory as other attachments. -- | VkDependencyFlagBits - Bitmask specifying how execution and memory -- dependencies are formed -- --

See Also

-- -- VkDependencyFlags newtype VkDependencyFlagBits VkDependencyFlagBits :: VkFlags -> VkDependencyFlagBits -- | VK_DEPENDENCY_BY_REGION_BIT specifies that dependencies will -- be framebuffer-local. -- | VkFramebuffer - Opaque handle to a framebuffer object -- --

Description

-- --

See Also

-- -- VkCommandBufferInheritanceInfo, VkRenderPassBeginInfo, -- vkCreateFramebuffer, vkDestroyFramebuffer type VkFramebuffer = Ptr VkFramebuffer_T -- | vkCreateFramebuffer - Create a new framebuffer object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkFramebuffer, -- VkFramebufferCreateInfo vkCreateFramebuffer :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkFramebufferCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pFramebuffer" ::: Ptr VkFramebuffer) -> IO VkResult -- | vkDestroyFramebuffer - Destroy a framebuffer object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkFramebuffer vkDestroyFramebuffer :: ("device" ::: VkDevice) -> ("framebuffer" ::: VkFramebuffer) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkCreateRenderPass - Create a new render pass object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkRenderPass, -- VkRenderPassCreateInfo vkCreateRenderPass :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkRenderPassCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pRenderPass" ::: Ptr VkRenderPass) -> IO VkResult -- | vkDestroyRenderPass - Destroy a render pass object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkRenderPass vkDestroyRenderPass :: ("device" ::: VkDevice) -> ("renderPass" ::: VkRenderPass) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkGetRenderAreaGranularity - Returns the granularity for optimal -- render area -- --

Parameters

-- -- -- -- -- --

Description

-- -- The conditions leading to an optimal renderArea are: -- -- -- -- 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 automatic layout transitions. Similarly, -- pipeline barriers are valid even if their effect extends outside the -- render area. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkExtent2D, VkRenderPass vkGetRenderAreaGranularity :: ("device" ::: VkDevice) -> ("renderPass" ::: VkRenderPass) -> ("pGranularity" ::: Ptr VkExtent2D) -> IO () -- | VkAttachmentDescription - Structure specifying an attachment -- 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. -- -- The load and store operations apply on the first and last use of each -- view in the render pass, respectively. If a view index of an -- attachment is not included in the view mask in any subpass that uses -- it, then the load and store operations 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 Numeric Representation and Computation -- and 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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAttachmentDescriptionFlags, VkAttachmentLoadOp, -- VkAttachmentStoreOp, VkFormat, VkImageLayout, -- VkRenderPassCreateInfo, VkSampleCountFlagBits data VkAttachmentDescription VkAttachmentDescription :: VkAttachmentDescriptionFlags -> VkFormat -> VkSampleCountFlagBits -> VkAttachmentLoadOp -> VkAttachmentStoreOp -> VkAttachmentLoadOp -> VkAttachmentStoreOp -> VkImageLayout -> VkImageLayout -> VkAttachmentDescription -- | flags is a bitmask of VkAttachmentDescriptionFlagBits -- specifying additional properties of the attachment. [$sel:vkFlags:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentDescriptionFlags -- | format is a VkFormat value specifying the format of -- the image that will be used for the attachment. [$sel:vkFormat:VkAttachmentDescription] :: VkAttachmentDescription -> VkFormat -- | samples is the number of samples of the image as defined in -- VkSampleCountFlagBits. [$sel:vkSamples:VkAttachmentDescription] :: VkAttachmentDescription -> VkSampleCountFlagBits -- | loadOp is a VkAttachmentLoadOp value specifying how -- the contents of color and depth components of the attachment are -- treated at the beginning of the subpass where it is first used. [$sel:vkLoadOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentLoadOp -- | storeOp is a VkAttachmentStoreOp value specifying how -- the contents of color and depth components of the attachment are -- treated at the end of the subpass where it is last used. [$sel:vkStoreOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentStoreOp -- | stencilLoadOp is a VkAttachmentLoadOp value specifying -- how the contents of stencil components of the attachment are treated -- at the beginning of the subpass where it is first used. [$sel:vkStencilLoadOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentLoadOp -- | stencilStoreOp is a VkAttachmentStoreOp value -- specifying how the contents of stencil components of the attachment -- are treated at the end of the last subpass where it is used. [$sel:vkStencilStoreOp:VkAttachmentDescription] :: VkAttachmentDescription -> VkAttachmentStoreOp -- | initialLayout is the layout the attachment image subresource -- will be in when a render pass instance begins. [$sel:vkInitialLayout:VkAttachmentDescription] :: VkAttachmentDescription -> VkImageLayout -- | finalLayout is the layout the attachment image subresource -- will be transitioned to when a render pass instance ends. During a -- render pass instance, an attachment can use a different layout -- in each subpass, if desired. [$sel:vkFinalLayout:VkAttachmentDescription] :: VkAttachmentDescription -> VkImageLayout -- | VkAttachmentReference - Structure specifying an attachment reference -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkImageLayout, VkSubpassDescription data VkAttachmentReference VkAttachmentReference :: Word32 -> VkImageLayout -> VkAttachmentReference -- | attachment is the index of the attachment of the render pass, -- and corresponds to the index of the corresponding element in the -- pAttachments array of the VkRenderPassCreateInfo -- structure. If any color or depth/stencil attachments are -- VK_ATTACHMENT_UNUSED, then no writes occur for those -- attachments. [$sel:vkAttachment:VkAttachmentReference] :: VkAttachmentReference -> Word32 -- | layout is a VkImageLayout value specifying the layout -- the attachment uses during the subpass. [$sel:vkLayout:VkAttachmentReference] :: VkAttachmentReference -> VkImageLayout -- | VkSubpassDescription - Structure specifying a subpass 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: -- -- -- -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAttachmentReference, VkPipelineBindPoint, -- VkRenderPassCreateInfo, VkSubpassDescriptionFlags data VkSubpassDescription VkSubpassDescription :: VkSubpassDescriptionFlags -> VkPipelineBindPoint -> Word32 -> Ptr VkAttachmentReference -> Word32 -> Ptr VkAttachmentReference -> Ptr VkAttachmentReference -> Ptr VkAttachmentReference -> Word32 -> Ptr Word32 -> VkSubpassDescription -- | flags is a bitmask of VkSubpassDescriptionFlagBits -- specifying usage of the subpass. [$sel:vkFlags:VkSubpassDescription] :: VkSubpassDescription -> VkSubpassDescriptionFlags -- | pipelineBindPoint is a VkPipelineBindPoint value -- specifying whether this is a compute or graphics subpass. Currently, -- only graphics subpasses are supported. [$sel:vkPipelineBindPoint:VkSubpassDescription] :: VkSubpassDescription -> VkPipelineBindPoint -- | inputAttachmentCount is the number of input attachments. [$sel:vkInputAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32 -- | pInputAttachments is an array of VkAttachmentReference -- structures (defined below) that lists which of the render pass’s -- attachments can be read in the fragment shader stage during the -- subpass, and what layout each attachment will be in during the -- subpass. Each element of the array corresponds to an input attachment -- unit number in the shader, i.e. if the shader declares an input -- variable layout(input_attachment_index=X, set=Y, binding=Z) -- then it uses the attachment provided in pInputAttachments[X]. -- Input attachments must also be bound to the pipeline with a -- descriptor set, with the input attachment descriptor written in the -- location (set=Y, binding=Z). Fragment shaders can use subpass -- input variables to access the contents of an input attachment at the -- fragment’s (x, y, layer) framebuffer coordinates. [$sel:vkPInputAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference -- | colorAttachmentCount is the number of color attachments. [$sel:vkColorAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32 -- | pColorAttachments is an array of -- colorAttachmentCount VkAttachmentReference structures -- that lists which of the render pass’s attachments will be used as -- color attachments in the subpass, and what layout each attachment will -- be in during the subpass. Each element of the array corresponds to a -- fragment shader output location, i.e. if the shader declared an output -- variable layout(location=X) then it uses the attachment -- provided in pColorAttachments[X]. [$sel:vkPColorAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference -- | pResolveAttachments is NULL or an array of -- colorAttachmentCount VkAttachmentReference structures -- that lists which of the render pass’s attachments are resolved to at -- the end of the subpass, and what layout each attachment will be in -- during the multisample resolve operation. If -- pResolveAttachments is not NULL, each of its -- elements corresponds to a color attachment (the element in -- pColorAttachments at the same index), and a multisample -- resolve operation is defined for each attachment. At the end of each -- subpass, multisample resolve operations read the subpass’s color -- attachments, and resolve the samples for each pixel to the same pixel -- location in the corresponding resolve attachments, unless the resolve -- attachment index is VK_ATTACHMENT_UNUSED. If the first use of -- an attachment in a render pass is as a resolve attachment, then the -- loadOp is effectively ignored as the resolve is guaranteed to -- overwrite all pixels in the render area. [$sel:vkPResolveAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference -- | pDepthStencilAttachment is a pointer to a -- VkAttachmentReference specifying which attachment will be used -- for depth/stencil data and the layout it will be in during the -- subpass. Setting the attachment index to VK_ATTACHMENT_UNUSED -- or leaving this pointer as NULL indicates that no -- depth/stencil attachment will be used in the subpass. [$sel:vkPDepthStencilAttachment:VkSubpassDescription] :: VkSubpassDescription -> Ptr VkAttachmentReference -- | preserveAttachmentCount is the number of preserved -- attachments. [$sel:vkPreserveAttachmentCount:VkSubpassDescription] :: VkSubpassDescription -> Word32 -- | pPreserveAttachments is an array of -- preserveAttachmentCount render pass attachment indices -- describing the attachments that are not used by a subpass, but whose -- contents must be preserved throughout the subpass. [$sel:vkPPreserveAttachments:VkSubpassDescription] :: VkSubpassDescription -> Ptr Word32 -- | VkSubpassDependency - Structure specifying a subpass dependency -- --

Description

-- -- If srcSubpass is equal to dstSubpass then the -- VkSubpassDependency describes a 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 synchronization scope includes commands that occur -- earlier in submission order than the -- 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 source stage mask specified by srcStageMask. -- -- If dstSubpass is equal to VK_SUBPASS_EXTERNAL, the -- second synchronization scope includes commands that occur later -- in submission order than the 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 destination stage mask -- specified by dstStageMask. -- -- The first access scope is limited to access in the pipeline -- stages determined by the source stage mask specified by -- srcStageMask. It is also limited to access types in the -- source access mask specified by srcAccessMask. -- -- The second access scope is limited to access in the pipeline -- stages determined by the destination stage mask specified by -- dstStageMask. It is also limited to access types in the -- destination access mask specified by dstAccessMask. -- -- The availability and visibility operations defined by a subpass -- dependency affect the execution of 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 -- VkMemoryBarrier (with matching -- srcAccessMask/dstAccessMask parameters) submitted as -- a part of a 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 -- VkImageMemoryBarrier defined similarly to the -- VkMemoryBarrier above, the queue family indices set to -- VK_QUEUE_FAMILY_IGNORED, and layouts as follows: -- -- -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAccessFlags, VkDependencyFlags, -- VkPipelineStageFlags, VkRenderPassCreateInfo data VkSubpassDependency VkSubpassDependency :: Word32 -> Word32 -> VkPipelineStageFlags -> VkPipelineStageFlags -> VkAccessFlags -> VkAccessFlags -> VkDependencyFlags -> VkSubpassDependency -- | srcSubpass is the subpass index of the first subpass in the -- dependency, or VK_SUBPASS_EXTERNAL. [$sel:vkSrcSubpass:VkSubpassDependency] :: VkSubpassDependency -> Word32 -- | dstSubpass is the subpass index of the second subpass in the -- dependency, or VK_SUBPASS_EXTERNAL. [$sel:vkDstSubpass:VkSubpassDependency] :: VkSubpassDependency -> Word32 -- | srcStageMask is a bitmask of VkPipelineStageFlagBits -- specifying the source stage mask. [$sel:vkSrcStageMask:VkSubpassDependency] :: VkSubpassDependency -> VkPipelineStageFlags -- | dstStageMask is a bitmask of VkPipelineStageFlagBits -- specifying the destination stage mask [$sel:vkDstStageMask:VkSubpassDependency] :: VkSubpassDependency -> VkPipelineStageFlags -- | srcAccessMask is a bitmask of VkAccessFlagBits -- specifying a source access mask. [$sel:vkSrcAccessMask:VkSubpassDependency] :: VkSubpassDependency -> VkAccessFlags -- | dstAccessMask is a bitmask of VkAccessFlagBits -- specifying a destination access mask. [$sel:vkDstAccessMask:VkSubpassDependency] :: VkSubpassDependency -> VkAccessFlags -- | dependencyFlags is a bitmask of VkDependencyFlagBits. [$sel:vkDependencyFlags:VkSubpassDependency] :: VkSubpassDependency -> VkDependencyFlags -- | VkRenderPassCreateInfo - Structure specifying parameters of a newly -- created render pass -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAttachmentDescription, VkRenderPassCreateFlags, -- VkStructureType, VkSubpassDependency, -- VkSubpassDescription, vkCreateRenderPass data VkRenderPassCreateInfo VkRenderPassCreateInfo :: VkStructureType -> Ptr () -> VkRenderPassCreateFlags -> Word32 -> Ptr VkAttachmentDescription -> Word32 -> Ptr VkSubpassDescription -> Word32 -> Ptr VkSubpassDependency -> VkRenderPassCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> VkRenderPassCreateFlags -- | attachmentCount is the number of attachments used by this -- render pass, or zero indicating no attachments. Attachments are -- referred to by zero-based indices in the range -- [0,attachmentCount). [$sel:vkAttachmentCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32 -- | pAttachments points to an array of attachmentCount -- number of VkAttachmentDescription structures describing -- properties of the attachments, or NULL if -- attachmentCount is zero. [$sel:vkPAttachments:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkAttachmentDescription -- | subpassCount is the number of subpasses to create for this -- render pass. Subpasses are referred to by zero-based indices in the -- range [0,subpassCount). A render pass must have at -- least one subpass. [$sel:vkSubpassCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32 -- | pSubpasses points to an array of subpassCount number -- of VkSubpassDescription structures describing properties of the -- subpasses. [$sel:vkPSubpasses:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkSubpassDescription -- | dependencyCount is the number of dependencies between pairs -- of subpasses, or zero indicating no dependencies. [$sel:vkDependencyCount:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Word32 -- | pDependencies points to an array of dependencyCount -- number of VkSubpassDependency structures describing -- dependencies between pairs of subpasses, or NULL if -- dependencyCount is zero. [$sel:vkPDependencies:VkRenderPassCreateInfo] :: VkRenderPassCreateInfo -> Ptr VkSubpassDependency -- | VkFramebufferCreateInfo - Structure specifying parameters of a newly -- created framebuffer -- --

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 load operations for those attachments, -- or happen-after the store operations for those attachments. -- -- For depth/stencil attachments, each aspect can be used -- separately as attachments and non-attachments as long as the -- non-attachment accesses are also via an image subresource in either -- the -- VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL -- layout or the -- VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL -- layout, and the attachment resource uses whichever of those two -- layouts the image accesses do not. Use of non-attachment aspects in -- this case is only well defined if the attachment is used in the -- subpass where the non-attachment access is being made, or the layout -- of the image subresource is constant throughout the entire render pass -- instance, including the initialLayout and -- finalLayout. -- -- Note -- -- These restrictions mean 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 -- VkPipelineMultisampleStateCreateInfo to define the number of -- samples used in rasterization; however, if -- VkPhysicalDeviceFeatures::variableMultisampleRate is -- VK_FALSE, then all pipelines to be bound with a given -- zero-attachment subpass must have the same value for -- VkPipelineMultisampleStateCreateInfo::rasterizationSamples. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkFramebufferCreateFlags, VkImageView, -- VkRenderPass, VkStructureType, -- vkCreateFramebuffer data VkFramebufferCreateInfo VkFramebufferCreateInfo :: VkStructureType -> Ptr () -> VkFramebufferCreateFlags -> VkRenderPass -> Word32 -> Ptr VkImageView -> Word32 -> Word32 -> Word32 -> VkFramebufferCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkFramebufferCreateFlags -- | renderPass is a render pass that defines what render passes -- the framebuffer will be compatible with. See Render Pass -- Compatibility for details. [$sel:vkRenderPass:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> VkRenderPass -- | attachmentCount is the number of attachments. [$sel:vkAttachmentCount:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32 -- | pAttachments is an array of VkImageView handles, -- each of which will be used as the corresponding attachment in a render -- pass instance. [$sel:vkPAttachments:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Ptr VkImageView -- | width, height and layers define the -- dimensions of the framebuffer. If the render pass uses multiview, then -- layers must be one and each attachment requires a -- number of layers that is greater than the maximum bit index set in the -- view mask in the subpasses in which it is used. [$sel:vkWidth:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32 [$sel:vkHeight:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32 [$sel:vkLayers:VkFramebufferCreateInfo] :: VkFramebufferCreateInfo -> Word32 -- | VkAccessFlags - Bitmask of VkAccessFlagBits -- --

Description

-- -- VkAccessFlags is a bitmask type for setting a mask of zero or -- more VkAccessFlagBits. -- --

See Also

-- -- VkAccessFlagBits, VkBufferMemoryBarrier, -- VkImageMemoryBarrier, VkMemoryBarrier, -- VkSubpassDependency type VkAccessFlags = VkAccessFlagBits -- | VkSubpassDescriptionFlags - Bitmask of VkSubpassDescriptionFlagBits -- --

Description

-- -- VkSubpassDescriptionFlags is a bitmask type for setting a -- mask of zero or more VkSubpassDescriptionFlagBits. -- --

See Also

-- -- VkSubpassDescription, VkSubpassDescriptionFlagBits type VkSubpassDescriptionFlags = VkSubpassDescriptionFlagBits -- | VkAttachmentDescriptionFlags - Bitmask of -- VkAttachmentDescriptionFlagBits -- --

Description

-- -- VkAttachmentDescriptionFlags is a bitmask type for setting a -- mask of zero or more VkAttachmentDescriptionFlagBits. -- --

See Also

-- -- VkAttachmentDescription, VkAttachmentDescriptionFlagBits type VkAttachmentDescriptionFlags = VkAttachmentDescriptionFlagBits -- | VkDependencyFlags - Bitmask of VkDependencyFlagBits -- --

Description

-- -- VkDependencyFlags is a bitmask type for setting a mask of -- zero or more VkDependencyFlagBits. -- --

See Also

-- -- VkDependencyFlagBits, VkSubpassDependency, -- vkCmdPipelineBarrier type VkDependencyFlags = VkDependencyFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkSubpassDependency instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkSubpassDependency instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentDescription instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentDescription instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkSubpassDescription instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkSubpassDescription instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentReference instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentReference instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkAccessFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkAccessFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAccessFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkAccessFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAccessFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp instance GHC.Classes.Ord Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp instance GHC.Classes.Eq Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkRenderPassCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkSubpassDependency instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentDescription instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkSubpassDescription instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkFramebufferCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.Pass.VkAttachmentReference instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkDependencyFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkAttachmentDescriptionFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkSubpassDescriptionFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAccessFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkAccessFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkRenderPassCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkFramebufferCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkPipelineBindPoint instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkAttachmentStoreOp instance GHC.Show.Show Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp instance GHC.Read.Read Graphics.Vulkan.Core10.Pass.VkAttachmentLoadOp module Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes -- | VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX specifies -- that shaders compiled for this subpass write the attributes for all -- views in a single invocation of each vertex processing stage. All -- pipelines compiled against a subpass that includes this bit -- must write per-view attributes to the code:*PerViewNV[] shader -- outputs, in addition to the non-per-view (e.g. Position) -- outputs. -- | VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX -- specifies that shaders compiled for this subpass use per-view -- positions which only differ in value in the x component. Per-view -- viewport mask can also be used. -- | VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - Structure -- describing multiview limits that can be supported by an implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -- structure describe the following implementation-dependent limits: -- --

Description

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the -- VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -- structure is included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX [$sel:vkSType:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX] :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX] :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -> Ptr () [$sel:vkPerViewPositionAllComponents:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX] :: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -> VkBool32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX module Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced -- | VkBlendOverlapEXT - Enumerant specifying the blend overlap parameter -- --

Description

-- -- -- -- -- --
--   +-----------------------------------+-----------------------------------+
--   | Overlap Mode                      | Weighting Equations               |
--   +===================================+===================================+
--   | @VK_BLEND_OVERLAP_UNCORRELATED_EX | \\[                               |
--   | T@                                |                 \\begin{aligned}  |
--   |                                   |                                   |
--   |                                   |                p_0(A_s,A_d) & = A |
--   |                                   | _sA_d \\\\                        |
--   |                                   |                                   |
--   |                                   |                p_1(A_s,A_d) & = A |
--   |                                   | _s(1-A_d) \\\\                    |
--   |                                   |                                   |
--   |                                   |                p_2(A_s,A_d) & = A |
--   |                                   | _d(1-A_s) \\\\                    |
--   |                                   |                                   |
--   |                                   |              \\end{aligned}\\]    |
--   +-----------------------------------+-----------------------------------+
--   | @VK_BLEND_OVERLAP_CONJOINT_EXT@   | \\[                               |
--   |                                   |                 \\begin{aligned}  |
--   |                                   |                                   |
--   |                                   |                p_0(A_s,A_d) & = m |
--   |                                   | in(A_s,A_d) \\\\                  |
--   |                                   |                                   |
--   |                                   |                p_1(A_s,A_d) & = m |
--   |                                   | ax(A_s-A_d,0) \\\\                |
--   |                                   |                                   |
--   |                                   |                p_2(A_s,A_d) & = m |
--   |                                   | ax(A_d-A_s,0) \\\\                |
--   |                                   |                                   |
--   |                                   |              \\end{aligned}\\]    |
--   +-----------------------------------+-----------------------------------+
--   | @VK_BLEND_OVERLAP_DISJOINT_EXT@   | \\[                               |
--   |                                   |                 \\begin{aligned}  |
--   |                                   |                                   |
--   |                                   |                p_0(A_s,A_d) & = m |
--   |                                   | ax(A_s+A_d-1,0) \\\\              |
--   |                                   |                                   |
--   |                                   |                p_1(A_s,A_d) & = m |
--   |                                   | in(A_s,1-A_d) \\\\                |
--   |                                   |                                   |
--   |                                   |                p_2(A_s,A_d) & = m |
--   |                                   | in(A_d,1-A_s) \\\\                |
--   |                                   |                                   |
--   |                                   |              \\end{aligned}\\]    |
--   +-----------------------------------+-----------------------------------+
--   
--   Advanced Blend Overlap Modes
--   
-- --

See Also

-- -- VkPipelineColorBlendAdvancedStateCreateInfoEXT newtype VkBlendOverlapEXT VkBlendOverlapEXT :: Int32 -> VkBlendOverlapEXT -- | VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - Structure -- describing advanced blending features that can be supported by an -- implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT structure -- describe the following features: -- --

Description

-- -- -- -- If the VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT -- structure is included in the pNext chain of -- VkPhysicalDeviceFeatures2, it is filled with values indicating -- whether each feature is supported. -- VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT can -- also be used in pNext chain of VkDeviceCreateInfo to -- enable the features. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT [$sel:vkSType:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT] :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT] :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT -> Ptr () [$sel:vkAdvancedBlendCoherentOperations:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT] :: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT -> VkBool32 -- | VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - Structure -- describing advanced blending limits that can be supported by an -- implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT structure -- describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -- structure is included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT :: VkStructureType -> Ptr () -> Word32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT [$sel:vkSType:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> Ptr () [$sel:vkAdvancedBlendMaxColorAttachments:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> Word32 [$sel:vkAdvancedBlendIndependentBlend:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32 [$sel:vkAdvancedBlendNonPremultipliedSrcColor:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32 [$sel:vkAdvancedBlendNonPremultipliedDstColor:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32 [$sel:vkAdvancedBlendCorrelatedOverlap:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32 [$sel:vkAdvancedBlendAllOperations:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT] :: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT -> VkBool32 -- | VkPipelineColorBlendAdvancedStateCreateInfoEXT - Structure specifying -- parameters that affect advanced blend operations -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBlendOverlapEXT, VkBool32, VkStructureType data VkPipelineColorBlendAdvancedStateCreateInfoEXT VkPipelineColorBlendAdvancedStateCreateInfoEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkBlendOverlapEXT -> VkPipelineColorBlendAdvancedStateCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> Ptr () -- | srcPremultiplied specifies whether the source color of the -- blend operation is treated as premultiplied. [$sel:vkSrcPremultiplied:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> VkBool32 -- | dstPremultiplied specifies whether the destination color of -- the blend operation is treated as premultiplied. [$sel:vkDstPremultiplied:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> VkBool32 -- | blendOverlap is a VkBlendOverlapEXT value specifying -- how the source and destination sample’s coverage is correlated. [$sel:vkBlendOverlap:VkPipelineColorBlendAdvancedStateCreateInfoEXT] :: VkPipelineColorBlendAdvancedStateCreateInfoEXT -> VkBlendOverlapEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPipelineColorBlendAdvancedStateCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkBlendOverlapEXT module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview -- | VK_DEPENDENCY_VIEW_LOCAL_BIT specifies that a subpass has -- more than one view. -- | VkPhysicalDeviceMultiviewFeatures - Structure describing multiview -- features that can be supported by an implementation -- --

Members

-- -- The members of the VkPhysicalDeviceMultiviewFeatures -- structure describe the following features: -- --

Description

-- -- -- -- -- -- If the VkPhysicalDeviceMultiviewFeatures structure is -- included in the pNext chain of -- VkPhysicalDeviceFeatures2, it is filled with values indicating -- whether each feature is supported. -- VkPhysicalDeviceMultiviewFeatures can also be used in -- the pNext chain of VkDeviceCreateInfo to enable the -- features. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeatures :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceMultiviewFeatures [$sel:vkSType:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> Ptr () [$sel:vkMultiview:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> VkBool32 [$sel:vkMultiviewGeometryShader:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> VkBool32 [$sel:vkMultiviewTessellationShader:VkPhysicalDeviceMultiviewFeatures] :: VkPhysicalDeviceMultiviewFeatures -> VkBool32 -- | VkPhysicalDeviceMultiviewProperties - Structure describing multiview -- limits that can be supported by an implementation -- --

Members

-- -- The members of the VkPhysicalDeviceMultiviewProperties -- structure describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- If the VkPhysicalDeviceMultiviewProperties structure is -- included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

See Also

-- -- VkStructureType data VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewProperties :: VkStructureType -> Ptr () -> Word32 -> Word32 -> VkPhysicalDeviceMultiviewProperties [$sel:vkSType:VkPhysicalDeviceMultiviewProperties] :: VkPhysicalDeviceMultiviewProperties -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceMultiviewProperties] :: VkPhysicalDeviceMultiviewProperties -> Ptr () [$sel:vkMaxMultiviewViewCount:VkPhysicalDeviceMultiviewProperties] :: VkPhysicalDeviceMultiviewProperties -> Word32 [$sel:vkMaxMultiviewInstanceIndex:VkPhysicalDeviceMultiviewProperties] :: VkPhysicalDeviceMultiviewProperties -> Word32 -- | VkRenderPassMultiviewCreateInfo - Structure containing multiview info -- for all subpasses -- --

Description

-- -- When a subpass uses a non-zero view mask, multiview -- functionality is considered to be enabled. Multiview is all-or-nothing -- for a render pass - that is, either all subpasses must have a -- non-zero view mask (though some subpasses may have only one -- view) or all must be zero. Multiview causes all drawing and -- clear commands in the subpass to behave as if they were broadcast to -- each view, where a view is represented by one layer of the framebuffer -- attachments. All draws and clears are broadcast to each view -- index whose bit is set in the view mask. The view index is -- provided in the ViewIndex shader input variable, and color, -- depth/stencil, and input attachments all read/write the layer of the -- framebuffer corresponding to the view index. -- -- If the view mask is zero for all subpasses, multiview is considered to -- be disabled and all drawing commands execute normally, without this -- additional broadcasting. -- -- Some implementations may not support multiview in conjunction -- with geometry shaders or tessellation shaders. -- -- When multiview is enabled, the VK_DEPENDENCY_VIEW_LOCAL_BIT -- bit in a dependency can be used to express a view-local -- dependency, meaning that each view in the destination subpass depends -- on a single view in the source subpass. Unlike pipeline barriers, a -- subpass dependency can potentially have a different view mask -- in the source subpass and the destination subpass. If the dependency -- is view-local, then each view (dstView) in the destination subpass -- depends on the view dstView + pViewOffsets[dependency] in the source -- subpass. If there is not such a view in the source subpass, then this -- dependency does not affect that view in the destination subpass. If -- the dependency is not view-local, then all views in the destination -- subpass depend on all views in the source subpass, and the view offset -- is ignored. A non-zero view offset is not allowed in a -- self-dependency. -- -- The elements of pCorrelationMasks are a set of masks of views -- indicating that views in the same mask may exhibit spatial -- coherency between the views, making it more efficient to render them -- concurrently. Correlation masks must not have a functional -- effect on the results of the multiview rendering. -- -- When multiview is enabled, at the beginning of each subpass all -- non-render pass state is undefined. In particular, each time -- vkCmdBeginRenderPass or vkCmdNextSubpass is called the -- graphics pipeline must be bound, any relevant descriptor sets -- or vertex/index buffers must be bound, and any relevant dynamic -- state or push constants must be set before they are used. -- -- A multiview subpass can declare that its shaders will write -- per-view attributes for all views in a single invocation, by setting -- the VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX bit in -- the subpass description. The only supported per-view attributes are -- position and viewport mask, and per-view position and viewport masks -- are written to output array variables decorated with -- PositionPerViewNV and ViewportMaskPerViewNV, -- respectively. If {html_spec_relative}#VK_NV_viewport_array2 -- is not supported and enabled, ViewportMaskPerViewNV -- must not be used. Values written to elements of -- PositionPerViewNV and ViewportMaskPerViewNV -- must not depend on the ViewIndex. The shader -- must also write to an output variable decorated with -- Position, and the value written to Position -- must equal the value written to -- PositionPerViewNV[ViewIndex]. Similarly, if -- ViewportMaskPerViewNV is written to then the shader -- must also write to an output variable decorated with -- ViewportMaskNV, and the value written to -- ViewportMaskNV must equal the value written to -- ViewportMaskPerViewNV[ViewIndex]. Implementations -- will either use values taken from Position and -- ViewportMaskNV and invoke the shader once for each view, or -- will use values taken from PositionPerViewNV and -- ViewportMaskPerViewNV and invoke the shader fewer times. The -- values written to Position and ViewportMaskNV -- must not depend on the values written to -- PositionPerViewNV and ViewportMaskPerViewNV, or vice -- versa (to allow compilers to eliminate the unused outputs). All -- attributes that do not have *PerViewNV counterparts must not -- depend on ViewIndex. -- -- Per-view attributes are all-or-nothing for a subpass. That is, all -- pipelines compiled against a subpass that includes the -- VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX bit -- must write per-view attributes to the *PerViewNV[] shader -- outputs, in addition to the non-per-view (e.g. Position) -- outputs. Pipelines compiled against a subpass that does not include -- this bit must not include the *PerViewNV[] outputs in their -- interfaces. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType data VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> Word32 -> Ptr Int32 -> Word32 -> Ptr Word32 -> VkRenderPassMultiviewCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Ptr () -- | subpassCount is zero or is the number of subpasses in the -- render pass. [$sel:vkSubpassCount:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Word32 -- | pViewMasks points to an array of subpassCount number -- of view masks, where each mask is a bitfield of view indices -- describing which views rendering is broadcast to in each subpass, when -- multiview is enabled. If subpassCount is zero, each view mask -- is treated as zero. [$sel:vkPViewMasks:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Ptr Word32 -- | dependencyCount is zero or the number of dependencies in the -- render pass. [$sel:vkDependencyCount:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Word32 -- | pViewOffsets points to an array of dependencyCount -- view offsets, one for each dependency. If dependencyCount is -- zero, each dependency’s view offset is treated as zero. Each view -- offset controls which views in the source subpass the views in the -- destination subpass depend on. [$sel:vkPViewOffsets:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Ptr Int32 -- | correlationMaskCount is zero or a number of correlation -- masks. [$sel:vkCorrelationMaskCount:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Word32 -- | pCorrelationMasks is an array of view masks indicating sets -- of views that may be more efficient to render concurrently. [$sel:vkPCorrelationMasks:VkRenderPassMultiviewCreateInfo] :: VkRenderPassMultiviewCreateInfo -> Ptr Word32 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkRenderPassMultiviewCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkRenderPassMultiviewCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewProperties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewProperties instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkRenderPassMultiviewCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewProperties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewFeatures module Graphics.Vulkan.Extensions.VK_KHR_multiview type VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures type VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties type VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group -- | VkPeerMemoryFeatureFlagBits - Bitmask specifying supported peer memory -- features -- --

Description

-- -- -- -- -- -- Note -- -- The peer memory features of a memory heap also apply to any accesses -- that may be performed during image layout transitions. -- -- VK_PEER_MEMORY_FEATURE_COPY_DST_BIT must be supported -- for all host local heaps and for at least one device local heap. -- -- If a device does not support a peer memory feature, it is still valid -- to use a resource that includes both local and peer memory bindings -- with the corresponding access type as long as only the local bindings -- are actually accessed. For example, an application doing split-frame -- rendering would use framebuffer attachments that include both local -- and peer memory bindings, but would scissor the rendering to only -- update local memory. -- --

See Also

-- -- VkPeerMemoryFeatureFlags newtype VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBits :: VkFlags -> VkPeerMemoryFeatureFlagBits -- | VkMemoryAllocateFlagBits - Bitmask specifying flags for a device -- memory allocation -- --

See Also

-- -- VkMemoryAllocateFlags newtype VkMemoryAllocateFlagBits VkMemoryAllocateFlagBits :: VkFlags -> VkMemoryAllocateFlagBits -- | VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT specifies that memory will -- be allocated for the devices in -- VkMemoryAllocateFlagsInfo::deviceMask. -- | VK_DEPENDENCY_DEVICE_GROUP_BIT specifies that dependencies -- are non-device-local dependency. -- | vkGetDeviceGroupPeerMemoryFeatures - Query supported peer memory -- features of a device -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDevice, VkPeerMemoryFeatureFlags vkGetDeviceGroupPeerMemoryFeatures :: ("device" ::: VkDevice) -> ("heapIndex" ::: Word32) -> ("localDeviceIndex" ::: Word32) -> ("remoteDeviceIndex" ::: Word32) -> ("pPeerMemoryFeatures" ::: Ptr VkPeerMemoryFeatureFlags) -> IO () -- | vkCmdSetDeviceMask - Modify device mask of a command buffer -- --

Parameters

-- -- -- -- -- --

Description

-- -- deviceMask is used to filter out subsequent commands from -- executing on all physical devices whose bit indices are not set in the -- mask. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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         |                 |
--   |                 |                 | Transfer        |                 |
--   +-----------------+-----------------+-----------------+-----------------+
--   
-- --

See Also

-- -- VkCommandBuffer vkCmdSetDeviceMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("deviceMask" ::: Word32) -> IO () -- | vkCmdDispatchBase - Dispatch compute work items -- --

Parameters

-- -- -- -- -- --

Description

-- -- When the command is executed, a global workgroup consisting of -- groupCountX × groupCountY × groupCountZ local workgroups is assembled, -- with WorkgroupId values ranging from [baseGroup, baseGroup + -- groupCount) in each component. vkCmdDispatch is equivalent to -- vkCmdDispatchBase(0,0,0,groupCountX,groupCountY,groupCountZ). -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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         |                 |
--   | Secondary       |                 |                 |                 |
--   +-----------------+-----------------+-----------------+-----------------+
--   
-- --

See Also

-- -- VkCommandBuffer 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 -- --

Description

-- -- If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is not set, the number -- of instances allocated depends on whether -- VK_MEMORY_HEAP_MULTI_INSTANCE_BIT is set in the memory heap. -- If VK_MEMORY_HEAP_MULTI_INSTANCE_BIT is set, then memory is -- allocated for every physical device in the logical device (as if -- deviceMask has bits set for all device indices). If -- VK_MEMORY_HEAP_MULTI_INSTANCE_BIT is not set, then a single -- instance of memory is allocated (as if deviceMask is set to -- one). -- -- On some implementations, allocations from a multi-instance heap -- may consume memory on all physical devices even if the -- deviceMask excludes some devices. If -- VkPhysicalDeviceGroupProperties::subsetAllocation is -- VK_TRUE, then memory is only consumed for the devices in the -- device mask. -- -- Note -- -- In practice, most allocations on a multi-instance heap will be -- allocated across all physical devices. Unicast allocation support is -- an optional optimization for a minority of allocations. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkMemoryAllocateFlags, VkStructureType data VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfo :: VkStructureType -> Ptr () -> VkMemoryAllocateFlags -> Word32 -> VkMemoryAllocateFlagsInfo -- | sType is the type of this structure. [$sel:vkSType:VkMemoryAllocateFlagsInfo] :: VkMemoryAllocateFlagsInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMemoryAllocateFlagsInfo] :: VkMemoryAllocateFlagsInfo -> Ptr () -- | flags is a bitmask of VkMemoryAllocateFlagBits -- controlling the allocation. [$sel:vkFlags:VkMemoryAllocateFlagsInfo] :: VkMemoryAllocateFlagsInfo -> VkMemoryAllocateFlags -- | deviceMask is a mask of physical devices in the logical -- device, indicating that memory must be allocated on each device -- in the mask, if VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set in -- flags. [$sel:vkDeviceMask:VkMemoryAllocateFlagsInfo] :: VkMemoryAllocateFlagsInfo -> Word32 -- | VkDeviceGroupRenderPassBeginInfo - Set the initial device mask and -- render areas for a render pass instance -- --

Description

-- -- The deviceMask serves several purposes. It is an upper bound -- on the set of physical devices that can be used during the -- render pass instance, and the initial device mask when the render pass -- instance begins. Render pass attachment load, store, and resolve -- operations only apply to physical devices included in the device mask. -- Subpass dependencies only apply to the physical devices in the device -- mask. -- -- If deviceRenderAreaCount is not zero, then the elements of -- pDeviceRenderAreas override the value of -- VkRenderPassBeginInfo::renderArea, and provide a -- render area specific to each physical device. These render areas serve -- the same purpose as VkRenderPassBeginInfo::renderArea, -- including controlling the region of attachments that are cleared by -- VK_ATTACHMENT_LOAD_OP_CLEAR and that are resolved into -- resolve attachments. -- -- If this structure is not present, the render pass instance’s device -- mask is the value of -- VkDeviceGroupCommandBufferBeginInfo::deviceMask. If -- this structure is not present or if deviceRenderAreaCount is -- zero, VkRenderPassBeginInfo::renderArea is used for -- all physical devices. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkRect2D, VkStructureType data VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfo :: VkStructureType -> Ptr () -> Word32 -> Word32 -> Ptr VkRect2D -> VkDeviceGroupRenderPassBeginInfo -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> Ptr () -- | deviceMask is the device mask for the render pass instance. [$sel:vkDeviceMask:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> Word32 -- | deviceRenderAreaCount is the number of elements in the -- pDeviceRenderAreas array. [$sel:vkDeviceRenderAreaCount:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> Word32 -- | pDeviceRenderAreas is an array of structures of type -- VkRect2D defining the render area for each physical device. [$sel:vkPDeviceRenderAreas:VkDeviceGroupRenderPassBeginInfo] :: VkDeviceGroupRenderPassBeginInfo -> Ptr VkRect2D -- | VkDeviceGroupCommandBufferBeginInfo - Set the initial device mask for -- a command buffer -- --

Description

-- -- The initial device mask also acts as an upper bound on the set of -- devices that can ever be in the device mask in the command -- buffer. -- -- If this structure is not present, the initial value of a command -- buffer’s device mask is set to include all physical devices in the -- logical device when the command buffer begins recording. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkStructureType data VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfo :: VkStructureType -> Ptr () -> Word32 -> VkDeviceGroupCommandBufferBeginInfo -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGroupCommandBufferBeginInfo] :: VkDeviceGroupCommandBufferBeginInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGroupCommandBufferBeginInfo] :: VkDeviceGroupCommandBufferBeginInfo -> Ptr () -- | deviceMask is the initial value of the command buffer’s -- device mask. [$sel:vkDeviceMask:VkDeviceGroupCommandBufferBeginInfo] :: VkDeviceGroupCommandBufferBeginInfo -> Word32 -- | VkDeviceGroupSubmitInfo - Structure indicating which physical devices -- execute semaphore operations and command buffers -- --

Description

-- -- If this structure is not present, semaphore operations and command -- buffers execute on device index zero. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType data VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfo :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> Word32 -> Ptr Word32 -> Word32 -> Ptr Word32 -> VkDeviceGroupSubmitInfo -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Ptr () -- | waitSemaphoreCount is the number of elements in the -- pWaitSemaphoreDeviceIndices array. [$sel:vkWaitSemaphoreCount:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Word32 -- | pWaitSemaphoreDeviceIndices is an array of device indices -- indicating which physical device executes the semaphore wait operation -- in the corresponding element of -- VkSubmitInfo::pWaitSemaphores. [$sel:vkPWaitSemaphoreDeviceIndices:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Ptr Word32 -- | commandBufferCount is the number of elements in the -- pCommandBufferDeviceMasks array. [$sel:vkCommandBufferCount:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Word32 -- | pCommandBufferDeviceMasks is an array of device masks -- indicating which physical devices execute the command buffer in the -- corresponding element of -- VkSubmitInfo::pCommandBuffers. A physical device -- executes the command buffer if the corresponding bit is set in the -- mask. [$sel:vkPCommandBufferDeviceMasks:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Ptr Word32 -- | signalSemaphoreCount is the number of elements in the -- pSignalSemaphoreDeviceIndices array. [$sel:vkSignalSemaphoreCount:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Word32 -- | pSignalSemaphoreDeviceIndices is an array of device indices -- indicating which physical device executes the semaphore signal -- operation in the corresponding element of -- VkSubmitInfo::pSignalSemaphores. [$sel:vkPSignalSemaphoreDeviceIndices:VkDeviceGroupSubmitInfo] :: VkDeviceGroupSubmitInfo -> Ptr Word32 -- | VkDeviceGroupBindSparseInfo - Structure indicating which instances are -- bound -- --

Description

-- -- These device indices apply to all buffer and image memory binds -- included in the batch that points to this structure. The semaphore -- waits and signals for the batch are executed only by the physical -- device specified by the resourceDeviceIndex. -- -- If this structure is not present, resourceDeviceIndex and -- memoryDeviceIndex are assumed to be zero. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkStructureType data VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfo :: VkStructureType -> Ptr () -> Word32 -> Word32 -> VkDeviceGroupBindSparseInfo -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGroupBindSparseInfo] :: VkDeviceGroupBindSparseInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGroupBindSparseInfo] :: VkDeviceGroupBindSparseInfo -> Ptr () -- | resourceDeviceIndex is a device index indicating which -- instance of the resource is bound. [$sel:vkResourceDeviceIndex:VkDeviceGroupBindSparseInfo] :: VkDeviceGroupBindSparseInfo -> Word32 -- | memoryDeviceIndex is a device index indicating which instance -- of the memory the resource instance is bound to. [$sel:vkMemoryDeviceIndex:VkDeviceGroupBindSparseInfo] :: VkDeviceGroupBindSparseInfo -> Word32 -- | VkPeerMemoryFeatureFlags - Bitmask of VkPeerMemoryFeatureFlagBits -- --

Description

-- -- VkPeerMemoryFeatureFlags is a bitmask type for setting a mask -- of zero or more VkPeerMemoryFeatureFlagBits. -- --

See Also

-- -- VkPeerMemoryFeatureFlagBits, -- vkGetDeviceGroupPeerMemoryFeatures, -- vkGetDeviceGroupPeerMemoryFeaturesKHR type VkPeerMemoryFeatureFlags = VkPeerMemoryFeatureFlagBits -- | VkMemoryAllocateFlags - Bitmask of VkMemoryAllocateFlagBits -- --

Description

-- -- VkMemoryAllocateFlags is a bitmask type for setting a mask of -- zero or more VkMemoryAllocateFlagBits. -- --

See Also

-- -- VkMemoryAllocateFlagBits, VkMemoryAllocateFlagsInfo type VkMemoryAllocateFlags = VkMemoryAllocateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagsInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagsInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupBindSparseInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupBindSparseInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupSubmitInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupSubmitInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupCommandBufferBeginInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupCommandBufferBeginInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagsInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupBindSparseInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupSubmitInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupCommandBufferBeginInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkDeviceGroupRenderPassBeginInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkMemoryAllocateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_device_group.VkPeerMemoryFeatureFlagBits module Graphics.Vulkan.Extensions.VK_KHR_device_group vkGetDeviceGroupPeerMemoryFeaturesKHR :: ("device" ::: VkDevice) -> ("heapIndex" ::: Word32) -> ("localDeviceIndex" ::: Word32) -> ("remoteDeviceIndex" ::: Word32) -> ("pPeerMemoryFeatures" ::: Ptr VkPeerMemoryFeatureFlags) -> IO () vkCmdSetDeviceMaskKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("deviceMask" ::: Word32) -> IO () vkCmdDispatchBaseKHR :: ("commandBuffer" ::: VkCommandBuffer) -> ("baseGroupX" ::: Word32) -> ("baseGroupY" ::: Word32) -> ("baseGroupZ" ::: Word32) -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO () type VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBits type VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBits type VkPeerMemoryFeatureFlagsKHR = VkPeerMemoryFeatureFlags type VkMemoryAllocateFlagsKHR = VkMemoryAllocateFlags type VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo type VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo type VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo type VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo type VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo type VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo type VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo module Graphics.Vulkan.Core10.CommandBuffer -- | VkCommandBufferLevel - Enumerant specifying a command buffer level -- --

See Also

-- -- VkCommandBufferAllocateInfo newtype VkCommandBufferLevel VkCommandBufferLevel :: Int32 -> VkCommandBufferLevel -- | VK_COMMAND_BUFFER_LEVEL_PRIMARY specifies a primary command -- buffer. -- | VK_COMMAND_BUFFER_LEVEL_SECONDARY specifies a secondary -- command buffer. -- | VkQueryControlFlagBits - Bitmask specifying constraints on a query -- --

See Also

-- -- VkQueryControlFlags newtype VkQueryControlFlagBits VkQueryControlFlagBits :: VkFlags -> VkQueryControlFlagBits -- | VK_QUERY_CONTROL_PRECISE_BIT specifies the precision of -- occlusion queries. -- | VkCommandBufferResetFlagBits - Bitmask controlling behavior of a -- command buffer reset -- --

See Also

-- -- VkCommandBufferResetFlags newtype VkCommandBufferResetFlagBits VkCommandBufferResetFlagBits :: VkFlags -> VkCommandBufferResetFlagBits -- | 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 initial state. -- | VkCommandBufferUsageFlagBits - Bitmask specifying usage behavior for -- command buffer -- --

See Also

-- -- VkCommandBufferUsageFlags newtype VkCommandBufferUsageFlagBits VkCommandBufferUsageFlagBits :: VkFlags -> VkCommandBufferUsageFlagBits -- | 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. -- | 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. -- | 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. -- | vkAllocateCommandBuffers - Allocate command buffers from an existing -- command pool -- --

Parameters

-- -- -- -- -- --

Description

-- -- vkAllocateCommandBuffers can be used to create -- multiple command buffers. If the creation of any of those command -- buffers fails, the implementation must destroy all successfully -- created command buffer objects from this command, set all entries of -- the pCommandBuffers array to NULL and return the -- error. -- -- When command buffers are first allocated, they are in the initial -- state. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkCommandBuffer, VkCommandBufferAllocateInfo, -- VkDevice vkAllocateCommandBuffers :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkCommandBufferAllocateInfo) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO VkResult -- | vkFreeCommandBuffers - Free command buffers -- --

Parameters

-- -- -- -- -- --

Description

-- -- Any primary command buffer that is in the recording or executable -- state and has any element of pCommandBuffers recorded -- into it, becomes invalid. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

See Also

-- -- VkCommandBuffer, VkCommandPool, VkDevice vkFreeCommandBuffers :: ("device" ::: VkDevice) -> ("commandPool" ::: VkCommandPool) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO () -- | vkBeginCommandBuffer - Start recording a command buffer -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkCommandBuffer, VkCommandBufferBeginInfo vkBeginCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("pBeginInfo" ::: Ptr VkCommandBufferBeginInfo) -> IO VkResult -- | vkEndCommandBuffer - Finish recording a command buffer -- --

Parameters

-- -- -- --

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 recording state, -- and is moved to the executable state. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

Host Synchronization

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkCommandBuffer vkEndCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> IO VkResult -- | vkResetCommandBuffer - Reset a command buffer to the initial state -- --

Parameters

-- -- -- -- -- --

Description

-- -- Any primary command buffer that is in the recording or executable -- state and has commandBuffer recorded into it, becomes -- invalid. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkCommandBuffer, VkCommandBufferResetFlags vkResetCommandBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("flags" ::: VkCommandBufferResetFlags) -> IO VkResult -- | VkCommandBufferAllocateInfo - Structure specifying the allocation -- parameters for command buffer object -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkCommandBufferLevel, VkCommandPool, -- VkStructureType, vkAllocateCommandBuffers data VkCommandBufferAllocateInfo VkCommandBufferAllocateInfo :: VkStructureType -> Ptr () -> VkCommandPool -> VkCommandBufferLevel -> Word32 -> VkCommandBufferAllocateInfo -- | sType is the type of this structure. [$sel:vkSType:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> Ptr () -- | commandPool is the command pool from which the command -- buffers are allocated. [$sel:vkCommandPool:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkCommandPool -- | level is an VkCommandBufferLevel value specifying the -- command buffer level. [$sel:vkLevel:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> VkCommandBufferLevel -- | commandBufferCount is the number of command buffers to -- allocate from the pool. [$sel:vkCommandBufferCount:VkCommandBufferAllocateInfo] :: VkCommandBufferAllocateInfo -> Word32 -- | VkCommandBufferInheritanceInfo - Structure specifying command buffer -- inheritance info -- --

Members

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkCommandBufferBeginInfo, -- VkFramebuffer, VkQueryControlFlags, -- VkQueryPipelineStatisticFlags, VkRenderPass, -- VkStructureType data VkCommandBufferInheritanceInfo VkCommandBufferInheritanceInfo :: VkStructureType -> Ptr () -> VkRenderPass -> Word32 -> VkFramebuffer -> VkBool32 -> VkQueryControlFlags -> VkQueryPipelineStatisticFlags -> VkCommandBufferInheritanceInfo [$sel:vkSType:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkStructureType [$sel:vkPNext:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> Ptr () [$sel:vkRenderPass:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkRenderPass [$sel:vkSubpass:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> Word32 [$sel:vkFramebuffer:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkFramebuffer [$sel:vkOcclusionQueryEnable:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkBool32 [$sel:vkQueryFlags:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkQueryControlFlags [$sel:vkPipelineStatistics:VkCommandBufferInheritanceInfo] :: VkCommandBufferInheritanceInfo -> VkQueryPipelineStatisticFlags -- | VkCommandBufferBeginInfo - Structure specifying a command buffer begin -- operation -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkCommandBufferInheritanceInfo, -- VkCommandBufferUsageFlags, VkStructureType, -- vkBeginCommandBuffer data VkCommandBufferBeginInfo VkCommandBufferBeginInfo :: VkStructureType -> Ptr () -> VkCommandBufferUsageFlags -> Ptr VkCommandBufferInheritanceInfo -> VkCommandBufferBeginInfo -- | sType is the type of this structure. [$sel:vkSType:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> Ptr () -- | flags is a bitmask of VkCommandBufferUsageFlagBits -- specifying usage behavior for the command buffer. [$sel:vkFlags:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> VkCommandBufferUsageFlags -- | pInheritanceInfo is a pointer to a -- VkCommandBufferInheritanceInfo structure, which is used if -- commandBuffer is a secondary command buffer. If this is a -- primary command buffer, then this value is ignored. [$sel:vkPInheritanceInfo:VkCommandBufferBeginInfo] :: VkCommandBufferBeginInfo -> Ptr VkCommandBufferInheritanceInfo -- | VkQueryControlFlags - Bitmask of VkQueryControlFlagBits -- --

Description

-- -- VkQueryControlFlags is a bitmask type for setting a mask of -- zero or more VkQueryControlFlagBits. -- --

See Also

-- -- VkCommandBufferInheritanceInfo, VkQueryControlFlagBits, -- vkCmdBeginQuery type VkQueryControlFlags = VkQueryControlFlagBits -- | VkCommandBufferResetFlags - Bitmask of VkCommandBufferResetFlagBits -- --

Description

-- -- VkCommandBufferResetFlags is a bitmask type for setting a -- mask of zero or more VkCommandBufferResetFlagBits. -- --

See Also

-- -- VkCommandBufferResetFlagBits, vkResetCommandBuffer type VkCommandBufferResetFlags = VkCommandBufferResetFlagBits -- | VkCommandBufferUsageFlags - Bitmask of VkCommandBufferUsageFlagBits -- --

Description

-- -- VkCommandBufferUsageFlags is a bitmask type for setting a -- mask of zero or more VkCommandBufferUsageFlagBits. -- --

See Also

-- -- VkCommandBufferBeginInfo, VkCommandBufferUsageFlagBits type VkCommandBufferUsageFlags = VkCommandBufferUsageFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferBeginInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferBeginInfo instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferAllocateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferAllocateInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferBeginInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferInheritanceInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferAllocateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferUsageFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferResetFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBuffer.VkQueryControlFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBuffer.VkCommandBufferLevel module Graphics.Vulkan.Core10.DescriptorSet -- | VkDescriptorType - Specifies the type of a descriptor in a descriptor -- set -- --

Description

-- -- -- -- -- -- 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: -- -- -- --

See Also

-- -- VkDescriptorPoolSize, VkDescriptorSetLayoutBinding, -- VkDescriptorUpdateTemplateEntry, VkWriteDescriptorSet newtype VkDescriptorType VkDescriptorType :: Int32 -> VkDescriptorType -- | VkDescriptorSetLayoutCreateFlagBits - Bitmask specifying descriptor -- set layout properties -- --

See Also

-- -- VkDescriptorSetLayoutCreateFlags newtype VkDescriptorSetLayoutCreateFlagBits VkDescriptorSetLayoutCreateFlagBits :: VkFlags -> VkDescriptorSetLayoutCreateFlagBits -- | VkDescriptorPoolCreateFlagBits - Bitmask specifying certain supported -- operations on a descriptor pool -- --

See Also

-- -- VkDescriptorPoolCreateFlags newtype VkDescriptorPoolCreateFlagBits VkDescriptorPoolCreateFlagBits :: VkFlags -> VkDescriptorPoolCreateFlagBits -- | 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. -- | VkDescriptorPoolResetFlags - Reserved for future use -- --

Description

-- -- VkDescriptorPoolResetFlags is a bitmask type for setting a -- mask, but is currently reserved for future use. -- --

See Also

-- -- vkResetDescriptorPool newtype VkDescriptorPoolResetFlags VkDescriptorPoolResetFlags :: VkFlags -> VkDescriptorPoolResetFlags -- | VkDescriptorSet - Opaque handle to a descriptor set object -- --

Description

-- --

See Also

-- -- VkCopyDescriptorSet, VkObjectTableDescriptorSetEntryNVX, -- VkWriteDescriptorSet, vkAllocateDescriptorSets, -- vkCmdBindDescriptorSets, vkFreeDescriptorSets, -- vkUpdateDescriptorSetWithTemplate, -- vkUpdateDescriptorSetWithTemplateKHR type VkDescriptorSet = Ptr VkDescriptorSet_T -- | VkDescriptorPool - Opaque handle to a descriptor pool object -- --

Description

-- --

See Also

-- -- VkDescriptorSetAllocateInfo, vkCreateDescriptorPool, -- vkDestroyDescriptorPool, vkFreeDescriptorSets, -- vkResetDescriptorPool type VkDescriptorPool = Ptr VkDescriptorPool_T -- | vkCreateDescriptorSetLayout - Create a new descriptor set layout -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDescriptorSetLayout, -- VkDescriptorSetLayoutCreateInfo, VkDevice vkCreateDescriptorSetLayout :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pSetLayout" ::: Ptr VkDescriptorSetLayout) -> IO VkResult -- | vkDestroyDescriptorSetLayout - Destroy a descriptor set layout object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDescriptorSetLayout, -- VkDevice vkDestroyDescriptorSetLayout :: ("device" ::: VkDevice) -> ("descriptorSetLayout" ::: VkDescriptorSetLayout) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkCreateDescriptorPool - Creates a descriptor pool object -- --

Parameters

-- -- -- -- -- --

Description

-- -- pAllocator controls host memory allocation as described in -- the Memory Allocation chapter. -- -- The created descriptor pool is returned in pDescriptorPool. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDescriptorPool, -- VkDescriptorPoolCreateInfo, VkDevice vkCreateDescriptorPool :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorPoolCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorPool" ::: Ptr VkDescriptorPool) -> IO VkResult -- | vkDestroyDescriptorPool - Destroy a descriptor pool object -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDescriptorPool, VkDevice vkDestroyDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkResetDescriptorPool - Resets a descriptor pool object -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDescriptorPool, VkDescriptorPoolResetFlags, -- VkDevice vkResetDescriptorPool :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("flags" ::: VkDescriptorPoolResetFlags) -> IO VkResult -- | vkAllocateDescriptorSets - Allocate one or more descriptor sets -- --

Parameters

-- -- -- -- -- --

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. For descriptor set bindings created with the -- VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT bit set, all -- descriptors in that binding that are dynamically used must have -- been populated before the descriptor set is consumed. For -- descriptor set bindings created without the -- VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT bit set, all -- descriptors in that binding 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 a call to vkAllocateDescriptorSets would cause the total -- number of descriptor sets allocated from the pool to exceed the value -- of VkDescriptorPoolCreateInfo::maxSets used to create -- pAllocateInfodescriptorPool, then the allocation -- may fail due to lack of space in the descriptor pool. -- Similarly, the allocation may fail due to lack of space if the -- call to vkAllocateDescriptorSets would cause the number of -- any given descriptor type to exceed the sum of all the -- descriptorCount members of each element of -- VkDescriptorPoolCreateInfo::pPoolSizes with a -- member equal to that type. If the allocation fails due to no -- more space in the descriptor pool, and not because of system or device -- memory exhaustion, then VK_ERROR_OUT_OF_POOL_MEMORY -- must be returned. -- -- vkAllocateDescriptorSets can be used to create -- multiple descriptor sets. If the creation of any of those descriptor -- sets fails, then the implementation must destroy all -- successfully created descriptor set objects from this command, set all -- entries of the pDescriptorSets array to VK_NULL_HANDLE -- and return the error. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDescriptorSet, VkDescriptorSetAllocateInfo, -- VkDevice vkAllocateDescriptorSets :: ("device" ::: VkDevice) -> ("pAllocateInfo" ::: Ptr VkDescriptorSetAllocateInfo) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult -- | vkFreeDescriptorSets - Free one or more descriptor sets -- --

Parameters

-- -- -- -- -- --

Description

-- -- After a successful call to vkFreeDescriptorSets, all -- descriptor sets in pDescriptorSets are invalid. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDescriptorPool, VkDescriptorSet, VkDevice vkFreeDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorPool" ::: VkDescriptorPool) -> ("descriptorSetCount" ::: Word32) -> ("pDescriptorSets" ::: Ptr VkDescriptorSet) -> IO VkResult -- | vkUpdateDescriptorSets - Update the contents of a descriptor set -- object -- --

Parameters

-- -- -- -- -- --

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 recording or executable state, -- and any of the descriptor bindings that are updated were not created -- with the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT or -- VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT -- bits set, that command buffer becomes invalid. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

See Also

-- -- VkCopyDescriptorSet, VkDevice, -- VkWriteDescriptorSet vkUpdateDescriptorSets :: ("device" ::: VkDevice) -> ("descriptorWriteCount" ::: Word32) -> ("pDescriptorWrites" ::: Ptr VkWriteDescriptorSet) -> ("descriptorCopyCount" ::: Word32) -> ("pDescriptorCopies" ::: Ptr VkCopyDescriptorSet) -> IO () -- | VkDescriptorBufferInfo - Structure specifying descriptor buffer info -- --

Description

-- -- Note -- -- When setting range to VK_WHOLE_SIZE, the effective -- range must not be larger than the maximum range for the -- descriptor type (maxUniformBufferRange or -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBuffer, VkDeviceSize, VkWriteDescriptorSet data VkDescriptorBufferInfo VkDescriptorBufferInfo :: VkBuffer -> VkDeviceSize -> VkDeviceSize -> VkDescriptorBufferInfo -- | buffer is the buffer resource. [$sel:vkBuffer:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkBuffer -- | offset is the offset in bytes from the start of -- buffer. Access to buffer memory via this descriptor uses -- addressing that is relative to this starting offset. [$sel:vkOffset:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkDeviceSize -- | range is the size in bytes that is used for this descriptor -- update, or VK_WHOLE_SIZE to use the range from -- offset to the end of the buffer. [$sel:vkRange:VkDescriptorBufferInfo] :: VkDescriptorBufferInfo -> VkDeviceSize -- | VkDescriptorImageInfo - Structure specifying descriptor image info -- --

Description

-- -- Members of VkDescriptorImageInfo that are not used in an -- update (as described above) are ignored. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkImageLayout, VkImageView, VkSampler, -- VkWriteDescriptorSet data VkDescriptorImageInfo VkDescriptorImageInfo :: VkSampler -> VkImageView -> VkImageLayout -> VkDescriptorImageInfo -- | sampler is a sampler handle, and is used in descriptor -- updates for types VK_DESCRIPTOR_TYPE_SAMPLER and -- VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER if the binding -- being updated does not use immutable samplers. [$sel:vkSampler:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkSampler -- | imageView is an image view handle, and is used in descriptor -- updates for types VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, -- VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, -- VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and -- VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT. [$sel:vkImageView:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkImageView -- | imageLayout is the layout that the image subresources -- accessible from imageView will be in at the time this -- descriptor is accessed. imageLayout is used in descriptor -- updates for types VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, -- VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, -- VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and -- VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT. [$sel:vkImageLayout:VkDescriptorImageInfo] :: VkDescriptorImageInfo -> VkImageLayout -- | VkWriteDescriptorSet - Structure specifying the parameters of a -- descriptor set write operation -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBufferView, VkDescriptorBufferInfo, -- VkDescriptorImageInfo, VkDescriptorSet, -- VkDescriptorType, VkStructureType, -- vkCmdPushDescriptorSetKHR, vkUpdateDescriptorSets data VkWriteDescriptorSet VkWriteDescriptorSet :: VkStructureType -> Ptr () -> VkDescriptorSet -> Word32 -> Word32 -> Word32 -> VkDescriptorType -> Ptr VkDescriptorImageInfo -> Ptr VkDescriptorBufferInfo -> Ptr VkBufferView -> VkWriteDescriptorSet -- | sType is the type of this structure. [$sel:vkSType:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr () -- | dstSet is the destination descriptor set to update. [$sel:vkDstSet:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkDescriptorSet -- | dstBinding is the descriptor binding within that set. [$sel:vkDstBinding:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32 -- | dstArrayElement is the starting element in that array. [$sel:vkDstArrayElement:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32 -- | descriptorCount is the number of descriptors to update (the -- number of elements in pImageInfo, pBufferInfo, or -- pTexelBufferView). [$sel:vkDescriptorCount:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Word32 -- | descriptorType is a VkDescriptorType specifying the -- type of each descriptor in pImageInfo, pBufferInfo, -- or pTexelBufferView, as described below. It must be -- the same type as that specified in -- VkDescriptorSetLayoutBinding for dstSet at -- dstBinding. The type of the descriptor also controls which -- array the descriptors are taken from. [$sel:vkDescriptorType:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> VkDescriptorType -- | pImageInfo points to an array of VkDescriptorImageInfo -- structures or is ignored, as described below. [$sel:vkPImageInfo:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkDescriptorImageInfo -- | pBufferInfo points to an array of -- VkDescriptorBufferInfo structures or is ignored, as described -- below. [$sel:vkPBufferInfo:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkDescriptorBufferInfo -- | pTexelBufferView points to an array of VkBufferView -- handles as described in the Buffer Views section or is ignored, -- as described below. [$sel:vkPTexelBufferView:VkWriteDescriptorSet] :: VkWriteDescriptorSet -> Ptr VkBufferView -- | VkCopyDescriptorSet - Structure specifying a copy descriptor set -- operation -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorSet, VkStructureType, -- vkUpdateDescriptorSets data VkCopyDescriptorSet VkCopyDescriptorSet :: VkStructureType -> Ptr () -> VkDescriptorSet -> Word32 -> Word32 -> VkDescriptorSet -> Word32 -> Word32 -> Word32 -> VkCopyDescriptorSet -- | sType is the type of this structure. [$sel:vkSType:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Ptr () -- | srcSet, srcBinding, and srcArrayElement are -- the source set, binding, and array element, respectively. [$sel:vkSrcSet:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkDescriptorSet [$sel:vkSrcBinding:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32 [$sel:vkSrcArrayElement:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32 -- | dstSet, dstBinding, and dstArrayElement are -- the destination set, binding, and array element, respectively. [$sel:vkDstSet:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> VkDescriptorSet [$sel:vkDstBinding:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32 [$sel:vkDstArrayElement:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32 -- | descriptorCount is the number of descriptors to copy from the -- source to destination. If descriptorCount is greater than the -- number of remaining array elements in the source or destination -- binding, those affect consecutive bindings in a manner similar to -- VkWriteDescriptorSet above. [$sel:vkDescriptorCount:VkCopyDescriptorSet] :: VkCopyDescriptorSet -> Word32 -- | VkDescriptorSetLayoutBinding - Structure specifying a descriptor set -- layout binding -- --

Members

-- -- -- -- -- --

Description

-- -- -- -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkDescriptorSetLayoutCreateInfo, VkDescriptorType, -- VkSampler, VkShaderStageFlags data VkDescriptorSetLayoutBinding VkDescriptorSetLayoutBinding :: Word32 -> VkDescriptorType -> Word32 -> VkShaderStageFlags -> Ptr VkSampler -> VkDescriptorSetLayoutBinding [$sel:vkBinding:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Word32 [$sel:vkDescriptorType:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> VkDescriptorType [$sel:vkDescriptorCount:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Word32 [$sel:vkStageFlags:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> VkShaderStageFlags [$sel:vkPImmutableSamplers:VkDescriptorSetLayoutBinding] :: VkDescriptorSetLayoutBinding -> Ptr VkSampler -- | VkDescriptorSetLayoutCreateInfo - Structure specifying parameters of a -- newly created descriptor set layout -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorSetLayoutBinding, -- VkDescriptorSetLayoutCreateFlags, VkStructureType, -- vkCreateDescriptorSetLayout, -- vkGetDescriptorSetLayoutSupport, -- vkGetDescriptorSetLayoutSupportKHR data VkDescriptorSetLayoutCreateInfo VkDescriptorSetLayoutCreateInfo :: VkStructureType -> Ptr () -> VkDescriptorSetLayoutCreateFlags -> Word32 -> Ptr VkDescriptorSetLayoutBinding -> VkDescriptorSetLayoutCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Ptr () -- | flags is a bitmask of -- VkDescriptorSetLayoutCreateFlagBits specifying options for -- descriptor set layout creation. [$sel:vkFlags:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> VkDescriptorSetLayoutCreateFlags -- | bindingCount is the number of elements in pBindings. [$sel:vkBindingCount:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Word32 -- | pBindings is a pointer to an array of -- VkDescriptorSetLayoutBinding structures. [$sel:vkPBindings:VkDescriptorSetLayoutCreateInfo] :: VkDescriptorSetLayoutCreateInfo -> Ptr VkDescriptorSetLayoutBinding -- | VkDescriptorPoolSize - Structure specifying descriptor pool size -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkDescriptorPoolCreateInfo, VkDescriptorType data VkDescriptorPoolSize VkDescriptorPoolSize :: VkDescriptorType -> Word32 -> VkDescriptorPoolSize -- | type is the type of descriptor. [$sel:vkType:VkDescriptorPoolSize] :: VkDescriptorPoolSize -> VkDescriptorType -- | descriptorCount is the number of descriptors of that type to -- allocate. [$sel:vkDescriptorCount:VkDescriptorPoolSize] :: VkDescriptorPoolSize -> Word32 -- | VkDescriptorPoolCreateInfo - Structure specifying parameters of a -- newly created descriptor pool -- --

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. -- -- If flags has the -- VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT bit set, -- descriptor pool creation may fail with the error -- VK_ERROR_FRAGMENTATION_EXT if the total number of descriptors -- across all pools (including this one) created with this bit set -- exceeds maxUpdateAfterBindDescriptorsInAllPools, or if -- fragmentation of the underlying hardware resources occurs. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorPoolCreateFlags, VkDescriptorPoolSize, -- VkStructureType, vkCreateDescriptorPool data VkDescriptorPoolCreateInfo VkDescriptorPoolCreateInfo :: VkStructureType -> Ptr () -> VkDescriptorPoolCreateFlags -> Word32 -> Word32 -> Ptr VkDescriptorPoolSize -> VkDescriptorPoolCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Ptr () -- | flags is a bitmask of VkDescriptorPoolCreateFlagBits -- specifying certain supported operations on the pool. [$sel:vkFlags:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> VkDescriptorPoolCreateFlags -- | maxSets is the maximum number of descriptor sets that -- can be allocated from the pool. [$sel:vkMaxSets:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Word32 -- | poolSizeCount is the number of elements in -- pPoolSizes. [$sel:vkPoolSizeCount:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Word32 -- | pPoolSizes is a pointer to an array of -- VkDescriptorPoolSize structures, each containing a descriptor -- type and number of descriptors of that type to be allocated in the -- pool. [$sel:vkPPoolSizes:VkDescriptorPoolCreateInfo] :: VkDescriptorPoolCreateInfo -> Ptr VkDescriptorPoolSize -- | VkDescriptorSetAllocateInfo - Structure specifying the allocation -- parameters for descriptor sets -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorPool, VkDescriptorSetLayout, -- VkStructureType, vkAllocateDescriptorSets data VkDescriptorSetAllocateInfo VkDescriptorSetAllocateInfo :: VkStructureType -> Ptr () -> VkDescriptorPool -> Word32 -> Ptr VkDescriptorSetLayout -> VkDescriptorSetAllocateInfo -- | sType is the type of this structure. [$sel:vkSType:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Ptr () -- | descriptorPool is the pool which the sets will be allocated -- from. [$sel:vkDescriptorPool:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> VkDescriptorPool -- | descriptorSetCount determines the number of descriptor sets -- to be allocated from the pool. [$sel:vkDescriptorSetCount:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Word32 -- | pSetLayouts is an array of descriptor set layouts, with each -- member specifying how the corresponding descriptor set is allocated. [$sel:vkPSetLayouts:VkDescriptorSetAllocateInfo] :: VkDescriptorSetAllocateInfo -> Ptr VkDescriptorSetLayout -- | VkDescriptorSetLayoutCreateFlags - Bitmask of -- VkDescriptorSetLayoutCreateFlagBits -- --

Description

-- -- VkDescriptorSetLayoutCreateFlags is a bitmask type for -- setting a mask of zero or more -- VkDescriptorSetLayoutCreateFlagBits. -- --

See Also

-- -- VkDescriptorSetLayoutCreateFlagBits, -- VkDescriptorSetLayoutCreateInfo type VkDescriptorSetLayoutCreateFlags = VkDescriptorSetLayoutCreateFlagBits -- | VkDescriptorPoolCreateFlags - Bitmask of -- VkDescriptorPoolCreateFlagBits -- --

Description

-- -- VkDescriptorPoolCreateFlags is a bitmask type for setting a -- mask of zero or more VkDescriptorPoolCreateFlagBits. -- --

See Also

-- -- VkDescriptorPoolCreateFlagBits, -- VkDescriptorPoolCreateInfo type VkDescriptorPoolCreateFlags = VkDescriptorPoolCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolSize instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolSize instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutBinding instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutBinding instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkCopyDescriptorSet instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkCopyDescriptorSet instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags instance Data.Bits.Bits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags instance GHC.Classes.Ord Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType instance GHC.Classes.Ord Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType instance GHC.Classes.Eq Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetAllocateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolSize instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutBinding instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkCopyDescriptorSet instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkWriteDescriptorSet instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorImageInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorBufferInfo instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags instance GHC.Read.Read Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolResetFlags instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorPoolCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorSetLayoutCreateFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType instance GHC.Read.Read Graphics.Vulkan.Core10.DescriptorSet.VkDescriptorType module Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing -- | VkDescriptorBindingFlagBitsEXT - Bitmask specifying descriptor set -- layout binding properties -- --

Description

-- -- -- -- -- -- 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

-- -- VkDescriptorBindingFlagsEXT newtype VkDescriptorBindingFlagBitsEXT VkDescriptorBindingFlagBitsEXT :: VkFlags -> VkDescriptorBindingFlagBitsEXT -- | -- VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT -- specifies that descriptor sets using this layout must be -- allocated from a descriptor pool created with the -- VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT bit set. -- Descriptor set layouts created with this bit set have alternate limits -- for the maximum number of descriptors per-stage and per-pipeline -- layout. The non-UpdateAfterBind limits only count descriptors in sets -- created without this flag. The UpdateAfterBind limits count all -- descriptors, but the limits may be higher than the -- non-UpdateAfterBind limits. -- | VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT specifies -- that descriptor sets allocated from this pool can include -- bindings with the -- VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT bit set. It -- is valid to allocate descriptor sets that have bindings that don’t set -- the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT bit from -- a pool that has -- VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT set. -- | VkPhysicalDeviceDescriptorIndexingFeaturesEXT - Structure describing -- descriptor indexing features that can be supported by an -- implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceDescriptorIndexingFeaturesEXT structure -- describe the following features: -- --

Description

-- -- -- -- -- -- If the VkPhysicalDeviceDescriptorIndexingFeaturesEXT -- structure is included in the pNext chain of -- VkPhysicalDeviceFeatures2KHR, it is filled with values -- indicating whether each feature is supported. -- VkPhysicalDeviceDescriptorIndexingFeaturesEXT can also -- be used in the pNext chain of VkDeviceCreateInfo to -- enable features. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceDescriptorIndexingFeaturesEXT VkPhysicalDeviceDescriptorIndexingFeaturesEXT :: VkStructureType -> Ptr () -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkBool32 -> VkPhysicalDeviceDescriptorIndexingFeaturesEXT [$sel:vkSType:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> Ptr () [$sel:vkShaderInputAttachmentArrayDynamicIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderUniformTexelBufferArrayDynamicIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderStorageTexelBufferArrayDynamicIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderUniformBufferArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderSampledImageArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderStorageBufferArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderStorageImageArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderInputAttachmentArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderUniformTexelBufferArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkShaderStorageTexelBufferArrayNonUniformIndexing:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingUniformBufferUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingSampledImageUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingStorageImageUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingStorageBufferUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingUniformTexelBufferUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingStorageTexelBufferUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingUpdateUnusedWhilePending:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingPartiallyBound:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkDescriptorBindingVariableDescriptorCount:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 [$sel:vkRuntimeDescriptorArray:VkPhysicalDeviceDescriptorIndexingFeaturesEXT] :: VkPhysicalDeviceDescriptorIndexingFeaturesEXT -> VkBool32 -- | VkPhysicalDeviceDescriptorIndexingPropertiesEXT - Structure describing -- descriptor indexing properties that can be supported by an -- implementation -- --

Members

-- -- The members of the -- VkPhysicalDeviceDescriptorIndexingPropertiesEXT structure -- describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- -- If the VkPhysicalDeviceDescriptorIndexingPropertiesEXT -- structure is included in the pNext chain of -- VkPhysicalDeviceProperties2KHR, it is filled with the -- implementation-dependent limits. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkBool32, VkStructureType data VkPhysicalDeviceDescriptorIndexingPropertiesEXT 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 [$sel:vkSType:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Ptr () [$sel:vkMaxUpdateAfterBindDescriptorsInAllPools:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkShaderUniformBufferArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32 [$sel:vkShaderSampledImageArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32 [$sel:vkShaderStorageBufferArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32 [$sel:vkShaderStorageImageArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32 [$sel:vkShaderInputAttachmentArrayNonUniformIndexingNative:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32 [$sel:vkRobustBufferAccessUpdateAfterBind:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32 [$sel:vkQuadDivergentImplicitLod:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> VkBool32 [$sel:vkMaxPerStageDescriptorUpdateAfterBindSamplers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxPerStageDescriptorUpdateAfterBindUniformBuffers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxPerStageDescriptorUpdateAfterBindStorageBuffers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxPerStageDescriptorUpdateAfterBindSampledImages:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxPerStageDescriptorUpdateAfterBindStorageImages:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxPerStageDescriptorUpdateAfterBindInputAttachments:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxPerStageUpdateAfterBindResources:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxDescriptorSetUpdateAfterBindSamplers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxDescriptorSetUpdateAfterBindUniformBuffers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxDescriptorSetUpdateAfterBindStorageBuffers:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxDescriptorSetUpdateAfterBindSampledImages:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxDescriptorSetUpdateAfterBindStorageImages:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 [$sel:vkMaxDescriptorSetUpdateAfterBindInputAttachments:VkPhysicalDeviceDescriptorIndexingPropertiesEXT] :: VkPhysicalDeviceDescriptorIndexingPropertiesEXT -> Word32 -- | VkDescriptorSetLayoutBindingFlagsCreateInfoEXT - Structure specifying -- creation flags for descriptor set layout bindings -- --

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 -- VkDescriptorSetLayoutCreateInfo::pBindings[i] uses the -- flags in pBindingFlags[i]. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorBindingFlagsEXT, VkStructureType data VkDescriptorSetLayoutBindingFlagsCreateInfoEXT VkDescriptorSetLayoutBindingFlagsCreateInfoEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr VkDescriptorBindingFlagsEXT -> VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT] :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT] :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -> Ptr () -- | bindingCount is zero or the number of elements in -- pBindingFlags. [$sel:vkBindingCount:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT] :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -> Word32 -- | pBindingFlags is a pointer to an array of -- VkDescriptorBindingFlagsEXT bitfields, one for each descriptor -- set layout binding. [$sel:vkPBindingFlags:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT] :: VkDescriptorSetLayoutBindingFlagsCreateInfoEXT -> Ptr VkDescriptorBindingFlagsEXT -- | VkDescriptorSetVariableDescriptorCountAllocateInfoEXT - Structure -- specifying additional allocation parameters for descriptor sets -- --

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 -- VkDescriptorSetAllocateInfo::pSetLayouts[i] does not -- include a variable count descriptor binding, then -- pDescriptorCounts[i] is ignored. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType data VkDescriptorSetVariableDescriptorCountAllocateInfoEXT VkDescriptorSetVariableDescriptorCountAllocateInfoEXT :: VkStructureType -> Ptr () -> Word32 -> Ptr Word32 -> VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -- | sType is the type of this structure. [$sel:vkSType:VkDescriptorSetVariableDescriptorCountAllocateInfoEXT] :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDescriptorSetVariableDescriptorCountAllocateInfoEXT] :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -> Ptr () -- | descriptorSetCount is zero or the number of elements in -- pDescriptorCounts. [$sel:vkDescriptorSetCount:VkDescriptorSetVariableDescriptorCountAllocateInfoEXT] :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -> Word32 -- | pDescriptorCounts is an array of descriptor counts, with each -- member specifying the number of descriptors in a variable descriptor -- count binding in the corresponding descriptor set being allocated. [$sel:vkPDescriptorCounts:VkDescriptorSetVariableDescriptorCountAllocateInfoEXT] :: VkDescriptorSetVariableDescriptorCountAllocateInfoEXT -> Ptr Word32 -- | VkDescriptorSetVariableDescriptorCountLayoutSupportEXT - Structure -- returning information about whether a descriptor set layout can be -- supported -- --

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)

-- -- -- --

See Also

-- -- VkStructureType data VkDescriptorSetVariableDescriptorCountLayoutSupportEXT VkDescriptorSetVariableDescriptorCountLayoutSupportEXT :: VkStructureType -> Ptr () -> Word32 -> VkDescriptorSetVariableDescriptorCountLayoutSupportEXT -- | sType is the type of this structure. [$sel:vkSType:VkDescriptorSetVariableDescriptorCountLayoutSupportEXT] :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDescriptorSetVariableDescriptorCountLayoutSupportEXT] :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT -> Ptr () -- | maxVariableDescriptorCount indicates the maximum number of -- descriptors supported in the highest numbered binding of the layout, -- if that binding is variable-sized. [$sel:vkMaxVariableDescriptorCount:VkDescriptorSetVariableDescriptorCountLayoutSupportEXT] :: VkDescriptorSetVariableDescriptorCountLayoutSupportEXT -> Word32 type VkDescriptorBindingFlagsEXT = VkDescriptorBindingFlagBitsEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingPropertiesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingPropertiesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingPropertiesEXT instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkPhysicalDeviceDescriptorIndexingFeaturesEXT instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_EXT_descriptor_indexing.VkDescriptorBindingFlagBitsEXT module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3 -- | vkGetDescriptorSetLayoutSupport - Query whether a descriptor set -- layout can be created -- --

Parameters

-- -- -- -- -- --

Description

-- -- Some implementations have limitations on what fits in a descriptor set -- which are not easily expressible in terms of existing limits like -- maxDescriptorSet*, for example if all descriptor types share -- a limited space in memory but each descriptor is a different size or -- alignment. This command returns information about whether a descriptor -- set satisfies this limit. If the descriptor set layout satisfies the -- VkPhysicalDeviceMaintenance3Properties::maxPerSetDescriptors -- limit, this command is guaranteed to return VK_TRUE in -- VkDescriptorSetLayoutSupport::supported. If the -- descriptor set layout exceeds the -- VkPhysicalDeviceMaintenance3Properties::maxPerSetDescriptors -- limit, whether the descriptor set layout is supported is -- implementation-dependent and may depend on whether the -- descriptor sizes and alignments cause the layout to exceed an internal -- limit. -- -- This command does not consider other limits such as -- maxPerStageDescriptor*, and so a descriptor set layout that -- is supported according to this command must still satisfy the -- pipeline layout limits such as maxPerStageDescriptor* in -- order to be used in a pipeline layout. -- -- Note -- -- This is a VkDevice query rather than -- VkPhysicalDevice because the answer may depend on -- enabled features. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorSetLayoutCreateInfo, -- VkDescriptorSetLayoutSupport, VkDevice vkGetDescriptorSetLayoutSupport :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pSupport" ::: Ptr VkDescriptorSetLayoutSupport) -> IO () -- | VkPhysicalDeviceMaintenance3Properties - Structure describing -- descriptor set properties -- --

Members

-- -- The members of the VkPhysicalDeviceMaintenance3Properties -- structure describe the following implementation-dependent limits: -- --

Description

-- -- -- -- -- -- If the VkPhysicalDeviceMaintenance3Properties structure is -- included in the pNext chain of -- VkPhysicalDeviceProperties2, it is filled with the -- implementation-dependent limits. -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkDeviceSize, VkStructureType data VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3Properties :: VkStructureType -> Ptr () -> Word32 -> VkDeviceSize -> VkPhysicalDeviceMaintenance3Properties [$sel:vkSType:VkPhysicalDeviceMaintenance3Properties] :: VkPhysicalDeviceMaintenance3Properties -> VkStructureType [$sel:vkPNext:VkPhysicalDeviceMaintenance3Properties] :: VkPhysicalDeviceMaintenance3Properties -> Ptr () [$sel:vkMaxPerSetDescriptors:VkPhysicalDeviceMaintenance3Properties] :: VkPhysicalDeviceMaintenance3Properties -> Word32 [$sel:vkMaxMemoryAllocationSize:VkPhysicalDeviceMaintenance3Properties] :: VkPhysicalDeviceMaintenance3Properties -> VkDeviceSize -- | VkDescriptorSetLayoutSupport - Structure returning information about -- whether a descriptor set layout can be supported -- --

Description

-- -- supported is set to VK_TRUE if the descriptor set -- can be created, or else is set to VK_FALSE. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkStructureType, -- vkGetDescriptorSetLayoutSupport, -- vkGetDescriptorSetLayoutSupportKHR data VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupport :: VkStructureType -> Ptr () -> VkBool32 -> VkDescriptorSetLayoutSupport -- | sType is the type of this structure. [$sel:vkSType:VkDescriptorSetLayoutSupport] :: VkDescriptorSetLayoutSupport -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDescriptorSetLayoutSupport] :: VkDescriptorSetLayoutSupport -> Ptr () -- | supported specifies whether the descriptor set layout -- can be created. [$sel:vkSupported:VkDescriptorSetLayoutSupport] :: VkDescriptorSetLayoutSupport -> VkBool32 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkDescriptorSetLayoutSupport instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkDescriptorSetLayoutSupport instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkDescriptorSetLayoutSupport instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties module Graphics.Vulkan.Extensions.VK_KHR_maintenance3 vkGetDescriptorSetLayoutSupportKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorSetLayoutCreateInfo) -> ("pSupport" ::: Ptr VkDescriptorSetLayoutSupport) -> IO () type VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties type VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template -- | VkDescriptorUpdateTemplateType - Indicates the valid usage of the -- descriptor update template -- --

See Also

-- -- VkDescriptorUpdateTemplateCreateInfo newtype VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateType :: Int32 -> VkDescriptorUpdateTemplateType -- | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET specifies -- that the descriptor update template will be used for descriptor set -- updates only. -- | VkDescriptorUpdateTemplateCreateFlags - Reserved for future use -- --

Description

-- -- VkDescriptorUpdateTemplateCreateFlags is a bitmask type for -- setting a mask, but is currently reserved for future use. -- --

See Also

-- -- VkDescriptorUpdateTemplateCreateInfo newtype VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlags :: VkFlags -> VkDescriptorUpdateTemplateCreateFlags -- | VkDescriptorUpdateTemplate - Opaque handle to a descriptor update -- template -- --

Description

-- --

See Also

-- -- vkCmdPushDescriptorSetWithTemplateKHR, -- vkCreateDescriptorUpdateTemplate, -- vkCreateDescriptorUpdateTemplateKHR, -- vkDestroyDescriptorUpdateTemplate, -- vkDestroyDescriptorUpdateTemplateKHR, -- vkUpdateDescriptorSetWithTemplate, -- vkUpdateDescriptorSetWithTemplateKHR type VkDescriptorUpdateTemplate = Ptr VkDescriptorUpdateTemplate_T -- | vkCreateDescriptorUpdateTemplate - Create a new descriptor update -- template -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDescriptorUpdateTemplate, -- VkDescriptorUpdateTemplateCreateInfo, VkDevice vkCreateDescriptorUpdateTemplate :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorUpdateTemplateCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorUpdateTemplate" ::: Ptr VkDescriptorUpdateTemplate) -> IO VkResult -- | vkDestroyDescriptorUpdateTemplate - Destroy a descriptor update -- template object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDescriptorUpdateTemplate, -- VkDevice vkDestroyDescriptorUpdateTemplate :: ("device" ::: VkDevice) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkUpdateDescriptorSetWithTemplate - Update the contents of a -- descriptor set object using an update template -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- API example. -- --
--   struct AppBufferView {
--       VkBufferView bufferView;
--       uint32_t     applicationRelatedInformation;
--   };
--   
--   struct AppDataStructure
--   {
--       VkDescriptorImageInfo  imageInfo;          // a single image info
--       VkDescriptorBufferInfo bufferInfoArray[3]; // 3 buffer infos in an array
--       AppBufferView          bufferView[2];      // An application defined structure containing a bufferView
--       // ... 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.
--       },
--   
--       // binding to an array of buffer descriptors
--       {
--           0,                                           // binding
--           0,                                           // dstArrayElement
--           3,                                           // descriptorCount
--           VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,           // descriptorType
--           offsetof(AppDataStructure, bufferInfoArray), // offset
--           sizeof(VkDescriptorBufferInfo)               // stride, descriptor buffer infos are compact
--       },
--   
--       // binding to an array of buffer views
--       {
--           0,                                           // binding
--           3,                                           // dstArrayElement
--           1,                                           // descriptorCount
--           VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,     // descriptorType
--           offsetof(AppDataStructure, bufferView),      // offset
--           sizeof(AppBufferView)                        // stride, bufferViews do not have to be compact
--       },
--   };
--   
--   // 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
--       3,                                                             // descriptorUpdateEntryCount
--       descriptorUpdateTemplateEntries,                               // pDescriptorUpdateEntries
--       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,         // templateType
--       myLayout,                                                      // descriptorSetLayout
--       0,                                                             // pipelineBindPoint, ignored by given templateType
--       0,                                                             // pipelineLayout, ignored by given templateType
--       0,                                                             // set, ignored by given templateType
--   };
--   
--   VkDescriptorUpdateTemplate myDescriptorUpdateTemplate;
--   myResult = vkCreateDescriptorUpdateTemplate(
--       myDevice,
--       &createInfo,
--       NULL,
--       &myDescriptorUpdateTemplate);
--   }
--   
--   
--   AppDataStructure appData;
--   
--   // fill appData here or cache it in your engine
--   vkUpdateDescriptorSetWithTemplate(myDevice, myDescriptorSet, myDescriptorUpdateTemplate, &appData);
--   
-- --

See Also

-- -- VkDescriptorSet, VkDescriptorUpdateTemplate, -- VkDevice vkUpdateDescriptorSetWithTemplate :: ("device" ::: VkDevice) -> ("descriptorSet" ::: VkDescriptorSet) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pData" ::: Ptr ()) -> IO () -- | VkDescriptorUpdateTemplateEntry - Describes a single descriptor update -- of the descriptor update template -- --

Members

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkDescriptorType, VkDescriptorUpdateTemplateCreateInfo data VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntry :: Word32 -> Word32 -> Word32 -> VkDescriptorType -> CSize -> CSize -> VkDescriptorUpdateTemplateEntry [$sel:vkDstBinding:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> Word32 [$sel:vkDstArrayElement:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> Word32 [$sel:vkDescriptorCount:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> Word32 [$sel:vkDescriptorType:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> VkDescriptorType [$sel:vkOffset:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> CSize [$sel:vkStride:VkDescriptorUpdateTemplateEntry] :: VkDescriptorUpdateTemplateEntry -> CSize -- | VkDescriptorUpdateTemplateCreateInfo - Structure specifying parameters -- of a newly created descriptor update template -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorSetLayout, -- VkDescriptorUpdateTemplateCreateFlags, -- VkDescriptorUpdateTemplateEntry, -- VkDescriptorUpdateTemplateType, VkPipelineBindPoint, -- VkPipelineLayout, VkStructureType, -- vkCreateDescriptorUpdateTemplate, -- vkCreateDescriptorUpdateTemplateKHR data VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfo :: VkStructureType -> Ptr () -> VkDescriptorUpdateTemplateCreateFlags -> Word32 -> Ptr VkDescriptorUpdateTemplateEntry -> VkDescriptorUpdateTemplateType -> VkDescriptorSetLayout -> VkPipelineBindPoint -> VkPipelineLayout -> Word32 -> VkDescriptorUpdateTemplateCreateInfo -- | sType is the type of this structure. [$sel:vkSType:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> Ptr () -- | flags is reserved for future use. [$sel:vkFlags:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkDescriptorUpdateTemplateCreateFlags -- | descriptorUpdateEntryCount is the number of elements in the -- pDescriptorUpdateEntries array. [$sel:vkDescriptorUpdateEntryCount:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> Word32 -- | pDescriptorUpdateEntries is a pointer to an array of -- VkDescriptorUpdateTemplateEntry structures describing the -- descriptors to be updated by the descriptor update template. [$sel:vkPDescriptorUpdateEntries:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> Ptr VkDescriptorUpdateTemplateEntry -- | templateType Specifies the type of the descriptor update -- template. If set to -- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET it -- can only be used to update descriptor sets with a fixed -- descriptorSetLayout. If set to -- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR it -- can only be used to push descriptor sets using the provided -- pipelineBindPoint, pipelineLayout, and set -- number. [$sel:vkTemplateType:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkDescriptorUpdateTemplateType -- | descriptorSetLayout is the descriptor set layout the -- parameter update template will be used with. All descriptor sets which -- are going to be updated through the newly created descriptor update -- template must be created with this layout. -- descriptorSetLayout is the descriptor set layout used to -- build the descriptor update template. All descriptor sets which are -- going to be updated through the newly created descriptor update -- template must be created with a layout that matches (is the -- same as, or defined identically to) this layout. This parameter is -- ignored if templateType is not -- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET. [$sel:vkDescriptorSetLayout:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkDescriptorSetLayout -- | pipelineBindPoint is a VkPipelineBindPoint indicating -- whether the descriptors will be used by graphics pipelines or compute -- pipelines. This parameter is ignored if templateType is not -- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR [$sel:vkPipelineBindPoint:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkPipelineBindPoint -- | pipelineLayout is a VkPipelineLayout object used to -- program the bindings. This parameter is ignored if -- templateType is not -- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR [$sel:vkPipelineLayout:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> VkPipelineLayout -- | set is the set number of the descriptor set in the pipeline -- layout that will be updated. This parameter is ignored if -- templateType is not -- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR [$sel:vkSet:VkDescriptorUpdateTemplateCreateInfo] :: VkDescriptorUpdateTemplateCreateInfo -> Word32 instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateEntry instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateEntry instance Data.Bits.FiniteBits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags instance Data.Bits.Bits Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType instance GHC.Classes.Ord Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType instance GHC.Classes.Eq Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateEntry instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateCreateFlags instance GHC.Show.Show Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType instance GHC.Read.Read Graphics.Vulkan.Core11.Promoted_from_VK_KHR_descriptor_update_template.VkDescriptorUpdateTemplateType module Graphics.Vulkan.Extensions.VK_KHR_push_descriptor -- | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR -- specifies that the descriptor update template will be used for push -- descriptor updates only. -- | VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR -- specifies that descriptor sets must not be allocated using this -- layout, and descriptors are instead pushed by -- vkCmdPushDescriptorSetKHR. -- | vkCmdPushDescriptorSetKHR - Pushes descriptor updates into a command -- buffer -- --

Parameters

-- -- -- -- -- --

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 -- 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 VkDescriptorBufferInfo can be -- changed each time the descriptor is written. -- -- Each element of pDescriptorWrites is interpreted as in -- VkWriteDescriptorSet, except the dstSet member is -- ignored. -- -- To push an immutable sampler, use a 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkPipelineBindPoint, -- VkPipelineLayout, VkWriteDescriptorSet 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

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkDescriptorUpdateTemplate, -- VkPipelineLayout 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

-- -- The members of the -- VkPhysicalDevicePushDescriptorPropertiesKHR structure -- describe the following implementation-dependent limits: -- --

Description

-- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkStructureType data VkPhysicalDevicePushDescriptorPropertiesKHR VkPhysicalDevicePushDescriptorPropertiesKHR :: VkStructureType -> Ptr () -> Word32 -> VkPhysicalDevicePushDescriptorPropertiesKHR [$sel:vkSType:VkPhysicalDevicePushDescriptorPropertiesKHR] :: VkPhysicalDevicePushDescriptorPropertiesKHR -> VkStructureType [$sel:vkPNext:VkPhysicalDevicePushDescriptorPropertiesKHR] :: VkPhysicalDevicePushDescriptorPropertiesKHR -> Ptr () [$sel:vkMaxPushDescriptors:VkPhysicalDevicePushDescriptorPropertiesKHR] :: VkPhysicalDevicePushDescriptorPropertiesKHR -> Word32 instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.VkPhysicalDevicePushDescriptorPropertiesKHR instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.VkPhysicalDevicePushDescriptorPropertiesKHR instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.VkPhysicalDevicePushDescriptorPropertiesKHR module Graphics.Vulkan.Extensions.VK_KHR_descriptor_update_template vkCreateDescriptorUpdateTemplateKHR :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkDescriptorUpdateTemplateCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pDescriptorUpdateTemplate" ::: Ptr VkDescriptorUpdateTemplate) -> IO VkResult vkDestroyDescriptorUpdateTemplateKHR :: ("device" ::: VkDevice) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () vkUpdateDescriptorSetWithTemplateKHR :: ("device" ::: VkDevice) -> ("descriptorSet" ::: VkDescriptorSet) -> ("descriptorUpdateTemplate" ::: VkDescriptorUpdateTemplate) -> ("pData" ::: Ptr ()) -> IO () type VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateType type VkDescriptorUpdateTemplateCreateFlagsKHR = VkDescriptorUpdateTemplateCreateFlags type VkDescriptorUpdateTemplateKHR = VkDescriptorUpdateTemplate type VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry type VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo module Graphics.Vulkan.Core11 module Graphics.Vulkan.Core10.CommandBufferBuilding -- | VkIndexType - Type of index buffer indices -- --

See Also

-- -- VkObjectTableIndexBufferEntryNVX, vkCmdBindIndexBuffer newtype VkIndexType VkIndexType :: Int32 -> VkIndexType -- | VK_INDEX_TYPE_UINT16 specifies that indices are 16-bit -- unsigned integer values. -- | VK_INDEX_TYPE_UINT32 specifies that indices are 32-bit -- unsigned integer values. -- | VkSubpassContents - Specify how commands in the first subpass of a -- render pass are provided -- --

See Also

-- -- vkCmdBeginRenderPass, vkCmdNextSubpass newtype VkSubpassContents VkSubpassContents :: Int32 -> VkSubpassContents -- | 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. -- | 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. -- | VkStencilFaceFlagBits - Bitmask specifying sets of stencil state for -- which to update the compare mask -- --

See Also

-- -- VkStencilFaceFlags newtype VkStencilFaceFlagBits VkStencilFaceFlagBits :: VkFlags -> VkStencilFaceFlagBits -- | VK_STENCIL_FACE_FRONT_BIT specifies that only the front set -- of stencil state is updated. -- | VK_STENCIL_FACE_BACK_BIT specifies that only the back set of -- stencil state is updated. -- | 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. -- | vkCmdBindPipeline - Bind a pipeline object to a command buffer -- --

Parameters

-- -- -- -- -- --

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 drawing commands. No other commands are -- affected by the pipeline state. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkPipeline, VkPipelineBindPoint vkCmdBindPipeline :: ("commandBuffer" ::: VkCommandBuffer) -> ("pipelineBindPoint" ::: VkPipelineBindPoint) -> ("pipeline" ::: VkPipeline) -> IO () -- | vkCmdSetViewport - Set the viewport on a command buffer -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkViewport vkCmdSetViewport :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr VkViewport) -> IO () -- | vkCmdSetScissor - Set the dynamic scissor rectangles on a command -- buffer -- --

Parameters

-- -- -- -- -- --

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 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkRect2D vkCmdSetScissor :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstScissor" ::: Word32) -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr VkRect2D) -> IO () -- | vkCmdSetLineWidth - Set the dynamic line width state -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdSetLineWidth :: ("commandBuffer" ::: VkCommandBuffer) -> ("lineWidth" ::: CFloat) -> IO () -- | vkCmdSetDepthBias - Set the depth bias dynamic state -- --

Parameters

-- -- -- -- -- --

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 -- -- \[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 -- -- \[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 -- zf 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 -- -- -- -- If a triangle is rasterized using the -- VK_POLYGON_MODE_FILL_RECTANGLE_NV polygon mode, then this -- minimum resolvable difference may not be resolvable for samples -- outside of the triangle, where the depth is extrapolated. -- -- If no depth buffer is present, r is undefined. -- -- The bias value o for a polygon is -- -- \[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. Unless the -- {html_spec_relative}#VK_EXT_depth_range_unrestricted -- extension is enabled, fragment depth values are clamped even when the -- depth buffer uses a floating-point representation. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdSetDepthBias :: ("commandBuffer" ::: VkCommandBuffer) -> ("depthBiasConstantFactor" ::: CFloat) -> ("depthBiasClamp" ::: CFloat) -> ("depthBiasSlopeFactor" ::: CFloat) -> IO () -- | vkCmdSetBlendConstants - Set the values of blend constants -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdSetBlendConstants :: ("commandBuffer" ::: VkCommandBuffer) -> ("blendConstants" ::: Ptr CFloat) -> IO () -- | vkCmdSetDepthBounds - Set the depth bounds test values for a command -- buffer -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdSetDepthBounds :: ("commandBuffer" ::: VkCommandBuffer) -> ("minDepthBounds" ::: CFloat) -> ("maxDepthBounds" ::: CFloat) -> IO () -- | vkCmdSetStencilCompareMask - Set the stencil compare mask dynamic -- state -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkStencilFaceFlags vkCmdSetStencilCompareMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("compareMask" ::: Word32) -> IO () -- | vkCmdSetStencilWriteMask - Set the stencil write mask dynamic state -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkStencilFaceFlags vkCmdSetStencilWriteMask :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("writeMask" ::: Word32) -> IO () -- | vkCmdSetStencilReference - Set the stencil reference dynamic state -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkStencilFaceFlags vkCmdSetStencilReference :: ("commandBuffer" ::: VkCommandBuffer) -> ("faceMask" ::: VkStencilFaceFlags) -> ("reference" ::: Word32) -> IO () -- | vkCmdBindDescriptorSets - Binds descriptor sets to a command buffer -- --

Parameters

-- -- -- -- -- --

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 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 -- Pipeline Layout Compatibility section. -- -- The descriptor set contents bound by a call to -- vkCmdBindDescriptorSets may be consumed at the -- following times: -- -- -- -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkDescriptorSet, -- VkPipelineBindPoint, VkPipelineLayout 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

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize, -- VkIndexType vkCmdBindIndexBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("indexType" ::: VkIndexType) -> IO () -- | vkCmdBindVertexBuffers - Bind vertex buffers to a command buffer -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize vkCmdBindVertexBuffers :: ("commandBuffer" ::: VkCommandBuffer) -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr VkBuffer) -> ("pOffsets" ::: Ptr VkDeviceSize) -> IO () -- | vkCmdDraw - Draw primitives -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdDraw :: ("commandBuffer" ::: VkCommandBuffer) -> ("vertexCount" ::: Word32) -> ("instanceCount" ::: Word32) -> ("firstVertex" ::: Word32) -> ("firstInstance" ::: Word32) -> IO () -- | vkCmdDrawIndexed - Issue an indexed draw into a command buffer -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdDrawIndexed :: ("commandBuffer" ::: VkCommandBuffer) -> ("indexCount" ::: Word32) -> ("instanceCount" ::: Word32) -> ("firstIndex" ::: Word32) -> ("vertexOffset" ::: Int32) -> ("firstInstance" ::: Word32) -> IO () -- | vkCmdDrawIndirect - Issue an indirect draw into a command buffer -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize vkCmdDrawIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO () -- | vkCmdDrawIndexedIndirect - Perform an indexed indirect draw -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize vkCmdDrawIndexedIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO () -- | vkCmdDispatch - Dispatch compute work items -- --

Parameters

-- -- -- -- -- --

Description

-- -- When the command is executed, a global workgroup consisting of -- groupCountX × groupCountY × groupCountZ local workgroups is assembled. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdDispatch :: ("commandBuffer" ::: VkCommandBuffer) -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO () -- | vkCmdDispatchIndirect - Dispatch compute work items using indirect -- parameters -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize vkCmdDispatchIndirect :: ("commandBuffer" ::: VkCommandBuffer) -> ("buffer" ::: VkBuffer) -> ("offset" ::: VkDeviceSize) -> IO () -- | vkCmdCopyBuffer - Copy data between buffer regions -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkBufferCopy, VkCommandBuffer vkCmdCopyBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcBuffer" ::: VkBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkBufferCopy) -> IO () -- | vkCmdCopyImage - Copy data between images -- --

Parameters

-- -- -- -- -- --

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. -- -- If the format of srcImage or dstImage is a -- multi-planar image format, regions of each plane to be copied -- must be specified separately using the srcSubresource -- and dstSubresource members of the VkImageCopy -- structure. In this case, the aspectMask of the -- srcSubresource or dstSubresource that refers to the -- multi-planar image must be -- VK_IMAGE_ASPECT_PLANE_0_BIT, -- VK_IMAGE_ASPECT_PLANE_1_BIT, or -- VK_IMAGE_ASPECT_PLANE_2_BIT. For the purposes of -- vkCmdCopyImage, each plane of a multi-planar image is treated -- as having the format listed in -- {html_spec_relative}#features-formats-compatible-planes for the -- plane identified by the aspectMask of the corresponding -- subresource. This applies both to VkFormat and to coordinates -- used in the copy, which correspond to texels in the plane -- rather than how these texels map to coordinates in the image as a -- whole. -- -- Note -- -- For example, the VK_IMAGE_ASPECT_PLANE_1_BIT plane of a -- VK_FORMAT_G8_B8R8_2PLANE_420_UNORM image is compatible with -- an image of format VK_FORMAT_R8G8_UNORM and (less usefully) -- with the VK_IMAGE_ASPECT_PLANE_0_BIT plane of an image of -- format VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, -- as each texel is 2 bytes in size. -- -- 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: -- -- -- -- Similarly, if the dstImage is compressed, then: -- -- -- -- 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. -- -- “_422” image formats that are not multi-planar are -- treated as having a 2×1 compressed texel block for the purposes of -- these rules. -- -- vkCmdCopyImage can be used to copy image data between -- multisample images, but both images must have the same number -- of samples. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkImage, VkImageCopy, -- VkImageLayout 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

-- -- -- -- -- --

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: -- -- -- -- These coordinates are used to sample from the source image, as -- described in 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: -- -- -- -- Signed and unsigned integers are converted by first clamping to the -- representable range of the destination format, then casting the value. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkFilter, VkImage, -- VkImageBlit, VkImageLayout 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

-- -- -- -- -- --

Description

-- -- Each region in pRegions is copied from the specified region -- of the source buffer to the specified region of the destination image. -- -- If the format of dstImage is a multi-planar image -- format), regions of each plane to be a target of a copy -- must be specified separately using the pRegions member -- of the VkBufferImageCopy structure. In this case, the -- aspectMask of imageSubresource must be -- VK_IMAGE_ASPECT_PLANE_0_BIT, -- VK_IMAGE_ASPECT_PLANE_1_BIT, or -- VK_IMAGE_ASPECT_PLANE_2_BIT. For the purposes of -- vkCmdCopyBufferToImage, each plane of a multi-planar image is -- treated as having the format listed in -- {html_spec_relative}#features-formats-compatible-planes for the -- plane identified by the aspectMask of the corresponding -- subresource. This applies both to VkFormat and to coordinates -- used in the copy, which correspond to texels in the plane -- rather than how these texels map to coordinates in the image as a -- whole. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkBufferImageCopy, VkCommandBuffer, -- VkImage, VkImageLayout vkCmdCopyBufferToImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("srcBuffer" ::: VkBuffer) -> ("dstImage" ::: VkImage) -> ("dstImageLayout" ::: VkImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr VkBufferImageCopy) -> IO () -- | vkCmdCopyImageToBuffer - Copy image data into a buffer -- --

Parameters

-- -- -- -- -- --

Description

-- -- Each region in pRegions is copied from the specified region -- of the source image to the specified region of the destination buffer. -- -- If the VkFormat of srcImage is a multi-planar image -- format, regions of each plane to be a source of a copy must -- be specified separately using the pRegions member of the -- VkBufferImageCopy structure. In this case, the -- aspectMask of imageSubresource must be -- VK_IMAGE_ASPECT_PLANE_0_BIT, -- VK_IMAGE_ASPECT_PLANE_1_BIT, or -- VK_IMAGE_ASPECT_PLANE_2_BIT. For the purposes of -- vkCmdCopyBufferToImage, each plane of a multi-planar image is -- treated as having the format listed in -- {html_spec_relative}#features-formats-compatible-planes for the -- plane identified by the aspectMask of the corresponding -- subresource. This applies both to VkFormat and to coordinates -- used in the copy, which correspond to texels in the plane -- rather than how these texels map to coordinates in the image as a -- whole. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkBufferImageCopy, VkCommandBuffer, -- VkImage, VkImageLayout 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

-- -- -- -- -- --

Description

-- -- dataSize must be less than or equal to 65536 bytes. -- For larger updates, applications can use buffer to buffer -- 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 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 VkBufferCreateInfo in order for the buffer to -- be compatible with vkCmdUpdateBuffer. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize vkCmdUpdateBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("dataSize" ::: VkDeviceSize) -> ("pData" ::: Ptr ()) -> IO () -- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize vkCmdFillBuffer :: ("commandBuffer" ::: VkCommandBuffer) -> ("dstBuffer" ::: VkBuffer) -> ("dstOffset" ::: VkDeviceSize) -> ("size" ::: VkDeviceSize) -> ("data" ::: Word32) -> IO () -- | vkCmdClearColorImage - Clear regions of a color image -- --

Parameters

-- -- -- -- -- --

Description

-- -- Each specified range in pRanges is cleared to the value -- specified by pColor. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkClearColorValue, VkCommandBuffer, VkImage, -- VkImageLayout, VkImageSubresourceRange 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

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkClearDepthStencilValue, VkCommandBuffer, -- VkImage, VkImageLayout, VkImageSubresourceRange vkCmdClearDepthStencilImage :: ("commandBuffer" ::: VkCommandBuffer) -> ("image" ::: VkImage) -> ("imageLayout" ::: VkImageLayout) -> ("pDepthStencil" ::: Ptr VkClearDepthStencilValue) -> ("rangeCount" ::: Word32) -> ("pRanges" ::: Ptr VkImageSubresourceRange) -> IO () -- | vkCmdClearAttachments - Clear regions within bound framebuffer -- attachments -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkClearAttachment, VkClearRect, VkCommandBuffer vkCmdClearAttachments :: ("commandBuffer" ::: VkCommandBuffer) -> ("attachmentCount" ::: Word32) -> ("pAttachments" ::: Ptr VkClearAttachment) -> ("rectCount" ::: Word32) -> ("pRects" ::: Ptr VkClearRect) -> IO () -- | vkCmdResolveImage - Resolve regions of an image -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkImage, VkImageLayout, -- VkImageResolve 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

-- -- -- -- -- --

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 synchronization scope includes all commands that -- occur earlier in submission order. The synchronization scope is -- limited to operations on the pipeline stages determined by the -- source stage mask specified by stageMask. -- -- The second 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkEvent, VkPipelineStageFlags vkCmdSetEvent :: ("commandBuffer" ::: VkCommandBuffer) -> ("event" ::: VkEvent) -> ("stageMask" ::: VkPipelineStageFlags) -> IO () -- | vkCmdResetEvent - Reset an event object to non-signaled state -- --

Parameters

-- -- -- -- -- --

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 synchronization scope includes all commands that -- occur earlier in submission order. The synchronization scope is -- limited to operations on the pipeline stages determined by the -- source stage mask specified by stageMask. -- -- The second 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkEvent, VkPipelineStageFlags vkCmdResetEvent :: ("commandBuffer" ::: VkCommandBuffer) -> ("event" ::: VkEvent) -> ("stageMask" ::: VkPipelineStageFlags) -> IO () -- | vkCmdWaitEvents - Wait for one or more events and insert a set of -- memory -- --

Parameters

-- -- -- -- -- --

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 submission -- order are included in the first synchronization scope, if the -- logically latest pipeline stage in their stageMask -- parameter is logically earlier than or equal to the -- logically latest pipeline stage in srcStageMask. Event -- signal operations performed by vkSetEvent are only included in -- the first synchronization scope if VK_PIPELINE_STAGE_HOST_BIT -- is included in srcStageMask. -- -- The second synchronization scope includes all commands that -- occur later in submission order. The second synchronization -- scope is limited to operations on the pipeline stages determined by -- the destination stage mask specified by dstStageMask. -- -- The first access scope is limited to access in the pipeline -- stages determined by the 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 -- memory barriers. If no memory barriers are specified, then the -- first access scope includes no accesses. -- -- The second access scope is limited to access in the pipeline -- stages determined by the 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 -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBufferMemoryBarrier, VkCommandBuffer, VkEvent, -- VkImageMemoryBarrier, VkMemoryBarrier, -- VkPipelineStageFlags 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

-- -- -- -- -- --

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 synchronization scope includes all commands -- that occur earlier in submission order. If -- vkCmdPipelineBarrier was recorded inside a render pass -- instance, the first synchronization scope includes only commands that -- occur earlier in submission order within the same subpass. In -- either case, the first synchronization scope is limited to operations -- on the pipeline stages determined by the source stage mask -- specified by srcStageMask. -- -- If vkCmdPipelineBarrier was recorded outside a render pass -- instance, the second synchronization scope includes all -- commands that occur later in submission order. If -- vkCmdPipelineBarrier was recorded inside a render pass -- instance, the second synchronization scope includes only commands that -- occur later in submission order within the same subpass. In -- either case, the second synchronization scope is limited to operations -- on the pipeline stages determined by the destination stage mask -- specified by dstStageMask. -- -- The first access scope is limited to access in the pipeline -- stages determined by the 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 -- memory barriers. If no memory barriers are specified, then the -- first access scope includes no accesses. -- -- The second access scope is limited to access in the pipeline -- stages determined by the 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 -- 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 -- framebuffer-space pipeline stages is framebuffer-local - -- otherwise it is framebuffer-global. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBufferMemoryBarrier, VkCommandBuffer, -- VkDependencyFlags, VkImageMemoryBarrier, -- VkMemoryBarrier, VkPipelineStageFlags 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

-- -- -- -- -- --

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 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkQueryControlFlags, VkQueryPool vkCmdBeginQuery :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("query" ::: Word32) -> ("flags" ::: VkQueryControlFlags) -> IO () -- | vkCmdEndQuery - Ends a query -- --

Parameters

-- -- -- -- -- --

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 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkQueryPool vkCmdEndQuery :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("query" ::: Word32) -> IO () -- | vkCmdResetQueryPool - Reset queries in a query pool -- --

Parameters

-- -- -- -- -- --

Description

-- -- When executed on a queue, this command sets the status of query -- indices [firstQuery, firstQuery + -- queryCount - 1] to unavailable. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkQueryPool vkCmdResetQueryPool :: ("commandBuffer" ::: VkCommandBuffer) -> ("queryPool" ::: VkQueryPool) -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> IO () -- | vkCmdWriteTimestamp - Write a device timestamp into a query object -- --

Parameters

-- -- -- -- -- --

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 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. -- -- If vkCmdWriteTimestamp is called while executing a render -- pass instance that has multiview enabled, the timestamp uses N -- consecutive query indices in the query pool (starting at -- query) where N is the number of bits set in the view mask of -- the subpass the command is executed in. The resulting query values are -- determined by an implementation-dependent choice of one of the -- following behaviors: -- -- -- -- In either case, the application can sum the differences between -- all N queries to determine the total execution time. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkPipelineStageFlagBits, -- VkQueryPool 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

-- -- -- -- -- --

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 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 -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize, -- VkQueryPool, VkQueryResultFlags 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

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkPipelineLayout, -- VkShaderStageFlags vkCmdPushConstants :: ("commandBuffer" ::: VkCommandBuffer) -> ("layout" ::: VkPipelineLayout) -> ("stageFlags" ::: VkShaderStageFlags) -> ("offset" ::: Word32) -> ("size" ::: Word32) -> ("pValues" ::: Ptr ()) -> IO () -- | vkCmdBeginRenderPass - Begin a new render pass -- --

Parameters

-- -- -- -- -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkRenderPassBeginInfo, -- VkSubpassContents vkCmdBeginRenderPass :: ("commandBuffer" ::: VkCommandBuffer) -> ("pRenderPassBegin" ::: Ptr VkRenderPassBeginInfo) -> ("contents" ::: VkSubpassContents) -> IO () -- | vkCmdNextSubpass - Transition to the next subpass of a render pass -- --

Parameters

-- -- -- -- -- --

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

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer, VkSubpassContents vkCmdNextSubpass :: ("commandBuffer" ::: VkCommandBuffer) -> ("contents" ::: VkSubpassContents) -> IO () -- | vkCmdEndRenderPass - End the current render pass -- --

Parameters

-- -- -- --

Description

-- -- Ending a render pass instance performs any multisample resolve -- operations on the final subpass. -- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdEndRenderPass :: ("commandBuffer" ::: VkCommandBuffer) -> IO () -- | vkCmdExecuteCommands - Execute a secondary command buffer from a -- primary command buffer -- --

Parameters

-- -- -- -- -- --

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 executable or recording state, that primary command buffer -- becomes invalid. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCommandBuffer vkCmdExecuteCommands :: ("commandBuffer" ::: VkCommandBuffer) -> ("commandBufferCount" ::: Word32) -> ("pCommandBuffers" ::: Ptr VkCommandBuffer) -> IO () -- | VkClearRect - Structure specifying a clear rectangle -- --

Description

-- -- The layers [baseArrayLayer, baseArrayLayer + -- layerCount) counting from the base layer of the attachment -- image view are cleared. -- --

See Also

-- -- VkRect2D, vkCmdClearAttachments data VkClearRect VkClearRect :: VkRect2D -> Word32 -> Word32 -> VkClearRect -- | rect is the two-dimensional region to be cleared. [$sel:vkRect:VkClearRect] :: VkClearRect -> VkRect2D -- | baseArrayLayer is the first layer to be cleared. [$sel:vkBaseArrayLayer:VkClearRect] :: VkClearRect -> Word32 -- | layerCount is the number of layers to clear. [$sel:vkLayerCount:VkClearRect] :: VkClearRect -> Word32 -- | VkImageSubresourceLayers - Structure specifying a image subresource -- layers -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBufferImageCopy, VkImageAspectFlags, -- VkImageBlit, VkImageCopy, VkImageResolve data VkImageSubresourceLayers VkImageSubresourceLayers :: VkImageAspectFlags -> Word32 -> Word32 -> Word32 -> VkImageSubresourceLayers -- | aspectMask is a combination of VkImageAspectFlagBits, -- selecting the color, depth and/or stencil aspects to be copied. [$sel:vkAspectMask:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> VkImageAspectFlags -- | mipLevel is the mipmap level to copy from. [$sel:vkMipLevel:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32 -- | baseArrayLayer and layerCount are the starting layer -- and number of layers to copy. [$sel:vkBaseArrayLayer:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32 [$sel:vkLayerCount:VkImageSubresourceLayers] :: VkImageSubresourceLayers -> Word32 -- | VkMemoryBarrier - Structure specifying a global memory barrier -- --

Description

-- -- The first access scope is limited to access types in the -- source access mask specified by srcAccessMask. -- -- The second access scope is limited to access types in the -- destination access mask specified by dstAccessMask. -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAccessFlags, VkStructureType, -- vkCmdPipelineBarrier, vkCmdWaitEvents data VkMemoryBarrier VkMemoryBarrier :: VkStructureType -> Ptr () -> VkAccessFlags -> VkAccessFlags -> VkMemoryBarrier -- | sType is the type of this structure. [$sel:vkSType:VkMemoryBarrier] :: VkMemoryBarrier -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkMemoryBarrier] :: VkMemoryBarrier -> Ptr () -- | srcAccessMask is a bitmask of VkAccessFlagBits -- specifying a source access mask. [$sel:vkSrcAccessMask:VkMemoryBarrier] :: VkMemoryBarrier -> VkAccessFlags -- | dstAccessMask is a bitmask of VkAccessFlagBits -- specifying a destination access mask. [$sel:vkDstAccessMask:VkMemoryBarrier] :: VkMemoryBarrier -> VkAccessFlags -- | VkBufferMemoryBarrier - Structure specifying a buffer memory barrier -- --

Description

-- -- The first access scope is limited to access to memory through -- the specified buffer range, via access types in the 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 access scope is limited to access to memory through -- the specified buffer range, via access types in the 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 -- 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 -- queue family acquire operation for the specified buffer range, -- and the first access scope includes no access, as if -- srcAccessMask was 0. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAccessFlags, VkBuffer, VkDeviceSize, -- VkStructureType, vkCmdPipelineBarrier, -- vkCmdWaitEvents data VkBufferMemoryBarrier VkBufferMemoryBarrier :: VkStructureType -> Ptr () -> VkAccessFlags -> VkAccessFlags -> Word32 -> Word32 -> VkBuffer -> VkDeviceSize -> VkDeviceSize -> VkBufferMemoryBarrier -- | sType is the type of this structure. [$sel:vkSType:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Ptr () -- | srcAccessMask is a bitmask of VkAccessFlagBits -- specifying a source access mask. [$sel:vkSrcAccessMask:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkAccessFlags -- | dstAccessMask is a bitmask of VkAccessFlagBits -- specifying a destination access mask. [$sel:vkDstAccessMask:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkAccessFlags -- | srcQueueFamilyIndex is the source queue family for a queue -- family ownership transfer. [$sel:vkSrcQueueFamilyIndex:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Word32 -- | dstQueueFamilyIndex is the destination queue family for a -- queue family ownership transfer. [$sel:vkDstQueueFamilyIndex:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> Word32 -- | buffer is a handle to the buffer whose backing memory is -- affected by the barrier. [$sel:vkBuffer:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkBuffer -- | offset is an offset in bytes into the backing memory for -- buffer; this is relative to the base offset as bound to the -- buffer (see vkBindBufferMemory). [$sel:vkOffset:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkDeviceSize -- | size is a size in bytes of the affected area of backing -- memory for buffer, or VK_WHOLE_SIZE to use the range -- from offset to the end of the buffer. [$sel:vkSize:VkBufferMemoryBarrier] :: VkBufferMemoryBarrier -> VkDeviceSize -- | VkImageMemoryBarrier - Structure specifying the parameters of an image -- memory barrier -- --

Description

-- -- The first access scope is limited to access to memory through -- the specified image subresource range, via access types in the -- 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 access scope is limited to access to memory through -- the specified image subresource range, via access types in the -- 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 -- 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 -- 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 image layout transition for the -- specified image subresource range. -- -- Layout transitions that are performed via image memory barriers -- execute in their entirety in submission order, relative to -- other image layout transitions submitted to the same queue, including -- those performed by 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. -- -- The image layout of each image subresource of a depth/stencil image -- created with -- VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT is -- dependent on the last sample locations used to render to the image -- subresource as a depth/stencil attachment, thus when the -- image member of an VkImageMemoryBarrier is an image -- created with this flag the application can chain a -- VkSampleLocationsInfoEXT structure to the pNext chain -- of VkImageMemoryBarrier to specify the sample locations to -- use during the image layout transition. -- -- If the VkSampleLocationsInfoEXT structure in the -- pNext chain of VkImageMemoryBarrier does not match -- the sample location state last used to render to the image subresource -- range specified by subresourceRange or if no -- VkSampleLocationsInfoEXT structure is in the pNext -- chain of VkImageMemoryBarrier then the contents of the given -- image subresource range becomes undefined as if oldLayout -- would equal VK_IMAGE_LAYOUT_UNDEFINED. -- -- If image has a multi-planar format and the image is -- disjoint, then including VK_IMAGE_ASPECT_COLOR_BIT in -- the aspectMask member of subresourceRange is -- equivalent to including VK_IMAGE_ASPECT_PLANE_0_BIT, -- VK_IMAGE_ASPECT_PLANE_1_BIT, and (for three-plane formats -- only) VK_IMAGE_ASPECT_PLANE_2_BIT. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAccessFlags, VkImage, VkImageLayout, -- VkImageSubresourceRange, VkStructureType, -- vkCmdPipelineBarrier, vkCmdWaitEvents data VkImageMemoryBarrier VkImageMemoryBarrier :: VkStructureType -> Ptr () -> VkAccessFlags -> VkAccessFlags -> VkImageLayout -> VkImageLayout -> Word32 -> Word32 -> VkImage -> VkImageSubresourceRange -> VkImageMemoryBarrier -- | sType is the type of this structure. [$sel:vkSType:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Ptr () -- | srcAccessMask is a bitmask of VkAccessFlagBits -- specifying a source access mask. [$sel:vkSrcAccessMask:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkAccessFlags -- | dstAccessMask is a bitmask of VkAccessFlagBits -- specifying a destination access mask. [$sel:vkDstAccessMask:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkAccessFlags -- | oldLayout is the old layout in an image layout -- transition. [$sel:vkOldLayout:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageLayout -- | newLayout is the new layout in an image layout -- transition. [$sel:vkNewLayout:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageLayout -- | srcQueueFamilyIndex is the source queue family for a queue -- family ownership transfer. [$sel:vkSrcQueueFamilyIndex:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Word32 -- | dstQueueFamilyIndex is the destination queue family for a -- queue family ownership transfer. [$sel:vkDstQueueFamilyIndex:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> Word32 -- | image is a handle to the image affected by this barrier. [$sel:vkImage:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImage -- | subresourceRange describes the image subresource range -- within image that is affected by this barrier. [$sel:vkSubresourceRange:VkImageMemoryBarrier] :: VkImageMemoryBarrier -> VkImageSubresourceRange -- | VkBufferCopy - Structure specifying a buffer copy operation -- --

Description

-- --

See Also

-- -- VkDeviceSize, vkCmdCopyBuffer data VkBufferCopy VkBufferCopy :: VkDeviceSize -> VkDeviceSize -> VkDeviceSize -> VkBufferCopy -- | srcOffset is the starting offset in bytes from the start of -- srcBuffer. [$sel:vkSrcOffset:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize -- | dstOffset is the starting offset in bytes from the start of -- dstBuffer. [$sel:vkDstOffset:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize -- | size is the number of bytes to copy. [$sel:vkSize:VkBufferCopy] :: VkBufferCopy -> VkDeviceSize -- | VkImageCopy - Structure specifying an image copy operation -- --

Description

-- -- For VK_IMAGE_TYPE_3D images, copies are performed slice by -- slice starting with the z member of the srcOffset or -- dstOffset, and copying depth slices. For images with -- multiple layers, copies are performed layer by layer starting with the -- baseArrayLayer member of the srcSubresource or -- dstSubresource and copying layerCount layers. Image -- data can be copied between images with different image types. -- If one image is VK_IMAGE_TYPE_3D and the other image is -- VK_IMAGE_TYPE_2D with multiple layers, then each slice is -- copied to or from a different layer. -- -- Copies involving a multi-planar image format specify the region -- to be copied in terms of the plane to be copied, not the -- coordinates of the multi-planar image. This means that copies -- accessing the R/B planes of “_422” format images must -- fit the copied region within half the width of the parent -- image, and that copies accessing the R/B planes of “_420” -- format images must fit the copied region within half the -- width and height of the parent image. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExtent3D, VkImageSubresourceLayers, VkOffset3D, -- vkCmdCopyImage data VkImageCopy VkImageCopy :: VkImageSubresourceLayers -> VkOffset3D -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkImageCopy -- | srcSubresource and dstSubresource are -- VkImageSubresourceLayers structures specifying the image -- subresources of the images used for the source and destination image -- data, respectively. [$sel:vkSrcSubresource:VkImageCopy] :: VkImageCopy -> VkImageSubresourceLayers -- | srcOffset and dstOffset select the initial -- x, y, and z offsets in texels of the -- sub-regions of the source and destination image data. [$sel:vkSrcOffset:VkImageCopy] :: VkImageCopy -> VkOffset3D [$sel:vkDstSubresource:VkImageCopy] :: VkImageCopy -> VkImageSubresourceLayers [$sel:vkDstOffset:VkImageCopy] :: VkImageCopy -> VkOffset3D -- | extent is the size in texels of the image to copy in -- width, height and depth. [$sel:vkExtent:VkImageCopy] :: VkImageCopy -> VkExtent3D -- | VkImageBlit - Structure specifying an image blit operation -- --

Description

-- -- For each element of the pRegions array, a blit operation is -- performed the specified source and destination regions. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkImageSubresourceLayers, VkOffset3D, -- vkCmdBlitImage data VkImageBlit VkImageBlit :: VkImageSubresourceLayers -> Vector 2 VkOffset3D -> VkImageSubresourceLayers -> Vector 2 VkOffset3D -> VkImageBlit -- | srcSubresource is the subresource to blit from. [$sel:vkSrcSubresource:VkImageBlit] :: VkImageBlit -> VkImageSubresourceLayers -- | srcOffsets is an array of two VkOffset3D structures -- specifying the bounds of the source region within -- srcSubresource. [$sel:vkSrcOffsets:VkImageBlit] :: VkImageBlit -> Vector 2 VkOffset3D -- | dstSubresource is the subresource to blit into. [$sel:vkDstSubresource:VkImageBlit] :: VkImageBlit -> VkImageSubresourceLayers -- | dstOffsets is an array of two VkOffset3D structures -- specifying the bounds of the destination region within -- dstSubresource. [$sel:vkDstOffsets:VkImageBlit] :: VkImageBlit -> Vector 2 VkOffset3D -- | VkBufferImageCopy - Structure specifying a buffer image copy operation -- --

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: -- -- -- -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkDeviceSize, VkExtent3D, -- VkImageSubresourceLayers, VkOffset3D, -- vkCmdCopyBufferToImage, vkCmdCopyImageToBuffer data VkBufferImageCopy VkBufferImageCopy :: VkDeviceSize -> Word32 -> Word32 -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkBufferImageCopy -- | bufferOffset is the offset in bytes from the start of the -- buffer object where the image data is copied from or to. [$sel:vkBufferOffset:VkBufferImageCopy] :: VkBufferImageCopy -> VkDeviceSize -- | bufferRowLength and bufferImageHeight specify the -- data in buffer memory as a subregion of a larger two- or -- three-dimensional image, and control the addressing calculations of -- data in buffer memory. If either of these values is zero, that aspect -- of the buffer memory is considered to be tightly packed according to -- the imageExtent. [$sel:vkBufferRowLength:VkBufferImageCopy] :: VkBufferImageCopy -> Word32 [$sel:vkBufferImageHeight:VkBufferImageCopy] :: VkBufferImageCopy -> Word32 -- | imageSubresource is a VkImageSubresourceLayers used to -- specify the specific image subresources of the image used for the -- source or destination image data. [$sel:vkImageSubresource:VkBufferImageCopy] :: VkBufferImageCopy -> VkImageSubresourceLayers -- | imageOffset selects the initial x, y, -- z offsets in texels of the sub-region of the source or -- destination image data. [$sel:vkImageOffset:VkBufferImageCopy] :: VkBufferImageCopy -> VkOffset3D -- | imageExtent is the size in texels of the image to copy in -- width, height and depth. [$sel:vkImageExtent:VkBufferImageCopy] :: VkBufferImageCopy -> VkExtent3D -- | VkImageResolve - Structure specifying an image resolve operation -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkExtent3D, VkImageSubresourceLayers, VkOffset3D, -- vkCmdResolveImage data VkImageResolve VkImageResolve :: VkImageSubresourceLayers -> VkOffset3D -> VkImageSubresourceLayers -> VkOffset3D -> VkExtent3D -> VkImageResolve -- | srcSubresource and dstSubresource are -- VkImageSubresourceLayers structures specifying the image -- subresources of the images used for the source and destination image -- data, respectively. Resolve of depth/stencil images is not supported. [$sel:vkSrcSubresource:VkImageResolve] :: VkImageResolve -> VkImageSubresourceLayers -- | srcOffset and dstOffset select the initial -- x, y, and z offsets in texels of the -- sub-regions of the source and destination image data. [$sel:vkSrcOffset:VkImageResolve] :: VkImageResolve -> VkOffset3D [$sel:vkDstSubresource:VkImageResolve] :: VkImageResolve -> VkImageSubresourceLayers [$sel:vkDstOffset:VkImageResolve] :: VkImageResolve -> VkOffset3D -- | extent is the size in texels of the source image to resolve -- in width, height and depth. [$sel:vkExtent:VkImageResolve] :: VkImageResolve -> VkExtent3D -- | VkRenderPassBeginInfo - Structure specifying render pass begin info -- --

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. -- -- When multiview is enabled, the resolve operation at the end of a -- subpass applies to all views in the view mask. -- -- 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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkClearValue, VkFramebuffer, VkRect2D, -- VkRenderPass, VkStructureType, -- vkCmdBeginRenderPass data VkRenderPassBeginInfo VkRenderPassBeginInfo :: VkStructureType -> Ptr () -> VkRenderPass -> VkFramebuffer -> VkRect2D -> Word32 -> Ptr VkClearValue -> VkRenderPassBeginInfo -- | sType is the type of this structure. [$sel:vkSType:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Ptr () -- | renderPass is the render pass to begin an instance of. [$sel:vkRenderPass:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkRenderPass -- | framebuffer is the framebuffer containing the attachments -- that are used with the render pass. [$sel:vkFramebuffer:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkFramebuffer -- | renderArea is the render area that is affected by the render -- pass instance, and is described in more detail below. [$sel:vkRenderArea:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> VkRect2D -- | clearValueCount is the number of elements in -- pClearValues. [$sel:vkClearValueCount:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Word32 -- | pClearValues is an array of VkClearValue structures -- that contains clear values for each attachment, if the attachment uses -- a loadOp value of VK_ATTACHMENT_LOAD_OP_CLEAR or if -- the attachment has a depth/stencil format and uses a -- stencilLoadOp value of VK_ATTACHMENT_LOAD_OP_CLEAR. -- The array is indexed by attachment number. Only elements corresponding -- to cleared attachments are used. Other elements of -- pClearValues are ignored. [$sel:vkPClearValues:VkRenderPassBeginInfo] :: VkRenderPassBeginInfo -> Ptr VkClearValue -- | VkClearDepthStencilValue - Structure specifying a clear depth stencil -- value -- --

Description

-- --

Valid Usage

-- -- -- --

See Also

-- -- VkClearValue, vkCmdClearDepthStencilImage data VkClearDepthStencilValue VkClearDepthStencilValue :: CFloat -> Word32 -> VkClearDepthStencilValue -- | depth is the clear value for the depth aspect of the -- depth/stencil attachment. It is a floating-point value which is -- automatically converted to the attachment’s format. [$sel:vkDepth:VkClearDepthStencilValue] :: VkClearDepthStencilValue -> CFloat -- | stencil is the clear value for the stencil aspect of the -- depth/stencil attachment. It is a 32-bit integer value which is -- converted to the attachment’s format by taking the appropriate number -- of LSBs. [$sel:vkStencil:VkClearDepthStencilValue] :: VkClearDepthStencilValue -> Word32 -- | VkClearAttachment - Structure specifying a clear attachment -- --

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 VkAttachmentDescription to -- VK_ATTACHMENT_LOAD_OP_CLEAR, as described for -- vkCreateRenderPass. -- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkClearValue, VkImageAspectFlags, -- vkCmdClearAttachments data VkClearAttachment VkClearAttachment :: VkImageAspectFlags -> Word32 -> VkClearValue -> VkClearAttachment -- | aspectMask is a mask selecting the color, depth and/or -- stencil aspects of the attachment to be cleared. aspectMask -- can include VK_IMAGE_ASPECT_COLOR_BIT for color -- attachments, VK_IMAGE_ASPECT_DEPTH_BIT for depth/stencil -- attachments with a depth component, and -- VK_IMAGE_ASPECT_STENCIL_BIT for depth/stencil attachments -- with a stencil component. If the subpass’s depth/stencil attachment is -- VK_ATTACHMENT_UNUSED, then the clear has no effect. [$sel:vkAspectMask:VkClearAttachment] :: VkClearAttachment -> VkImageAspectFlags -- | colorAttachment is only meaningful if -- VK_IMAGE_ASPECT_COLOR_BIT is set in aspectMask, in -- which case it is an index to the pColorAttachments array in -- the VkSubpassDescription structure of the current subpass which -- selects the color attachment to clear. If colorAttachment is -- VK_ATTACHMENT_UNUSED then the clear has no effect. [$sel:vkColorAttachment:VkClearAttachment] :: VkClearAttachment -> Word32 -- | clearValue is the color or depth/stencil value to clear the -- attachment to, as described in Clear Values below. [$sel:vkClearValue:VkClearAttachment] :: VkClearAttachment -> VkClearValue -- | VkDrawIndirectCommand - Structure specifying a draw indirect command -- --

Description

-- -- The members of VkDrawIndirectCommand have the same meaning as -- the similarly named parameters of vkCmdDraw. -- --

Valid Usage

-- -- -- -- -- --

See Also

-- -- vkCmdDrawIndirect data VkDrawIndirectCommand VkDrawIndirectCommand :: Word32 -> Word32 -> Word32 -> Word32 -> VkDrawIndirectCommand -- | vertexCount is the number of vertices to draw. [$sel:vkVertexCount:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32 -- | instanceCount is the number of instances to draw. [$sel:vkInstanceCount:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32 -- | firstVertex is the index of the first vertex to draw. [$sel:vkFirstVertex:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32 -- | firstInstance is the instance ID of the first instance to -- draw. [$sel:vkFirstInstance:VkDrawIndirectCommand] :: VkDrawIndirectCommand -> Word32 -- | VkDrawIndexedIndirectCommand - Structure specifying a draw indexed -- indirect command -- --

Description

-- -- The members of VkDrawIndexedIndirectCommand have the same -- meaning as the similarly named parameters of vkCmdDrawIndexed. -- --

Valid Usage

-- -- -- -- -- --

See Also

-- -- vkCmdDrawIndexedIndirect data VkDrawIndexedIndirectCommand VkDrawIndexedIndirectCommand :: Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> VkDrawIndexedIndirectCommand -- | indexCount is the number of vertices to draw. [$sel:vkIndexCount:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32 -- | instanceCount is the number of instances to draw. [$sel:vkInstanceCount:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32 -- | firstIndex is the base index within the index buffer. [$sel:vkFirstIndex:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32 -- | vertexOffset is the value added to the vertex index before -- indexing into the vertex buffer. [$sel:vkVertexOffset:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Int32 -- | firstInstance is the instance ID of the first instance to -- draw. [$sel:vkFirstInstance:VkDrawIndexedIndirectCommand] :: VkDrawIndexedIndirectCommand -> Word32 -- | VkDispatchIndirectCommand - Structure specifying a dispatch indirect -- command -- --

Description

-- -- The members of VkDispatchIndirectCommand have the same -- meaning as the corresponding parameters of vkCmdDispatch. -- --

Valid Usage

-- -- -- -- -- --

See Also

-- -- vkCmdDispatchIndirect data VkDispatchIndirectCommand VkDispatchIndirectCommand :: Word32 -> Word32 -> Word32 -> VkDispatchIndirectCommand -- | x is the number of local workgroups to dispatch in the X -- dimension. [$sel:vkX:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32 -- | y is the number of local workgroups to dispatch in the Y -- dimension. [$sel:vkY:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32 -- | z is the number of local workgroups to dispatch in the Z -- dimension. [$sel:vkZ:VkDispatchIndirectCommand] :: VkDispatchIndirectCommand -> Word32 -- | VkClearColorValue - Structure specifying a clear color value -- --

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

-- -- VkClearValue, vkCmdClearColorImage data VkClearColorValue VkFloat32 :: (Vector 4 CFloat) -> VkClearColorValue VkInt32 :: (Vector 4 Int32) -> VkClearColorValue VkUint32 :: (Vector 4 Word32) -> VkClearColorValue -- | VkClearValue - Structure specifying a clear value -- --

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

-- -- -- --

See Also

-- -- VkClearAttachment, VkClearColorValue, -- VkClearDepthStencilValue, VkRenderPassBeginInfo data VkClearValue VkColor :: VkClearColorValue -> VkClearValue VkDepthStencil :: VkClearDepthStencilValue -> VkClearValue -- | VkStencilFaceFlags - Bitmask of VkStencilFaceFlagBits -- --

Description

-- -- VkStencilFaceFlags is a bitmask type for setting a mask of -- zero or more VkStencilFaceFlagBits. -- --

See Also

-- -- VkStencilFaceFlagBits, vkCmdSetStencilCompareMask, -- vkCmdSetStencilReference, vkCmdSetStencilWriteMask type VkStencilFaceFlags = VkStencilFaceFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearAttachment instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearAttachment instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearValue instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearValue instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearColorValue instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearColorValue instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkDispatchIndirectCommand instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkDispatchIndirectCommand instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndexedIndirectCommand instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndexedIndirectCommand instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndirectCommand instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndirectCommand instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearDepthStencilValue instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearDepthStencilValue instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageResolve instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageResolve instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageBlit instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageBlit instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageCopy instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageCopy instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferCopy instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferCopy instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageSubresourceLayers instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageSubresourceLayers instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearRect instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearRect instance Data.Bits.FiniteBits Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits instance Data.Bits.Bits Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType instance GHC.Classes.Ord Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType instance GHC.Classes.Eq Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkRenderPassBeginInfo instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearAttachment instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearValue instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearColorValue instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkDispatchIndirectCommand instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndexedIndirectCommand instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkDrawIndirectCommand instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearDepthStencilValue instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageResolve instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferImageCopy instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageBlit instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageCopy instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferCopy instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageMemoryBarrier instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkBufferMemoryBarrier instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkMemoryBarrier instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkImageSubresourceLayers instance Foreign.Storable.Storable Graphics.Vulkan.Core10.CommandBufferBuilding.VkClearRect instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBufferBuilding.VkStencilFaceFlagBits instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBufferBuilding.VkSubpassContents instance GHC.Show.Show Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType instance GHC.Read.Read Graphics.Vulkan.Core10.CommandBufferBuilding.VkIndexType module Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands -- | VkIndirectCommandsTokenTypeNVX - Enum specifying -- --

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

-- -- VkIndirectCommandsLayoutTokenNVX, -- VkIndirectCommandsTokenNVX newtype VkIndirectCommandsTokenTypeNVX VkIndirectCommandsTokenTypeNVX :: Int32 -> VkIndirectCommandsTokenTypeNVX -- | VkObjectEntryTypeNVX - Enum specifying object table entry type -- --

See Also

-- -- VkObjectTableCreateInfoNVX, -- VkObjectTableDescriptorSetEntryNVX, -- VkObjectTableEntryNVX, VkObjectTableIndexBufferEntryNVX, -- VkObjectTablePipelineEntryNVX, -- VkObjectTablePushConstantEntryNVX, -- VkObjectTableVertexBufferEntryNVX, -- vkUnregisterObjectsNVX newtype VkObjectEntryTypeNVX VkObjectEntryTypeNVX :: Int32 -> VkObjectEntryTypeNVX -- | VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX specifies a -- VkDescriptorSet resource entry that is registered via -- VkObjectTableDescriptorSetEntryNVX. -- | VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX specifies a -- VkPipeline resource entry that is registered via -- VkObjectTablePipelineEntryNVX. -- | VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX specifies a -- VkBuffer resource entry that is registered via -- VkObjectTableIndexBufferEntryNVX. -- | VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX specifies a -- VkBuffer resource entry that is registered via -- VkObjectTableVertexBufferEntryNVX. -- | VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX specifies the resource -- entry is registered via VkObjectTablePushConstantEntryNVX. -- | VkIndirectCommandsLayoutUsageFlagBitsNVX - Bitmask specifying allowed -- usage of a indirect commands layout -- --

See Also

-- -- VkIndirectCommandsLayoutUsageFlagsNVX newtype VkIndirectCommandsLayoutUsageFlagBitsNVX VkIndirectCommandsLayoutUsageFlagBitsNVX :: VkFlags -> VkIndirectCommandsLayoutUsageFlagBitsNVX -- | 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. -- | 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. -- | 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). -- | 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. -- | VkObjectEntryUsageFlagBitsNVX - Bitmask specifying allowed usage of an -- object entry -- --

See Also

-- -- VkObjectEntryUsageFlagsNVX newtype VkObjectEntryUsageFlagBitsNVX VkObjectEntryUsageFlagBitsNVX :: VkFlags -> VkObjectEntryUsageFlagBitsNVX -- | VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX specifies that the -- resource is bound to VK_PIPELINE_BIND_POINT_GRAPHICS -- | VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX specifies that the -- resource is bound to VK_PIPELINE_BIND_POINT_COMPUTE -- | VkObjectTableNVX - Opaque handle to an object table -- --

Description

-- --

See Also

-- -- VkCmdProcessCommandsInfoNVX, -- VkCmdReserveSpaceForCommandsInfoNVX, -- vkCreateObjectTableNVX, vkDestroyObjectTableNVX, -- vkRegisterObjectsNVX, vkUnregisterObjectsNVX type VkObjectTableNVX = Ptr VkObjectTableNVX_T -- | VkIndirectCommandsLayoutNVX - Opaque handle to an indirect commands -- layout object -- --

Description

-- --

See Also

-- -- VkCmdProcessCommandsInfoNVX, -- VkCmdReserveSpaceForCommandsInfoNVX, -- vkCreateIndirectCommandsLayoutNVX, -- vkDestroyIndirectCommandsLayoutNVX type VkIndirectCommandsLayoutNVX = Ptr VkIndirectCommandsLayoutNVX_T -- | vkCmdProcessCommandsNVX - Performs the generation of commands on the -- device -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCmdProcessCommandsInfoNVX, VkCommandBuffer vkCmdProcessCommandsNVX :: ("commandBuffer" ::: VkCommandBuffer) -> ("pProcessCommandsInfo" ::: Ptr VkCmdProcessCommandsInfoNVX) -> IO () -- | vkCmdReserveSpaceForCommandsNVX - Perform a reservation of command -- buffer space -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

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

-- -- VkCmdReserveSpaceForCommandsInfoNVX, VkCommandBuffer vkCmdReserveSpaceForCommandsNVX :: ("commandBuffer" ::: VkCommandBuffer) -> ("pReserveSpaceInfo" ::: Ptr VkCmdReserveSpaceForCommandsInfoNVX) -> IO () -- | vkCreateIndirectCommandsLayoutNVX - Create an indirect command layout -- object -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkIndirectCommandsLayoutCreateInfoNVX, -- VkIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkIndirectCommandsLayoutCreateInfoNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pIndirectCommandsLayout" ::: Ptr VkIndirectCommandsLayoutNVX) -> IO VkResult -- | vkDestroyIndirectCommandsLayoutNVX - Destroy a object table -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX :: ("device" ::: VkDevice) -> ("indirectCommandsLayout" ::: VkIndirectCommandsLayoutNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkCreateObjectTableNVX - Create an object table -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, -- VkObjectTableCreateInfoNVX, VkObjectTableNVX vkCreateObjectTableNVX :: ("device" ::: VkDevice) -> ("pCreateInfo" ::: Ptr VkObjectTableCreateInfoNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pObjectTable" ::: Ptr VkObjectTableNVX) -> IO VkResult -- | vkDestroyObjectTableNVX - Destroy a object table -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkAllocationCallbacks, VkDevice, VkObjectTableNVX vkDestroyObjectTableNVX :: ("device" ::: VkDevice) -> ("objectTable" ::: VkObjectTableNVX) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () -- | vkRegisterObjectsNVX - Register resource bindings in an object table -- --

Parameters

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkObjectTableEntryNVX, VkObjectTableNVX 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

-- -- -- -- -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

Return Codes

-- -- -- -- -- --

See Also

-- -- VkDevice, VkObjectEntryTypeNVX, VkObjectTableNVX 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

-- -- -- -- -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDeviceGeneratedCommandsFeaturesNVX, -- VkDeviceGeneratedCommandsLimitsNVX, VkPhysicalDevice vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkDeviceGeneratedCommandsFeaturesNVX) -> ("pLimits" ::: Ptr VkDeviceGeneratedCommandsLimitsNVX) -> IO () -- | VkDeviceGeneratedCommandsFeaturesNVX - Structure specifying physical -- device support -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBool32, VkStructureType, -- vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX data VkDeviceGeneratedCommandsFeaturesNVX VkDeviceGeneratedCommandsFeaturesNVX :: VkStructureType -> Ptr () -> VkBool32 -> VkDeviceGeneratedCommandsFeaturesNVX -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGeneratedCommandsFeaturesNVX] :: VkDeviceGeneratedCommandsFeaturesNVX -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGeneratedCommandsFeaturesNVX] :: VkDeviceGeneratedCommandsFeaturesNVX -> Ptr () -- | computeBindingPointSupport specifies whether the -- VkObjectTableNVX supports entries with -- VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX bit set and -- VkIndirectCommandsLayoutNVX supports -- VK_PIPELINE_BIND_POINT_COMPUTE. [$sel:vkComputeBindingPointSupport:VkDeviceGeneratedCommandsFeaturesNVX] :: VkDeviceGeneratedCommandsFeaturesNVX -> VkBool32 -- | VkDeviceGeneratedCommandsLimitsNVX - Structure specifying physical -- device limits -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkStructureType, -- vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX data VkDeviceGeneratedCommandsLimitsNVX VkDeviceGeneratedCommandsLimitsNVX :: VkStructureType -> Ptr () -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkDeviceGeneratedCommandsLimitsNVX -- | sType is the type of this structure. [$sel:vkSType:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Ptr () -- | maxIndirectCommandsLayoutTokenCount the maximum number of -- tokens in VkIndirectCommandsLayoutNVX. [$sel:vkMaxIndirectCommandsLayoutTokenCount:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32 -- | maxObjectEntryCounts the maximum number of entries per -- resource type in VkObjectTableNVX. [$sel:vkMaxObjectEntryCounts:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32 -- | minSequenceCountBufferOffsetAlignment the minimum alignment -- for memory addresses optionally used in -- vkCmdProcessCommandsNVX. [$sel:vkMinSequenceCountBufferOffsetAlignment:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32 -- | minSequenceIndexBufferOffsetAlignment the minimum alignment -- for memory addresses optionally used in -- vkCmdProcessCommandsNVX. [$sel:vkMinSequenceIndexBufferOffsetAlignment:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32 -- | minCommandsTokenBufferOffsetAlignment the minimum alignment -- for memory addresses optionally used in -- vkCmdProcessCommandsNVX. [$sel:vkMinCommandsTokenBufferOffsetAlignment:VkDeviceGeneratedCommandsLimitsNVX] :: VkDeviceGeneratedCommandsLimitsNVX -> Word32 -- | VkIndirectCommandsTokenNVX - Structure specifying parameters for the -- reservation of command buffer space -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkCmdProcessCommandsInfoNVX, -- VkDeviceSize, VkIndirectCommandsTokenTypeNVX data VkIndirectCommandsTokenNVX VkIndirectCommandsTokenNVX :: VkIndirectCommandsTokenTypeNVX -> VkBuffer -> VkDeviceSize -> VkIndirectCommandsTokenNVX -- | tokenType specifies the token command type. [$sel:vkTokenType:VkIndirectCommandsTokenNVX] :: VkIndirectCommandsTokenNVX -> VkIndirectCommandsTokenTypeNVX -- | buffer specifies the VkBuffer storing the functional -- arguments for each squence. These argumetns can be written by the -- device. [$sel:vkBuffer:VkIndirectCommandsTokenNVX] :: VkIndirectCommandsTokenNVX -> VkBuffer -- | offset specified an offset into buffer where the -- arguments start. [$sel:vkOffset:VkIndirectCommandsTokenNVX] :: VkIndirectCommandsTokenNVX -> VkDeviceSize -- | VkIndirectCommandsLayoutTokenNVX - Struct specifying the details of an -- indirect command layout token -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- --

See Also

-- -- VkIndirectCommandsLayoutCreateInfoNVX, -- VkIndirectCommandsTokenTypeNVX data VkIndirectCommandsLayoutTokenNVX VkIndirectCommandsLayoutTokenNVX :: VkIndirectCommandsTokenTypeNVX -> Word32 -> Word32 -> Word32 -> VkIndirectCommandsLayoutTokenNVX [$sel:vkTokenType:VkIndirectCommandsLayoutTokenNVX] :: VkIndirectCommandsLayoutTokenNVX -> VkIndirectCommandsTokenTypeNVX -- | bindingUnit has a different meaning depending on the type, -- please refer pseudo code further down for details. [$sel:vkBindingUnit:VkIndirectCommandsLayoutTokenNVX] :: VkIndirectCommandsLayoutTokenNVX -> Word32 -- | dynamicCount has a different meaning depending on the type, -- please refer pseudo code further down for details. [$sel:vkDynamicCount:VkIndirectCommandsLayoutTokenNVX] :: VkIndirectCommandsLayoutTokenNVX -> Word32 -- | divisor defines the rate at which the input data buffers are -- accessed. [$sel:vkDivisor:VkIndirectCommandsLayoutTokenNVX] :: VkIndirectCommandsLayoutTokenNVX -> Word32 -- | VkIndirectCommandsLayoutCreateInfoNVX - Structure specifying the -- parameters of a newly created indirect commands layout object -- --

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

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkIndirectCommandsLayoutTokenNVX, -- VkIndirectCommandsLayoutUsageFlagsNVX, -- VkPipelineBindPoint, VkStructureType, -- vkCreateIndirectCommandsLayoutNVX data VkIndirectCommandsLayoutCreateInfoNVX VkIndirectCommandsLayoutCreateInfoNVX :: VkStructureType -> Ptr () -> VkPipelineBindPoint -> VkIndirectCommandsLayoutUsageFlagsNVX -> Word32 -> Ptr VkIndirectCommandsLayoutTokenNVX -> VkIndirectCommandsLayoutCreateInfoNVX -- | sType is the type of this structure. [$sel:vkSType:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> Ptr () -- | pipelineBindPoint is the VkPipelineBindPoint that -- this layout targets. [$sel:vkPipelineBindPoint:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> VkPipelineBindPoint -- | flags is a bitmask of -- VkIndirectCommandsLayoutUsageFlagBitsNVX specifying usage hints -- of this layout. [$sel:vkFlags:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> VkIndirectCommandsLayoutUsageFlagsNVX -- | tokenCount is the length of the individual command sequnce. [$sel:vkTokenCount:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> Word32 -- | pTokens is an array describing each command token in detail. -- See VkIndirectCommandsTokenTypeNVX and -- VkIndirectCommandsLayoutTokenNVX below for details. [$sel:vkPTokens:VkIndirectCommandsLayoutCreateInfoNVX] :: VkIndirectCommandsLayoutCreateInfoNVX -> Ptr VkIndirectCommandsLayoutTokenNVX -- | VkCmdProcessCommandsInfoNVX - Structure specifying parameters for the -- generation of commands -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkCommandBuffer, VkDeviceSize, -- VkIndirectCommandsLayoutNVX, VkIndirectCommandsTokenNVX, -- VkObjectTableNVX, VkStructureType, -- vkCmdProcessCommandsNVX data VkCmdProcessCommandsInfoNVX VkCmdProcessCommandsInfoNVX :: VkStructureType -> Ptr () -> VkObjectTableNVX -> VkIndirectCommandsLayoutNVX -> Word32 -> Ptr VkIndirectCommandsTokenNVX -> Word32 -> VkCommandBuffer -> VkBuffer -> VkDeviceSize -> VkBuffer -> VkDeviceSize -> VkCmdProcessCommandsInfoNVX -- | sType is the type of this structure. [$sel:vkSType:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> Ptr () -- | objectTable is the VkObjectTableNVX to be used for -- the generation process. Only registered objects at the time -- vkCmdReserveSpaceForCommandsNVX is called, will be taken into -- account for the reservation. [$sel:vkObjectTable:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkObjectTableNVX -- | indirectCommandsLayout is the -- VkIndirectCommandsLayoutNVX that provides the command -- sequence to generate. [$sel:vkIndirectCommandsLayout:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkIndirectCommandsLayoutNVX -- | indirectCommandsTokenCount defines the number of input tokens -- used. [$sel:vkIndirectCommandsTokenCount:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> Word32 -- | pIndirectCommandsTokens provides an array of -- VkIndirectCommandsTokenNVX that reference the input data for -- each token command. [$sel:vkPIndirectCommandsTokens:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> Ptr VkIndirectCommandsTokenNVX -- | maxSequencesCount is the maximum number of sequences for -- which command buffer space will be reserved. If -- sequencesCountBuffer is VK_NULL_HANDLE, this is also -- the actual number of sequences generated. [$sel:vkMaxSequencesCount:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> Word32 -- | targetCommandBuffer can be the secondary -- VkCommandBuffer in which the commands should be recorded. If -- targetCommandBuffer is NULL an implicit reservation -- as well as execution takes place on the processing -- VkCommandBuffer. [$sel:vkTargetCommandBuffer:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkCommandBuffer -- | sequencesCountBuffer can be VkBuffer from -- which the actual amount of sequences is sourced from as -- uint32_t value. [$sel:vkSequencesCountBuffer:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkBuffer -- | sequencesCountOffset is the byte offset into -- sequencesCountBuffer where the count value is stored. [$sel:vkSequencesCountOffset:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkDeviceSize -- | sequencesIndexBuffer must be set if -- indirectCommandsLayout’s -- VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT is -- set and provides the used sequence indices as uint32_t array. -- Otherwise it must be VK_NULL_HANDLE. [$sel:vkSequencesIndexBuffer:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkBuffer -- | sequencesIndexOffset is the byte offset into -- sequencesIndexBuffer where the index values start. [$sel:vkSequencesIndexOffset:VkCmdProcessCommandsInfoNVX] :: VkCmdProcessCommandsInfoNVX -> VkDeviceSize -- | VkCmdReserveSpaceForCommandsInfoNVX - Structure specifying parameters -- for the reservation of command buffer space -- --

Description

-- --

Valid Usage (Implicit)

-- -- -- -- -- --

Host Synchronization

-- -- -- --

See Also

-- -- VkIndirectCommandsLayoutNVX, VkObjectTableNVX, -- VkStructureType, vkCmdReserveSpaceForCommandsNVX data VkCmdReserveSpaceForCommandsInfoNVX VkCmdReserveSpaceForCommandsInfoNVX :: VkStructureType -> Ptr () -> VkObjectTableNVX -> VkIndirectCommandsLayoutNVX -> Word32 -> VkCmdReserveSpaceForCommandsInfoNVX -- | sType is the type of this structure. [$sel:vkSType:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> Ptr () -- | objectTable is the VkObjectTableNVX to be used for -- the generation process. Only registered objects at the time -- vkCmdReserveSpaceForCommandsNVX is called, will be taken into -- account for the reservation. [$sel:vkObjectTable:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> VkObjectTableNVX -- | indirectCommandsLayout is the -- VkIndirectCommandsLayoutNVX that must also be used at -- generation time. [$sel:vkIndirectCommandsLayout:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> VkIndirectCommandsLayoutNVX -- | maxSequencesCount is the maximum number of sequences for -- which command buffer space will be reserved. [$sel:vkMaxSequencesCount:VkCmdReserveSpaceForCommandsInfoNVX] :: VkCmdReserveSpaceForCommandsInfoNVX -> Word32 -- | VkObjectTableCreateInfoNVX - Structure specifying the parameters of a -- newly created object table -- --

Description

-- --

Valid Usage

-- -- -- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkObjectEntryTypeNVX, VkObjectEntryUsageFlagsNVX, -- VkStructureType, vkCreateObjectTableNVX data VkObjectTableCreateInfoNVX VkObjectTableCreateInfoNVX :: VkStructureType -> Ptr () -> Word32 -> Ptr VkObjectEntryTypeNVX -> Ptr Word32 -> Ptr VkObjectEntryUsageFlagsNVX -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> VkObjectTableCreateInfoNVX -- | sType is the type of this structure. [$sel:vkSType:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> VkStructureType -- | pNext is NULL or a pointer to an extension-specific -- structure. [$sel:vkPNext:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Ptr () -- | objectCount is the number of entry configurations that the -- object table supports. [$sel:vkObjectCount:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32 -- | pObjectEntryTypes is an array of VkObjectEntryTypeNVX -- values providing the entry type of a given configuration. [$sel:vkPObjectEntryTypes:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Ptr VkObjectEntryTypeNVX -- | pObjectEntryCounts is an array of counts of how many objects -- can be registered in the table. [$sel:vkPObjectEntryCounts:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Ptr Word32 -- | pObjectEntryUsageFlags is an array of bitmasks of -- VkObjectEntryUsageFlagBitsNVX specifying the binding usage of -- the entry. [$sel:vkPObjectEntryUsageFlags:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Ptr VkObjectEntryUsageFlagsNVX -- | maxUniformBuffersPerDescriptor is the maximum number of -- VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or -- VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC used by any single -- registered VkDescriptorSet in this table. [$sel:vkMaxUniformBuffersPerDescriptor:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32 -- | maxStorageBuffersPerDescriptor is the maximum number of -- VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or -- VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC used by any single -- registered VkDescriptorSet in this table. [$sel:vkMaxStorageBuffersPerDescriptor:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32 -- | maxStorageImagesPerDescriptor is the maximum number of -- VK_DESCRIPTOR_TYPE_STORAGE_IMAGE or -- VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER used by any single -- registered VkDescriptorSet in this table. [$sel:vkMaxStorageImagesPerDescriptor:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32 -- | maxSampledImagesPerDescriptor is the maximum number of -- VK_DESCRIPTOR_TYPE_SAMPLER, -- VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, -- VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or -- VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT used by any single -- registered VkDescriptorSet in this table. [$sel:vkMaxSampledImagesPerDescriptor:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32 -- | maxPipelineLayouts is the maximum number of unique -- VkPipelineLayout used by any registered -- VkDescriptorSet or VkPipeline in this table. [$sel:vkMaxPipelineLayouts:VkObjectTableCreateInfoNVX] :: VkObjectTableCreateInfoNVX -> Word32 -- | VkObjectTableEntryNVX - Common parameters of an object table resource -- entry -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkObjectEntryTypeNVX, VkObjectEntryUsageFlagsNVX, -- vkRegisterObjectsNVX data VkObjectTableEntryNVX VkObjectTableEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkObjectTableEntryNVX -- | type defines the entry type [$sel:vkType:VkObjectTableEntryNVX] :: VkObjectTableEntryNVX -> VkObjectEntryTypeNVX -- | flags defines which VkPipelineBindPoint the resource -- can be used with. Some entry types allow only a single flag to be set. [$sel:vkFlags:VkObjectTableEntryNVX] :: VkObjectTableEntryNVX -> VkObjectEntryUsageFlagsNVX -- | VkObjectTablePipelineEntryNVX - Parameters of an object table pipeline -- entry -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkObjectEntryTypeNVX, VkObjectEntryUsageFlagsNVX, -- VkPipeline data VkObjectTablePipelineEntryNVX VkObjectTablePipelineEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkPipeline -> VkObjectTablePipelineEntryNVX [$sel:vkType:VkObjectTablePipelineEntryNVX] :: VkObjectTablePipelineEntryNVX -> VkObjectEntryTypeNVX [$sel:vkFlags:VkObjectTablePipelineEntryNVX] :: VkObjectTablePipelineEntryNVX -> VkObjectEntryUsageFlagsNVX -- | pipeline specifies the VkPipeline that this resource -- entry references. [$sel:vkPipeline:VkObjectTablePipelineEntryNVX] :: VkObjectTablePipelineEntryNVX -> VkPipeline -- | VkObjectTableDescriptorSetEntryNVX - Parameters of an object table -- descriptor set entry -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkDescriptorSet, VkObjectEntryTypeNVX, -- VkObjectEntryUsageFlagsNVX, VkPipelineLayout data VkObjectTableDescriptorSetEntryNVX VkObjectTableDescriptorSetEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkPipelineLayout -> VkDescriptorSet -> VkObjectTableDescriptorSetEntryNVX [$sel:vkType:VkObjectTableDescriptorSetEntryNVX] :: VkObjectTableDescriptorSetEntryNVX -> VkObjectEntryTypeNVX [$sel:vkFlags:VkObjectTableDescriptorSetEntryNVX] :: VkObjectTableDescriptorSetEntryNVX -> VkObjectEntryUsageFlagsNVX -- | pipelineLayout specifies the VkPipelineLayout that -- the descriptorSet is used with. [$sel:vkPipelineLayout:VkObjectTableDescriptorSetEntryNVX] :: VkObjectTableDescriptorSetEntryNVX -> VkPipelineLayout -- | descriptorSet specifies the VkDescriptorSet that can -- be bound with this entry. [$sel:vkDescriptorSet:VkObjectTableDescriptorSetEntryNVX] :: VkObjectTableDescriptorSetEntryNVX -> VkDescriptorSet -- | VkObjectTableVertexBufferEntryNVX - Parameters of an object table -- vertex buffer entry -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkObjectEntryTypeNVX, -- VkObjectEntryUsageFlagsNVX data VkObjectTableVertexBufferEntryNVX VkObjectTableVertexBufferEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkBuffer -> VkObjectTableVertexBufferEntryNVX [$sel:vkType:VkObjectTableVertexBufferEntryNVX] :: VkObjectTableVertexBufferEntryNVX -> VkObjectEntryTypeNVX [$sel:vkFlags:VkObjectTableVertexBufferEntryNVX] :: VkObjectTableVertexBufferEntryNVX -> VkObjectEntryUsageFlagsNVX -- | buffer specifies the VkBuffer that can be bound as -- vertex bufer [$sel:vkBuffer:VkObjectTableVertexBufferEntryNVX] :: VkObjectTableVertexBufferEntryNVX -> VkBuffer -- | VkObjectTableIndexBufferEntryNVX - Parameters of an object table index -- buffer entry -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkBuffer, VkIndexType, VkObjectEntryTypeNVX, -- VkObjectEntryUsageFlagsNVX data VkObjectTableIndexBufferEntryNVX VkObjectTableIndexBufferEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkBuffer -> VkIndexType -> VkObjectTableIndexBufferEntryNVX [$sel:vkType:VkObjectTableIndexBufferEntryNVX] :: VkObjectTableIndexBufferEntryNVX -> VkObjectEntryTypeNVX [$sel:vkFlags:VkObjectTableIndexBufferEntryNVX] :: VkObjectTableIndexBufferEntryNVX -> VkObjectEntryUsageFlagsNVX -- | buffer specifies the VkBuffer that can be bound as -- index buffer [$sel:vkBuffer:VkObjectTableIndexBufferEntryNVX] :: VkObjectTableIndexBufferEntryNVX -> VkBuffer -- | indexType specifies the VkIndexType used with this -- index buffer [$sel:vkIndexType:VkObjectTableIndexBufferEntryNVX] :: VkObjectTableIndexBufferEntryNVX -> VkIndexType -- | VkObjectTablePushConstantEntryNVX - Parameters of an object table push -- constant entry -- --

Description

-- --

Valid Usage

-- -- -- --

Valid Usage (Implicit)

-- -- -- -- -- --

See Also

-- -- VkObjectEntryTypeNVX, VkObjectEntryUsageFlagsNVX, -- VkPipelineLayout, VkShaderStageFlags data VkObjectTablePushConstantEntryNVX VkObjectTablePushConstantEntryNVX :: VkObjectEntryTypeNVX -> VkObjectEntryUsageFlagsNVX -> VkPipelineLayout -> VkShaderStageFlags -> VkObjectTablePushConstantEntryNVX [$sel:vkType:VkObjectTablePushConstantEntryNVX] :: VkObjectTablePushConstantEntryNVX -> VkObjectEntryTypeNVX [$sel:vkFlags:VkObjectTablePushConstantEntryNVX] :: VkObjectTablePushConstantEntryNVX -> VkObjectEntryUsageFlagsNVX -- | pipelineLayout specifies the VkPipelineLayout that -- the pushconstants are used with [$sel:vkPipelineLayout:VkObjectTablePushConstantEntryNVX] :: VkObjectTablePushConstantEntryNVX -> VkPipelineLayout -- | stageFlags specifies the VkShaderStageFlags that the -- pushconstants are used with [$sel:vkStageFlags:VkObjectTablePushConstantEntryNVX] :: VkObjectTablePushConstantEntryNVX -> VkShaderStageFlags -- | VkIndirectCommandsLayoutUsageFlagsNVX - Bitmask of -- VkIndirectCommandsLayoutUsageFlagBitsNVX -- --

Description

-- -- VkIndirectCommandsLayoutUsageFlagsNVX is a bitmask type for -- setting a mask of zero or more -- VkIndirectCommandsLayoutUsageFlagBitsNVX. -- --

See Also

-- -- VkIndirectCommandsLayoutCreateInfoNVX, -- VkIndirectCommandsLayoutUsageFlagBitsNVX type VkIndirectCommandsLayoutUsageFlagsNVX = VkIndirectCommandsLayoutUsageFlagBitsNVX -- | VkObjectEntryUsageFlagsNVX - Bitmask of VkObjectEntryUsageFlagBitsNVX -- --

Description

-- -- VkObjectEntryUsageFlagsNVX is a bitmask type for setting a -- mask of zero or more VkObjectEntryUsageFlagBitsNVX. -- --

See Also

-- -- VkObjectEntryUsageFlagBitsNVX, -- VkObjectTableCreateInfoNVX, -- VkObjectTableDescriptorSetEntryNVX, -- VkObjectTableEntryNVX, VkObjectTableIndexBufferEntryNVX, -- VkObjectTablePipelineEntryNVX, -- VkObjectTablePushConstantEntryNVX, -- VkObjectTableVertexBufferEntryNVX type VkObjectEntryUsageFlagsNVX = VkObjectEntryUsageFlagBitsNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableCreateInfoNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableCreateInfoNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableEntryNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableEntryNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePipelineEntryNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePipelineEntryNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableDescriptorSetEntryNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableDescriptorSetEntryNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableVertexBufferEntryNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableVertexBufferEntryNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableIndexBufferEntryNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableIndexBufferEntryNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePushConstantEntryNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePushConstantEntryNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutCreateInfoNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutCreateInfoNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdReserveSpaceForCommandsInfoNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdReserveSpaceForCommandsInfoNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutTokenNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutTokenNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsLimitsNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsLimitsNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsFeaturesNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsFeaturesNVX instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX instance Data.Bits.FiniteBits Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX instance Data.Bits.Bits Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX instance GHC.Classes.Ord Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX instance GHC.Classes.Eq Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableCreateInfoNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableEntryNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePipelineEntryNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableDescriptorSetEntryNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableVertexBufferEntryNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTableIndexBufferEntryNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectTablePushConstantEntryNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutCreateInfoNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdReserveSpaceForCommandsInfoNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkCmdProcessCommandsInfoNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutTokenNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsLimitsNVX instance Foreign.Storable.Storable Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkDeviceGeneratedCommandsFeaturesNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryUsageFlagBitsNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsLayoutUsageFlagBitsNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkObjectEntryTypeNVX instance GHC.Show.Show Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX instance GHC.Read.Read Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.VkIndirectCommandsTokenTypeNVX module Graphics.Vulkan.Extensions module Graphics.Vulkan.Core10 module Graphics.Vulkan