| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Core10.ExtensionDiscovery
Synopsis
- enumerateInstanceExtensionProperties :: MonadIO io => ("layerName" ::: Maybe ByteString) -> io (Result, "properties" ::: Vector ExtensionProperties)
- enumerateDeviceExtensionProperties :: MonadIO io => PhysicalDevice -> ("layerName" ::: Maybe ByteString) -> io (Result, "properties" ::: Vector ExtensionProperties)
- data ExtensionProperties = ExtensionProperties {}
Documentation
enumerateInstanceExtensionProperties Source #
Arguments
| :: MonadIO io | |
| => ("layerName" ::: Maybe ByteString) |
|
| -> 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)
-
pPropertyCountmust be a valid pointer to auint32_tvalue -
If the value referenced by
pPropertyCountis not0, andpPropertiesis notNULL,pPropertiesmust be a valid pointer to an array ofpPropertyCountExtensionPropertiesstructures
Return Codes
See Also
enumerateDeviceExtensionProperties Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> ("layerName" ::: Maybe ByteString) |
|
| -> 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:
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_load_store_op_none
- VK_KHR_shader_quad_control
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_float_controls2
- VK_KHR_shader_expect_assume
- VK_KHR_line_rasterization
- VK_KHR_vertex_attribute_divisor
- VK_KHR_index_type_uint8
- VK_KHR_map_memory2
- VK_KHR_maintenance5
- VK_KHR_push_descriptor
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)
-
physicalDevicemust be a validPhysicalDevicehandle
- If
pLayerNameis notNULL,pLayerNamemust be a null-terminated UTF-8 string -
pPropertyCountmust be a valid pointer to auint32_tvalue - If
the value referenced by
pPropertyCountis not0, andpPropertiesis notNULL,pPropertiesmust be a valid pointer to an array ofpPropertyCountExtensionPropertiesstructures
Return Codes
See Also
data ExtensionProperties Source #
VkExtensionProperties - Structure specifying an extension properties
See Also
VK_VERSION_1_0,
VkVideoCapabilitiesKHR,
VkVideoSessionCreateInfoKHR,
enumerateDeviceExtensionProperties,
enumerateInstanceExtensionProperties
Constructors
| ExtensionProperties | |
Fields
| |