求助 shader在安卓上报错 PC上正常

自己扩展了一个shader效果 版本3.8 lua
就是能够做一个任意位置的圆形透明 在PC上表现正常 上了安卓以后报错 可能报在任何地方 最多是在CCTexture2D的initWithMipmaps

Vsh:
ifdef GL_ES
precision mediump float;
endif

attribute vec4 a_position;
attribute vec2 a_texCoord;
attribute vec4 a_color;

varying vec4 v_fragmentColor;
varying vec2 v_texCoord;

void main()
{
gl_Position = CC_PMatrix * a_position;
v_fragmentColor = a_color;
v_texCoord = a_texCoord;
}

fsh:
ifdef GL_ES
precision mediump float;
endif

varying vec4 v_fragmentColor;
varying vec2 v_texCoord;

uniform vec2 my_higpos;
uniform vec2 my_bgsize;
uniform float my_higrad;

const float range = 0.3;
vec4 memoryRender(vec4 texColor)
{
texColor.r = 0.0;
texColor.g = 0.0;
texColor.b = 0.0;

float realx = v_texCoord.x * my_bgsize[0];
float realy = v_texCoord.y * my_bgsize[1];

vec2 despos;
    despos.x = realx;
    despos.y = realy;

float lenth = distance(despos,my_higpos);
if(lenth <= my_higrad)
{
	if(lenth >= my_higrad * range && lenth <= my_higrad)
	{
		texColor.a = 0.7 * (lenth - my_higrad * range) / (my_higrad * (1.0 - range));
	}
	else
	{
		texColor.a = 0.0;	
	}
}
else
{
	texColor.a = 0.7;
}

return texColor;

}

void main(void)
{
vec4 texColor = texture2D(CC_Texture0, v_texCoord);
texColor = memoryRender(texColor);
gl_FragColor = texColor;
}

lua创建代码
local CenterPos = self.tower.bgBtn:getParent():convertToWorldSpace(cc.p(self.tower.bgBtn:getPosition()))
local CenterSize = self.tower.bgBtn:getContentSize()
CenterPos.y = display.height - CenterPos.y
local baselayer = self.widget:getChildByName(“baselayer”)

local TestBg = cc.Sprite:create("Bg/loginScene.png")
TestBg:setPosition(cc.p(1366 / 2,768 / 2))
baselayer:addChild(TestBg)

local gl_Program = cc.GLProgram:create("shader/shader_SpriteMisty.vsh","shader/shader_SpriteMisty.fsh")
gl_Program:bindAttribLocation(cc.ATTRIBUTE_NAME_POSITION,cc.VERTEX_ATTRIB_POSITION)
gl_Program:bindAttribLocation(cc.ATTRIBUTE_NAME_COLOR,cc.VERTEX_ATTRIB_COLOR)
gl_Program:bindAttribLocation(cc.ATTRIBUTE_NAME_TEX_COORD,cc.VERTEX_ATTRIB_FLAG_TEX_COORDS)
gl_Program:link()
gl_Program:updateUniforms()

local RLenth = math.sqrt( math.pow(CenterSize.width / 2,2) + math.pow(CenterSize.height / 2,2))
gl_ProgramState = cc.GLProgramState:getOrCreateWithGLProgram(gl_Program)
gl_ProgramState:setUniformFloat("my_higrad",RLenth)
gl_ProgramState:setUniformVec2("my_higpos",CenterPos)
gl_ProgramState:setUniformVec2("my_bgsize",cc.p(display.width,display.height))

TestBg:setGLProgramState(gl_ProgramState)

安卓logcat报错
16:12:02.322: D/cocos2d-x debug info(7672): OpenGL error 0x0502 in D:\svn\sg_cocos2\frameworks\runtime-src\proj.android…/…/cocos2d-x/cocos//./renderer/CCTexture2D.cpp initWithMipmaps 647
16:12:02.604: W/Adreno-ES20(7672): <core_glGetUniformLocation:2070>: GL_INVALID_OPERATION