vkEnumerateInstanceExtensionProperties
To query the available instance extensions, call:
VkResult vkEnumerateInstanceExtensionProperties(
const char* pLayerName,
uint32_t* pPropertyCount,
VkExtensionProperties* pProperties);
pLayerName
is eitherNULL
or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions from.pPropertyCount
is a pointer to an integer related to the number of extension properties available or queried, as described below.pProperties
is eitherNULL
or a pointer to an array of VkExtensionProperties structures.
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
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.
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)
VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameter
If pLayerName
is not NULL
, pLayerName
must be a null-terminated UTF-8 string
VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameter
pPropertyCount
must be a valid pointer to a uint32_t
value
VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameter
If the value referenced by pPropertyCount
is not 0
, and pProperties
is not NULL
, pProperties
must be a valid pointer to an array of pPropertyCount
VkExtensionProperties structures