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-26 06:04:34 +0300
commit068e83f5f20e38c3ae1687e7f1aeb59bf6ce3e72 (patch)
tree096d4b016e4a34e68232442049b4696fed71f519
parentd79e2731d45bf4c81f650f27205e208a023269aa (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