Hi Guys,
For some reason VertexBuffer3D.uploadFromVector and VertexBuffer3D.uploadFromByteArray are extremely slow on Android and even more slow on Samsung devices with Exynos processor (I did not test with SnapDragon).
There is almost no difference in performance between VertexBuffer3D.uploadFromVector and VertexBuffer3D.uploadFromByteArray.
Samsung 6s Edge (Exynos Version):
https://ibb.co/kfbvjn
Huawei P10 Lite:
https://ibb.co/ntxqH7
Here is the Scout profile for Samsung:
https://goo.gl/Z1g3MN
And here it is for Huawei P10 Lite:
https://goo.gl/mY6TLP
On both devices I have played exact same particles.
As you can see Huawei P10 Lite has much better performance than Samsung s6 Edge and Samsung s9 Plus which is really strange. Could this be a bug in Adobe Air?
Performance on the Samsung 6s Edge are the same for Samsung Galaxy s9 Plus (Exynos version) which is even more strange.
Also there is a lot of Waiting for GPU as well and Context3D.clear() method is also super slow on Samsung as well. Look at the beginning of the Scout profile you will see how Context3D.clear() is slow and I am not doing anything, not playing a level I just display background and some UI elements. Context3D.clear() is so much faster on Huawei P10 Lite for example you can see it in Scout profile. But everything is working fine on iOS and Desktop.
Is there anyone with a SnapDragon 835 or Snapdragon 845 phone that can help to test this?
I am using latest AIR SDK 29.0.0.112.
I am using latest Starling from master branch and Starudst Particle System from here:
https://bitbucket.org/hardcoremore/stardustparticlesystem
look at the refactor/upload-from-bytearray branch.