godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.85k stars 20.15k forks source link

Use Android OpenGL capabilities to improve 3D performance to bring above 2 fps #4204

Closed vsrinu26f closed 5 years ago

vsrinu26f commented 8 years ago

Operating system or device: android

Issue description (what happened, and what was expected): This issue be a place holder for what ever needed to improve 3d frame rate from 1 or 2 frames to some decent frame rate.

Steps to reproduce:

Link to minimal example project (optional but very welcome):

Ace-Dragon commented 8 years ago

Do you have anything right now that you have found to serve as a major bottleneck in terms of 3D Android performance (such as animation, shaders, and the like)?

Otherwise, this doesn't appear to me at least as really useful (my opinion), since we don't know what in Godot would lower the FPS all the way to the single digits if you're making a 3D game (so people would end up making guesses rather than actually proposing a solution)?

vsrinu26f commented 8 years ago

I believe we are using a baseline version of OpenGL capabilities when it comes to android. I am not sure we are fully using GL hardware cpabilities available in android devices. See godot sample 3d fps test. I ran 3d fps test on my android and it is laggy compared to even complex game like asphalt8 plays very very good.

Or Show me one godot 3D example (non isometric and better an open world) which has frame rate above 4 fps on android.

cart commented 8 years ago

As a non-scientific benchmark, I am rendering 4 animated 3D characters with ~1600 faces, 51 bones each, and a 1024x1024 texture, as well as scenery with about 1000 faces at about 50 fps on my LG G2. This is pretty much the performance I would expect from my hardware.

vsrinu26f commented 8 years ago

Thank you for the reply. I am impressed by the FPS. I wish I will eventually find a 3D example on github that works on my phone at good FPS. I will not dare a 3d app using godot yet though.

If your app is published please point me to it.

bdero commented 8 years ago

I started working on a small mobile project a little while ago, and I felt that the performance was up to par on my Samsung Galaxy S4. https://github.com/bdero/fizzalot-gd In my case, there are lower poly models, but there are particles and most of the post-processing effects are in use.

avril-gh commented 8 years ago

i noticed my game on PC runs at over 200 FPS, but on android it runs only at around 14 FPS. Ofcourse, android is not a PC, but the difference is kinda big so there might be something goin on. (android device is hexacore 1.5GHz, mali 450 700MHz, game is 3D)

I dont know yet if theres some bottleneck, or maybe its my fault. While i will progress with the game, perhaps some answers will come out (will have to, because i will try to optimise and find out how to speed it up if possible) and i will be able to tell more.

Calinou commented 8 years ago

Performance on both PC and mobile will be improved with Godot 3.0.

It is known that Godot's 3D (and even 2D) renderer is slow, this seems to be for two reasons:

Both of those can be improved by using OpenGL ES 3.0 (or even just optimizing the OpenGL ES 2.0 renderer, but maybe it isn't worth it, the new renderer will be here next year).

avril-gh commented 8 years ago

btw, I think it could be kinda early to move to GLES 3.0 since, according to google play store statistics, its supported by only around 40% of devices on the market.

reference link (play store market share statistics for android version, screen size, GLES version) https://developer.android.com/about/dashboards/index.html#OpenGL

volzhs commented 8 years ago

GLES 2.0 will be remained and GLES 3.0 will be added.

Listwon commented 8 years ago

@avril-gh Also Mali 450 doesn't support GLES higher than 2.0, so moving to GLES 3.0 won't help in your case http://www.arm.com/products/multimedia/mali-gpu/ultra-low-power/mali-450.php I tried to build Godot on Odroid C2 today (S905 ARM-64bit, Mali 450) and the renderer runs awfully slow, but I bear in mind, that it isn't only the Godot's fault (Odroid C2 was released in march and full hardware support is still WIP).

avril-gh commented 8 years ago

yes, what i meant is currently according to play store statistics more than half devices does not support anything higher than GLES 2, so it would be good to concentrate on improving androids GLES2 performance, rather than moving to GLES3 too soon which could drasticaly limit godot's audiency to around 40% of devices only, Godot aim is to spread as much as possible and not limiting self.

volzhs commented 8 years ago

And there are some people ask to implement vulkan already.

akien-mga commented 5 years ago

This issue has outlived its purpose, closing.