[英]Additive blending artefacts with OpenGL ES 2.0 on some Android devices
[英]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(给定最大时钟频率):
我今天能找到的最便宜的Android设备使用了
如果不需要绘制一半的三角形(通过剔除),那么每秒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.