aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2015-11-27 17:57:12 -0700
committerJon Ashburn <jon@lunarg.com>2015-12-01 10:31:39 -0700
commit4a7154ea7277cf846262b5194ade86f5e96b340a (patch)
tree60bddd63db79d9ae71cb573ab40eb03e32c219ac /loader
parentb7f1f248e160f91a251a9089c893ebc7b83fc43a (diff)
downloadusermoji-4a7154ea7277cf846262b5194ade86f5e96b340a.tar.xz
loader: Add documentation fo loader handling of VK_surface_*KHR extensions.
Document the special handling og vkSurfaceKHR objects.
Diffstat (limited to 'loader')
-rw-r--r--loader/README.md7
1 files changed, 6 insertions, 1 deletions
diff --git a/loader/README.md b/loader/README.md
index b8840d2c..24f95583 100644
--- a/loader/README.md
+++ b/loader/README.md
@@ -28,7 +28,12 @@ finds ICD driver libraries.
- vkEnumerateInstanceExtensionProperties exported
- vkGetDeviceProcAddr exported and returns valid function pointers for all the VK API entrypoints
- vkGetInstanceProcAddr exported and returns valid function pointers for all the VK API entrypoints
-- all objects created by ICD can be cast to (VK\_LAYER\_DISPATCH\_TABLE \*\*)
+- WSI surface extensions (vk_KHR_*surface) handling:
+ 1. Loader handles the vkCreate*SurfaceKHR() and vkDestroySurfaceKHR() functions including creating/destroying the VkSurfaceKHR object
+ 2. VkSurfaceKHR objects have the underlying structure (VKIcdSurface*) as defined in include/vulkan/vk_icd.h
+ 3. ICDs can cast any VkSurfaceKHR object to a pointer to the appropriate VKIcdSurface* structure
+ 4. VkIcdSurface* structures include VkIcdSurfaceWin32, VkIcdSurfaceXcb, VkIcdSurfaceXlib, VkIcdSurfaceMir, and VkIcdSurfaceWayland
+- all objects created by an ICD can be cast to (VK\_LAYER\_DISPATCH\_TABLE \*\*)
where the loader will replace the first entry with a pointer to the dispatch table which is
owned by the loader. This implies three things for ICD drivers:
1. The ICD must return a pointer for the opaque object handle