diff --git a/chapters/initialization.txt b/chapters/initialization.txt index 4c16cf3a..4ceabe6c 100644 --- a/chapters/initialization.txt +++ b/chapters/initialization.txt @@ -56,28 +56,31 @@ be cast to the type of the command being queried. [width="80%",options="header"] |==== | pname:instance | pname:pName | return value -| * | `NULL` | undefined: -| invalid instance | * | undefined: +| *^1^ | `NULL` | undefined: +| invalid non-`NULL` instance | *^1^ | undefined: ifdef::VK_VERSION_1_1[] | `NULL` | flink:vkEnumerateInstanceVersion | fp endif::VK_VERSION_1_1[] | `NULL` | flink:vkEnumerateInstanceExtensionProperties | fp | `NULL` | flink:vkEnumerateInstanceLayerProperties | fp | `NULL` | flink:vkCreateInstance | fp -| `NULL` | * (any pname:pName not covered above) | `NULL` -| instance | core Vulkan command | fp^1^ -| instance | enabled instance extension commands for pname:instance | fp^1^ -| instance | available device extension^2^ commands for pname:instance | fp^1^ -| instance | * (any pname:pName not covered above) | `NULL` +| instance | core Vulkan command | fp^2^ +| instance | enabled instance extension commands for pname:instance | fp^2^ +| instance | available device extension^3^ commands for pname:instance | fp^2^ +2+| any other case, not covered above | `NULL` |==== 1:: + "*" means any representable value for the parameter (including valid + values, invalid values, and `NULL`). + +2:: The returned function pointer must: only be called with a dispatchable object (the first parameter) that is pname:instance or a child of pname:instance, e.g. slink:VkInstance, slink:VkPhysicalDevice, slink:VkDevice, slink:VkQueue, or slink:VkCommandBuffer. -2:: +3:: An "`available device extension`" is a device extension supported by any physical device enumerated by pname:instance. @@ -109,15 +112,25 @@ first parameter) that is pname:device or a child of pname:device. .vkGetDeviceProcAddr behavior [width="80%",options="header"] |==== -| pname:device | pname:pName | return value -| `NULL` | * | undefined: -| invalid device | * | undefined: -| device | `NULL` | undefined: -| device | core device-level Vulkan command | fp -| device | enabled device extension commands | fp -| device | * (any pname:pName not covered above) | `NULL` +| pname:device | pname:pName | return value +| `NULL` | *<1> | undefined: +| invalid device | *<1> | undefined: +| device | `NULL` | undefined: +| device | core device-level Vulkan command | fp^2^ +| device | enabled device extension device-level commands | fp^2^ +2+| any other case, not covered above | `NULL` |==== +1:: + "*" means any representable value for the parameter (including valid + values, invalid values, and `NULL`). + +2:: + The returned function pointer must: only be called with a dispatchable + object (the first parameter) that is pname:device or a child of + pname:device e.g. slink:VkDevice, slink:VkQueue, or + slink:VkCommandBuffer. + include::{generated}/validity/protos/vkGetDeviceProcAddr.txt[] --