1
\$\begingroup\$

I have app for Android with OpenGL. It uses GPU-heavy effects and on "slow" GPUs this leads to low FPS. Is there a way, how to detect "slow" GPU during app start and disable those effects and generate low-poly geometry? By "slow" I mean GPUs based on their frequncy, VRAM and info like this. Lower values mean slower GPU. It is quite "easy" way, but it should be enough.

I cannot do it in runtime based on frame time, because it would require reload of geometry, shaders etc. and it would be inconvinient for user.

\$\endgroup\$
4
  • 1
    \$\begingroup\$ Why not just A) let the user choose the settings he wants to keep (some users prefer high-res textures and compromise on view distance, but some prefer a high view distance and compromise on texture sizes) or B) detect a low fps and act based on that? \$\endgroup\$ Commented Nov 20, 2017 at 12:08
  • \$\begingroup\$ A) is not an option - this is app for common users, not a game; B) detect low FPS is an option, but I would like to avoid this, because of need to reload all and again - not so user friendly to wait. Users are tollerant to wait during load, but not wait again after some time. On iOS I detect older device and load low-res geometry and shaders, it works OK. But on Android I dont know how and I cannot write the list of all device \$\endgroup\$ Commented Nov 20, 2017 at 12:38
  • \$\begingroup\$ You can still do this by running a short - 1 second or so - animation during startup. It need not use the *exact" same data that you use during runtime, but it should be representative enough. Depending on performance of that, you can then make the appropriate judgement call when it comes to loading your main data set. \$\endgroup\$ Commented Nov 20, 2017 at 17:17
  • \$\begingroup\$ I mean, you could still have a checkbox in settings for "use fancy effects" even though it isn't a game. This also gives control to users who don't like the effects but have high-quality phones. \$\endgroup\$ Commented Nov 20, 2017 at 22:47

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.