Lines Matching +full:- +full:validation +full:- +full:settings
1 <!-- markdownlint-disable MD041 -->
7 # Architecture of the Vulkan Loader Interfaces <!-- omit from toc -->
10 <!-- Copyright © 2015-2023 LunarG, Inc. -->
12 [3]: https://i.creativecommons.org/l/by-nd/4.0/88x31.png "Creative Commons License"
13 [4]: https://creativecommons.org/licenses/by-nd/4.0/
14 ## Table of Contents <!-- omit from toc -->
16 - [Overview](#overview)
17 - [Who Should Read This Document](#who-should-read-this-document)
18 - [The Loader](#the-loader)
19 - [Goals of the Loader](#goals-of-the-loader)
20 - [Layers](#layers)
21 - [Drivers](#drivers)
22 - [Installable Client Drivers](#installable-client-drivers)
23 - [VkConfig](#vkconfig)
24 - [Important Vulkan Concepts](#important-vulkan-concepts)
25 - [Instance Versus Device](#instance-versus-device)
26 - [Instance-Specific](#instance-specific)
27 - [Instance Objects](#instance-objects)
28 - [Instance Functions](#instance-functions)
29 - [Instance Extensions](#instance-extensions)
30 - [Device-Specific](#device-specific)
31 - [Device Objects](#device-objects)
32 - [Device Functions](#device-functions)
33 - [Device Extensions](#device-extensions)
34 - [Dispatch Tables and Call Chains](#dispatch-tables-and-call-chains)
35 - [Instance Call Chain Example](#instance-call-chain-example)
36 - [Device Call Chain Example](#device-call-chain-example)
37 - [Elevated Privilege Caveats](#elevated-privilege-caveats)
38 - [Application Interface to the Loader](#application-interface-to-the-loader)
39 - [Layer Interface with the Loader](#layer-interface-with-the-loader)
40 - [Driver Interface With the Loader](#driver-interface-with-the-loader)
41 - [Debugging Issues](#debugging-issues)
42 - [Loader Policies](#loader-policies)
43 - [Filter Environment Variable Behaviors](#filter-environment-variable-behaviors)
44 - [Comparison Strings](#comparison-strings)
45 - [Comma-Delimited Lists](#comma-delimited-lists)
46 - [Globs](#globs)
47 - [Case-Insensitive](#case-insensitive)
48 - [Environment Variable Priority](#environment-variable-priority)
49 - [Table of Debug Environment Variables](#table-of-debug-environment-variables)
50 - [Active Environment Variables](#active-environment-variables)
51 - [Deprecated Environment Variables](#deprecated-environment-variables)
52 - [Glossary of Terms](#glossary-of-terms)
58 * [The Vulkan Loader](#the-loader)
86 Remember, Vulkan-capable hardware may be graphics-based, compute-based, or
92 The Vulkan object model allows the loader to insert layers into a call-chain
103 1. Support one or more Vulkan-capable drivers on a user's system without them
106 application, developer, or standard system settings.
164 It can be used to find layers, enable them, change layer settings, and other
174 * The Vulkan Layer Settings File
175 * VkConfig Configuration Settings
191 <td>Vulkan Layer Settings</td>
192 <td>$USER/.local/share/vulkan/settings.d/vk_layer_settings.txt</td>
195 <td>VkConfig Configuration Settings</td>
196 <td>$USER/.local/share/vulkan/settings.d/vk_layer_settings.txt</td>
204 <td>Vulkan Layer Settings</td>
208 <td>VkConfig Configuration Settings</td>
213 The [Override Meta-Layer](./LoaderLayerInterface.md#override-meta-layer) is
219 The Vulkan Layer Settings file can be used to specify certain behaviors and
221 These settings can also be controlled by VkConfig, or they can be manually
223 For details on what settings can be used, refer to the individual layers.
247 * [Instance-specific](#instance-specific)
248 * [Device-specific](#device-specific)
251 #### Instance-Specific
253 A "Vulkan instance" (`VkInstance`) is a high-level construct used to provide
254 Vulkan system-level information and functionality.
266 [instance object](#instance-objects) or no object at all.
278 `vkGetInstanceProcAddr` can be used to query any instance or device entry-points
279 in addition to all core entry-points.
297 #### Device-Specific
299 A Vulkan device (`VkDevice`), on the other-hand, is a logical identifier used
335 [Best Application Performance Setup](LoaderApplicationInterface.md#best-application-performance-set…
359 - Instance Dispatch Table
360 - Created in the loader during the call to `vkCreateInstance`
361 - Device Dispatch Table
362 - Created in the loader during the call to `vkCreateDevice`
398 This implies that the loader has to be aware of any instance-level extensions
423 The loader uses platform-specific mechanisms (such as `secure_getenv` and its
435 * `XDG_CONFIG_HOME` (Linux/Mac-specific)
436 * `XDG_DATA_HOME` (Linux/Mac-specific)
439 [Layer Discovery](LoaderLayerInterface.md#layer-discovery) and
440 [Driver Discovery](LoaderDriverInterface.md#driver-discovery).
493 In the long-run, this could also be used as validation requirements for any
498 * [Loader And Driver Policy](LoaderDriverInterface.md#loader-and-driver-policy)
499 * [Loader And Layer Policy](LoaderLayerInterface.md#loader-and-layer-policy)
517 ### Comma-Delimited Lists
519 All of the filter environment variables accept comma-delimited input.
529 - Prefixes: `"string*"`
530 - Suffixes: `"*string"`
531 - Substrings: `"*string*"`
532 - Whole strings: `"string"`
533 - In the case of whole strings, the string will be compared against each
535 - Because of this, it will only match the specific target such as:
544 ### Case-Insensitive
547 are not case-sensitive.
555 environment variable, only to have it be re-enabled by the *enable*/*select*
591 <a href="#elevated-privilege-caveats">
617 <a href="#elevated-privilege-caveats">
642 <a href="#elevated-privilege-caveats">
676 <a href="#elevated-privilege-caveats">
699 <a href="#elevated-privilege-caveats">
720 <a href="#elevated-privilege-caveats">
738 Enable loader debug messages using a comma-delimited list of level
744 * layer (layer-specific output)<br/>
745 * driver (driver-specific output)<br/>
819 A comma-delimited list of globs to search for in known drivers and
850 A comma-delimited list of globs to search for in known drivers and
867 drivers and then selectively re-enable individual drivers using the
885 A comma-delimited list of globs to search for in known layers and
901 VK_LOADER_LAYERS_ENABLE=*validation,*recon*<br/>
904 VK_LOADER_LAYERS_ENABLE=*validation,*recon*<br/><br/>
905 The above would enable the Khronos validation layer and the
915 A comma-delimited list of globs to search for in known layers and
930 layers and then selectively re-enable individual layers using the
948 A comma-delimited list of globs to search for in known layers and
963 VK_LOADER_LAYERS_ALLOW=*validation*,*recon*<br/>
966 VK_LOADER_LAYERS_ALLOW=*validation*,*recon*<br/><br/>
967 The above would allow any layer whose name is validation or recon to be
1022 <a href="#elevated-privilege-caveats">
1087 <a href="https://github.com/KhronosGroup/Vulkan-Loader">code base</a>
1107 <a href="#dispatch-tables-and-call-chains">Dispatch Tables and Call
1120 See the <a href="#instance-versus-device">Instance Versus Device</a>
1138 See <a href="#dispatch-tables-and-call-chains">Dispatch Tables and Call
1153 Extensions may be IHV-specific, platform-specific, or more broadly
1160 structure, enumeration entry, command entry-point, or define that is
1174 <b>KHR</b> - For Khronos authored extensions, <br/>
1175 <b>EXT</b> - For multi-company authored extensions, <br/>
1176 <b>AMD</b> - For AMD authored extensions, <br/>
1177 <b>ARM</b> - For ARM authored extensions, <br/>
1178 <b>NV</b> - For Nvidia authored extensions.<br/>
1187 See <a href="#installable-client-drivers">Installable Client Drivers</a>
1208 See the <a href="#dispatch-tables-and-call-chains">Dispatch Tables and
1222 See the <a href="#instance-versus-device">Instance Versus Device</a>
1242 <a href="LoaderLayerInterface.md#layer-layer-discovery">Layer Discovery
1250 See <a href="#the-loader">The Loader</a> section for more information.
1257 <a href="LoaderLayerInterface.md#layer-manifest-file-format">Layer</a>
1259 <a href="LoaderDriverInterface.md#driver-manifest-file-format">Driver</a>
1261 settings.
1271 See <a href="#dispatch-tables-and-call-chains">Dispatch Tables and Call
1282 See <a href="#dispatch-tables-and-call-chains">Dispatch Tables and Call
1292 <a href="LoaderApplicationInterface.md#wsi-extensions">WSI Extensions</a>