Was the main motivation for adding OpenGL to support non-windows DirectX systems?
No. Things happened without a plan. Everything started because I needed new features for my tables and read the great Whirlwind WIP by Flupper (and created a semi automated way of doing like he does). This leads me to add a few things to 10.7, diving in the code. DX9 is pretty outdated regarding a lot of features, so I decided to make my test with VPVR which uses latest OpenGL. Then Jason came in wanting to port to other platforms and little by little it drove us to what is the 10.8.
For non-VR users, what are the benefits to run the GL version over the DirectX version? To my eyes, they both appear to render very similar, consume similar CPU/GPU resources, with similar frame rates.
VPVR used to be a fork entirely designed to run in VR (so desktop rendering had been dropped). I fixed that and, now, VPX/GL is supposed to have the exact same rendering as the DX9 version. You can use it for desktop. The OpenGL version uses latest OpenGL, giving some benefits over the DX9 version:
- MSAA => this is a cheap and effective antialiasing solution,
- real stereo rendering => the result is really better in my opinion (at the cost of the need of more GPU power), fixing most visual artefact, supporting transparency,...
- better color management (DX9 has a bug on how it computes mipmaps, but the difference is very slight),
- perhaps a slightly faster startup,
- VR support (obviously).
The main drawback is that you need a computer with OpenGL 4.3 support, so fairly new, when the DX9 version supports very old devices with very old Windows version. I think the DX9 version is also somewhat faster than the OpenGL one.
Is there a way to support screen recording with ffmpeg when using OpenGL?
Not with current version. This is a bug. Low priority on my list, but still this would be nice to solve it.