[英]iOS GL ES 2 app crashes on device but not on simulator
我有一个带有多个渲染目标/帧缓冲区的应用程序,并且在一次调用glDrawElements的过程中,该应用程序在设备(iPad iOS 5.0)上崩溃,但在模拟器中没有崩溃。 这是一个着色器非常密集的应用程序,具有十二种不同的着色器和数千个顶点缓冲区。
进一步调试问题使我相信崩溃是由于特定的着色器而发生的,但是着色器是有效的,正在写入的帧缓冲区对象也是如此。
好的,因此在花费大量时间进行调试之后,我发现我的景深着色器导致崩溃,尤其是此功能:
float GetNearFalloff( float Depth, float MinDist, float MaxDist)
{
float Range = MaxDist - MinDist;
if (Depth < MinDist)
return 1.0;
/*else*/if (Depth > MaxDist)
return 0.0;
float Blur = 1.0 - ( (Depth - MinDist) / Range );
return Blur;
}
基本上,评论的其他地方导致了我的崩溃。 删除所有内容即可。 我实际上把它放回去(我想可能是别的东西),只是看到在几次着色器重新编译后,使用相同的修复程序出现了相同的崩溃,删除了else 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.