我发现一些特殊的GLSL书写风格会使iPhone 6 Plus在没有任何日志的情况下崩溃。GLSL代码使iPhone 6 Plus上的应用崩溃
例如,如果您编写下面的GLSL代码,它会在glLinkProgram中崩溃。
float testFun(float co) {
return co;
}
float a = testFun(0.1);
void main()
{
// your code here
}
但是,如果您将“a”的定义移动到函数中,那么它将正常工作。
这不会发生在iPhone5或5s。
你可以通过复制下载示例项目这个bug在
http://www.raywenderlich.com/3664/opengl-tutorial-for-ios-opengl-es-2-0
然后用
varying lowp vec4 DestinationColor;
varying lowp vec2 TexCoordOut; // New
uniform sampler2D Texture; // New
precision highp float;
float testFun(float co) {
return co;
}
float a = testFun(0.1);
void main()
{
gl_FragColor = vec4(0.7, 0.5, 0.3, 1.0);
}
取代SimpleFragment.glsl并在您的iPhone 6 Plus上运行它。它会立即崩溃。
你的问题是什么?这看起来更像是一个错误报告。这可能应该去苹果公司。 – 2014-12-05 02:06:41
非常感谢。已经向Apple报告 – chenxiao07 2014-12-19 06:00:07