#[non_exhaustive]
pub struct DeviceInfo { pub debug: bool, pub select_physical_device: Box<SelectPhysicalDeviceFn>, }
Expand description

Information used to create a Device instance.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§debug: bool

Enables Vulkan validation layers.

This requires a Vulkan SDK installation and will cause validation errors to introduce panics as they happen.

NOTE: Consider turning OFF debug if you discover an unknown issue. Often the validation layers will throw an error before other layers can provide additional context such as the API dump info or other messages. You might find the “actual” issue is detailed in those subsequent details.

§Platform-specific

macOS: Has no effect.

§select_physical_device: Box<SelectPhysicalDeviceFn>

Callback function used to select a PhysicalDevice from the available devices. The callback must return the index of the selected device.

Implementations§

source§

impl DeviceInfo

source

pub fn integrated_gpu(physical_devices: &[PhysicalDevice]) -> usize

A builtin DeviceInfo::select_physical_device function which prioritizes selection of lower-power integrated GPU devices.

source

pub fn discrete_gpu(physical_devices: &[PhysicalDevice]) -> usize

A builtin DeviceInfo::select_physical_device function which prioritizes selection of higher-performance discrete GPU devices.

source

pub fn to_builder(self) -> DeviceInfoBuilder

Converts a DeviceInfo into a DeviceInfoBuilder.

Trait Implementations§

source§

impl Default for DeviceInfo

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<DeviceInfoBuilder> for DeviceInfo

source§

fn from(info: DeviceInfoBuilder) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.