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.38k stars 247 forks source link

White screen in the whole window, nothing else. #253

Closed rootCoderDEV closed 8 years ago

rootCoderDEV commented 8 years ago

First, I'd like to thank the project holders. Well, long story short. the game was working very well. but recently i don't know what happened, whenever i launch it, i only see a whiteness. here's the log: log.txt If you don't wan't to download it and then see it: QA Timing INIT: 000135ms RBDOOM 3 BFG 1.0.3.1401 linux-amd64 found interface lo - loopback found interface wlan0 - 192.168.1.7/255.255.255.0 no 'base' directory in exe path /usr/games, skipping no 'base' directory in cwd path /home/rootcoder, 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/rootcoder/.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: 4 /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.10.0 Sys_InitInput: Joystick subsystem init Sys_InitInput: Joystic - Found 0 joysticks OpenGL Version : 3.0 OpenGL Vendor : X.Org OpenGL Renderer : Gallium 0.4 on AMD TURKS (DRM 2.43.0, LLVM 3.6.2) 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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 * fa[0 / rpScreenCorrectionFactor /] . w ; 119: shadowTexcoord. w = float ( shadowIndex ) ; 120: vec2 poissonDisk [ 12 ] = vec2 [ ](121: vec2 %28 0.6111618 , 0.1050905 %29 , 122: vec2 %28 0.1088336 , 0.1127091 %29 , 123: vec2 %28 0.3030421 , - 0.6292974 %29 , 124: vec2 %28 0.4090526 , 0.6716492 %29 , 125: vec2 %28 - 0.1608387 , - 0.3867823 %29 , 126: vec2 %28 0.7685862 , - 0.6118501 %29 , 127: vec2 %28 - 0.1935026 , - 0.856501 %29 , 128: vec2 %28 - 0.4028573 , 0.07754025 %29 , 129: vec2 %28 - 0.6411021 , - 0.4748057 %29 , 130: vec2 %28 - 0.1314865 , 0.8404058 %29 , 131: vec2 %28 - 0.7005203 , 0.4596822 %29 , 132: vec2 %28 - 0.9713828 , - 0.06329931 %29) ; 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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D' 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 * fa[0 / rpScreenCorrectionFactor /] . w ; 134: shadowTexcoord. w = float ( shadowIndex ) ; 135: vec2 poissonDisk [ 12 ] = vec2 [ ](136: vec2 %28 0.6111618 , 0.1050905 %29 , 137: vec2 %28 0.1088336 , 0.1127091 %29 , 138: vec2 %28 0.3030421 , - 0.6292974 %29 , 139: vec2 %28 0.4090526 , 0.6716492 %29 , 140: vec2 %28 - 0.1608387 , - 0.3867823 %29 , 141: vec2 %28 0.7685862 , - 0.6118501 %29 , 142: vec2 %28 - 0.1935026 , - 0.856501 %29 , 143: vec2 %28 - 0.4028573 , 0.07754025 %29 , 144: vec2 %28 - 0.6411021 , - 0.4748057 %29 , 145: vec2 %28 - 0.1314865 , 0.8404058 %29 , 146: vec2 %28 - 0.7005203 , 0.4596822 %29 , 147: vec2 %28 - 0.9713828 , - 0.06329931 %29) ; 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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D' 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 * fa[0 / rpScreenCorrectionFactor /] . w ; 129: shadowTexcoord. w = float ( shadowIndex ) ; 130: vec2 poissonDisk [ 12 ] = vec2 [ ](131: vec2 %28 0.6111618 , 0.1050905 %29 , 132: vec2 %28 0.1088336 , 0.1127091 %29 , 133: vec2 %28 0.3030421 , - 0.6292974 %29 , 134: vec2 %28 0.4090526 , 0.6716492 %29 , 135: vec2 %28 - 0.1608387 , - 0.3867823 %29 , 136: vec2 %28 0.7685862 , - 0.6118501 %29 , 137: vec2 %28 - 0.1935026 , - 0.856501 %29 , 138: vec2 %28 - 0.4028573 , 0.07754025 %29 , 139: vec2 %28 - 0.6411021 , - 0.4748057 %29 , 140: vec2 %28 - 0.1314865 , 0.8404058 %29 , 141: vec2 %28 - 0.7005203 , 0.4596822 %29 , 142: vec2 %28 - 0.9713828 , - 0.06329931 %29) ; 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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D' 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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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: foFragColor = 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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D'

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 typesampler2DShadow' 0:22(15): error: No precision specified in this scope for type samplerCubeShadow' 0:25(17): error: No precision specified in this scope for typesampler3D' 0:28(17): error: No precision specified in this scope for type sampler3D' 0:32(16): error: No precision specified in this scope for typesampler3D' 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.16.0 OpenAL extensions: AL_EXT_ALAW 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_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 Initializing event system ...535 event definitions Initializing class hierarchy ...158 classes, 992960 bytes for event callbacks Initializing scripts /proc/cpuinfo CPU frequency: 3268.88 MHz Compiled '/usr/share/games/doom3bfg/base/script/doom_main.script': 273.4 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.1 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.2 seconds

00259 sounds preloaded in 0.1 seconds

WARNING: Couldn't load image: _doomclassic : _doomclassic#__0200 --- Common Initialization Complete --- QA Timing IIS: 005035ms terminal support enabled ( use +set in_tty 0 to disabled ) pid: 6334 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

here's a screenshot: 2015-11-14-200221_1366x768_scrot

BielBdeLuna commented 8 years ago

it's the same issue as mine #252

what drivers are you using? Mesa AMD Gallium driver?

rootCoderDEV commented 8 years ago

Yes, sir. I'm using the same drivers as yours' .

rootCoderDEV commented 8 years ago

Seeing here and there, i found a solution. ppa-purge oibaf ppa and report it to devs. :D

BielBdeLuna commented 8 years ago

but oibaf represent the state of stable mesa in the future, that means that getting rid of it will only solve this problem at the moment, when the next mesa comes as stable version we'll get the same problem. Is idTechX who compiles the CG renderprogs or is the drivers?

aFoxNamedMorris commented 8 years ago

Must be an AMD specific issue with Mesa. Oibaf drivers work crazy well over here on Intel IvyBridge.

BielBdeLuna commented 8 years ago

I have Sandy Bridge here and I see the same, white screen and a collection of failures when compiling the CG renderprogs, so it has to be something in common, the drivers.

I have to say that the drivers work ok with the other applications.

BielBdeLuna commented 8 years ago

@aFoxNamedMorris do you have the lastest Oibaf's? I mean have you updated recently?

aFoxNamedMorris commented 8 years ago

Oookay... yeah. It's going crazy, all right. Just updated again and then tried to run the game... all white.

EDIT: Worth mentioning... nothing else appears to be affected so far. O.o

BielBdeLuna commented 8 years ago

so here's the proof, it's the drivers, since when you didn't updated them?

aFoxNamedMorris commented 8 years ago

This morning. Updated moments ago... Now I have the same issue. No other game or program seems affected so far. My theory is that the issue is in how RBDoom3BFG handles Mesa no longer works as originally designed.

BielBdeLuna commented 8 years ago

the last Oibaf update was nove 15th at 9:30 in the morning CET

but I had that problem yesterday.... https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers

ok now I see that there is another update but for "xserver-xorg-video-intel" 36 hours ago, maybe it's not Mesa as a whole but only the xserver-xorg-video-intel (and AMD ) drivers

@rootCoderDEV when did you notice the errors? I did yesterday at night before posting it #252

looking at Oibaf page, the amd xserver-xorg-video-ati where changed this past Thursday

Any chance to test the Oibaf nouveau drivers to see if it fails too? if so, maybe it is Mesa and not the Xserver-xorg-video-whatever.

aFoxNamedMorris commented 8 years ago

The Mesa devs were working recently on removing some old workarounds. Maybe the code in RBDoom3BFG assumes that those workarounds are still in place?

rootCoderDEV commented 8 years ago

For the error, it appeared 2 days ago. The only workaround that i had to do is using official ubuntu's mesa 11.X drivers, i tried telling this issue to Oibaf. I really don't want to stick with older drivers :D.

BielBdeLuna commented 8 years ago

I wonder if this has to do with the CG translation to GLSL, does the engine perform the translation, if so does it use the driver to do it. maybe it's time to adopt Spir-V and translate the CG renderprogs to GLSL renderprogrs which will be the standard language of Spir-V and of Vulkan

BielBdeLuna commented 8 years ago

what could be started to work on in order to incorporate Vulkan or spir-V?

aFoxNamedMorris commented 8 years ago

DRI3 support... They've been working on DRI3 support.

BielBdeLuna commented 8 years ago

the problem originate at renderprogs.cpp in idRenderProgManager::Init()

BielBdeLuna commented 8 years ago

solved it #252