繁体   English   中英

OpenGL ES 2.0:可以安全地假设混合在移动设备上相对便宜吗?

[英]OpenGL ES 2.0: Safe to assume that Blending is relatively cheap on Mobile Devices?

到处都是,我读到了Blending的一个重要表现,直到我发现一条评论,由于它们的架构,它在iOS设备上并不那么昂贵。

现在,美妙的超级控制的Apple世界与Android有点不同,但是我做了一些测试,看起来我的Blending只是性能的一半,而不是从RGB555切换到RGBA8888(在我试过的两个设备上) )。

问题:

  • 有没有经验法则,虽然Android设备的硬件差异很大,但是“屏幕分辨率的GPU计算能力”不会低于某个阈值?

  • 这样的规则是否也适用于混合?

  • 某些基础测试设备列表是否是某些系统市场分析的结果? 以下形式:如果它在这些设备上运行,它会在任何合理的设备上运行吗?

  • 您是否使用混合,以及它为您的客户带来了什么样的体验?

我看到使用混合的替代方案,所以我很想知道要投资什么或者是否应该避免,嗯,未知。

我怀疑是否有任何经验法则,在Apple世界,明天他们可能会决定转向其他架构并且你所有的假设都被搞砸了。 对于Android,有太多的供应商和架构来决定哪个混合阈值对每个阈值都有好处。 唯一的经验法则是在您真正需要时使用混合。 所以你的问题的答案是:假设混合在移动设备上相对便宜是不安全的。 混合需要从内存中读取,并且移动设备上的内存很慢。

我做了一些我认为我会分享的额外研究。 如果你欣赏我的调查,那么让我知道(upvote?),我可能会分享更多,因为我了解更多。

由于只有1.8%的Android设备运行API 8 / 2.2 / Froyo之前的版本,因此98.2%的Android设备支持OpenGL ES 2.0(尽管2.2 API存在一些缺陷)。

我找到了以下品牌的最高/最大/最新信息,这些芯片支持GLES20(给定最大时钟频率):

  • Adreno 200(每秒2200万个三角形,每秒1.33亿个像素)
  • Mali-200(16 mtps,275 mpps)
  • PowerVR SGX520(7 mtps,100 mpps)
  • Tegra APX 2500(40 mtps,400或600 mpps,具体取决于来源)

我今天能找到的最便宜的Android设备使用了

  • MARVELL PXA910 800MHz(10或20 mtps,200 mpps)

如果不需要绘制一半的三角形(通过剔除),那么每秒2000万个三角形似乎是理论上的最大值。

我发现Marvell区分两个峰值有点可疑; 也许我应该对我在营销幻灯片和论坛上发现的Tegra数据持怀疑态度。 此外,我有一个配备PowerVR SGX530(14 mtps,200 mpps)的设备,它使我的测试应用程序至少与我的Tegra 2 T20设备(71 mtps,1200 mpps)相同的速度800x480屏幕,我尝试在1024x600 。

我有两个与Tegra 2 T20相同的设备,而运行Android 3的设备比运行Android 2的设备更快地运行我的测试应用程序。但两者都运行非官方的Android版本。 我认为这可能导致GPU利用率不理想,但CPU负载显示为非常低。 也许SurfaceView的开销会超出一定的帧速率 - 但PowerVR设备也运行Android 2。

到目前为止,这与alpha混合没什么关系(除了我在Nvidia芯片上读到的那些隐含在片段着色器中完成的内容),但我觉得值得记录起点。 但请继续关注更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM