If you’re developing a graphics-intensive application and you’re not satisfied with the performance, read on for what to do to improve it.
The first step to do when analyzing performance is to check whether your application is CPU or GPU bound. You can use Graphics Performance Analyzers (GPA) to do that.
GPA is a tool for graphics analysis and optimization of Microsoft DirectX* applications and Android* OpenGL ES* applications. You can find more about it here: https://software.intel.com/en-us/articles/gpa-which-version.
You can also find a simple intro here: https://software.intel.com/content/www/us/en/develop/articles/using-the-intel-gpa-system-analyzer-to-improve-android-apps.html
For purposes of Android optimization I prefer GPA console client. You can read about it here: https://software.intel.com/en-us/android/articles/using-intel-graphics-performance-analyzers-console-client-for-android-application
How to determine it?
Check FPS metric. While chacking it go to “state overright” and disable “draw calls”. If you do collect FPS with disable “draw calls” it means that only CPU part is working. So, you have to analyze the difference in FPS befor and after the disabling. For more deep analysis please use GPA Frame Debugger.
So, how do you optimize an app that is GPU bound?
Check out the following tips to see if one will help you:
The next two pictures demonstrate this idea:
Stanislav Pavlov works in the Software & Service Group at Intel Corporation. He has 10+ years of experience in technologies. His main interest is optimization of performance, power consumption, and parallel programming. In his current role as a Senior Application Engineer providing technical support for Intel®-based devices, Stanislav works closely with software developers and SoC architects to help them achieve the best possible performance on Intel® platforms. Stanislav holds a Master's degree in Mathematical Economics from the National Research University Higher School of Economics. He is currently pursuing an MBA in the Moscow Business School.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804