GPU Particles + Freezing Meshes = Texture problem

Hello, I came across really unpleasant problem when using GPU particles. Mainly because it works well on PC but does not on Android cellphone neither on Android tablet.

Situation is following:

  • Scene is being frozen by scene.freezeActiveMeshes
  • There is GPU Particle system
  • Texture file that is used by this GPU Particle system is used repeatedly

I have two playgrounds that I have created to reproduce that problem.

This works well - https://playground.babylonjs.com/#T18G6A#11

This does not work on my phone - https://playground.babylonjs.com/#T18G6A#12

The only difference in the second one is that file “textures/flare.png” is being used BEFORE GPUParticleSystem is created.

Somehow it seems like that after first usage of the texture, its source file is being “frozen” in some texture cache and it is ipossible to use this source file ever again.

The reason why I reported it to bugs and not to questions is that it works well on my desktop PC, but does not work on cellphone and I am sure that it cannot be desired behavior.

Result of the problem is that I am unable to use GPUParticleSystem as I need them repeatedly over time (which is result of the fact, that they cannot be stopped and reused again by design).

Thanx for some insight guys, I really appreciate your work even when I spent whole day to isolate the core of the problem :slight_smile:

My phone is Samsung Galaxy A52s and tablet is Galaxy Tab A8

@Evgeni_Popov can you have a look ? I can unfortunately not repro here :frowning:

Tested it on Ipad right now and it worked well, also I have tested it on the native Interner browser on android phone and it DO NOT work as well as in Chrome, which I have expected as they share rendering engine.

I have recorded two video files from my remote Chrome debugging (phone connected to PC). On the first one (PG with number 11) particles will appear after several seconds and on the second one (PG with number 12) they would not.

http://darkenlight.net/capture/playground11.mp4

http://darkenlight.net/capture/playground12.mp4

If you had any idea of how could I debug it on my side, I would try. Thanx !

This PR will (hopefully) fix the problem:

1 Like

You are so cool here in BabylonJS :slight_smile: It is working perfectly - tested my phone on this PG Babylon.js Playground

Now I can continue with my work (presuming it is solved) and it will be eventually in next release ?

Thanx very much !!!

Yes, that will be in the 6.0 release that is coming soon!

Note that it will also come sooner to the Playground / npm: in a few days.