[−][src]Struct vulkano::device::Features
Represents all the features that are available on a physical device or enabled on a logical device.
Note that the robust_buffer_access
is guaranteed to be supported by all Vulkan
implementations.
Example
use vulkano::device::Features; let minimal_features = Features { geometry_shader: true, .. Features::none() }; let optimal_features = vulkano::device::Features { geometry_shader: true, tessellation_shader: true, .. Features::none() }; if !physical_device.supported_features().superset_of(&minimal_features) { panic!("The physical device is not good enough for this application."); } assert!(optimal_features.superset_of(&minimal_features)); let features_to_request = optimal_features.intersection(physical_device.supported_features());
Fields
robust_buffer_access: bool
full_draw_index_uint32: bool
image_cube_array: bool
independent_blend: bool
geometry_shader: bool
tessellation_shader: bool
sample_rate_shading: bool
dual_src_blend: bool
logic_op: bool
multi_draw_indirect: bool
draw_indirect_first_instance: bool
depth_clamp: bool
depth_bias_clamp: bool
fill_mode_non_solid: bool
depth_bounds: bool
wide_lines: bool
large_points: bool
alpha_to_one: bool
multi_viewport: bool
sampler_anisotropy: bool
texture_compression_etc2: bool
texture_compression_astc_ldr: bool
texture_compression_bc: bool
occlusion_query_precise: bool
pipeline_statistics_query: bool
vertex_pipeline_stores_and_atomics: bool
fragment_stores_and_atomics: bool
shader_tessellation_and_geometry_point_size: bool
shader_image_gather_extended: bool
shader_storage_image_extended_formats: bool
shader_storage_image_multisample: bool
shader_storage_image_read_without_format: bool
shader_storage_image_write_without_format: bool
shader_uniform_buffer_array_dynamic_indexing: bool
shader_sampled_image_array_dynamic_indexing: bool
shader_storage_buffer_array_dynamic_indexing: bool
shader_storage_image_array_dynamic_indexing: bool
shader_clip_distance: bool
shader_cull_distance: bool
shader_f3264: bool
shader_int64: bool
shader_int16: bool
shader_resource_residency: bool
shader_resource_min_lod: bool
sparse_binding: bool
sparse_residency_buffer: bool
sparse_residency_image2d: bool
sparse_residency_image3d: bool
sparse_residency2_samples: bool
sparse_residency4_samples: bool
sparse_residency8_samples: bool
sparse_residency16_samples: bool
sparse_residency_aliased: bool
variable_multisample_rate: bool
inherited_queries: bool
Methods
impl Features
[src]
pub fn none() -> Features
[src]
Builds a Features
object with all values to false.
pub fn all() -> Features
[src]
Builds a Features
object with all values to true.
Note: This function is used for testing purposes, and is probably useless in a real code.
pub fn superset_of(&self, other: &Features) -> bool
[src]
Returns true if self
is a superset of the parameter.
That is, for each feature of the parameter that is true, the corresponding value in self is true as well.
pub fn intersection(&self, other: &Features) -> Features
[src]
Builds a Features
that is the intersection of self
and another Features
object.
The result's field will be true if it is also true in both self
and other
.
pub fn difference(&self, other: &Features) -> Features
[src]
Builds a Features
that is the difference of another Features
object from self
.
The result's field will be true if it is true in self
but not other
.
Trait Implementations
impl Eq for Features
[src]
impl Clone for Features
[src]
impl PartialEq<Features> for Features
[src]
impl Hash for Features
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Debug for Features
[src]
Auto Trait Implementations
impl Send for Features
impl Unpin for Features
impl Sync for Features
impl UnwindSafe for Features
impl RefUnwindSafe for Features
Blanket Implementations
impl<T> Content for T
[src]
fn ref_from_ptr(*mut c_void, usize) -> Option<*mut T>
[src]
fn is_size_suitable(usize) -> bool
[src]
fn indiv_size() -> usize
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,