The question is simple, I have this diagram from the Khronos page:
And this diagram from the Learn OpenGL page
In the first picture the Primitive assembly is executed for example after the Geometry shader, in the second the execution happens before.
For the latter picture I took the relevant bit from the tutorial:
The primitive assembly stage takes as input all the vertices (or vertex if GL_POINTS is chosen) from the vertex shader that form a primitive and assembles all the point(s) in the primitive shape given; in this case a triangle. The output of the primitive assembly stage is passed to the geometry shader. The geometry shader takes as input a collection of vertices that form a primitive and has the ability to generate other shapes by emitting new vertices to form new (or other) primitive(s). In this example case, it generates a second triangle out of the given shape.
I'm a bit confused cause I can't figure what that module and the Geometry shader takes as input, I'd be more prone to say the first diagram is correct. But maybe there's an interpretation I'm missing here.
When is the Primitive assembly executed then?