pub struct DeviceLimits {Show 29 fields
pub max_texture_dimension_1d: u32,
pub max_texture_dimension_2d: u32,
pub max_texture_dimension_3d: u32,
pub max_texture_array_layers: u32,
pub max_bind_groups: u32,
pub max_bindings_per_bind_group: u32,
pub max_dynamic_uniform_buffers_per_pipeline_layout: u32,
pub max_dynamic_storage_buffers_per_pipeline_layout: u32,
pub max_sampled_textures_per_shader_stage: u32,
pub max_samplers_per_shader_stage: u32,
pub max_storage_buffers_per_shader_stage: u32,
pub max_storage_textures_per_shader_stage: u32,
pub max_uniform_buffers_per_shader_stage: u32,
pub max_uniform_buffer_binding_size: u64,
pub max_storage_buffer_binding_size: u64,
pub max_vertex_buffers: u32,
pub max_buffer_size: u64,
pub max_vertex_attributes: u32,
pub max_vertex_buffer_array_stride: u32,
pub min_uniform_buffer_offset_alignment: u32,
pub min_storage_buffer_offset_alignment: u32,
pub max_color_attachments: u32,
pub max_color_attachment_bytes_per_sample: u32,
pub max_compute_workgroup_storage_size: 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_workgroups_per_dimension: u32,
}Expand description
GPU limits granted to the device — see Backend::limits.
Like DeviceFeatures, this mirrors a curated
subset of wgpu::Limits rather than every field wgpu exposes — the omitted
fields are mostly mesh-shader/ray-tracing-specific limits that pair with
DeviceFeatures::MESH_SHADER/RAY_QUERY, which aren’t commonly needed
outside those features.
Fields§
§max_texture_dimension_1d: u32§max_texture_dimension_2d: u32§max_texture_dimension_3d: u32§max_texture_array_layers: u32§max_bind_groups: u32§max_bindings_per_bind_group: u32§max_dynamic_uniform_buffers_per_pipeline_layout: u32§max_dynamic_storage_buffers_per_pipeline_layout: u32§max_sampled_textures_per_shader_stage: u32§max_samplers_per_shader_stage: u32§max_storage_buffers_per_shader_stage: u32§max_storage_textures_per_shader_stage: u32§max_uniform_buffers_per_shader_stage: u32§max_uniform_buffer_binding_size: u64§max_storage_buffer_binding_size: u64§max_vertex_buffers: u32§max_buffer_size: u64§max_vertex_attributes: u32§max_vertex_buffer_array_stride: u32§min_uniform_buffer_offset_alignment: u32§min_storage_buffer_offset_alignment: u32§max_color_attachments: u32§max_color_attachment_bytes_per_sample: u32§max_compute_workgroup_storage_size: u32§max_compute_invocations_per_workgroup: u32§max_compute_workgroup_size_x: u32§max_compute_workgroup_size_y: u32§max_compute_workgroup_size_z: u32§max_compute_workgroups_per_dimension: u32Trait Implementations§
Source§impl Clone for DeviceLimits
impl Clone for DeviceLimits
Source§fn clone(&self) -> DeviceLimits
fn clone(&self) -> DeviceLimits
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for DeviceLimits
Source§impl Debug for DeviceLimits
impl Debug for DeviceLimits
impl Eq for DeviceLimits
Source§impl From<Limits> for DeviceLimits
impl From<Limits> for DeviceLimits
Source§impl Hash for DeviceLimits
impl Hash for DeviceLimits
Source§impl PartialEq for DeviceLimits
impl PartialEq for DeviceLimits
impl StructuralPartialEq for DeviceLimits
Auto Trait Implementations§
impl Freeze for DeviceLimits
impl RefUnwindSafe for DeviceLimits
impl Send for DeviceLimits
impl Sync for DeviceLimits
impl Unpin for DeviceLimits
impl UnsafeUnpin for DeviceLimits
impl UnwindSafe for DeviceLimits
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Component for T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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> ⓘ
Converts
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> ⓘ
Converts
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