0

在所有地方,我都读到 Blending 对性能的影响是多么严重,直到我看到一条评论说,由于它们的架构,它在 iOS 设备上并没有那么昂贵。

现在,Apple 的超级控制世界与 Android 有点不同,但我已经做了一些测试,看起来我的 Blending 对性能的影响只有从 RGB555 切换到 RGBA8888 的一半(在我尝试过的两台设备上) )。

问题:

  • 是否有任何经验法则表明,虽然 Android 设备的硬件可能存在很大差异,但它们的“按屏幕分辨率计算的 GPU 计算能力”不会低于某个阈值?

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

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

  • 您是否使用混合,它给您的客户带来什么体验?

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

4

2 回答 2

1

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

于 2013-04-13T07:43:05.827 回答
1

我做了一些我认为我会分享的额外研究。如果您感谢我的调查,请告诉我(点赞?),我可能会在了解更多信息时分享更多信息。

只有 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)的设备,它至少以与我在 1024x600 下尝试的 Tegra 2 T20 设备(71 mtps,1200 mpps)相同的速度渲染我的 800x480 屏幕的测试应用程序.

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

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

于 2013-04-17T08:50:54.953 回答