{-# language Strict #-} {-# language CPP #-} {-# language PatternSynonyms #-} {-# language DataKinds #-} {-# language TypeOperators #-} {-# language DuplicateRecordFields #-} module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_get_physical_device_properties2 ( pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 , pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 , pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 , pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 , pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 , pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 , vkGetPhysicalDeviceFeatures2 , vkGetPhysicalDeviceProperties2 , vkGetPhysicalDeviceFormatProperties2 , vkGetPhysicalDeviceImageFormatProperties2 , vkGetPhysicalDeviceQueueFamilyProperties2 , vkGetPhysicalDeviceMemoryProperties2 , vkGetPhysicalDeviceSparseImageFormatProperties2 , VkPhysicalDeviceFeatures2(..) , VkPhysicalDeviceProperties2(..) , VkFormatProperties2(..) , VkImageFormatProperties2(..) , VkPhysicalDeviceImageFormatInfo2(..) , VkQueueFamilyProperties2(..) , VkPhysicalDeviceMemoryProperties2(..) , VkSparseImageFormatProperties2(..) , VkPhysicalDeviceSparseImageFormatInfo2(..) ) where import Data.Word ( Word32 ) import Foreign.Ptr ( Ptr , plusPtr ) import Foreign.Storable ( Storable , Storable(..) ) import Graphics.Vulkan.NamedType ( (:::) ) import Graphics.Vulkan.Core10.Core ( VkFormat(..) , VkResult(..) , VkStructureType(..) ) import Graphics.Vulkan.Core10.DeviceInitialization ( VkFormatProperties(..) , VkImageFormatProperties(..) , VkImageTiling(..) , VkImageType(..) , VkPhysicalDeviceFeatures(..) , VkPhysicalDeviceMemoryProperties(..) , VkPhysicalDeviceProperties(..) , VkQueueFamilyProperties(..) , VkSampleCountFlagBits(..) , VkImageCreateFlags , VkImageUsageFlags , VkPhysicalDevice ) import Graphics.Vulkan.Core10.SparseResourceMemoryManagement ( VkSparseImageFormatProperties(..) ) -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2" pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = VkStructureType 1000059000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2" pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = VkStructureType 1000059001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2" pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = VkStructureType 1000059002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2" pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = VkStructureType 1000059003 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2" pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = VkStructureType 1000059004 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2" pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = VkStructureType 1000059005 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2" pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = VkStructureType 1000059006 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2" pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = VkStructureType 1000059007 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2" pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 :: VkStructureType pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = VkStructureType 1000059008 -- | vkGetPhysicalDeviceFeatures2 - Reports capabilities of a physical device -- -- = Parameters -- -- - @physicalDevice@ is the physical device from which to query the -- supported features. -- -- - @pFeatures@ is a pointer to a 'VkPhysicalDeviceFeatures2' structure -- in which the physical device features are returned. -- -- = 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) -- -- - @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle -- -- - @pFeatures@ /must/ be a valid pointer to a -- @VkPhysicalDeviceFeatures2@ structure -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice', -- 'VkPhysicalDeviceFeatures2' foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "vkGetPhysicalDeviceFeatures2" vkGetPhysicalDeviceFeatures2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures2) -> IO () -- | vkGetPhysicalDeviceProperties2 - Returns properties of a physical device -- -- = Parameters -- -- - @physicalDevice@ is the handle to the physical device whose -- properties will be queried. -- -- - @pProperties@ points to an instance of the -- 'VkPhysicalDeviceProperties2' structure, that will be filled with -- returned information. -- -- = 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) -- -- - @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle -- -- - @pProperties@ /must/ be a valid pointer to a -- @VkPhysicalDeviceProperties2@ structure -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice', -- 'VkPhysicalDeviceProperties2' foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "vkGetPhysicalDeviceProperties2" vkGetPhysicalDeviceProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties2) -> IO () -- | vkGetPhysicalDeviceFormatProperties2 - Lists physical device’s format -- capabilities -- -- = Parameters -- -- - @physicalDevice@ is the physical device from which to query the -- format properties. -- -- - @format@ is the format whose properties are queried. -- -- - @pFormatProperties@ is a pointer to a 'VkFormatProperties2' -- structure in which physical device properties for @format@ are -- returned. -- -- = Description -- -- @vkGetPhysicalDeviceFormatProperties2@ behaves similarly to -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceFormatProperties', -- with the ability to return extended information in a @pNext@ chain of -- output structures. -- -- == Valid Usage (Implicit) -- -- - @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle -- -- - @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat' -- value -- -- - @pFormatProperties@ /must/ be a valid pointer to a -- @VkFormatProperties2@ structure -- -- = See Also -- -- 'Graphics.Vulkan.Core10.Core.VkFormat', 'VkFormatProperties2', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice' foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "vkGetPhysicalDeviceFormatProperties2" vkGetPhysicalDeviceFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties2) -> IO () -- | vkGetPhysicalDeviceImageFormatProperties2 - Lists physical device’s -- image format capabilities -- -- = Parameters -- -- - @physicalDevice@ is the physical device from which to query the -- image capabilities. -- -- - @pImageFormatInfo@ points to an instance of the -- 'VkPhysicalDeviceImageFormatInfo2' structure, describing the -- parameters that would be consumed by -- 'Graphics.Vulkan.Core10.Image.vkCreateImage'. -- -- - @pImageFormatProperties@ points to an instance of the -- 'VkImageFormatProperties2' structure in which capabilities are -- returned. -- -- = Description -- -- @vkGetPhysicalDeviceImageFormatProperties2@ behaves similarly to -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceImageFormatProperties', -- with the ability to return extended information in a @pNext@ chain of -- output structures. -- -- == Valid Usage -- -- - If the @pNext@ chain of @pImageFormatProperties@ contains an -- instance of -- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferUsageANDROID', -- the @pNext@ chain of @pImageFormatInfo@ /must/ contain an instance -- of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo' -- with @handleType@ set to -- @VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID@. -- -- == Valid Usage (Implicit) -- -- - @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle -- -- - @pImageFormatInfo@ /must/ be a valid pointer to a valid -- @VkPhysicalDeviceImageFormatInfo2@ structure -- -- - @pImageFormatProperties@ /must/ be a valid pointer to a -- @VkImageFormatProperties2@ structure -- -- == Return Codes -- -- [[Success](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#fundamentals-successcodes)] -- - @VK_SUCCESS@ -- -- [[Failure](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#fundamentals-errorcodes)] -- - @VK_ERROR_OUT_OF_HOST_MEMORY@ -- -- - @VK_ERROR_OUT_OF_DEVICE_MEMORY@ -- -- - @VK_ERROR_FORMAT_NOT_SUPPORTED@ -- -- = See Also -- -- 'VkImageFormatProperties2', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice', -- 'VkPhysicalDeviceImageFormatInfo2' foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "vkGetPhysicalDeviceImageFormatProperties2" vkGetPhysicalDeviceImageFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pImageFormatInfo" ::: Ptr VkPhysicalDeviceImageFormatInfo2) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties2) -> IO VkResult -- | vkGetPhysicalDeviceQueueFamilyProperties2 - Reports properties of the -- queues of the specified physical device -- -- = Parameters -- -- - @physicalDevice@ is the handle to the physical device whose -- properties will be queried. -- -- - @pQueueFamilyPropertyCount@ is a pointer to an integer related to -- the number of queue families available or queried, as described in -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceQueueFamilyProperties'. -- -- - @pQueueFamilyProperties@ is either @NULL@ or a pointer to an array -- of 'VkQueueFamilyProperties2' structures. -- -- = Description -- -- @vkGetPhysicalDeviceQueueFamilyProperties2@ behaves similarly to -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceQueueFamilyProperties', -- with the ability to return extended information in a @pNext@ chain of -- output structures. -- -- == Valid Usage (Implicit) -- -- - @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle -- -- - @pQueueFamilyPropertyCount@ /must/ be a valid pointer to a -- @uint32_t@ value -- -- - If the value referenced by @pQueueFamilyPropertyCount@ is not @0@, -- and @pQueueFamilyProperties@ is not @NULL@, @pQueueFamilyProperties@ -- /must/ be a valid pointer to an array of @pQueueFamilyPropertyCount@ -- @VkQueueFamilyProperties2@ structures -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice', -- 'VkQueueFamilyProperties2' foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "vkGetPhysicalDeviceQueueFamilyProperties2" vkGetPhysicalDeviceQueueFamilyProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties2) -> IO () -- | vkGetPhysicalDeviceMemoryProperties2 - Reports memory information for -- the specified physical device -- -- = Parameters -- -- - @physicalDevice@ is the handle to the device to query. -- -- - @pMemoryProperties@ points to an instance of -- @VkPhysicalDeviceMemoryProperties2@ structure in which the -- properties are returned. -- -- = Description -- -- @vkGetPhysicalDeviceMemoryProperties2@ behaves similarly to -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceMemoryProperties', -- with the ability to return extended information in a @pNext@ chain of -- output structures. -- -- == Valid Usage (Implicit) -- -- - @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle -- -- - @pMemoryProperties@ /must/ be a valid pointer to a -- @VkPhysicalDeviceMemoryProperties2@ structure -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice', -- 'VkPhysicalDeviceMemoryProperties2' foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "vkGetPhysicalDeviceMemoryProperties2" vkGetPhysicalDeviceMemoryProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties2) -> IO () -- | vkGetPhysicalDeviceSparseImageFormatProperties2 - Retrieve properties of -- an image format applied to sparse images -- -- = Parameters -- -- - @physicalDevice@ is the physical device from which to query the -- sparse image capabilities. -- -- - @pFormatInfo@ is a pointer to a structure of type -- 'VkPhysicalDeviceSparseImageFormatInfo2' containing input parameters -- to the command. -- -- - @pPropertyCount@ is a pointer to an integer related to the number of -- sparse format properties available or queried, as described below. -- -- - @pProperties@ is either @NULL@ or a pointer to an array of -- 'VkSparseImageFormatProperties2' structures. -- -- = Description -- -- @vkGetPhysicalDeviceSparseImageFormatProperties2@ behaves identically to -- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetPhysicalDeviceSparseImageFormatProperties', -- with the ability to return extended information by adding extension -- structures to the @pNext@ chain of its @pProperties@ parameter. -- -- == Valid Usage (Implicit) -- -- - @physicalDevice@ /must/ be a valid @VkPhysicalDevice@ handle -- -- - @pFormatInfo@ /must/ be a valid pointer to a valid -- @VkPhysicalDeviceSparseImageFormatInfo2@ structure -- -- - @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value -- -- - If the value referenced by @pPropertyCount@ is not @0@, and -- @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer -- to an array of @pPropertyCount@ @VkSparseImageFormatProperties2@ -- structures -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDevice', -- 'VkPhysicalDeviceSparseImageFormatInfo2', -- 'VkSparseImageFormatProperties2' foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe #endif "vkGetPhysicalDeviceSparseImageFormatProperties2" vkGetPhysicalDeviceSparseImageFormatProperties2 :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFormatInfo" ::: Ptr VkPhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr VkSparseImageFormatProperties2) -> IO () -- | VkPhysicalDeviceFeatures2 - Structure describing the fine-grained -- features that can be supported by an implementation -- -- = Members -- -- The @VkPhysicalDeviceFeatures2@ structure is defined as: -- -- = Description -- -- - @sType@ is the type of this structure. -- -- - @pNext@ is @NULL@ or a pointer to an extension-specific structure. -- -- - @features@ is a structure of type -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures' -- describing the fine-grained features of the Vulkan 1.0 API. -- -- 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 -- 'Graphics.Vulkan.Core10.Device.VkDeviceCreateInfo' structure, in which -- case it controls which features are enabled in the device in lieu of -- @pEnabledFeatures@. -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2@ -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceFeatures', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceFeatures2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceFeatures2KHR' data VkPhysicalDeviceFeatures2 = VkPhysicalDeviceFeatures2 { -- No documentation found for Nested "VkPhysicalDeviceFeatures2" "sType" vkSType :: VkStructureType , -- No documentation found for Nested "VkPhysicalDeviceFeatures2" "pNext" vkPNext :: Ptr () , -- No documentation found for Nested "VkPhysicalDeviceFeatures2" "features" vkFeatures :: VkPhysicalDeviceFeatures } deriving (Eq, Show) instance Storable VkPhysicalDeviceFeatures2 where sizeOf ~_ = 240 alignment ~_ = 8 peek ptr = VkPhysicalDeviceFeatures2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceFeatures2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceFeatures2)) *> poke (ptr `plusPtr` 16) (vkFeatures (poked :: VkPhysicalDeviceFeatures2)) -- | VkPhysicalDeviceProperties2 - Structure specifying physical device -- properties -- -- = Description -- -- The @pNext@ chain of this structure is used to extend the structure with -- properties defined by extensions. -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2@ -- -- - Each @pNext@ member of any structure (including this one) in the -- @pNext@ chain /must/ be either @NULL@ or a pointer to a valid -- instance of -- 'Graphics.Vulkan.Extensions.VK_EXT_blend_operation_advanced.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT', -- 'Graphics.Vulkan.Extensions.VK_EXT_conservative_rasterization.VkPhysicalDeviceConservativeRasterizationPropertiesEXT', -- 'Graphics.Vulkan.Extensions.VK_EXT_discard_rectangles.VkPhysicalDeviceDiscardRectanglePropertiesEXT', -- 'Graphics.Vulkan.Extensions.VK_EXT_external_memory_host.VkPhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceIDProperties', -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance3.VkPhysicalDeviceMaintenance3Properties', -- 'Graphics.Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_multiview.VkPhysicalDeviceMultiviewProperties', -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_maintenance2.VkPhysicalDevicePointClippingProperties', -- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_protected_memory.VkPhysicalDeviceProtectedMemoryProperties', -- 'Graphics.Vulkan.Extensions.VK_KHR_push_descriptor.VkPhysicalDevicePushDescriptorPropertiesKHR', -- 'Graphics.Vulkan.Extensions.VK_EXT_sample_locations.VkPhysicalDeviceSampleLocationsPropertiesEXT', -- 'Graphics.Vulkan.Extensions.VK_EXT_sampler_filter_minmax.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT', -- 'Graphics.Vulkan.Extensions.VK_AMD_shader_core_properties.VkPhysicalDeviceShaderCorePropertiesAMD', -- 'Graphics.Vulkan.Core11.Promoted_From_VK_KHR_subgroup.VkPhysicalDeviceSubgroupProperties', -- or -- 'Graphics.Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT' -- -- - Each @sType@ member in the @pNext@ chain /must/ be unique -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceProperties', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceProperties2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceProperties2KHR' data VkPhysicalDeviceProperties2 = VkPhysicalDeviceProperties2 { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @properties@ is a structure of type -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceProperties' -- describing the properties of the physical device. This structure is -- written with the same values as if it were written by -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceProperties'. vkProperties :: VkPhysicalDeviceProperties } deriving (Eq, Show) instance Storable VkPhysicalDeviceProperties2 where sizeOf ~_ = 840 alignment ~_ = 8 peek ptr = VkPhysicalDeviceProperties2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceProperties2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceProperties2)) *> poke (ptr `plusPtr` 16) (vkProperties (poked :: VkPhysicalDeviceProperties2)) -- | VkFormatProperties2 - Structure specifying image format properties -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be @VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2@ -- -- - @pNext@ /must/ be @NULL@ -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkFormatProperties', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceFormatProperties2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceFormatProperties2KHR' data VkFormatProperties2 = VkFormatProperties2 { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @formatProperties@ is a structure of type -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkFormatProperties' -- describing features supported by the requested format. vkFormatProperties :: VkFormatProperties } deriving (Eq, Show) instance Storable VkFormatProperties2 where sizeOf ~_ = 32 alignment ~_ = 8 peek ptr = VkFormatProperties2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFormatProperties2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFormatProperties2)) *> poke (ptr `plusPtr` 16) (vkFormatProperties (poked :: VkFormatProperties2)) -- | VkImageFormatProperties2 - Structure specifying a image format -- properties -- -- = Description -- -- If the combination of parameters to -- @vkGetPhysicalDeviceImageFormatProperties2@ is not supported by the -- implementation for use in 'Graphics.Vulkan.Core10.Image.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) -- -- - @sType@ /must/ be @VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2@ -- -- - Each @pNext@ member of any structure (including this one) in the -- @pNext@ chain /must/ be either @NULL@ or a pointer to a valid -- instance of -- 'Graphics.Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.VkAndroidHardwareBufferUsageANDROID', -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties', -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_sampler_ycbcr_conversion.VkSamplerYcbcrConversionImageFormatProperties', -- or -- 'Graphics.Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.VkTextureLODGatherFormatPropertiesAMD' -- -- - Each @sType@ member in the @pNext@ chain /must/ be unique -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceImageFormatProperties2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceImageFormatProperties2KHR' data VkImageFormatProperties2 = VkImageFormatProperties2 { -- | @sType@ is the type of this structure. vkSType :: 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@. vkPNext :: Ptr () , -- | @imageFormatProperties@ is an instance of a -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageFormatProperties' -- structure in which capabilities are returned. vkImageFormatProperties :: VkImageFormatProperties } deriving (Eq, Show) instance Storable VkImageFormatProperties2 where sizeOf ~_ = 48 alignment ~_ = 8 peek ptr = VkImageFormatProperties2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageFormatProperties2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageFormatProperties2)) *> poke (ptr `plusPtr` 16) (vkImageFormatProperties (poked :: VkImageFormatProperties2)) -- | VkPhysicalDeviceImageFormatInfo2 - Structure specifying image creation -- parameters -- -- = Description -- -- The members of @VkPhysicalDeviceImageFormatInfo2@ correspond to the -- arguments to -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceImageFormatProperties', -- with @sType@ and @pNext@ added for extensibility. -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2@ -- -- - @pNext@ /must/ be @NULL@ or a pointer to a valid instance of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkPhysicalDeviceExternalImageFormatInfo' -- -- - @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat' -- value -- -- - @type@ /must/ be a valid -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType' value -- -- - @tiling@ /must/ be a valid -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling' value -- -- - @usage@ /must/ be a valid combination of -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits' -- values -- -- - @usage@ /must/ not be @0@ -- -- - @flags@ /must/ be a valid combination of -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits' -- values -- -- = See Also -- -- 'Graphics.Vulkan.Core10.Core.VkFormat', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlags', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceImageFormatProperties2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceImageFormatProperties2KHR' data VkPhysicalDeviceImageFormatInfo2 = VkPhysicalDeviceImageFormatInfo2 { -- | @sType@ is the type of this structure. vkSType :: 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@. vkPNext :: Ptr () , -- | @format@ is a 'Graphics.Vulkan.Core10.Core.VkFormat' value indicating -- the image format, corresponding to -- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@format@. vkFormat :: VkFormat , -- | @type@ is a 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType' -- value indicating the image type, corresponding to -- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@imageType@. vkType :: VkImageType , -- | @tiling@ is a -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling' value -- indicating the image tiling, corresponding to -- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@tiling@. vkTiling :: VkImageTiling , -- | @usage@ is a bitmask of -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits' -- indicating the intended usage of the image, corresponding to -- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@usage@. vkUsage :: VkImageUsageFlags , -- | @flags@ is a bitmask of -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageCreateFlagBits' -- indicating additional parameters of the image, corresponding to -- 'Graphics.Vulkan.Core10.Image.VkImageCreateInfo'::@flags@. vkFlags :: VkImageCreateFlags } deriving (Eq, Show) instance Storable VkPhysicalDeviceImageFormatInfo2 where sizeOf ~_ = 40 alignment ~_ = 8 peek ptr = VkPhysicalDeviceImageFormatInfo2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) <*> peek (ptr `plusPtr` 20) <*> peek (ptr `plusPtr` 24) <*> peek (ptr `plusPtr` 28) <*> peek (ptr `plusPtr` 32) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceImageFormatInfo2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceImageFormatInfo2)) *> poke (ptr `plusPtr` 16) (vkFormat (poked :: VkPhysicalDeviceImageFormatInfo2)) *> poke (ptr `plusPtr` 20) (vkType (poked :: VkPhysicalDeviceImageFormatInfo2)) *> poke (ptr `plusPtr` 24) (vkTiling (poked :: VkPhysicalDeviceImageFormatInfo2)) *> poke (ptr `plusPtr` 28) (vkUsage (poked :: VkPhysicalDeviceImageFormatInfo2)) *> poke (ptr `plusPtr` 32) (vkFlags (poked :: VkPhysicalDeviceImageFormatInfo2)) -- | VkQueueFamilyProperties2 - Structure providing information about a queue -- family -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be @VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2@ -- -- - @pNext@ /must/ be @NULL@ -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceQueueFamilyProperties2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceQueueFamilyProperties2KHR' data VkQueueFamilyProperties2 = VkQueueFamilyProperties2 { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @queueFamilyProperties@ is a structure of type -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkQueueFamilyProperties' -- which is populated with the same values as in -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceQueueFamilyProperties'. vkQueueFamilyProperties :: VkQueueFamilyProperties } deriving (Eq, Show) instance Storable VkQueueFamilyProperties2 where sizeOf ~_ = 40 alignment ~_ = 8 peek ptr = VkQueueFamilyProperties2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkQueueFamilyProperties2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkQueueFamilyProperties2)) *> poke (ptr `plusPtr` 16) (vkQueueFamilyProperties (poked :: VkQueueFamilyProperties2)) -- | VkPhysicalDeviceMemoryProperties2 - Structure specifying physical device -- memory properties -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2@ -- -- - @pNext@ /must/ be @NULL@ -- -- = See Also -- -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceMemoryProperties2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceMemoryProperties2KHR' data VkPhysicalDeviceMemoryProperties2 = VkPhysicalDeviceMemoryProperties2 { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @memoryProperties@ is a structure of type -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkPhysicalDeviceMemoryProperties' -- which is populated with the same values as in -- 'Graphics.Vulkan.Core10.DeviceInitialization.vkGetPhysicalDeviceMemoryProperties'. vkMemoryProperties :: VkPhysicalDeviceMemoryProperties } deriving (Eq, Show) instance Storable VkPhysicalDeviceMemoryProperties2 where sizeOf ~_ = 536 alignment ~_ = 8 peek ptr = VkPhysicalDeviceMemoryProperties2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceMemoryProperties2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceMemoryProperties2)) *> poke (ptr `plusPtr` 16) (vkMemoryProperties (poked :: VkPhysicalDeviceMemoryProperties2)) -- | VkSparseImageFormatProperties2 - Structure specifying sparse image -- format properties -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2@ -- -- - @pNext@ /must/ be @NULL@ -- -- = See Also -- -- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceSparseImageFormatProperties2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceSparseImageFormatProperties2KHR' data VkSparseImageFormatProperties2 = VkSparseImageFormatProperties2 { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @properties@ is a structure of type -- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.VkSparseImageFormatProperties' -- which is populated with the same values as in -- 'Graphics.Vulkan.Core10.SparseResourceMemoryManagement.vkGetPhysicalDeviceSparseImageFormatProperties'. vkProperties :: VkSparseImageFormatProperties } deriving (Eq, Show) instance Storable VkSparseImageFormatProperties2 where sizeOf ~_ = 40 alignment ~_ = 8 peek ptr = VkSparseImageFormatProperties2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSparseImageFormatProperties2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSparseImageFormatProperties2)) *> poke (ptr `plusPtr` 16) (vkProperties (poked :: VkSparseImageFormatProperties2)) -- | VkPhysicalDeviceSparseImageFormatInfo2 - Structure specifying sparse -- image format inputs -- -- == Valid Usage -- -- - @samples@ /must/ be a bit value that is set in -- @VkImageFormatProperties@::@sampleCounts@ returned by -- @vkGetPhysicalDeviceImageFormatProperties@ with @format@, @type@, -- @tiling@, and @usage@ equal to those in this command and @flags@ -- equal to the value that is set in @VkImageCreateInfo@::@flags@ when -- the image is created -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2@ -- -- - @pNext@ /must/ be @NULL@ -- -- - @format@ /must/ be a valid 'Graphics.Vulkan.Core10.Core.VkFormat' -- value -- -- - @type@ /must/ be a valid -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType' value -- -- - @samples@ /must/ be a valid -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits' -- value -- -- - @usage@ /must/ be a valid combination of -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlagBits' -- values -- -- - @usage@ /must/ not be @0@ -- -- - @tiling@ /must/ be a valid -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling' value -- -- = See Also -- -- 'Graphics.Vulkan.Core10.Core.VkFormat', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageTiling', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageType', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkImageUsageFlags', -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits', -- 'Graphics.Vulkan.Core10.Core.VkStructureType', -- 'vkGetPhysicalDeviceSparseImageFormatProperties2', -- 'Graphics.Vulkan.Extensions.VK_KHR_get_physical_device_properties2.vkGetPhysicalDeviceSparseImageFormatProperties2KHR' data VkPhysicalDeviceSparseImageFormatInfo2 = VkPhysicalDeviceSparseImageFormatInfo2 { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @format@ is the image format. vkFormat :: VkFormat , -- | @type@ is the dimensionality of image. vkType :: VkImageType , -- | @samples@ is the number of samples per texel as defined in -- 'Graphics.Vulkan.Core10.DeviceInitialization.VkSampleCountFlagBits'. vkSamples :: VkSampleCountFlagBits , -- | @usage@ is a bitmask describing the intended usage of the image. vkUsage :: VkImageUsageFlags , -- | @tiling@ is the tiling arrangement of the data elements in memory. vkTiling :: VkImageTiling } deriving (Eq, Show) instance Storable VkPhysicalDeviceSparseImageFormatInfo2 where sizeOf ~_ = 40 alignment ~_ = 8 peek ptr = VkPhysicalDeviceSparseImageFormatInfo2 <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) <*> peek (ptr `plusPtr` 20) <*> peek (ptr `plusPtr` 24) <*> peek (ptr `plusPtr` 28) <*> peek (ptr `plusPtr` 32) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPhysicalDeviceSparseImageFormatInfo2)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPhysicalDeviceSparseImageFormatInfo2)) *> poke (ptr `plusPtr` 16) (vkFormat (poked :: VkPhysicalDeviceSparseImageFormatInfo2)) *> poke (ptr `plusPtr` 20) (vkType (poked :: VkPhysicalDeviceSparseImageFormatInfo2)) *> poke (ptr `plusPtr` 24) (vkSamples (poked :: VkPhysicalDeviceSparseImageFormatInfo2)) *> poke (ptr `plusPtr` 28) (vkUsage (poked :: VkPhysicalDeviceSparseImageFormatInfo2)) *> poke (ptr `plusPtr` 32) (vkTiling (poked :: VkPhysicalDeviceSparseImageFormatInfo2))