Terrible bugs in apk after update threejs (from 129 to 133.1)

Yesterday I updated to the latest version of threejs. The first thing I noticed is that my model which uses “skinni mesh” and toonMaterial (pst: model loaded wiht MMDLoader) looked different (less cartoonish) and this was because the material now allows reflections. But this was the least of the problems.

The real problems came when creating the application (apk) and testing it on smartphones and emulators:

  • Random graphic errors
  • Randomly Orbitcontrols stop responding
  • Randomly if I activate a post processing effect, Scene may become completely dark
  • Randomly Scene can become complete white (blank)
  • almost 30% less FPS
    :scream:
    I repeat this only happends on Smartphones. in a normal computer with Google Chrome still working fine.

I don´t have any clue. If you have any information or a solution, I would appreciate it if you share it with me. :disappointed:

for now I think the best I can do is stick with 129 where none of those bugs happens :cry:


Are you sure this is happening on smartphones? Or are you using smartphone emulators?

It would help if there was a demo you could put online, and a list of which devices fail so others can corroborate the problem.

I used both (2 emulators and 2 smartphones A31 and S8), and just now I tested each three js version from 129 to 133.1 and I can definitely say that all these bugs appear to me only in 133.1 and being more precise, these problems occur randomly for around 2 sec when an animation starts or is looping

I guess online demos will working fine ( I just tested that too) the main problem came with a builded apk.

1 Like

maybe related 1256340 - chromium - An open-source project to help move the web forward. - Monorail

thanks arpu. For now I just surrender and I will stick on 129 for a while (has the best performance for my project) and hope for a future fix. Thanks both of you for answer

If you have issues with upgrading the engine, make sure to update only a single version and then verify if everything is working. When everything looks good, upgrade to the next version and so on.

This strategy makes it much easier to locate migration issue and to identify the respective migration task.

after get all the random bugs on 133.1 I got back to 129 and then I did what you suggest from 129 to 133.1 I can say now:

129: stable
130: lost around 20% fps
131 and 132: nothing new but I still have 20% less fps
133: here all the random bugs appears and plus 10% less fps

I thinks I know why I have less fps in 130 and that is because on this version the MMD loaded model changes his type from “MeshToonMaterial” to “ShaderMaterial”. and also comes with a shader predefine. this adds new possibilities but the price is big for mid-end smartphones.

About 133.1 I dont have any clue. About what is happen

Since r130, three.js renders double-sided transparent objects with two instead of one draw calls. That produces a better quality but it’s also more costly.

Do you mind checking if your scene contains double-sided transparent objects? In certain uses cases, such objects are not required (e.g. they can be replaced with alpha cutouts).

Do you still see visual issues when using WebGL1Renderer instead of WebGLRenderer?