# Vulkan Validation Layers

## Validation Layers Included in the SDK

The LunarG Vulkan SDK includes the following validation layers:

Layer Name | Layer Type | Description
--- | --- | ---
`VK_LAYER_LUNARG_core_validation` | validation | validate the descriptor set, pipeline state, and dynamic state; validate the interfaces between SPIR-V modules and the graphics pipeline; track and validate GPU memory and its binding to objects and command buffers; validate texture formats and render target formats
`VK_LAYER_LUNARG_object_tracker` | validation | track all Vulkan objects and flag invalid objects and object memory leaks
`VK_LAYER_LUNARG_parameter_validation` | validation | validate API parameter values
`VK_LAYER_GOOGLE_threading` | validation | check validity of multi-threaded API usage
`VK_LAYER_GOOGLE_unique_objects` | utility | wrap all Vulkan objects in a unique pointer at create time and unwrap them at use time

Note: `VK_LAYER_GOOGLE_unique_objects` is classified as a utility layer for the purpose of enabling validation. It is worth mentioning here because usage by itself is limited.

## VK_LAYER_LUNARG_standard_validation meta-layer

In addition to individually specified layers, a built-in meta-layer definition is provided to simplify validation for applications. Specifying this short-hand layer definition loads a standard set of validation layers in the optimal order:

         VK_LAYER_LUNARG_standard_validation

Specifying this layer definition will load the following layers in the order show below:

         VK_LAYER_GOOGLE_threading
         VK_LAYER_LUNARG_parameter_validation
         VK_LAYER_LUNARG_object_tracker
         VK_LAYER_LUNARG_core_validation
         VK_LAYER_GOOGLE_unique_objects

This is done by the Vulkan loader. The loader will remove redundant layer specifications and enforce the order of the standard validation layer. Layers not included in the meta-layer will be added to the layer chain as expected.

Use of `VK_LAYER_LUNARG_standard_validation` is recommended as the order and names of Vulkan validation layers may change. Using the standard validation layer on the desktop will help isolate applications from these changes.

See the Layers Overview and Configuration document for more information on how to configure Vulkan validation layers and message logging.