pebble/graphics/types/
limits.rs1#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
9pub struct DeviceLimits {
10 pub max_texture_dimension_1d: u32,
11 pub max_texture_dimension_2d: u32,
12 pub max_texture_dimension_3d: u32,
13 pub max_texture_array_layers: u32,
14 pub max_bind_groups: u32,
15 pub max_bindings_per_bind_group: u32,
16 pub max_dynamic_uniform_buffers_per_pipeline_layout: u32,
17 pub max_dynamic_storage_buffers_per_pipeline_layout: u32,
18 pub max_sampled_textures_per_shader_stage: u32,
19 pub max_samplers_per_shader_stage: u32,
20 pub max_storage_buffers_per_shader_stage: u32,
21 pub max_storage_textures_per_shader_stage: u32,
22 pub max_uniform_buffers_per_shader_stage: u32,
23 pub max_uniform_buffer_binding_size: u64,
24 pub max_storage_buffer_binding_size: u64,
25 pub max_vertex_buffers: u32,
26 pub max_buffer_size: u64,
27 pub max_vertex_attributes: u32,
28 pub max_vertex_buffer_array_stride: u32,
29 pub min_uniform_buffer_offset_alignment: u32,
30 pub min_storage_buffer_offset_alignment: u32,
31 pub max_color_attachments: u32,
32 pub max_color_attachment_bytes_per_sample: u32,
33 pub max_compute_workgroup_storage_size: u32,
34 pub max_compute_invocations_per_workgroup: u32,
35 pub max_compute_workgroup_size_x: u32,
36 pub max_compute_workgroup_size_y: u32,
37 pub max_compute_workgroup_size_z: u32,
38 pub max_compute_workgroups_per_dimension: u32,
39}
40
41impl From<wgpu::Limits> for DeviceLimits {
42 fn from(value: wgpu::Limits) -> Self {
43 Self {
44 max_texture_dimension_1d: value.max_texture_dimension_1d,
45 max_texture_dimension_2d: value.max_texture_dimension_2d,
46 max_texture_dimension_3d: value.max_texture_dimension_3d,
47 max_texture_array_layers: value.max_texture_array_layers,
48 max_bind_groups: value.max_bind_groups,
49 max_bindings_per_bind_group: value.max_bindings_per_bind_group,
50 max_dynamic_uniform_buffers_per_pipeline_layout: value
51 .max_dynamic_uniform_buffers_per_pipeline_layout,
52 max_dynamic_storage_buffers_per_pipeline_layout: value
53 .max_dynamic_storage_buffers_per_pipeline_layout,
54 max_sampled_textures_per_shader_stage: value.max_sampled_textures_per_shader_stage,
55 max_samplers_per_shader_stage: value.max_samplers_per_shader_stage,
56 max_storage_buffers_per_shader_stage: value.max_storage_buffers_per_shader_stage,
57 max_storage_textures_per_shader_stage: value.max_storage_textures_per_shader_stage,
58 max_uniform_buffers_per_shader_stage: value.max_uniform_buffers_per_shader_stage,
59 max_uniform_buffer_binding_size: value.max_uniform_buffer_binding_size,
60 max_storage_buffer_binding_size: value.max_storage_buffer_binding_size,
61 max_vertex_buffers: value.max_vertex_buffers,
62 max_buffer_size: value.max_buffer_size,
63 max_vertex_attributes: value.max_vertex_attributes,
64 max_vertex_buffer_array_stride: value.max_vertex_buffer_array_stride,
65 min_uniform_buffer_offset_alignment: value.min_uniform_buffer_offset_alignment,
66 min_storage_buffer_offset_alignment: value.min_storage_buffer_offset_alignment,
67 max_color_attachments: value.max_color_attachments,
68 max_color_attachment_bytes_per_sample: value.max_color_attachment_bytes_per_sample,
69 max_compute_workgroup_storage_size: value.max_compute_workgroup_storage_size,
70 max_compute_invocations_per_workgroup: value.max_compute_invocations_per_workgroup,
71 max_compute_workgroup_size_x: value.max_compute_workgroup_size_x,
72 max_compute_workgroup_size_y: value.max_compute_workgroup_size_y,
73 max_compute_workgroup_size_z: value.max_compute_workgroup_size_z,
74 max_compute_workgroups_per_dimension: value.max_compute_workgroups_per_dimension,
75 }
76 }
77}