Opengl es glGetShaderInfoLog返回一个";编译失败。”;在PowerVR SGX 544MP(Galaxy S4)上

Opengl es glGetShaderInfoLog返回一个";编译失败。”;在PowerVR SGX 544MP(Galaxy S4)上,opengl-es,Opengl Es,我的问题: 片段着色器通过APIglGetShaderInfoLog获取“编译失败” 一旦我删除fwsum=fsum\u r+0.1,片段着色器可以工作 此问题仅在PowerVR SGX 544MP(三星Galaxy S4)上再次出现 你有比“编译错误”更多的信息吗?@Mr\u Pouet:glGetShaderiv(dwShader,GL\u INFO\u LOG\u LENGTH,(GLint*)和lInfoLen);glGetShaderInfoLog(dwShader、lInfoLen、

我的问题:

  • 片段着色器通过API
    glGetShaderInfoLog
    获取“编译失败”
  • 一旦我删除
    fwsum=fsum\u r+0.1,片段着色器可以工作
  • 此问题仅在PowerVR SGX 544MP(三星Galaxy S4)上再次出现

  • 你有比“编译错误”更多的信息吗?@Mr\u Pouet:glGetShaderiv(dwShader,GL\u INFO\u LOG\u LENGTH,(GLint*)和lInfoLen);glGetShaderInfoLog(dwShader、lInfoLen、TNull、pszInfo);获取lInfoLen=17和pszInfo=Compile失败。是否确实未编译着色器?您是否检查了glGetShaderiv(…GL\u编译\u状态…)?我还遇到了这样一种情况:GL_INFO_LOG_LENGTH返回了一些垃圾,而着色器实际上已经编译并工作了。@Dave。glGetShaderiv(dwShader、GLU编译状态、(GLint*)和bCompiled)。b compiled=False。
    /* fragment shader */
    void main(void)
    {
        highp vec3 color;
        highp float tx;
        highp float ty;
        highp vec3 sptr_k;
        highp float fsum_r;
        highp float fwsum;
        highp float value;
        highp float w;
        highp float stepvalue = 1.0;
        int i = 1;
        highp float fstep = 2.0;
        tx = 1.0 / 720.0;
        ty = 1.0 / 720.0;
        fstep = fstep * tx;
        color.r = texture2D(sampler2DBase, v_baseTexCoord).r;
        fsum_r = 0.0;
        fwsum = 0.0;
        sptr_k.r = color.r;
        fwsum = fsum_r + 0.1; // if deleting it works.
        fwsum = 1.0 / fwsum;
        color.r = clamp(fsum_r * fwsum, 0.0, 1.0);
        color.g = color.r;
        color.b = color.r;
        gl_FragColor = vec4(color.rgb, 1.0);
    }