这有点奇怪,但我注意到在glAlphaFuncx中花费了高达40%的渲染时间.我知道alpha测试非常昂贵,但有趣的是我不使用它:)没有单一的代码使用alpha测试,我也不会以任何其他方式调用此函数.
我还检查了GL层,以便混合其他可能导致这种情况发生的东西,但它就是它.
所以,如果有人知道什么可能导致glAlphaFuncx出现在CPU采样器的性能轨迹上,我会很高兴听到它:)
更新:修复了截图链接:http://twitpic.com/2afxho/full
更新2:导致glAlpaFuncx调用的函数包含一行:
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
Run Code Online (Sandbox Code Playgroud)
更新3:我尝试在此函数中设置断点,但似乎根本没有调用它.我猜这个探测器搞砸了......
奇怪的是,这个函数出现在探查器跟踪上,正如您所说,您没有使用它。尝试在 glAlphaFuncx 中设置断点以查看它是从哪里调用的。
但无论如何,这不应该是一个问题,glAlphaFunc 只会在 GL 服务器端设置一个状态,它不会(或应该)做更多的处理。这不应该是性能问题,也许是 GL 实现或探查器中的错误。
可以肯定的是,您可以使用 glDisable(GL_ALPHA_TEST) 禁用 alpha 测试。
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |