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