Android Open GL片段着色器速度

时间:2014-05-19 20:20:18

标签: android opengl-es

我有一个片段着色器,可以计算在Nexus 7上运行的RGB浮点值。

如果我使用gl_FragColor = vec4(c1,c2,c3,1.0);运行此着色器 - 其中c1,c2和c3是计算的三种颜色 - 我得到大约26 fps。

如果我保持其他所有内容相同 - 所有计算都保持不变 - 只需更改为gl_FragColor = vec4(c1,1.0,1.0,1.0);我就可以获得60 fps。

我是否应该期望分配这些浮动值需要这么长时间?或者我错过了什么?

2 个答案:

答案 0 :(得分:2)

如果你不在其他任何地方使用c2c3,那么当你从gl_FragColor删除它们时,编译器会认为它不值得计算它们完全没有,所以它会优化计算。

我们需要了解如何计算c2c3变量以确定问题。

答案 1 :(得分:0)

垂直同步可能是您的问题

最可能的原因是显卡设置中的v-sync (在本例中为移动设备/平板电脑)。

将其关闭并看到它飙升。但我想这是不可能的。您还可以测量渲染帧所需的时间,并确定它实际上比1/60秒短得多。因此逻辑代码需要大量时间。