Skip to main content
GameDev.net gamedev.net
🔒 Locked 🎯 Unreal

GLSL linking error for simple shaders

Started by hdc_bst Feb 17, 2010 at 5:56 PM 1 replies 3.1k views
Original Post
hdc_bst
hdc_bst
I am just getting my feet wet using PyOpenGL for GLSL programming. Even using the simplest possible shaders, I have been unable to successfully link a simple program.

glutInit(')
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB)
glutInitWindowSize(250, 250)
glutCreateWindow('Hello GLUT')
print 'OpenGL Version: ' + glGetString(GL_VERSION)
print 'GLSL Version: ' + glGetString(GL_SHADING_LANGUAGE_VERSION)
mvShader = glCreateShader(GL_VERTEX_SHADER)
mfShader = glCreateShader(GL_FRAGMENT_SHADER)
vf = open('./simpleV.glsl','r')
vs = vf.read()
ff = open('./simpleF.glsl','r')
fs = ff.read()
mfp = glCreateProgram()
print glGetProgramInfoLog(mfp)
glShaderSource(mvShader,vs)
glShaderSource(mfShader,fs)
glCompileShader(mvShader)
print glGetShaderInfoLog(mvShader)
glCompileShader(mfShader)
print glGetShaderInfoLog(mfShader)
glAttachShader(mfp,mvShader)
glAttachShader(mfp,mfShader)
glValidateProgram(mfp)
print 'Vertex Shader: \n' + glGetShaderSource(mvShader)
print 'Fragment Shader: \n' + glGetShaderSource(mfShader)
glLinkProgram(mfp)
print glGetProgramInfoLog(mfp)


Yields the result

OpenGL Version: 2.1.8501 FireGL Release
GLSL Version: 1.20

Vertex shader was successfully compiled to run on hardware.

Fragment shader was successfully compiled to run on hardware.
Vertex Shader: 
void main() {
gl_Position = ftransform();
}

Fragment Shader: 
void main() {
gl_FragColor = vec4(0.4,1.0,0.0,0.0);
}
Fragment shader(s) failed to link, vertex shader(s) failed to link.
ERROR: 0:1: 'v' : syntax error parse error
ERROR: compilation errors. No code generated.

ERROR: 0:1: 'v' : syntax error parse error
ERROR: compilation errors. No code generated.


The shaders compile successfully, but generate a link error. Can anyone suggest a fix? If relevant, my computer is using an ATI FireGL V3100 with the most recent driver. Thank you.
Geometrian
Geometrian
You might be having the same problem I was having with ATI cards:

Change:
glShaderSource(mvShader,vs)
glShaderSource(mfShader,fs)

To:
glShaderSource(mvShader,[vs])
glShaderSource(mfShader,[fs])

[size="1"]And a Unix user said rm -rf *.* and all was null and void...|There's no place like 127.0.0.1|The Application "Programmer" has unexpectedly quit. An error of type A.M. has occurred.
[size="2"]
hdc_bst
hdc_bst
Brilliant! That's all it took. Thank you for the help.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.