Skip to content

webgl2: 3d_scene example panics #15998

Closed
@rparrett

Description

@rparrett

Bevy version

main
François bisected to #13497 previously

Relevant system information

AdapterInfo { name: "ANGLE (Apple, ANGLE Metal Renderer: Apple M1 Max, Unspecified Version)", vendor: 4203, device: 0, device_type: IntegratedGpu, driver: "", driver_info: "WebGL 2.0 (OpenGL ES 3.0 Chromium)", backend: Gl }
Chrome Version 129.0.6668.101 (Official Build) (arm64)

What you did

cargo run -p build-wasm-example -- --api webgl2 3d_scene
basic-http-server examples/wasm/

What went wrong

wasm_example.js:1951 panicked at /Users/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-22.1.0/src/backend/wgpu_core.rs:3411:5:
wgpu error: Validation Error

Caused by:
  In Device::create_bind_group, label = 'mesh_view_bind_group'
    Buffer binding 8 range 20480 exceeds `max_*_buffer_binding_size` limit 16384

Additional information

This seems to be platform specific.

I tested on:

AdapterInfo { name: "ANGLE (NVIDIA, NVIDIA GeForce RTX 4080 SUPER (0x00002702) Direct3D11 vs_5_0 ps_5_0, D3D11)", vendor: 4318, device: 0, device_type: Other, driver: "", driver_info: "WebGL 2.0 (OpenGL ES 3.0 Chromium)", backend: Gl }
Chrome 129

And the example worked fine.

Previous discussion

from https://docs.rs/wgpu/latest/wgpu/struct.Limits.html#method.downlevel_webgl2_defaults, I guess max_*_buffer_binding_size is max_uniform_buffer_binding_size which should be limited to 16KiB on WebGL2. It's not mandatory for browser to respect it, but it's the standard... and we're requesting more

  • françois

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-RenderingDrawing game state to the screenC-BugAn unexpected or incorrect behaviorO-WebGL2Specific to the WebGL2 render APIP-CrashA sudden unexpected crash

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions