Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/Vulkan-Loader.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Giessen <charles@lunarg.com>2022-10-12 22:57:22 +0300
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>2022-10-25 17:08:04 +0300
commite5680db8ae5640dde10b58b8ab45e4a6201ae3e9 (patch)
tree3305279e4da38a08d337ce86b28b534ce5c1dfd7
parentaf67fccebe59e8d8e30e8c02b7b0069ce4242fc4 (diff)
Document vk_icdGetInstanceProcAddr querying device functions
vk_icdGetInstanceProcAddr has similar semantics to vkGetInstanceProcAddr. It was created to prevent dynamic linker issues. It stated that it should support global & instance level function querying. But this differs from the Vulkan spec which states that vkGetInstanceProcAddr should be able to query all functions. This creates confusion about what takes precendence, the spec or the loader's docs. This commit makes it explicit that it should have the same semanics what the spec says.
-rw-r--r--docs/LoaderDriverInterface.md18
1 files changed, 9 insertions, 9 deletions
diff --git a/docs/LoaderDriverInterface.md b/docs/LoaderDriverInterface.md
index 40430fbd8..ab20941ba 100644
--- a/docs/LoaderDriverInterface.md
+++ b/docs/LoaderDriverInterface.md
@@ -35,7 +35,7 @@
- [Using Pre-Production ICDs or Software Drivers](#using-pre-production-icds-or-software-drivers)
- [Driver Discovery on Android](#driver-discovery-on-android)
- [Driver Manifest File Format](#driver-manifest-file-format)
- - [Driver Manifest File Versions](#driver-manifest-file-versions)
+ - [Driver Manifest File Versions](#driver-manifest-file-versions)
- [Driver Manifest File Version 1.0.0](#driver-manifest-file-version-100)
- [Driver Manifest File Version 1.0.1](#driver-manifest-file-version-101)
- [Driver Vulkan Entry Point Discovery](#driver-vulkan-entry-point-discovery)
@@ -619,8 +619,12 @@ application. This field is optional.
The Vulkan symbols exported by a driver must not clash with the loader's
exported Vulkan symbols.
-Because of this, all drivers must export the following function that is
-used for discovery of driver Vulkan entry-points.
+Therefore, `vk_icdGetInstanceProcAddr` was introduced to allow the loader
+to perform the the same behavior as `vkGetInstanceProcAddr` but on a driver
+basis.
+As such, it behaves the same as `vkGetInstanceProcAddr`.
+All drivers must export this function which is used for discovery of driver
+Vulkan entry-points.
This entry-point is not a part of the Vulkan API itself, only a private
interface between the loader and drivers for version 1 and higher
interfaces.
@@ -632,15 +636,11 @@ VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL
const char* pName);
```
-This function has very similar semantics to `vkGetInstanceProcAddr`.
-`vk_icdGetInstanceProcAddr` returns valid function pointers for all the
-global-level and instance-level Vulkan functions, and also for
-`vkGetDeviceProcAddr`.
+The driver must support querying global-level entry points by calling
+`vk_icdGetInstanceProcAddr` with a NULL `VkInstance` parameter.
Global-level functions are those which contain no dispatchable object as the
first parameter, such as `vkCreateInstance` and
`vkEnumerateInstanceExtensionProperties`.
-The driver must support querying global-level entry points by calling
-`vk_icdGetInstanceProcAddr` with a NULL `VkInstance` parameter.
Instance-level functions are those that have either `VkInstance`, or
`VkPhysicalDevice` as the first parameter dispatchable object.
Both core entry points and any instance extension entry points the