RobertBeckebans / RBDOOM-3-BFG

Doom 3 BFG Edition source port with updated DX12 / Vulkan renderer and modern game engine features
https://www.moddb.com/mods/rbdoom-3-bfg
GNU General Public License v3.0
1.45k stars 253 forks source link

White screen on startup #297

Closed hAh0L13 closed 4 years ago

hAh0L13 commented 8 years ago

Hello.

Cannot play the game, because window is full white but sound is work. I hear menu and can start something, but can't play - only white screen.

Use Fedora 23 x64, OpenGL version string: 3.0 Mesa 11.1.0 (git-525f3c2) on Intel Graphics. Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz 4 Gb RAM OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.1.0 (git-525f3c2)

qconsole.txt

hAh0L13 commented 8 years ago

Ok, i've git clone and make new binary file. With it, i can see menus and can start game - but when video intro has ended, i only see black screen with health bar, aim point and armor bar

New log: qconsole_2.txt

RobertBeckebans commented 8 years ago

It rails to compile to the screen space ambient occlusion and screen space radiosity shaders. Try to run the game by setting r_useSSAO 0 in the console.

2016-03-03 7:15 GMT+01:00 hAh0L13 notifications@github.com:

Ok, i've git clone and make new binary file. With it, i can see menus and can start game - but when video intro has ended, i only see black screen with health bar, aim point and armor bar

New log: qconsole_2.txt https://github.com/RobertBeckebans/RBDOOM-3-BFG/files/156233/qconsole_2.txt

— Reply to this email directly or view it on GitHub https://github.com/RobertBeckebans/RBDOOM-3-BFG/issues/297#issuecomment-191598232 .

hAh0L13 commented 8 years ago

Ok, with ./RBDoom3BFG +set r_useSSAO 0 it works fine. Thanks.

How i can set this option permanently? Modify D3BFGConfig.cfg and make read-only?

RobertBeckebans commented 8 years ago

It should be automatically saved if you type it into the ingame console. Otherwise try +seta r_useSSAO 0

2016-03-03 11:01 GMT+01:00 hAh0L13 notifications@github.com:

Ok, with ./RBDoom3BFG +set r_useSSAO 0 it works fine. Thanks.

How i can set this option permanently? Modify D3BFGConfig.cfg and make read-only?

— Reply to this email directly or view it on GitHub https://github.com/RobertBeckebans/RBDOOM-3-BFG/issues/297#issuecomment-191690162 .

rxonda commented 8 years ago

Setting SSAO works, but now, when I try to move the mouse, the character views faces floor and cant controll the view. I can move the character but it is just faces the floor. Using Fedora 23 and Intel driver, compile it with CLang. Using SDL 2 and Wayland. Watching the console, it prints this: idUsercmdGenLocal::MouseMove: Ignoring ridiculous mouse delta.

Do you think it has something with libinput?

mikerosile commented 8 years ago

I'm in the same situation, using Fedora 23 with open source ATI Radeon drivers. The "r_useSSAO 0" command works for me as well, but when I execute it from the game's console, the game slowly fades in from complete black to fully visible and takes about 15-20 seconds. Changing applications (Alt+Tab, for example) while the game runs in the background causes the screen to go black again (again, with the exception of the HUD) and the fade in process starts over.

I tried +seta r_useSSAO 0, from the command line, but that doesn't seem to work.

gllmhyt commented 8 years ago

RBDoom3BFG +set r_useSSAO 0 not working for me, still getting a blank screen.

QA Timing INIT: 000857ms
RBDOOM 3 BFG 1.0.3.1401 linux-x86_86 Aug  3 2016 21:22:08
found interface lo - loopback
found interface wlp2s0 - 192.168.1.13/255.255.255.0
no 'base' directory in exe path /usr/bin, skipping
no 'base' directory in cwd path /home/postblue, skipping
WARNING: using hardcoded default base path /usr/share/games/doom3bfg
------ Initializing File System ------
Loaded resource file _common.resources
Loaded resource file _ordered.resources
Loaded resource file _sound_pc.resources
Loaded resource file _sound_pc_en.resources
Loaded resource file maps/admin.resources
Loaded resource file maps/alphalabs1.resources
Loaded resource file maps/alphalabs2.resources
Loaded resource file maps/alphalabs3.resources
Loaded resource file maps/alphalabs4.resources
Loaded resource file maps/caverns1.resources
Loaded resource file maps/caverns2.resources
Loaded resource file maps/comm1.resources
Loaded resource file maps/commoutside.resources
Loaded resource file maps/cpu.resources
Loaded resource file maps/cpuboss.resources
Loaded resource file maps/d3ctf1.resources
Loaded resource file maps/d3ctf2.resources
Loaded resource file maps/d3ctf3.resources
Loaded resource file maps/d3ctf4.resources
Loaded resource file maps/d3dm1.resources
Loaded resource file maps/d3dm2.resources
Loaded resource file maps/d3dm3.resources
Loaded resource file maps/d3dm4.resources
Loaded resource file maps/d3dm5.resources
Loaded resource file maps/d3xpdm1.resources
Loaded resource file maps/d3xpdm2.resources
Loaded resource file maps/d3xpdm3.resources
Loaded resource file maps/d3xpdm4.resources
Loaded resource file maps/delta1.resources
Loaded resource file maps/delta2a.resources
Loaded resource file maps/delta2b.resources
Loaded resource file maps/delta3.resources
Loaded resource file maps/delta4.resources
Loaded resource file maps/delta5.resources
Loaded resource file maps/deltax.resources
Loaded resource file maps/enpro.resources
Loaded resource file maps/erebus1.resources
Loaded resource file maps/erebus2.resources
Loaded resource file maps/erebus3.resources
Loaded resource file maps/erebus4.resources
Loaded resource file maps/erebus5.resources
Loaded resource file maps/erebus6.resources
Loaded resource file maps/hell.resources
Loaded resource file maps/hell1.resources
Loaded resource file maps/hellhole.resources
Loaded resource file maps/le_enpro1.resources
Loaded resource file maps/le_enpro2.resources
Loaded resource file maps/le_exis1.resources
Loaded resource file maps/le_exis2.resources
Loaded resource file maps/le_hell.resources
Loaded resource file maps/le_hell_post.resources
Loaded resource file maps/le_underground.resources
Loaded resource file maps/le_underground2.resources
Loaded resource file maps/mars_city1.resources
Loaded resource file maps/mars_city2.resources
Loaded resource file maps/mc_underground.resources
Loaded resource file maps/monorail.resources
Loaded resource file maps/phobos1.resources
Loaded resource file maps/phobos2.resources
Loaded resource file maps/phobos3.resources
Loaded resource file maps/phobos4.resources
Loaded resource file maps/recycling1.resources
Loaded resource file maps/recycling2.resources
Loaded resource file maps/site3.resources
Current search path:
/home/postblue/.rbdoom3bfg/base
/usr/share/games/doom3bfg/base
_common.resources
_ordered.resources
_sound_pc.resources
_sound_pc_en.resources
maps/admin.resources
maps/alphalabs1.resources
maps/alphalabs2.resources
maps/alphalabs3.resources
maps/alphalabs4.resources
maps/caverns1.resources
maps/caverns2.resources
maps/comm1.resources
maps/commoutside.resources
maps/cpu.resources
maps/cpuboss.resources
maps/d3ctf1.resources
maps/d3ctf2.resources
maps/d3ctf3.resources
maps/d3ctf4.resources
maps/d3dm1.resources
maps/d3dm2.resources
maps/d3dm3.resources
maps/d3dm4.resources
maps/d3dm5.resources
maps/d3xpdm1.resources
maps/d3xpdm2.resources
maps/d3xpdm3.resources
maps/d3xpdm4.resources
maps/delta1.resources
maps/delta2a.resources
maps/delta2b.resources
maps/delta3.resources
maps/delta4.resources
maps/delta5.resources
maps/deltax.resources
maps/enpro.resources
maps/erebus1.resources
maps/erebus2.resources
maps/erebus3.resources
maps/erebus4.resources
maps/erebus5.resources
maps/erebus6.resources
maps/hell.resources
maps/hell1.resources
maps/hellhole.resources
maps/le_enpro1.resources
maps/le_enpro2.resources
maps/le_exis1.resources
maps/le_exis2.resources
maps/le_hell.resources
maps/le_hell_post.resources
maps/le_underground.resources
maps/le_underground2.resources
maps/mars_city1.resources
maps/mars_city2.resources
maps/mc_underground.resources
maps/monorail.resources
maps/phobos1.resources
maps/phobos2.resources
maps/phobos3.resources
maps/phobos4.resources
maps/recycling1.resources
maps/recycling2.resources
maps/site3.resources
file system initialized.
--------------------------------------
WARNING: Unable to open resource file maps/_startup.resources
----- Initializing Decls -----
------------------------------
Couldn't open journal files
/proc/cpuinfo CPU processors: 3
/proc/cpuinfo CPU logical cores: 2
execing default.cfg
execing D3BFGConfig.cfg
couldn't exec autoexec.cfg
----- R_InitOpenGL -----
Initializing OpenGL subsystem
Using 8 color bits, 24 depth, 8 stencil display
Using GLEW 1.13.0
Sys_InitInput: Joystick subsystem init
Sys_InitInput: Joystic - Found 0 joysticks
OpenGL Version  : 3.0
OpenGL Vendor   : Intel Open Source Technology Center
OpenGL Renderer : Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2) 
OpenGL GLSL     : 1.3
   maxTextureAnisotropy: 16.000000
...using GL_EXT_texture_lod_bias
X..GL_GREMEDY_string_marker not found
...using GL_EXT_framebuffer_object
...using GL_EXT_framebuffer_blit
----- Initializing Render Shaders -----
While compiling fragment program renderprogs/gui.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: uniform sampler2D samp0;
 36: 
 37: in vec2 vofi_TexCoord0;
 38: in vec4 vofi_TexCoord1;
 39: in vec4 vofi_Color;
 40: 
 41: out vec4 fo_FragColor;
 42: 
 43: void main() {
 44:    vec4 color = ( tex2D ( samp0 , vofi_TexCoord0 ) * vofi_Color ) + vofi_TexCoord1 ;
 45:    fo_FragColor . xyz = color. xyz * color. w ;
 46:    fo_FragColor . w = color. w ;
 47: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/color.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: out vec4 fo_FragColor;
 39: 
 40: void main() {
 41:    fo_FragColor = _fa_[0 /* rpColor */] ;
 42: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/vertex_color.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: 
 37: in vec4 vofi_Color;
 38: 
 39: out vec4 fo_FragColor;
 40: 
 41: void main() {
 42:    fo_FragColor = vofi_Color ;
 43: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/texture.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: uniform sampler2D samp0;
 39: 
 40: in vec2 vofi_TexCoord0;
 41: 
 42: out vec4 fo_FragColor;
 43: 
 44: void main() {
 45:    fo_FragColor = tex2D ( samp0 , vofi_TexCoord0 ) * _fa_[0 /* rpColor */] ;
 46: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/texture_color.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: uniform sampler2D samp0;
 39: 
 40: in vec2 vofi_TexCoord0;
 41: in vec4 vofi_Color;
 42: 
 43: out vec4 fo_FragColor;
 44: 
 45: void main() {
 46:    vec4 color = tex2D ( samp0 , vofi_TexCoord0 ) * vofi_Color ;
 47:    clip ( color. a - _fa_[0 /* rpAlphaTest */] . x ) ;
 48:    fo_FragColor = color ;
 49: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/texture_color_skinned.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: uniform sampler2D samp0;
 39: 
 40: in vec2 vofi_TexCoord0;
 41: in vec4 vofi_Color;
 42: 
 43: out vec4 fo_FragColor;
 44: 
 45: void main() {
 46:    vec4 color = tex2D ( samp0 , vofi_TexCoord0 ) * vofi_Color ;
 47:    clip ( color. a - _fa_[0 /* rpAlphaTest */] . x ) ;
 48:    fo_FragColor = color ;
 49: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/texture_color_texgen.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: vec4 idtex2Dproj (sampler2D samp , vec4 texCoords ) {return tex2Dproj ( samp , texCoords. xyw ) ; }
 36: uniform sampler2D samp0;
 37: 
 38: in vec4 vofi_TexCoord0;
 39: in vec4 vofi_Color;
 40: 
 41: out vec4 fo_FragColor;
 42: 
 43: void main() {
 44:    vec4 texSample = idtex2Dproj ( samp0 , vofi_TexCoord0 ) ;
 45:    fo_FragColor = texSample * vofi_Color ;
 46: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/interaction.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[2];
 37: 
 38: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 39: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 40: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 41: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 42: float dot4 (vec4 a , vec4 b ) {return dot ( a , b ) ; }
 43: float dot4 (vec2 a , vec4 b ) {return dot ( vec4 ( a , 0 , 1 ) , b ) ; }
 44: const vec4 matrixCoCg1YtoRGB1X = vec4( 1.0, -1.0, 0.0, 1.0 );
 45: const vec4 matrixCoCg1YtoRGB1Y = vec4( 0.0, 1.0, -0.50196078, 1.0 );
 46: const vec4 matrixCoCg1YtoRGB1Z = vec4( -1.0, -1.0, 1.00392156, 1.0 );
 47: vec3 ConvertYCoCgToRGB (vec4 YCoCg ) {
 48:    vec3 rgbColor ;
 49:    YCoCg. z = ( YCoCg. z * 31.875 ) + 1.0 ;
 50:    YCoCg. z = 1.0 / YCoCg. z ;
 51:    YCoCg. xy *= YCoCg. z ;
 52:    rgbColor. x = dot4 ( YCoCg , matrixCoCg1YtoRGB1X ) ;
 53:    rgbColor. y = dot4 ( YCoCg , matrixCoCg1YtoRGB1Y ) ;
 54:    rgbColor. z = dot4 ( YCoCg , matrixCoCg1YtoRGB1Z ) ;
 55:    return rgbColor ;
 56: }
 57: vec4 idtex2Dproj (sampler2D samp , vec4 texCoords ) {return tex2Dproj ( samp , texCoords. xyw ) ; }
 58: uniform sampler2D samp0;
 59: uniform sampler2D samp1;
 60: uniform sampler2D samp2;
 61: uniform sampler2D samp3;
 62: uniform sampler2D samp4;
 63: 
 64: in vec4 vofi_TexCoord0;
 65: in vec4 vofi_TexCoord1;
 66: in vec4 vofi_TexCoord2;
 67: in vec4 vofi_TexCoord3;
 68: in vec4 vofi_TexCoord4;
 69: in vec4 vofi_TexCoord5;
 70: in vec4 vofi_TexCoord6;
 71: in vec4 vofi_Color;
 72: 
 73: out vec4 fo_FragColor;
 74: 
 75: void main() {
 76:    vec4 bumpMap = tex2D ( samp0 , vofi_TexCoord1 . xy ) ;
 77:    vec4 lightFalloff = idtex2Dproj ( samp1 , vofi_TexCoord2 ) ;
 78:    vec4 lightProj = idtex2Dproj ( samp2 , vofi_TexCoord3 ) ;
 79:    vec4 YCoCG = tex2D ( samp3 , vofi_TexCoord4 . xy ) ;
 80:    vec4 specMap = tex2D ( samp4 , vofi_TexCoord5 . xy ) ;
 81:    vec3 lightVector = normalize ( vofi_TexCoord0 . xyz ) ;
 82:    vec3 diffuseMap = ConvertYCoCgToRGB ( YCoCG ) ;
 83:    vec3 localNormal ;
 84:    localNormal. xy = bumpMap. wy - 0.5 ;
 85:    localNormal. z = sqrt ( abs ( dot ( localNormal. xy , localNormal. xy ) - 0.25 ) ) ;
 86:    localNormal = normalize ( localNormal ) ;
 87:    float ldotN = dot3 ( localNormal , lightVector ) ;
 88:    float halfLdotN = dot3 ( localNormal , lightVector ) * 0.5 + 0.5 ;
 89:    halfLdotN *= halfLdotN ;
 90:    float lambert = halfLdotN ;
 91:    float specularPower = 10.0 ;
 92:    float hDotN = dot3 ( normalize ( vofi_TexCoord6 . xyz ) , localNormal ) ;
 93:    vec3 specularContribution = vec3 ( pow ( abs ( hDotN ) , specularPower ) ) ;
 94:    vec3 diffuseColor = diffuseMap * _fa_[0 /* rpDiffuseModifier */] . xyz ;
 95:    vec3 specularColor = specMap. xyz * specularContribution * _fa_[1 /* rpSpecularModifier */] . xyz ;
 96:    vec3 lightColor = lightProj. xyz * lightFalloff. xyz ;
 97:    float rim = 1.0 - saturate ( hDotN ) ;
 98:    float rimPower = 16.0 ;
 99:    vec3 rimColor = diffuseColor * lightProj. xyz * lightFalloff. xyz * 1.0 * pow ( rim , rimPower ) * vofi_Color . rgb ;
100:    fo_FragColor . xyz = ( diffuseColor + specularColor ) * lambert * lightColor * vofi_Color . rgb ;
101:    fo_FragColor . w = 1.0 ;
102: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/interactionAmbient.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[2];
 37: 
 38: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 39: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 40: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 41: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 42: float dot4 (vec4 a , vec4 b ) {return dot ( a , b ) ; }
 43: float dot4 (vec2 a , vec4 b ) {return dot ( vec4 ( a , 0 , 1 ) , b ) ; }
 44: const vec4 matrixCoCg1YtoRGB1X = vec4( 1.0, -1.0, 0.0, 1.0 );
 45: const vec4 matrixCoCg1YtoRGB1Y = vec4( 0.0, 1.0, -0.50196078, 1.0 );
 46: const vec4 matrixCoCg1YtoRGB1Z = vec4( -1.0, -1.0, 1.00392156, 1.0 );
 47: vec3 ConvertYCoCgToRGB (vec4 YCoCg ) {
 48:    vec3 rgbColor ;
 49:    YCoCg. z = ( YCoCg. z * 31.875 ) + 1.0 ;
 50:    YCoCg. z = 1.0 / YCoCg. z ;
 51:    YCoCg. xy *= YCoCg. z ;
 52:    rgbColor. x = dot4 ( YCoCg , matrixCoCg1YtoRGB1X ) ;
 53:    rgbColor. y = dot4 ( YCoCg , matrixCoCg1YtoRGB1Y ) ;
 54:    rgbColor. z = dot4 ( YCoCg , matrixCoCg1YtoRGB1Z ) ;
 55:    return rgbColor ;
 56: }
 57: vec4 idtex2Dproj (sampler2D samp , vec4 texCoords ) {return tex2Dproj ( samp , texCoords. xyw ) ; }
 58: uniform sampler2D samp0;
 59: uniform sampler2D samp1;
 60: uniform sampler2D samp2;
 61: uniform sampler2D samp3;
 62: uniform sampler2D samp4;
 63: 
 64: in vec4 vofi_TexCoord1;
 65: in vec4 vofi_TexCoord2;
 66: in vec4 vofi_TexCoord3;
 67: in vec4 vofi_TexCoord4;
 68: in vec4 vofi_TexCoord5;
 69: in vec4 vofi_TexCoord6;
 70: in vec4 vofi_Color;
 71: 
 72: out vec4 fo_FragColor;
 73: 
 74: void main() {
 75:    vec4 bumpMap = tex2D ( samp0 , vofi_TexCoord1 . xy ) ;
 76:    vec4 lightFalloff = idtex2Dproj ( samp1 , vofi_TexCoord2 ) ;
 77:    vec4 lightProj = idtex2Dproj ( samp2 , vofi_TexCoord3 ) ;
 78:    vec4 YCoCG = tex2D ( samp3 , vofi_TexCoord4 . xy ) ;
 79:    vec4 specMap = tex2D ( samp4 , vofi_TexCoord5 . xy ) ;
 80:    vec3 ambientLightVector = vec3 ( 0.5 , 9.5 - 0.385 , 0.8925 ) ;
 81:    vec3 lightVector = normalize ( ambientLightVector ) ;
 82:    vec3 diffuseMap = ConvertYCoCgToRGB ( YCoCG ) ;
 83:    vec3 localNormal ;
 84:    localNormal. xy = bumpMap. wy - 0.5 ;
 85:    localNormal. z = sqrt ( abs ( dot ( localNormal. xy , localNormal. xy ) - 0.25 ) ) ;
 86:    localNormal = normalize ( localNormal ) ;
 87:    float specularPower = 10.0 ;
 88:    float hDotN = dot3 ( normalize ( vofi_TexCoord6 . xyz ) , localNormal ) ;
 89:    vec3 specularContribution = vec3 ( pow ( abs ( hDotN ) , specularPower ) ) ;
 90:    vec3 diffuseColor = diffuseMap * _fa_[0 /* rpDiffuseModifier */] . xyz ;
 91:    vec3 specularColor = specMap. xyz * specularContribution * _fa_[1 /* rpSpecularModifier */] . xyz ;
 92:    vec3 lightColor = lightProj. xyz * lightFalloff. xyz ;
 93:    fo_FragColor . xyz = ( diffuseColor + specularColor ) * lightColor * vofi_Color . xyz ;
 94:    fo_FragColor . w = 1.0 ;
 95: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/interactionAmbient_skinned.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[2];
 37: 
 38: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 39: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 40: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 41: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 42: float dot4 (vec4 a , vec4 b ) {return dot ( a , b ) ; }
 43: float dot4 (vec2 a , vec4 b ) {return dot ( vec4 ( a , 0 , 1 ) , b ) ; }
 44: const vec4 matrixCoCg1YtoRGB1X = vec4( 1.0, -1.0, 0.0, 1.0 );
 45: const vec4 matrixCoCg1YtoRGB1Y = vec4( 0.0, 1.0, -0.50196078, 1.0 );
 46: const vec4 matrixCoCg1YtoRGB1Z = vec4( -1.0, -1.0, 1.00392156, 1.0 );
 47: vec3 ConvertYCoCgToRGB (vec4 YCoCg ) {
 48:    vec3 rgbColor ;
 49:    YCoCg. z = ( YCoCg. z * 31.875 ) + 1.0 ;
 50:    YCoCg. z = 1.0 / YCoCg. z ;
 51:    YCoCg. xy *= YCoCg. z ;
 52:    rgbColor. x = dot4 ( YCoCg , matrixCoCg1YtoRGB1X ) ;
 53:    rgbColor. y = dot4 ( YCoCg , matrixCoCg1YtoRGB1Y ) ;
 54:    rgbColor. z = dot4 ( YCoCg , matrixCoCg1YtoRGB1Z ) ;
 55:    return rgbColor ;
 56: }
 57: vec4 idtex2Dproj (sampler2D samp , vec4 texCoords ) {return tex2Dproj ( samp , texCoords. xyw ) ; }
 58: uniform sampler2D samp0;
 59: uniform sampler2D samp1;
 60: uniform sampler2D samp2;
 61: uniform sampler2D samp3;
 62: uniform sampler2D samp4;
 63: 
 64: in vec4 vofi_TexCoord1;
 65: in vec4 vofi_TexCoord2;
 66: in vec4 vofi_TexCoord3;
 67: in vec4 vofi_TexCoord4;
 68: in vec4 vofi_TexCoord5;
 69: in vec4 vofi_TexCoord6;
 70: in vec4 vofi_Color;
 71: 
 72: out vec4 fo_FragColor;
 73: 
 74: void main() {
 75:    vec4 bumpMap = tex2D ( samp0 , vofi_TexCoord1 . xy ) ;
 76:    vec4 lightFalloff = idtex2Dproj ( samp1 , vofi_TexCoord2 ) ;
 77:    vec4 lightProj = idtex2Dproj ( samp2 , vofi_TexCoord3 ) ;
 78:    vec4 YCoCG = tex2D ( samp3 , vofi_TexCoord4 . xy ) ;
 79:    vec4 specMap = tex2D ( samp4 , vofi_TexCoord5 . xy ) ;
 80:    vec3 ambientLightVector = vec3 ( 0.5 , 9.5 - 0.385 , 0.8925 ) ;
 81:    vec3 lightVector = normalize ( ambientLightVector ) ;
 82:    vec3 diffuseMap = ConvertYCoCgToRGB ( YCoCG ) ;
 83:    vec3 localNormal ;
 84:    localNormal. xy = bumpMap. wy - 0.5 ;
 85:    localNormal. z = sqrt ( abs ( dot ( localNormal. xy , localNormal. xy ) - 0.25 ) ) ;
 86:    localNormal = normalize ( localNormal ) ;
 87:    float specularPower = 10.0 ;
 88:    float hDotN = dot3 ( normalize ( vofi_TexCoord6 . xyz ) , localNormal ) ;
 89:    vec3 specularContribution = vec3 ( pow ( hDotN , specularPower ) ) ;
 90:    vec3 diffuseColor = diffuseMap * _fa_[0 /* rpDiffuseModifier */] . xyz ;
 91:    vec3 specularColor = specMap. xyz * specularContribution * _fa_[1 /* rpSpecularModifier */] . xyz ;
 92:    vec3 lightColor = lightProj. xyz * lightFalloff. xyz ;
 93:    fo_FragColor . xyz = ( diffuseColor + specularColor ) * lightColor * vofi_Color . xyz ;
 94:    fo_FragColor . w = 1.0 ;
 95: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/interactionSM.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[30];
 37: 
 38: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 39: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 40: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 41: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 42: float dot4 (vec4 a , vec4 b ) {return dot ( a , b ) ; }
 43: float dot4 (vec2 a , vec4 b ) {return dot ( vec4 ( a , 0 , 1 ) , b ) ; }
 44: const vec4 matrixCoCg1YtoRGB1X = vec4( 1.0, -1.0, 0.0, 1.0 );
 45: const vec4 matrixCoCg1YtoRGB1Y = vec4( 0.0, 1.0, -0.50196078, 1.0 );
 46: const vec4 matrixCoCg1YtoRGB1Z = vec4( -1.0, -1.0, 1.00392156, 1.0 );
 47: vec3 ConvertYCoCgToRGB (vec4 YCoCg ) {
 48:    vec3 rgbColor ;
 49:    YCoCg. z = ( YCoCg. z * 31.875 ) + 1.0 ;
 50:    YCoCg. z = 1.0 / YCoCg. z ;
 51:    YCoCg. xy *= YCoCg. z ;
 52:    rgbColor. x = dot4 ( YCoCg , matrixCoCg1YtoRGB1X ) ;
 53:    rgbColor. y = dot4 ( YCoCg , matrixCoCg1YtoRGB1Y ) ;
 54:    rgbColor. z = dot4 ( YCoCg , matrixCoCg1YtoRGB1Z ) ;
 55:    return rgbColor ;
 56: }
 57: vec4 idtex2Dproj (sampler2D samp , vec4 texCoords ) {return tex2Dproj ( samp , texCoords. xyw ) ; }
 58: uniform sampler2D samp0;
 59: uniform sampler2D samp1;
 60: uniform sampler2D samp2;
 61: uniform sampler2D samp3;
 62: uniform sampler2D samp4;
 63: uniform sampler2DArrayShadow samp5;
 64: uniform sampler2D samp6;
 65: 
 66: in vec4 vofi_TexCoord0;
 67: in vec4 vofi_TexCoord1;
 68: in vec4 vofi_TexCoord2;
 69: in vec4 vofi_TexCoord3;
 70: in vec4 vofi_TexCoord4;
 71: in vec4 vofi_TexCoord5;
 72: in vec4 vofi_TexCoord6;
 73: in vec4 vofi_TexCoord7;
 74: in vec4 vofi_TexCoord8;
 75: in vec4 vofi_TexCoord9;
 76: in vec4 vofi_Color;
 77: 
 78: out vec4 fo_FragColor;
 79: 
 80: void main() {
 81:    vec4 bumpMap = tex2D ( samp0 , vofi_TexCoord1 . xy ) ;
 82:    vec4 lightFalloff = idtex2Dproj ( samp1 , vofi_TexCoord2 ) ;
 83:    vec4 lightProj = idtex2Dproj ( samp2 , vofi_TexCoord3 ) ;
 84:    vec4 YCoCG = tex2D ( samp3 , vofi_TexCoord4 . xy ) ;
 85:    vec4 specMap = tex2D ( samp4 , vofi_TexCoord5 . xy ) ;
 86:    vec3 lightVector = normalize ( vofi_TexCoord0 . xyz ) ;
 87:    vec3 diffuseMap = ConvertYCoCgToRGB ( YCoCG ) ;
 88:    vec3 localNormal ;
 89:    localNormal. xy = bumpMap. wy - 0.5 ;
 90:    localNormal. z = sqrt ( abs ( dot ( localNormal. xy , localNormal. xy ) - 0.25 ) ) ;
 91:    localNormal = normalize ( localNormal ) ;
 92:    float ldotN = dot3 ( localNormal , lightVector ) ;
 93:    float halfLdotN = dot3 ( localNormal , lightVector ) * 0.5 + 0.5 ;
 94:    halfLdotN *= halfLdotN ;
 95:    float lambert = halfLdotN ;
 96:    float specularPower = 10.0 ;
 97:    float hDotN = dot3 ( normalize ( vofi_TexCoord6 . xyz ) , localNormal ) ;
 98:    vec3 specularContribution = vec3 ( pow ( abs ( hDotN ) , specularPower ) ) ;
 99:    vec3 diffuseColor = diffuseMap * _fa_[1 /* rpDiffuseModifier */] . xyz ;
100:    vec3 specularColor = specMap. xyz * specularContribution * _fa_[2 /* rpSpecularModifier */] . xyz ;
101:    vec3 lightColor = lightProj. xyz * lightFalloff. xyz ;
102:    float rim = 1.0 - saturate ( hDotN ) ;
103:    float rimPower = 16.0 ;
104:    vec3 rimColor = diffuseColor * lightProj. xyz * lightFalloff. xyz * 1.0 * pow ( rim , rimPower ) * vofi_Color . rgb ;
105:    int shadowIndex = 0 ;
106:    vec4 shadowMatrixX = _fa_[/* rpShadowMatrices */ 5 + int ( shadowIndex * 4 + 0 ) ] ;
107:    vec4 shadowMatrixY = _fa_[/* rpShadowMatrices */ 5 + int ( shadowIndex * 4 + 1 ) ] ;
108:    vec4 shadowMatrixZ = _fa_[/* rpShadowMatrices */ 5 + int ( shadowIndex * 4 + 2 ) ] ;
109:    vec4 shadowMatrixW = _fa_[/* rpShadowMatrices */ 5 + int ( shadowIndex * 4 + 3 ) ] ;
110:    vec4 modelPosition = vec4 ( vofi_TexCoord7 . xyz , 1.0 ) ;
111:    vec4 shadowTexcoord ;
112:    shadowTexcoord. x = dot4 ( modelPosition , shadowMatrixX ) ;
113:    shadowTexcoord. y = dot4 ( modelPosition , shadowMatrixY ) ;
114:    shadowTexcoord. z = dot4 ( modelPosition , shadowMatrixZ ) ;
115:    shadowTexcoord. w = dot4 ( modelPosition , shadowMatrixW ) ;
116:    float bias = 0.001 ;
117:    shadowTexcoord. xyz /= shadowTexcoord. w ;
118:    shadowTexcoord. z = shadowTexcoord. z - bias ;
119:    shadowTexcoord. w = float ( shadowIndex ) ;
120:    vec2 poissonDisk [ 12 ] = vec2 [ ] (
121:    vec2 ( 0.6111618 , 0.1050905 ) ,
122:    vec2 ( 0.1088336 , 0.1127091 ) ,
123:    vec2 ( 0.3030421 , - 0.6292974 ) ,
124:    vec2 ( 0.4090526 , 0.6716492 ) ,
125:    vec2 ( - 0.1608387 , - 0.3867823 ) ,
126:    vec2 ( 0.7685862 , - 0.6118501 ) ,
127:    vec2 ( - 0.1935026 , - 0.856501 ) ,
128:    vec2 ( - 0.4028573 , 0.07754025 ) ,
129:    vec2 ( - 0.6411021 , - 0.4748057 ) ,
130:    vec2 ( - 0.1314865 , 0.8404058 ) ,
131:    vec2 ( - 0.7005203 , 0.4596822 ) ,
132:    vec2 ( - 0.9713828 , - 0.06329931 ) ) ;
133:    float shadow = 0.0 ;
134:    float numSamples = 12.0 ;
135:    float stepSize = 1.0 / numSamples ;
136:    vec4 jitterTC = ( gl_FragCoord * _fa_[0 /* rpScreenCorrectionFactor */] ) + _fa_[4 /* rpJitterTexOffset */] ;
137:    vec4 random = tex2D ( samp6 , jitterTC. xy ) * 3.14159265358979323846 ;
138:    vec2 rot ;
139:    rot. x = cos ( random. x ) ;
140:    rot. y = sin ( random. x ) ;
141:    float shadowTexelSize = _fa_[0 /* rpScreenCorrectionFactor */] . z * _fa_[3 /* rpJitterTexScale */] . x ;
142:    for ( int i = 0 ; i < 12 ; i ++ )
143:    {
144:        vec2 jitter = poissonDisk [ i ] ;
145:        vec2 jitterRotated ;
146:        jitterRotated. x = jitter. x * rot. x - jitter. y * rot. y ;
147:        jitterRotated. y = jitter. x * rot. y + jitter. y * rot. x ;
148:        vec4 shadowTexcoordJittered = vec4 ( shadowTexcoord. xy + jitterRotated * shadowTexelSize , shadowTexcoord. z , shadowTexcoord. w ) ;
149:        shadow += texture ( samp5 , shadowTexcoordJittered. xywz ) ;
150:    }
151:    shadow *= stepSize ;
152:    fo_FragColor . xyz = ( diffuseColor + specularColor ) * lambert * lightColor * vofi_Color . rgb * shadow ;
153:    fo_FragColor . w = 1.0 ;
154: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'
0:63(1): error: No precision specified in this scope for type `sampler2DArrayShadow'

While compiling fragment program renderprogs/interactionSM.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[30];
 37: 
 38: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 39: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 40: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 41: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 42: float dot4 (vec4 a , vec4 b ) {return dot ( a , b ) ; }
 43: float dot4 (vec2 a , vec4 b ) {return dot ( vec4 ( a , 0 , 1 ) , b ) ; }
 44: const vec4 matrixCoCg1YtoRGB1X = vec4( 1.0, -1.0, 0.0, 1.0 );
 45: const vec4 matrixCoCg1YtoRGB1Y = vec4( 0.0, 1.0, -0.50196078, 1.0 );
 46: const vec4 matrixCoCg1YtoRGB1Z = vec4( -1.0, -1.0, 1.00392156, 1.0 );
 47: vec3 ConvertYCoCgToRGB (vec4 YCoCg ) {
 48:    vec3 rgbColor ;
 49:    YCoCg. z = ( YCoCg. z * 31.875 ) + 1.0 ;
 50:    YCoCg. z = 1.0 / YCoCg. z ;
 51:    YCoCg. xy *= YCoCg. z ;
 52:    rgbColor. x = dot4 ( YCoCg , matrixCoCg1YtoRGB1X ) ;
 53:    rgbColor. y = dot4 ( YCoCg , matrixCoCg1YtoRGB1Y ) ;
 54:    rgbColor. z = dot4 ( YCoCg , matrixCoCg1YtoRGB1Z ) ;
 55:    return rgbColor ;
 56: }
 57: vec4 idtex2Dproj (sampler2D samp , vec4 texCoords ) {return tex2Dproj ( samp , texCoords. xyw ) ; }
 58: uniform sampler2D samp0;
 59: uniform sampler2D samp1;
 60: uniform sampler2D samp2;
 61: uniform sampler2D samp3;
 62: uniform sampler2D samp4;
 63: uniform sampler2DArrayShadow samp5;
 64: uniform sampler2D samp6;
 65: 
 66: in vec4 vofi_TexCoord0;
 67: in vec4 vofi_TexCoord1;
 68: in vec4 vofi_TexCoord2;
 69: in vec4 vofi_TexCoord3;
 70: in vec4 vofi_TexCoord4;
 71: in vec4 vofi_TexCoord5;
 72: in vec4 vofi_TexCoord6;
 73: in vec4 vofi_TexCoord7;
 74: in vec4 vofi_TexCoord8;
 75: in vec4 vofi_TexCoord9;
 76: in vec4 vofi_Color;
 77: 
 78: out vec4 fo_FragColor;
 79: 
 80: void main() {
 81:    vec4 bumpMap = tex2D ( samp0 , vofi_TexCoord1 . xy ) ;
 82:    vec4 lightFalloff = idtex2Dproj ( samp1 , vofi_TexCoord2 ) ;
 83:    vec4 lightProj = idtex2Dproj ( samp2 , vofi_TexCoord3 ) ;
 84:    vec4 YCoCG = tex2D ( samp3 , vofi_TexCoord4 . xy ) ;
 85:    vec4 specMap = tex2D ( samp4 , vofi_TexCoord5 . xy ) ;
 86:    vec3 lightVector = normalize ( vofi_TexCoord0 . xyz ) ;
 87:    vec3 diffuseMap = ConvertYCoCgToRGB ( YCoCG ) ;
 88:    vec3 localNormal ;
 89:    localNormal. xy = bumpMap. wy - 0.5 ;
 90:    localNormal. z = sqrt ( abs ( dot ( localNormal. xy , localNormal. xy ) - 0.25 ) ) ;
 91:    localNormal = normalize ( localNormal ) ;
 92:    float ldotN = dot3 ( localNormal , lightVector ) ;
 93:    float halfLdotN = dot3 ( localNormal , lightVector ) * 0.5 + 0.5 ;
 94:    halfLdotN *= halfLdotN ;
 95:    float lambert = halfLdotN ;
 96:    float specularPower = 10.0 ;
 97:    float hDotN = dot3 ( normalize ( vofi_TexCoord6 . xyz ) , localNormal ) ;
 98:    vec3 specularContribution = vec3 ( pow ( abs ( hDotN ) , specularPower ) ) ;
 99:    vec3 diffuseColor = diffuseMap * _fa_[1 /* rpDiffuseModifier */] . xyz ;
100:    vec3 specularColor = specMap. xyz * specularContribution * _fa_[2 /* rpSpecularModifier */] . xyz ;
101:    vec3 lightColor = lightProj. xyz * lightFalloff. xyz ;
102:    float rim = 1.0 - saturate ( hDotN ) ;
103:    float rimPower = 16.0 ;
104:    vec3 rimColor = diffuseColor * lightProj. xyz * lightFalloff. xyz * 1.0 * pow ( rim , rimPower ) * vofi_Color . rgb ;
105:    int shadowIndex = 0 ;
106:    vec3 toLightGlobal = normalize ( vofi_TexCoord8 . xyz ) ;
107:    float axis [ 6 ] ;
108:    axis [ 0 ] = - toLightGlobal. x ;
109:    axis [ 1 ] = toLightGlobal. x ;
110:    axis [ 2 ] = - toLightGlobal. y ;
111:    axis [ 3 ] = toLightGlobal. y ;
112:    axis [ 4 ] = - toLightGlobal. z ;
113:    axis [ 5 ] = toLightGlobal. z ;
114:    for ( int i = 0 ; i < 6 ; i ++ )
115:    {
116:        if ( axis [ i ] > axis [ shadowIndex ] )
117:        {
118:            shadowIndex = i ;
119:        }
120:    }
121:    vec4 shadowMatrixX = _fa_[/* rpShadowMatrices */ 5 + int ( shadowIndex * 4 + 0 ) ] ;
122:    vec4 shadowMatrixY = _fa_[/* rpShadowMatrices */ 5 + int ( shadowIndex * 4 + 1 ) ] ;
123:    vec4 shadowMatrixZ = _fa_[/* rpShadowMatrices */ 5 + int ( shadowIndex * 4 + 2 ) ] ;
124:    vec4 shadowMatrixW = _fa_[/* rpShadowMatrices */ 5 + int ( shadowIndex * 4 + 3 ) ] ;
125:    vec4 modelPosition = vec4 ( vofi_TexCoord7 . xyz , 1.0 ) ;
126:    vec4 shadowTexcoord ;
127:    shadowTexcoord. x = dot4 ( modelPosition , shadowMatrixX ) ;
128:    shadowTexcoord. y = dot4 ( modelPosition , shadowMatrixY ) ;
129:    shadowTexcoord. z = dot4 ( modelPosition , shadowMatrixZ ) ;
130:    shadowTexcoord. w = dot4 ( modelPosition , shadowMatrixW ) ;
131:    float bias = 0.001 ;
132:    shadowTexcoord. xyz /= shadowTexcoord. w ;
133:    shadowTexcoord. z = shadowTexcoord. z - bias ;
134:    shadowTexcoord. w = float ( shadowIndex ) ;
135:    vec2 poissonDisk [ 12 ] = vec2 [ ] (
136:    vec2 ( 0.6111618 , 0.1050905 ) ,
137:    vec2 ( 0.1088336 , 0.1127091 ) ,
138:    vec2 ( 0.3030421 , - 0.6292974 ) ,
139:    vec2 ( 0.4090526 , 0.6716492 ) ,
140:    vec2 ( - 0.1608387 , - 0.3867823 ) ,
141:    vec2 ( 0.7685862 , - 0.6118501 ) ,
142:    vec2 ( - 0.1935026 , - 0.856501 ) ,
143:    vec2 ( - 0.4028573 , 0.07754025 ) ,
144:    vec2 ( - 0.6411021 , - 0.4748057 ) ,
145:    vec2 ( - 0.1314865 , 0.8404058 ) ,
146:    vec2 ( - 0.7005203 , 0.4596822 ) ,
147:    vec2 ( - 0.9713828 , - 0.06329931 ) ) ;
148:    float shadow = 0.0 ;
149:    float numSamples = 12.0 ;
150:    float stepSize = 1.0 / numSamples ;
151:    vec4 jitterTC = ( gl_FragCoord * _fa_[0 /* rpScreenCorrectionFactor */] ) + _fa_[4 /* rpJitterTexOffset */] ;
152:    vec4 random = tex2D ( samp6 , jitterTC. xy ) * 3.14159265358979323846 ;
153:    vec2 rot ;
154:    rot. x = cos ( random. x ) ;
155:    rot. y = sin ( random. x ) ;
156:    float shadowTexelSize = _fa_[0 /* rpScreenCorrectionFactor */] . z * _fa_[3 /* rpJitterTexScale */] . x ;
157:    for ( int i = 0 ; i < 12 ; i ++ )
158:    {
159:        vec2 jitter = poissonDisk [ i ] ;
160:        vec2 jitterRotated ;
161:        jitterRotated. x = jitter. x * rot. x - jitter. y * rot. y ;
162:        jitterRotated. y = jitter. x * rot. y + jitter. y * rot. x ;
163:        vec4 shadowTexcoordJittered = vec4 ( shadowTexcoord. xy + jitterRotated * shadowTexelSize , shadowTexcoord. z , shadowTexcoord. w ) ;
164:        shadow += texture ( samp5 , shadowTexcoordJittered. xywz ) ;
165:    }
166:    shadow *= stepSize ;
167:    fo_FragColor . xyz = ( diffuseColor + specularColor ) * lambert * lightColor * vofi_Color . rgb * shadow ;
168:    fo_FragColor . w = 1.0 ;
169: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'
0:63(1): error: No precision specified in this scope for type `sampler2DArrayShadow'

While compiling fragment program renderprogs/interactionSM.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[31];
 37: 
 38: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 39: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 40: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 41: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 42: float dot4 (vec4 a , vec4 b ) {return dot ( a , b ) ; }
 43: float dot4 (vec2 a , vec4 b ) {return dot ( vec4 ( a , 0 , 1 ) , b ) ; }
 44: const vec4 matrixCoCg1YtoRGB1X = vec4( 1.0, -1.0, 0.0, 1.0 );
 45: const vec4 matrixCoCg1YtoRGB1Y = vec4( 0.0, 1.0, -0.50196078, 1.0 );
 46: const vec4 matrixCoCg1YtoRGB1Z = vec4( -1.0, -1.0, 1.00392156, 1.0 );
 47: vec3 ConvertYCoCgToRGB (vec4 YCoCg ) {
 48:    vec3 rgbColor ;
 49:    YCoCg. z = ( YCoCg. z * 31.875 ) + 1.0 ;
 50:    YCoCg. z = 1.0 / YCoCg. z ;
 51:    YCoCg. xy *= YCoCg. z ;
 52:    rgbColor. x = dot4 ( YCoCg , matrixCoCg1YtoRGB1X ) ;
 53:    rgbColor. y = dot4 ( YCoCg , matrixCoCg1YtoRGB1Y ) ;
 54:    rgbColor. z = dot4 ( YCoCg , matrixCoCg1YtoRGB1Z ) ;
 55:    return rgbColor ;
 56: }
 57: vec4 idtex2Dproj (sampler2D samp , vec4 texCoords ) {return tex2Dproj ( samp , texCoords. xyw ) ; }
 58: uniform sampler2D samp0;
 59: uniform sampler2D samp1;
 60: uniform sampler2D samp2;
 61: uniform sampler2D samp3;
 62: uniform sampler2D samp4;
 63: uniform sampler2DArrayShadow samp5;
 64: uniform sampler2D samp6;
 65: 
 66: in vec4 vofi_TexCoord0;
 67: in vec4 vofi_TexCoord1;
 68: in vec4 vofi_TexCoord2;
 69: in vec4 vofi_TexCoord3;
 70: in vec4 vofi_TexCoord4;
 71: in vec4 vofi_TexCoord5;
 72: in vec4 vofi_TexCoord6;
 73: in vec4 vofi_TexCoord7;
 74: in vec4 vofi_TexCoord8;
 75: in vec4 vofi_TexCoord9;
 76: in vec4 vofi_Color;
 77: 
 78: out vec4 fo_FragColor;
 79: 
 80: void main() {
 81:    vec4 bumpMap = tex2D ( samp0 , vofi_TexCoord1 . xy ) ;
 82:    vec4 lightFalloff = idtex2Dproj ( samp1 , vofi_TexCoord2 ) ;
 83:    vec4 lightProj = idtex2Dproj ( samp2 , vofi_TexCoord3 ) ;
 84:    vec4 YCoCG = tex2D ( samp3 , vofi_TexCoord4 . xy ) ;
 85:    vec4 specMap = tex2D ( samp4 , vofi_TexCoord5 . xy ) ;
 86:    vec3 lightVector = normalize ( vofi_TexCoord0 . xyz ) ;
 87:    vec3 diffuseMap = ConvertYCoCgToRGB ( YCoCG ) ;
 88:    vec3 localNormal ;
 89:    localNormal. xy = bumpMap. wy - 0.5 ;
 90:    localNormal. z = sqrt ( abs ( dot ( localNormal. xy , localNormal. xy ) - 0.25 ) ) ;
 91:    localNormal = normalize ( localNormal ) ;
 92:    float ldotN = dot3 ( localNormal , lightVector ) ;
 93:    float halfLdotN = dot3 ( localNormal , lightVector ) * 0.5 + 0.5 ;
 94:    halfLdotN *= halfLdotN ;
 95:    float lambert = halfLdotN ;
 96:    float specularPower = 10.0 ;
 97:    float hDotN = dot3 ( normalize ( vofi_TexCoord6 . xyz ) , localNormal ) ;
 98:    vec3 specularContribution = vec3 ( pow ( abs ( hDotN ) , specularPower ) ) ;
 99:    vec3 diffuseColor = diffuseMap * _fa_[1 /* rpDiffuseModifier */] . xyz ;
100:    vec3 specularColor = specMap. xyz * specularContribution * _fa_[2 /* rpSpecularModifier */] . xyz ;
101:    vec3 lightColor = lightProj. xyz * lightFalloff. xyz ;
102:    float rim = 1.0 - saturate ( hDotN ) ;
103:    float rimPower = 16.0 ;
104:    vec3 rimColor = diffuseColor * lightProj. xyz * lightFalloff. xyz * 1.0 * pow ( rim , rimPower ) * vofi_Color . rgb ;
105:    int shadowIndex = 0 ;
106:    float viewZ = - vofi_TexCoord9 . z ;
107:    shadowIndex = 4 ;
108:    for ( int i = 0 ; i < 4 ; i ++ )
109:    {
110:        if ( viewZ < _fa_[5 /* rpCascadeDistances */] [ i ] )
111:        {
112:            shadowIndex = i ;
113:            break ;
114:        }
115:    }
116:    vec4 shadowMatrixX = _fa_[/* rpShadowMatrices */ 6 + int ( shadowIndex * 4 + 0 ) ] ;
117:    vec4 shadowMatrixY = _fa_[/* rpShadowMatrices */ 6 + int ( shadowIndex * 4 + 1 ) ] ;
118:    vec4 shadowMatrixZ = _fa_[/* rpShadowMatrices */ 6 + int ( shadowIndex * 4 + 2 ) ] ;
119:    vec4 shadowMatrixW = _fa_[/* rpShadowMatrices */ 6 + int ( shadowIndex * 4 + 3 ) ] ;
120:    vec4 modelPosition = vec4 ( vofi_TexCoord7 . xyz , 1.0 ) ;
121:    vec4 shadowTexcoord ;
122:    shadowTexcoord. x = dot4 ( modelPosition , shadowMatrixX ) ;
123:    shadowTexcoord. y = dot4 ( modelPosition , shadowMatrixY ) ;
124:    shadowTexcoord. z = dot4 ( modelPosition , shadowMatrixZ ) ;
125:    shadowTexcoord. w = dot4 ( modelPosition , shadowMatrixW ) ;
126:    float bias = 0.001 ;
127:    shadowTexcoord. xyz /= shadowTexcoord. w ;
128:    shadowTexcoord. z = shadowTexcoord. z - bias ;
129:    shadowTexcoord. w = float ( shadowIndex ) ;
130:    vec2 poissonDisk [ 12 ] = vec2 [ ] (
131:    vec2 ( 0.6111618 , 0.1050905 ) ,
132:    vec2 ( 0.1088336 , 0.1127091 ) ,
133:    vec2 ( 0.3030421 , - 0.6292974 ) ,
134:    vec2 ( 0.4090526 , 0.6716492 ) ,
135:    vec2 ( - 0.1608387 , - 0.3867823 ) ,
136:    vec2 ( 0.7685862 , - 0.6118501 ) ,
137:    vec2 ( - 0.1935026 , - 0.856501 ) ,
138:    vec2 ( - 0.4028573 , 0.07754025 ) ,
139:    vec2 ( - 0.6411021 , - 0.4748057 ) ,
140:    vec2 ( - 0.1314865 , 0.8404058 ) ,
141:    vec2 ( - 0.7005203 , 0.4596822 ) ,
142:    vec2 ( - 0.9713828 , - 0.06329931 ) ) ;
143:    float shadow = 0.0 ;
144:    float numSamples = 12.0 ;
145:    float stepSize = 1.0 / numSamples ;
146:    vec4 jitterTC = ( gl_FragCoord * _fa_[0 /* rpScreenCorrectionFactor */] ) + _fa_[4 /* rpJitterTexOffset */] ;
147:    vec4 random = tex2D ( samp6 , jitterTC. xy ) * 3.14159265358979323846 ;
148:    vec2 rot ;
149:    rot. x = cos ( random. x ) ;
150:    rot. y = sin ( random. x ) ;
151:    float shadowTexelSize = _fa_[0 /* rpScreenCorrectionFactor */] . z * _fa_[3 /* rpJitterTexScale */] . x ;
152:    for ( int i = 0 ; i < 12 ; i ++ )
153:    {
154:        vec2 jitter = poissonDisk [ i ] ;
155:        vec2 jitterRotated ;
156:        jitterRotated. x = jitter. x * rot. x - jitter. y * rot. y ;
157:        jitterRotated. y = jitter. x * rot. y + jitter. y * rot. x ;
158:        vec4 shadowTexcoordJittered = vec4 ( shadowTexcoord. xy + jitterRotated * shadowTexelSize , shadowTexcoord. z , shadowTexcoord. w ) ;
159:        shadow += texture ( samp5 , shadowTexcoordJittered. xywz ) ;
160:    }
161:    shadow *= stepSize ;
162:    fo_FragColor . xyz = ( diffuseColor + specularColor ) * lambert * lightColor * vofi_Color . rgb * shadow ;
163:    fo_FragColor . w = 1.0 ;
164: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'
0:63(1): error: No precision specified in this scope for type `sampler2DArrayShadow'

While compiling fragment program renderprogs/environment.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 36: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 37: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 38: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 39: uniform samplerCube samp0;
 40: 
 41: in vec3 vofi_TexCoord0;
 42: in vec3 vofi_TexCoord1;
 43: in vec4 vofi_Color;
 44: 
 45: out vec4 fo_FragColor;
 46: 
 47: void main() {
 48:    vec3 globalNormal = normalize ( vofi_TexCoord1 ) ;
 49:    vec3 globalEye = normalize ( vofi_TexCoord0 ) ;
 50:    vec3 reflectionVector = vec3 ( dot3 ( globalEye , globalNormal ) ) ;
 51:    reflectionVector *= globalNormal ;
 52:    reflectionVector = ( reflectionVector * 2.0 ) - globalEye ;
 53:    vec4 envMap = texCUBE ( samp0 , reflectionVector ) ;
 54:    fo_FragColor = vec4 ( envMap. xyz , 1.0 ) * vofi_Color ;
 55: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/environment_skinned.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 36: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 37: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 38: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 39: uniform samplerCube samp0;
 40: 
 41: in vec3 vofi_TexCoord0;
 42: in vec3 vofi_TexCoord1;
 43: in vec4 vofi_Color;
 44: 
 45: out vec4 fo_FragColor;
 46: 
 47: void main() {
 48:    vec3 globalNormal = normalize ( vofi_TexCoord1 ) ;
 49:    vec3 globalEye = normalize ( vofi_TexCoord0 ) ;
 50:    vec3 reflectionVector = vec3 ( dot3 ( globalEye , globalNormal ) ) ;
 51:    reflectionVector *= globalNormal ;
 52:    reflectionVector = ( reflectionVector * 2.0 ) - globalEye ;
 53:    vec4 envMap = texCUBE ( samp0 , reflectionVector ) ;
 54:    fo_FragColor = vec4 ( envMap. xyz , 1.0 ) * vofi_Color ;
 55: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/bumpyenvironment.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 36: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 37: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 38: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 39: uniform samplerCube samp0;
 40: uniform sampler2D samp1;
 41: 
 42: in vec2 vofi_TexCoord0;
 43: in vec3 vofi_TexCoord1;
 44: in vec3 vofi_TexCoord2;
 45: in vec3 vofi_TexCoord3;
 46: in vec3 vofi_TexCoord4;
 47: in vec4 vofi_Color;
 48: 
 49: out vec4 fo_FragColor;
 50: 
 51: void main() {
 52:    vec4 bump = tex2D ( samp1 , vofi_TexCoord0 ) * 2.0 - 1.0 ;
 53:    vec3 localNormal ;
 54:    localNormal = vec3 ( bump. wy , 0.0 ) ;
 55:    localNormal. z = sqrt ( 1.0 - dot3 ( localNormal , localNormal ) ) ;
 56:    vec3 globalNormal ;
 57:    globalNormal. x = dot3 ( localNormal , vofi_TexCoord2 ) ;
 58:    globalNormal. y = dot3 ( localNormal , vofi_TexCoord3 ) ;
 59:    globalNormal. z = dot3 ( localNormal , vofi_TexCoord4 ) ;
 60:    vec3 globalEye = normalize ( vofi_TexCoord1 ) ;
 61:    vec3 reflectionVector = globalNormal * dot3 ( globalEye , globalNormal ) ;
 62:    reflectionVector = ( reflectionVector * 2.0 ) - globalEye ;
 63:    vec4 envMap = texCUBE ( samp0 , reflectionVector ) ;
 64:    fo_FragColor = vec4 ( envMap. xyz , 1.0 ) * vofi_Color ;
 65: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/bumpyenvironment_skinned.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: float dot3 (vec3 a , vec3 b ) {return dot ( a , b ) ; }
 36: float dot3 (vec3 a , vec4 b ) {return dot ( a , b. xyz ) ; }
 37: float dot3 (vec4 a , vec3 b ) {return dot ( a. xyz , b ) ; }
 38: float dot3 (vec4 a , vec4 b ) {return dot ( a. xyz , b. xyz ) ; }
 39: uniform samplerCube samp0;
 40: uniform sampler2D samp1;
 41: 
 42: in vec2 vofi_TexCoord0;
 43: in vec3 vofi_TexCoord1;
 44: in vec3 vofi_TexCoord2;
 45: in vec3 vofi_TexCoord3;
 46: in vec3 vofi_TexCoord4;
 47: in vec4 vofi_Color;
 48: 
 49: out vec4 fo_FragColor;
 50: 
 51: void main() {
 52:    vec4 bump = tex2D ( samp1 , vofi_TexCoord0 ) * 2.0 - 1.0 ;
 53:    vec3 localNormal ;
 54:    localNormal = vec3 ( bump. wy , 0.0 ) ;
 55:    localNormal. z = sqrt ( 1.0 - dot3 ( localNormal , localNormal ) ) ;
 56:    vec3 globalNormal ;
 57:    globalNormal. x = dot3 ( localNormal , vofi_TexCoord2 ) ;
 58:    globalNormal. y = dot3 ( localNormal , vofi_TexCoord3 ) ;
 59:    globalNormal. z = dot3 ( localNormal , vofi_TexCoord4 ) ;
 60:    vec3 globalEye = normalize ( vofi_TexCoord1 ) ;
 61:    vec3 reflectionVector = globalNormal * dot3 ( globalEye , globalNormal ) ;
 62:    reflectionVector = ( reflectionVector * 2.0 ) - globalEye ;
 63:    vec4 envMap = texCUBE ( samp0 , reflectionVector ) ;
 64:    fo_FragColor = vec4 ( envMap. xyz , 1.0 ) * vofi_Color ;
 65: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/depth.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: out vec4 fo_FragColor;
 37: 
 38: void main() {
 39:    fo_FragColor = vec4 ( 0.0 , 0.0 , 0.0 , 1.0 ) ;
 40: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/depth_skinned.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: out vec4 fo_FragColor;
 37: 
 38: void main() {
 39:    fo_FragColor = vec4 ( 0.0 , 0.0 , 0.0 , 1.0 ) ;
 40: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/shadow.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: out vec4 fo_FragColor;
 39: 
 40: void main() {
 41:    fo_FragColor = _fa_[0 /* rpColor */] ;
 42: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/shadow_skinned.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: out vec4 fo_FragColor;
 39: 
 40: void main() {
 41:    fo_FragColor = _fa_[0 /* rpColor */] ;
 42: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/shadowDebug.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: out vec4 fo_FragColor;
 39: 
 40: void main() {
 41:    fo_FragColor = _fa_[0 /* rpColor */] ;
 42: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/shadowDebug_skinned.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: out vec4 fo_FragColor;
 39: 
 40: void main() {
 41:    fo_FragColor = _fa_[0 /* rpColor */] ;
 42: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/blendlight.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: vec4 idtex2Dproj (sampler2D samp , vec4 texCoords ) {return tex2Dproj ( samp , texCoords. xyw ) ; }
 39: uniform sampler2D samp0;
 40: uniform sampler2D samp1;
 41: 
 42: in vec4 vofi_TexCoord0;
 43: in vec2 vofi_TexCoord1;
 44: 
 45: out vec4 fo_FragColor;
 46: 
 47: void main() {
 48:    fo_FragColor = idtex2Dproj ( samp0 , vofi_TexCoord0 ) * tex2D ( samp1 , vofi_TexCoord1 ) * _fa_[0 /* rpColor */] ;
 49: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/fog.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: uniform sampler2D samp0;
 39: uniform sampler2D samp1;
 40: 
 41: in vec2 vofi_TexCoord0;
 42: in vec2 vofi_TexCoord1;
 43: 
 44: out vec4 fo_FragColor;
 45: 
 46: void main() {
 47:    fo_FragColor = tex2D ( samp0 , vofi_TexCoord0 ) * tex2D ( samp1 , vofi_TexCoord1 ) * _fa_[0 /* rpColor */] ;
 48: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/fog_skinned.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: uniform sampler2D samp0;
 39: uniform sampler2D samp1;
 40: 
 41: in vec2 vofi_TexCoord0;
 42: in vec2 vofi_TexCoord1;
 43: 
 44: out vec4 fo_FragColor;
 45: 
 46: void main() {
 47:    fo_FragColor = tex2D ( samp0 , vofi_TexCoord0 ) * tex2D ( samp1 , vofi_TexCoord1 ) * _fa_[0 /* rpColor */] ;
 48: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/skybox.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: uniform samplerCube samp0;
 36: 
 37: in vec3 vofi_TexCoord0;
 38: in vec4 vofi_Color;
 39: 
 40: out vec4 fo_FragColor;
 41: 
 42: void main() {
 43:    fo_FragColor = texCUBE ( samp0 , vofi_TexCoord0 ) * vofi_Color ;
 44: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/wobblesky.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: uniform samplerCube samp0;
 36: 
 37: in vec3 vofi_TexCoord0;
 38: in vec4 vofi_Color;
 39: 
 40: out vec4 fo_FragColor;
 41: 
 42: void main() {
 43:    fo_FragColor = texCUBE ( samp0 , vofi_TexCoord0 ) * vofi_Color ;
 44: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/postprocess.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: uniform sampler2D samp0;
 36: 
 37: in vec2 vofi_TexCoord0;
 38: 
 39: out vec4 fo_FragColor;
 40: 
 41: void main() {
 42:    vec2 tCoords = vofi_TexCoord0 ;
 43:    fo_FragColor = tex2D ( samp0 , tCoords ) ;
 44: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/stereoDeGhost.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: out vec4 fo_FragColor;
 39: 
 40: void main() {
 41:    fo_FragColor = _fa_[0 /* rpColor */] ;
 42: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/stereoWarp.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: uniform sampler2D samp0;
 36: 
 37: in vec4 vofi_TexCoord0;
 38: 
 39: out vec4 fo_FragColor;
 40: 
 41: void main() {
 42:    float screenWarp_range = 1.45 ;
 43:    vec2 warpCenter = vec2 ( 0.5 , 0.5 ) ;
 44:    vec2 centeredTexcoord = vofi_TexCoord0 . xy - warpCenter ;
 45:    float radialLength = length ( centeredTexcoord ) ;
 46:    vec2 radialDir = normalize ( centeredTexcoord ) ;
 47:    float range = screenWarp_range ;
 48:    float scaledRadialLength = radialLength * range ;
 49:    float tanScaled = tan ( scaledRadialLength ) ;
 50:    float rescaleValue = tan ( 0.5 * range ) ;
 51:    float rescaled = tanScaled / rescaleValue ;
 52:    vec2 warped = warpCenter + vec2 ( 0.5 , 0.5 ) * radialDir * rescaled ;
 53:    fo_FragColor = tex2D ( samp0 , warped ) ;
 54: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/bink.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: uniform sampler2D samp0;
 39: uniform sampler2D samp1;
 40: uniform sampler2D samp2;
 41: 
 42: in vec2 vofi_TexCoord0;
 43: 
 44: out vec4 fo_FragColor;
 45: 
 46: void main() {
 47:    vec3 crc = vec3 ( 1.595794678 , - 0.813476563 , 0 ) ;
 48:    vec3 crb = vec3 ( 0 , - 0.391448975 , 2.017822266 ) ;
 49:    vec3 adj = vec3 ( - 0.87065506 , 0.529705048 , - 1.081668854 ) ;
 50:    vec3 YScalar = vec3 ( 1.164123535 , 1.164123535 , 1.164123535 ) ;
 51:    float Y = tex2D ( samp0 , vofi_TexCoord0 . xy ). x ;
 52:    float Cr = tex2D ( samp1 , vofi_TexCoord0 . xy ). x ;
 53:    float Cb = tex2D ( samp2 , vofi_TexCoord0 . xy ). x ;
 54:    vec3 p = ( YScalar * Y ) ;
 55:    p += ( crc * Cr ) + ( crb * Cb ) + adj ;
 56:    fo_FragColor . xyz = p ;
 57:    fo_FragColor . w = 1.0 ;
 58:    fo_FragColor *= _fa_[0 /* rpColor */] ;
 59: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/bink_gui.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: uniform sampler2D samp0;
 36: uniform sampler2D samp1;
 37: uniform sampler2D samp2;
 38: 
 39: in vec2 vofi_TexCoord0;
 40: in vec4 vofi_TexCoord1;
 41: in vec4 vofi_Color;
 42: 
 43: out vec4 fo_FragColor;
 44: 
 45: void main() {
 46:    vec3 crc = vec3 ( 1.595794678 , - 0.813476563 , 0 ) ;
 47:    vec3 crb = vec3 ( 0 , - 0.391448975 , 2.017822266 ) ;
 48:    vec3 adj = vec3 ( - 0.87065506 , 0.529705048 , - 1.081668854 ) ;
 49:    vec3 YScalar = vec3 ( 1.164123535 , 1.164123535 , 1.164123535 ) ;
 50:    float Y = tex2D ( samp0 , vofi_TexCoord0 . xy ). x ;
 51:    float Cr = tex2D ( samp1 , vofi_TexCoord0 . xy ). x ;
 52:    float Cb = tex2D ( samp2 , vofi_TexCoord0 . xy ). x ;
 53:    vec3 p = ( YScalar * Y ) ;
 54:    p += ( crc * Cr ) + ( crb * Cb ) + adj ;
 55:    vec4 binkImage ;
 56:    binkImage. xyz = p ;
 57:    binkImage. w = 1.0 ;
 58:    vec4 color = ( binkImage * vofi_Color ) + vofi_TexCoord1 ;
 59:    fo_FragColor . xyz = color. xyz * color. w ;
 60:    fo_FragColor . w = color. w ;
 61: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/stereoInterlace.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: uniform sampler2D samp0;
 36: uniform sampler2D samp1;
 37: 
 38: in vec2 vofi_TexCoord0;
 39: 
 40: out vec4 fo_FragColor;
 41: 
 42: void main() {
 43:    if ( fract ( gl_FragCoord . y * 0.5 ) < 0.5 ) {
 44:        fo_FragColor = tex2D ( samp0 , vec2 ( vofi_TexCoord0 ) ) ;
 45:    } else {
 46:        fo_FragColor = tex2D ( samp1 , vec2 ( vofi_TexCoord0 ) ) ;
 47:    }
 48: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/motionBlur.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[6];
 37: 
 38: uniform sampler2D samp0;
 39: uniform sampler2D samp1;
 40: 
 41: in vec2 vofi_TexCoord0;
 42: 
 43: out vec4 fo_FragColor;
 44: 
 45: void main() {
 46:    if ( tex2D ( samp0 , vofi_TexCoord0 ). w == 0.0 ) {
 47:        discard ;
 48:    }
 49:    float windowZ = tex2D ( samp1 , vofi_TexCoord0 ). x ;
 50:    vec3 ndc = vec3 ( vofi_TexCoord0 * 2.0 - 1.0 , windowZ * 2.0 - 1.0 ) ;
 51:    float clipW = - _fa_[4 /* rpProjectionMatrixZ */] . w / ( - _fa_[4 /* rpProjectionMatrixZ */] . z - ndc. z ) ;
 52:    vec4 clip = vec4 ( ndc * clipW , clipW ) ;
 53:    vec4 reClip ;
 54:    reClip. x = dot ( _fa_[0 /* rpMVPmatrixX */] , clip ) ;
 55:    reClip. y = dot ( _fa_[1 /* rpMVPmatrixY */] , clip ) ;
 56:    reClip. z = dot ( _fa_[2 /* rpMVPmatrixZ */] , clip ) ;
 57:    reClip. w = dot ( _fa_[3 /* rpMVPmatrixW */] , clip ) ;
 58:    vec2 prevTexCoord ;
 59:    prevTexCoord. x = ( reClip. x / reClip. w ) * 0.5 + 0.5 ;
 60:    prevTexCoord. y = ( reClip. y / reClip. w ) * 0.5 + 0.5 ;
 61:    vec2 texCoord = prevTexCoord ;
 62:    vec2 delta = ( vofi_TexCoord0 - prevTexCoord ) ;
 63:    vec3 sum = vec3 ( 0.0 ) ;
 64:    float goodSamples = 0.0 ;
 65:    float samples = _fa_[5 /* rpOverbright */] . x ;
 66:    for ( float i = 0.0 ; i < samples ; i = i + 1.0 ) {
 67:        vec2 pos = vofi_TexCoord0 + delta * ( ( i / ( samples - 1.0 ) ) - 0.5 ) ;
 68:        vec4 color = tex2D ( samp0 , pos ) ;
 69:        sum += color. xyz * color. w ;
 70:        goodSamples += color. w ;
 71:    }
 72:    float invScale = 1.0 / goodSamples ;
 73:    fo_FragColor = vec4 ( sum * invScale , 1.0 ) ;
 74: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'

While compiling fragment program renderprogs/debug_shadowmap.pixel
-----------------
  1: #version 300 es
  2: #define PC
  3: precision mediump float;
  4: 
  5: void clip( float v ) { if ( v < 0.0 ) { discard; } }
  6: void clip( vec2 v ) { if ( any( lessThan( v, vec2( 0.0 ) ) ) ) { discard; } }
  7: void clip( vec3 v ) { if ( any( lessThan( v, vec3( 0.0 ) ) ) ) { discard; } }
  8: void clip( vec4 v ) { if ( any( lessThan( v, vec4( 0.0 ) ) ) ) { discard; } }
  9: 
 10: float saturate( float v ) { return clamp( v, 0.0, 1.0 ); }
 11: vec2 saturate( vec2 v ) { return clamp( v, 0.0, 1.0 ); }
 12: vec3 saturate( vec3 v ) { return clamp( v, 0.0, 1.0 ); }
 13: vec4 saturate( vec4 v ) { return clamp( v, 0.0, 1.0 ); }
 14: 
 15: vec4 tex2D( sampler2D sampler, vec2 texcoord ) { return texture( sampler, texcoord.xy ); }
 16: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord ) { return vec4( texture( sampler, texcoord.xyz ) ); }
 17: 
 18: vec4 tex2D( sampler2D sampler, vec2 texcoord, vec2 dx, vec2 dy ) { return textureGrad( sampler, texcoord.xy, dx, dy ); }
 19: vec4 tex2D( sampler2DShadow sampler, vec3 texcoord, vec2 dx, vec2 dy ) { return vec4( textureGrad( sampler, texcoord.xyz, dx, dy ) ); }
 20: 
 21: vec4 texCUBE( samplerCube sampler, vec3 texcoord ) { return texture( sampler, texcoord.xyz ); }
 22: vec4 texCUBE( samplerCubeShadow sampler, vec4 texcoord ) { return vec4( texture( sampler, texcoord.xyzw ) ); }
 23: 
 24: vec4 tex2Dproj( sampler2D sampler, vec3 texcoord ) { return textureProj( sampler, texcoord ); }
 25: vec4 tex3Dproj( sampler3D sampler, vec4 texcoord ) { return textureProj( sampler, texcoord ); }
 26: 
 27: vec4 tex2Dbias( sampler2D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xy, texcoord.w ); }
 28: vec4 tex3Dbias( sampler3D sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 29: vec4 texCUBEbias( samplerCube sampler, vec4 texcoord ) { return texture( sampler, texcoord.xyz, texcoord.w ); }
 30: 
 31: vec4 tex2Dlod( sampler2D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xy, texcoord.w ); }
 32: vec4 tex3Dlod( sampler3D sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 33: vec4 texCUBElod( samplerCube sampler, vec4 texcoord ) { return textureLod( sampler, texcoord.xyz, texcoord.w ); }
 34: 
 35: 
 36: uniform vec4 _fa_[1];
 37: 
 38: uniform sampler2DArray samp0;
 39: 
 40: in vec2 vofi_TexCoord0;
 41: 
 42: out vec4 fo_FragColor;
 43: 
 44: void main() {
 45:    vec3 tc ;
 46:    tc. xy = vofi_TexCoord0 . xy ;
 47:    tc. z = _fa_[0 /* rpScreenCorrectionFactor */] . x ;
 48:    fo_FragColor = texture ( samp0 , tc ) ;
 49: }
-----------------
0:16(13): error: No precision specified in this scope for type `sampler2DShadow'
0:19(13): error: No precision specified in this scope for type `sampler2DShadow'
0:22(15): error: No precision specified in this scope for type `samplerCubeShadow'
0:25(17): error: No precision specified in this scope for type `sampler3D'
0:28(17): error: No precision specified in this scope for type `sampler3D'
0:32(16): error: No precision specified in this scope for type `sampler3D'
0:38(1): error: No precision specified in this scope for type `sampler2DArray'

----- Initializing Sound System ------
Setup OpenAL device and context... Done.
OpenAL vendor: OpenAL Community
OpenAL renderer: OpenAL Soft
OpenAL version: 1.1 ALSOFT 1.17.2
OpenAL extensions: AL_EXT_ALAW AL_EXT_BFORMAT AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_BFORMAT AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_block_alignment AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFT_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_MSADPCM AL_SOFT_source_latency AL_SOFT_source_length
sound system initialized.
--------------------------------------
------- Initializing renderSystem --------
Updating texture filter parameters.
renderSystem initialized.
--------------------------------------
Skipping Intro Videos!
Reading strings/english.lang as UTF-8
9104 strings read
--------- Initializing Game ----------
gamename: baseDOOM-1
gamedate: Aug  3 2016
Initializing event system
...535 event definitions
Initializing class hierarchy
...158 classes, 992960 bytes for event callbacks
Initializing scripts
/proc/cpuinfo CPU frequency: 2996.06 MHz
Compiled '/usr/share/games/doom3bfg/base/script/doom_main.script': 373.6 ms
---------- Compile stats ----------

Memory usage:
     Strings: 120, 15840 bytes
  Statements: 95386, 3815440 bytes
   Functions: 3070, 496728 bytes
   Variables: 239712 bytes
    Mem used: 6284512 bytes
 Static data: 6266520 bytes
   Allocated: 8567312 bytes
 Thread size: 14064 bytes

...6 aas types
game initialized.
--------------------------------------
Loaded FFMPEG file: 'video/intro/introloop.bik', looping=1512x512, 30.000000 FPS, 12.000000 sec
Loaded FFMPEG file: 'video/mars1.bik', looping=0512x512, 30.000000 FPS, 32.166668 sec
Loaded FFMPEG file: 'video/mars_rotation.bik', looping=11567x406, 30.000000 FPS, 100.000000 sec
----- idRenderModelManagerLocal::EndLevelLoad -----
    0 models purged from previous level,     3 models kept.
---------------------------------------------------
----- idImageManager::EndLevelLoad -----
   30 images loaded in   0.0 seconds
----------------------------------------
----- idSoundSystemLocal::EndLevelLoad -----
    7 sounds loaded in   0.0 seconds
----------------------------------------
------------- Warnings ---------------
during DOOM 3: BFG Edition initialization...
WARNING: Unable to open resource file maps/_startup.resources
1 warnings
Preloading images...
00362 images preloaded ( or were already loaded ) in   0.1 seconds
----------------------------------------
00259 sounds preloaded in   0.1 seconds
----------------------------------------
WARNING: Couldn't load image: _doomclassic : _doomclassic#__0200
--- Common Initialization Complete ---
QA Timing IIS: 005782ms
WARNING: terminal type 'xterm-256color' is unknown. terminal support may not work correctly
terminal support enabled ( use +set in_tty 0 to disabled )
pid: 13589
session->GetSaveGameManager().CancelToTerminate();
soundSystem->StopAllSounds();
Stop();
--------- Game Map Shutdown ----------
--------------------------------------
CleanupShell();
delete loadGUI;
delete renderWorld;
delete soundWorld;
delete menuSoundWorld;
session->ShutdownSoundRelatedSystems();
session->Shutdown();
game->Leaderboards_Shutdown();
uiManager->Shutdown();
soundSystem->Shutdown();
usercmdGen->Shutdown();
eventLoop->Shutdown();
declManager->Shutdown();
renderSystem->Shutdown();
idRenderSystem::Shutdown()
Shutting down OpenGL subsystem
commonDialog.Shutdown();
UnloadGameDLL();
------------ Game Shutdown -----------
--------- Game Map Shutdown ----------
--------------------------------------
Shutdown event system
--------------------------------------
saveFile.Clear( true );
stringsFile.Clear( true );
CloseLogFile();
fileSystem->Shutdown( false );
Sys_Shutdown();
console->Shutdown();
idKeyInput::Shutdown();
cvarSystem->Shutdown();
cmdSystem->Shutdown();
ClearWarnings( GAME_NAME " shutdown" );
warningCaption.Clear();
errorList.Clear();
idLib::ShutDown();
shutdown terminal support