Performance and rendering issues since Fedora 37 upgrade

I upgraded to Fedora 37 and now all Babylon-related rendering is flickering (with a bright interframe) and the browser seems to be struggling because of high CPU load.

Almost any other WebGL(2) content is rendering just as before (e.g. three.js-based).

I tested dozens of demos from Chrome Experiments - Experiments with Google and
https://avseoul.net/particleEqualizer was the only one I could find with similar issues.

WebGL Report output for WebGL2:

  • Platform: Linux x86_64
  • Browser User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
  • Context Name: webgl2
  • GL Version: WebGL 2.0 (OpenGL ES 3.0 Chromium)
  • Shading Language Version: WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)
  • Vendor: WebKit
  • Renderer: WebKit WebGL
  • Unmasked Vendor: Google Inc. (Intel)
  • Unmasked Renderer: ANGLE (Intel, Vulkan 1.3.224 (Intel(R) Xe Graphics (TGL GT2) (0x00009A49)), Intel open-source Mesa driver)
  • Antialiasing: Available
  • ANGLE: No
  • Major Performance Caveat: No

Kernel: Linux 6.0.8-300.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 11 15:09:04 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Update:
Same issues with Google Chrome Unstable Version 109.0.5410.0 (Official Build) dev (64-bit).

1 Like

Explicitly disabling the Vulkan backend in chrome://flags fixed the issue (was set to Default).

1 Like

What version of Fedora did you upgrade from? Fedora 36 switched to wayland (vulkan by default?). Ubuntu 20 or 22 did also. So, this may be an issue for pretty much everyone on linux the near future. Turning off Vulkan in Chrome doesn’t explain why bjs is running slow on Chrome’s Vulkan backend when Three isn’t.

I’ll try to clarify:

Things that haven’t changed:

  • Laptop with i7-1165G7; integrated TigerLake-LP GT2 (Iris Xe); no other GPU
  • Linux, 64 bit
  • Babylon.js 5.24.0
  • KDE on Wayland
  • Only one special setting in chrome://flags (“WebRTC PipeWire support” set to “Enabled”)

Things that changed from (Fedora 36, KDE Spin):

  • Kernel 5.17.?
  • Chrome (not sure which version, but 104 < version < 107)

Changed to (Fedora 37, KDE Spin):

  • Kernel 6.0.8
  • Chrome 107
  • and hundreds of other packages (in KDE, Wayland, Intel drivers, … which makes it difficult to find a root cause I guess)

After the upgrade I saw the flickering and the performance issues in all BJS-related content and only one or two other pages using WebGL(2). The WebGL2 report page told me that the renderer was now using Vulkan (see first post). That gave me the idea to set the “Vulkan” setting in chrome://flags from “Default” to “Disabled” which solved the issue.

Misc:

  • Using X11 instead of Wayland did not help.
  • glxgears and other 3D stuff outside of the browser never had issues.

Nice information! That’s a relief it seems not to be a window/linux driver root cause. FWIW, the kernel update 5 to 6 isn’t semver related, just arbitrary numbers (watched some interview recently with Linus Torvalds where he said that) .

Totally a shot in the dark, but I saw in a couple other threads, people are having to set engine.disableUniformBuffers to true on ios. I know its seemingly unrelated, but I wonder if the ios backend is using molten vk , which would allow sharing the vulkan frontend across platforms. Worth a try?

No, engine.disableUniformBuffers didn’t help. But thanks anyway.

Btw: I set up an old laptop for my son (also with integrated Intel GPU) with Fedora 37 Workstation (Gnome), installed Chrome (107 which automatically used the Intel Vulkan drivers) and saw exactly the same issues with BJS. Again, turning Vulkan explicitly off helped. My guess is that lots of Linux and Chrome users with Intel iGPUs will experience the same problem.

You should open an issue on the chromium bug tracker to let the team there know :slight_smile: