I have a simple geometry shader with an output, i.e. something like this:
out GS2PS { vec4 color; } v;
void main ()
{
gl_Position = ...;
v.color = ...;
EmitVertex ();
// 3 more times
EndPrimitive ();
}
Now I want to use separate shader objects, so I added:
#extension GL_ARB_separate_shader_objects : enable
out gl_PerVertex {
vec4 gl_Position;
};
Unfortunately, no geometry is generated any more. If I remove the block above, and I use separate shader objects, it “just works”, but obviously it’s violating the spec. If I just add the #enable line, the compiler complains that the built-in outputs are not redeclared, but if I do, it just stops working. Tested on a GTX 680 & the 314.22 driver. Same code works as expected on AMD, so I would guess it’s a driver bug on NVIDIA. Can anyone confirm that?