pub struct Limits {Show 31 fields
pub max_bind_groups: u32,
pub max_bindings_per_bind_group: u32,
pub max_buffer_size: u64,
pub max_color_attachment_bytes_per_sample: u32,
pub max_color_attachments: u32,
pub max_compute_invocations_per_workgroup: u32,
pub max_compute_workgroup_size_x: u32,
pub max_compute_workgroup_size_y: u32,
pub max_compute_workgroup_size_z: u32,
pub max_compute_workgroup_storage_size: u32,
pub max_compute_workgroups_per_dimension: u32,
pub max_dynamic_storage_buffers_per_pipeline_layout: u32,
pub max_dynamic_uniform_buffers_per_pipeline_layout: u32,
pub max_inter_stage_shader_components: u32,
pub max_inter_stage_shader_variables: u32,
pub max_sampled_textures_per_shader_stage: u32,
pub max_samplers_per_shader_stage: u32,
pub max_storage_buffer_binding_size: u64,
pub max_storage_buffers_per_shader_stage: u32,
pub max_storage_textures_per_shader_stage: u32,
pub max_texture_array_layers: u32,
pub max_texture_dimension_1d: u32,
pub max_texture_dimension_2d: u32,
pub max_texture_dimension_3d: u32,
pub max_uniform_buffer_binding_size: u64,
pub max_uniform_buffers_per_shader_stage: u32,
pub max_vertex_attributes: u32,
pub max_vertex_buffer_array_stride: u32,
pub max_vertex_buffers: u32,
pub min_storage_buffer_offset_alignment: u32,
pub min_uniform_buffer_offset_alignment: u32,
}Expand description
WebGPU device limits and capabilities
Represents the hardware limits and capabilities of a WebGPU device, including maximum values for various resources and operations.
Fields§
§max_bind_groups: u32Maximum number of bind groups that can be bound at once
max_bindings_per_bind_group: u32Maximum number of bindings allowed in a single bind group
max_buffer_size: u64Maximum size in bytes for a buffer
max_color_attachment_bytes_per_sample: u32Maximum bytes per sample for color attachments
max_color_attachments: u32Maximum number of color attachments that can be used simultaneously
max_compute_invocations_per_workgroup: u32Maximum number of compute shader invocations in a workgroup
max_compute_workgroup_size_x: u32Maximum size of compute workgroup in X dimension
max_compute_workgroup_size_y: u32Maximum size of compute workgroup in Y dimension
max_compute_workgroup_size_z: u32Maximum size of compute workgroup in Z dimension
max_compute_workgroup_storage_size: u32Maximum storage size in bytes for compute workgroups
max_compute_workgroups_per_dimension: u32Maximum number of workgroups in each dimension
max_dynamic_storage_buffers_per_pipeline_layout: u32Maximum number of dynamic storage buffers per pipeline layout
max_dynamic_uniform_buffers_per_pipeline_layout: u32Maximum number of dynamic uniform buffers per pipeline layout
max_inter_stage_shader_components: u32Maximum number of components that can be passed between shader stages
max_inter_stage_shader_variables: u32Maximum number of variables that can be passed between shader stages
max_sampled_textures_per_shader_stage: u32Maximum number of sampled textures per shader stage
max_samplers_per_shader_stage: u32Maximum number of samplers per shader stage
max_storage_buffer_binding_size: u64Maximum size in bytes for a storage buffer binding
max_storage_buffers_per_shader_stage: u32Maximum number of storage buffers per shader stage
max_storage_textures_per_shader_stage: u32Maximum number of storage textures per shader stage
max_texture_array_layers: u32Maximum number of array layers in a texture
max_texture_dimension_1d: u32Maximum size for 1D textures
max_texture_dimension_2d: u32Maximum size for 2D textures
max_texture_dimension_3d: u32Maximum size for 3D textures
max_uniform_buffer_binding_size: u64Maximum size in bytes for a uniform buffer binding
max_uniform_buffers_per_shader_stage: u32Maximum number of uniform buffers per shader stage
max_vertex_attributes: u32Maximum number of vertex attributes
max_vertex_buffer_array_stride: u32Maximum stride between vertex buffers
max_vertex_buffers: u32Maximum number of vertex buffers
min_storage_buffer_offset_alignment: u32Required alignment for storage buffer offsets
min_uniform_buffer_offset_alignment: u32Required alignment for uniform buffer offsets
Implementations§
Trait Implementations§
source§impl<'de> Deserialize<'de> for Limits
impl<'de> Deserialize<'de> for Limits
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<&Limits> for WebGPULimits
impl From<&Limits> for WebGPULimits
Converts from browser profile limits DTO to WebGPU limits
impl Eq for Limits
impl StructuralPartialEq for Limits
Auto Trait Implementations§
impl Freeze for Limits
impl RefUnwindSafe for Limits
impl Send for Limits
impl Sync for Limits
impl Unpin for Limits
impl UnwindSafe for Limits
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more