[osg-users] OpenGL Shader Compile Problem: repeated #version directive

Elias Tarasov elias.tarasov at gmail.com
Sun Jul 19 18:45:52 PDT 2015


Hi!

1.

> 
> 
> > 
> > </snip>
> > 0(5) : error C0204: version directive must be first statement and may not be repeated 
> > 
> 
> Where is this line of code? Inside your code?
> 


No, that line is in osgHimmel code.

2.

> 
> Have you tried to comment out the line above? 
> 


Yes, and in this case the error is:

Atmopshere Precomputed (took 7.45826 s)
Warning, can't assign attribute binding as no has been array assigned to set binding for.
PNG lib warning : iCCP: known incorrect sRGB profile
PNG lib warning : iCCP: known incorrect sRGB profile
VERTEX glCompileShader "" FAILED
VERTEX Shader "" infolog:
0(27) : error C5060: out can't be used with non-varying m_eye
0(28) : error C5060: out can't be used with non-varying m_ray

glLinkProgram "" FAILED
Program "" infolog:
Vertex info
-----------
0(27) : error C5060: out can't be used with non-varying m_eye
0(28) : error C5060: out can't be used with non-varying m_ray

Fragment info
-------------
0(106) : warning C7011: implicit cast from "int" to "float"
0(106) : warning C7011: implicit cast from "int" to "float"

VERTEX glCompileShader "" FAILED
VERTEX Shader "" infolog:
0(90) : error C5060: out can't be used with non-varying v_k
0(91) : error C5060: out can't be used with non-varying v_color
0(98) : warning C7011: implicit cast from "int" to "float"
0(113) : warning C7011: implicit cast from "int" to "float"
0(113) : warning C7011: implicit cast from "int" to "float"
0(119) : warning C7011: implicit cast from "int" to "float"
0(124) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(124) : warning C7011: implicit cast from "int" to "float"
0(124) : warning C7011: implicit cast from "int" to "float"
0(125) : warning C7532: global function texture requires "#version 130" or later

GEOMETRY glCompileShader "" FAILED
GEOMETRY Shader "" infolog:
0(46) : error C0000: syntax error, unexpected '(', expecting "::" at token "("
0(54) : error C5060: out can't be used with non-varying g_color
0(58) : warning C7011: implicit cast from "int" to "float"
0(63) : warning C7532: global variable gl_in requires "#version 150" or later
0(63) : warning C7532: global variable gl_Position requires "#version 150" or later

glLinkProgram "" FAILED
Program "" infolog:
Vertex info
-----------
0(90) : error C5060: out can't be used with non-varying v_k
0(91) : error C5060: out can't be used with non-varying v_color
0(98) : warning C7011: implicit cast from "int" to "float"
0(113) : warning C7011: implicit cast from "int" to "float"
0(113) : warning C7011: implicit cast from "int" to "float"
0(119) : warning C7011: implicit cast from "int" to "float"
0(124) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(124) : warning C7011: implicit cast from "int" to "float"
0(124) : warning C7011: implicit cast from "int" to "float"
0(125) : warning C7532: global function texture requires "#version 130" or later

Geometry info
-------------
0(46) : error C0000: syntax error, unexpected '(', expecting "::" at token "("
0(54) : error C5060: out can't be used with non-varying g_color
0(58) : warning C7011: implicit cast from "int" to "float"
0(63) : warning C7532: global variable gl_in requires "#version 150" or later
0(63) : warning C7532: global variable gl_Position requires "#version 150" or later

Fragment info
-------------
0(18) : warning C7011: implicit cast from "int" to "float"
0(20) : warning C7011: implicit cast from "int" to "float"
0(27) : warning C7011: implicit cast from "int" to "float"
0(28) : warning C7011: implicit cast from "int" to "float"

VERTEX glCompileShader "" FAILED
VERTEX Shader "" infolog:
0(8) : error C5060: out can't be used with non-varying m_tangent
0(9) : error C5060: out can't be used with non-varying m_eye

glLinkProgram "" FAILED
Program "" infolog:
Vertex info
-----------
0(8) : error C5060: out can't be used with non-varying m_tangent
0(9) : error C5060: out can't be used with non-varying m_eye

Fragment info
-------------
0(114) : warning C7011: implicit cast from "int" to "float"
0(118) : warning C7011: implicit cast from "int" to "float"
0(120) : warning C7011: implicit cast from "int" to "float"
0(120) : warning C7011: implicit cast from "int" to "float"
0(120) : warning C7011: implicit cast from "int" to "float"
0(120) : warning C7011: implicit cast from "int" to "float"
0(120) : warning C7011: implicit cast from "int" to "float"
0(122) : warning C7011: implicit cast from "int" to "float"
0(123) : warning C7011: implicit cast from "int" to "float"
0(123) : warning C7011: implicit cast from "int" to "float"
0(127) : warning C7011: implicit cast from "int" to "float"
0(129) : warning C7011: implicit cast from "int" to "float"
0(135) : warning C7011: implicit cast from "int" to "float"
0(144) : warning C7011: implicit cast from "int" to "float"
0(171) : warning C7011: implicit cast from "int" to "float"
0(171) : warning C7011: implicit cast from "int" to "float"
0(171) : warning C7011: implicit cast from "int" to "float"
0(171) : warning C7011: implicit cast from "int" to "float"
0(187) : warning C7011: implicit cast from "int" to "float"
0(187) : warning C7011: implicit cast from "int" to "float"
0(198) : warning C7011: implicit cast from "int" to "float"
0(198) : warning C7011: implicit cast from "int" to "float"

VERTEX glCompileShader "" FAILED
VERTEX Shader "" infolog:
0(27) : error C5060: out can't be used with non-varying m_ray

glLinkProgram "" FAILED
Program "" infolog:
Vertex info
-----------
0(27) : error C5060: out can't be used with non-varying m_ray

Fragment info
-------------
0(19) : warning C7011: implicit cast from "int" to "float"
0(20) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(20) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(22) : warning C7011: implicit cast from "int" to "float"
0(23) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(23) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(26) : warning C7548: '&' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(60) : warning C7532: global type uvec4 requires "#version 130" or later
0(60) : warning C0000: ... or #extension GL_EXT_gpu_shader4 : enable
0(60) : warning C7532: global type uint requires "#version 130" or later
0(60) : warning C0000: ... or #extension GL_EXT_gpu_shader4 : enable
0(60) : warning C7011: implicit cast from "int" to "float"
0(62) : warning C7548: '%' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(62) : warning C7011: implicit cast from "int" to "float"
0(351) : warning C7011: implicit cast from "int" to "float"
0(355) : warning C7011: implicit cast from "int" to "float"
0(20) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(20) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(23) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(23) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(26) : warning C7548: '&' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(62) : warning C7548: '%' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(62) : warning C7548: '%' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(20) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(20) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(23) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(23) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(26) : warning C7548: '&' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '%' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '&' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '&' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '%' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '%' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '&' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '<<' requires "#extension GL_EXT_gpu_shader4 : enable" before use
0(355) : warning C7548: '^' requires "#extension GL_EXT_gpu_shader4 : enable" before use

Warning: detected OpenGL error 'invalid enumerant' at after RenderBin::draw(..)

3.

> 
> Have you debugged with geDebugger or glIntercept to see which shader
> source is sent to the driver? (You can also check the osg::Shader apply
> i think). 
> 


Here is the header pattern of all osgHimmel shaders under gDEBugger:

#ifndef __version__
#define __version__

#version 150 compatibility

#endif // __version__

4. 

> 
> Also check the osgShader example. Is it running as expected?
> 


Yes, osgShaders works fine.

5. Also, i found that link:
https://www.opengl.org/discussion_boards/showthread.php/185603-Managing-several-versions-in-a-single-shader-file
There is a solution that maybe works: somehow pass version number through API.

Or something else maybe?

Thanks for help and patience!

Cheers,
Elias

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=64364#64364








More information about the osg-users mailing list