[osg-users] GLES link error for unidentified Program

Robert Osfield robert.osfield at gmail.com
Wed Jan 24 08:52:49 PST 2018


Hi Alessandro,

It's hard to know what is going on as we don't have the source you are
using, and I don't personally have iOS to test with.

The best I can say is that the OSG master and 3.4.1 now have inbuilt
shaders for text and stats so they now correctly appear without any
need to provide your own shaders like it used to be required.

I can't find any shader source in OpenSceneGraph-Data master or
OpenSceneGraph master that matches the lines in the shaders you've
posted so really can't guess where they have come from at this point.

Robert.

On 24 January 2018 at 16:18, Alessandro Terenzi <a.terenzi at gmail.com> wrote:
> Hi,
> I used to work with OSG 3.4.0 (stable) and now I'm trying version 3.5.10 on iOS (trying both GLES 2 and 3) but now I having the following error when the first frame is drawn:
>
> glLinkProgram 0x1c41cda70"" FAILED
> Program "" infolog:
> ERROR: OpenGL ES requires exactly one vertex and one fragment shader to validly link.
>
> Note that I have only one quad to which I apply a texture, I'm using a single 'vertex' and 'fragment shader' and there's only on 'program' around. The same code works fine with OSG 3.4.0 and even though with version 3.5.10 there is the above error, the texture is nonetheless displayed.
>
> If I use a more verbose notification level I see that my program "BckProgram" is compiled and linked correctly but then another program with empty name is tried to be linked and it is the one for which I'm receiving the above error, but I did not create a second program anywhere... am I missing something?
>
> And here's the verbose log:
>
> View::init()
> cull()
> cull() got SceneView 0x106510300
> ShaderComposer::~ShaderComposer() 0x1c02d7450
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> end cull() 0x1065101f0
> draw() got SceneView 0x106510300
> Renderer::compile()
> State::convertShaderSourceToOsgBuiltIns()
> ++Before Converted source
> varying vec2 texcoord;
> void main(void)
> {
>     texcoord = gl_MultiTexCoord0.xy;
>     gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
> }
>
> ++++++++
> -------- Converted source
> attribute vec4 osg_MultiTexCoord0;
> attribute vec4 osg_Vertex;
> uniform mat4 osg_ModelViewProjectionMatrix;
> varying vec2 texcoord;
> void main(void)
> {
>     texcoord = osg_MultiTexCoord0.xy;
>     gl_Position = osg_ModelViewProjectionMatrix * osg_Vertex;
> }
>
> ----------------
>
> Compiling A :VERTEX source:
>     1: attribute vec4 osg_MultiTexCoord0;
>     2: attribute vec4 osg_Vertex;
>     3: uniform mat4 osg_ModelViewProjectionMatrix;
>     4: varying vec2 texcoord;
>     5: void main(void)
>     6: {
>     7:     texcoord = osg_MultiTexCoord0.xy;
>     8:     gl_Position = osg_ModelViewProjectionMatrix * osg_Vertex;
>     9: }
>
> State::convertShaderSourceToOsgBuiltIns()
> ++Before Converted source
> precision mediump float;
> uniform sampler2D texture0;
> varying vec2 texcoord;
> void main(void)
> {
>     gl_FragColor = texture2D( texture0, vec2(texcoord.x, 1.0-texcoord.y));
> }
>
> ++++++++
> -------- Converted source
> precision mediump float;
> uniform sampler2D texture0;
> varying vec2 texcoord;
> void main(void)
> {
>     gl_FragColor = texture2D( texture0, vec2(texcoord.x, 1.0-texcoord.y));
> }
>
> ----------------
>
> Compiling A :FRAGMENT source:
>     1: precision mediump float;
>     2: uniform sampler2D texture0;
>     3: varying vec2 texcoord;
>     4: void main(void)
>     5: {
>     6:     gl_FragColor = texture2D( texture0, vec2(texcoord.x, 1.0-texcoord.y));
>     7: }
>
> Linking osg::Program "BckProgram" id=3 contextID=0
> State's vertex attrib binding 2, osg_Color
> State's vertex attrib binding 12, osg_FogCoord
> State's vertex attrib binding 3, osg_MultiTexCoord0
> State's vertex attrib binding 4, osg_MultiTexCoord1
> State's vertex attrib binding 5, osg_MultiTexCoord2
> State's vertex attrib binding 6, osg_MultiTexCoord3
> State's vertex attrib binding 7, osg_MultiTexCoord4
> State's vertex attrib binding 8, osg_MultiTexCoord5
> State's vertex attrib binding 9, osg_MultiTexCoord6
> State's vertex attrib binding 10, osg_MultiTexCoord7
> State's vertex attrib binding 1, osg_Normal
> State's vertex attrib binding 11, osg_SecondaryColor
> State's vertex attrib binding 0, osg_Vertex
> Program "BckProgram" link succeeded, infolog:
> WARNING: Could not find vertex shader attribute 'osg_MultiTexCoord7' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_MultiTexCoord5' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_SecondaryColor' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_MultiTexCoord1' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_MultiTexCoord6' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_FogCoord' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_Normal' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_Color' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_MultiTexCoord4' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_MultiTexCoord2' to match BindAttributeLocation request.
> WARNING: Could not find vertex shader attribute 'osg_MultiTexCoord3' to match BindAttributeLocation request.
>
>         Uniform "texture0" loc=4 size=1 type=sampler2D
>         Uniform "osg_ModelViewProjectionMatrix" loc=0 size=1 type=mat4
>         Attrib "osg_MultiTexCoord0" loc=3 size=1
>         Attrib "osg_Vertex" loc=0 size=1
>
> Created new 0x1c41294c0 TextureObject, _numOfTextureObjects 1
> Warning: detected OpenGL error 'invalid enumerant' at after stateset.compileGLObjects in GLObjectsVisitor::apply(osg::StateSet& stateset)
> OpenGL extension '' is not supported.
> Adding parent0x1c02327e0
> Adding parent0x1c02327e0
> RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo) 0x1063270e0
> Setting up osg::Camera::FRAME_BUFFER
> GLBufferObjectSet::GLBufferObjectSet _profile._size=80
>     Allocating new glBufferData(), _allocatedSize=80
> 2018-01-24 16:58:10.501060+0100 CameraCaptureExample[7697:6519318] deviceOrientationDidChange: 5
> Created new 0x1c41296a0 TextureObject, _numOfTextureObjects 1
> Warning: detected OpenGL error 'invalid enumerant' at after RenderBin::draw(..)
> Linking osg::Program "" id=4 contextID=0
> State's vertex attrib binding 2, osg_Color
> State's vertex attrib binding 12, osg_FogCoord
> State's vertex attrib binding 3, osg_MultiTexCoord0
> State's vertex attrib binding 4, osg_MultiTexCoord1
> State's vertex attrib binding 5, osg_MultiTexCoord2
> State's vertex attrib binding 6, osg_MultiTexCoord3
> State's vertex attrib binding 7, osg_MultiTexCoord4
> State's vertex attrib binding 8, osg_MultiTexCoord5
> State's vertex attrib binding 9, osg_MultiTexCoord6
> State's vertex attrib binding 10, osg_MultiTexCoord7
> State's vertex attrib binding 1, osg_Normal
> State's vertex attrib binding 11, osg_SecondaryColor
> State's vertex attrib binding 0, osg_Vertex
> glLinkProgram 0x1c41cda70"" FAILED
> Program "" infolog:
> ERROR: OpenGL ES requi2018-01-24 16:58:10.503075+0100 CameraCaptureExample[7697:6519318] ...
> res exactly one vertex and one fragment shader to validly link.
>
> Program "" infolog:
> ERROR: OpenGL ES requires exactly one vertex and one fragment shader to validly link.
>
> cull()
> cull() got SceneView 0x106326740
> ShaderComposer::~ShaderComposer() 0x1c02d74c0
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> Uniform Adding parent
> end cull() 0x1065101f0
> end draw() 0x1065101f0
> draw() 0x1065101f0
> draw() got SceneView 0x106326740
> OpenGL extension '' is not supported.
> Adding parent0x1c02327e0
> Adding parent0x1c02327e0
> RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo) 0x106327d30
> Setting up osg::Camera::FRAME_BUFFER
> 2018-01-24 16:58:10.510586+0100 CameraCaptureExample[7697:6519318] ...
> cull()
> cull() got SceneView 0x106510300
> end cull() 0x1065101f0
> end draw() 0x1065101f0
> draw() 0x1065101f0
> draw() got SceneView 0x106510300
> end draw() 0x1065101f0
>
> After this the cull/draw calls repeat without errors.
>
> Thank you!
> Alessandro
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=72854#72854
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


More information about the osg-users mailing list