# A compilation error occurred in glCompileShader()

**URL:** <https://forums.imgtec.com/t/a-compilation-error-occurred-in-glcompileshader/1012>\
**Category:** PowerVR Insider\
**Created:** [February 22, 2011, 11:10am UTC](https://forums.imgtec.com/t/a-compilation-error-occurred-in-glcompileshader/1012 "2011-02-22T11:10:29Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![pencyot3](https://avatars.discourse-cdn.com/v4/letter/p/b3f665/32.png) [@pencyot3](https://forums.imgtec.com/u/pencyot3)\
**Post date:** [February 22, 2011, 11:10am UTC](https://forums.imgtec.com/t/a-compilation-error-occurred-in-glcompileshader/1012/1 "2011-02-22T11:10:29Z")

</div>

A compilation error occurred when I compiled the fragment-shader source code which was shown below in glCompileShader().  
The error message provided by glGetShaderInfoLog() was only ‘Compile failed.’.  
By the driver of some other GPU, this source code was compiled without a problem, and the program worked normally.  
  
  
\* Execution Environment  
&nbsp; Model name: Galaxy S  
&nbsp; Model number: SC-02B  
&nbsp; Firmware version: 2.2  
&nbsp; Baseband version: SC02BOMJJ1  
&nbsp; Kernel version: 2.6.32.9  
&nbsp; Build number: FROYO.OMJJ1  
  
\* OpenGL Context  
&nbsp; GL\_VERSION: OpenGL ES 2.0  
&nbsp; GL\_VENDOR: Imagination Technologies  
&nbsp; GL\_RENDERER: PowerVR SGX 540  
  
\* Android LogCat Message  
&nbsp; loaded /system/lib/egl/libEGL\_POWERVR\_SGX540\_120.so  
&nbsp; loaded /system/lib/egl/libGLESv1\_CM\_POWERVR\_SGX540\_120.so  
&nbsp; loaded /system/lib/egl/libGLESv2\_POWERVR\_SGX540\_120.so  
  
  
//

* * *
FRAGMENT SHADER SOURCE CODE
* * *
  
  
#pragma optimize( on )  
#if defined( GL\_FRAGMENT\_PRECISION\_HIGH )  
precision highp&nbsp;&nbsp; float;  
#else  
precision mediump float;  
#endif  
precision mediump int;  
vec4 lrp\_QCj4hDAd( vec4 src0, vec4 src1, vec4 src2 ) {  
&nbsp;&nbsp; return src0 \* (src1 - src2) + src2;  
}  
  
vec4 nrm\_QCj4hDAd( vec4 src ) {  
&nbsp;&nbsp; return src \* inversesqrt( dot( src.xyz, src.xyz ) );  
}  
  
vec4 cmp\_QCj4hDAd( vec4 src0, vec4 src1, vec4 src2 ) {  
&nbsp;&nbsp; return vec4( src0.x \>= 0.0 ? src1.x : src2.x,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src0.y \>= 0.0 ? src1.y : src2.y,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src0.z \>= 0.0 ? src1.z : src2.z,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src0.w \>= 0.0 ? src1.w : src2.w );  
}  
  
uniform vec3 rmu\_ambient\_lit\_col;  
uniform vec3 rmu\_color\_specular;  
uniform vec3 rmu\_dir\_lit\_0\_col;  
uniform vec3 rmu\_dir\_lit\_0\_pos;  
uniform vec3 rmu\_dir\_lit\_1\_col;  
uniform vec3 rmu\_dir\_lit\_1\_pos;  
uniform vec3 rmu\_dir\_lit\_2\_col;  
uniform vec3 rmu\_dir\_lit\_2\_pos;  
uniform vec4 rmu\_fog\_color;  
uniform float rmu\_fog\_p1;  
uniform vec2 rmu\_fog\_range;  
uniform float rmu\_map\_amt\_reflection;  
uniform mat3 rmu\_mat33\_mapcoord\_1;  
uniform float rmu\_mtl\_compo\_phexp;  
uniform sampler2D rmu\_tex2d\_map\_0;  
uniform sampler2D rmu\_tex2d\_map\_1;  
uniform samplerCube rmu\_texcube\_map\_2;  
varying vec2 rmv\_vec2\_mapcoord\_0;  
varying vec3 rmv\_view\_N;  
varying vec3 rmv\_view\_P;  
  
void main() {  
vec4 r0\_QCj4hDAd;  
vec4 r1\_QCj4hDAd;  
vec4 r2\_QCj4hDAd;  
vec4 r3\_QCj4hDAd;  
vec4 r4\_QCj4hDAd;  
vec4 r5\_QCj4hDAd;  
vec4 c19\_QCj4hDAd = vec4( 1, 0, 0, 0 );  
  
r0\_QCj4hDAd.x = (vec4( dot( rmv\_view\_P, rmv\_view\_P ) )).x;  
r0\_QCj4hDAd.x = (vec4( inversesqrt( r0\_QCj4hDAd.x ) )).x;  
r1\_QCj4hDAd.xyz = (vec4( rmv\_view\_P, rmv\_view\_P.z )).xyz;  
r0\_QCj4hDAd.yzw = (r1\_QCj4hDAd.xxyz \* -r0\_QCj4hDAd.xxxx + vec4( rmu\_dir\_lit\_1\_pos.xxy, rmu\_dir\_lit\_1\_pos.z )).yzw;  
r2\_QCj4hDAd.xyz = (nrm\_QCj4hDAd( r0\_QCj4hDAd.yzww )).xyz;  
r3\_QCj4hDAd.xyz = (nrm\_QCj4hDAd( vec4( rmv\_view\_N, rmv\_view\_N.z ) )).xyz;  
r0\_QCj4hDAd.y = (vec4( dot( r3\_QCj4hDAd.xyz, r2\_QCj4hDAd.xyz ) )).y;  
r1\_QCj4hDAd.w = (vec4( pow( abs( r0\_QCj4hDAd.y ), rmu\_mtl\_compo\_phexp ) )).w;  
r0\_QCj4hDAd.y = (cmp\_QCj4hDAd( -r0\_QCj4hDAd.yyyy, c19\_QCj4hDAd.yyyy, r1\_QCj4hDAd.wwww )).y;  
r0\_QCj4hDAd.yzw = (r0\_QCj4hDAd.yyyy \* vec4( rmu\_dir\_lit\_1\_col.xxy, rmu\_dir\_lit\_1\_col.z )).yzw;  
r2\_QCj4hDAd.xyz = (r1\_QCj4hDAd \* -r0\_QCj4hDAd.xxxx + vec4( rmu\_dir\_lit\_0\_pos, rmu\_dir\_lit\_0\_pos.z )).xyz;  
r4\_QCj4hDAd.xyz = (nrm\_QCj4hDAd( r2\_QCj4hDAd )).xyz;  
r1\_QCj4hDAd.w = (vec4( dot( r3\_QCj4hDAd.xyz, r4\_QCj4hDAd.xyz ) )).w;  
r2\_QCj4hDAd.x = (vec4( pow( abs( r1\_QCj4hDAd.w ), rmu\_mtl\_compo\_phexp ) )).x;  
r1\_QCj4hDAd.w = (cmp\_QCj4hDAd( -r1\_QCj4hDAd.wwww, c19\_QCj4hDAd.yyyy, r2\_QCj4hDAd.xxxx )).w;  
r0\_QCj4hDAd.yzw = (vec4( rmu\_dir\_lit\_0\_col.xxy, rmu\_dir\_lit\_0\_col.z ) \* r1\_QCj4hDAd.wwww + r0\_QCj4hDAd).yzw;  
r1\_QCj4hDAd.xyw = (r1\_QCj4hDAd.xyzz \* -r0\_QCj4hDAd.xxxx + vec4( rmu\_dir\_lit\_2\_pos, rmu\_dir\_lit\_2\_pos.z )).xyw;  
r2\_QCj4hDAd.xyz = (r0\_QCj4hDAd.xxxx \* vec4( rmv\_view\_P, rmv\_view\_P.z )).xyz;  
r4\_QCj4hDAd.xyz = (nrm\_QCj4hDAd( r1\_QCj4hDAd.xyww )).xyz;  
r0\_QCj4hDAd.x = (vec4( dot( r3\_QCj4hDAd.xyz, r4\_QCj4hDAd.xyz ) )).x;  
r1\_QCj4hDAd.x = (vec4( pow( abs( r0\_QCj4hDAd.x ), rmu\_mtl\_compo\_phexp ) )).x;  
r0\_QCj4hDAd.x = (cmp\_QCj4hDAd( -r0\_QCj4hDAd.xxxx, c19\_QCj4hDAd.yyyy, r1\_QCj4hDAd.xxxx )).x;  
r0\_QCj4hDAd.xyz = (vec4( rmu\_dir\_lit\_2\_col, rmu\_dir\_lit\_2\_col.z ) \* r0\_QCj4hDAd.xxxx + r0\_QCj4hDAd.yzww).xyz;  
r0\_QCj4hDAd.w = (clamp( vec4( dot( r3\_QCj4hDAd.xyz, rmu\_dir\_lit\_1\_pos ) ), 0.0, 1.0 )).w;  
r1\_QCj4hDAd.xyw = (r0\_QCj4hDAd.wwww \* vec4( rmu\_dir\_lit\_1\_col, rmu\_dir\_lit\_1\_col.z )).xyw;  
r0\_QCj4hDAd.w = (clamp( vec4( dot( r3\_QCj4hDAd.xyz, rmu\_dir\_lit\_0\_pos ) ), 0.0, 1.0 )).w;  
r1\_QCj4hDAd.xyw = (vec4( rmu\_dir\_lit\_0\_col, rmu\_dir\_lit\_0\_col.z ) \* r0\_QCj4hDAd.wwww + r1\_QCj4hDAd).xyw;  
r0\_QCj4hDAd.w = (clamp( vec4( dot( r3\_QCj4hDAd.xyz, rmu\_dir\_lit\_2\_pos ) ), 0.0, 1.0 )).w;  
r1\_QCj4hDAd.xyw = (vec4( rmu\_dir\_lit\_2\_col, rmu\_dir\_lit\_2\_col.z ) \* r0\_QCj4hDAd.wwww + r1\_QCj4hDAd).xyw;  
r4\_QCj4hDAd = texture2D( rmu\_tex2d\_map\_1, rmv\_vec2\_mapcoord\_0 );  
r0\_QCj4hDAd.w = (-r4\_QCj4hDAd.xxxx + c19\_QCj4hDAd.xxxx).w;  
r5\_QCj4hDAd = texture2D( rmu\_tex2d\_map\_0, rmv\_vec2\_mapcoord\_0 );  
r4\_QCj4hDAd.yzw = (r0\_QCj4hDAd.wwww \* r5\_QCj4hDAd.xxyz).yzw;  
r1\_QCj4hDAd.xyw = (r1\_QCj4hDAd \* r4\_QCj4hDAd.yzzw).xyw;  
r1\_QCj4hDAd.xyw = (r4\_QCj4hDAd.yzzw \* vec4( rmu\_ambient\_lit\_col, rmu\_ambient\_lit\_col.z ) + r1\_QCj4hDAd).xyw;  
r1\_QCj4hDAd.xyw = (r4\_QCj4hDAd.xxxx \* r5\_QCj4hDAd.xyzz + r1\_QCj4hDAd).xyw;  
r0\_QCj4hDAd.xyz = (vec4( rmu\_color\_specular, rmu\_color\_specular.z ) \* r0\_QCj4hDAd + r1\_QCj4hDAd.xyww).xyz;  
r0\_QCj4hDAd.w = (vec4( dot( r2\_QCj4hDAd.xyz, r3\_QCj4hDAd.xyz ) )).w;  
r0\_QCj4hDAd.w = (r0\_QCj4hDAd.wwww + r0\_QCj4hDAd.wwww).w;  
r1\_QCj4hDAd.xyw = (r3\_QCj4hDAd.xyzz \* -r0\_QCj4hDAd.wwww + r2\_QCj4hDAd.xyzz).xyw;  
r2\_QCj4hDAd.xyz = (r1\_QCj4hDAd.yyyy \* vec4( rmu\_mat33\_mapcoord\_1[1], rmu\_mat33\_mapcoord\_1[1].z )).xyz;  
r2\_QCj4hDAd.xyz = (vec4( rmu\_mat33\_mapcoord\_1[0], rmu\_mat33\_mapcoord\_1[0].z ) \* r1\_QCj4hDAd.xxxx + r2\_QCj4hDAd).xyz;  
r1\_QCj4hDAd.xyw = (vec4( rmu\_mat33\_mapcoord\_1[2], rmu\_mat33\_mapcoord\_1[2].z ) \* r1\_QCj4hDAd.wwww + r2\_QCj4hDAd.xyzz).xyw;  
r2\_QCj4hDAd = textureCube( rmu\_texcube\_map\_2, r1\_QCj4hDAd.xyw );  
r0\_QCj4hDAd.xyz = (r2\_QCj4hDAd \* vec4( rmu\_map\_amt\_reflection ) + r0\_QCj4hDAd).xyz;  
r1\_QCj4hDAd.x = (clamp( vec4( rmu\_fog\_range.y ) \* -r1\_QCj4hDAd.zzzz + vec4( rmu\_fog\_range.x ), 0.0, 1.0 )).x;  
r1\_QCj4hDAd.x = (r1\_QCj4hDAd.xxxx \* vec4( rmu\_fog\_p1 )).x;  
r1\_QCj4hDAd.x = (vec4( exp2( r1\_QCj4hDAd.x ) )).x;  
r1\_QCj4hDAd.x = (-r1\_QCj4hDAd.xxxx + c19\_QCj4hDAd.xxxx).x;  
r0\_QCj4hDAd.w = (c19\_QCj4hDAd.xxxx).w;  
gl\_FragColor = lrp\_QCj4hDAd( r1\_QCj4hDAd.xxxx, rmu\_fog\_color, r0\_QCj4hDAd );  
}

---

<div class="post-metadata">

**Author:** ![pencyot3](https://avatars.discourse-cdn.com/v4/letter/p/b3f665/32.png) [@pencyot3](https://forums.imgtec.com/u/pencyot3)\
**Post date:** [March 17, 2011, 7:29am UTC](https://forums.imgtec.com/t/a-compilation-error-occurred-in-glcompileshader/1012/2 "2011-03-17T07:29:17Z")

</div>

```
A compilation error occurred in the following source code in the same way.

//
* * *
FRAGMENT SHADER SOURCE CODE
* * *

precision highpfloat;

uniform sampler2D Tx;
varying vec3 Pt;

voidmain(){
vec3 v01=Pt.x\*Pt;
vec3 v02=2.0\*v01;
floatf03=dot(v01,vec3(1));
floatf05=(f03\<0.0)?0.0:-f03;
vec3 v06=2.0\*Pt;
floatf07=dot(v06,v01);
floatf08=f07+f05;
floatf09=dot(v02,v02);
floatf10=f08+f09;
vec3 v11=f10\*v01;
vec4 v12=texture2D(Tx,Pt.xy);
vec3 v13=v11+v06;
vec3 v14=v12.xyz+v13;
gl_FragColor=vec4(v14,-Pt.x);
}  
  

The following link has the source code of test application.
  
 [http://dl.dropbox.com/u/23346852/ticket-531/Test531-source.zip](http://dl.dropbox.com/u/23346852/ticket-531/Test531-source.zip)  

The following file is built application package.
  
 [http://dl.dropbox.com/u/23346852/ticket-531/Test531.apk](http://dl.dropbox.com/u/23346852/ticket-531/Test531.apk)  
  
The following image is expected rendering result.

  ![](http://dl.dropbox.com/u/23346852/ticket-531/capture-003sh.png)  

The following image is rendering result in Galaxy S (PowerVR SGX 540).

 ![](http://dl.dropbox.com/u/23346852/ticket-531/capture-galaxy-s.png)

It is information of Galaxy S which executed application as follows.

  Model number: SC-02B
  Firmware version: 2.2.1
  Baseband version: SC02BOMKA5
  Kernel version: 2.6.32.9
  Build number: FROYO.OMKA5
```

---

<div class="post-metadata">

**Author:** ![pencyot3](https://avatars.discourse-cdn.com/v4/letter/p/b3f665/32.png) [@pencyot3](https://forums.imgtec.com/u/pencyot3)\
**Post date:** [July 7, 2011, 7:02am UTC](https://forums.imgtec.com/t/a-compilation-error-occurred-in-glcompileshader/1012/3 "2011-07-07T07:02:46Z")

</div>

The problem was improved when I updated the version of the Android from 2.2 to 2.3. ![Clap]()

---

<div class="post-metadata">

**Author:** ![JoeDavis](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.imgtec.com/joedavis/32/71_2.png) [@JoeDavis](https://forums.imgtec.com/u/JoeDavis)\
**Post date:** [July 12, 2011, 9:28am UTC](https://forums.imgtec.com/t/a-compilation-error-occurred-in-glcompileshader/1012/4 "2011-07-12T09:28:15Z")

</div>

Hi,  
  
  
  
  
  
When you say the problem was improved (as you also did with [another topic](https://www.imgtec.com/forum/forum_posts.asp?TID=1218&PID=4591#4591)), do you mean the issue has gone away completely, or you are now having other issues?

---

<div class="post-metadata">

**Author:** ![pencyot3](https://avatars.discourse-cdn.com/v4/letter/p/b3f665/32.png) [@pencyot3](https://forums.imgtec.com/u/pencyot3)\
**Post date:** [July 12, 2011, 11:55pm UTC](https://forums.imgtec.com/t/a-compilation-error-occurred-in-glcompileshader/1012/5 "2011-07-12T23:55:56Z")

</div>

Hi,  
  
I’m sorry for my poor English.  
  
It was the meaning that the issue was completely solved.  
It was a meaning same about another topic.

---

<div class="post-metadata">

**Author:** ![JoeDavis](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.imgtec.com/joedavis/32/71_2.png) [@JoeDavis](https://forums.imgtec.com/u/JoeDavis)\
**Post date:** [July 14, 2011, 9:18am UTC](https://forums.imgtec.com/t/a-compilation-error-occurred-in-glcompileshader/1012/6 "2011-07-14T09:18:53Z")

</div>

Ah, ok. No problem. Glad to hear they’re resolved now 🙂
