Skip to content

max_storage_buffers_per_shader_stage limit isn't checked when updating sparse buffer #23404

@beicause

Description

@beicause

Bevy version and features

What you did

WGPU_SETTINGS_PRIO=webgl2 cargo r --example 3d_scene

Or run the example on webgl2

What went wrong

2026-03-18T06:05:58.637742Z ERROR bevy_render::error_handler: Caught rendering error: Validation Error

Caused by:
  In Device::create_bind_group_layout, label = 'sparse buffer update bind group layout'
    Too many bindings of type StorageBuffers in Stage ShaderStages(COMPUTE), limit is 0, count was 3. Check the limit `max_storage_buffers_per_shader_stage` passed to `Adapter::request_device`

2026-03-18T06:05:58.680247Z ERROR bevy_render::error_handler: Caught rendering error: Validation Error

Caused by:
  In Device::create_pipeline_layout
    BindGroupLayout with 'sparse buffer update bind group layout' label is invalid

2026-03-18T06:05:58.680400Z ERROR bevy_render::error_handler: Caught rendering error: Validation Error

Caused by:
  In Device::create_compute_pipeline, label = 'sparse buffer update pipeline'
    PipelineLayout with '' label is invalid

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-RenderingDrawing game state to the screenC-BugAn unexpected or incorrect behaviorO-WebGL2Specific to the WebGL2 render APIS-Needs-ReviewNeeds reviewer attention (from anyone!) to move forward

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions