First solution:
Change this framebuffer:
Virtual Framebuffer Driver
To produce three different vfb sharing the same physical memory, but with different resolutions, offsets and strides (left and right boarders)
it is 1280*2 x 800 x 3 x 4(3) Bytes large (double view, tripple buffered, 4(3)Bytes per Pixel), take care to span the base resolution before to the next multiple of 32, 1280x32 is OK, some special gpu maybe need multiple of 64)
The first one has zero offest and stride and will be used by qt as the rendering surface (something like this:
eglCreateWindowSurface(eglDisplay, eglConfig, vfb_id, NULL);)
where vfb_id is the integer file id after loading.
The second and third one has a stride of half horizontal reslution and zero(for the left) and 1280(for the right) offset. Pass these two vfb's to the displays (don't know how to exactly do that, but the linux framebuffer system is capable of handling this)
There can also be some issues during the non-sync behavior of all three vfbs and the gpu buffer swapping. (I use the tripple buffer since normal double force most egl-settings to forward copy and prevent efficent swaps)
Another solution, but there could be some performance issues:
A large 2560x800 FBO as rendering surface for qt, and at a last pass: rendering the FBO as Texture to both displays afterwards (only use left or right half, use GL_NEAREST for better performance and sharpness for the testure setup). This should work, as long as the gpu supports such large textures.
Hope some of the ideas might help.