What is a "Vulkan Extension"? When creating a VkInstance, you need to setup the API's extensions that are going to be used by your application (for example you need an extension to interface with the window system on desktop platforms).

What are these extensions? What do they represent? Are they just a way to tell Vulkan to use a certain feature implemented by a driver?
Are they just a way to tell Vulkan to use a certain feature implemented by a driver?


Well... yes. Vulkan extensions are simply additional features that Vulkan implementations may provide if they so choose to. They add new functions, structs, and valid enumerators to the API, and they can change some of the behavior of existing functions.

You have to detect whether the implementation supports these extensions before creating an instance/device. And you have to explicitly ask for such extensions when you create the instance/device.