LunarG

Copyright © 2015-2025 LunarG, Inc.

Creative Commons

Vulkan layers allow application developers to add functionality to Vulkan applications without modifying the application itself, e.g.: validating API usages, dumping API entry points or generating screenshots of specified frames.

Configuring layers means multiple tasks:

Vulkan layers can be configured using three different methods to match specific Vulkan developers' workflows:

Vulkan Configurator 3 requires Vulkan Loader 1.4.304 or newer to run.


Platforms Support

OS Windows Linux macOS iOS Android
Support ✔️ ✔️ ✔️

Downloads

Vulkan Configurator is delivered with the Vulkan SDK.


Using Vulkan Configurator

Vulkan Configurator is mainly a graphical user interface (GUI) that may be launched from the console using vkconfig-gui and a command line tool vkconfig --gui.

The tool is distributed differently, depending on the platform:

Vulkan Configurator may be used with command line arguments to configure Vulkan Loader. Use vkconfig --help in the console for more information.


Terminology

***Vulkan Layer***: A layer is an optional library that can intercept Vulkan functions on their way from the Vulkan application down to the Vulkan drivers. Multiple layers can be chained together to use multiple layer functionalities simultaneously.

***Vulkan Explicit Layers vs Implicit Layer***: An explicit layer has to be explicitly activated by the user from source in vkCreateInstance, using Vulkan Configurator or the VK_LOADER_LAYERS_ENABLE environment variable. Implicit layers are enabled by their existence on the system by default.

***Vulkan Loader Settings ***: The Vulkan Loader settings are located on the system with the filename vk_loader_settings.json and is generated by Vulkan Configurator while running. It is the Vulkan Loader mechanism used by Vulkan Configurator to select and order Vulkan layers being executed when launching a Vulkan executable.

Vulkan Layers Settings: Per-layer settings loaded by each layer library and stored in the vk_layer_settings.txt file. This file is located either next to the Vulkan application executable or set globally and applied to all Vulkan applications thanks to Vulkan Configurator. These settings are described here for VK_LAYER_KHRONOS_validation and here for other layers created by LunarG.


Vulkan Layers execution order overview

The Vulkan Loader and Vulkan Configurator support enabling and ordering layers independently.

A Vulkan application developer may want to reorder the Vulkan Layers using Vulkan Configurator. When the Vulkan application developer set all the layers to auto, the Vulkan Loader will follow order of the layers set in Vulkan Configurator, overriding the layers order set by VK_LOADER_LAYERS_ENABLES and vkCreateInstance.

All layers may are not be located by Vulkan Configurator. Some may be located and enabled by the Vulkan application at launch time using VK_ADD_LAYER_PATH environment variable and they will be executed within the "Vulkan Layers Located by Vulkan Application" block set in Vulkan Configurator in the layers order specified in VK_LOADER_LAYERS_ENABLES and vkCreateInstance arguments represented in the following diagram:


User-specific system configuration

Vulkan Configurator does not make any system-wide changes to a system, but it does make user-specific changes. These changes are documented below:

Linux and macOS

Unix systems store files in the following paths:

Windows

Windows systems store files in the following paths:

Windows system has registry entries in the following locations: