vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Core10.ExtensionDiscovery

Synopsis

Documentation

enumerateInstanceExtensionProperties Source #

Arguments

:: MonadIO io 
=> ("layerName" ::: Maybe ByteString)

pLayerName is either NULL or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions from.

-> io (Result, "properties" ::: Vector ExtensionProperties) 

vkEnumerateInstanceExtensionProperties - Returns up to requested number of global extension properties

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 application 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, and INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available properties were returned.

Because the list of available layers may change externally between calls to enumerateInstanceExtensionProperties, 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.

Implementations must not advertise any pair of extensions that cannot be enabled together due to behavioral differences, or any extension that cannot be enabled against the advertised version.

Valid Usage (Implicit)

  • If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string
  • pPropertyCount must be a valid pointer to a uint32_t value
  • If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount ExtensionProperties structures

Return Codes

Success
Failure

See Also

VK_VERSION_1_0, ExtensionProperties

enumerateDeviceExtensionProperties Source #

Arguments

:: MonadIO io 
=> PhysicalDevice

physicalDevice is the physical device that will be queried.

-> ("layerName" ::: Maybe ByteString)

pLayerName is either NULL or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions from.

-> io (Result, "properties" ::: Vector ExtensionProperties) 

vkEnumerateDeviceExtensionProperties - Returns properties of available physical device extensions

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.

Implementations must not advertise any pair of extensions that cannot be enabled together due to behavioral differences, or any extension that cannot be enabled against the advertised version.

If the VK_KHR_ray_tracing_pipeline extension is advertised as supported by this query, the VK_KHR_pipeline_library extension must also be supported.

If the VK_EXT_descriptor_heap extension is advertised as supported by this query, the VK_KHR_shader_untyped_pointers extension must also be supported.

Implementations claiming support for the Roadmap 2022 profile must advertise the VK_KHR_global_priority extension in pProperties.

Implementations claiming support for the Roadmap 2024 profile must advertise the following extensions in pProperties:

Due to platform details on Android, enumerateDeviceExtensionProperties may be called with physicalDevice equal to NULL during layer discovery. This behavior will only be observed by layer implementations, and not the underlying Vulkan driver.

Valid Usage (Implicit)

  • If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string
  • pPropertyCount must be a valid pointer to a uint32_t value
  • If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount ExtensionProperties structures

Return Codes

Success
Failure

See Also

VK_VERSION_1_0, ExtensionProperties, PhysicalDevice

data ExtensionProperties Source #

Constructors

ExtensionProperties 

Fields

Instances

Instances details
Storable ExtensionProperties Source # 
Instance details

Defined in Vulkan.Core10.ExtensionDiscovery

Show ExtensionProperties Source # 
Instance details

Defined in Vulkan.Core10.ExtensionDiscovery

FromCStruct ExtensionProperties Source # 
Instance details

Defined in Vulkan.Core10.ExtensionDiscovery

ToCStruct ExtensionProperties Source # 
Instance details

Defined in Vulkan.Core10.ExtensionDiscovery

Zero ExtensionProperties Source # 
Instance details

Defined in Vulkan.Core10.ExtensionDiscovery