Module vulkano::instance
[−]
[src]
API entry point.
The first thing to do before you start using Vulkan is to create an Instance
object.
Creating an instance initializes everything and allows you to:
- Enumerate physical devices, ie. all the Vulkan implementations that are available on the system.
- Enumerate monitors.
- Create surfaces (fullscreen or windowed) which will later be drawn upon.
Enumerating monitors and creating surfaces can only be done if the proper extensions are available and have been enabled. It is possible for a machine to support Vulkan without support for rendering on a screen.
Application info
When you create an instance, you have the possibility to pass an ApplicationInfo
struct. This
struct contains various information about your application, most notably its name and engine.
Passing such a structure allows for example the driver to let the user configure the driver's behavior for your application alone through a control panel.
Enumerating physical devices
After you have created an instance, the next step is to enumerate the physical devices that
are available on the system with PhysicalDevice::enumerate()
.
When choosing which physical device to use, keep in mind that physical devices may or may not
be able to draw to a certain surface (ie. to a window or a monitor), or may even not be able
to draw at all. See the swapchain
module for more information about surfaces.
A physical device can designate a video card, an integrated chip, but also multiple video
cards working together or a software implementation. Once you have chosen a physical device,
you can create a Device
object from it. See the device
module for more info.
Modules
debug |
Debug callback called by validation layers. |
Structs
ApplicationInfo |
Information that can be given to the Vulkan driver so that it can identify your application. |
DeviceExtensions |
List of extensions that are enabled or available. |
Features |
Represents all the features that are available on a physical device or enabled on a logical device. |
Instance |
An instance of a Vulkan context. This is the main object that should be created by an application before everything else. |
InstanceExtensions |
List of extensions that are enabled or available. |
LayerProperties |
Properties of an available layer. |
LayersIterator |
Iterator that produces the list of layers that are available. |
Limits |
Limits of a physical device. |
MemoryHeap |
Represents a memory heap in a physical device. |
MemoryHeapsIter |
Iterator for all the memory heaps available on a physical device. |
MemoryType |
Represents a memory type in a physical device. |
MemoryTypesIter |
Iterator for all the memory types available on a physical device. |
PhysicalDevice |
Represents one of the available devices on this machine. |
PhysicalDevicesIter |
Iterator for all the physical devices available on hardware. |
QueueFamiliesIter |
Iterator for all the queue families available on a physical device. |
QueueFamily |
Represents a queue family in a physical device. |
Enums
InstanceCreationError |
Error that can happen when creating an instance. |
LoadingError |
Error that can happen when loading the Vulkan loader. |
PhysicalDeviceType |
Type of a physical device. |
Functions
layers_list |
Queries the list of layers that are available when creating an instance. |