WebGL2 Shaders / Storage Buffer Example broken on website
Bevy version
The one used to make the bevyengine.org examples
What you did
Open the Storage Buffer Example set to WebGL2
What went wrong
Nothing is on screen.
wasm_example.js:1597 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio
(anonymous) @ wasm_example.js:1597Understand this warning
wasm_example.js:1237 INFO crates/bevy_winit/src/system.rs:66 Creating new window App (0v1)
wasm_example.js:1237 INFO crates/bevy_render/src/renderer/mod.rs:200 AdapterInfo { name: "ANGLE (NVIDIA, NVIDIA GeForce RTX 4060 Ti (0x00002805) 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 }
wasm_example.js:1237 INFO crates/bevy_render/src/batching/gpu_preprocessing.rs:1126 GPU preprocessing is not supported on this device. Falling back to CPU preprocessing.
wasm_example.js:1237 WARN crates/bevy_core_pipeline/src/oit/resolve/mod.rs:83 OrderIndependentTransparencyPlugin not loaded. GPU lacks support: DownlevelFlags::FRAGMENT_WRITABLE_STORAGE.
wasm_example.js:1237 WARN crates/bevy_pbr/src/ssao/mod.rs:92 ScreenSpaceAmbientOcclusionPlugin not loaded. GPU lacks support: TextureFormat::R16Float does not support TextureUsages::STORAGE_BINDING.
wasm_example.js:1237 WARN crates/bevy_pbr/src/atmosphere/mod.rs:170 AtmospherePlugin not loaded. GPU lacks support for compute shaders.
wasm_example.js:1237 ERROR Handling wgpu errors as fatal by default log.target = "wgpu::backend::wgpu_core";log.module_path = "wgpu::backend::wgpu_core";log.file = "/Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-24.0.3/src/backend/wgpu_core.rs";log.line = 1079;
wasm_example.js:915 panicked at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-24.0.3/src/backend/wgpu_core.rs:1079:26:
wgpu error: Validation Error
in console
Additional information
Chrome Version 137.0.7151.56 (Official Build) (64-bit) Works fine if I swap to WebGPU Tried Ctrl F5 to no effect
Do we have a way to prohibit an example from webgl but not webgpu? We could just disable this example on web entirely but it does work on webgpu.
This example isn't supposed to run on webgl, we need some way of disabling it. Ideally splitting up our wasm=true cargo.toml configs, but maybe just having the example code detect when storage buffers aren't available and throw some "not supported" UI text up.