This is a general OpenGL questions, actually I am more interested in OpenGL|ES (the embedded version of OpenGL), however I understand they are quite similar.
If I was to implement a solution where OpenGL can be used in multiple screens, I have the two solutions:
One large framebuffer, where each display is carved out of it and rendered on the LCD.
Two seperate framebuffers, where each displays has its own buffer.
Which way is the best solution for OpenGL? I know it probably matters on the hardware (i.e hardware accerelator), but can someone give me the pros and cons for both solutions.
I would create one drawable per GPU, and update each drawable from a separate thread.
So it depends on how many GPUs are driving your displays. See also: http://www.equalizergraphics.com/documentation/parallelOpenGLFAQ.html
Dividing it in two because you can have two GPU’s isn’t a good idea. Most consumer hardware, and certainly portable hardware hasn’t got two gpu’s or graphic cards.
It more depends on the content. Are your screens going to show different content for each screen or other portions of the same content?
However, it could be a good idea to do a large framebuffer for code efficiency and debugging advantages. You get the consistency of one frame buffer that just changes dimensions. Smaller code than writing multiple framebuffers and addressing them separately. It seems one large would be easier to debug.