# Section 2.11.2 (Program Objects) of the GLSL 1.50 spec says: # # "Linking will also fail if the program object contains objects to form a # geometry shader (see section 2.12), and # • the program contains no objects to form a vertex shader; # • the input primitive type, output primitive type, or maximum output # vertex count is not specified in any compiled geometry shader object; # • the input primitive type, output primitive type, or maximum output # vertex count is specified differently in multiple geometry shader # objects." [require] GLSL >= 1.50 [vertex shader] #version 150 out vec4 vertex; void main() { vertex = vec4(1.0, 0.0, 1.0, 0.0); } [geometry shader] #version 150 layout(triangles) in; layout(triangle_strip, max_vertices = 3) out; in vec4 vertex[3]; out vec4 temp; vec4 temp0[2]; void main() { temp0[0] = vertex[0]; temp0[1].x = float(inversesqrt( abs(temp0[0]).x)); temp0[1].y = float(inversesqrt( abs(temp0[0]).y)); gl_Position = vertex[0]; temp = temp0[1]; EmitVertex(); } [fragment shader] #version 150 out vec4 color; in vec4 temp; void main() { color = temp; } [test] link error