Khronos Vulkan

VK_LAYER_LUNARG_core_validation

Creative Commons

The VK_LAYER_LUNARG_core_validation layer validates the status of descriptor sets, command buffers, shader modules, pipeline states, renderpass usage, synchronization, dynamic states and is the workhorse layer for many other types of valid usage.

VK_LAYER_LUNARG_core_validation validates that:

The VK_LAYER_LUNARG_core_validation layer will print errors if validation checks are not correctly met. VK_LAYER_LUNARG_core_validation will also display the values of the objects tracked.

Memory/Resource related functionality

This layer additionally attempts to ensure that memory objects are managed correctly by the application. These memory objects may be bound to pipelines, objects, and command buffers, and then submitted to the GPU for work. Specifically the layer validates that:

Errors will be printed if validation checks are not correctly met and warnings if improper (but not illegal) use of memory is detected. This validation layer also dumps all memory references and bindings for each operation.

Shader validation functionality

Checks performed by this layer apply to the VS->FS and FS->CB interfaces with the pipeline. These checks include:

A special error checking case invoked when the FS stage writes a built-in corresponding to the legacy gl_FragColor. In this case, an error is emitted if

These extra checks are to ensure that the legacy broadcast of gl_FragColor to all bound color attachments is well-defined.

Swapchain validation functionality

This area of functionality validates the use of the WSI (Window System Integration) "swapchain" extensions (e.g., VK_EXT_KHR_swapchain and VK_EXT_KHR_device_swapchain).