Struct Features

Source
pub struct Features { /* private fields */ }
Expand description

Features that the device supports. These only include features of the core interface and not API extensions.

Implementations§

Source§

impl Features

Source

pub const CORE_MASK: Features

Bit mask of Vulkan Core features.

Source

pub const PORTABILITY_MASK: Features

Bit mask of Vulkan Portability features.

Source

pub const ROBUST_BUFFER_ACCESS: Features

Support for robust buffer access. Buffer access by SPIR-V shaders is checked against the buffer/image boundaries.

Source

pub const FULL_DRAW_INDEX_U32: Features

Support the full 32-bit range of indexed for draw calls. If not supported, the maximum index value is determined by Limits::max_draw_index_value.

Source

pub const IMAGE_CUBE_ARRAY: Features

Support cube array image views.

Source

pub const INDEPENDENT_BLENDING: Features

Support different color blending settings per attachments on graphics pipeline creation.

Source

pub const GEOMETRY_SHADER: Features

Support geometry shader.

Source

pub const TESSELLATION_SHADER: Features

Support tessellation shaders.

Source

pub const SAMPLE_RATE_SHADING: Features

Support per-sample shading and multisample interpolation.

Source

pub const DUAL_SRC_BLENDING: Features

Support dual source blending.

Source

pub const LOGIC_OP: Features

Support logic operations.

Source

pub const MULTI_DRAW_INDIRECT: Features

Support multiple draws per indirect call.

Source

pub const DRAW_INDIRECT_FIRST_INSTANCE: Features

Support indirect drawing with first instance value. If not supported the first instance value must be 0.

Source

pub const DEPTH_CLAMP: Features

Support depth clamping.

Source

pub const DEPTH_BIAS_CLAMP: Features

Support depth bias clamping.

Source

pub const NON_FILL_POLYGON_MODE: Features

Support non-fill polygon modes.

Source

pub const DEPTH_BOUNDS: Features

Support depth bounds test.

Source

pub const LINE_WIDTH: Features

Support lines with width other than 1.0.

Source

pub const POINT_SIZE: Features

Support points with size greater than 1.0.

Source

pub const ALPHA_TO_ONE: Features

Support replacing alpha values with 1.0.

Source

pub const MULTI_VIEWPORTS: Features

Support multiple viewports and scissors.

Source

pub const SAMPLER_ANISOTROPY: Features

Support anisotropic filtering.

Source

pub const FORMAT_ETC2: Features

Support ETC2 texture compression formats.

Source

pub const FORMAT_ASTC_LDR: Features

Support ASTC (LDR) texture compression formats.

Source

pub const FORMAT_BC: Features

Support BC texture compression formats.

Source

pub const PRECISE_OCCLUSION_QUERY: Features

Support precise occlusion queries, returning the actual number of samples. If not supported, queries return a non-zero value when at least one sample passes.

Source

pub const PIPELINE_STATISTICS_QUERY: Features

Support query of pipeline statistics.

Source

pub const VERTEX_STORES_AND_ATOMICS: Features

Support unordered access stores and atomic ops in the vertex, geometry and tessellation shader stage. If not supported, the shader resources must be annotated as read-only.

Source

pub const FRAGMENT_STORES_AND_ATOMICS: Features

Support unordered access stores and atomic ops in the fragment shader stage If not supported, the shader resources must be annotated as read-only.

Source

pub const SHADER_TESSELLATION_AND_GEOMETRY_POINT_SIZE: Features

Source

pub const SHADER_IMAGE_GATHER_EXTENDED: Features

Source

pub const SHADER_STORAGE_IMAGE_EXTENDED_FORMATS: Features

Source

pub const SHADER_STORAGE_IMAGE_MULTISAMPLE: Features

Source

pub const SHADER_STORAGE_IMAGE_READ_WITHOUT_FORMAT: Features

Source

pub const SHADER_STORAGE_IMAGE_WRITE_WITHOUT_FORMAT: Features

Source

pub const SHADER_UNIFORM_BUFFER_ARRAY_DYNAMIC_INDEXING: Features

Source

pub const SHADER_SAMPLED_IMAGE_ARRAY_DYNAMIC_INDEXING: Features

Source

pub const SHADER_STORAGE_BUFFER_ARRAY_DYNAMIC_INDEXING: Features

Source

pub const SHADER_STORAGE_IMAGE_ARRAY_DYNAMIC_INDEXING: Features

Source

pub const SHADER_CLIP_DISTANCE: Features

Source

pub const SHADER_CULL_DISTANCE: Features

Source

pub const SHADER_FLOAT64: Features

Source

pub const SHADER_INT64: Features

Source

pub const SHADER_INT16: Features

Source

pub const SHADER_RESOURCE_RESIDENCY: Features

Source

pub const SHADER_RESOURCE_MIN_LOD: Features

Source

pub const SPARSE_BINDING: Features

Source

pub const SPARSE_RESIDENCY_BUFFER: Features

Source

pub const SPARSE_RESIDENCY_IMAGE_2D: Features

Source

pub const SPARSE_RESIDENCY_IMAGE_3D: Features

Source

pub const SPARSE_RESIDENCY_2_SAMPLES: Features

Source

pub const SPARSE_RESIDENCY_4_SAMPLES: Features

Source

pub const SPARSE_RESIDENCY_8_SAMPLES: Features

Source

pub const SPARSE_RESIDENCY_16_SAMPLES: Features

Source

pub const SPARSE_RESIDENCY_ALIASED: Features

Source

pub const VARIABLE_MULTISAMPLE_RATE: Features

Source

pub const INHERITED_QUERIES: Features

Source

pub const TRIANGLE_FAN: Features

Support triangle fan primitive topology.

Source

pub const SEPARATE_STENCIL_REF_VALUES: Features

Support separate stencil reference values for front and back sides.

Source

pub const INSTANCE_RATE: Features

Support manually specified vertex attribute rates (divisors).

Source

pub const SAMPLER_MIP_LOD_BIAS: Features

Support non-zero mipmap bias on samplers.

Source

pub const fn empty() -> Features

Returns an empty set of flags.

Source

pub const fn all() -> Features

Returns the set containing all flags.

Source

pub const fn bits(&self) -> u64

Returns the raw value of the flags currently stored.

Source

pub const fn from_bits(bits: u64) -> Option<Features>

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

Source

pub const fn from_bits_truncate(bits: u64) -> Features

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

Source

pub const unsafe fn from_bits_unchecked(bits: u64) -> Features

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

§Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

Source

pub const fn is_empty(&self) -> bool

Returns true if no flags are currently stored.

Source

pub const fn is_all(&self) -> bool

Returns true if all flags are currently set.

Source

pub const fn intersects(&self, other: Features) -> bool

Returns true if there are flags common to both self and other.

Source

pub const fn contains(&self, other: Features) -> bool

Returns true if all of the flags in other are contained within self.

Source

pub fn insert(&mut self, other: Features)

Inserts the specified flags in-place.

Source

pub fn remove(&mut self, other: Features)

Removes the specified flags in-place.

Source

pub fn toggle(&mut self, other: Features)

Toggles the specified flags in-place.

Source

pub fn set(&mut self, other: Features, value: bool)

Inserts or removes the specified flags depending on the passed value.

Source

pub const fn intersection(self, other: Features) -> Features

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

Source

pub const fn union(self, other: Features) -> Features

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

Source

pub const fn difference(self, other: Features) -> Features

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

Source

pub const fn symmetric_difference(self, other: Features) -> Features

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

Source

pub const fn complement(self) -> Features

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

Trait Implementations§

Source§

impl Binary for Features

Source§

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

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

impl BitAnd for Features

Source§

fn bitand(self, other: Features) -> Features

Returns the intersection between the two sets of flags.

Source§

type Output = Features

The resulting type after applying the & operator.
Source§

impl BitAndAssign for Features

Source§

fn bitand_assign(&mut self, other: Features)

Disables all flags disabled in the set.

Source§

impl BitOr for Features

Source§

fn bitor(self, other: Features) -> Features

Returns the union of the two sets of flags.

Source§

type Output = Features

The resulting type after applying the | operator.
Source§

impl BitOrAssign for Features

Source§

fn bitor_assign(&mut self, other: Features)

Adds the set of flags.

Source§

impl BitXor for Features

Source§

fn bitxor(self, other: Features) -> Features

Returns the left flags, but with all the right flags toggled.

Source§

type Output = Features

The resulting type after applying the ^ operator.
Source§

impl BitXorAssign for Features

Source§

fn bitxor_assign(&mut self, other: Features)

Toggles the set of flags.

Source§

impl Clone for Features

Source§

fn clone(&self) -> Features

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 Features

Source§

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

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

impl Extend<Features> for Features

Source§

fn extend<T>(&mut self, iterator: T)
where T: IntoIterator<Item = Features>,

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl FromIterator<Features> for Features

Source§

fn from_iter<T>(iterator: T) -> Features
where T: IntoIterator<Item = Features>,

Creates a value from an iterator. Read more
Source§

impl Hash for Features

Source§

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

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 LowerHex for Features

Source§

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

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

impl Not for Features

Source§

fn not(self) -> Features

Returns the complement of this set of flags.

Source§

type Output = Features

The resulting type after applying the ! operator.
Source§

impl Octal for Features

Source§

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

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

impl Ord for Features

Source§

fn cmp(&self, other: &Features) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Features

Source§

fn eq(&self, other: &Features) -> 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 PartialOrd for Features

Source§

fn partial_cmp(&self, other: &Features) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Sub for Features

Source§

fn sub(self, other: Features) -> Features

Returns the set difference of the two sets of flags.

Source§

type Output = Features

The resulting type after applying the - operator.
Source§

impl SubAssign for Features

Source§

fn sub_assign(&mut self, other: Features)

Disables all flags enabled in the set.

Source§

impl UpperHex for Features

Source§

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

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

impl Copy for Features

Source§

impl Eq for Features

Source§

impl StructuralPartialEq for Features

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