Operating system or device, Godot version, GPU Model and driver (if graphics related):
Godot 3.0 build 6dc1025
Issue description:
When open UI, performance droped to 10 fps from 30
D3 scene with minimum UI elements:

Complex UI window:

I dont use UI atlas in game
What styleboxes are u using?
@toger5 mostly not defined, in some panel it specified as custom StyleBoxTexture
BTW, glDrawArrays are performed for each symbol of rendered text, may be here can be some points for optimization
guess it really depends on how the UI looks and the device
On Tue, Oct 3, 2017 at 8:17 AM, Konstantin Zaitcev <[email protected]
wrote:
@toger5 https://github.com/toger5 mostly not defined, in some panel it
specified as custom StyleBoxTexture—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/11797#issuecomment-333812042,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z20GGlVGs-0xEZQOtR9VYxxl_axs_ks5sohfjgaJpZM4PrpSe
.
I only can say for style box flat that it does an immediate draw call (sending a vertex array) for each draw iteration. + for each sb...
I m sure that this is not the most performant approach but it seems okay enough for the editor atm...
Sb texture also does immediate draw calls afak but it uses only 16verts i think?
I don't think that's the problem, Godot 2 uses the same approach (and in
fact it uses a lot more draw calls) and it's not slow.
If you are using a lot of styleboxes, I think the problem may have to do
with how the fragment shaders work in 3.0, which is not that
friendly to low end mobile devices.
Most likely, this will be fixed in 3.1 when the GLES2 renderer is
reintroduced..
On Tue, Oct 3, 2017 at 8:20 AM, Konstantin Zaitcev <[email protected]
wrote:
BTW, glDrawArrays are performed for each symbol of rendered text, may be
here can be some points for optimization—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/11797#issuecomment-333812460,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z2478HarooUGzj7JEPUMjbVxPGA1Lks5sohhigaJpZM4PrpSe
.
We use Sony Xperia E5 and IPhone 6, for both devices UI performance is slow, I will remove style boxes and test again
Do we know for sure it's due to pixel shaders? Wouldn't an atlas and batching improve the situation regardless?
It's not nearly an amount of calls that would slow someting down to 10fps and, as I mentioned before, this works fine in Godot 2 which uses a lot more calls to render this stuff.
I think it's probably pixel performance. For styleboxes, godot does some computations in the fragment shader that are probably not nice in mobile, where all texture reads are expected to go via prefetch in most chipsets.
Kicking this to 3.1, as it will be fixed in the upcoming GLES2 backend
This may have been fixed in the GLES2 backend due to batching, and GLES3 backend will be gone after 3.1. Can anyone test on GLES2?
@reduz Last batching attempt was reverted from GLES2 backend.
How is the performance with the GLES2 backend? It's still not batched, but it might perform better than GLES3 nevertheless.
No answer, and in my tests UI performance on Android GLES2 seems good, so closing.
Most helpful comment
I don't think that's the problem, Godot 2 uses the same approach (and in
fact it uses a lot more draw calls) and it's not slow.
If you are using a lot of styleboxes, I think the problem may have to do
with how the fragment shaders work in 3.0, which is not that
friendly to low end mobile devices.
Most likely, this will be fixed in 3.1 when the GLES2 renderer is
reintroduced..
On Tue, Oct 3, 2017 at 8:20 AM, Konstantin Zaitcev <[email protected]