Function Prototype

vkGetInstanceProcAddr

Return a function pointer for a command

Function pointers for all Vulkan commands can be obtained by calling:

PFN_vkVoidFunction vkGetInstanceProcAddr(
    VkInstance instance,
    const char* pName);
  • instance is the instance that the function pointer will be compatible with, or NULL for commands not dependent on any instance.
  • pName is the name of the command to obtain.

vkGetInstanceProcAddr itself is obtained in a platform- and loader- specific manner. Typically, the loader library will export this command as a function symbol, so applications can link against the loader library, or load it dynamically and look up the symbol using platform-specific APIs.

The table below defines the various use cases for vkGetInstanceProcAddr and expected return value (fp is function pointer) for each case. A valid returned function pointer (fp) must not be NULL.

The returned function pointer is of type PFN_vkVoidFunction, and must be cast to the type of the command being queried before use.

Table 1. vkGetInstanceProcAddr behavior
instancepNamereturn value

*1

NULL

undefined:

invalid non-NULL instance

*1

undefined:

NULL

global command2

fp

instance

vkGetInstanceProcAddr

fp

instance

core dispatchable command

fp3

instance

enabled instance extension dispatchable command for instance

fp3

instance

available device extension4 dispatchable command for instance

fp3

any other case, not covered above

NULL

Valid Usage (Implicit)

VUID-vkGetInstanceProcAddr-instance-parameter

If instance is not NULL, instance must be a valid VkInstance handle

VUID-vkGetInstanceProcAddr-pName-parameter

pName must be a null-terminated UTF-8 string