Function Prototype

vkEnumerateDeviceExtensionProperties

Returns properties of available physical device extensions

To query the extensions available to a given physical device, call:

VkResult vkEnumerateDeviceExtensionProperties(
    VkPhysicalDevice physicalDevice,
    const char* pLayerName,
    uint32_t* pPropertyCount,
    VkExtensionProperties* pProperties);
  • physicalDevice is the physical device that will be queried.
  • pLayerName is either NULL 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, and is treated in the same fashion as the vkEnumerateInstanceExtensionProperties::pPropertyCount parameter.
  • pProperties is either NULL 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 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 VK_KHR_ray_tracing_pipeline is advertised as supported by this query, VK_KHR_pipeline_library must also be supported.

Due to platform details on Android, vkEnumerateDeviceExtensionProperties 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)

VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameter

If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string

VUID-vkEnumerateDeviceExtensionProperties-pPropertyCount-parameter

pPropertyCount must be a valid pointer to a uint32_t value

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