Merge pull request #693 from krOoze/dev_inst_ext_dependencies

Refine extension dependencies
This commit is contained in:
Jon Leech 2018-04-21 02:46:37 -07:00 committed by GitHub
commit deabecf729
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 13 deletions

View File

@ -1021,7 +1021,7 @@ Render Pass Instance::
A use of a render pass in a command buffer. A use of a render pass in a command buffer.
Required Extensions:: Required Extensions::
Extensions which must: be enabled to use a specific enabled extension Extensions that must: be enabled alongside extensions dependent on them
(see <<extended-functionality-extensions-dependencies, Extension (see <<extended-functionality-extensions-dependencies, Extension
Dependencies>>). Dependencies>>).

View File

@ -223,6 +223,15 @@ wrapped by the validation layers.
See the <<LoaderAndValidationLayers, "`Vulkan Loader Specification and See the <<LoaderAndValidationLayers, "`Vulkan Loader Specification and
Architecture Overview`">> document for additional information. Architecture Overview`">> document for additional information.
[NOTE]
.Note
====
Valid Usage sections for individual commands and structures do not currently
contain which extensions have to be enabled in order to make their use
valid, although it might do so in the future.
It is defined only in the <<fundamentals-validusage-extensions>> section.
====
[open,refpage='vkEnumerateInstanceExtensionProperties',desc='Returns up to requested number of global extension properties',type='protos'] [open,refpage='vkEnumerateInstanceExtensionProperties',desc='Returns up to requested number of global extension properties',type='protos']
-- --
@ -344,21 +353,22 @@ endif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
== Extension Dependencies == Extension Dependencies
Some extensions are dependent on other extensions to function. Some extensions are dependent on other extensions to function.
To use extensions with dependencies, such _required extensions_ must: also To enable extensions with dependencies, such _required extensions_ must:
be enabled through the same API mechanisms when creating an instance with also be enabled through the same API mechanisms when creating an instance
flink:vkCreateInstance or a device with flink:vkCreateDevice. with flink:vkCreateInstance or a device with flink:vkCreateDevice.
Each extension which has such dependencies documents them in the Each extension which has such dependencies documents them in the
<<extensions, appendix summarizing that extension>>. <<extensions, appendix summarizing that extension>>.
[NOTE] If an extension is supported (as queried by
.Note flink:vkEnumerateInstanceExtensionProperties or
==== flink:vkEnumerateDeviceExtensionProperties), then _required extensions_ of
The Specification does not currently include required extensions in Valid that extension must: also be supported for the same instance or
Usage statements for individual commands and structures, although it might physical device.
do so in the future.
Nonetheless, applications must: not use any extension functionality if Any device extension that has an instance extension dependency that is not
dependencies of that extension are not enabled. enabled by flink:vkCreateInstance is considered to be unsupported, hence it
==== must: not be returned by flink:vkEnumerateDeviceExtensionProperties for any
slink:VkPhysicalDevice child of the instance.
[[extended-functionality-extensions-compatibility]] [[extended-functionality-extensions-compatibility]]