Skip to main content

DeviceFeature

Enum DeviceFeature 

Source
pub enum DeviceFeature {
Show 30 variants DoublePrecision, HalfPrecision, UnifiedMemory, AtomicOperations, SubGroups, Printf, Profiling, PeerToPeer, ConcurrentExecution, AsyncMemory, ImageSupport, FastMath, TimestampQuery, TimestampQueryInsideEncoders, PipelineStatistics, MappableBuffers, BufferArrays, StorageArrays, UnsizedBindingArray, IndirectFirstInstance, ShaderF16, ShaderI16, ShaderPrimitiveIndex, ShaderEarlyDepthTest, MultiDrawIndirect, MultiDrawIndirectCount, Multisampling, ClearTexture, SpirvShaderPassthrough, Custom(String),
}
Expand description

Device features and capabilities

Variants§

§

DoublePrecision

Supports double precision floating point

§

HalfPrecision

Supports half precision floating point

§

UnifiedMemory

Supports unified memory between host and device

§

AtomicOperations

Supports atomic operations

§

SubGroups

Supports sub-groups/warps

§

Printf

Supports printf in kernels

§

Profiling

Supports profiling and debugging

§

PeerToPeer

Supports peer-to-peer memory access

§

ConcurrentExecution

Supports concurrent kernel execution

§

AsyncMemory

Supports asynchronous memory operations

§

ImageSupport

Supports texture/image operations

§

FastMath

Supports fast math optimizations

§

TimestampQuery

Supports timestamp queries for performance measurement

§

TimestampQueryInsideEncoders

Supports timestamp queries inside encoders

§

PipelineStatistics

Supports pipeline statistics queries

§

MappableBuffers

Supports mappable primary buffers

§

BufferArrays

Supports buffer binding arrays

§

StorageArrays

Supports storage resource binding arrays

§

UnsizedBindingArray

Supports unsized binding arrays

§

IndirectFirstInstance

Supports indirect first instance parameter

§

ShaderF16

Supports 16-bit floating point in shaders

§

ShaderI16

Supports 16-bit integers in shaders

§

ShaderPrimitiveIndex

Supports shader primitive index

§

ShaderEarlyDepthTest

Supports early depth test in shaders

§

MultiDrawIndirect

Supports multi-draw indirect

§

MultiDrawIndirectCount

Supports multi-draw indirect with count

§

Multisampling

Supports multisampled shading

§

ClearTexture

Supports texture clear operations

§

SpirvShaderPassthrough

Supports SPIR-V shader passthrough

§

Custom(String)

Custom vendor-specific feature

Trait Implementations§

Source§

impl Clone for DeviceFeature

Source§

fn clone(&self) -> DeviceFeature

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DeviceFeature

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for DeviceFeature

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for DeviceFeature

Source§

fn eq(&self, other: &DeviceFeature) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for DeviceFeature

Source§

impl StructuralPartialEq for DeviceFeature

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V