Struct vulkano::instance::PhysicalDevice
[−]
[src]
pub struct PhysicalDevice<'a> { /* fields omitted */ }
Represents one of the available devices on this machine.
This struct simply contains a pointer to an instance and a number representing the physical device. You are therefore encouraged to pass this around by value instead of by reference.
Example
use vulkano::instance::PhysicalDevice; for physical_device in PhysicalDevice::enumerate(&instance) { print_infos(physical_device); } fn print_infos(dev: PhysicalDevice) { println!("Name: {}", dev.name()); }
Methods
impl<'a> PhysicalDevice<'a>
[src]
fn enumerate(instance: &'a Arc<Instance>) -> PhysicalDevicesIter<'a>
Returns an iterator that enumerates the physical devices available.
Example
use vulkano::instance::PhysicalDevice; for physical_device in PhysicalDevice::enumerate(&instance) { println!("Available device: {}", physical_device.name()); }
fn from_index(
instance: &'a Arc<Instance>,
index: usize
) -> Option<PhysicalDevice<'a>>
instance: &'a Arc<Instance>,
index: usize
) -> Option<PhysicalDevice<'a>>
Returns a physical device from its index. Returns None
if out of range.
Indices range from 0 to the number of devices.
Example
use vulkano::instance::Instance; use vulkano::instance::InstanceExtensions; use vulkano::instance::PhysicalDevice; let instance = Instance::new(None, &InstanceExtensions::none(), None).unwrap(); let first_physical_device = PhysicalDevice::from_index(&instance, 0).unwrap();
fn instance(&self) -> &'a Arc<Instance>
Returns the instance corresponding to this physical device.
Example
use vulkano::instance::PhysicalDevice; fn do_something(physical_device: PhysicalDevice) { let _loaded_extensions = physical_device.instance().loaded_extensions(); // ... }
fn index(&self) -> usize
Returns the index of the physical device in the physical devices list.
This index never changes and can be used later to retrieve a PhysicalDevice
from an
instance and an index.
fn name(&self) -> String
Returns the human-readable name of the device.
fn ty(&self) -> PhysicalDeviceType
Returns the type of the device.
Example
use vulkano::instance::PhysicalDevice; for physical_device in PhysicalDevice::enumerate(&instance) { println!("Available device: {} (type: {:?})", physical_device.name(), physical_device.ty()); }
fn api_version(&self) -> Version
Returns the version of Vulkan supported by this device.
fn supported_features(&self) -> &'a Features
Returns the Vulkan features that are supported by this physical device.
fn queue_families(&self) -> QueueFamiliesIter<'a>
Builds an iterator that enumerates all the queue families on this physical device.
fn queue_family_by_id(&self, id: u32) -> Option<QueueFamily<'a>>
Returns the queue family with the given index, or None
if out of range.
fn memory_types(&self) -> MemoryTypesIter<'a>
Builds an iterator that enumerates all the memory types on this physical device.
fn memory_type_by_id(&self, id: u32) -> Option<MemoryType<'a>>
Returns the memory type with the given index, or None
if out of range.
fn memory_heaps(&self) -> MemoryHeapsIter<'a>
Builds an iterator that enumerates all the memory heaps on this physical device.
fn memory_heap_by_id(&self, id: u32) -> Option<MemoryHeap<'a>>
Returns the memory heap with the given index, or None
if out of range.
fn limits(&self) -> Limits<'a>
Gives access to the limits of the physical device.
This function should be zero-cost in release mode. It only exists to not pollute the
namespace of PhysicalDevice
with all the limits-related getters.
fn driver_version(&self) -> u32
Returns an opaque number representing the version of the driver of this device.
The meaning of this number is implementation-specific. It can be used in bug reports, for example.
fn pci_device_id(&self) -> u32
Returns the PCI ID of the device.
fn pci_vendor_id(&self) -> u32
Returns the PCI ID of the vendor.
fn uuid(&self) -> &[u8; 16]
Returns a unique identifier for the device.
Can be stored in a configuration file, so that you can retrieve the device again the next time the program is run.
Trait Implementations
impl<'a> Debug for PhysicalDevice<'a>
[src]
impl<'a> Copy for PhysicalDevice<'a>
[src]
impl<'a> Clone for PhysicalDevice<'a>
[src]
fn clone(&self) -> PhysicalDevice<'a>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<'a> VulkanObject for PhysicalDevice<'a>
[src]
type Object = PhysicalDevice
The type of the object.
fn internal_object(&self) -> PhysicalDevice
Returns a reference to the object.