Lines Matching +full:sanitizers +full:- +full:macos
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)
66 for Windows, Linux, Android, and macOS systems.
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
213 The [Override Meta-Layer](./LoaderLayerInterface.md#override-meta-layer) is
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
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
977 This option allows leak sanitizers to have full stack traces.
1022 <a href="#elevated-privilege-caveats">
1085 on Windows, Linux, macOS, Stadia, and Fuchsia.
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>
1128 On <i>Windows/Linux/macOS</i>, the discovery process typically focuses
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>
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>