C Specification

The VkApplicationInfo structure is defined as:

// Provided by VK_VERSION_1_0
typedef struct VkApplicationInfo {
    VkStructureType    sType;
    const void*        pNext;
    const char*        pApplicationName;
    uint32_t           applicationVersion;
    const char*        pEngineName;
    uint32_t           engineVersion;
    uint32_t           apiVersion;
} VkApplicationInfo;


  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • pApplicationName is NULL or is a pointer to a null-terminated UTF-8 string containing the name of the application.

  • applicationVersion is an unsigned integer variable containing the developer-supplied version number of the application.

  • pEngineName is NULL or is a pointer to a null-terminated UTF-8 string containing the name of the engine (if any) used to create the application.

  • engineVersion is an unsigned integer variable containing the developer-supplied version number of the engine used to create the application.

  • apiVersion must be the highest version of Vulkan that the application is designed to use, encoded as described in https://registry.khronos.org/vulkansc/specs/1.0-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers. The patch version number specified in apiVersion is ignored when creating an instance object. The variant version of the instance must match that requested in apiVersion.


Vulkan 1.0 implementations were required to return VK_ERROR_INCOMPATIBLE_DRIVER if apiVersion was larger than 1.0. Implementations that support Vulkan 1.1 or later must not return VK_ERROR_INCOMPATIBLE_DRIVER for any value of apiVersion , unless an incompatible variant is requested.


Vulkan SC 1.0 is based on Vulkan 1.2 and thus instance creation may only fail with VK_ERROR_INCOMPATIBLE_DRIVER if an incompatible variant is requested - that is if the Vulkan SC API is requested from a Vulkan implementation or if the Vulkan API is requested from a Vulkan SC implementation.


Providing a NULL VkInstanceCreateInfo::pApplicationInfo or providing an apiVersion of 0 is equivalent to providing an apiVersion of VK_MAKE_API_VERSION(1,1,0,0).

To provide application parameters at instance creation time, an application can link one or more VkApplicationParametersEXT structures to the pNext chain of the VkApplicationInfo structure.

If VkApplicationParametersEXT::vendorID does not correspond to an ICD that is currently available, or if VkApplicationParametersEXT::deviceID is not 0 and does not correspond to a physical device that is available on the system, vkCreateInstance will fail and return VK_ERROR_INCOMPATIBLE_DRIVER. If VkApplicationParametersEXT::deviceID is 0, the application parameter applies to all physical devices supported by the ICD identified by VkApplicationParametersEXT::vendorID.

If VkApplicationParametersEXT::key is not a valid implementation-defined application parameter key for the instance being created with vendorID, or if value is not a valid value for the specified key, vkCreateInstance will fail and return VK_ERROR_INITIALIZATION_FAILED.

For any implementation-defined application parameter key that exists but is not set by the application, the implementation-specific default value is used.

Valid Usage
  • VUID-VkApplicationInfo-apiVersion-05021
    If apiVersion is not 0 and its variant is VKSC_API_VARIANT, then it must be greater than or equal to VKSC_API_VERSION_1_0

  • VUID-VkApplicationInfo-key-05093
    The key value of each VkApplicationParametersEXT structure in the VkApplicationInfo::pNext chain must be unique for each vendorID and deviceID pairing

Valid Usage (Implicit)
  • VUID-VkApplicationInfo-sType-sType

  • VUID-VkApplicationInfo-pNext-pNext
    pNext must be NULL or a pointer to a valid instance of VkApplicationParametersEXT

  • VUID-VkApplicationInfo-sType-unique
    The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkApplicationParametersEXT

  • VUID-VkApplicationInfo-pApplicationName-parameter
    If pApplicationName is not NULL, pApplicationName must be a null-terminated UTF-8 string

  • VUID-VkApplicationInfo-pEngineName-parameter
    If pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string

See Also

Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0