aboutsummaryrefslogtreecommitdiff
path: root/loader/LoaderAndLayerInterface.md
diff options
context:
space:
mode:
authorSlawomir Cygan <slawomir.cygan@intel.com>2017-07-03 16:47:52 +0200
committerLenny Komow <lenny@lunarg.com>2017-08-10 09:49:24 -0600
commit3b71bfe5d70d682f531725491eaf9f9f417daf99 (patch)
treec3f07658cc8bf0dde6996576c8f4b66dc2b05ccc /loader/LoaderAndLayerInterface.md
parent6060d82ee6ab93770ad96baca8923d6a836bcc51 (diff)
downloadusermoji-3b71bfe5d70d682f531725491eaf9f9f417daf99.tar.xz
loader: Add new ICD search paths to loader
This change extends the functionality of searching for ICD JSONs by adding registry locations specific to given display adapter and software components associated with this display adapter. The exact locations in registry are queried using Windows public PnP Configuration Manager API[1]. This change is required, as previous ICD locations (constant path in "HKLM/Software") may be unreachable for drivers and their installers on Windows RS3[2]. Similar change is being made for OpenCL[2] [1]https://msdn.microsoft.com/en-us/library/windows/hardware/ff549713.aspx [2]https://github.com/KhronosGroup/OpenCL-ICD-Loader/pull/21
Diffstat (limited to 'loader/LoaderAndLayerInterface.md')
-rw-r--r--loader/LoaderAndLayerInterface.md21
1 files changed, 21 insertions, 0 deletions
diff --git a/loader/LoaderAndLayerInterface.md b/loader/LoaderAndLayerInterface.md
index cf3f4c60..f3d0944b 100644
--- a/loader/LoaderAndLayerInterface.md
+++ b/loader/LoaderAndLayerInterface.md
@@ -1922,6 +1922,27 @@ the value is 0, then the loader will attempt to load the file. In this case,
the loader will open the first and last listings, but not the middle. This
is because the value of 1 for vendorb_vk.json disables the driver.
+Additionaly the loader will scan through registry keys specific to Display
+Adapters and all SoftwareComponents assocatied with these adapters for the
+locations of JSON manifest files. These keys are reflecting HKR device hive
+created during driver installation and contain configuration for base settings,
+including OpenGL/D3D ICD location.
+
+The Device Adapter and SoftwareComponent key paths should be obtained via PnP
+Configuration Manager API. In each of this path, a "VulkanDriverName" (and
+"VulkanDriverNameWow" for 32-bit Windows on Windows compatibility) key can be
+present, what should look like:
+```
+ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{Adapter GUID}\000X\VulkanDriverName
+ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{Adapter GUID}\000X\VulkanDriverNameWow
+
+ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{SoftwareComponent GUID}\000X\VulkanDriverName
+ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{SoftwareComponent GUID}\000X\VulkanDriverNameWow
+```
+If any of these keys exsist and is of type REG_SZ, the loader will open the JSON
+manifest file specified by the key valye. Each value must be a full absolute
+path to a JSON manifest file.
+
The Vulkan loader will open each enabled manifest file found to obtain the name
or pathname of an ICD shared library (".DLL") file.