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.