Clarify fptr get tables (#1004)

This commit is contained in:
Petr Kraus 2019-08-09 14:08:39 +02:00 committed by Jon Leech
parent eabbb0d965
commit d270e4c055

View File

@ -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[]
--