Module vulkano::instance[][src]

Expand description

API entry point.

The first thing to do before you start using Vulkan is to create an Instance object.

For example:

use vulkano::instance::Instance;
use vulkano::instance::InstanceExtensions;
use vulkano::Version;

let instance = match Instance::new(None, Version::V1_1, &InstanceExtensions::none(), None) {
    Ok(i) => i,
    Err(err) => panic!("Couldn't build instance: {:?}", err)
};

Creating an instance initializes everything and allows you to enumerate physical devices, ie. all the Vulkan implementations that are available on the system.

use vulkano::instance::PhysicalDevice;

for physical_device in PhysicalDevice::enumerate(&instance) {
    println!("Available device: {}", physical_device.properties().device_name.as_ref().unwrap());
}

Enumerating physical devices and creating a device

After you have created an instance, the next step is usually to enumerate the physical devices that are available on the system with PhysicalDevice::enumerate() (see above).

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.

Once you have chosen a physical device, you can create a Device object from it. See the device module for more info.

Re-exports

pub use self::loader::LoadingError;

Modules

debug

Debug callback called by intermediate layers or by the driver.

loader

Vulkan implementation loading system.

Structs

ApplicationInfo

Information that can be given to the Vulkan driver so that it can identify your application.

ConformanceVersion

The version of the Vulkan conformance test that a driver is conformant against.

ExtensionRestrictionError

An error that can happen when enabling an extension on an instance or 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 a layer.

LayersIterator

Iterator that produces the list of layers that are available.

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.

ShaderCoreProperties

Specifies shader core properties.

SubgroupFeatures

Specifies which subgroup operations are supported.

Version

Represents an API version of Vulkan.

Enums

DriverId

An identifier for the driver of a physical device.

ExtensionRestriction
InstanceCreationError

Error that can happen when creating an instance.

LayersListError

Error that can happen when loading the list of layers.

PhysicalDeviceType

Type of a physical device.

PointClippingBehavior

Specifies how the device clips single point primitives.

ShaderFloatControlsIndependence

Specifies whether, and how, shader float controls can be set independently.

SupportedExtensionsError

Error that can happen when loading the list of layers.

Functions

layers_list

Queries the list of layers that are available when creating an instance.