Add `vkEnumerateInstanceVersion` to the list of allowed pre instance
functions in the LoaderLayerInterface.md
Change-Id: I238aec5c3606af4d39bff5c50bbe75e909cd3224
When static linking was removed as a build option, the documentation
for it was not ammended. This commit changes the text to describe that
it used to be supported, is no longer supported, and why the feature
was removed.
Change-Id: I8da0c1c811be7e9dc5119c4c27c34a5cbb30edf8
The LoaderAndLayerInterface.md contained references to layers that
are no longer exist. This commit cleans that up.
Change-Id: I09a78513ba6f56cad6b6e9f2432242b86a291e93
This fixes some documentation that incorrectly showed passing a NULL
instance when getting function pointers from vkGetInstanceProcAddr.
Change-Id: I56b4e8f244ec79ffb489ad86e09b30b8df8bc006
The current description about the version number negotiation between
loader and layer is easy to cause disagreement, and the description
about the version number negotiation between loader and ICD is much
more readable, so I think it is better to adopt the same way as the
vk_icdNegotiateLoaderICDInterfaceVersion description to describe the
vkNegotiateLoaderLayerInterfaceVersion.
Signed-off-by: Wang YanQing <udknight@gmail.com>
No place mentions the way previously that we could use environment
variable to enable explicit layers, so I think it is better to move
the notice in brackets to the more proper place.
The right type name of InterceptFunctionName's first argument
is VkEnumerateInstanceExtensionPropertiesChan instead of the
VkEnumerateInstanceExtensionProperties.
Signed-off-by: Wang YanQing <udknight@gmail.com>
Adding Vulkan Logo for consistency across Vulkan SDK documentation.
Adding creative commons license (because there was no license on the documentation)
LoaderAndLayerInterface.md:
- entry-point => entry point
- MacOS => macOS (except in API function names)
- on the applications surfaces => on the application's surfaces
- Because layers are optionally, => Because layers are optional,
- a child of a one of the above => a child of one of the above
- action / operation => action or operation
- fixed indentation of the dispatch table description to what I think was intended
- the application and/or system can specify => the application and the system can each specify
- linking to the .dll and .so versions of the loader => linking to the dynamic versions of the loader
(because .dylib is also a dynamic link)
- platform specific => platform-specific
- dlsym() => `dlsym` (to match usage elsewhere)
- setup => set up (when used as a verb)
- don't break link references across lines
e.g. [XX XX XX XX](YY) should never be broken in the YY clause
- 3 enabled layers => three enabled layers (spell numbers up to 10)
- backwards compatibility => backward compatibility
- Windows paths use "\" instead of "/"
- libXXX.YYY => `libXXX.YYY` (to match usage elsewhere)
- Layers => layers (to match usage elsewhere, where "Layers" isn't a capitalized term)
- bottommost => bottom-most (for consistency elsewhere)
- the VK_LAYER_XXX ... => the VK_LAYER_XXX layer (for consistency elsewhere)
- either end all list or table items with periods, or none of them
- Khronos approved => Khronos-approved
- hand-shake => handshake
- logical device (This depends => logical device (this depends
- other-hand => other hand
- filtering out of => filtering of
- JSON formatted => JSON-formatted
- /path/to/something => `/path/to/something` (to match usage elsewhere)
- system wide registries => system registries
- fixed some "*" entries (which generally must be escaed, "\*", in markdown)
- environment variable enabled layer => environment-variable-enabled layer
- The implementation of each intercept functions is => The implementation fo each intercept function is
- corrected some "it's" to "its", and vice versa
- the extension suffix of the file ends with ".json" => the extension suffix of the file is ".json"
- added commas to fix illegal JSON file content
- semi-colon separated => semi-colon-separated
- other minor grammar and consistency fixes
Although an ICD is a layer too, in this context, using "ICD" is better
than using "layer".
Change-Id: Ic9619c0a99412c34aaba40cf4c1cc2187a00731b
Signed-off-by: Wang YanQing <udknight@gmail.com>
Note that references in scripts/common_codegen.py and
scripts/loader_extension_generator.py will need to be
removed later
Change-Id: I7b17c80f7a06a339d7df0c199ff556212a7c6534
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
Add a check to determine if the API version being requested can be
handled by the loader. If it can't, then we return incompatible driver.
If we can, we continue along our merry way.
An addendum is that we also bumped the Loader/ICD interface version.
This was requested by Nvidia so that the ICDs know that we pay attention
to the version in the loader. If they don't see the new Loader/ICD
interface version, they will handle the failing on all non-1.0 API
requests.
Change-Id: Icb7dd45e754c9f6a6c8186198333bacc68077b93
Added table of all environmental variables. Also added note
about using LD_BIND_NOW usage for discovering problematic ICDs.
Change-Id: Iba4234b2226ab145491fc913f4361b098b21fd0b
Use the meta-layer Manifest API version to check against each
of its component layer API versions. This will force us to
make sure each JSON file is properly updated in sync.
Add a section to the LoaderAndLayerInterface markdown doc about
the usage of meta-layers, and an example of how they look in a
Manifest JSON file.
Change-Id: I667cfd3013cbcf201c83935dc6f1c2bb937c7742
Added section detailing the loader's instance extension name
filtering behavior and the environment varaible that can be used
to disable the behavior.
Change-Id: Iadbde47e2933a163906a7cfa1c4b340da0d73789
Add new extensions for 1.0.39. Also, updated layers to include
minimal set of functionality for 1.0.39 extensions. Extensions include:
- VK_KHR_get_physical_device_properties2
- VK_KHR_shader_draw_parameters
- VK_EXT_direct_mode_display
- VK_EXT_display_surface_counter
- VK_EXT_display_control
Also, redo the LoaderAndLayerIf document.
Change-Id: I10412086da7a798afe832a3892e18f606259b5af