I have a question regarding dual GPU use for Virtual Reality (VR); for years now I tried, every now and then, to find an answer by reading/searching the web, but every time in vain – hence finally this post:
In alternating frame rendering techniques (like formerly SLI/Crossfire) the efficiency is quite low because of synchronization issues – and in Nvidia’s (likely meanwhile retired) SLI-VR project I saw from flow diagrams that they planned on synchronizing the frames for the left and the right eye as well. But why would that be necessary at all for VR?
Could we not just do the following and treat the “left-eye view” completely independent from “right-eye view”?:
Normally, i.e. in regular, non-VR visual applications, an engine sends out the job to render a scene for a certain camera position to the GPU, whenever it has finished rendering the last frame, right? So couldn’t we just have the engine send out an additional job for the current camera position moved “60 mm to the right” (or whatever interpupillary distance one desires) to the second GPU, whenever it has finished rendering its last frame? The two GPUs wouldn’t need to know anything about each other (not even about their mutual existence) – neither would the engine (or any part of the software for that matter) need to synchronize anything. It would just need to report the current camera position for the respective eye to the respective GPU (“left-eye GPU” or “right-eye GPU”), whenever it signals it has just finished rendering its last frame.
The images would not arrive synchronized in the VR device, but that wouldn’t be necessary, would it? The left and the right eye pieces could just be treated as two completely independent displays/monitors. Like that, afaics this would yield an “SLI-efficiency” of 100%.
I’d be very interested to learn where I went wrong with this idea – I think I did, otherwise the problem would long have been solved.
Felix Tritschler is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.