IN-52428
The performance of Entities Graphics 1.0.14 is insanely slow which is 600 ms+ is around 37x+ slower than 0.51.1 version which is 16 ms at 5/12 stress test scene at 1.0 project. I setup all slow scenes at 1.0 project and same set of scene at 0.51 project and attach with this bug report together for official to compare side by side. Tested with Mi 9T Pro (Snagdragon 855) that it's solid 16ms for almost all the scenes at 0.51 project (i.e. 1/11, 3/11, 4/11, 6/11, 8/11, 9/11, 11/11 scenes) but at 1.0 project all scenes are extremely slow. From my further testing and observation, looks like it's caused by Unity 2022.3 engine brg plus vulkan and opengl regression. I believe the regression is there since 2022.2.0f1 up until latest 2022.3 release. At 2021.3.29f1, it's able to get solid 60 fps for most of scenarios i.e. camera far from scene or super near to scene and will drop certain amount of fps when camera near to certain distance but at 2022.3.7f1 with vulkan is insanely slow no matter which camera distance but at opengl when camera goes quite far or goes super near to visual entities can get solid 60fps but still not as fast as 2021.3.29f1 yet. I would like official to fully address this performance regression and make it much faster than 0.51 release at Unity 2023.3 release since I'm going to upgrade project to Unity 2023.3 once it's released.
#(IN-52428) Entities Graphics 1.0.14 is insanely slower than 0.51.1
1 messages · Page 1 of 1 (latest)
This is being investigated. There shouldn't be any intentional changes between the two versions that could explain a difference this large, but it is of course possible that there is some kind of bug or other problem.
Alright. Just let u know I prepared new projects at case IN-52428 that setup all the slow scenes for u to compare side by side between 1.0 and 0.51 easily
To clarify: you were testing on Android with Vulkan?
Ya but I found that at 1.0 with OpenGLES it's faster than 1.0 with Vulkan but it's still quite slower than 0.51 with Vulkan
GLES can sometimes be faster on some devices, and slower on others, as both the shader code is different, and the shader compiler is different.
Usually the difference between the two is not large, but there might be some outlier devices, especially if they are older and have poor Vulkan drivers.
So basically 0.51 with Vulkan completely beats 1.0 with Vulkan and OpenGLES at same snagdragon 855 phone
That sounds like some kind of serious bug, since the shader code shouldn't have changed that much.
Ya. Let me know when u found the culprit. I would like to know what make it so slow?
It seems there may be a bug in 2022.3 and later which causes Unity to limit instance counts to 1 on some hardware on Vulkan. This could certainly cause both CPU and GPU performance problems in the kind of scenes that are supposed to have a lot of instancing.
🤔 I get the reply from @copper jetty that he says it's an issue with proper BRG batch size calculation, when using Vulkan backend only but from my testing 1.0 with OpenGLES3 is still significantly slower than 0.51 with Vulkan
OpenGLES uses completely different code paths, so it's not directly comparable to begin with.
It has much more severe batch size limits due to uniform buffer maximum size, and the GPU performance characteristics are different because it uses UBOs instead of SSBOs.
On some phones it's slower, on others it can sometimes be faster.
The difference should not be big, however.
I see. Anyway after the brg fix, can I expect it will significantly faster than 0.51 with vulkan?
It should be roughly the same speed or possibly slightly faster, since we did some shader side optimizations.
But there shouldn't be a big difference.
This kind of heavily instanced scene should be completely GPU bound, and the shader has not changed much.
🤔 So even Unity 2023.3 also can't solve this problem? I heard there's a lot of urp optimization at Unity 2023.3