Introduction to extensions
While implementing a Vulkan application, the very first thing that a developer may need to do, and be interested in, is seeing the extended features, functionalities, and capabilities offered by the API. These allow them to gather vital information that can be used to report errors, debug, and trace commands; they can also be used for validation purposes. Vulkan makes use of layers and extensions to expose these additional functionalities:
Layers: Layers get hooked up with the existing Vulkan APIs and insert themselves in the chain of Vulkan commands that are associated with the specified layer. It's commonly used for validating the development process. For example, the driver need not check the supplied parameters in the Vulkan API; it's the layer's responsibility to validate whether the incoming parameter is correct or not.
Extensions: Extensions provide extended functionality or features, which may or may not be part of the standard specification. The extension...