在Android上以编程方式获取GPU信息,无需使用GLSurfaceView

eh57zj3b  于 2023-02-27  发布在  Android
关注(0)|答案(1)|浏览(536)

我需要在我的Android SDK中以编程方式获取GPU信息(包括供应商、渲染器、版本、可用扩展等)。到目前为止,我知道这些方法。
1.运行dumpsys | grep GLES command(不起作用,因为dumpsys是系统级命令,仅适用于某些系统应用程序或ADB shell)
1.创建一个GLSurfaceView,附加一个GLSurfaceView.Renderer,并在其回调中获取GPU信息(工作正常,但我想知道是否有一种方法可以在不创建GLSurfaceView的情况下实现这一点,因为我不想在SDK中修改主机应用的视图层次结构)

q3aa0525

q3aa05251#

看一看Grafika项目。
其中有GLESInfoActivity,它演示了如何获取您要查找的信息。
函数gatherGlInfo()包含您需要的代码,它声明:
我们需要一个GL上下文来检查,这意味着我们需要一个EGL表面。创建一个1x1pbuffer。
EGLSurface是从GLES20类获取信息(OpenGLES信息)所必需的。如果您只需要EGL14类的信息(EGL信息),则不需要此表面。但是,鉴于您的问题,您将需要GLES20类的信息,因此需要EGLSurface
在您的情况下,复制此方法并使用屏幕外表面就足够了,这样就不需要使用GLSurfaceView
您还需要gles软件包中的一些代码来设置和配置EGL

  • EglCore
  • EglSurface基底
  • 屏幕外表面

相关问题