@@ -99,57 +99,59 @@ For example, the output of the loader looking for implicit layers may look like
9999the following:
100100
101101```
102- LAYER: Searching for layer manifest files
103- LAYER: In following locations:
104- LAYER: /home/${USER}/.config/vulkan/implicit_layer.d
105- LAYER: /etc/xdg/vulkan/implicit_layer.d
106- LAYER: /usr/local/etc/vulkan/implicit_layer.d
107- LAYER: /etc/vulkan/implicit_layer.d
108- LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d
109- LAYER: /home/${USER}/.local/share/flatpak/exports/share/vulkan/implicit_layer.d
110- LAYER: /var/lib/flatpak/exports/share/vulkan/implicit_layer.d
111- LAYER: /usr/local/share/vulkan/implicit_layer.d
112- LAYER: /usr/share/vulkan/implicit_layer.d
113- LAYER: Found the following files:
114- LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/renderdoc_capture.json
115- LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/steamfossilize_i386.json
116- LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/steamfossilize_x86_64.json
117- LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/steamoverlay_i386.json
118- LAYER: /home/${USER}/.local/share/vulkan/implicit_layer.d/steamoverlay_x86_64.json
119- LAYER: /usr/share/vulkan/implicit_layer.d/nvidia_layers.json
120- LAYER: /usr/share/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
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.json
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
121121```
122122
123123Then, the loading of layer libraries is reported similar to this:
124124
125125```
126- LAYER | DEBUG: Loading layer library libVkLayer_khronos_validation.so
127- LAYER | INFO: Insert instance layer VK_LAYER_KHRONOS_validation (libVkLayer_khronos_validation.so)
128- LAYER | DEBUG: Loading layer library libVkLayer_MESA_device_select.so
129- LAYER | INFO: Insert instance layer VK_LAYER_MESA_device_select (libVkLayer_MESA_device_select.so)
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_khronos_validation.so)
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_device_select.so)
130130```
131131
132132Finally, when the Vulkan instance is created, you can see the full instance
133133call-chain from a functional standpoint with output like this:
134134
135135```
136- LAYER: vkCreateInstance layer callstack setup to:
137- LAYER: <Application>
138- LAYER: ||
139- LAYER: <Loader>
140- LAYER: ||
141- LAYER: VK_LAYER_MESA_device_select
142- LAYER: Type: Implicit
143- LAYER: Disable Env Var: NODEVICE_SELECT
144- LAYER: Manifest: /usr/share/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
145- LAYER: Library: libVkLayer_MESA_device_select.so
146- LAYER: ||
147- LAYER: VK_LAYER_KHRONOS_validation
148- LAYER: Type: Explicit
149- LAYER: Manifest: /usr/share/vulkan/explicit_layer.d/VkLayer_khronos_validation.json
150- LAYER: Library: libVkLayer_khronos_validation.so
151- LAYER: ||
152- LAYER: <Drivers>
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.json
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.json
152+ [Vulkan Loader] LAYER: Library: libVkLayer_khronos_validation.so
153+ [Vulkan Loader] LAYER: ||
154+ [Vulkan Loader] LAYER: <Drivers>
153155```
154156
155157In this scenario, two layers were used (the same two that were loaded earlier):
@@ -186,9 +188,9 @@ This will disable all implicit layers and the loader will report any disabled
186188layers to the logging output when layer logging is enabled in the following way:
187189
188190```
189- WARNING | LAYER: Implicit layer "VK_LAYER_MESA_device_select" forced disabled because name matches filter of env var 'VK_LOADER_LAYERS_DISABLE'.
190- WARNING | LAYER: Implicit layer "VK_LAYER_AMD_switchable_graphics_64" forced disabled because name matches filter of env var 'VK_LOADER_LAYERS_DISABLE'.
191- WARNING | LAYER: Implicit layer "VK_LAYER_Twitch_Overlay" forced disabled because name matches filter of env var 'VK_LOADER_LAYERS_DISABLE'.
191+ [Vulkan Loader] WARNING | LAYER: Implicit layer "VK_LAYER_MESA_device_select" forced disabled because name matches filter of env var 'VK_LOADER_LAYERS_DISABLE'.
192+ [Vulkan Loader] WARNING | LAYER: Implicit layer "VK_LAYER_AMD_switchable_graphics_64" forced disabled because name matches filter of env var 'VK_LOADER_LAYERS_DISABLE'.
193+ [Vulkan Loader] WARNING | LAYER: Implicit layer "VK_LAYER_Twitch_Overlay" forced disabled because name matches filter of env var 'VK_LOADER_LAYERS_DISABLE'.
192194```
193195
194196### Selectively Re-enable Layers
@@ -283,48 +285,48 @@ look like the following (NOTE: additional spaces have been removed from the
283285output for easier reading):
284286
285287```
286- DRIVER: Searching for driver manifest files
287- DRIVER: In following folders:
288- DRIVER: /home/$(USER)/.config/vulkan/icd.d
289- DRIVER: /etc/xdg/vulkan/icd.d
290- DRIVER: /etc/vulkan/icd.d
291- DRIVER: /home/$(USER)/.local/share/vulkan/icd.d
292- DRIVER: /home/$(USER)/.local/share/flatpak/exports/share/vulkan/icd.d
293- DRIVER: /var/lib/flatpak/exports/share/vulkan/icd.d
294- DRIVER: /usr/local/share/vulkan/icd.d
295- DRIVER: /usr/share/vulkan/icd.d
296- DRIVER: Found the following files:
297- DRIVER: /usr/share/vulkan/icd.d/intel_icd.x86_64.json
298- DRIVER: /usr/share/vulkan/icd.d/lvp_icd.x86_64.json
299- DRIVER: /usr/share/vulkan/icd.d/radeon_icd.x86_64.json
300- DRIVER: /usr/share/vulkan/icd.d/lvp_icd.i686.json
301- DRIVER: /usr/share/vulkan/icd.d/radeon_icd.i686.json
302- DRIVER: /usr/share/vulkan/icd.d/intel_icd.i686.json
303- DRIVER: /usr/share/vulkan/icd.d/nvidia_icd.json
304- DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/intel_icd.x86_64.json, version "1.0.0"
305- DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/lvp_icd.x86_64.json, version "1.0.0"
306- DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/radeon_icd.x86_64.json, version "1.0.0"
307- DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/lvp_icd.i686.json, version "1.0.0"
308- DRIVER: Requested driver /usr/lib/libvulkan_lvp.so was wrong bit-type. Ignoring this JSON
309- DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/radeon_icd.i686.json, version "1.0.0"
310- DRIVER: Requested driver /usr/lib/libvulkan_radeon.so was wrong bit-type. Ignoring this JSON
311- DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/intel_icd.i686.json, version "1.0.0"
312- DRIVER: Requested driver /usr/lib/libvulkan_intel.so was wrong bit-type. Ignoring this JSON
313- DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/nvidia_icd.json, version "1.0.0"
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, version "1.0.0"
307+ [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/lvp_icd.x86_64.json, version "1.0.0"
308+ [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/radeon_icd.x86_64.json, version "1.0.0"
309+ [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/lvp_icd.i686.json, version "1.0.0"
310+ [Vulkan Loader] DRIVER: Requested driver /usr/lib/libvulkan_lvp.so was wrong bit-type. Ignoring this JSON
311+ [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/radeon_icd.i686.json, version "1.0.0"
312+ [Vulkan Loader] DRIVER: Requested driver /usr/lib/libvulkan_radeon.so was wrong bit-type. Ignoring this JSON
313+ [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/intel_icd.i686.json, version "1.0.0"
314+ [Vulkan Loader] DRIVER: Requested driver /usr/lib/libvulkan_intel.so was wrong bit-type. Ignoring this JSON
315+ [Vulkan Loader] DRIVER: Found ICD manifest file /usr/share/vulkan/icd.d/nvidia_icd.json, version "1.0.0"
314316```
315317
316318Then when the application selects the device to use, you will see the Vulkan
317319device call chain reported in the following way (NOTE: additional spaces have
318320been removed from the output for easier reading):
319321
320322```
321- DRIVER: vkCreateDevice layer callstack setup to:
322- DRIVER: <Application>
323- DRIVER: ||
324- DRIVER: <Loader>
325- DRIVER: ||
326- DRIVER: <Device>
327- DRIVER: Using "Intel(R) UHD Graphics 630 (CFL GT2)" with driver: "/usr/lib64/libvulkan_intel.so"
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/libvulkan_intel.so"
328330```
329331
330332
@@ -351,8 +353,8 @@ The loader outputs messages like the following when the environment variables
351353are used:
352354
353355```
354- WARNING | DRIVER: Driver "intel_icd.x86_64.json" ignored because not selected by env var 'VK_LOADER_DRIVERS_SELECT'
355- WARNING | DRIVER: Driver "radeon_icd.x86_64.json" ignored because it was disabled by env var 'VK_LOADER_DRIVERS_DISABLE'
356+ [Vulkan Loader] WARNING | DRIVER: Driver "intel_icd.x86_64.json" ignored because not selected by env var 'VK_LOADER_DRIVERS_SELECT'
357+ [Vulkan Loader] WARNING | DRIVER: Driver "radeon_icd.x86_64.json" ignored because it was disabled by env var 'VK_LOADER_DRIVERS_DISABLE'
356358```
357359
358360For more info on how to use the filtering environment variables, refer to the
0 commit comments