pub struct Adapter<B: Backend> {
pub info: AdapterInfo,
pub physical_device: B::PhysicalDevice,
pub queue_families: Vec<B::QueueFamily>,
}
Expand description
The list of Adapter
instances is obtained by calling Instance::enumerate_adapters()
.
Given an Adapter
a Gpu
can be constructed by calling PhysicalDevice::open()
on its
physical_device
field. However, if only a single queue family is needed, then the
Adapter::open_with
convenience method can be used instead.
Fields
info: AdapterInfo
General information about this adapter.
physical_device: B::PhysicalDevice
Actual physical device.
queue_families: Vec<B::QueueFamily>
Queue families supported by this adapter.
Implementations
sourceimpl<B: Backend> Adapter<B>
impl<B: Backend> Adapter<B>
sourcepub fn open_with<F, C>(
&self,
count: usize,
selector: F
) -> Result<(B::Device, QueueGroup<B, C>), DeviceCreationError>where
F: Fn(&B::QueueFamily) -> bool,
C: Capability,
pub fn open_with<F, C>(
&self,
count: usize,
selector: F
) -> Result<(B::Device, QueueGroup<B, C>), DeviceCreationError>where
F: Fn(&B::QueueFamily) -> bool,
C: Capability,
Open the physical device with count
queues from some active queue family. The family is
the first that both provides the capability C
, supports at least count
queues, and for
which selector
returns true.
Examples
use hal::General;
let (device, queues) = adapter.open_with::<_, General>(1, |_| true).unwrap();
Return
Returns the same errors as open
and InitializationFailed
if no suitable
queue family could be found.
Auto Trait Implementations
impl<B> RefUnwindSafe for Adapter<B>where
<B as Backend>::PhysicalDevice: RefUnwindSafe,
<B as Backend>::QueueFamily: RefUnwindSafe,
impl<B> Send for Adapter<B>
impl<B> Sync for Adapter<B>
impl<B> Unpin for Adapter<B>where
<B as Backend>::PhysicalDevice: Unpin,
<B as Backend>::QueueFamily: Unpin,
impl<B> UnwindSafe for Adapter<B>where
<B as Backend>::PhysicalDevice: UnwindSafe,
<B as Backend>::QueueFamily: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more