Struct vulkano::device::Features[][src]

pub struct Features {
Show 268 fields pub acceleration_structure: bool, pub acceleration_structure_capture_replay: bool, pub acceleration_structure_host_commands: bool, pub acceleration_structure_indirect_build: bool, pub advanced_blend_coherent_operations: bool, pub alpha_to_one: bool, pub attachment_fragment_shading_rate: bool, pub bresenham_lines: bool, pub buffer_device_address: bool, pub buffer_device_address_capture_replay: bool, pub buffer_device_address_multi_device: bool, pub color_write_enable: bool, pub compute_derivative_group_linear: bool, pub compute_derivative_group_quads: bool, pub compute_full_subgroups: bool, pub conditional_rendering: bool, pub constant_alpha_color_blend_factors: bool, pub cooperative_matrix: bool, pub cooperative_matrix_robust_buffer_access: bool, pub corner_sampled_image: bool, pub coverage_reduction_mode: bool, pub custom_border_color_without_format: bool, pub custom_border_colors: bool, pub decode_mode_shared_exponent: bool, pub dedicated_allocation_image_aliasing: bool, pub depth_bias_clamp: bool, pub depth_bounds: bool, pub depth_clamp: bool, pub depth_clip_enable: bool, pub descriptor_binding_acceleration_structure_update_after_bind: bool, pub descriptor_binding_inline_uniform_block_update_after_bind: bool, pub descriptor_binding_partially_bound: bool, pub descriptor_binding_sampled_image_update_after_bind: bool, pub descriptor_binding_storage_buffer_update_after_bind: bool, pub descriptor_binding_storage_image_update_after_bind: bool, pub descriptor_binding_storage_texel_buffer_update_after_bind: bool, pub descriptor_binding_uniform_buffer_update_after_bind: bool, pub descriptor_binding_uniform_texel_buffer_update_after_bind: bool, pub descriptor_binding_update_unused_while_pending: bool, pub descriptor_binding_variable_descriptor_count: bool, pub descriptor_indexing: bool, pub device_coherent_memory: bool, pub device_generated_commands: bool, pub device_memory_report: bool, pub diagnostics_config: bool, pub draw_indirect_count: bool, pub draw_indirect_first_instance: bool, pub dual_src_blend: bool, pub events: bool, pub exclusive_scissor: bool, pub extended_dynamic_state: bool, pub extended_dynamic_state2: bool, pub extended_dynamic_state2_logic_op: bool, pub extended_dynamic_state2_patch_control_points: bool, pub external_memory_rdma: bool, pub fill_mode_non_solid: bool, pub format_a4b4g4r4: bool, pub format_a4r4g4b4: bool, pub fragment_density_map: bool, pub fragment_density_map_deferred: bool, pub fragment_density_map_dynamic: bool, pub fragment_density_map_non_subsampled_images: bool, pub fragment_shader_barycentric: bool, pub fragment_shader_pixel_interlock: bool, pub fragment_shader_sample_interlock: bool, pub fragment_shader_shading_rate_interlock: bool, pub fragment_shading_rate_enums: bool, pub fragment_stores_and_atomics: bool, pub full_draw_index_uint32: bool, pub geometry_shader: bool, pub geometry_streams: bool, pub global_priority_query: bool, pub host_query_reset: bool, pub image_cube_array: bool, pub image_footprint: bool, pub image_view2_d_on3_d_image: bool, pub image_view_format_reinterpretation: bool, pub image_view_format_swizzle: bool, pub imageless_framebuffer: bool, pub independent_blend: bool, pub index_type_uint8: bool, pub inherited_conditional_rendering: bool, pub inherited_queries: bool, pub inherited_viewport_scissor2_d: bool, pub inline_uniform_block: bool, pub invocation_mask: bool, pub large_points: bool, pub logic_op: bool, pub memory_priority: bool, pub mesh_shader: bool, pub multi_draw: bool, pub multi_draw_indirect: bool, pub multi_viewport: bool, pub multisample_array_image: bool, pub multiview: bool, pub multiview_geometry_shader: bool, pub multiview_tessellation_shader: bool, pub mutable_comparison_samplers: bool, pub mutable_descriptor_type: bool, pub no_invocation_fragment_shading_rates: bool, pub null_descriptor: bool, pub occlusion_query_precise: bool, pub performance_counter_multiple_query_pools: bool, pub performance_counter_query_pools: bool, pub pipeline_creation_cache_control: bool, pub pipeline_executable_info: bool, pub pipeline_fragment_shading_rate: bool, pub pipeline_statistics_query: bool, pub point_polygons: bool, pub present_id: bool, pub present_wait: bool, pub primitive_fragment_shading_rate: bool, pub private_data: bool, pub protected_memory: bool, pub provoking_vertex_last: bool, pub ray_query: bool, pub ray_tracing_motion_blur: bool, pub ray_tracing_motion_blur_pipeline_trace_rays_indirect: bool, pub ray_tracing_pipeline: bool, pub ray_tracing_pipeline_shader_group_handle_capture_replay: bool, pub ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: bool, pub ray_tracing_pipeline_trace_rays_indirect: bool, pub ray_traversal_primitive_culling: bool, pub rectangular_lines: bool, pub representative_fragment_test: bool, pub robust_buffer_access: bool, pub robust_buffer_access2: bool, pub robust_image_access: bool, pub robust_image_access2: bool, pub runtime_descriptor_array: bool, pub sample_rate_shading: bool, pub sampler_anisotropy: bool, pub sampler_filter_minmax: bool, pub sampler_mip_lod_bias: bool, pub sampler_mirror_clamp_to_edge: bool, pub sampler_ycbcr_conversion: bool, pub scalar_block_layout: bool, pub separate_depth_stencil_layouts: bool, pub separate_stencil_mask_ref: bool, pub shader_buffer_float16_atomic_add: bool, pub shader_buffer_float16_atomic_min_max: bool, pub shader_buffer_float16_atomics: bool, pub shader_buffer_float32_atomic_add: bool, pub shader_buffer_float32_atomic_min_max: bool, pub shader_buffer_float32_atomics: bool, pub shader_buffer_float64_atomic_add: bool, pub shader_buffer_float64_atomic_min_max: bool, pub shader_buffer_float64_atomics: bool, pub shader_buffer_int64_atomics: bool, pub shader_clip_distance: bool, pub shader_cull_distance: bool, pub shader_demote_to_helper_invocation: bool, pub shader_device_clock: bool, pub shader_draw_parameters: bool, pub shader_float16: bool, pub shader_float64: bool, pub shader_image_float32_atomic_add: bool, pub shader_image_float32_atomic_min_max: bool, pub shader_image_float32_atomics: bool, pub shader_image_gather_extended: bool, pub shader_image_int64_atomics: bool, pub shader_input_attachment_array_dynamic_indexing: bool, pub shader_input_attachment_array_non_uniform_indexing: bool, pub shader_int16: bool, pub shader_int64: bool, pub shader_int8: bool, pub shader_integer_functions2: bool, pub shader_output_layer: bool, pub shader_output_viewport_index: bool, pub shader_resource_min_lod: bool, pub shader_resource_residency: bool, pub shader_sample_rate_interpolation_functions: bool, pub shader_sampled_image_array_dynamic_indexing: bool, pub shader_sampled_image_array_non_uniform_indexing: bool, pub shader_shared_float16_atomic_add: bool, pub shader_shared_float16_atomic_min_max: bool, pub shader_shared_float16_atomics: bool, pub shader_shared_float32_atomic_add: bool, pub shader_shared_float32_atomic_min_max: bool, pub shader_shared_float32_atomics: bool, pub shader_shared_float64_atomic_add: bool, pub shader_shared_float64_atomic_min_max: bool, pub shader_shared_float64_atomics: bool, pub shader_shared_int64_atomics: bool, pub shader_sm_builtins: bool, pub shader_storage_buffer_array_dynamic_indexing: bool, pub shader_storage_buffer_array_non_uniform_indexing: bool, pub shader_storage_image_array_dynamic_indexing: bool, pub shader_storage_image_array_non_uniform_indexing: 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_storage_texel_buffer_array_dynamic_indexing: bool, pub shader_storage_texel_buffer_array_non_uniform_indexing: bool, pub shader_subgroup_clock: bool, pub shader_subgroup_extended_types: bool, pub shader_subgroup_uniform_control_flow: bool, pub shader_terminate_invocation: bool, pub shader_tessellation_and_geometry_point_size: bool, pub shader_uniform_buffer_array_dynamic_indexing: bool, pub shader_uniform_buffer_array_non_uniform_indexing: bool, pub shader_uniform_texel_buffer_array_dynamic_indexing: bool, pub shader_uniform_texel_buffer_array_non_uniform_indexing: bool, pub shader_zero_initialize_workgroup_memory: bool, pub shading_rate_coarse_sample_order: bool, pub shading_rate_image: bool, pub smooth_lines: bool, pub sparse_binding: bool, pub sparse_image_float32_atomic_add: bool, pub sparse_image_float32_atomic_min_max: bool, pub sparse_image_float32_atomics: bool, pub sparse_image_int64_atomics: bool, pub sparse_residency16_samples: bool, pub sparse_residency2_samples: bool, pub sparse_residency4_samples: bool, pub sparse_residency8_samples: bool, pub sparse_residency_aliased: bool, pub sparse_residency_buffer: bool, pub sparse_residency_image2_d: bool, pub sparse_residency_image3_d: bool, pub stippled_bresenham_lines: bool, pub stippled_rectangular_lines: bool, pub stippled_smooth_lines: bool, pub storage_buffer16_bit_access: bool, pub storage_buffer8_bit_access: bool, pub storage_input_output16: bool, pub storage_push_constant16: bool, pub storage_push_constant8: bool, pub subgroup_broadcast_dynamic_id: bool, pub subgroup_size_control: bool, pub subpass_shading: bool, pub supersample_fragment_shading_rates: bool, pub synchronization2: bool, pub task_shader: bool, pub tessellation_isolines: bool, pub tessellation_point_mode: bool, pub tessellation_shader: bool, pub texel_buffer_alignment: bool, pub texture_compression_astc_hdr: bool, pub texture_compression_astc_ldr: bool, pub texture_compression_bc: bool, pub texture_compression_etc2: bool, pub timeline_semaphore: bool, pub transform_feedback: bool, pub transform_feedback_preserves_provoking_vertex: bool, pub triangle_fans: bool, pub uniform_and_storage_buffer16_bit_access: bool, pub uniform_and_storage_buffer8_bit_access: bool, pub uniform_buffer_standard_layout: bool, pub variable_multisample_rate: bool, pub variable_pointers: bool, pub variable_pointers_storage_buffer: bool, pub vertex_attribute_access_beyond_stride: bool, pub vertex_attribute_instance_rate_divisor: bool, pub vertex_attribute_instance_rate_zero_divisor: bool, pub vertex_input_dynamic_state: bool, pub vertex_pipeline_stores_and_atomics: bool, pub vulkan_memory_model: bool, pub vulkan_memory_model_availability_visibility_chains: bool, pub vulkan_memory_model_device_scope: bool, pub wide_lines: bool, pub workgroup_memory_explicit_layout: bool, pub workgroup_memory_explicit_layout16_bit_access: bool, pub workgroup_memory_explicit_layout8_bit_access: bool, pub workgroup_memory_explicit_layout_scalar_block_layout: bool, pub ycbcr2plane444_formats: bool, pub ycbcr_image_arrays: bool,
}
Expand description

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().is_superset_of(&minimal_features) {
    panic!("The physical device is not good enough for this application.");
}

assert!(optimal_features.is_superset_of(&minimal_features));
let features_to_request = optimal_features.intersection(physical_device.supported_features());

Fields

acceleration_structure: boolacceleration_structure_capture_replay: boolacceleration_structure_host_commands: boolacceleration_structure_indirect_build: booladvanced_blend_coherent_operations: boolalpha_to_one: boolattachment_fragment_shading_rate: boolbresenham_lines: boolbuffer_device_address: boolbuffer_device_address_capture_replay: boolbuffer_device_address_multi_device: boolcolor_write_enable: boolcompute_derivative_group_linear: boolcompute_derivative_group_quads: boolcompute_full_subgroups: boolconditional_rendering: boolconstant_alpha_color_blend_factors: boolcooperative_matrix: boolcooperative_matrix_robust_buffer_access: boolcorner_sampled_image: boolcoverage_reduction_mode: boolcustom_border_color_without_format: boolcustom_border_colors: booldecode_mode_shared_exponent: booldedicated_allocation_image_aliasing: booldepth_bias_clamp: booldepth_bounds: booldepth_clamp: booldepth_clip_enable: booldescriptor_binding_acceleration_structure_update_after_bind: booldescriptor_binding_inline_uniform_block_update_after_bind: booldescriptor_binding_partially_bound: booldescriptor_binding_sampled_image_update_after_bind: booldescriptor_binding_storage_buffer_update_after_bind: booldescriptor_binding_storage_image_update_after_bind: booldescriptor_binding_storage_texel_buffer_update_after_bind: booldescriptor_binding_uniform_buffer_update_after_bind: booldescriptor_binding_uniform_texel_buffer_update_after_bind: booldescriptor_binding_update_unused_while_pending: booldescriptor_binding_variable_descriptor_count: booldescriptor_indexing: bool
device_coherent_memory: booldevice_generated_commands: booldevice_memory_report: booldiagnostics_config: booldraw_indirect_count: bool
draw_indirect_first_instance: booldual_src_blend: boolevents: boolexclusive_scissor: boolextended_dynamic_state: boolextended_dynamic_state2: boolextended_dynamic_state2_logic_op: boolextended_dynamic_state2_patch_control_points: boolexternal_memory_rdma: boolfill_mode_non_solid: boolformat_a4b4g4r4: boolformat_a4r4g4b4: boolfragment_density_map: boolfragment_density_map_deferred: boolfragment_density_map_dynamic: boolfragment_density_map_non_subsampled_images: boolfragment_shader_barycentric: boolfragment_shader_pixel_interlock: boolfragment_shader_sample_interlock: boolfragment_shader_shading_rate_interlock: boolfragment_shading_rate_enums: boolfragment_stores_and_atomics: boolfull_draw_index_uint32: boolgeometry_shader: boolgeometry_streams: boolglobal_priority_query: boolhost_query_reset: boolimage_cube_array: boolimage_footprint: boolimage_view2_d_on3_d_image: boolimage_view_format_reinterpretation: boolimage_view_format_swizzle: boolimageless_framebuffer: boolindependent_blend: boolindex_type_uint8: boolinherited_conditional_rendering: boolinherited_queries: boolinherited_viewport_scissor2_d: boolinline_uniform_block: boolinvocation_mask: boollarge_points: boollogic_op: boolmemory_priority: boolmesh_shader: boolmulti_draw: boolmulti_draw_indirect: boolmulti_viewport: boolmultisample_array_image: boolmultiview: boolmultiview_geometry_shader: boolmultiview_tessellation_shader: boolmutable_comparison_samplers: boolmutable_descriptor_type: boolno_invocation_fragment_shading_rates: boolnull_descriptor: boolocclusion_query_precise: boolperformance_counter_multiple_query_pools: boolperformance_counter_query_pools: boolpipeline_creation_cache_control: boolpipeline_executable_info: boolpipeline_fragment_shading_rate: boolpipeline_statistics_query: boolpoint_polygons: boolpresent_id: boolpresent_wait: boolprimitive_fragment_shading_rate: boolprivate_data: boolprotected_memory: boolprovoking_vertex_last: boolray_query: boolray_tracing_motion_blur: boolray_tracing_motion_blur_pipeline_trace_rays_indirect: boolray_tracing_pipeline: boolray_tracing_pipeline_shader_group_handle_capture_replay: boolray_tracing_pipeline_shader_group_handle_capture_replay_mixed: boolray_tracing_pipeline_trace_rays_indirect: boolray_traversal_primitive_culling: boolrectangular_lines: boolrepresentative_fragment_test: boolrobust_buffer_access: boolrobust_buffer_access2: boolrobust_image_access: boolrobust_image_access2: boolruntime_descriptor_array: boolsample_rate_shading: boolsampler_anisotropy: boolsampler_filter_minmax: bool
sampler_mip_lod_bias: boolsampler_mirror_clamp_to_edge: boolsampler_ycbcr_conversion: boolscalar_block_layout: boolseparate_depth_stencil_layouts: boolseparate_stencil_mask_ref: boolshader_buffer_float16_atomic_add: boolshader_buffer_float16_atomic_min_max: boolshader_buffer_float16_atomics: boolshader_buffer_float32_atomic_add: boolshader_buffer_float32_atomic_min_max: boolshader_buffer_float32_atomics: boolshader_buffer_float64_atomic_add: boolshader_buffer_float64_atomic_min_max: boolshader_buffer_float64_atomics: boolshader_buffer_int64_atomics: boolshader_clip_distance: boolshader_cull_distance: boolshader_demote_to_helper_invocation: boolshader_device_clock: boolshader_draw_parameters: bool
shader_float16: boolshader_float64: boolshader_image_float32_atomic_add: boolshader_image_float32_atomic_min_max: boolshader_image_float32_atomics: boolshader_image_gather_extended: boolshader_image_int64_atomics: boolshader_input_attachment_array_dynamic_indexing: boolshader_input_attachment_array_non_uniform_indexing: boolshader_int16: boolshader_int64: boolshader_int8: boolshader_integer_functions2: boolshader_output_layer: boolshader_output_viewport_index: boolshader_resource_min_lod: boolshader_resource_residency: boolshader_sample_rate_interpolation_functions: boolshader_sampled_image_array_dynamic_indexing: boolshader_sampled_image_array_non_uniform_indexing: boolshader_shared_float16_atomic_add: boolshader_shared_float16_atomic_min_max: boolshader_shared_float16_atomics: boolshader_shared_float32_atomic_add: boolshader_shared_float32_atomic_min_max: boolshader_shared_float32_atomics: boolshader_shared_float64_atomic_add: boolshader_shared_float64_atomic_min_max: boolshader_shared_float64_atomics: boolshader_shared_int64_atomics: boolshader_sm_builtins: boolshader_storage_buffer_array_dynamic_indexing: boolshader_storage_buffer_array_non_uniform_indexing: boolshader_storage_image_array_dynamic_indexing: boolshader_storage_image_array_non_uniform_indexing: boolshader_storage_image_extended_formats: boolshader_storage_image_multisample: boolshader_storage_image_read_without_format: boolshader_storage_image_write_without_format: boolshader_storage_texel_buffer_array_dynamic_indexing: boolshader_storage_texel_buffer_array_non_uniform_indexing: boolshader_subgroup_clock: boolshader_subgroup_extended_types: boolshader_subgroup_uniform_control_flow: boolshader_terminate_invocation: boolshader_tessellation_and_geometry_point_size: boolshader_uniform_buffer_array_dynamic_indexing: boolshader_uniform_buffer_array_non_uniform_indexing: boolshader_uniform_texel_buffer_array_dynamic_indexing: boolshader_uniform_texel_buffer_array_non_uniform_indexing: boolshader_zero_initialize_workgroup_memory: boolshading_rate_coarse_sample_order: boolshading_rate_image: boolsmooth_lines: boolsparse_binding: boolsparse_image_float32_atomic_add: boolsparse_image_float32_atomic_min_max: boolsparse_image_float32_atomics: boolsparse_image_int64_atomics: boolsparse_residency16_samples: boolsparse_residency2_samples: boolsparse_residency4_samples: boolsparse_residency8_samples: boolsparse_residency_aliased: boolsparse_residency_buffer: boolsparse_residency_image2_d: boolsparse_residency_image3_d: boolstippled_bresenham_lines: boolstippled_rectangular_lines: boolstippled_smooth_lines: boolstorage_buffer16_bit_access: boolstorage_buffer8_bit_access: boolstorage_input_output16: boolstorage_push_constant16: boolstorage_push_constant8: boolsubgroup_broadcast_dynamic_id: boolsubgroup_size_control: boolsubpass_shading: boolsupersample_fragment_shading_rates: boolsynchronization2: booltask_shader: booltessellation_isolines: booltessellation_point_mode: booltessellation_shader: booltexel_buffer_alignment: booltexture_compression_astc_hdr: booltexture_compression_astc_ldr: booltexture_compression_bc: booltexture_compression_etc2: booltimeline_semaphore: booltransform_feedback: booltransform_feedback_preserves_provoking_vertex: booltriangle_fans: booluniform_and_storage_buffer16_bit_access: booluniform_and_storage_buffer8_bit_access: booluniform_buffer_standard_layout: boolvariable_multisample_rate: boolvariable_pointers: boolvariable_pointers_storage_buffer: boolvertex_attribute_access_beyond_stride: boolvertex_attribute_instance_rate_divisor: boolvertex_attribute_instance_rate_zero_divisor: boolvertex_input_dynamic_state: boolvertex_pipeline_stores_and_atomics: boolvulkan_memory_model: boolvulkan_memory_model_availability_visibility_chains: boolvulkan_memory_model_device_scope: boolwide_lines: boolworkgroup_memory_explicit_layout: boolworkgroup_memory_explicit_layout16_bit_access: boolworkgroup_memory_explicit_layout8_bit_access: boolworkgroup_memory_explicit_layout_scalar_block_layout: boolycbcr2plane444_formats: boolycbcr_image_arrays: bool

Implementations

Builds a Features object with all values to false.

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.

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.

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.

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Feeds this value into the given Hasher. Read more

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

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

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Builds a pointer to this type from a raw pointer.

Returns true if the size is suitable to store a type like this.

Returns the size of an individual element.

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.