[][src]Struct wgpu::Limits

#[repr(C)]pub struct Limits {
    pub max_bind_groups: 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: u32,
    pub max_push_constant_size: u32,
}

Represents the sets of limits an adapter/device supports.

Limits "better" than the default must be supported by the adapter and requested when requesting a device. If limits "better" than the adapter supports are requested, requesting a device will panic. Once a device is requested, you may only use resources up to the limits requested even if the adapter supports "better" limits.

Requesting limits that are "better" than you need may cause performance to decrease because the implementation needs to support more than is needed. You should ideally only request exactly what you need.

See also: https://gpuweb.github.io/gpuweb/#dictdef-gpulimits

Fields

max_bind_groups: u32

Amount of bind groups that can be attached to a pipeline at the same time. Defaults to 4. Higher is "better".

max_dynamic_uniform_buffers_per_pipeline_layout: u32

Amount of uniform buffer bindings that can be dynamic in a single pipeline. Defaults to 8. Higher is "better".

max_dynamic_storage_buffers_per_pipeline_layout: u32

Amount of storage buffer bindings that can be dynamic in a single pipeline. Defaults to 4. Higher is "better".

max_sampled_textures_per_shader_stage: u32

Amount of sampled textures visible in a single shader stage. Defaults to 16. Higher is "better".

max_samplers_per_shader_stage: u32

Amount of samplers visible in a single shader stage. Defaults to 16. Higher is "better".

max_storage_buffers_per_shader_stage: u32

Amount of storage buffers visible in a single shader stage. Defaults to 4. Higher is "better".

max_storage_textures_per_shader_stage: u32

Amount of storage textures visible in a single shader stage. Defaults to 4. Higher is "better".

max_uniform_buffers_per_shader_stage: u32

Amount of uniform buffers visible in a single shader stage. Defaults to 12. Higher is "better".

max_uniform_buffer_binding_size: u32

Maximum size in bytes of a binding to a uniform buffer. Defaults to 16384. Higher is "better".

max_push_constant_size: u32

Amount of storage available for push constants in bytes. Defaults to 0. Higher is "better". Requesting more than 0 during device creation requires Features::PUSH_CONSTANTS to be enabled.

Expect the size to be:

  • Vulkan: 128-256 bytes
  • DX12: 256 bytes
  • Metal: 4096 bytes
  • DX11 & OpenGL don't natively support push constants, and are emulated with uniforms, so this number is less useful.

Trait Implementations

impl Clone for Limits[src]

impl Debug for Limits[src]

impl Default for Limits[src]

impl<'de> Deserialize<'de> for Limits[src]

impl Eq for Limits[src]

impl Hash for Limits[src]

impl Ord for Limits[src]

impl PartialEq<Limits> for Limits[src]

impl PartialOrd<Limits> for Limits[src]

impl Serialize 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> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[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.