Ilia Mirkin has managed the work to enable support for the ARB_viewport_array OpenGL extension within the "NV50" Gallium3D driver. This extension allows for multiple viewports and as explained by the OpenGL.org registry, "This extension enhances OpenGL by providing a mechanism to expose multiple viewports. Each viewport is specified as a rectangle. The destination viewport may be selected per-primitive by the geometry shader. This allows the Geometry Shader to produce different versions of primitives destined for separate viewport rectangles on the same surface. Additionally, when combined with multiple framebuffer attachments, it allows a different viewport rectangle to be selected for each. This extension also exposes a separate scissor rectangle for each viewport. Finally, the viewport bounds are now floating point quantities allowing fractional pixel offsets to be applied during the viewport transform."
Last month this GL extension was enabled in core Mesa and Intel's driver and since then has sprouted up in Radeon Gallium3D and now Nouveau Gallium3D drivers. There's still lots of OpenGL 4.x support needed but at least these open-source Linux graphics driver developers continue working in the right direction.
The change happened with this Git commit and will be part of the Mesa 10.2 release in a few months time.