- What is the most common way modern games perform triple buffering ?
- What does the SwapBuffers exactly do in terms of OpenGL states ?
- Is it possible to perform double and triple buffering independently of window system (for example, by manipulating with glDrawBuffer or by using FBO/PBO) ? If so, any hints ?
- Does 3. even make sense in terms of performance and flexibility ?
This quote answers most of your questions:
You cannot control whether a driver does triple buffering. You could try to implement it yourself using a FBO. But if the driver is already doing triple buffering, your code will only turn it into quadruple buffering. Which is usually overkill.
What does the SwapBuffers exactly do in terms of OpenGL states ?
From what I understand, it doesn't really do anything other than flushing GL and swapping the buffers.