我遇到另一个OpenGL ES驱动程序错误。这次,我尝试编译以下行:
precision mediump float;
varying highp vec2 textureCoordinate;
void main() {
highp vec4 color = texture2D(input0, textureCoordinate);
vec3 color3 = color.rgb;
vec2 tc = (2.0 * textureCoordinate) - 1.0;
float d = dot(tc, tc);
vec2 lookup = vec2(d, color3.r);
..
..
}
但我正在排队:
GLES20.glLinkProgram(program);
本机崩溃:“致命信号11(SIGDEV)位于0x00000060(代码= 1),线程1231”,我猜测是因为LG nexus 4使用GPU Adreno,在不同的崩溃下它也崩溃了,错误代码为14 -使用过多的宏。
编译着色器后,使用glGetShaderiv
获取着色器编译的状态。喜欢:
GLint compiled;
glGetShaderiv(index, GL_COMPILE_STATUS, &compiled); //index is the shader value
然后,如果已编译返回零,则首先获取信息长度,然后获取错误消息,如下所示:
GLint infoLen = 0;
glGetShaderiv(index, GL_INFO_LOG_LENGTH, &infoLen);
if(infoLen > 1)
{
char* infoLog = new char(infoLen);
glGetShaderInfoLog(index, infoLen, NULL, infoLog);
}
infoLog
最后检查以查看从着色器编译返回的错误消息。您原始帖子中的细分错误消息并没有提供解决问题的任何有用信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句