我正在开发一款应用程序,可将相机预览直接渲染到我创建的自定义GlSurfaceView。 对于在常规基础上使用OpenGL的人来说,这是非常基本的。
我遇到的问题是某些设备上的fps很低,而且我提供了一个解决方案 - 选择在运行时应用哪个着色器。现在,我不想加载OpenGl程序,测量fps,而是将程序更改为更轻的着色器,因为它会产生明显的滞后。
我想要做的是在链接GL程序之前以某种方式确定GPU强度(在我创建openGL上下文之后)。
经过几个小时的调查后,我几乎明白它不会很容易 - 主要是因为渲染时间取决于隐藏的开发元素,例如 - 设备gpu内存,openGL管道,可能会针对不同的设备实现不同。 / p>
正如我所看到的,我只有1或2个选项,在屏幕外渲染纹理并测量其渲染时间 - 如果它需要更长的16毫秒(Romain Guy从this帖子推荐的fps时间)我将使用更轻的着色器。
或 - 检查操作系统版本和可用内存(尽管它确实不准确)。
我真的希望有一个更优雅和准确的解决方案。