[][src]Struct gfx_hal::Limits

pub struct Limits {
    pub max_image_1d_size: Size,
    pub max_image_2d_size: Size,
    pub max_image_3d_size: Size,
    pub max_image_cube_size: Size,
    pub max_image_array_layers: Layer,
    pub max_texel_elements: usize,
    pub max_uniform_buffer_range: Offset,
    pub max_storage_buffer_range: Offset,
    pub max_push_constants_size: usize,
    pub max_memory_allocation_count: usize,
    pub max_sampler_allocation_count: usize,
    pub max_bound_descriptor_sets: DescriptorSetIndex,
    pub max_framebuffer_layers: usize,
    pub max_per_stage_descriptor_samplers: usize,
    pub max_per_stage_descriptor_uniform_buffers: usize,
    pub max_per_stage_descriptor_storage_buffers: usize,
    pub max_per_stage_descriptor_sampled_images: usize,
    pub max_per_stage_descriptor_storage_images: usize,
    pub max_per_stage_descriptor_input_attachments: usize,
    pub max_per_stage_resources: usize,
    pub max_descriptor_set_samplers: usize,
    pub max_descriptor_set_uniform_buffers: usize,
    pub max_descriptor_set_uniform_buffers_dynamic: usize,
    pub max_descriptor_set_storage_buffers: usize,
    pub max_descriptor_set_storage_buffers_dynamic: usize,
    pub max_descriptor_set_sampled_images: usize,
    pub max_descriptor_set_storage_images: usize,
    pub max_descriptor_set_input_attachments: usize,
    pub max_vertex_input_attributes: usize,
    pub max_vertex_input_bindings: usize,
    pub max_vertex_input_attribute_offset: usize,
    pub max_vertex_input_binding_stride: usize,
    pub max_vertex_output_components: usize,
    pub max_patch_size: PatchSize,
    pub max_geometry_shader_invocations: usize,
    pub max_geometry_input_components: usize,
    pub max_geometry_output_components: usize,
    pub max_geometry_output_vertices: usize,
    pub max_geometry_total_output_components: usize,
    pub max_fragment_input_components: usize,
    pub max_fragment_output_attachments: usize,
    pub max_fragment_dual_source_attachments: usize,
    pub max_fragment_combined_output_resources: usize,
    pub max_compute_shared_memory_size: usize,
    pub max_compute_work_group_count: WorkGroupCount,
    pub max_compute_work_group_invocations: usize,
    pub max_compute_work_group_size: [u32; 3],
    pub max_draw_indexed_index_value: IndexCount,
    pub max_draw_indirect_count: InstanceCount,
    pub max_sampler_lod_bias: f32,
    pub max_sampler_anisotropy: f32,
    pub max_viewports: usize,
    pub max_viewport_dimensions: [Size; 2],
    pub max_framebuffer_extent: Extent,
    pub min_memory_map_alignment: usize,
    pub buffer_image_granularity: Offset,
    pub min_texel_buffer_offset_alignment: Offset,
    pub min_uniform_buffer_offset_alignment: Offset,
    pub min_storage_buffer_offset_alignment: Offset,
    pub framebuffer_color_sample_counts: NumSamples,
    pub framebuffer_depth_sample_counts: NumSamples,
    pub framebuffer_stencil_sample_counts: NumSamples,
    pub max_color_attachments: usize,
    pub standard_sample_locations: bool,
    pub optimal_buffer_copy_offset_alignment: Offset,
    pub optimal_buffer_copy_pitch_alignment: Offset,
    pub non_coherent_atom_size: usize,
    pub min_vertex_input_binding_stride_alignment: Offset,
    pub max_draw_mesh_tasks_count: u32,
    pub max_task_work_group_invocations: u32,
    pub max_task_work_group_size: [u32; 3],
    pub max_task_total_memory_size: u32,
    pub max_task_output_count: u32,
    pub max_mesh_work_group_invocations: u32,
    pub max_mesh_work_group_size: [u32; 3],
    pub max_mesh_total_memory_size: u32,
    pub max_mesh_output_vertices: u32,
    pub max_mesh_output_primitives: u32,
    pub max_mesh_multiview_view_count: u32,
    pub mesh_output_per_vertex_granularity: u32,
    pub mesh_output_per_primitive_granularity: u32,
}

Resource limits of a particular graphics device.

Fields

max_image_1d_size: Size

Maximum supported image 1D size.

max_image_2d_size: Size

Maximum supported image 2D size.

max_image_3d_size: Size

Maximum supported image 3D size.

max_image_cube_size: Size

Maximum supported image cube size.

max_image_array_layers: Layer

Maximum supporter image array size.

max_texel_elements: usize

Maximum number of elements for the BufferView to see.

max_uniform_buffer_range: Offset
max_storage_buffer_range: Offset
max_push_constants_size: usize
max_memory_allocation_count: usize
max_sampler_allocation_count: usize
max_bound_descriptor_sets: DescriptorSetIndex
max_framebuffer_layers: usize
max_per_stage_descriptor_samplers: usize
max_per_stage_descriptor_uniform_buffers: usize
max_per_stage_descriptor_storage_buffers: usize
max_per_stage_descriptor_sampled_images: usize
max_per_stage_descriptor_storage_images: usize
max_per_stage_descriptor_input_attachments: usize
max_per_stage_resources: usize
max_descriptor_set_samplers: usize
max_descriptor_set_uniform_buffers: usize
max_descriptor_set_uniform_buffers_dynamic: usize
max_descriptor_set_storage_buffers: usize
max_descriptor_set_storage_buffers_dynamic: usize
max_descriptor_set_sampled_images: usize
max_descriptor_set_storage_images: usize
max_descriptor_set_input_attachments: usize
max_vertex_input_attributes: usize

Maximum number of vertex input attributes that can be specified for a graphics pipeline.

max_vertex_input_bindings: usize

Maximum number of vertex buffers that can be specified for providing vertex attributes to a graphics pipeline.

max_vertex_input_attribute_offset: usize

Maximum vertex input attribute offset that can be added to the vertex input binding stride.

max_vertex_input_binding_stride: usize

Maximum vertex input binding stride that can be specified in a vertex input binding.

max_vertex_output_components: usize

Maximum number of components of output variables which can be output by a vertex shader.

max_patch_size: PatchSize

Maximum number of vertices for each patch.

max_geometry_shader_invocations: usize
max_geometry_input_components: usize
max_geometry_output_components: usize
max_geometry_output_vertices: usize
max_geometry_total_output_components: usize
max_fragment_input_components: usize
max_fragment_output_attachments: usize
max_fragment_dual_source_attachments: usize
max_fragment_combined_output_resources: usize
max_compute_shared_memory_size: usize
max_compute_work_group_count: WorkGroupCount
max_compute_work_group_invocations: usize
max_compute_work_group_size: [u32; 3]
max_draw_indexed_index_value: IndexCount
max_draw_indirect_count: InstanceCount
max_sampler_lod_bias: f32
max_sampler_anisotropy: f32

Maximum degree of sampler anisotropy.

max_viewports: usize

Maximum number of viewports.

max_viewport_dimensions: [Size; 2]
max_framebuffer_extent: Extent
min_memory_map_alignment: usize
buffer_image_granularity: Offset
min_texel_buffer_offset_alignment: Offset

The alignment of the start of buffer used as a texel buffer, in bytes, non-zero.

min_uniform_buffer_offset_alignment: Offset

The alignment of the start of buffer used for uniform buffer updates, in bytes, non-zero.

min_storage_buffer_offset_alignment: Offset

The alignment of the start of buffer used as a storage buffer, in bytes, non-zero.

framebuffer_color_sample_counts: NumSamples

Number of samples supported for color attachments of framebuffers (floating/fixed point).

framebuffer_depth_sample_counts: NumSamples

Number of samples supported for depth attachments of framebuffers.

framebuffer_stencil_sample_counts: NumSamples

Number of samples supported for stencil attachments of framebuffers.

max_color_attachments: usize

Maximum number of color attachments that can be used by a subpass in a render pass.

standard_sample_locations: bool
optimal_buffer_copy_offset_alignment: Offset

The alignment of the start of the buffer used as a GPU copy source, in bytes, non-zero.

optimal_buffer_copy_pitch_alignment: Offset

The alignment of the row pitch of the texture data stored in a buffer that is used in a GPU copy operation, in bytes, non-zero.

non_coherent_atom_size: usize

Size and alignment in bytes that bounds concurrent access to host-mapped device memory.

min_vertex_input_binding_stride_alignment: Offset

The alignment of the vertex buffer stride.

max_draw_mesh_tasks_count: u32

The maximum number of local workgroups that can be launched by a single draw mesh tasks command

max_task_work_group_invocations: u32

The maximum total number of task shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the LocalSize execution mode in shader modules or by the object decorated by the WorkgroupSize decoration, must be less than or equal to this limit.

max_task_work_group_size: [u32; 3]

The maximum size of a local task workgroup. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes, as specified by the LocalSize execution mode or by the object decorated by the WorkgroupSize decoration in shader modules, must be less than or equal to the corresponding limit.

max_task_total_memory_size: u32

The maximum number of bytes that the task shader can use in total for shared and output memory combined.

max_task_output_count: u32

The maximum number of output tasks a single task shader workgroup can emit.

max_mesh_work_group_invocations: u32

The maximum total number of mesh shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the LocalSize execution mode in shader modules or by the object decorated by the WorkgroupSize decoration, must be less than or equal to this limit.

max_mesh_work_group_size: [u32; 3]

The maximum size of a local mesh workgroup. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes, as specified by the LocalSize execution mode or by the object decorated by the WorkgroupSize decoration in shader modules, must be less than or equal to the corresponding limit.

max_mesh_total_memory_size: u32

The maximum number of bytes that the mesh shader can use in total for shared and output memory combined.

max_mesh_output_vertices: u32

The maximum number of vertices a mesh shader output can store.

max_mesh_output_primitives: u32

The maximum number of primitives a mesh shader output can store.

max_mesh_multiview_view_count: u32

The maximum number of multi-view views a mesh shader can use.

mesh_output_per_vertex_granularity: u32

The granularity with which mesh vertex outputs are allocated. The value can be used to compute the memory size used by the mesh shader, which must be less than or equal to maxMeshTotalMemorySize.

mesh_output_per_primitive_granularity: u32

The granularity with which mesh outputs qualified as per-primitive are allocated. The value can be used to compute the memory size used by the mesh shader, which must be less than or equal to

Trait Implementations

impl Clone for Limits[src]

impl Copy for Limits[src]

impl Debug for Limits[src]

impl Default for Limits[src]

impl PartialEq<Limits> for Limits[src]

impl StructuralPartialEq for Limits[src]

Auto Trait Implementations

impl RefUnwindSafe for Limits

impl Send for Limits

impl Sync for Limits

impl Unpin for Limits

impl UnwindSafe for Limits

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.