Lucid Virtu and Intel Quick Sync: Pairing GPUs
Introduction, Virtu Explained
The problem is this: At present, there's no way to easily use a discrete graphics card and access Sandy Bridge's transcoding engine. The only way to overcome this without using Virtu is to manually switch one's monitor cable from discrete GPU to integrated, reboot the machine, transcode, swap the cable back to the discrete GPU, and reboot again. Or use a multi-monitor setup.
Lucid's performance claims vis-à-vis ATI. We'll investigate them later in the article
When used in conjunction with an H57 motherboard, Virtu allows for both GPUs to function simultaneously, apart from a few quirks. Note that Virtu doesn't change anything with regard to Intel's enthusiast-oriented P67. Sandy Bridge's iGPU is automatically shut down when the chip is inserted into a P67 board and Intel claims it can't be changed.
Intel's upcoming enthusiast-oriented Z68 chipset will enable Quick Sync technology even if a discrete GPU is installed but Virtu, to the best of our knowledge, will still be required if a user wants both video transcoding via Quick Sync and discrete GPU performance.
Sandy Bridge's video processing hardware and its improvements over Clarkdale/Arrandale.
Virtu's high-level implementation is fairly simple; the program leverages some of the software assets Lucid has developed for Hydra. As the diagram indicates, Virtu is only compatible with DirectX. Games developed using OpenGL or WebGL would presumably run only on the Sandy Bridge iGPU.
Whenever a DirectX function call is made, Virtu evaluates the task and assigns it to either the dGPU or the iGPU. At this early stage the program's evaluation capabilities are still quite coarse. If the game in question has been flagged as a Virtu-compatible title, its rendering instructions are grabbed and tossed to the dGPU for execution. As the discrete card outputs its rendering results, Virtu snaps them up and copies them from the video card to the frame buffer associated with Sandy Bridge's iGPU.
Virtu is able to do this because the GPU core and frame buffer are decoupled on an abstract level. The GPU doesn't care what happens to a frame after it's been rendered, it just kicks the finished product out the door. Similarly, Sandy Bridge's frame buffer doesn't ask questions about where the data it's supposed to display just came from.
We suspect that the integrated PCI-Express controller on all Sandy Bridge processors is vital to Virtu's proper function. In the past, as with the X58, all PCIe links were attached to a northbridge or southbridge independent of the processor. The need to pull data through an extra 'hop' would've inevitably added latency to a product that depended on its absence.
Note that data earmarked for Sandy Bridge's native GPU isn't processed further and passes to the display buffer normally.