bevyengine / bevyengine/bevy

WebGPU degrades Chrome browser performance with Ryzen 5 7600 integrated GPU (Linux)

Open
#22,044 4 comments 1 reaction 0 assignees View on GitHub
C-Machine-Specific C-Performance O-WebGPU S-Needs-Investigation
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## Bevy version

0.17.3

## Relevant system information

Rust Version: 1.93.0-nightly (2d4fa1395 2025-11-12)
Operating System: EndevourOS (Arch based, latest kernel)
Browser: Chrome with WebGPU enabled

## Issue

I have been testing WebGPU on my integrated graphics (Ryzen 5 7600) and Bevy examples on WebGPU seems to lag my entire browser (Really low FPS on the entire browser itself). Do note that I have no issues when I ran custom wgpu examples, like https://wgpu.rs/examples/?backend=webgpu&example=water, or Javascript WebGPU examples: https://webgpu.github.io/webgpu-samples/ , they all ran smoothly without any fps drops.

So I don't think it is the limitation of my integrated graphics, but perhaps, a Bevy issue? Attaching video:

https://github.com/user-attachments/assets/905781ee-8281-43f8-8e37-a2105144fa26

OUTPUT from Console:
```
wasm_example.js:2110 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:2110Understand this warning
wasm_example.js:1610 INFO crates/bevy_winit/src/system.rs:69 Creating new window App (0v0)
wasm_example.js:2072 WebGPU is experimental on this platform. See https://github.com/gpuweb/gpuweb/wiki/Implementation-Status#implementation-status
wasm_example.js:1610 INFO crates/bevy_render/src/renderer/mod.rs:277 AdapterInfo { name: "", vendor: 0, device: 0, device_type: Other, driver: "", driver_info: "", backend: BrowserWebGpu }
wasm_example.js:2808 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:2808Understand this warning
wasm_example.js:2808 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:2808Understand this warning
wasm_example.js:1610 INFO crates/bevy_render/src/batching/gpu_preprocessing.rs:1142 Some GPU preprocessing are limited on this device.
wasm_example.js:1610 WARN crates/bevy_pbr/src/ssao/mod.rs:70 ScreenSpaceAmbientOcclusionPlugin not loaded. GPU lacks support: Limits::max_storage_textures_per_shader_stage is less than 5.
wasm_example.js:1610 INFO crates/bevy_pbr/src/light_probe/generate.rs:130 Disabling EnvironmentMapGenerationPlugin because compute is not supported on this platform. This is safe to ignore if you are not using EnvironmentMapGenerationPlugin.
(index):1 Destroyed texture [Texture (unlabeled 2100x1181 px, TextureFormat::BGRA8Unorm)] used in a submit.
- While calling [Queue].Submit([[CommandBuffer], [CommandBuffer "main_opaque_pass_2d_command_encoder" from CommandEncoder "main_opaque_pass_2d_command_encoder"], [CommandBuffer "main_transparent_pass_2d_command_encoder" from CommandEncoder "main_transparent_pass_2d_command_encoder"], [CommandBuffer]])
```

What could be the issue? If other webgpu examples work fine but Bevy specific doesn't? I am happy to provide more logs if needed, thanks!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.