Copyright © 2015-2021 LunarG, Inc.

Creative Commons

Vulkan Configurator allows overriding the layers configuration used by Vulkan applications at runtime.

A Vulkan application may configure layers when creating a Vulkan Instance. This layers configuration may be overridden using Vulkan Configurator globally or for a selected list of Vulkan applications.

Finally Vulkan Configurator allows using layers from user-defined directories.

Platforms Support

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


Vulkan Configurator is delivered with the Vulkan SDK.

Using the Vulkan Configurator

Vulkan Configurator is a graphical user interface (GUI) that may be launched from the console using vkconfig.

The tool is distributed differently, depending on the platform:

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

Vulkan Configurator Animated Presentation


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 Layers Configuration: A collection of Vulkan Layers executed in a specific order with specific settings for each layer.

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 VK_INSTANCE_LAYERS environment variable. Implicit layers are enabled by their existence on the system by default.

Vulkan Meta-Layer: Meta-layers are a special kind of layer which is only available through the desktop Vulkan Loader. While usual layers are associated with one particular library, a meta-layer is actually a collection layer which contains an ordered list of other layers called component layers.

Vulkan Override Layer: The Vulkan Override Layer is an implicit meta-layer found on the system with the name VK_LAYER_LUNARG_override. It is the mechanism used by Vulkan Configurator to override Vulkan applications layers. This layer contains:

Vulkan Layer 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

Vulkan Loader

Vulkan Loader and Layers implementation overview

Vulkan Loader

For detailed information, read the Architecture of the Vulkan Loader Interfaces document.

Vulkan Layers Settings


The layer settings are stored into the vk_layer_settings.txt file and read directly by the layers.

When *Vulkan Configurator is used to override layers, the Vulkan application local vk_layer_settings.txt file is ignored by layer ecosystem convention.

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 systems store files in the following paths:

In addition, Windows system create registry entries in the following locations:

Environment Variables (Deprecated)

OS Environment Variables are the legacy approach to configure layers however they should be considered deprecated in favor of using vk_layer_settings.txt either locally, next to the Vulkan Applications or globally, generated from Vulkan Configurator.