diff --git a/libs/wgpu/include/psemek/wgpu/device.hpp b/libs/wgpu/include/psemek/wgpu/device.hpp index a3ededcb..562cbc31 100644 --- a/libs/wgpu/include/psemek/wgpu/device.hpp +++ b/libs/wgpu/include/psemek/wgpu/device.hpp @@ -49,38 +49,38 @@ namespace psemek::wgpu struct limits { - std::uint32_t max_texture_dimension_1D; - std::uint32_t max_texture_dimension_2D; - std::uint32_t max_texture_dimension_3D; - std::uint32_t max_texture_array_layers; - std::uint32_t max_bind_groups; - std::uint32_t max_bind_groups_plus_vertex_buffers; - std::uint32_t max_bindings_per_bind_group; - std::uint32_t max_dynamic_uniform_buffers_per_pipeline_layout; - std::uint32_t max_dynamic_storage_buffers_per_pipeline_layout; - std::uint32_t max_sampled_textures_per_shader_stage; - std::uint32_t max_samplers_per_shader_stage; - std::uint32_t max_storage_buffers_per_shader_stage; - std::uint32_t max_storage_textures_per_shader_stage; - std::uint32_t max_uniform_buffers_per_shader_stage; - std::uint64_t max_uniform_buffer_binding_size; - std::uint64_t max_storage_buffer_binding_size; - std::uint32_t min_uniform_buffer_offset_alignment; - std::uint32_t min_storage_buffer_offset_alignment; - std::uint32_t max_vertex_buffers; - std::uint64_t max_buffer_size; - std::uint32_t max_vertex_attributes; - std::uint32_t max_vertex_buffer_array_stride; - std::uint32_t max_inter_stage_shader_components; - std::uint32_t max_inter_stage_shader_variables; - std::uint32_t max_color_attachments; - std::uint32_t max_color_attachment_bytes_per_sample; - std::uint32_t max_compute_workgroup_storage_size; - std::uint32_t max_compute_invocations_per_workgroup; - std::uint32_t max_compute_workgroup_size_x; - std::uint32_t max_compute_workgroup_size_y; - std::uint32_t max_compute_workgroup_size_z; - std::uint32_t max_compute_workgroups_per_dimension; + std::uint32_t max_texture_dimension_1D = 8192; + std::uint32_t max_texture_dimension_2D = 8192; + std::uint32_t max_texture_dimension_3D = 2048; + std::uint32_t max_texture_array_layers = 256; + std::uint32_t max_bind_groups = 4; + std::uint32_t max_bind_groups_plus_vertex_buffers = 8; + std::uint32_t max_bindings_per_bind_group = 1000; + std::uint32_t max_dynamic_uniform_buffers_per_pipeline_layout = 8; + std::uint32_t max_dynamic_storage_buffers_per_pipeline_layout = 4; + std::uint32_t max_sampled_textures_per_shader_stage = 16; + std::uint32_t max_samplers_per_shader_stage = 16; + std::uint32_t max_storage_buffers_per_shader_stage = 8; + std::uint32_t max_storage_textures_per_shader_stage = 4; + std::uint32_t max_uniform_buffers_per_shader_stage = 12; + std::uint64_t max_uniform_buffer_binding_size = 64 * 1024; + std::uint64_t max_storage_buffer_binding_size = 128 * 1024 * 1024; + std::uint32_t min_uniform_buffer_offset_alignment = 256; + std::uint32_t min_storage_buffer_offset_alignment = 256; + std::uint32_t max_vertex_buffers = 8; + std::uint64_t max_buffer_size = 256 * 1024 * 1024; + std::uint32_t max_vertex_attributes = 16; + std::uint32_t max_vertex_buffer_array_stride = 2048; + std::uint32_t max_inter_stage_shader_components = 60; + std::uint32_t max_inter_stage_shader_variables = 15; + std::uint32_t max_color_attachments = 1; + std::uint32_t max_color_attachment_bytes_per_sample = 4; + std::uint32_t max_compute_workgroup_storage_size = 16384; + std::uint32_t max_compute_invocations_per_workgroup = 256; + std::uint32_t max_compute_workgroup_size_x = 256; + std::uint32_t max_compute_workgroup_size_y = 256; + std::uint32_t max_compute_workgroup_size_z = 64; + std::uint32_t max_compute_workgroups_per_dimension = 65535; }; enum class create_pipeline_async_status : std::uint32_t diff --git a/libs/wgpu/source/adapter.cpp b/libs/wgpu/source/adapter.cpp index 5ff7645a..b906b8b5 100644 --- a/libs/wgpu/source/adapter.cpp +++ b/libs/wgpu/source/adapter.cpp @@ -22,7 +22,7 @@ namespace psemek::wgpu // TODO: support out chain wgpu::limits result; static_assert(sizeof(result) == sizeof(limits.limits)); - std::memcpy(&result, &limits.limits, sizeof(result)); + std::memcpy((char *)&result, (char *)&limits.limits, sizeof(result)); return result; } diff --git a/libs/wgpu/source/device.cpp b/libs/wgpu/source/device.cpp index b2debd90..a9c9895b 100644 --- a/libs/wgpu/source/device.cpp +++ b/libs/wgpu/source/device.cpp @@ -397,7 +397,7 @@ namespace psemek::wgpu // TODO: support out chain wgpu::limits result; static_assert(sizeof(result) == sizeof(limits.limits)); - std::memcpy(&result, &limits.limits, sizeof(result)); + std::memcpy((char *)&result, (char *)&limits.limits, sizeof(result)); return result; }