The issue is that probably you've received an Android firmware update, which has worse shader compiler.

The codes are correct, but your device fails to compile them.

The best solution would be to contact your device manufacturer, and let them know that the device fails to compile the shader.

Code:

`#ifndef GL_ES`

#define GL_ES

#endif

//GLSL

#extension GL_ARB_shader_texture_lod:enable

#extension GL_EXT_shader_texture_lod:enable

#ifdef GL_ES

precision lowp float;

precision lowp int;

#define texture2DLod texture2DLodEXT

#endif

#define do_clamp 1

#define half 0

#ifdef GL_ES

#define HP highp

#define MP mediump

#define LP lowp

#else

#define HP

#define MP

#define LP

#endif

#define PAR uniform

#define VAR varying

#define EPS 0.0001

#define EPSL 0.01

#define PI 3.14159265

#define PI2 6.28318531

#define SBUMP_ZERO 0

#define SBUMP_FLAT 1

#define SBUMP_NORMAL 2

#define FX_NONE 0

#define FX_GRASS 1

#define FX_LEAF 2

#define FX_LEAFS 3

#define FX_BONE 4

#define Sat(x) clamp(x,0.0,1.0)

MP float Sum(MP vec2 v){return v.x+v.y;}

MP float Sum(MP vec3 v){return v.x+v.y+v.z;}

MP float Sum(MP vec4 v){return v.x+v.y+v.z+v.w;}

MP float Sqr(MP float x){return x*x;}

MP vec2 Sqr(MP vec2 x){return x*x;}

MP float Cube(MP float x){return x*x*x;}

HP float Length2(HP vec2 v){return dot(v,v);}

HP float Length2(HP vec3 v){return dot(v,v);}

HP float Length2(HP vec4 v){return dot(v,v);}

MP vec2 Rotate(MP vec2 vec,MP vec2 cos_sin)

{

return vec2(vec.x*cos_sin.x-vec.y*cos_sin.y,

vec.x*cos_sin.y+vec.y*cos_sin.x);

}

MP float LerpR(MP float from,MP float to,MP float v){return(v-from)/(to-from);}

MP float LerpRS(MP float from,MP float to,MP float v){return Sat((v-from)/(to-from));}

PAR LP float BloomScale,BloomCut;

#if half!=0

VAR HP vec2 IO_tex;

#else

VAR HP vec2 IO_tex0,IO_tex1,IO_tex2,IO_tex3;

VAR LP float scale;

#endif

#define AlphaTest(alpha) if(alpha+MaterialColor().a<1.0)discard

PAR sampler2D Col,Col1,Col2,Col3,

Nrm,Nrm1,Nrm2,Nrm3,

Lum;

PAR samplerCube Rfl;

PAR MP float AllowBackFlip;

#define BackFlip(dir) {if(!gl_FrontFacing)dir*=AllowBackFlip;}

struct ViewportClass

{

HP float from,range;

HP vec2 clamp_min,clamp_max,center,size,size_fov_tan;

HP vec4 FracToPosXY,ScreenToPosXY,PosToScreen;

};

PAR ViewportClass Viewport;

#define ViewportClamp(screen,do_clamp) ((do_clamp!=0) ?clamp(screen,Viewport.clamp_min,Viewport.clamp_max) :screen)

PAR LP vec4 Color[4];

void main()

{

#if half!=0

gl_FragColor.rgb=Sat(texture2D(Col,ViewportClamp(IO_tex,do_clamp)).rgb*BloomScale-BloomCut);

#else

gl_FragColor.rgb=Sat((texture2D(Col,ViewportClamp(IO_tex0,do_clamp)).rgb

+texture2D(Col,ViewportClamp(IO_tex1,do_clamp)).rgb

+texture2D(Col,ViewportClamp(IO_tex2,do_clamp)).rgb

+texture2D(Col,ViewportClamp(IO_tex3,do_clamp)).rgb)*scale-BloomCut);

#endif

gl_FragColor.a=0.0;

}