Implemented as part of the
VK_LAYER_KHRONOS_validation layer, this validation object is reponsiblie for validating the status of descriptor sets, command buffers, shader modules, pipeline states, renderpass usage, synchronization, dynamic states, and many other types of valid usage. It is the main module responsible for validation requiring substantial background state.
This module validates that:
This validation object will print errors if validation checks are not correctly met, and provide context related to the failures.
This validation 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. Validation also dumps all memory references and bindings for each operation.
Additional checks apply to the VS->FS and FS->CB interfaces with the pipeline. These checks include:
spv::DecBuiltin(that is, only the SSO rendezvous-by-location model is supported)
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.
This area of functionality validates the use of the WSI (Window System Integration) “swapchain” extensions (e.g.,