Struct vulkano::instance::Features [] [src]

pub struct Features {
    pub robust_buffer_access: bool,
    pub full_draw_index_uint32: bool,
    pub image_cube_array: bool,
    pub independent_blend: bool,
    pub geometry_shader: bool,
    pub tessellation_shader: bool,
    pub sample_rate_shading: bool,
    pub dual_src_blend: bool,
    pub logic_op: bool,
    pub multi_draw_indirect: bool,
    pub draw_indirect_first_instance: bool,
    pub depth_clamp: bool,
    pub depth_bias_clamp: bool,
    pub fill_mode_non_solid: bool,
    pub depth_bounds: bool,
    pub wide_lines: bool,
    pub large_points: bool,
    pub alpha_to_one: bool,
    pub multi_viewport: bool,
    pub sampler_anisotropy: bool,
    pub texture_compression_etc2: bool,
    pub texture_compression_astc_ldr: bool,
    pub texture_compression_bc: bool,
    pub occlusion_query_precise: bool,
    pub pipeline_statistics_query: bool,
    pub vertex_pipeline_stores_and_atomics: bool,
    pub fragment_stores_and_atomics: bool,
    pub shader_tessellation_and_geometry_point_size: bool,
    pub shader_image_gather_extended: bool,
    pub shader_storage_image_extended_formats: bool,
    pub shader_storage_image_multisample: bool,
    pub shader_storage_image_read_without_format: bool,
    pub shader_storage_image_write_without_format: bool,
    pub shader_uniform_buffer_array_dynamic_indexing: bool,
    pub shader_sampled_image_array_dynamic_indexing: bool,
    pub shader_storage_buffer_array_dynamic_indexing: bool,
    pub shader_storage_image_array_dynamic_indexing: bool,
    pub shader_clip_distance: bool,
    pub shader_cull_distance: bool,
    pub shader_f3264: bool,
    pub shader_int64: bool,
    pub shader_int16: bool,
    pub shader_resource_residency: bool,
    pub shader_resource_min_lod: bool,
    pub sparse_binding: bool,
    pub sparse_residency_buffer: bool,
    pub sparse_residency_image2d: bool,
    pub sparse_residency_image3d: bool,
    pub sparse_residency2_samples: bool,
    pub sparse_residency4_samples: bool,
    pub sparse_residency8_samples: bool,
    pub sparse_residency16_samples: bool,
    pub sparse_residency_aliased: bool,
    pub variable_multisample_rate: bool,
    pub inherited_queries: bool,
}

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

let minimal_features = vulkano::instance::Features {
    geometry_shader: true,
    .. vulkano::instance::Features::none()
};

let optimal_features = vulkano::instance::Features {
    geometry_shader: true,
    tessellation_shader: true,
    .. vulkano::instance::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]

fn none() -> Features

Builds a Features object with all values to false.

fn superset_of(&self, other: &Features) -> bool

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.

fn intersection(&self, other: &Features) -> Features

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.

Trait Implementations

impl Hash for Features
[src]

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

Feeds this value into the state given, updating the hasher as necessary.

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

Feeds a slice of this type into the state provided.

impl Eq for Features
[src]

impl PartialEq for Features
[src]

fn eq(&self, __arg_0: &Features) -> bool

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, __arg_0: &Features) -> bool

This method tests for !=.

impl Clone for Features
[src]

fn clone(&self) -> Features

Returns a copy of the value. Read more

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

Performs copy-assignment from source. Read more

impl Debug for Features
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.