diff --git a/chapters/fundamentals.adoc b/chapters/fundamentals.adoc index 3e430513c..4df3372be 100644 --- a/chapters/fundamentals.adoc +++ b/chapters/fundamentals.adoc @@ -877,12 +877,11 @@ Specification_, can: be `NULL`. [[fundamentals-validusage-enums]] ==== Valid Usage for Enumerated Types -Any parameter of an enumerated type must: be a valid enumerant for that -type. -Use of an enumerant is valid if the following conditions are true: +An enumerant value is valid for a particular use if the following conditions +are true: * The enumerant is defined as part of the enumerated type. - * The enumerant is not a value suffixed with etext:_MAX_ENUM^1^. + * The enumerant is not a value suffixed with etext:_MAX_ENUM. ** This value exists only to ensure that C `enum` types are 32 bits in size and must: not be used by applications. * If the enumerant is used in a function that has a slink:VkInstance as @@ -897,18 +896,34 @@ endif::VK_VERSION_1_1[] for the instance. * If the enumerant is used in a function that has a slink:VkPhysicalDevice object as its first parameter and either: +ifdef::VK_KHR_get_physical_device_properties2,VK_VERSION_1_1[] + ** it was added by a <> that is supported by + that physical device and +ifdef::VK_KHR_get_physical_device_properties2[] + apiext:VK_KHR_get_physical_device_properties2 was enabled for the current + instance +endif::VK_KHR_get_physical_device_properties2[] +ifdef::VK_KHR_get_physical_device_properties2+VK_VERSION_1_1[or] +ifdef::VK_VERSION_1_1[] + the value of slink:VkApplicationInfo::pname:apiVersion is greater + than or equal to Vulkan 1.1 +endif::VK_VERSION_1_1[] + ; +endif::VK_KHR_get_physical_device_properties2,VK_VERSION_1_1[] ** it was added by a core version that is supported by that device (as - reported by slink:VkPhysicalDeviceProperties::pname:apiVersion); + reported by slink:VkPhysicalDeviceProperties::pname:apiVersion) and the + value of slink:VkApplicationInfo::pname:apiVersion is greater than or + equal to the version that added it; or ** it was added by an <> that was enabled - for the instance; or - ** it was added by a <> that is supported by - that device. - * If the enumerant is used in a function that has any other dispatchable - object as its first parameter and either: + for the current instance. + * If the enumerant is used in a function that has a dispatchable object + created or allocated from a device as its first parameter and either: ** it was added by a core version that is supported for the device (as - reported by slink:VkPhysicalDeviceProperties::pname:apiVersion); or + reported by slink:VkPhysicalDeviceProperties::pname:apiVersion) + and the value of slink:VkApplicationInfo::pname:apiVersion is greater + than or equal to the version that added it; or ** it was added by a <> that was enabled for - the device. + the current device. Any enumerated type returned from a query command or otherwise output from Vulkan to the application must: not have a reserved value. diff --git a/chapters/initialization.adoc b/chapters/initialization.adoc index 61395f2cb..7c1aa42df 100644 --- a/chapters/initialization.adoc +++ b/chapters/initialization.adoc @@ -233,6 +233,9 @@ include::{generated}/api/protos/vkEnumerateInstanceVersion.adoc[] of Vulkan supported by instance-level functionality, encoded as described in <>. +If flink:vkGetInstanceProcAddr returns a code:NULL pointer when this +function is queried, the implementation only supports Vulkan version 1.0. + [NOTE] .Note ====