[][src]Struct vulkano::device::Device

pub struct Device { /* fields omitted */ }

Represents a Vulkan context.

Methods

impl Device[src]

pub fn new<'a, I, Ext>(
    phys: PhysicalDevice,
    requested_features: &Features,
    extensions: Ext,
    queue_families: I
) -> Result<(Arc<Device>, QueuesIter), DeviceCreationError> where
    I: IntoIterator<Item = (QueueFamily<'a>, f32)>,
    Ext: Into<RawDeviceExtensions>, 
[src]

Builds a new Vulkan device for the given physical device.

You must pass two things when creating a logical device:

  • A list of optional Vulkan features that must be enabled on the device. Note that if a feature is not enabled at device creation, you can't use it later even it it's supported by the physical device.

  • An iterator to a list of queues to create. Each element of the iterator must indicate the family whose queue belongs to and a priority between 0.0 and 1.0 to assign to it. A queue with a higher value indicates that the commands will execute faster than on a queue with a lower value. Note however that no guarantee can be made on the way the priority value is handled by the implementation.

Panic

  • Panics if one of the queue families doesn't belong to the given device.

pub unsafe fn wait(&self) -> Result<(), OomError>[src]

Waits until all work on this device has finished. You should never need to call this function, but it can be useful for debugging or benchmarking purposes.

Note: This is the Vulkan equivalent of OpenGL's glFinish.

Safety

This function is not thread-safe. You must not submit anything to any of the queue of the device (either explicitly or implicitly, for example with a future's destructor) while this function is waiting.

pub fn instance(&self) -> &Arc<Instance>[src]

Returns the instance used to create this device.

pub fn physical_device(&self) -> PhysicalDevice[src]

Returns the physical device that was used to create this device.

pub fn active_queue_families<'a>(
    &'a self
) -> Box<dyn ExactSizeIterator<Item = QueueFamily<'a>> + 'a>
[src]

Returns an iterator to the list of queues families that this device uses.

Note: Will return -> impl ExactSizeIterator<Item = QueueFamily> in the future.

pub fn enabled_features(&self) -> &Features[src]

Returns the features that are enabled in the device.

pub fn loaded_extensions(&self) -> &DeviceExtensions[src]

Returns the list of extensions that have been loaded.

pub fn standard_pool(me: &Arc<Self>) -> Arc<StdMemoryPool>[src]

Returns the standard memory pool used by default if you don't provide any other pool.

pub fn standard_descriptor_pool(me: &Arc<Self>) -> Arc<StdDescriptorPool>[src]

Returns the standard descriptor pool used by default if you don't provide any other pool.

pub fn standard_command_pool(
    me: &Arc<Self>,
    queue: QueueFamily
) -> Arc<StandardCommandPool>
[src]

Returns the standard command buffer pool used by default if you don't provide any other pool.

Panic

  • Panics if the device and the queue family don't belong to the same physical device.

pub fn set_object_name<T: VulkanObject + DeviceOwned>(
    &self,
    object: &T,
    name: &CStr
) -> Result<(), OomError>
[src]

Assigns a human-readable name to object for debugging purposes.

Panics

  • If the VK_EXT_debug_marker device extension is not loaded.
  • If object is not owned by this device.

pub unsafe fn set_object_name_raw(
    &self,
    ty: DebugReportObjectTypeEXT,
    object: u64,
    name: &CStr
) -> Result<(), OomError>
[src]

Assigns a human-readable name to object for debugging purposes.

Panics

  • If the VK_EXT_debug_marker device extension is not loaded.

Safety

object must be a Vulkan handle owned by this device, and its type must be accurately described by ty.

Trait Implementations

impl VulkanObject for Device[src]

type Object = Device

The type of the object.

impl Send for Device[src]

impl Drop for Device[src]

impl Sync for Device[src]

impl Debug for Device[src]

Auto Trait Implementations

impl Unpin for Device

impl UnwindSafe for Device

impl RefUnwindSafe for Device

Blanket Implementations

impl<T> Content for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]