Hello!
So for some reason in all my scenes and even using the empty playground, I get big FPS drops in ubuntu chrome, with WebGL2 I get constant 240FPS, but when switch to WebGPU every 1.5s~ drops to 170FPS~ and back to 240 again constantly. Any idea?
Ubuntu 26.04 LTS
Babylon 9.7 and 9.8
Tried chrome, chromium and firefox
Thanks
Hi!
If this also happens in the empty Playground, it’s probably not scene-specific and may be related to the Linux WebGPU browser/driver stack.
Could you share:
- GPU model + driver version
- Browser versions tested
- the
chrome://gpu report, especially the WebGPU / Vulkan status
- whether the same periodic drop happens on a non-Babylon WebGPU sample
If possible, a short Chrome Performance trace around one of the drops would also help a lot. The regular ~1.5s interval sounds like something external to rendering, but we’ll need those details to narrow it down.
Hey here are the details:
Browser Chrome/148.0.7778.167
Nvidia RTX 5070ti
Vulkan enabled
WebGPU hardware accelerated
NVIDIA Open Kernel Module 595.58.03 (Dual MIT/GPL licensed)
Chrome GPU report
https://drive.google.com/file/d/1bJ9T20_7wiZxu16BEP3f1oPnfaBDyQJD/view?usp=sharing
Playground perf
https://drive.google.com/file/d/12RxqOvzYzQ7lkqBF0tV2E7NLmdiGzGVf/view?usp=sharing
Thanks for the details!
I looked at the chrome://gpu report: WebGPU and Vulkan are both hardware accelerated, running on NVIDIA 595.58.03 under Wayland.
From the trace, the Babylon/render JS side does not seem to be the source of the stall: the requestAnimationFrame/render callback work is very small, but the drops line up with long tasks on Chrome’s GPU process (RunTask / GPUTask, ~35–65ms, repeating roughly once per second). That would explain the periodic FPS dips and points more toward Chrome/Dawn/NVIDIA/Wayland than Babylon itself.
Could you try these comparisons?
- Run Chrome under X11 instead of Wayland, or launch with
--ozone-platform=x11
- Try Chrome Canary/Beta if possible
- Try a non-Babylon WebGPU sample and see if the same periodic drop happens
- If you can, try another NVIDIA driver version / proprietary vs open kernel module
If the non-Babylon WebGPU sample shows the same pattern, this would probably be best reported upstream to Chromium/Dawn/NVIDIA with the trace you captured.
Ok so my display is 4k 240hz with rescale 150%, “google-chrome --ozone-platform=x11” gets capped at 60fps, then I set rescale to 100% and works stable at 240fps
Thanks, that’s a very useful finding!
If switching the display scale from 150% to 100% makes WebGPU stable at 240 FPS, then the issue is almost certainly in the browser/compositor/driver path rather than in Babylon.js itself.
So the repro seems to be:
- Ubuntu / Wayland
- NVIDIA 595.58.03
- 4K 240Hz display
- fractional scaling at 150%
- Chrome WebGPU
As a workaround, using 100% scaling seems to avoid the periodic stalls. It may also be worth testing Chrome Canary/Beta later, but this is probably something to report upstream to Chromium/Dawn/NVIDIA/Wayland with the trace and the key detail that 150% display scaling triggers it.
Another update, snap chromium 148 works ok without any fps drop. Chrome stable 148 and Canary 150 have the fps drop issue.
Thanks for the extra test, that narrows it down a lot.
If snap Chromium 148 is stable at 240 FPS with the same display/scaling setup, while Google Chrome Stable 148 and Canary 150 both have the periodic drops, then this does not look like a Babylon.js issue, and probably not a generic Chromium/WebGPU issue either.
It may be specific to the Google Chrome Linux build/runtime path, packaging, flags, or compositor integration. It would be useful to compare chrome://gpu between snap Chromium and Google Chrome, especially:
- command line / enabled flags
- Ozone platform: Wayland vs X11
- Vulkan / WebGPU status
- ANGLE / Dawn backend details
- GPU process workarounds
Given that Chromium works correctly, I’d report this upstream to Chrome/Chromium with the trace and the key comparison: snap Chromium 148 works, Google Chrome 148 + Canary 150 stutter under the same 4K 240Hz fractional scaling setup.
False alarm, the chromium snap was using CPU SwiftShader instead of proper GPU Vulkan, so the scene was defaulting to WebGL2, thats why I didnt noticed the fps drops…
Will need to file a bug to chrome