Quote Originally Posted by jogshy View Post
Hybrid rendering ( as many heteregeneous tasks ) has a problem: a chain is as strong as its weakest link. That's, for instance, why supercomputers based on MPICH2 don't like heterogeneous clusters.

If the GPU is rendering very fast but the CPU is not, then the CPU will just make a slowdown in the process. On the other hand, with the CPU under heavy workload the asynchronous kernel calls(which are called from a thread in the CPU ) and the PCI transfers ( DMA is a myth ) will slowdown too.
The program balances the workload but if the image is not very large then the CPU will make all slower ( because the last tile will be in wait state almost all the time ). For big HD images could worth the effort tho.
Actually, it doesn't seem like it's as efficient as you stated. It seems to spool off the tiles in pairs, but the next pair of tiles doesn't start rendering until both finish. One sits at 99% while the other finishes. If the tiles were smaller and it didn't wait like that it would probably not be such a big slowdown.

Could this be related to using the CPU and gpu through stream? I haven't tried using the built in CPU render with the stream gpu renderer. I'll give it a try when I have a chance.

--Matt