Framerate drop on iOS15 with scaling 0

Hello Babylon team! I ran into a strange issue, where the frame rate drops significantly in the following scenario on iOS15:

  • Import a geometry and create several instances of it
  • Add the instances under a parent (e.g. a box geometry)
  • Scale the parent to 0

At that point the frame rate drops a lot. On older Apple devices, with older iOS, the frame doesn’t drop at all.

Here’s the playground that I used to replicate the issue, let’s call it (1):
https://playground.babylonjs.com/#SM5RNH#24
Here is a playground where the issue can not be replicated. The only difference is that the scaling of the parents is 1, let’s call it (2):
https://playground.babylonjs.com/#SM5RNH#23

Photos from the issue being replicated:
This is a photo of playground(2). On the left, the older device has lower frame rate, which is expected. The scaling is 1 so there is no issue here.

This is a photo of playground (1). On the left, the older device with iOS 13 has more or less the same frame rate. The device with iOS 15 though drops to 4 fps.

Let me know what you think about this!

This is such a weird issue !!!

Sounds like a metal issue which is deadly strange as basically nothing should be rendered but one pixel making it faster in theory.

1 Like

Yes totally something to report to webkit team

1 Like

Hi @geobalas just checking in, were you able to create a report to webkit as suggested? :slight_smile:

Hello @carolhmj! I didn’t have time to do it, but thanks of reminding. I hope I will have time to do it soon. I will let you know in any case!

2 Likes

Hello! FYI I reported the bug to WebKit: 236130 – Low fps when mesh instances are scaled to 0

1 Like

@sebavan @Deltakosh please check the bug report above. A dev who is looking into it has some questions related to BabylonJS code.

1 Like

Cc @Cedric

I did a quick test with Spector.js on Windows and I can confirm instancing is disabled when scale is 0. Basically, rendering is not the same and the instance buffer gets updated (CPU → GPU) in that particular case.

@geobalas Can you please open a Github Issue?

@Cedric sure, created https://github.com/BabylonJS/Babylon.js/issues/11952
I will respond in the ticket that was created for the webkit team that you will look into it.

1 Like