pub struct Types {
pub address: BTreeSet<AddressType>,
pub storage: BTreeMap<StorageType, EnumSet<TypeUsage>>,
pub semantic: BTreeSet<SemanticType>,
pub atomic: BTreeMap<Type, EnumSet<AtomicUsage>>,
}Expand description
Type support for a device
Fields§
§address: BTreeSet<AddressType>Valid address types
storage: BTreeMap<StorageType, EnumSet<TypeUsage>>Types supported by this runtime, and which usages they support.
semantic: BTreeSet<SemanticType>Semantic constructs supported by this runtime.
atomic: BTreeMap<Type, EnumSet<AtomicUsage>>Supported vector types for atomic ops, only specific vectorizations for specific types are
supported here. Not all vector types are supported as scalars, i.e. Vulkan on Nvidia only
supports vectorized f16, not scalar. Only use the exact vectorizations registered here.
These may not be supported everywhere - in practice, f32 vectors are only supported in global
memory.
Trait Implementations§
impl Eq for Types
impl StructuralPartialEq for Types
Auto Trait Implementations§
impl Freeze for Types
impl RefUnwindSafe for Types
impl Send for Types
impl Sync for Types
impl Unpin for Types
impl UnsafeUnpin for Types
impl UnwindSafe for Types
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.