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. |