Is there a way to programmatically learn features about the Android GPU?

I searched the web, including developer.android.com . I read this post: how to request device information for an Android device . I know System.getProperties ().

My question is: is there a way to programmatically detect specific GPU information on a specific Android device? Is it possible to at least get the make and model of the GPU on the device?

Or, do I need to use the MANUFACTURER and MODEL fields of the Build class to output the GPU that is used on this device?

My goals regarding this issue are to find a way to identify graphics processing capabilities for the devices that my applications run on, so that I can adjust the graphics processing requirements for my applications accordingly.

Thank you, Chris

+5
source share
2 answers

You can use glGetString()with GL_VENDORto determine the name of the GPU provider and GL_RENDERERto determine the name of the GPU.

Check out the documentation

+4
source

Try this: I put the rendering and provider information in mutable variables in my GLSurfaceView.Renderer read in the GUI thread:

public volatile static String vendor, renderer;

@Override
public void onSurfaceCreated(GL10 glUnused, EGLConfig config) 
{
    vendor = GLES20.glGetString(GLES20.GL_VENDOR);
    renderer = GLES20.glGetString(GLES20.GL_RENDERER);
0
source

All Articles