Lines Matching +full:vulkan +full:- +full:layers
1 <!-- markdownlint-disable MD041 -->
2 [![Khronos Vulkan][1]][2]
4 [1]: https://vulkan.lunarg.com/img/Vulkan_100px_Dec16.png "https://www.khronos.org/vulkan/"
5 [2]: https://www.khronos.org/vulkan/
7 # Debugging The Vulkan Desktop Loader <!-- 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 - [Debugging Issues](#debugging-issues)
17 - [Loader Logging](#loader-logging)
18 - [Debugging Possible Layer Issues](#debugging-possible-layer-issues)
19 - [Enable Layer Logging](#enable-layer-logging)
20 - [Disable Layers](#disable-layers)
21 - [Selectively Re-enable Layers](#selectively-re-enable-layers)
22 - [Allow specific layers to be ignored by VK\_LOADER\_LAYERS\_DISABLE](#allow-specific-layers-to-be…
23 - [Debugging Possible Driver Issues](#debugging-possible-driver-issues)
24 - [Enable Driver Logging](#enable-driver-logging)
25 - [Selectively Enable Specific Drivers](#selectively-enable-specific-drivers)
32 **NOTE**: This functionality is all specific to the desktop Vulkan loader and
37 The Vulkan desktop loader has added logging functionality that can be enabled by
41 The variable can be set to a comma-delimited list of debug level options which
48 * info Report info-level
50 * debug Report debug-level messages generated by the
52 * layer Report all layer-specific messages
54 * driver Report all driver-specific messages
70 [Enable Loader Debug Layer Output](LoaderApplicationInterface.md#enable-loader-debug-layer-output)
72 [Table of Debug Environment Variables](LoaderInterfaceArchitecture.md#table-of-debug-environment-va…
87 but this will provide more layer-specific info as well such as:
88 * What layers are found
93 * The layer library is the wrong bit-depth for the executing application
94 (i.e. 32-bit vs 64-bit)
95 * The layer itself doesn't support the application desired version of Vulkan
96 * If any environment variables are disabling any layers
98 For example, the output of the loader looking for implicit layers may look like
102 [Vulkan Loader] LAYER: Searching for implicit layer manifest files
103 [Vulkan Loader] LAYER: In following locations:
104 [Vulkan Loader] LAYER: /home/${USER}/.config/vulkan/implicit_layer.d
105 [Vulkan Loader] LAYER: /etc/xdg/vulkan/implicit_layer.d
106 [Vulkan Loader] LAYER: /usr/local/etc/vulkan/implicit_layer.d
107 [Vulkan Loader] LAYER: /etc/vulkan/implicit_layer.d
108 [Vulkan Loader] LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d
109 [Vulkan Loader] LAYER: /home/${USER}/.local/share/flatpak/exports/share/vulkan/implicit_layer.d
110 [Vulkan Loader] LAYER: /var/lib/flatpak/exports/share/vulkan/implicit_layer.d
111 [Vulkan Loader] LAYER: /usr/local/share/vulkan/implicit_layer.d
112 [Vulkan Loader] LAYER: /usr/share/vulkan/implicit_layer.d
113 [Vulkan Loader] LAYER: Found the following files:
114 [Vulkan Loader] LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/renderdoc_capture.json
115 [Vulkan Loader] LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/steamfossilize_i386.json
116 [Vulkan Loader] LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/steamfossilize_x86_64.j…
117 [Vulkan Loader] LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/steamoverlay_i386.json
118 [Vulkan Loader] LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/steamoverlay_x86_64.json
119 [Vulkan Loader] LAYER: /usr/share/vulkan/implicit_layer.d/nvidia_layers.json
120 [Vulkan Loader] LAYER: /usr/share/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
126 [Vulkan Loader] DEBUG | LAYER : Loading layer library libVkLayer_khronos_validation.so
127 [Vulkan Loader] INFO | LAYER : Insert instance layer VK_LAYER_KHRONOS_validation (libVkLayer_khrono…
128 [Vulkan Loader] DEBUG | LAYER : Loading layer library libVkLayer_MESA_device_select.so
129 [Vulkan Loader] INFO | LAYER : Insert instance layer VK_LAYER_MESA_device_select (libVkLayer_MESA_d…
132 Finally, when the Vulkan instance is created, you can see the full instance
133 call-chain from a functional standpoint with output like this:
136 [Vulkan Loader] LAYER: vkCreateInstance layer callstack setup to:
137 [Vulkan Loader] LAYER: <Application>
138 [Vulkan Loader] LAYER: ||
139 [Vulkan Loader] LAYER: <Loader>
140 [Vulkan Loader] LAYER: ||
141 [Vulkan Loader] LAYER: VK_LAYER_MESA_device_select
142 [Vulkan Loader] LAYER: Type: Implicit
143 [Vulkan Loader] LAYER: Enabled By: Implicit Layer
144 [Vulkan Loader] LAYER: Disable Env Var: NODEVICE_SELECT
145 [Vulkan Loader] LAYER: Manifest: /usr/share/vulkan/implicit_layer.d/VkLayer_MESA_device_select…
146 [Vulkan Loader] LAYER: Library: libVkLayer_MESA_device_select.so
147 [Vulkan Loader] LAYER: ||
148 [Vulkan Loader] LAYER: VK_LAYER_KHRONOS_validation
149 [Vulkan Loader] LAYER: Type: Explicit
150 [Vulkan Loader] LAYER: Enabled By: By the Application
151 [Vulkan Loader] LAYER: Manifest: /usr/share/vulkan/explicit_layer.d/VkLayer_khronos_validation…
152 [Vulkan Loader] LAYER: Library: libVkLayer_khronos_validation.so
153 [Vulkan Loader] LAYER: ||
154 [Vulkan Loader] LAYER: <Drivers>
157 In this scenario, two layers were used (the same two that were loaded earlier):
169 ### Disable Layers
172 1.3.234 of the Vulkan headers and later.
174 Sometimes, implicit layers can cause issues with an application.
176 implicit layers.
179 or disable various layers.
180 If you're not sure what to do, try disabling all implicit layers manually by
187 This will disable all implicit layers and the loader will report any disabled
188 layers to the logging output when layer logging is enabled in the following way:
191 [Vulkan Loader] WARNING | LAYER: Implicit layer "VK_LAYER_MESA_device_select" forced disabled beca…
192 [Vulkan Loader] WARNING | LAYER: Implicit layer "VK_LAYER_AMD_switchable_graphics_64" forced disab…
193 [Vulkan Loader] WARNING | LAYER: Implicit layer "VK_LAYER_Twitch_Overlay" forced disabled because …
196 ### Selectively Re-enable Layers
199 1.3.234 of the Vulkan headers and later.
201 When trying to diagnose problems caused by layers, it is useful to first disable
202 all layers and re-enable each layer individually.
206 For example, from the above given list of disabled layers, let’s selectively
207 re-enable one:
215 "VK_LAYER_Twitch_Overlay" layers disabled, while enabling the
229 [Layer Filtering](LoaderLayerInterface.md#layer-filtering) section of the
232 ## Allow specific layers to be ignored by VK_LOADER_LAYERS_DISABLE
235 1.3.262 of the Vulkan headers and later.
237 When using `VK_LOADER_LAYERS_DISABLE` to disable implicit layers, it is possible
238 to allow specific layers to be enabled using `VK_LOADER_LAYERS_ENABLE`.
239 However, this has the effect of *forcing* layers to be enabled, which is not
241 Implicit layers have the ability to only be enabled when a layer specified
252 this allows for implicit layers that are context dependent to be enabled
255 Example: Disable all implicit layers except for any layers that have steam or
267 1.3.234 of the Vulkan headers and later.
277 but this will provide more driver-specific info as well such as:
288 [Vulkan Loader] DRIVER: Searching for driver manifest files
289 [Vulkan Loader] DRIVER: In following folders:
290 [Vulkan Loader] DRIVER: /home/$(USER)/.config/vulkan/icd.d
291 [Vulkan Loader] DRIVER: /etc/xdg/vulkan/icd.d
292 [Vulkan Loader] DRIVER: /etc/vulkan/icd.d
293 [Vulkan Loader] DRIVER: /home/$(USER)/.local/share/vulkan/icd.d
294 [Vulkan Loader] DRIVER: /home/$(USER)/.local/share/flatpak/exports/share/vulkan/icd.d
295 [Vulkan Loader] DRIVER: /var/lib/flatpak/exports/share/vulkan/icd.d
296 [Vulkan Loader] DRIVER: /usr/local/share/vulkan/icd.d
297 [Vulkan Loader] DRIVER: /usr/share/vulkan/icd.d
298 [Vulkan Loader] DRIVER: Found the following files:
299 [Vulkan Loader] DRIVER: /usr/share/vulkan/icd.d/intel_icd.x86_64.json
300 [Vulkan Loader] DRIVER: /usr/share/vulkan/icd.d/lvp_icd.x86_64.json
301 [Vulkan Loader] DRIVER: /usr/share/vulkan/icd.d/radeon_icd.x86_64.json
302 [Vulkan Loader] DRIVER: /usr/share/vulkan/icd.d/lvp_icd.i686.json
303 [Vulkan Loader] DRIVER: /usr/share/vulkan/icd.d/radeon_icd.i686.json
304 [Vulkan Loader] DRIVER: /usr/share/vulkan/icd.d/intel_icd.i686.json
305 [Vulkan Loader] DRIVER: /usr/share/vulkan/icd.d/nvidia_icd.json
306 [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/intel_icd.x86_64.json, vers…
307 [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/lvp_icd.x86_64.json, versio…
308 [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/radeon_icd.x86_64.json, ver…
309 [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/lvp_icd.i686.json, version …
310 [Vulkan Loader] DRIVER: Requested driver /usr/lib/libvulkan_lvp.so was wrong bit-type. Ignoring thi…
311 [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/radeon_icd.i686.json, versi…
312 [Vulkan Loader] DRIVER: Requested driver /usr/lib/libvulkan_radeon.so was wrong bit-type. Ignoring …
313 [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/intel_icd.i686.json, versio…
314 [Vulkan Loader] DRIVER: Requested driver /usr/lib/libvulkan_intel.so was wrong bit-type. Ignoring t…
315 [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/nvidia_icd.json, version "1…
318 Then when the application selects the device to use, you will see the Vulkan
323 [Vulkan Loader] DRIVER: vkCreateDevice layer callstack setup to:
324 [Vulkan Loader] DRIVER: <Application>
325 [Vulkan Loader] DRIVER: ||
326 [Vulkan Loader] DRIVER: <Loader>
327 [Vulkan Loader] DRIVER: ||
328 [Vulkan Loader] DRIVER: <Device>
329 [Vulkan Loader] DRIVER: Using "Intel(R) UHD Graphics 630 (CFL GT2)" with driver: "/usr/lib64…
336 1.3.234 of the Vulkan headers and later.
343 known to the loader until much later in the Vulkan initialization process.
356 [Vulkan Loader] WARNING | DRIVER: Driver "intel_icd.x86_64.json" ignored because not selected by en…
357 [Vulkan Loader] WARNING | DRIVER: Driver "radeon_icd.x86_64.json" ignored because it was disabled b…
361 [Driver Filtering](LoaderDriverInterface.md#driver-filtering) section of the